diff --git a/dist/main.js b/dist/main.js
index f97c8ff..91954af 100644
--- a/dist/main.js
+++ b/dist/main.js
@@ -215,7 +215,15 @@ ol {
background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});
background-size: cover;
background-repeat: no-repeat;
-}`, "",{"version":3,"sources":["webpack://./src/style.css"],"names":[],"mappings":"AAKA;IACI,YAAY;IACZ,WAAW;IACX,SAAS;AACb;;AAEA;IACI,eAAe;IACf,oCAAoC;AACxC;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,aAAa;IACb,aAAa;IACb,SAAS;IACT,kBAAkB;IAClB,YAAY;IACZ,mBAAmB;IACnB,eAAe;IACf,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,mBAAmB;AACvB;;AAEA;IACI,aAAa;IACb,YAAY;AAChB;;AAEA;IACI,aAAa;IACb,mBAAmB;AACvB;;AAEA;IACI,aAAa;IACb,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;AACvB;;AAEA;IACI,YAAY;IACZ,aAAa;IACb,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,UAAU;IACV,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,eAAe;IACf,uBAAuB;AAC3B;;AAEA;IACI,uBAAuB;IACvB,kBAAkB;IAClB,UAAU;IACV,YAAY;AAChB;;AAEA;IACI,mBAAmB;IACnB,iBAAiB;IACjB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,uBAAuB;IACvB,2BAA2B;IAC3B,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;IACX,UAAU;AACd;;AAEA;IACI,gBAAgB;IAChB,WAAW;IACX,yBAAyB;;;AAG7B;;AAEA;IACI,gBAAgB;IAChB,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,UAAU;AACd;;AAEA;IACI,mBAAmB;IACnB,yBAAyB;IACzB,0BAA0B;IAC1B,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;IACb,8BAA8B;AAClC;;AAEA;IACI,iBAAiB;IACjB,SAAS;IACT,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,YAAY;IACZ,aAAa;IACb,sBAAsB;AAC1B;;AAEA;IACI,YAAY;IACZ,aAAa;IACb,kCAAkC;IAClC,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,aAAa;IACb,kBAAkB;AACtB;;AAEA;IACI,WAAW;IACX,iBAAiB;IACjB,mBAAmB;IACnB,aAAa;IACb,SAAS;AACb;;AAEA;IACI,eAAe;IACf,qBAAqB;IACrB,YAAY;AAChB;;AAEA;IACI,uBAAuB;AAC3B;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,mBAAmB;IACnB,yDAAyC;IACzC,sBAAsB;IACtB,4BAA4B;AAChC","sourcesContent":["@import url('https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,500;0,800;1,500;1,600;1,900&display=swap');\r\n\r\n@import url('https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,500;0,600;0,800;1,500;1,600;1,900&display=swap');\r\n\r\n\r\nhtml, body {\r\n height: 100%;\r\n width: 100%;\r\n margin: 0;\r\n}\r\n\r\n:root {\r\n font-size: 14px;\r\n font-family: 'Work Sans', sans-serif;\r\n}\r\n\r\np {\r\n margin: 0;\r\n}\r\n\r\n#navigation-container {\r\n display: flex;\r\n height: 100px;\r\n gap: 90px;\r\n text-align: center;\r\n margin: 20px;\r\n margin-bottom: 30px;\r\n font-size: 60px;\r\n font-weight: 600;\r\n}\r\n\r\n#navigation-container div {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n#navigation-container img {\r\n height: 100px;\r\n width: 100px;\r\n}\r\n\r\n#logo-container {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n#welcome-container {\r\n display: flex;\r\n height: 100px;\r\n font-size: 50px;\r\n font-weight: 600;\r\n margin-left: 25px;\r\n margin-bottom: 20px;\r\n align-items: center;\r\n}\r\n\r\n#products-display {\r\n margin: 20px;\r\n display: flex;\r\n flex-direction: row;\r\n}\r\n\r\n#story-container {\r\n font-size: 26px;\r\n width: 40%;\r\n margin-left: 40px;\r\n}\r\n\r\n#story-container p {\r\n line-height: 1.35;\r\n}\r\n\r\n#story-container h3 {\r\n font-size: 60px;\r\n color: rgb(180, 34, 15);\r\n}\r\n\r\n#photo-container {\r\n justify-content: center;\r\n position: relative;\r\n width: 60%;\r\n height: auto;\r\n}\r\n\r\n#photo-container img {\r\n border-radius: 15px;\r\n object-fit: cover;\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n#overlay {\r\n color: rgb(180, 34, 15);\r\n font-size: min(15vw, 250px);\r\n font-weight: 700;\r\n position: absolute;\r\n bottom: 35%;\r\n left: 90px;\r\n}\r\n\r\nhr {\r\n margin-top: 40px;\r\n width: 100%;\r\n border: 1.5px solid black;\r\n\r\n\r\n}\r\n\r\nh3 {\r\n color: black ;\r\n margin: 20px;\r\n font-weight: 700;\r\n font-size: 6.5vh;\r\n margin-bottom: 40px;\r\n}\r\n\r\nol {\r\n padding: 0;\r\n}\r\n\r\n#menu-list {\r\n border-radius: 10px;\r\n background-color: #548042;\r\n border: 10px solid #548042;\r\n margin-right: 20px;\r\n margin-left: 20px;\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n#menu-container p {\r\n color: whitesmoke;\r\n margin: 0;\r\n margin-top: 5px;\r\n margin-left: 20px;\r\n margin-right: 20px;\r\n font-size: 4.5vh;\r\n font-weight: 600;\r\n}\r\n\r\n#menu-list {\r\n display: flex;\r\n}\r\n\r\n#footer-elements-container {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n#footer {\r\n margin: 20px;\r\n height: 200px;\r\n background-color: rgb(180, 34, 15);\r\n border-radius: 10px;\r\n}\r\n\r\n#upper-part {\r\n font-size: 30px;\r\n font-weight: 600;\r\n justify-content: center;\r\n display: flex;\r\n text-align: center;\r\n}\r\n\r\n#lower-part {\r\n height: 40%;\r\n margin-left: 40px;\r\n align-items: center;\r\n display: flex;\r\n gap: 20px;\r\n}\r\n\r\n#lower-part a {\r\n font-size: 20px;\r\n text-decoration: none;\r\n color: black;\r\n}\r\n\r\n#footer-elements-container {\r\n justify-content: center;\r\n}\r\n\r\n#welcome-container.hidden, #products-display.hidden, #menu-container.hidden, #footer.hidden, #delivery-div.hidden, #info-container.hidden {\r\n display: none;\r\n}\r\n\r\n#input-container {\r\n border-radius: 10px;\r\n background-image: url(img/hero-image.jpg);\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n}"],"sourceRoot":""}]);
+}
+
+.truth {
+
+}
+
+.truth span {
+ filter: blur(6px);
+}`, "",{"version":3,"sources":["webpack://./src/style.css"],"names":[],"mappings":"AAKA;IACI,YAAY;IACZ,WAAW;IACX,SAAS;AACb;;AAEA;IACI,eAAe;IACf,oCAAoC;AACxC;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,aAAa;IACb,aAAa;IACb,SAAS;IACT,kBAAkB;IAClB,YAAY;IACZ,mBAAmB;IACnB,eAAe;IACf,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,mBAAmB;AACvB;;AAEA;IACI,aAAa;IACb,YAAY;AAChB;;AAEA;IACI,aAAa;IACb,mBAAmB;AACvB;;AAEA;IACI,aAAa;IACb,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;AACvB;;AAEA;IACI,YAAY;IACZ,aAAa;IACb,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,UAAU;IACV,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI,eAAe;IACf,uBAAuB;AAC3B;;AAEA;IACI,uBAAuB;IACvB,kBAAkB;IAClB,UAAU;IACV,YAAY;AAChB;;AAEA;IACI,mBAAmB;IACnB,iBAAiB;IACjB,YAAY;IACZ,WAAW;AACf;;AAEA;IACI,uBAAuB;IACvB,2BAA2B;IAC3B,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;IACX,UAAU;AACd;;AAEA;IACI,gBAAgB;IAChB,WAAW;IACX,yBAAyB;;;AAG7B;;AAEA;IACI,gBAAgB;IAChB,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,UAAU;AACd;;AAEA;IACI,mBAAmB;IACnB,yBAAyB;IACzB,0BAA0B;IAC1B,kBAAkB;IAClB,iBAAiB;IACjB,aAAa;IACb,8BAA8B;AAClC;;AAEA;IACI,iBAAiB;IACjB,SAAS;IACT,eAAe;IACf,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;AACpB;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,YAAY;IACZ,aAAa;IACb,sBAAsB;AAC1B;;AAEA;IACI,YAAY;IACZ,aAAa;IACb,kCAAkC;IAClC,mBAAmB;AACvB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,aAAa;IACb,kBAAkB;AACtB;;AAEA;IACI,WAAW;IACX,iBAAiB;IACjB,mBAAmB;IACnB,aAAa;IACb,SAAS;AACb;;AAEA;IACI,eAAe;IACf,qBAAqB;IACrB,YAAY;AAChB;;AAEA;IACI,uBAAuB;AAC3B;;AAEA;IACI,aAAa;AACjB;;AAEA;IACI,mBAAmB;IACnB,yDAAyC;IACzC,sBAAsB;IACtB,4BAA4B;AAChC;;AAEA;;AAEA;;AAEA;IACI,iBAAiB;AACrB","sourcesContent":["@import url('https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,500;0,800;1,500;1,600;1,900&display=swap');\r\n\r\n@import url('https://fonts.googleapis.com/css2?family=Work+Sans:ital,wght@0,500;0,600;0,800;1,500;1,600;1,900&display=swap');\r\n\r\n\r\nhtml, body {\r\n height: 100%;\r\n width: 100%;\r\n margin: 0;\r\n}\r\n\r\n:root {\r\n font-size: 14px;\r\n font-family: 'Work Sans', sans-serif;\r\n}\r\n\r\np {\r\n margin: 0;\r\n}\r\n\r\n#navigation-container {\r\n display: flex;\r\n height: 100px;\r\n gap: 90px;\r\n text-align: center;\r\n margin: 20px;\r\n margin-bottom: 30px;\r\n font-size: 60px;\r\n font-weight: 600;\r\n}\r\n\r\n#navigation-container div {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n#navigation-container img {\r\n height: 100px;\r\n width: 100px;\r\n}\r\n\r\n#logo-container {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n#welcome-container {\r\n display: flex;\r\n height: 100px;\r\n font-size: 50px;\r\n font-weight: 600;\r\n margin-left: 25px;\r\n margin-bottom: 20px;\r\n align-items: center;\r\n}\r\n\r\n#products-display {\r\n margin: 20px;\r\n display: flex;\r\n flex-direction: row;\r\n}\r\n\r\n#story-container {\r\n font-size: 26px;\r\n width: 40%;\r\n margin-left: 40px;\r\n}\r\n\r\n#story-container p {\r\n line-height: 1.35;\r\n}\r\n\r\n#story-container h3 {\r\n font-size: 60px;\r\n color: rgb(180, 34, 15);\r\n}\r\n\r\n#photo-container {\r\n justify-content: center;\r\n position: relative;\r\n width: 60%;\r\n height: auto;\r\n}\r\n\r\n#photo-container img {\r\n border-radius: 15px;\r\n object-fit: cover;\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n#overlay {\r\n color: rgb(180, 34, 15);\r\n font-size: min(15vw, 250px);\r\n font-weight: 700;\r\n position: absolute;\r\n bottom: 35%;\r\n left: 90px;\r\n}\r\n\r\nhr {\r\n margin-top: 40px;\r\n width: 100%;\r\n border: 1.5px solid black;\r\n\r\n\r\n}\r\n\r\nh3 {\r\n color: black ;\r\n margin: 20px;\r\n font-weight: 700;\r\n font-size: 6.5vh;\r\n margin-bottom: 40px;\r\n}\r\n\r\nol {\r\n padding: 0;\r\n}\r\n\r\n#menu-list {\r\n border-radius: 10px;\r\n background-color: #548042;\r\n border: 10px solid #548042;\r\n margin-right: 20px;\r\n margin-left: 20px;\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n#menu-container p {\r\n color: whitesmoke;\r\n margin: 0;\r\n margin-top: 5px;\r\n margin-left: 20px;\r\n margin-right: 20px;\r\n font-size: 4.5vh;\r\n font-weight: 600;\r\n}\r\n\r\n#menu-list {\r\n display: flex;\r\n}\r\n\r\n#footer-elements-container {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n#footer {\r\n margin: 20px;\r\n height: 200px;\r\n background-color: rgb(180, 34, 15);\r\n border-radius: 10px;\r\n}\r\n\r\n#upper-part {\r\n font-size: 30px;\r\n font-weight: 600;\r\n justify-content: center;\r\n display: flex;\r\n text-align: center;\r\n}\r\n\r\n#lower-part {\r\n height: 40%;\r\n margin-left: 40px;\r\n align-items: center;\r\n display: flex;\r\n gap: 20px;\r\n}\r\n\r\n#lower-part a {\r\n font-size: 20px;\r\n text-decoration: none;\r\n color: black;\r\n}\r\n\r\n#footer-elements-container {\r\n justify-content: center;\r\n}\r\n\r\n#welcome-container.hidden, #products-display.hidden, #menu-container.hidden, #footer.hidden, #delivery-div.hidden, #info-container.hidden {\r\n display: none;\r\n}\r\n\r\n#input-container {\r\n border-radius: 10px;\r\n background-image: url(img/hero-image.jpg);\r\n background-size: cover;\r\n background-repeat: no-repeat;\r\n}\r\n\r\n.truth {\r\n\r\n}\r\n\r\n.truth span {\r\n filter: blur(6px);\r\n}"],"sourceRoot":""}]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
@@ -828,9 +836,7 @@ function loadDelivery() {
inputContainer.appendChild(input);
infoContainer.appendChild(contactContainer);
_append__WEBPACK_IMPORTED_MODULE_0__.content.appendChild(infoContainer);
- div.classList.add('hidden');
}
- FOOTER.classList.remove('hidden');
}
/***/ }),
@@ -843,7 +849,10 @@ function loadDelivery() {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ pageLoad: () => (/* binding */ pageLoad)
+/* harmony export */ createAppendFooter: () => (/* binding */ createAppendFooter),
+/* harmony export */ loadDel: () => (/* binding */ loadDel),
+/* harmony export */ pageLoad: () => (/* binding */ pageLoad),
+/* harmony export */ pageReload: () => (/* binding */ pageReload)
/* harmony export */ });
/* harmony import */ var _append__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./append */ "./src/append.js");
/* harmony import */ var _img_photo_1_jpg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./img/photo-1.jpg */ "./src/img/photo-1.jpg");
@@ -862,10 +871,20 @@ __webpack_require__.r(__webpack_exports__);
createStory();
createMenu();
createAppendFooter();
+}
+
+function loadDel() {
createDeliveryDiv();
(0,_delivery__WEBPACK_IMPORTED_MODULE_2__.loadDelivery)();
}
+function pageReload() {
+ displayWelcome();
+ addPhotoOverlay();
+ createStory();
+ createMenu();
+}
+
function displayWelcome() {
let welcomeContainer = document.createElement('div');
welcomeContainer.id = 'welcome-container';
@@ -1014,6 +1033,44 @@ function createDeliveryDiv() {
/***/ }),
+/***/ "./src/truth.js":
+/*!**********************!*\
+ !*** ./src/truth.js ***!
+ \**********************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ loadAboutPage: () => (/* binding */ loadAboutPage)
+/* harmony export */ });
+/* harmony import */ var _append__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./append */ "./src/append.js");
+
+
+function loadAboutPage() {
+ if (document.getElementById('truth-container') === null) {
+ let truthContainer = document.createElement('div');
+ truthContainer.id = 'truth-container';
+ let truth = document.createElement('p');
+ truth.classList.add('truth');
+
+ const NAIVGATION = document.getElementById('navigation-container');
+ NAIVGATION.style.backgroundColor = 'black';
+ NAIVGATION.style.color = 'white';
+ NAIVGATION.style.margin = '0';
+
+ truth.innerHTML = 'The truth this is that the Los Pollos Hermanos is not a chicken restaurant. It is the coverup for the massive criminal syndicate operating on the terrtory of the southern United States of America and Mexico. The law enforcement agencies such as the Department of Homeland Security are not only aware of their existence, but they are actively sponsoring them as a method to exert their influence. The Gustav Fring, is actually a criminal with ties to the Chilean Military and the CIA. The Los Pollos Hermanos is a cover up for the Operation Backwaters , which has played a large role in the CIA\'s Overlord Program. Los Pollos Hermanos shall continue to operate under the guidance of the CIA! God save us all';
+ truthContainer.style.height = '100vh';
+ truthContainer.style.padding = '35vh';
+ truthContainer.style.backgroundColor = 'black';
+ truth.style.fontSize = '25px';
+ truth.style.color = 'white';
+ truthContainer.appendChild(truth);
+ _append__WEBPACK_IMPORTED_MODULE_0__.content.appendChild(truthContainer);
+ }
+}
+
+/***/ }),
+
/***/ "./src/img/hero-image.jpg":
/*!********************************!*\
!*** ./src/img/hero-image.jpg ***!
@@ -1191,37 +1248,57 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./style.css */ "./src/style.css");
/* harmony import */ var _pageload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./pageload */ "./src/pageload.js");
/* harmony import */ var _append__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./append */ "./src/append.js");
-/* harmony import */ var _delivery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./delivery */ "./src/delivery.js");
+/* harmony import */ var _truth__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./truth */ "./src/truth.js");
-const NAVIGATION = function() {
+let WELCOMECONTAINER = document.getElementById('welcome-container');
+let PRODUCTSCONTAINER = document.getElementById('products-display');
+let MENUCONTAINER = document.getElementById('menu-container');
+let FOOTER = document.getElementById('footer');
+let DELIVERYDIV = document.getElementById('delivery-div');
+let INFOCONTAINER = document.getElementById('info-container');
- const WELCOMECONTAINER = document.getElementById('welcome-container');
- const PRODUCTSCONTAINER = document.getElementById('products-display');
- const MENUCONTAINER = document.getElementById('menu-container');
- const FOOTER = document.getElementById('footer');
- const DELIVERYDIV = document.getElementById('delivery-div');
- const INFOCONTAINER = document.getElementById('info-container');
-
- function hideContent() {
- WELCOMECONTAINER.classList.add('hidden');
- PRODUCTSCONTAINER.classList.add('hidden');
- MENUCONTAINER.classList.add('hidden');
- FOOTER.classList.add('hidden');
- DELIVERYDIV.classList.remove('hidden');
- INFOCONTAINER.classList.remove('hidden');
+ function refreshVariables() {
+ WELCOMECONTAINER = document.getElementById('welcome-container');
+ PRODUCTSCONTAINER = document.getElementById('products-display');
+ MENUCONTAINER = document.getElementById('menu-container');
+ FOOTER = document.getElementById('footer');
+ DELIVERYDIV = document.getElementById('delivery-div');
+ INFOCONTAINER = document.getElementById('info-container');
}
-
- function showContent() {
- WELCOMECONTAINER.classList.remove('hidden');
- PRODUCTSCONTAINER.classList.remove('hidden');
- MENUCONTAINER.classList.remove('hidden');
- FOOTER.classList.remove('hidden');
- DELIVERYDIV.classList.add('hidden');
- INFOCONTAINER.classList.add('hidden');
+
+ function deleteDelivery() {
+ if (document.getElementById('delivery-div') && document.getElementById('info-container')) {
+ document.getElementById('delivery-div').remove();
+ document.getElementById('info-container').remove();
+ }
+ }
+
+ function deleteContent() {
+ WELCOMECONTAINER.remove();
+ PRODUCTSCONTAINER.remove();
+ MENUCONTAINER.remove();
+ }
+
+ function deleteFooter() {
+ FOOTER.remove();
+ }
+
+ function resetNavBarStyle () {
+ const NAIVGATION = document.getElementById('navigation-container');
+ NAIVGATION.style.backgroundColor = 'white';
+ NAIVGATION.style.color = 'black';
+ NAIVGATION.style.margin = '20px';
+ }
+
+ function wipeTruth() {
+ const TRUTH = document.getElementById('truth-container');
+ if (TRUTH) {
+ TRUTH.remove();
+ }
}
function addEventListeners() {
@@ -1230,25 +1307,74 @@ const NAVIGATION = function() {
let about = document.getElementById('about');
home.addEventListener('click', () => {
- showContent();
+ wipeTruth();
+ deleteDelivery();
+ deleteContent();
+ (0,_pageload__WEBPACK_IMPORTED_MODULE_1__.pageReload)();
+
+ if (document.getElementById('footer') === null) {
+ (0,_pageload__WEBPACK_IMPORTED_MODULE_1__.createAppendFooter)();
+ }
+
+ refreshVariables();
+ deleteEventListeners();
+ resetNavBarStyle();
})
delivery.addEventListener('click', () => {
- hideContent();
+ wipeTruth();
+ deleteContent();
+ (0,_pageload__WEBPACK_IMPORTED_MODULE_1__.loadDel)();
+ resetNavBarStyle();
})
about.addEventListener('click', () => {
- hideContent();
+ deleteContent();
+ deleteDelivery();
+ deleteFooter();
+ (0,_truth__WEBPACK_IMPORTED_MODULE_3__.loadAboutPage)();
})
+ }
+ function deleteEventListeners() {
+ let home = document.getElementById('home');
+ let delivery = document.getElementById('delivery');
+ let about = document.getElementById('about');
+
+ home.removeEventListener('click', () => {
+ wipeTruth();
+ deleteDelivery();
+ deleteContent();
+ (0,_pageload__WEBPACK_IMPORTED_MODULE_1__.pageReload)();
+ if (document.getElementById('footer') === null) {
+ (0,_pageload__WEBPACK_IMPORTED_MODULE_1__.createAppendFooter)();
+ }
+
+ refreshVariables();
+ deleteEventListeners();
+ resetNavBarStyle();
+ })
+
+ delivery.removeEventListener('click', () => {
+ wipeTruth();
+ deleteContent();
+ (0,_pageload__WEBPACK_IMPORTED_MODULE_1__.loadDel)();
+ resetNavBarStyle();
+ })
+
+ about.removeEventListener('click', () => {
+ deleteContent();
+ deleteDelivery();
+ deleteFooter();
+ (0,_truth__WEBPACK_IMPORTED_MODULE_3__.loadAboutPage)();
+ })
}
- addEventListeners();
- };
(0,_pageload__WEBPACK_IMPORTED_MODULE_1__.pageLoad)();
-NAVIGATION();
+refreshVariables();
+addEventListeners();
})();
/******/ })()
;
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQzBHO0FBQ2pCO0FBQ087QUFDaEcsNENBQTRDLG1IQUFxQztBQUNqRiw4QkFBOEIsbUZBQTJCLENBQUMsNEZBQXFDO0FBQy9GLHlIQUF5SCxNQUFNLE1BQU0sTUFBTSxvQkFBb0I7QUFDL0oseUhBQXlILE1BQU0sTUFBTSxNQUFNLE1BQU0sb0JBQW9CO0FBQ3JLLHlDQUF5QyxzRkFBK0I7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixtQ0FBbUM7QUFDL0Q7QUFDQTtBQUNBLENBQUMsT0FBTyxnRkFBZ0YsVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxPQUFPLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFlBQVksV0FBVyxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsVUFBVSxPQUFPLEtBQUssVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLFVBQVUsWUFBWSxPQUFPLEtBQUssVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxPQUFPLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxPQUFPLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxjQUFjLE9BQU8sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksT0FBTyxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVBQVUsT0FBTyxLQUFLLFVBQVUsVUFBVSxZ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O1VBQ0E7O1VBRUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7O1VBRUE7VUFDQTs7Ozs7V0N6QkE7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLGlDQUFpQyxXQUFXO1dBQzVDO1dBQ0E7Ozs7O1dDUEE7V0FDQTtXQUNBO1dBQ0E7V0FDQSx5Q0FBeUMsd0NBQXdDO1dBQ2pGO1dBQ0E7V0FDQTs7Ozs7V0NQQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLEdBQUc7V0FDSDtXQUNBO1dBQ0EsQ0FBQzs7Ozs7V0NQRDs7Ozs7V0NBQTtXQUNBO1dBQ0E7V0FDQSx1REFBdUQsaUJBQWlCO1dBQ3hFO1dBQ0EsZ0RBQWdELGFBQWE7V0FDN0Q7Ozs7O1dDTkE7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7Ozs7O1dDbEJBOztXQUVBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7V0FFQTs7Ozs7V0NyQkE7Ozs7Ozs7Ozs7Ozs7OztBQ0FvQjtBQUNrQjtBQUNBO0FBQ0k7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBUTtBQUNSLGEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL3NyYy9zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2UvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vc3JjL3N0eWxlLmNzcz83MTYzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanMiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2UvLi9zcmMvYXBwZW5kLmpzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vc3JjL2RlbGl2ZXJ5LmpzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vc3JjL3BhZ2Vsb2FkLmpzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2Uvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS93ZWJwYWNrL3J1bnRpbWUvanNvbnAgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS93ZWJwYWNrL3J1bnRpbWUvbm9uY2UiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2UvLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2dldFVybC5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fID0gbmV3IFVSTChcImltZy9oZXJvLWltYWdlLmpwZ1wiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9V29yaytTYW5zOml0YWwsd2dodEAwLDUwMDswLDgwMDsxLDUwMDsxLDYwMDsxLDkwMCZkaXNwbGF5PXN3YXApO1wiXSk7XG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Xb3JrK1NhbnM6aXRhbCx3Z2h0QDAsNTAwOzAsNjAwOzAsODAwOzEsNTAwOzEsNjAwOzEsOTAwJmRpc3BsYXk9c3dhcCk7XCJdKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYGh0bWwsIGJvZHkge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbjpyb290IHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcclxufVxyXG5cclxucCB7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbiNuYXZpZ2F0aW9uLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgaGVpZ2h0OiAxMDBweDtcclxuICAgIGdhcDogOTBweDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIG1hcmdpbjogMjBweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XHJcbiAgICBmb250LXNpemU6IDYwcHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4jbmF2aWdhdGlvbi1jb250YWluZXIgZGl2IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4jbmF2aWdhdGlvbi1jb250YWluZXIgaW1nIHtcclxuICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICB3aWR0aDogMTAwcHg7XHJcbn1cclxuXHJcbiNsb2dvLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuI3dlbGNvbWUtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBoZWlnaHQ6IDEwMHB4O1xyXG4gICAgZm9udC1zaXplOiA1MHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIG1hcmdpbi1sZWZ0OiAyNXB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbiNwcm9kdWN0cy1kaXNwbGF5IHtcclxuICAgIG1hcmdpbjogMjBweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG59XHJcblxyXG4jc3RvcnktY29udGFpbmVyIHtcclxuICAgIGZvbnQtc2l6ZTogMjZweDtcclxuICAgIHdpZHRoOiA0MCU7XHJcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcclxufVxyXG5cclxuI3N0b3J5LWNvbnRhaW5lciBwIHtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xyXG59XHJcblxyXG4jc3RvcnktY29udGFpbmVyIGgzIHtcclxuICAgIGZvbnQtc2l6ZTogNjBweDtcclxuICAgIGNvbG9yOiByZ2IoMTgwLCAzNCwgMTUpO1xyXG59XHJcblxyXG4jcGhvdG8tY29udGFpbmVyIHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgd2lkdGg6IDYwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxufVxyXG5cclxuI3Bob3RvLWNvbnRhaW5lciBpbWcge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcclxuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbiNvdmVybGF5IHtcclxuICAgIGNvbG9yOiByZ2IoMTgwLCAzNCwgMTUpO1xyXG4gICAgZm9udC1zaXplOiBtaW4oMTV2dywgMjUwcHgpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIGJvdHRvbTogMzUlO1xyXG4gICAgbGVmdDogOTBweDtcclxufVxyXG5cclxuaHIge1xyXG4gICAgbWFyZ2luLXRvcDogNDBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCBibGFjaztcclxuXHJcblxyXG59XHJcblxyXG5oMyB7XHJcbiAgICBjb2xvcjogYmxhY2sgICAgO1xyXG4gICAgbWFyZ2luOiAyMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGZvbnQtc2l6ZTogNi41dmg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xyXG59XHJcblxyXG5vbCB7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4jbWVudS1saXN0IHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTQ4MDQyO1xyXG4gICAgYm9yZGVyOiAxMHB4IHNvbGlkICM1NDgwNDI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbn1cclxuXHJcbiNtZW51LWNvbnRhaW5lciBwIHtcclxuICAgIGNvbG9yOiB3aGl0ZXNtb2tlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XHJcbiAgICBmb250LXNpemU6IDQuNXZoO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuI21lbnUtbGlzdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcblxyXG4jZm9vdGVyLWVsZW1lbnRzLWNvbnRhaW5lciB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuI2Zvb3RlciB7XHJcbiAgICBtYXJnaW46IDIwcHg7XHJcbiAgICBoZWlnaHQ6IDIwMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4MCwgMzQsIDE1KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbn1cclxuXHJcbiN1cHBlci1wYXJ0IHtcclxuICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbiNsb3dlci1wYXJ0IHtcclxuICAgIGhlaWdodDogNDAlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGdhcDogMjBweDtcclxufVxyXG5cclxuI2xvd2VyLXBhcnQgYSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbn1cclxuXHJcbiNmb290ZXItZWxlbWVudHMtY29udGFpbmVyIHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4jd2VsY29tZS1jb250YWluZXIuaGlkZGVuLCAjcHJvZHVjdHMtZGlzcGxheS5oaWRkZW4sICNtZW51LWNvbnRhaW5lci5oaWRkZW4sICNmb290ZXIuaGlkZGVuLCAjZGVsaXZlcnktZGl2LmhpZGRlbiwgI2luZm8tY29udGFpbmVyLmhpZGRlbiB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4jaW5wdXQtY29udGFpbmVyIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHtfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8wX19ffSk7XHJcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xyXG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcclxufWAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3N0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFLQTtJQUNJLFlBQVk7SUFDWixXQUFXO0lBQ1gsU0FBUztBQUNiOztBQUVBO0lBQ0ksZUFBZTtJQUNmLG9DQUFvQztBQUN4Qzs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGFBQWE7SUFDYixhQUFhO0lBQ2IsU0FBUztJQUNULGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLGFBQWE7SUFDYixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksWUFBWTtJQUNaLGFBQWE7SUFDYixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsVUFBVTtJQUNWLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGVBQWU7SUFDZix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSx1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osV0FBVztBQUNmOztBQUVBO0lBQ0ksdUJBQXVCO0lBQ3ZCLDJCQUEyQjtJQUMzQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxVQUFVO0FBQ2Q7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLHlCQUF5Qjs7O0FBRzdCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLFVBQVU7QUFDZDs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsYUFBYTtJQUNiLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQixTQUFTO0lBQ1QsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osYUFBYTtJQUNiLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLFlBQVk7SUFDWixhQUFhO0lBQ2Isa0NBQWtDO0lBQ2xDLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLGFBQWE7SUFDYixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsU0FBUztBQUNiOztBQUVBO0lBQ0ksZUFBZTtJQUNmLHFCQUFxQjtJQUNyQixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQix5REFBeUM7SUFDekMsc0JBQXNCO0lBQ3RCLDRCQUE0QjtBQUNoQ1wiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Xb3JrK1NhbnM6aXRhbCx3Z2h0QDAsNTAwOzAsODAwOzEsNTAwOzEsNjAwOzEsOTAwJmRpc3BsYXk9c3dhcCcpO1xcclxcblxcclxcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVdvcmsrU2FuczppdGFsLHdnaHRAMCw1MDA7MCw2MDA7MCw4MDA7MSw1MDA7MSw2MDA7MSw5MDAmZGlzcGxheT1zd2FwJyk7XFxyXFxuXFxyXFxuXFxyXFxuaHRtbCwgYm9keSB7XFxyXFxuICAgIGhlaWdodDogMTAwJTtcXHJcXG4gICAgd2lkdGg6IDEwMCU7XFxyXFxuICAgIG1hcmdpbjogMDtcXHJcXG59XFxyXFxuXFxyXFxuOnJvb3Qge1xcclxcbiAgICBmb250LXNpemU6IDE0cHg7XFxyXFxuICAgIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcXHJcXG59XFxyXFxuXFxyXFxucCB7XFxyXFxuICAgIG1hcmdpbjogMDtcXHJcXG59XFxyXFxuXFxyXFxuI25hdmlnYXRpb24tY29udGFpbmVyIHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgaGVpZ2h0OiAxMDBweDtcXHJcXG4gICAgZ2FwOiA5MHB4O1xcclxcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxyXFxuICAgIG1hcmdpbjogMjBweDtcXHJcXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcXHJcXG4gICAgZm9udC1zaXplOiA2MHB4O1xcclxcbiAgICBmb250LXdlaWdodDogNjAwO1xcclxcbn1cXHJcXG5cXHJcXG4jbmF2aWdhdGlvbi1jb250YWluZXIgZGl2IHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuI25hdmlnYXRpb24tY29udGFpbmVyIGltZyB7XFxyXFxuICAgIGhlaWdodDogMTAwcHg7XFxyXFxuICAgIHdpZHRoOiAxMDBweDtcXHJcXG59XFxyXFxuXFxyXFxuI2xvZ28tY29udGFpbmVyIHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuI3dlbGNvbWUtY29udGFpbmVyIHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgaGVpZ2h0OiAxMDBweDtcXHJcXG4gICAgZm9udC1zaXplOiA1MHB4O1xcclxcbiAgICBmb250LXdlaWdodDogNjAwO1xcclxcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcXHJcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuI3Byb2R1Y3RzLWRpc3BsYXkge1xcclxcbiAgICBtYXJnaW46IDIwcHg7XFxyXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxyXFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxyXFxufVxcclxcblxcclxcbiNzdG9yeS1jb250YWluZXIge1xcclxcbiAgICBmb250LXNpemU6IDI2cHg7XFxyXFxuICAgIHdpZHRoOiA0MCU7XFxyXFxuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xcclxcbn1cXHJcXG5cXHJcXG4jc3RvcnktY29udGFpbmVyIHAge1xcclxcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcXHJcXG59XFxyXFxuXFxyXFxuI3N0b3J5LWNvbnRhaW5lciBoMyB7XFxyXFxuICAgIGZvbnQtc2l6ZTogNjBweDtcXHJcXG4gICAgY29sb3I6IHJnYigxODAsIDM0LCAxNSk7XFxyXFxufVxcclxcblxcclxcbiNwaG90by1jb250YWluZXIge1xcclxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXHJcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgICB3aWR0aDogNjAlO1xcclxcbiAgICBoZWlnaHQ6IGF1dG87XFxyXFxufVxcclxcblxcclxcbiNwaG90by1jb250YWluZXIgaW1nIHtcXHJcXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcXHJcXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XFxyXFxuICAgIGhlaWdodDogMTAwJTtcXHJcXG4gICAgd2lkdGg6IDEwMCU7XFxyXFxufVxcclxcblxcclxcbiNvdmVybGF5IHtcXHJcXG4gICAgY29sb3I6IHJnYigxODAsIDM0LCAxNSk7XFxyXFxuICAgIGZvbnQtc2l6ZTogbWluKDE1dncsIDI1MHB4KTtcXHJcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXHJcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgICBib3R0b206IDM1JTtcXHJcXG4gICAgbGVmdDogOTBweDtcXHJcXG59XFxyXFxuXFxyXFxuaHIge1xcclxcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xcclxcbiAgICB3aWR0aDogMTAwJTtcXHJcXG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCBibGFjaztcXHJcXG5cXHJcXG5cXHJcXG59XFxyXFxuXFxyXFxuaDMge1xcclxcbiAgICBjb2xvcjogYmxhY2sgICAgO1xcclxcbiAgICBtYXJnaW46IDIwcHg7XFxyXFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxyXFxuICAgIGZvbnQtc2l6ZTogNi41dmg7XFxyXFxuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XFxyXFxufVxcclxcblxcclxcbm9sIHtcXHJcXG4gICAgcGFkZGluZzogMDtcXHJcXG59XFxyXFxuXFxyXFxuI21lbnUtbGlzdCB7XFxyXFxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgwNDI7XFxyXFxuICAgIGJvcmRlcjogMTBweCBzb2xpZCAjNTQ4MDQyO1xcclxcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XFxyXFxuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xcclxcbiAgICBkaXNwbGF5OiBmbGV4O1xcclxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxyXFxufVxcclxcblxcclxcbiNtZW51LWNvbnRhaW5lciBwIHtcXHJcXG4gICAgY29sb3I6IHdoaXRlc21va2U7XFxyXFxuICAgIG1hcmdpbjogMDtcXHJcXG4gICAgbWFyZ2luLXRvcDogNXB4O1xcclxcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcXHJcXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xcclxcbiAgICBmb250LXNpemU6IDQuNXZoO1xcclxcbiAgICBmb250LXdlaWdodDogNjAwO1xcclxcbn1cXHJcXG5cXHJcXG4jbWVudS1saXN0IHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG59XFxyXFxuXFxyXFxuI2Zvb3Rlci1lbGVtZW50cy1jb250YWluZXIge1xcclxcbiAgICBoZWlnaHQ6IDEwMCU7XFxyXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxyXFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxyXFxufVxcclxcblxcclxcbiNmb290ZXIge1xcclxcbiAgICBtYXJnaW46IDIwcHg7XFxyXFxuICAgIGhlaWdodDogMjAwcHg7XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxODAsIDM0LCAxNSk7XFxyXFxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XFxyXFxufVxcclxcblxcclxcbiN1cHBlci1wYXJ0IHtcXHJcXG4gICAgZm9udC1zaXplOiAzMHB4O1xcclxcbiAgICBmb250LXdlaWdodDogNjAwO1xcclxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbn1cXHJcXG5cXHJcXG4jbG93ZXItcGFydCB7XFxyXFxuICAgIGhlaWdodDogNDAlO1xcclxcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgZ2FwOiAyMHB4O1xcclxcbn1cXHJcXG5cXHJcXG4jbG93ZXItcGFydCBhIHtcXHJcXG4gICAgZm9udC1zaXplOiAyMHB4O1xcclxcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxyXFxuICAgIGNvbG9yOiBibGFjaztcXHJcXG59XFxyXFxuXFxyXFxuI2Zvb3Rlci1lbGVtZW50cy1jb250YWluZXIge1xcclxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuI3dlbGNvbWUtY29udGFpbmVyLmhpZGRlbiwgI3Byb2R1Y3RzLWRpc3BsYXkuaGlkZGVuLCAjbWVudS1jb250YWluZXIuaGlkZGVuLCAjZm9vdGVyLmhpZGRlbiwgI2RlbGl2ZXJ5LWRpdi5oaWRkZW4sICNpbmZvLWNvbnRhaW5lci5oaWRkZW4ge1xcclxcbiAgICBkaXNwbGF5OiBub25lO1xcclxcbn1cXHJcXG5cXHJcXG4jaW5wdXQtY29udGFpbmVyIHtcXHJcXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcXHJcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltZy9oZXJvLWltYWdlLmpwZyk7XFxyXFxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XFxyXFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxyXFxufVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuICB1cmwgPSBTdHJpbmcodXJsLl9fZXNNb2R1bGUgPyB1cmwuZGVmYXVsdCA6IHVybCk7XG5cbiAgLy8gSWYgdXJsIGlzIGFscmVhZHkgd3JhcHBlZCBpbiBxdW90ZXMsIHJlbW92ZSB0aGVtXG4gIGlmICgvXlsnXCJdLipbJ1wiXSQvLnRlc3QodXJsKSkge1xuICAgIHVybCA9IHVybC5zbGljZSgxLCAtMSk7XG4gIH1cbiAgaWYgKG9wdGlvbnMuaGFzaCkge1xuICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gIH1cblxuICAvLyBTaG91bGQgdXJsIGJlIHdyYXBwZWQ/XG4gIC8vIFNlZSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy0zLyN1cmxzXG4gIGlmICgvW1wiJygpIFxcdFxcbl18KCUyMCkvLnRlc3QodXJsKSB8fCBvcHRpb25zLm5lZWRRdW90ZXMpIHtcbiAgICByZXR1cm4gXCJcXFwiXCIuY29uY2F0KHVybC5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csIFwiXFxcXG5cIiksIFwiXFxcIlwiKTtcbiAgfVxuICByZXR1cm4gdXJsO1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlbSkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgc3R5bGVzSW5ET00gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgdmFyIHJlc3VsdCA9IC0xO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKSB7XG4gIHZhciBpZENvdW50TWFwID0ge307XG4gIHZhciBpZGVudGlmaWVycyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcbiAgICBpZiAoaW5kZXhCeUlkZW50aWZpZXIgIT09IC0xKSB7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0ucmVmZXJlbmNlcysrO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnVwZGF0ZXIob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHVwZGF0ZXIgPSBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuYnlJbmRleCA9IGk7XG4gICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoaSwgMCwge1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiB1cGRhdGVyLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKSB7XG4gIHZhciBhcGkgPSBvcHRpb25zLmRvbUFQSShvcHRpb25zKTtcbiAgYXBpLnVwZGF0ZShvYmopO1xuICB2YXIgdXBkYXRlciA9IGZ1bmN0aW9uIHVwZGF0ZXIobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCAmJiBuZXdPYmouc3VwcG9ydHMgPT09IG9iai5zdXBwb3J0cyAmJiBuZXdPYmoubGF5ZXIgPT09IG9iai5sYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB1cGRhdGVyO1xufVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGlzdCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9pZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW19pXTtcbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG4gICAgICBpZiAoc3R5bGVzSW5ET01bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRE9NW19pbmRleF0udXBkYXRlcigpO1xuICAgICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoX2luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcbiAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0QnlTZWxlY3RvcihpbnNlcnQsIHN0eWxlKSB7XG4gIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQoaW5zZXJ0KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydEJ5U2VsZWN0b3I7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gIG9wdGlvbnMuc2V0QXR0cmlidXRlcyhlbGVtZW50LCBvcHRpb25zLmF0dHJpYnV0ZXMpO1xuICBvcHRpb25zLmluc2VydChlbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xuICByZXR1cm4gZWxlbWVudDtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuICBpZiAobm9uY2UpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlczsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaikge1xuICB2YXIgY3NzID0gXCJcIjtcbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG4gIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2Ygb2JqLmxheWVyICE9PSBcInVuZGVmaW5lZFwiO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG4gIGNzcyArPSBvYmouY3NzO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9XG5cbiAgLy8gRm9yIG9sZCBJRVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG4gIG9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG59XG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBkb21BUEkob3B0aW9ucykge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge30sXG4gICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgfTtcbiAgfVxuICB2YXIgc3R5bGVFbGVtZW50ID0gb3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gIHJldHVybiB7XG4gICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob2JqKSB7XG4gICAgICBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaik7XG4gICAgfSxcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVUYWdUcmFuc2Zvcm07IiwiaW1wb3J0IGxvZ28gZnJvbSAnLi9pbWcvbG9nby5wbmcnXHJcbmV4cG9ydCBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250ZW50Jyk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kVG9EaXZXaXRoVGV4dChlbGVtZW50LCB0ZXh0KSB7XHJcbiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBsZXQgZWxlbWVudFRvQXBwZW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgJHtlbGVtZW50fWApO1xyXG4gICAgZWxlbWVudFRvQXBwZW5kLmlubmVySFRNTCA9IHRleHQ7XHJcbiAgICBkaXYuYXBwZW5kQ2hpbGQoZWxlbWVudFRvQXBwZW5kKTtcclxuICAgIHJldHVybiBkaXY7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2dvQXBwZW5kKCkge1xyXG4gICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgY29udGFpbmVyLmlkID0gJ2xvZ28tY29udGFpbmVyJ1xyXG4gICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZpZ2F0aW9uLWNvbnRhaW5lcicpO1xyXG4gICAgbGV0IGxvZ29Ub0FwcGVuZCA9IG5ldyBJbWFnZSgpO1xyXG4gICAgbG9nb1RvQXBwZW5kLnNyYyA9IGxvZ287XHJcbiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQobG9nb1RvQXBwZW5kKTtcclxuICAgIGhlYWRlci5hcHBlbmRDaGlsZChjb250YWluZXIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kVG9IZWFkZXIoZWxlbWVudCkge1xyXG4gICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgaGVhZGVyLmlkID0gJ2hlYWRlcic7XHJcbiAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGVudCcpLmFwcGVuZENoaWxkKGhlYWRlcik7XHJcbn1cclxuIiwiaW1wb3J0IHsgY29udGVudCB9IGZyb20gXCIuL2FwcGVuZFwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREZWxpdmVyeSgpIHtcclxuICAgIGNvbnN0IEZPT1RFUiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb290ZXInKTtcclxuICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsaXZlcnktdGV4dCcpID09PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWxpdmVyeS1kaXYnKTtcclxuICAgICAgICBkaXYuc3R5bGUubWFyZ2luID0gJzIwcHgnO1xyXG4gICAgICAgIGxldCB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgICAgIHRleHQuaWQgPSAnZGVsaXZlcnktdGV4dCc7XHJcbiAgICAgICAgZGl2LmFwcGVuZENoaWxkKHRleHQpO1xyXG4gICAgICAgIHRleHQuaW5uZXJIVE1MID0gJ1dlbGNvbWUgdG8gdGhlIGRlbGl2ZXJ5IHBhZ2UsIGhlcmUgeW91IGNhbiBvcmRlciB5b3VyIGZhdm91cml0ZSBtZWFsLic7XHJcbiAgICAgICAgdGV4dC5zdHlsZS5tYXJnaW5Cb3R0b20gPSAnMjBweCc7XHJcbiAgICAgICAgdGV4dC5zdHlsZS5mb250U2l6ZSA9ICc1MHB4JztcclxuXHJcbiAgICAgICAgbGV0IGlucHV0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuaWQgPSAnaW5wdXQtY29udGFpbmVyJztcclxuICAgICAgICBpbnB1dENvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xyXG4gICAgICAgIGlucHV0Q29udGFpbmVyLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2NlbnRlcic7XHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuc3R5bGUucGFkZGluZ1RvcCA9ICcyMDBweCc7XHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuc3R5bGUucGFkZGluZ0JvdHRvbSA9ICcyMDBweCc7XHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuc3R5bGUuYWxpZ25JdGVtcyA9ICdjZW50ZXInO1xyXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZChpbnB1dENvbnRhaW5lcik7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xyXG4gICAgICAgIGlucHV0Lm5hbWUgPSAnYWRyZXNzJztcclxuICAgICAgICBpbnB1dC5pZCA9ICdhZHJlc3MnO1xyXG4gICAgICAgIGlucHV0LnN0eWxlLndpZHRoID0gJzMwMHB4JztcclxuICAgICAgICBpbnB1dC5zdHlsZS5oZWlnaHQgPSAnMzBweCc7XHJcbiAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gJ25vbmUnO1xyXG5cclxuICAgICAgICBsZXQgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xyXG4gICAgICAgIGxhYmVsLmh0bWxGb3IgPSAnYWRyZXNzJztcclxuICAgICAgICBsYWJlbC5pbm5lckhUTUwgPSAnRGVsaXZlcnkgYWRyZXNzOic7XHJcbiAgICAgICAgbGFiZWwuc3R5bGUuZm9udFNpemUgPSAnNjBweCc7XHJcbiAgICAgICAgbGFiZWwuc3R5bGUuZm9udFdlaWdodCA9ICc2MDAnO1xyXG4gICAgICAgIGxhYmVsLnN0eWxlLmNvbG9yID0gJ3doaXRlJztcclxuICAgICAgICBcclxuICAgICAgICBsZXQgaW5mb0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIGluZm9Db250YWluZXIuaWQgPSAnaW5mby1jb250YWluZXInO1xyXG4gICAgICAgIGxldCBpbmZvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgICAgIGluZm8uc3R5bGUuY29sb3IgPSAnd2hpdGUnO1xyXG4gICAgICAgIGluZm9Db250YWluZXIuYXBwZW5kQ2hpbGQoaW5mbyk7XHJcbiAgICAgICAgaW5mby5pbm5lckhUTUwgPSAnSWYgeW91IGdldCB0aGUgbWVzc2FnZSBcXCd1bmF2YWlsYWJsZSBhZHJlc3MsIHBsZWFzZSBjb250YWN0IG91ciBjdXN0b21lciBzdXBwb3J0IHRlYW1cXCcsIHBsZWFzZSBjaG9vc2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgbWV0aG9kcyBvZiBjb250YWN0aW5nIG91ciBjdXN0b20gc3VwcG9wcnQuJztcclxuXHJcbiAgICAgICAgbGV0IGNvbnRhY3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBjb250YWN0Q29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XHJcblxyXG4gICAgICAgIGxldCBlbWFpbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcclxuICAgICAgICBsZXQgcGhvbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgZW1haWwuaW5uZXJIVE1MID0gJ2xvc3BvbGxvc0BjdXN0b21lci5jb20nXHJcbiAgICAgICAgcGhvbmUuaW5uZXJIVE1MID0gJysgMSA1MDUgOTk5IDk5OSc7XHJcblxyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuYXBwZW5kQ2hpbGQoZW1haWwpO1xyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuYXBwZW5kQ2hpbGQocGhvbmUpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuc3R5bGUuY29sb3IgPSAnd2hpdGUnO1xyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuc3R5bGUuZm9udFNpemUgPSAnMjBweCc7XHJcbiAgICAgICAgY29udGFjdENvbnRhaW5lci5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdjZW50ZXInO1xyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuc3R5bGUuZ2FwID0gJzgwcHgnO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGluZm9Db250YWluZXIuc3R5bGUucGFkZGluZ0JvdHRvbSA9ICcxMDBweCc7XHJcbiAgICAgICAgaW5mb0NvbnRhaW5lci5zdHlsZS5tYXJnaW4gPSAnMjBweCc7XHJcbiAgICAgICAgaW5mb0NvbnRhaW5lci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzU0ODA0Mic7XHJcbiAgICAgICAgaW5mb0NvbnRhaW5lci5zdHlsZS5ib3JkZXJSYWRpdXMgPSAnMTBweCc7XHJcbiAgICAgICAgaW5mb0NvbnRhaW5lci5zdHlsZS5wYWRkaW5nVG9wID0gJzIwcHgnO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGluZm8uc3R5bGUubWFyZ2luID0gJzIwcHgnXHJcbiAgICAgICAgaW5mby5zdHlsZS5mb250U2l6ZSA9ICcyNXB4JztcclxuXHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuYXBwZW5kQ2hpbGQobGFiZWwpO1xyXG4gICAgICAgIGlucHV0Q29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTtcclxuICAgICAgICBpbmZvQ29udGFpbmVyLmFwcGVuZENoaWxkKGNvbnRhY3RDb250YWluZXIpO1xyXG4gICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoaW5mb0NvbnRhaW5lcik7XHJcbiAgICAgICAgZGl2LmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpO1xyXG4gICAgfVxyXG4gICAgRk9PVEVSLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpO1xyXG59ICIsIiBpbXBvcnQgeyBhcHBlbmRUb0RpdldpdGhUZXh0IH0gZnJvbSBcIi4vYXBwZW5kXCI7XHJcbiBpbXBvcnQgeyBhcHBlbmRUb0hlYWRlciB9IGZyb20gXCIuL2FwcGVuZFwiO1xyXG4gaW1wb3J0IHtjb250ZW50fSBmcm9tIFwiLi9hcHBlbmRcIjtcclxuIGltcG9ydCB7IGxvZ29BcHBlbmQgfSBmcm9tIFwiLi9hcHBlbmRcIjtcclxuIGltcG9ydCBwaG90bzEgZnJvbSAnLi9pbWcvcGhvdG8tMS5qcGcnXHJcbiBpbXBvcnQgeyBsb2FkRGVsaXZlcnkgfSBmcm9tIFwiLi9kZWxpdmVyeVwiO1xyXG5cclxuIGV4cG9ydCBmdW5jdGlvbiBwYWdlTG9hZCgpIHtcclxuICAgIGNyZWF0ZU5hdmlnYXRpb25NZW51KCk7XHJcbiAgICBkaXNwbGF5V2VsY29tZSgpO1xyXG4gICAgYWRkUGhvdG9PdmVybGF5KCk7XHJcbiAgICBjcmVhdGVTdG9yeSgpO1xyXG4gICAgY3JlYXRlTWVudSgpO1xyXG4gICAgY3JlYXRlQXBwZW5kRm9vdGVyKCk7XHJcbiAgICBjcmVhdGVEZWxpdmVyeURpdigpO1xyXG4gICAgbG9hZERlbGl2ZXJ5KCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRpc3BsYXlXZWxjb21lKCkge1xyXG4gICAgbGV0IHdlbGNvbWVDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHdlbGNvbWVDb250YWluZXIuaWQgPSAnd2VsY29tZS1jb250YWluZXInO1xyXG4gICAgbGV0IHdlbGNvbWVUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgd2VsY29tZVRleHQuaW5uZXJIVE1MID0gJ1dlbGNvbWUgdG8gTG9zIFBvbGxvcyBIZXJtYW5vcyEgV2hhdCB3b3VsZCB5b3UgbGlrZSB0byBlYXQ/JztcclxuICAgIHdlbGNvbWVDb250YWluZXIuYXBwZW5kQ2hpbGQod2VsY29tZVRleHQpO1xyXG4gICAgY29udGVudC5hcHBlbmRDaGlsZCh3ZWxjb21lQ29udGFpbmVyKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTmF2aWdhdGlvbk1lbnUgKCkge1xyXG4gICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgY29udGFpbmVyLmlkID0gJ25hdmlnYXRpb24tY29udGFpbmVyJztcclxuICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcclxuICAgIGxvZ29BcHBlbmQoKTtcclxuXHJcbiAgICBsZXQgaG9tZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgaG9tZS5pZCA9ICdob21lJztcclxuICAgIGxldCBob21lVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcclxuICAgIGhvbWUuYXBwZW5kQ2hpbGQoaG9tZVRleHQpO1xyXG4gICAgaG9tZVRleHQuaW5uZXJIVE1MID0gJ0hvbWUnO1xyXG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGhvbWUpO1xyXG5cclxuICAgIGxldCBkZWxpdmVyeSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgZGVsaXZlcnkuaWQgPSAnZGVsaXZlcnknO1xyXG4gICAgbGV0IGRlbGl2ZXJ5VGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcclxuICAgIGRlbGl2ZXJ5VGV4dC5pbm5lckhUTUwgPSAnRGVsaXZlcnknO1xyXG4gICAgZGVsaXZlcnkuYXBwZW5kQ2hpbGQoZGVsaXZlcnlUZXh0KTtcclxuICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChkZWxpdmVyeSk7XHJcblxyXG4gICAgbGV0IGFib3V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBhYm91dC5pZCA9ICdhYm91dCc7XHJcbiAgICBsZXQgYWJvdXRUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgYWJvdXRUZXh0LmlubmVySFRNTCA9ICdBYm91dCc7XHJcbiAgICBhYm91dC5hcHBlbmRDaGlsZChhYm91dFRleHQpO1xyXG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGFib3V0KTtcclxuXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFkZFBob3RvT3ZlcmxheSgpIHtcclxuICAgIGxldCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIGRpdi5pZCA9ICdwcm9kdWN0cy1kaXNwbGF5JztcclxuICAgIGxldCBmaXJzdFBob3RvID0gbmV3IEltYWdlKCk7XHJcbiAgICBmaXJzdFBob3RvLnNyYyA9IHBob3RvMTtcclxuICAgIGZpcnN0UGhvdG8uYWx0ID0gJ0NyaXNweSwgZGVsaWNpb3VzIGNoaWNrZW4gaW4gdGhlIHBhcGVyIGNvbnRhaW5lcnMnXHJcbiAgICBsZXQgcGhvdG9Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHBob3RvQ29udGFpbmVyLmlkID0gJ3Bob3RvLWNvbnRhaW5lcic7XHJcbiAgICBwaG90b0NvbnRhaW5lci5hcHBlbmRDaGlsZChmaXJzdFBob3RvKTtcclxuICAgIGxldCBvdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgb3ZlcmxheS5pbm5lckhUTUwgPSAnNC4zMiQnO1xyXG4gICAgb3ZlcmxheS5pZCA9ICdvdmVybGF5JztcclxuICAgIHBob3RvQ29udGFpbmVyLmFwcGVuZENoaWxkKG92ZXJsYXkpO1xyXG4gICAgZGl2LmFwcGVuZENoaWxkKHBob3RvQ29udGFpbmVyKTtcclxuICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoZGl2KTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlU3RvcnkoKSB7XHJcbiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2R1Y3RzLWRpc3BsYXknKTtcclxuICAgIGxldCBuZXdEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIG5ld0Rpdi5pZCA9ICdzdG9yeS1jb250YWluZXInO1xyXG4gICAgbGV0IGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdoMycpO1xyXG4gICAgaC5pbm5lckhUTUwgPSAnMzQgeWVhcnMgb2YgdGhlIGZpbmVzdCBjaGlja2VuJ1xyXG4gICAgbmV3RGl2LmFwcGVuZENoaWxkKGgpO1xyXG4gICAgbGV0IHAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICBwLmlubmVySFRNTCA9ICdMb3MgUG9sbG9zIEhlcm1hbm9zIGlzIGEgYnJhaW4gY2hpbGQgb2YgYSBicmlsbGlhbnQgQ2hpbGxpYW4tTWV4aWNhbiBlbnRyZXByZW5ldXIgd2hvIHdhbnRlZCB0byBjb29rIG9ubHkgdGhlIGZpbmVzdCBjaGlja2VuLiBMb3MgUG9sbG9zIEhlcm1hbm9zIHdhcyBpbml0aWFsbHkgb25seSBhIHNtYWxsIHJlc3RhdXJhbnQgb24gdGhlIG91dHNraXJ0cyBvZiBBbGJlcnF1ZXF1ZS4gSG93ZXZlciBub3QgbG9uZyBhZnRlciB0aGUgaW50aWFsIG9wZW5pbmcsIHRoZSByZXN0YXVyYW50IGJlZ3VuIGF0dHJhY3RpbmcgY3Jvd2Qgb2YgQWxidXF1cWVycXVlIHJlc2lkZW50cy4gRXZlbiB0aGUgaW5oYWJpbnRhbnRzIG9mIHRvd25zIG91dHNpZGUgdGhlIEFsYnVxdWVycXVlIGNhbWUgdG8gdmlzaXQgdGhlIHJlbm93bmVkIHJlc3R1YWQgY2hpY2VrbiByZXN0YXVyYW50IGluIHRoZSBBTFEuIFNpbmNlIHRoZW4sIHRoZSByZXN0YXVyYW50IGhhcyBleHBhbmRlZCB0byBtYW55IGRpZmZlcmVudCBsb2NhdGlvbnMsIGluY2x1ZGluZyBvdGhlciBzdGF0ZXM7IEFyaXpvbmEsIENvbG9yYWRvLCBOZXZhZGEsIFV0YWguLiBldmVyeW9uZSBjYW4gbm93IHRyeSB0aGUgZmluZXN0IGNoaWNrZW4hIEJ1dCB0aGUgcmVzdGF1cmFudCBoYXMgbm90IGZvcmdvdHRlbiBpdHMgcm9vdHMuIFdpdGggbG92ZSBhbmQgY2FyZSBvZiBvdXIgTFBIIGVtcGxveWVlcyBhbmQgaXRzIGN1bm5uaW5nIGZvdW5kZXIsIHRoZSBMUEggaGFzIHN0YXllZCB0cnVlIHRvIGl0cyB2YWx1ZXMuIFNlcnZpbmcgb25seSB0aGUgZmluZXN0IGFuZCB0YXN0aWVzdCBjaGlja2VuIGluIHRoZSBlbnRpcmV0eSBvZiB0aGUgU291dGguJztcclxuICAgIG5ld0Rpdi5hcHBlbmRDaGlsZChwKTtcclxuICAgIGxldCBsaW5lQnJlYWsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdocicpO1xyXG4gICAgbmV3RGl2LmFwcGVuZENoaWxkKGxpbmVCcmVhayk7XHJcbiAgICBkaXYuYXBwZW5kQ2hpbGQobmV3RGl2KTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW1JbnNpZGVBRmlyc3RMaXN0KHRleHQpIHtcclxuICAgIGxldCBsaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpcnN0LWxpc3QnKTtcclxuICAgIGxldCBtZW51SXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcclxuICAgIG1lbnVJdGVtLmlubmVySFRNTCA9IHRleHQ7XHJcbiAgICBsaXN0LmFwcGVuZENoaWxkKG1lbnVJdGVtKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW1JblNlY29uZExpc3QodGV4dCkge1xyXG4gICAgbGV0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Vjb25kLWxpc3QnKTtcclxuICAgIGxldCBtZW51SXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcclxuICAgIG1lbnVJdGVtLmlubmVySFRNTCA9IHRleHQ7XHJcbiAgICBsaXN0LmFwcGVuZENoaWxkKG1lbnVJdGVtKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTWVudSgpIHtcclxuICAgIGxldCBtZW51ID0gIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbWVudS5pZCA9ICdtZW51LWNvbnRhaW5lcic7XHJcbiAgICBjb250ZW50LmFwcGVuZENoaWxkKG1lbnUpO1xyXG4gICAgbGV0IG1lbnVUaXRsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gzJyk7XHJcbiAgICBtZW51VGl0bGUuaW5uZXJIVE1MID0gJ1NwZWNpYWwgQ2hpY2tlbiBNZW51JztcclxuICAgIG1lbnUuYXBwZW5kQ2hpbGQobWVudVRpdGxlKTtcclxuXHJcbiAgICBsZXQgbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbGlzdC5pZCA9ICdtZW51LWxpc3QnO1xyXG4gICAgbGV0IGxpc3RGaXJzdFBhcnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIGxpc3RGaXJzdFBhcnQuaWQgPSAnZmlyc3QtbGlzdCc7XHJcbiAgICBsZXQgbGlzdFNlY29uZFBhcnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIGxpc3RTZWNvbmRQYXJ0LmlkID0gJ3NlY29uZC1saXN0JztcclxuICAgIGxpc3QuYXBwZW5kQ2hpbGQobGlzdEZpcnN0UGFydCk7XHJcbiAgICBsaXN0LmFwcGVuZENoaWxkKGxpc3RTZWNvbmRQYXJ0KTtcclxuICAgIG1lbnUuYXBwZW5kQ2hpbGQobGlzdCk7XHJcbiAgICBjcmVhdGVNZW51SXRlbUluc2lkZUFGaXJzdExpc3QoJzEuIENyaXNwIENoaWNrZW4gQnVyZ2VyIC0gNy40JCcpO1xyXG4gICAgY3JlYXRlTWVudUl0ZW1JbnNpZGVBRmlyc3RMaXN0KCcyLiBDcmlzcHkgQ2xhc3NpYyBDaGlja2VuIFdpbmdzIC0gNS40JCcpO1xyXG4gICAgY3JlYXRlTWVudUl0ZW1JbnNpZGVBRmlyc3RMaXN0KCczLiBcIlRoZSBMb25lbHkgU3RhclwiIEJ1cmdlciAtIDkuNCQnKTtcclxuICAgIGNyZWF0ZU1lbnVJdGVtSW5zaWRlQUZpcnN0TGlzdCgnNC4gU21va2luZyBob3QgY2hpa2NlbiBicmVhc3RzLSA1LjQkJyk7XHJcbiAgICBjcmVhdGVNZW51SXRlbUluU2Vjb25kTGlzdCgnNS4gU3RhbmRhcnQgVGV4YXMgQnVyZ2VyIC0gOC41JCcpO1xyXG4gICAgY3JlYXRlTWVudUl0ZW1JblNlY29uZExpc3QoJzYuIFN3ZWV0IENoaWNrZW4gVGhpZ3MgLSA2LjQkJyk7XHJcbiAgICBjcmVhdGVNZW51SXRlbUluU2Vjb25kTGlzdCgnNy4gVmFjYXRpb24gU2V0IC0gMTQuNCQnKTtcclxuICAgIGNyZWF0ZU1lbnVJdGVtSW5TZWNvbmRMaXN0KCc4LiBUaGUgQ29udGluZW50YWwgQnVyZ2VyIC0gMTQuNSQnKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlQXBwZW5kRm9vdGVyKCkge1xyXG4gICAgbGV0IGZvb3RlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgZm9vdGVyLmlkID0gJ2Zvb3Rlcic7XHJcbiAgICBsZXQgZm9vdGVyRWxlbWVudHNDb250YW5pZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIGZvb3RlckVsZW1lbnRzQ29udGFuaWVyLmlkID0gJ2Zvb3Rlci1lbGVtZW50cy1jb250YWluZXInO1xyXG4gICAgbGV0IGZvb3RlclVwcGVyUGFydCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbGV0IGZvb3Rlckxvd2VyUGFydD0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBmb290ZXJVcHBlclBhcnQuaWQgPSAndXBwZXItcGFydCc7XHJcbiAgICBmb290ZXJMb3dlclBhcnQuaWQgPSAnbG93ZXItcGFydCc7XHJcbiAgICBmb290ZXJFbGVtZW50c0NvbnRhbmllci5hcHBlbmRDaGlsZChmb290ZXJVcHBlclBhcnQpO1xyXG4gICAgZm9vdGVyRWxlbWVudHNDb250YW5pZXIuYXBwZW5kQ2hpbGQoZm9vdGVyTG93ZXJQYXJ0KTtcclxuICAgIGxldCBjb250YWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBsZXQgZW1haWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICBlbWFpbC5pbm5lckhUTUwgPSAnbG9zcG9sbG9zQGhlcm1hbm9zLmNvbSc7XHJcbiAgICBsZXQgcGhvbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICBwaG9uZS5pbm5lckhUTUwgPSAnKzEgKDUwNSkgMTQ2LTAxOTUnXHJcbiAgICBsZXQgdGhhbmtzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgdGhhbmtzLmlubmVySFRNTCA9ICdQaG90byBieSA8YSBocmVmPVwiaHR0cHM6Ly91bnNwbGFzaC5jb20vZXMvQHRpZ2VycnVsZXp6ej91dG1fc291cmNlPXVuc3BsYXNoJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NvbnRlbnQ9Y3JlZGl0Q29weVRleHRcIj5CcmlhbiBDaGFuPC9hPiBvbiA8YSBocmVmPVwiaHR0cHM6Ly91bnNwbGFzaC5jb20vcGhvdG9zL05iWGpab215TkVNP3V0bV9zb3VyY2U9dW5zcGxhc2gmdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY29udGVudD1jcmVkaXRDb3B5VGV4dFwiPlVuc3BsYXNoPC9hPic7XHJcbiAgICBsZXQgdGhhbnNrVHdvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgdGhhbnNrVHdvLmlubmVySFRNTCA9ICdQaG90byBieSA8YSBocmVmPVwiaHR0cHM6Ly93d3cucGV4ZWxzLmNvbS9waG90by90b3Atdmlldy1vZi1mb29kLTE2NDA3NzIvXCI+IEVsbGEgT2xzc29uPC9hPic7XHJcbiAgICBmb290ZXJMb3dlclBhcnQuYXBwZW5kQ2hpbGQodGhhbmtzKTtcclxuICAgIGZvb3Rlckxvd2VyUGFydC5hcHBlbmRDaGlsZCh0aGFuc2tUd28pXHJcbiAgICBjb250YWN0LmFwcGVuZENoaWxkKHBob25lKTtcclxuICAgIGNvbnRhY3QuYXBwZW5kQ2hpbGQoZW1haWwpO1xyXG4gICAgZm9vdGVyVXBwZXJQYXJ0LmFwcGVuZENoaWxkKGNvbnRhY3QpO1xyXG4gICAgZm9vdGVyLmFwcGVuZENoaWxkKGZvb3RlckVsZW1lbnRzQ29udGFuaWVyKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9vdGVyKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlRGVsaXZlcnlEaXYoKSB7XHJcbiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkaXYuaWQgPSAnZGVsaXZlcnktZGl2JztcclxuICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoZGl2KTtcclxufSIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJ2YXIgc2NyaXB0VXJsO1xuaWYgKF9fd2VicGFja19yZXF1aXJlX18uZy5pbXBvcnRTY3JpcHRzKSBzY3JpcHRVcmwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcubG9jYXRpb24gKyBcIlwiO1xudmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmRvY3VtZW50O1xuaWYgKCFzY3JpcHRVcmwgJiYgZG9jdW1lbnQpIHtcblx0aWYgKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpXG5cdFx0c2NyaXB0VXJsID0gZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM7XG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkge1xuXHRcdFx0dmFyIGkgPSBzY3JpcHRzLmxlbmd0aCAtIDE7XG5cdFx0XHR3aGlsZSAoaSA+IC0xICYmICFzY3JpcHRVcmwpIHNjcmlwdFVybCA9IHNjcmlwdHNbaS0tXS5zcmM7XG5cdFx0fVxuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBkb2N1bWVudC5iYXNlVVJJIHx8IHNlbGYubG9jYXRpb24uaHJlZjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLy8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHRcImluZGV4XCI6IDBcbn07XG5cbi8vIG5vIGNodW5rIG9uIGRlbWFuZCBsb2FkaW5nXG5cbi8vIG5vIHByZWZldGNoaW5nXG5cbi8vIG5vIHByZWxvYWRlZFxuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0XG5cbi8vIG5vIG9uIGNodW5rcyBsb2FkZWRcblxuLy8gbm8ganNvbnAgZnVuY3Rpb24iLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm5jID0gdW5kZWZpbmVkOyIsImltcG9ydCAnLi9zdHlsZS5jc3MnXHJcbmltcG9ydCB7IHBhZ2VMb2FkIH0gZnJvbSAnLi9wYWdlbG9hZCc7XHJcbmltcG9ydCB7IGxvZ29BcHBlbmQgfSBmcm9tICcuL2FwcGVuZCc7XHJcbmltcG9ydCB7IGxvYWREZWxpdmVyeSB9IGZyb20gJy4vZGVsaXZlcnknO1xyXG5cclxuY29uc3QgTkFWSUdBVElPTiA9IGZ1bmN0aW9uKCkge1xyXG5cclxuICAgIGNvbnN0IFdFTENPTUVDT05UQUlORVIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2VsY29tZS1jb250YWluZXInKTtcclxuICAgIGNvbnN0IFBST0RVQ1RTQ09OVEFJTkVSID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2R1Y3RzLWRpc3BsYXknKTtcclxuICAgIGNvbnN0IE1FTlVDT05UQUlORVIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudS1jb250YWluZXInKTtcclxuICAgIGNvbnN0IEZPT1RFUiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb290ZXInKTtcclxuICAgIGNvbnN0IERFTElWRVJZRElWID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlbGl2ZXJ5LWRpdicpO1xyXG4gICAgY29uc3QgSU5GT0NPTlRBSU5FUiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmZvLWNvbnRhaW5lcicpO1xyXG5cclxuICAgIGZ1bmN0aW9uIGhpZGVDb250ZW50KCkge1xyXG4gICAgICAgIFdFTENPTUVDT05UQUlORVIuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XHJcbiAgICAgICAgUFJPRFVDVFNDT05UQUlORVIuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XHJcbiAgICAgICAgTUVOVUNPTlRBSU5FUi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcclxuICAgICAgICBGT09URVIuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XHJcbiAgICAgICAgREVMSVZFUllESVYuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7XHJcbiAgICAgICAgSU5GT0NPTlRBSU5FUi5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgZnVuY3Rpb24gc2hvd0NvbnRlbnQoKSB7XHJcbiAgICAgICAgV0VMQ09NRUNPTlRBSU5FUi5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcclxuICAgICAgICBQUk9EVUNUU0NPTlRBSU5FUi5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcclxuICAgICAgICBNRU5VQ09OVEFJTkVSLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpO1xyXG4gICAgICAgIEZPT1RFUi5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcclxuICAgICAgICBERUxJVkVSWURJVi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcclxuICAgICAgICBJTkZPQ09OVEFJTkVSLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBmdW5jdGlvbiBhZGRFdmVudExpc3RlbmVycygpIHtcclxuICAgICAgICBsZXQgaG9tZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob21lJyk7XHJcbiAgICAgICAgbGV0IGRlbGl2ZXJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlbGl2ZXJ5Jyk7XHJcbiAgICAgICAgbGV0IGFib3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fib3V0Jyk7XHJcbiAgICBcclxuICAgICAgICBob21lLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xyXG4gICAgICAgICAgICBzaG93Q29udGVudCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICBcclxuICAgICAgICBkZWxpdmVyeS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgaGlkZUNvbnRlbnQoKTtcclxuICAgICAgICB9KVxyXG4gICAgXHJcbiAgICAgICAgYWJvdXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGhpZGVDb250ZW50KCk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICB9XHJcbiAgICBhZGRFdmVudExpc3RlbmVycygpO1xyXG4gfTtcclxuXHJcbnBhZ2VMb2FkKCk7XHJcbk5BVklHQVRJT04oKTsiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
\ No newline at end of file
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQzBHO0FBQ2pCO0FBQ087QUFDaEcsNENBQTRDLG1IQUFxQztBQUNqRiw4QkFBOEIsbUZBQTJCLENBQUMsNEZBQXFDO0FBQy9GLHlIQUF5SCxNQUFNLE1BQU0sTUFBTSxvQkFBb0I7QUFDL0oseUhBQXlILE1BQU0sTUFBTSxNQUFNLE1BQU0sb0JBQW9CO0FBQ3JLLHlDQUF5QyxzRkFBK0I7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixtQ0FBbUM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLE9BQU8sZ0ZBQWdGLFVBQVUsVUFBVSxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxZQUFZLFdBQVcsWUFBWSxPQUFPLEtBQUssVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFVBQVUsT0FBTyxLQUFLLFVBQVUsWUFBWSxPQUFPLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxPQUFPLEtBQUssVUFBVSxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsT0FBTyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsY0FBYyxPQUFPLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxZQUFZLE9BQU8sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxh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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxREFBVTtBQUN0QjtBQUNBO0FBQ0EsZ0JBQWdCLDZEQUFrQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxrREFBTztBQUNuQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxREFBYTtBQUN6QixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFEQUFVO0FBQ3RCO0FBQ0E7QUFDQSxnQkFBZ0IsNkRBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGtEQUFPO0FBQ25CO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFEQUFhO0FBQ3pCLFNBQVM7QUFDVDtBQUNBO0FBQ0EsbURBQVE7QUFDUjtBQUNBLG9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2UvLi9zcmMvc3R5bGUuY3NzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanMiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2UvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL3NyYy9zdHlsZS5jc3M/NzE2MyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanMiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2UvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2UvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2UvLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vc3JjL2FwcGVuZC5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL3NyYy9kZWxpdmVyeS5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL3NyYy9wYWdlbG9hZC5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS8uL3NyYy90cnV0aC5qcyIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2Uvd2VicGFjay9ydW50aW1lL2dsb2JhbCIsIndlYnBhY2s6Ly90aGVvZGlucHJvamVjdC1yZXN0YXVyYW50cGFnZS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2Uvd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGgiLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2Uvd2VicGFjay9ydW50aW1lL2pzb25wIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vdGhlb2RpbnByb2plY3QtcmVzdGF1cmFudHBhZ2Uvd2VicGFjay9ydW50aW1lL25vbmNlIiwid2VicGFjazovL3RoZW9kaW5wcm9qZWN0LXJlc3RhdXJhbnRwYWdlLy4vc3JjL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18gZnJvbSBcIi4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9nZXRVcmwuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMF9fXyA9IG5ldyBVUkwoXCJpbWcvaGVyby1pbWFnZS5qcGdcIiwgaW1wb3J0Lm1ldGEudXJsKTtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCJAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVdvcmsrU2FuczppdGFsLHdnaHRAMCw1MDA7MCw4MDA7MSw1MDA7MSw2MDA7MSw5MDAmZGlzcGxheT1zd2FwKTtcIl0pO1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9V29yaytTYW5zOml0YWwsd2dodEAwLDUwMDswLDYwMDswLDgwMDsxLDUwMDsxLDYwMDsxLDkwMCZkaXNwbGF5PXN3YXApO1wiXSk7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fXyA9IF9fX0NTU19MT0FERVJfR0VUX1VSTF9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGBodG1sLCBib2R5IHtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG46cm9vdCB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBmb250LWZhbWlseTogJ1dvcmsgU2FucycsIHNhbnMtc2VyaWY7XHJcbn1cclxuXHJcbnAge1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4jbmF2aWdhdGlvbi1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICBnYXA6IDkwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBtYXJnaW46IDIwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG4gICAgZm9udC1zaXplOiA2MHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuI25hdmlnYXRpb24tY29udGFpbmVyIGRpdiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuI25hdmlnYXRpb24tY29udGFpbmVyIGltZyB7XHJcbiAgICBoZWlnaHQ6IDEwMHB4O1xyXG4gICAgd2lkdGg6IDEwMHB4O1xyXG59XHJcblxyXG4jbG9nby1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbiN3ZWxjb21lLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgaGVpZ2h0OiAxMDBweDtcclxuICAgIGZvbnQtc2l6ZTogNTBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4jcHJvZHVjdHMtZGlzcGxheSB7XHJcbiAgICBtYXJnaW46IDIwcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcclxufVxyXG5cclxuI3N0b3J5LWNvbnRhaW5lciB7XHJcbiAgICBmb250LXNpemU6IDI2cHg7XHJcbiAgICB3aWR0aDogNDAlO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDQwcHg7XHJcbn1cclxuXHJcbiNzdG9yeS1jb250YWluZXIgcCB7XHJcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcclxufVxyXG5cclxuI3N0b3J5LWNvbnRhaW5lciBoMyB7XHJcbiAgICBmb250LXNpemU6IDYwcHg7XHJcbiAgICBjb2xvcjogcmdiKDE4MCwgMzQsIDE1KTtcclxufVxyXG5cclxuI3Bob3RvLWNvbnRhaW5lciB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiA2MCU7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbiNwaG90by1jb250YWluZXIgaW1nIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XHJcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4jb3ZlcmxheSB7XHJcbiAgICBjb2xvcjogcmdiKDE4MCwgMzQsIDE1KTtcclxuICAgIGZvbnQtc2l6ZTogbWluKDE1dncsIDI1MHB4KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDM1JTtcclxuICAgIGxlZnQ6IDkwcHg7XHJcbn1cclxuXHJcbmhyIHtcclxuICAgIG1hcmdpbi10b3A6IDQwcHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJvcmRlcjogMS41cHggc29saWQgYmxhY2s7XHJcblxyXG5cclxufVxyXG5cclxuaDMge1xyXG4gICAgY29sb3I6IGJsYWNrICAgIDtcclxuICAgIG1hcmdpbjogMjBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBmb250LXNpemU6IDYuNXZoO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcclxufVxyXG5cclxub2wge1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuI21lbnUtbGlzdCB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzU0ODA0MjtcclxuICAgIGJvcmRlcjogMTBweCBzb2xpZCAjNTQ4MDQyO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4jbWVudS1jb250YWluZXIgcCB7XHJcbiAgICBjb2xvcjogd2hpdGVzbW9rZTtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG1hcmdpbi10b3A6IDVweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xyXG4gICAgZm9udC1zaXplOiA0LjV2aDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbiNtZW51LWxpc3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxufVxyXG5cclxuI2Zvb3Rlci1lbGVtZW50cy1jb250YWluZXIge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbiNmb290ZXIge1xyXG4gICAgbWFyZ2luOiAyMHB4O1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxODAsIDM0LCAxNSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG59XHJcblxyXG4jdXBwZXItcGFydCB7XHJcbiAgICBmb250LXNpemU6IDMwcHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4jbG93ZXItcGFydCB7XHJcbiAgICBoZWlnaHQ6IDQwJTtcclxuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBnYXA6IDIwcHg7XHJcbn1cclxuXHJcbiNsb3dlci1wYXJ0IGEge1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4jZm9vdGVyLWVsZW1lbnRzLWNvbnRhaW5lciB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuI3dlbGNvbWUtY29udGFpbmVyLmhpZGRlbiwgI3Byb2R1Y3RzLWRpc3BsYXkuaGlkZGVuLCAjbWVudS1jb250YWluZXIuaGlkZGVuLCAjZm9vdGVyLmhpZGRlbiwgI2RlbGl2ZXJ5LWRpdi5oaWRkZW4sICNpbmZvLWNvbnRhaW5lci5oaWRkZW4ge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuI2lucHV0LWNvbnRhaW5lciB7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCR7X19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMF9fX30pO1xyXG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcclxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XHJcbn1cclxuXHJcbi50cnV0aCB7XHJcblxyXG59XHJcblxyXG4udHJ1dGggc3BhbiB7XHJcbiAgICBmaWx0ZXI6IGJsdXIoNnB4KTtcclxufWAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3JjL3N0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFLQTtJQUNJLFlBQVk7SUFDWixXQUFXO0lBQ1gsU0FBUztBQUNiOztBQUVBO0lBQ0ksZUFBZTtJQUNmLG9DQUFvQztBQUN4Qzs7QUFFQTtJQUNJLFNBQVM7QUFDYjs7QUFFQTtJQUNJLGFBQWE7SUFDYixhQUFhO0lBQ2IsU0FBUztJQUNULGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksYUFBYTtJQUNiLGFBQWE7SUFDYixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsbUJBQW1CO0FBQ3ZCOztBQUVBO0lBQ0ksWUFBWTtJQUNaLGFBQWE7SUFDYixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsVUFBVTtJQUNWLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGVBQWU7SUFDZix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSx1QkFBdUI7SUFDdkIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osV0FBVztBQUNmOztBQUVBO0lBQ0ksdUJBQXVCO0lBQ3ZCLDJCQUEyQjtJQUMzQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFdBQVc7SUFDWCxVQUFVO0FBQ2Q7O0FBRUE7SUFDSSxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLHlCQUF5Qjs7O0FBRzdCOztBQUVBO0lBQ0ksZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLFVBQVU7QUFDZDs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsYUFBYTtJQUNiLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLGlCQUFpQjtJQUNqQixTQUFTO0lBQ1QsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osYUFBYTtJQUNiLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLFlBQVk7SUFDWixhQUFhO0lBQ2Isa0NBQWtDO0lBQ2xDLG1CQUFtQjtBQUN2Qjs7QUFFQTtJQUNJLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLGFBQWE7SUFDYixrQkFBa0I7QUFDdEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixhQUFhO0lBQ2IsU0FBUztBQUNiOztBQUVBO0lBQ0ksZUFBZTtJQUNmLHFCQUFxQjtJQUNyQixZQUFZO0FBQ2hCOztBQUVBO0lBQ0ksdUJBQXVCO0FBQzNCOztBQUVBO0lBQ0ksYUFBYTtBQUNqQjs7QUFFQTtJQUNJLG1CQUFtQjtJQUNuQix5REFBeUM7SUFDekMsc0JBQXNCO0lBQ3RCLDRCQUE0QjtBQUNoQzs7QUFFQTs7QUFFQTs7QUFFQTtJQUNJLGlCQUFpQjtBQUNyQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Xb3JrK1NhbnM6aXRhbCx3Z2h0QDAsNTAwOzAsODAwOzEsNTAwOzEsNjAwOzEsOTAwJmRpc3BsYXk9c3dhcCcpO1xcclxcblxcclxcbkBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVdvcmsrU2FuczppdGFsLHdnaHRAMCw1MDA7MCw2MDA7MCw4MDA7MSw1MDA7MSw2MDA7MSw5MDAmZGlzcGxheT1zd2FwJyk7XFxyXFxuXFxyXFxuXFxyXFxuaHRtbCwgYm9keSB7XFxyXFxuICAgIGhlaWdodDogMTAwJTtcXHJcXG4gICAgd2lkdGg6IDEwMCU7XFxyXFxuICAgIG1hcmdpbjogMDtcXHJcXG59XFxyXFxuXFxyXFxuOnJvb3Qge1xcclxcbiAgICBmb250LXNpemU6IDE0cHg7XFxyXFxuICAgIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcXHJcXG59XFxyXFxuXFxyXFxucCB7XFxyXFxuICAgIG1hcmdpbjogMDtcXHJcXG59XFxyXFxuXFxyXFxuI25hdmlnYXRpb24tY29udGFpbmVyIHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgaGVpZ2h0OiAxMDBweDtcXHJcXG4gICAgZ2FwOiA5MHB4O1xcclxcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxyXFxuICAgIG1hcmdpbjogMjBweDtcXHJcXG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcXHJcXG4gICAgZm9udC1zaXplOiA2MHB4O1xcclxcbiAgICBmb250LXdlaWdodDogNjAwO1xcclxcbn1cXHJcXG5cXHJcXG4jbmF2aWdhdGlvbi1jb250YWluZXIgZGl2IHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuI25hdmlnYXRpb24tY29udGFpbmVyIGltZyB7XFxyXFxuICAgIGhlaWdodDogMTAwcHg7XFxyXFxuICAgIHdpZHRoOiAxMDBweDtcXHJcXG59XFxyXFxuXFxyXFxuI2xvZ28tY29udGFpbmVyIHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuI3dlbGNvbWUtY29udGFpbmVyIHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgaGVpZ2h0OiAxMDBweDtcXHJcXG4gICAgZm9udC1zaXplOiA1MHB4O1xcclxcbiAgICBmb250LXdlaWdodDogNjAwO1xcclxcbiAgICBtYXJnaW4tbGVmdDogMjVweDtcXHJcXG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuI3Byb2R1Y3RzLWRpc3BsYXkge1xcclxcbiAgICBtYXJnaW46IDIwcHg7XFxyXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxyXFxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XFxyXFxufVxcclxcblxcclxcbiNzdG9yeS1jb250YWluZXIge1xcclxcbiAgICBmb250LXNpemU6IDI2cHg7XFxyXFxuICAgIHdpZHRoOiA0MCU7XFxyXFxuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xcclxcbn1cXHJcXG5cXHJcXG4jc3RvcnktY29udGFpbmVyIHAge1xcclxcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcXHJcXG59XFxyXFxuXFxyXFxuI3N0b3J5LWNvbnRhaW5lciBoMyB7XFxyXFxuICAgIGZvbnQtc2l6ZTogNjBweDtcXHJcXG4gICAgY29sb3I6IHJnYigxODAsIDM0LCAxNSk7XFxyXFxufVxcclxcblxcclxcbiNwaG90by1jb250YWluZXIge1xcclxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXHJcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcclxcbiAgICB3aWR0aDogNjAlO1xcclxcbiAgICBoZWlnaHQ6IGF1dG87XFxyXFxufVxcclxcblxcclxcbiNwaG90by1jb250YWluZXIgaW1nIHtcXHJcXG4gICAgYm9yZGVyLXJhZGl1czogMTVweDtcXHJcXG4gICAgb2JqZWN0LWZpdDogY292ZXI7XFxyXFxuICAgIGhlaWdodDogMTAwJTtcXHJcXG4gICAgd2lkdGg6IDEwMCU7XFxyXFxufVxcclxcblxcclxcbiNvdmVybGF5IHtcXHJcXG4gICAgY29sb3I6IHJnYigxODAsIDM0LCAxNSk7XFxyXFxuICAgIGZvbnQtc2l6ZTogbWluKDE1dncsIDI1MHB4KTtcXHJcXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcXHJcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcclxcbiAgICBib3R0b206IDM1JTtcXHJcXG4gICAgbGVmdDogOTBweDtcXHJcXG59XFxyXFxuXFxyXFxuaHIge1xcclxcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xcclxcbiAgICB3aWR0aDogMTAwJTtcXHJcXG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCBibGFjaztcXHJcXG5cXHJcXG5cXHJcXG59XFxyXFxuXFxyXFxuaDMge1xcclxcbiAgICBjb2xvcjogYmxhY2sgICAgO1xcclxcbiAgICBtYXJnaW46IDIwcHg7XFxyXFxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XFxyXFxuICAgIGZvbnQtc2l6ZTogNi41dmg7XFxyXFxuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XFxyXFxufVxcclxcblxcclxcbm9sIHtcXHJcXG4gICAgcGFkZGluZzogMDtcXHJcXG59XFxyXFxuXFxyXFxuI21lbnUtbGlzdCB7XFxyXFxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6ICM1NDgwNDI7XFxyXFxuICAgIGJvcmRlcjogMTBweCBzb2xpZCAjNTQ4MDQyO1xcclxcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XFxyXFxuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xcclxcbiAgICBkaXNwbGF5OiBmbGV4O1xcclxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxyXFxufVxcclxcblxcclxcbiNtZW51LWNvbnRhaW5lciBwIHtcXHJcXG4gICAgY29sb3I6IHdoaXRlc21va2U7XFxyXFxuICAgIG1hcmdpbjogMDtcXHJcXG4gICAgbWFyZ2luLXRvcDogNXB4O1xcclxcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcXHJcXG4gICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xcclxcbiAgICBmb250LXNpemU6IDQuNXZoO1xcclxcbiAgICBmb250LXdlaWdodDogNjAwO1xcclxcbn1cXHJcXG5cXHJcXG4jbWVudS1saXN0IHtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG59XFxyXFxuXFxyXFxuI2Zvb3Rlci1lbGVtZW50cy1jb250YWluZXIge1xcclxcbiAgICBoZWlnaHQ6IDEwMCU7XFxyXFxuICAgIGRpc3BsYXk6IGZsZXg7XFxyXFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxyXFxufVxcclxcblxcclxcbiNmb290ZXIge1xcclxcbiAgICBtYXJnaW46IDIwcHg7XFxyXFxuICAgIGhlaWdodDogMjAwcHg7XFxyXFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxODAsIDM0LCAxNSk7XFxyXFxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XFxyXFxufVxcclxcblxcclxcbiN1cHBlci1wYXJ0IHtcXHJcXG4gICAgZm9udC1zaXplOiAzMHB4O1xcclxcbiAgICBmb250LXdlaWdodDogNjAwO1xcclxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcclxcbn1cXHJcXG5cXHJcXG4jbG93ZXItcGFydCB7XFxyXFxuICAgIGhlaWdodDogNDAlO1xcclxcbiAgICBtYXJnaW4tbGVmdDogNDBweDtcXHJcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXHJcXG4gICAgZGlzcGxheTogZmxleDtcXHJcXG4gICAgZ2FwOiAyMHB4O1xcclxcbn1cXHJcXG5cXHJcXG4jbG93ZXItcGFydCBhIHtcXHJcXG4gICAgZm9udC1zaXplOiAyMHB4O1xcclxcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxyXFxuICAgIGNvbG9yOiBibGFjaztcXHJcXG59XFxyXFxuXFxyXFxuI2Zvb3Rlci1lbGVtZW50cy1jb250YWluZXIge1xcclxcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXHJcXG59XFxyXFxuXFxyXFxuI3dlbGNvbWUtY29udGFpbmVyLmhpZGRlbiwgI3Byb2R1Y3RzLWRpc3BsYXkuaGlkZGVuLCAjbWVudS1jb250YWluZXIuaGlkZGVuLCAjZm9vdGVyLmhpZGRlbiwgI2RlbGl2ZXJ5LWRpdi5oaWRkZW4sICNpbmZvLWNvbnRhaW5lci5oaWRkZW4ge1xcclxcbiAgICBkaXNwbGF5OiBub25lO1xcclxcbn1cXHJcXG5cXHJcXG4jaW5wdXQtY29udGFpbmVyIHtcXHJcXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcXHJcXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGltZy9oZXJvLWltYWdlLmpwZyk7XFxyXFxuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XFxyXFxuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxyXFxufVxcclxcblxcclxcbi50cnV0aCB7XFxyXFxuXFxyXFxufVxcclxcblxcclxcbi50cnV0aCBzcGFuIHtcXHJcXG4gICAgZmlsdGVyOiBibHVyKDZweCk7XFxyXFxufVwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh1cmwsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuICB1cmwgPSBTdHJpbmcodXJsLl9fZXNNb2R1bGUgPyB1cmwuZGVmYXVsdCA6IHVybCk7XG5cbiAgLy8gSWYgdXJsIGlzIGFscmVhZHkgd3JhcHBlZCBpbiBxdW90ZXMsIHJlbW92ZSB0aGVtXG4gIGlmICgvXlsnXCJdLipbJ1wiXSQvLnRlc3QodXJsKSkge1xuICAgIHVybCA9IHVybC5zbGljZSgxLCAtMSk7XG4gIH1cbiAgaWYgKG9wdGlvbnMuaGFzaCkge1xuICAgIHVybCArPSBvcHRpb25zLmhhc2g7XG4gIH1cblxuICAvLyBTaG91bGQgdXJsIGJlIHdyYXBwZWQ/XG4gIC8vIFNlZSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXZhbHVlcy0zLyN1cmxzXG4gIGlmICgvW1wiJygpIFxcdFxcbl18KCUyMCkvLnRlc3QodXJsKSB8fCBvcHRpb25zLm5lZWRRdW90ZXMpIHtcbiAgICByZXR1cm4gXCJcXFwiXCIuY29uY2F0KHVybC5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csIFwiXFxcXG5cIiksIFwiXFxcIlwiKTtcbiAgfVxuICByZXR1cm4gdXJsO1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlbSkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3N0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgc3R5bGVzSW5ET00gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgdmFyIHJlc3VsdCA9IC0xO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKSB7XG4gIHZhciBpZENvdW50TWFwID0ge307XG4gIHZhciBpZGVudGlmaWVycyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcbiAgICBpZiAoaW5kZXhCeUlkZW50aWZpZXIgIT09IC0xKSB7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0ucmVmZXJlbmNlcysrO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnVwZGF0ZXIob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHVwZGF0ZXIgPSBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuYnlJbmRleCA9IGk7XG4gICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoaSwgMCwge1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiB1cGRhdGVyLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKSB7XG4gIHZhciBhcGkgPSBvcHRpb25zLmRvbUFQSShvcHRpb25zKTtcbiAgYXBpLnVwZGF0ZShvYmopO1xuICB2YXIgdXBkYXRlciA9IGZ1bmN0aW9uIHVwZGF0ZXIobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCAmJiBuZXdPYmouc3VwcG9ydHMgPT09IG9iai5zdXBwb3J0cyAmJiBuZXdPYmoubGF5ZXIgPT09IG9iai5sYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB1cGRhdGVyO1xufVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGlzdCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9pZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW19pXTtcbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG4gICAgICBpZiAoc3R5bGVzSW5ET01bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRE9NW19pbmRleF0udXBkYXRlcigpO1xuICAgICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoX2luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcbiAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0QnlTZWxlY3RvcihpbnNlcnQsIHN0eWxlKSB7XG4gIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQoaW5zZXJ0KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydEJ5U2VsZWN0b3I7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gIG9wdGlvbnMuc2V0QXR0cmlidXRlcyhlbGVtZW50LCBvcHRpb25zLmF0dHJpYnV0ZXMpO1xuICBvcHRpb25zLmluc2VydChlbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xuICByZXR1cm4gZWxlbWVudDtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuICBpZiAobm9uY2UpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlczsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaikge1xuICB2YXIgY3NzID0gXCJcIjtcbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG4gIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2Ygb2JqLmxheWVyICE9PSBcInVuZGVmaW5lZFwiO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG4gIGNzcyArPSBvYmouY3NzO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9XG5cbiAgLy8gRm9yIG9sZCBJRVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG4gIG9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG59XG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBkb21BUEkob3B0aW9ucykge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge30sXG4gICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgfTtcbiAgfVxuICB2YXIgc3R5bGVFbGVtZW50ID0gb3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gIHJldHVybiB7XG4gICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob2JqKSB7XG4gICAgICBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaik7XG4gICAgfSxcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVUYWdUcmFuc2Zvcm07IiwiaW1wb3J0IGxvZ28gZnJvbSAnLi9pbWcvbG9nby5wbmcnXHJcbmV4cG9ydCBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250ZW50Jyk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kVG9EaXZXaXRoVGV4dChlbGVtZW50LCB0ZXh0KSB7XHJcbiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBsZXQgZWxlbWVudFRvQXBwZW5kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgJHtlbGVtZW50fWApO1xyXG4gICAgZWxlbWVudFRvQXBwZW5kLmlubmVySFRNTCA9IHRleHQ7XHJcbiAgICBkaXYuYXBwZW5kQ2hpbGQoZWxlbWVudFRvQXBwZW5kKTtcclxuICAgIHJldHVybiBkaXY7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2dvQXBwZW5kKCkge1xyXG4gICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgY29udGFpbmVyLmlkID0gJ2xvZ28tY29udGFpbmVyJ1xyXG4gICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZpZ2F0aW9uLWNvbnRhaW5lcicpO1xyXG4gICAgbGV0IGxvZ29Ub0FwcGVuZCA9IG5ldyBJbWFnZSgpO1xyXG4gICAgbG9nb1RvQXBwZW5kLnNyYyA9IGxvZ287XHJcbiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQobG9nb1RvQXBwZW5kKTtcclxuICAgIGhlYWRlci5hcHBlbmRDaGlsZChjb250YWluZXIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kVG9IZWFkZXIoZWxlbWVudCkge1xyXG4gICAgbGV0IGhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgaGVhZGVyLmlkID0gJ2hlYWRlcic7XHJcbiAgICBoZWFkZXIuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGVudCcpLmFwcGVuZENoaWxkKGhlYWRlcik7XHJcbn1cclxuIiwiaW1wb3J0IHsgY29udGVudCB9IGZyb20gXCIuL2FwcGVuZFwiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREZWxpdmVyeSgpIHtcclxuICAgIGNvbnN0IEZPT1RFUiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb290ZXInKTtcclxuICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsaXZlcnktdGV4dCcpID09PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWxpdmVyeS1kaXYnKTtcclxuICAgICAgICBkaXYuc3R5bGUubWFyZ2luID0gJzIwcHgnO1xyXG4gICAgICAgIGxldCB0ZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgICAgIHRleHQuaWQgPSAnZGVsaXZlcnktdGV4dCc7XHJcbiAgICAgICAgZGl2LmFwcGVuZENoaWxkKHRleHQpO1xyXG4gICAgICAgIHRleHQuaW5uZXJIVE1MID0gJ1dlbGNvbWUgdG8gdGhlIGRlbGl2ZXJ5IHBhZ2UsIGhlcmUgeW91IGNhbiBvcmRlciB5b3VyIGZhdm91cml0ZSBtZWFsLic7XHJcbiAgICAgICAgdGV4dC5zdHlsZS5tYXJnaW5Cb3R0b20gPSAnMjBweCc7XHJcbiAgICAgICAgdGV4dC5zdHlsZS5mb250U2l6ZSA9ICc1MHB4JztcclxuXHJcbiAgICAgICAgbGV0IGlucHV0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuaWQgPSAnaW5wdXQtY29udGFpbmVyJztcclxuICAgICAgICBpbnB1dENvbnRhaW5lci5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xyXG4gICAgICAgIGlucHV0Q29udGFpbmVyLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2NlbnRlcic7XHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuc3R5bGUucGFkZGluZ1RvcCA9ICcyMDBweCc7XHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuc3R5bGUucGFkZGluZ0JvdHRvbSA9ICcyMDBweCc7XHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuc3R5bGUuYWxpZ25JdGVtcyA9ICdjZW50ZXInO1xyXG4gICAgICAgIGRpdi5hcHBlbmRDaGlsZChpbnB1dENvbnRhaW5lcik7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xyXG4gICAgICAgIGlucHV0Lm5hbWUgPSAnYWRyZXNzJztcclxuICAgICAgICBpbnB1dC5pZCA9ICdhZHJlc3MnO1xyXG4gICAgICAgIGlucHV0LnN0eWxlLndpZHRoID0gJzMwMHB4JztcclxuICAgICAgICBpbnB1dC5zdHlsZS5oZWlnaHQgPSAnMzBweCc7XHJcbiAgICAgICAgaW5wdXQuc3R5bGUuYm9yZGVyID0gJ25vbmUnO1xyXG5cclxuICAgICAgICBsZXQgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xyXG4gICAgICAgIGxhYmVsLmh0bWxGb3IgPSAnYWRyZXNzJztcclxuICAgICAgICBsYWJlbC5pbm5lckhUTUwgPSAnRGVsaXZlcnkgYWRyZXNzOic7XHJcbiAgICAgICAgbGFiZWwuc3R5bGUuZm9udFNpemUgPSAnNjBweCc7XHJcbiAgICAgICAgbGFiZWwuc3R5bGUuZm9udFdlaWdodCA9ICc2MDAnO1xyXG4gICAgICAgIGxhYmVsLnN0eWxlLmNvbG9yID0gJ3doaXRlJztcclxuICAgICAgICBcclxuICAgICAgICBsZXQgaW5mb0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIGluZm9Db250YWluZXIuaWQgPSAnaW5mby1jb250YWluZXInO1xyXG4gICAgICAgIGxldCBpbmZvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgICAgIGluZm8uc3R5bGUuY29sb3IgPSAnd2hpdGUnO1xyXG4gICAgICAgIGluZm9Db250YWluZXIuYXBwZW5kQ2hpbGQoaW5mbyk7XHJcbiAgICAgICAgaW5mby5pbm5lckhUTUwgPSAnSWYgeW91IGdldCB0aGUgbWVzc2FnZSBcXCd1bmF2YWlsYWJsZSBhZHJlc3MsIHBsZWFzZSBjb250YWN0IG91ciBjdXN0b21lciBzdXBwb3J0IHRlYW1cXCcsIHBsZWFzZSBjaG9vc2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgbWV0aG9kcyBvZiBjb250YWN0aW5nIG91ciBjdXN0b20gc3VwcG9wcnQuJztcclxuXHJcbiAgICAgICAgbGV0IGNvbnRhY3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBjb250YWN0Q29udGFpbmVyLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XHJcblxyXG4gICAgICAgIGxldCBlbWFpbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcclxuICAgICAgICBsZXQgcGhvbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgZW1haWwuaW5uZXJIVE1MID0gJ2xvc3BvbGxvc0BjdXN0b21lci5jb20nXHJcbiAgICAgICAgcGhvbmUuaW5uZXJIVE1MID0gJysgMSA1MDUgOTk5IDk5OSc7XHJcblxyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuYXBwZW5kQ2hpbGQoZW1haWwpO1xyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuYXBwZW5kQ2hpbGQocGhvbmUpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuc3R5bGUuY29sb3IgPSAnd2hpdGUnO1xyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuc3R5bGUuZm9udFNpemUgPSAnMjBweCc7XHJcbiAgICAgICAgY29udGFjdENvbnRhaW5lci5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdjZW50ZXInO1xyXG4gICAgICAgIGNvbnRhY3RDb250YWluZXIuc3R5bGUuZ2FwID0gJzgwcHgnO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGluZm9Db250YWluZXIuc3R5bGUucGFkZGluZ0JvdHRvbSA9ICcxMDBweCc7XHJcbiAgICAgICAgaW5mb0NvbnRhaW5lci5zdHlsZS5tYXJnaW4gPSAnMjBweCc7XHJcbiAgICAgICAgaW5mb0NvbnRhaW5lci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnIzU0ODA0Mic7XHJcbiAgICAgICAgaW5mb0NvbnRhaW5lci5zdHlsZS5ib3JkZXJSYWRpdXMgPSAnMTBweCc7XHJcbiAgICAgICAgaW5mb0NvbnRhaW5lci5zdHlsZS5wYWRkaW5nVG9wID0gJzIwcHgnO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGluZm8uc3R5bGUubWFyZ2luID0gJzIwcHgnXHJcbiAgICAgICAgaW5mby5zdHlsZS5mb250U2l6ZSA9ICcyNXB4JztcclxuXHJcbiAgICAgICAgaW5wdXRDb250YWluZXIuYXBwZW5kQ2hpbGQobGFiZWwpO1xyXG4gICAgICAgIGlucHV0Q29udGFpbmVyLmFwcGVuZENoaWxkKGlucHV0KTtcclxuICAgICAgICBpbmZvQ29udGFpbmVyLmFwcGVuZENoaWxkKGNvbnRhY3RDb250YWluZXIpO1xyXG4gICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoaW5mb0NvbnRhaW5lcik7XHJcbiAgICB9XHJcbn0gIiwiIGltcG9ydCB7IGFwcGVuZFRvRGl2V2l0aFRleHQgfSBmcm9tIFwiLi9hcHBlbmRcIjtcclxuIGltcG9ydCB7IGFwcGVuZFRvSGVhZGVyIH0gZnJvbSBcIi4vYXBwZW5kXCI7XHJcbiBpbXBvcnQge2NvbnRlbnR9IGZyb20gXCIuL2FwcGVuZFwiO1xyXG4gaW1wb3J0IHsgbG9nb0FwcGVuZCB9IGZyb20gXCIuL2FwcGVuZFwiO1xyXG4gaW1wb3J0IHBob3RvMSBmcm9tICcuL2ltZy9waG90by0xLmpwZydcclxuIGltcG9ydCB7IGxvYWREZWxpdmVyeSB9IGZyb20gXCIuL2RlbGl2ZXJ5XCI7XHJcblxyXG4gZXhwb3J0IGZ1bmN0aW9uIHBhZ2VMb2FkKCkge1xyXG4gICAgY3JlYXRlTmF2aWdhdGlvbk1lbnUoKTtcclxuICAgIGRpc3BsYXlXZWxjb21lKCk7XHJcbiAgICBhZGRQaG90b092ZXJsYXkoKTtcclxuICAgIGNyZWF0ZVN0b3J5KCk7XHJcbiAgICBjcmVhdGVNZW51KCk7XHJcbiAgICBjcmVhdGVBcHBlbmRGb290ZXIoKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREZWwoKSB7XHJcbiAgICBjcmVhdGVEZWxpdmVyeURpdigpO1xyXG4gICAgbG9hZERlbGl2ZXJ5KCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwYWdlUmVsb2FkKCkge1xyXG4gICAgZGlzcGxheVdlbGNvbWUoKTtcclxuICAgIGFkZFBob3RvT3ZlcmxheSgpO1xyXG4gICAgY3JlYXRlU3RvcnkoKTtcclxuICAgIGNyZWF0ZU1lbnUoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZGlzcGxheVdlbGNvbWUoKSB7XHJcbiAgICBsZXQgd2VsY29tZUNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgd2VsY29tZUNvbnRhaW5lci5pZCA9ICd3ZWxjb21lLWNvbnRhaW5lcic7XHJcbiAgICBsZXQgd2VsY29tZVRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICB3ZWxjb21lVGV4dC5pbm5lckhUTUwgPSAnV2VsY29tZSB0byBMb3MgUG9sbG9zIEhlcm1hbm9zISBXaGF0IHdvdWxkIHlvdSBsaWtlIHRvIGVhdD8nO1xyXG4gICAgd2VsY29tZUNvbnRhaW5lci5hcHBlbmRDaGlsZCh3ZWxjb21lVGV4dCk7XHJcbiAgICBjb250ZW50LmFwcGVuZENoaWxkKHdlbGNvbWVDb250YWluZXIpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVOYXZpZ2F0aW9uTWVudSAoKSB7XHJcbiAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBjb250YWluZXIuaWQgPSAnbmF2aWdhdGlvbi1jb250YWluZXInO1xyXG4gICAgY29udGVudC5hcHBlbmRDaGlsZChjb250YWluZXIpO1xyXG4gICAgbG9nb0FwcGVuZCgpO1xyXG5cclxuICAgIGxldCBob21lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBob21lLmlkID0gJ2hvbWUnO1xyXG4gICAgbGV0IGhvbWVUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgaG9tZS5hcHBlbmRDaGlsZChob21lVGV4dCk7XHJcbiAgICBob21lVGV4dC5pbm5lckhUTUwgPSAnSG9tZSc7XHJcbiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoaG9tZSk7XHJcblxyXG4gICAgbGV0IGRlbGl2ZXJ5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkZWxpdmVyeS5pZCA9ICdkZWxpdmVyeSc7XHJcbiAgICBsZXQgZGVsaXZlcnlUZXh0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgZGVsaXZlcnlUZXh0LmlubmVySFRNTCA9ICdEZWxpdmVyeSc7XHJcbiAgICBkZWxpdmVyeS5hcHBlbmRDaGlsZChkZWxpdmVyeVRleHQpO1xyXG4gICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGRlbGl2ZXJ5KTtcclxuXHJcbiAgICBsZXQgYWJvdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIGFib3V0LmlkID0gJ2Fib3V0JztcclxuICAgIGxldCBhYm91dFRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICBhYm91dFRleHQuaW5uZXJIVE1MID0gJ0Fib3V0JztcclxuICAgIGFib3V0LmFwcGVuZENoaWxkKGFib3V0VGV4dCk7XHJcbiAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoYWJvdXQpO1xyXG5cclxufVxyXG5cclxuZnVuY3Rpb24gYWRkUGhvdG9PdmVybGF5KCkge1xyXG4gICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgZGl2LmlkID0gJ3Byb2R1Y3RzLWRpc3BsYXknO1xyXG4gICAgbGV0IGZpcnN0UGhvdG8gPSBuZXcgSW1hZ2UoKTtcclxuICAgIGZpcnN0UGhvdG8uc3JjID0gcGhvdG8xO1xyXG4gICAgZmlyc3RQaG90by5hbHQgPSAnQ3Jpc3B5LCBkZWxpY2lvdXMgY2hpY2tlbiBpbiB0aGUgcGFwZXIgY29udGFpbmVycydcclxuICAgIGxldCBwaG90b0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgcGhvdG9Db250YWluZXIuaWQgPSAncGhvdG8tY29udGFpbmVyJztcclxuICAgIHBob3RvQ29udGFpbmVyLmFwcGVuZENoaWxkKGZpcnN0UGhvdG8pO1xyXG4gICAgbGV0IG92ZXJsYXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICBvdmVybGF5LmlubmVySFRNTCA9ICc0LjMyJCc7XHJcbiAgICBvdmVybGF5LmlkID0gJ292ZXJsYXknO1xyXG4gICAgcGhvdG9Db250YWluZXIuYXBwZW5kQ2hpbGQob3ZlcmxheSk7XHJcbiAgICBkaXYuYXBwZW5kQ2hpbGQocGhvdG9Db250YWluZXIpO1xyXG4gICAgY29udGVudC5hcHBlbmRDaGlsZChkaXYpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVTdG9yeSgpIHtcclxuICAgIGxldCBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZHVjdHMtZGlzcGxheScpO1xyXG4gICAgbGV0IG5ld0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbmV3RGl2LmlkID0gJ3N0b3J5LWNvbnRhaW5lcic7XHJcbiAgICBsZXQgaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2gzJyk7XHJcbiAgICBoLmlubmVySFRNTCA9ICczNCB5ZWFycyBvZiB0aGUgZmluZXN0IGNoaWNrZW4nXHJcbiAgICBuZXdEaXYuYXBwZW5kQ2hpbGQoaCk7XHJcbiAgICBsZXQgcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcclxuICAgIHAuaW5uZXJIVE1MID0gJ0xvcyBQb2xsb3MgSGVybWFub3MgaXMgYSBicmFpbiBjaGlsZCBvZiBhIGJyaWxsaWFudCBDaGlsbGlhbi1NZXhpY2FuIGVudHJlcHJlbmV1ciB3aG8gd2FudGVkIHRvIGNvb2sgb25seSB0aGUgZmluZXN0IGNoaWNrZW4uIExvcyBQb2xsb3MgSGVybWFub3Mgd2FzIGluaXRpYWxseSBvbmx5IGEgc21hbGwgcmVzdGF1cmFudCBvbiB0aGUgb3V0c2tpcnRzIG9mIEFsYmVycXVlcXVlLiBIb3dldmVyIG5vdCBsb25nIGFmdGVyIHRoZSBpbnRpYWwgb3BlbmluZywgdGhlIHJlc3RhdXJhbnQgYmVndW4gYXR0cmFjdGluZyBjcm93ZCBvZiBBbGJ1cXVxZXJxdWUgcmVzaWRlbnRzLiBFdmVuIHRoZSBpbmhhYmludGFudHMgb2YgdG93bnMgb3V0c2lkZSB0aGUgQWxidXF1ZXJxdWUgY2FtZSB0byB2aXNpdCB0aGUgcmVub3duZWQgcmVzdHVhZCBjaGljZWtuIHJlc3RhdXJhbnQgaW4gdGhlIEFMUS4gU2luY2UgdGhlbiwgdGhlIHJlc3RhdXJhbnQgaGFzIGV4cGFuZGVkIHRvIG1hbnkgZGlmZmVyZW50IGxvY2F0aW9ucywgaW5jbHVkaW5nIG90aGVyIHN0YXRlczsgQXJpem9uYSwgQ29sb3JhZG8sIE5ldmFkYSwgVXRhaC4uIGV2ZXJ5b25lIGNhbiBub3cgdHJ5IHRoZSBmaW5lc3QgY2hpY2tlbiEgQnV0IHRoZSByZXN0YXVyYW50IGhhcyBub3QgZm9yZ290dGVuIGl0cyByb290cy4gV2l0aCBsb3ZlIGFuZCBjYXJlIG9mIG91ciBMUEggZW1wbG95ZWVzIGFuZCBpdHMgY3Vubm5pbmcgZm91bmRlciwgdGhlIExQSCBoYXMgc3RheWVkIHRydWUgdG8gaXRzIHZhbHVlcy4gU2VydmluZyBvbmx5IHRoZSBmaW5lc3QgYW5kIHRhc3RpZXN0IGNoaWNrZW4gaW4gdGhlIGVudGlyZXR5IG9mIHRoZSBTb3V0aC4nO1xyXG4gICAgbmV3RGl2LmFwcGVuZENoaWxkKHApO1xyXG4gICAgbGV0IGxpbmVCcmVhayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2hyJyk7XHJcbiAgICBuZXdEaXYuYXBwZW5kQ2hpbGQobGluZUJyZWFrKTtcclxuICAgIGRpdi5hcHBlbmRDaGlsZChuZXdEaXYpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVNZW51SXRlbUluc2lkZUFGaXJzdExpc3QodGV4dCkge1xyXG4gICAgbGV0IGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlyc3QtbGlzdCcpO1xyXG4gICAgbGV0IG1lbnVJdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgbWVudUl0ZW0uaW5uZXJIVE1MID0gdGV4dDtcclxuICAgIGxpc3QuYXBwZW5kQ2hpbGQobWVudUl0ZW0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVNZW51SXRlbUluU2Vjb25kTGlzdCh0ZXh0KSB7XHJcbiAgICBsZXQgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWNvbmQtbGlzdCcpO1xyXG4gICAgbGV0IG1lbnVJdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgbWVudUl0ZW0uaW5uZXJIVE1MID0gdGV4dDtcclxuICAgIGxpc3QuYXBwZW5kQ2hpbGQobWVudUl0ZW0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVNZW51KCkge1xyXG4gICAgbGV0IG1lbnUgPSAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBtZW51LmlkID0gJ21lbnUtY29udGFpbmVyJztcclxuICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQobWVudSk7XHJcbiAgICBsZXQgbWVudVRpdGxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaDMnKTtcclxuICAgIG1lbnVUaXRsZS5pbm5lckhUTUwgPSAnU3BlY2lhbCBDaGlja2VuIE1lbnUnO1xyXG4gICAgbWVudS5hcHBlbmRDaGlsZChtZW51VGl0bGUpO1xyXG5cclxuICAgIGxldCBsaXN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBsaXN0LmlkID0gJ21lbnUtbGlzdCc7XHJcbiAgICBsZXQgbGlzdEZpcnN0UGFydCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbGlzdEZpcnN0UGFydC5pZCA9ICdmaXJzdC1saXN0JztcclxuICAgIGxldCBsaXN0U2Vjb25kUGFydCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbGlzdFNlY29uZFBhcnQuaWQgPSAnc2Vjb25kLWxpc3QnO1xyXG4gICAgbGlzdC5hcHBlbmRDaGlsZChsaXN0Rmlyc3RQYXJ0KTtcclxuICAgIGxpc3QuYXBwZW5kQ2hpbGQobGlzdFNlY29uZFBhcnQpO1xyXG4gICAgbWVudS5hcHBlbmRDaGlsZChsaXN0KTtcclxuICAgIGNyZWF0ZU1lbnVJdGVtSW5zaWRlQUZpcnN0TGlzdCgnMS4gQ3Jpc3AgQ2hpY2tlbiBCdXJnZXIgLSA3LjQkJyk7XHJcbiAgICBjcmVhdGVNZW51SXRlbUluc2lkZUFGaXJzdExpc3QoJzIuIENyaXNweSBDbGFzc2ljIENoaWNrZW4gV2luZ3MgLSA1LjQkJyk7XHJcbiAgICBjcmVhdGVNZW51SXRlbUluc2lkZUFGaXJzdExpc3QoJzMuIFwiVGhlIExvbmVseSBTdGFyXCIgQnVyZ2VyIC0gOS40JCcpO1xyXG4gICAgY3JlYXRlTWVudUl0ZW1JbnNpZGVBRmlyc3RMaXN0KCc0LiBTbW9raW5nIGhvdCBjaGlrY2VuIGJyZWFzdHMtIDUuNCQnKTtcclxuICAgIGNyZWF0ZU1lbnVJdGVtSW5TZWNvbmRMaXN0KCc1LiBTdGFuZGFydCBUZXhhcyBCdXJnZXIgLSA4LjUkJyk7XHJcbiAgICBjcmVhdGVNZW51SXRlbUluU2Vjb25kTGlzdCgnNi4gU3dlZXQgQ2hpY2tlbiBUaGlncyAtIDYuNCQnKTtcclxuICAgIGNyZWF0ZU1lbnVJdGVtSW5TZWNvbmRMaXN0KCc3LiBWYWNhdGlvbiBTZXQgLSAxNC40JCcpO1xyXG4gICAgY3JlYXRlTWVudUl0ZW1JblNlY29uZExpc3QoJzguIFRoZSBDb250aW5lbnRhbCBCdXJnZXIgLSAxNC41JCcpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXBwZW5kRm9vdGVyKCkge1xyXG4gICAgbGV0IGZvb3RlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgZm9vdGVyLmlkID0gJ2Zvb3Rlcic7XHJcbiAgICBsZXQgZm9vdGVyRWxlbWVudHNDb250YW5pZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIGZvb3RlckVsZW1lbnRzQ29udGFuaWVyLmlkID0gJ2Zvb3Rlci1lbGVtZW50cy1jb250YWluZXInO1xyXG4gICAgbGV0IGZvb3RlclVwcGVyUGFydCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbGV0IGZvb3Rlckxvd2VyUGFydD0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBmb290ZXJVcHBlclBhcnQuaWQgPSAndXBwZXItcGFydCc7XHJcbiAgICBmb290ZXJMb3dlclBhcnQuaWQgPSAnbG93ZXItcGFydCc7XHJcbiAgICBmb290ZXJFbGVtZW50c0NvbnRhbmllci5hcHBlbmRDaGlsZChmb290ZXJVcHBlclBhcnQpO1xyXG4gICAgZm9vdGVyRWxlbWVudHNDb250YW5pZXIuYXBwZW5kQ2hpbGQoZm9vdGVyTG93ZXJQYXJ0KTtcclxuICAgIGxldCBjb250YWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBsZXQgZW1haWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICBlbWFpbC5pbm5lckhUTUwgPSAnbG9zcG9sbG9zQGhlcm1hbm9zLmNvbSc7XHJcbiAgICBsZXQgcGhvbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XHJcbiAgICBwaG9uZS5pbm5lckhUTUwgPSAnKzEgKDUwNSkgMTQ2LTAxOTUnXHJcbiAgICBsZXQgdGhhbmtzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgdGhhbmtzLmlubmVySFRNTCA9ICdQaG90byBieSA8YSBocmVmPVwiaHR0cHM6Ly91bnNwbGFzaC5jb20vZXMvQHRpZ2VycnVsZXp6ej91dG1fc291cmNlPXVuc3BsYXNoJnV0bV9tZWRpdW09cmVmZXJyYWwmdXRtX2NvbnRlbnQ9Y3JlZGl0Q29weVRleHRcIj5CcmlhbiBDaGFuPC9hPiBvbiA8YSBocmVmPVwiaHR0cHM6Ly91bnNwbGFzaC5jb20vcGhvdG9zL05iWGpab215TkVNP3V0bV9zb3VyY2U9dW5zcGxhc2gmdXRtX21lZGl1bT1yZWZlcnJhbCZ1dG1fY29udGVudD1jcmVkaXRDb3B5VGV4dFwiPlVuc3BsYXNoPC9hPic7XHJcbiAgICBsZXQgdGhhbnNrVHdvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgdGhhbnNrVHdvLmlubmVySFRNTCA9ICdQaG90byBieSA8YSBocmVmPVwiaHR0cHM6Ly93d3cucGV4ZWxzLmNvbS9waG90by90b3Atdmlldy1vZi1mb29kLTE2NDA3NzIvXCI+IEVsbGEgT2xzc29uPC9hPic7XHJcbiAgICBmb290ZXJMb3dlclBhcnQuYXBwZW5kQ2hpbGQodGhhbmtzKTtcclxuICAgIGZvb3Rlckxvd2VyUGFydC5hcHBlbmRDaGlsZCh0aGFuc2tUd28pXHJcbiAgICBjb250YWN0LmFwcGVuZENoaWxkKHBob25lKTtcclxuICAgIGNvbnRhY3QuYXBwZW5kQ2hpbGQoZW1haWwpO1xyXG4gICAgZm9vdGVyVXBwZXJQYXJ0LmFwcGVuZENoaWxkKGNvbnRhY3QpO1xyXG4gICAgZm9vdGVyLmFwcGVuZENoaWxkKGZvb3RlckVsZW1lbnRzQ29udGFuaWVyKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9vdGVyKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlRGVsaXZlcnlEaXYoKSB7XHJcbiAgICBsZXQgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBkaXYuaWQgPSAnZGVsaXZlcnktZGl2JztcclxuICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoZGl2KTtcclxufSIsImltcG9ydCB7IGNvbnRlbnQgfSBmcm9tIFwiLi9hcHBlbmRcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkQWJvdXRQYWdlKCkge1xyXG4gICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cnV0aC1jb250YWluZXInKSA9PT0gbnVsbCkge1xyXG4gICAgbGV0IHRydXRoQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0cnV0aENvbnRhaW5lci5pZCA9ICd0cnV0aC1jb250YWluZXInO1xyXG4gICAgbGV0IHRydXRoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncCcpO1xyXG4gICAgdHJ1dGguY2xhc3NMaXN0LmFkZCgndHJ1dGgnKTtcclxuICAgIFxyXG4gICAgY29uc3QgTkFJVkdBVElPTiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZpZ2F0aW9uLWNvbnRhaW5lcicpO1xyXG4gICAgTkFJVkdBVElPTi5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnYmxhY2snO1xyXG4gICAgTkFJVkdBVElPTi5zdHlsZS5jb2xvciA9ICd3aGl0ZSc7XHJcbiAgICBOQUlWR0FUSU9OLnN0eWxlLm1hcmdpbiA9ICcwJztcclxuICAgIFxyXG4gICAgdHJ1dGguaW5uZXJIVE1MID0gJ1RoZSB0cnV0aCB0aGlzIGlzIHRoYXQgPHNwYW4+dGhlIExvcyBQb2xsb3MgSGVybWFub3MgaXMgbm90IGEgPC9zcGFuPiBjaGlja2VuIDxzcGFuPnJlc3RhdXJhbnQuIEl0IGlzIHRoZSBjb3ZlcnVwIGZvciB0aGUgPC9zcGFuPm1hc3NpdmU8c3Bhbj4gY3JpbWluYWwgc3luZGljYXRlIG9wZXJhdGluZyBvbiB0aGUgdGVycnRvcnkgb2YgdGhlIDwvc3Bhbj4gc291dGhlcm4gVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhIDxzcGFuPmFuZCBNZXhpY28uIFRoZSBsYXcgZW5mb3JjZW1lbnQgYWdlbmNpZXMgc3VjaCBhcyB0aGU8L3NwYW4+IERlcGFydG1lbnQgb2YgSG9tZWxhbmQgU2VjdXJpdHkgYXJlIDxzcGFuPiBub3Qgb25seSBhd2FyZSBvZiB0aGVpciBleGlzdGVuY2UsIGJ1dCB0aGV5IGFyZSBhY3RpdmVseSBzcG9uc29yaW5nIHRoZW0gYXMgYSBtZXRob2QgdG8gZXhlcnQgdGhlaXI8L3NwYW4+IGluZmx1ZW5jZS4gVGhlIEd1c3RhdiBGcmluZywgaXMgPHNwYW4+IGFjdHVhbGx5IGEgY3JpbWluYWwgd2l0aCB0aWVzIHRvIHRoZSBDaGlsZWFuIE1pbGl0YXJ5IGFuZCB0aGUgQ0lBLiBUaGUgTG9zIFBvbGxvcyBIZXJtYW5vcyBpcyBhIGNvdmVyIHVwIGZvciB0aGUgPC9zcGFuPiBPcGVyYXRpb24gQmFja3dhdGVycyA8c3Bhbj4sIHdoaWNoIGhhcyBwbGF5ZWQgYSBsYXJnZSByb2xlIGluIHRoZSBDSUFcXCdzIDwvc3Bhbj4gT3ZlcmxvcmQgUHJvZ3JhbS4gPHNwYW4+IExvcyBQb2xsb3MgSGVybWFub3Mgc2hhbGwgY29udGludWUgdG8gb3BlcmF0ZSB1bmRlciB0aGUgZ3VpZGFuY2Ugb2YgdGhlIENJQSEgPC9zcGFuPiBHb2Qgc2F2ZSB1cyBhbGwnO1xyXG4gICAgdHJ1dGhDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzEwMHZoJztcclxuICAgIHRydXRoQ29udGFpbmVyLnN0eWxlLnBhZGRpbmcgPSAnMzV2aCc7XHJcbiAgICB0cnV0aENvbnRhaW5lci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAnYmxhY2snO1xyXG4gICAgdHJ1dGguc3R5bGUuZm9udFNpemUgPSAnMjVweCc7XHJcbiAgICB0cnV0aC5zdHlsZS5jb2xvciA9ICd3aGl0ZSc7XHJcbiAgICB0cnV0aENvbnRhaW5lci5hcHBlbmRDaGlsZCh0cnV0aCk7ICBcclxuICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQodHJ1dGhDb250YWluZXIpO1xyXG4gICAgfVxyXG59IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsInZhciBzY3JpcHRVcmw7XG5pZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5nLmltcG9ydFNjcmlwdHMpIHNjcmlwdFVybCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5sb2NhdGlvbiArIFwiXCI7XG52YXIgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcuZG9jdW1lbnQ7XG5pZiAoIXNjcmlwdFVybCAmJiBkb2N1bWVudCkge1xuXHRpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdClcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYztcblx0aWYgKCFzY3JpcHRVcmwpIHtcblx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuXHRcdGlmKHNjcmlwdHMubGVuZ3RoKSB7XG5cdFx0XHR2YXIgaSA9IHNjcmlwdHMubGVuZ3RoIC0gMTtcblx0XHRcdHdoaWxlIChpID4gLTEgJiYgIXNjcmlwdFVybCkgc2NyaXB0VXJsID0gc2NyaXB0c1tpLS1dLnNyYztcblx0XHR9XG5cdH1cbn1cbi8vIFdoZW4gc3VwcG9ydGluZyBicm93c2VycyB3aGVyZSBhbiBhdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIHlvdSBtdXN0IHNwZWNpZnkgYW4gb3V0cHV0LnB1YmxpY1BhdGggbWFudWFsbHkgdmlhIGNvbmZpZ3VyYXRpb25cbi8vIG9yIHBhc3MgYW4gZW1wdHkgc3RyaW5nIChcIlwiKSBhbmQgc2V0IHRoZSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyB2YXJpYWJsZSBmcm9tIHlvdXIgY29kZSB0byB1c2UgeW91ciBvd24gbG9naWMuXG5pZiAoIXNjcmlwdFVybCkgdGhyb3cgbmV3IEVycm9yKFwiQXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXJcIik7XG5zY3JpcHRVcmwgPSBzY3JpcHRVcmwucmVwbGFjZSgvIy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcPy4qJC8sIFwiXCIpLnJlcGxhY2UoL1xcL1teXFwvXSskLywgXCIvXCIpO1xuX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gc2NyaXB0VXJsOyIsIl9fd2VicGFja19yZXF1aXJlX18uYiA9IGRvY3VtZW50LmJhc2VVUkkgfHwgc2VsZi5sb2NhdGlvbi5ocmVmO1xuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuLy8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4vLyBbcmVzb2x2ZSwgcmVqZWN0LCBQcm9taXNlXSA9IGNodW5rIGxvYWRpbmcsIDAgPSBjaHVuayBsb2FkZWRcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdFwiaW5kZXhcIjogMFxufTtcblxuLy8gbm8gY2h1bmsgb24gZGVtYW5kIGxvYWRpbmdcblxuLy8gbm8gcHJlZmV0Y2hpbmdcblxuLy8gbm8gcHJlbG9hZGVkXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3RcblxuLy8gbm8gb24gY2h1bmtzIGxvYWRlZFxuXG4vLyBubyBqc29ucCBmdW5jdGlvbiIsIl9fd2VicGFja19yZXF1aXJlX18ubmMgPSB1bmRlZmluZWQ7IiwiaW1wb3J0ICcuL3N0eWxlLmNzcydcclxuaW1wb3J0IHsgY3JlYXRlQXBwZW5kRm9vdGVyLCBsb2FkRGVsLCBwYWdlTG9hZCwgcGFnZVJlbG9hZCB9IGZyb20gJy4vcGFnZWxvYWQnO1xyXG5pbXBvcnQgeyBsb2dvQXBwZW5kIH0gZnJvbSAnLi9hcHBlbmQnO1xyXG5pbXBvcnQgeyBsb2FkQWJvdXRQYWdlIH0gZnJvbSAnLi90cnV0aCc7XHJcblxyXG5sZXQgV0VMQ09NRUNPTlRBSU5FUiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3ZWxjb21lLWNvbnRhaW5lcicpO1xyXG5sZXQgUFJPRFVDVFNDT05UQUlORVIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZHVjdHMtZGlzcGxheScpO1xyXG5sZXQgTUVOVUNPTlRBSU5FUiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtZW51LWNvbnRhaW5lcicpO1xyXG5sZXQgRk9PVEVSID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvb3RlcicpO1xyXG5sZXQgREVMSVZFUllESVYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsaXZlcnktZGl2Jyk7XHJcbmxldCBJTkZPQ09OVEFJTkVSID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZm8tY29udGFpbmVyJyk7XHJcblxyXG4gICAgZnVuY3Rpb24gcmVmcmVzaFZhcmlhYmxlcygpIHtcclxuICAgICBXRUxDT01FQ09OVEFJTkVSID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dlbGNvbWUtY29udGFpbmVyJyk7XHJcbiAgICAgUFJPRFVDVFNDT05UQUlORVIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZHVjdHMtZGlzcGxheScpO1xyXG4gICAgIE1FTlVDT05UQUlORVIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVudS1jb250YWluZXInKTtcclxuICAgICBGT09URVIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGVyJyk7XHJcbiAgICAgREVMSVZFUllESVYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsaXZlcnktZGl2Jyk7XHJcbiAgICAgSU5GT0NPTlRBSU5FUiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmZvLWNvbnRhaW5lcicpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGRlbGV0ZURlbGl2ZXJ5KCkge1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsaXZlcnktZGl2JykgJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZm8tY29udGFpbmVyJykpIHtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsaXZlcnktZGl2JykucmVtb3ZlKCk7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2luZm8tY29udGFpbmVyJykucmVtb3ZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGRlbGV0ZUNvbnRlbnQoKSB7XHJcbiAgICAgICAgV0VMQ09NRUNPTlRBSU5FUi5yZW1vdmUoKTtcclxuICAgICAgICBQUk9EVUNUU0NPTlRBSU5FUi5yZW1vdmUoKTtcclxuICAgICAgICBNRU5VQ09OVEFJTkVSLnJlbW92ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGRlbGV0ZUZvb3RlcigpIHtcclxuICAgICAgICBGT09URVIucmVtb3ZlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gcmVzZXROYXZCYXJTdHlsZSAoKSB7XHJcbiAgICBjb25zdCBOQUlWR0FUSU9OID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25hdmlnYXRpb24tY29udGFpbmVyJyk7XHJcbiAgICBOQUlWR0FUSU9OLnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICd3aGl0ZSc7XHJcbiAgICBOQUlWR0FUSU9OLnN0eWxlLmNvbG9yID0gJ2JsYWNrJztcclxuICAgIE5BSVZHQVRJT04uc3R5bGUubWFyZ2luID0gJzIwcHgnO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHdpcGVUcnV0aCgpIHtcclxuICAgICAgICBjb25zdCBUUlVUSCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0cnV0aC1jb250YWluZXInKTtcclxuICAgICAgICBpZiAoVFJVVEgpIHtcclxuICAgICAgICBUUlVUSC5yZW1vdmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGZ1bmN0aW9uIGFkZEV2ZW50TGlzdGVuZXJzKCkge1xyXG4gICAgICAgIGxldCBob21lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hvbWUnKTtcclxuICAgICAgICBsZXQgZGVsaXZlcnkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsaXZlcnknKTtcclxuICAgICAgICBsZXQgYWJvdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWJvdXQnKTtcclxuICAgIFxyXG4gICAgICAgIGhvbWUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpcGVUcnV0aCgpO1xyXG4gICAgICAgICAgICBkZWxldGVEZWxpdmVyeSgpO1xyXG4gICAgICAgICAgICBkZWxldGVDb250ZW50KCk7XHJcbiAgICAgICAgICAgIHBhZ2VSZWxvYWQoKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGVyJykgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGNyZWF0ZUFwcGVuZEZvb3RlcigpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZWZyZXNoVmFyaWFibGVzKCk7XHJcbiAgICAgICAgICAgIGRlbGV0ZUV2ZW50TGlzdGVuZXJzKCk7XHJcbiAgICAgICAgICAgIHJlc2V0TmF2QmFyU3R5bGUoKTtcclxuICAgICAgICB9KVxyXG4gICAgXHJcbiAgICAgICAgZGVsaXZlcnkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpcGVUcnV0aCgpO1xyXG4gICAgICAgICAgICBkZWxldGVDb250ZW50KCk7XHJcbiAgICAgICAgICAgIGxvYWREZWwoKTtcclxuICAgICAgICAgICAgcmVzZXROYXZCYXJTdHlsZSgpO1xyXG4gICAgICAgIH0pXHJcbiAgICBcclxuICAgICAgICBhYm91dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgZGVsZXRlQ29udGVudCgpO1xyXG4gICAgICAgICAgICBkZWxldGVEZWxpdmVyeSgpO1xyXG4gICAgICAgICAgICBkZWxldGVGb290ZXIoKTtcclxuICAgICAgICAgICAgbG9hZEFib3V0UGFnZSgpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBmdW5jdGlvbiBkZWxldGVFdmVudExpc3RlbmVycygpIHtcclxuICAgICAgICBsZXQgaG9tZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdob21lJyk7XHJcbiAgICAgICAgbGV0IGRlbGl2ZXJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RlbGl2ZXJ5Jyk7XHJcbiAgICAgICAgbGV0IGFib3V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fib3V0Jyk7XHJcblxyXG4gICAgICAgIGhvbWUucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHdpcGVUcnV0aCgpO1xyXG4gICAgICAgICAgICBkZWxldGVEZWxpdmVyeSgpO1xyXG4gICAgICAgICAgICBkZWxldGVDb250ZW50KCk7XHJcbiAgICAgICAgICAgIHBhZ2VSZWxvYWQoKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGVyJykgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGNyZWF0ZUFwcGVuZEZvb3RlcigpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZWZyZXNoVmFyaWFibGVzKCk7XHJcbiAgICAgICAgICAgIGRlbGV0ZUV2ZW50TGlzdGVuZXJzKCk7XHJcbiAgICAgICAgICAgIHJlc2V0TmF2QmFyU3R5bGUoKTtcclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICBkZWxpdmVyeS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgICAgICAgd2lwZVRydXRoKCk7XHJcbiAgICAgICAgICAgIGRlbGV0ZUNvbnRlbnQoKTtcclxuICAgICAgICAgICAgbG9hZERlbCgpO1xyXG4gICAgICAgICAgICByZXNldE5hdkJhclN0eWxlKCk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgYWJvdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGRlbGV0ZUNvbnRlbnQoKTtcclxuICAgICAgICAgICAgZGVsZXRlRGVsaXZlcnkoKTtcclxuICAgICAgICAgICAgZGVsZXRlRm9vdGVyKCk7XHJcbiAgICAgICAgICAgIGxvYWRBYm91dFBhZ2UoKTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxucGFnZUxvYWQoKTtcclxucmVmcmVzaFZhcmlhYmxlcygpO1xyXG5hZGRFdmVudExpc3RlbmVycygpOyJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==
\ No newline at end of file
diff --git a/src/delivery.js b/src/delivery.js
index b7f99e5..09d954f 100644
--- a/src/delivery.js
+++ b/src/delivery.js
@@ -73,7 +73,5 @@ export function loadDelivery() {
inputContainer.appendChild(input);
infoContainer.appendChild(contactContainer);
content.appendChild(infoContainer);
- div.classList.add('hidden');
}
- FOOTER.classList.remove('hidden');
}
\ No newline at end of file
diff --git a/src/index.js b/src/index.js
index 41d310c..00532e5 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,33 +1,53 @@
import './style.css'
-import { pageLoad } from './pageload';
+import { createAppendFooter, loadDel, pageLoad, pageReload } from './pageload';
import { logoAppend } from './append';
-import { loadDelivery } from './delivery';
+import { loadAboutPage } from './truth';
-const NAVIGATION = function() {
+let WELCOMECONTAINER = document.getElementById('welcome-container');
+let PRODUCTSCONTAINER = document.getElementById('products-display');
+let MENUCONTAINER = document.getElementById('menu-container');
+let FOOTER = document.getElementById('footer');
+let DELIVERYDIV = document.getElementById('delivery-div');
+let INFOCONTAINER = document.getElementById('info-container');
- const WELCOMECONTAINER = document.getElementById('welcome-container');
- const PRODUCTSCONTAINER = document.getElementById('products-display');
- const MENUCONTAINER = document.getElementById('menu-container');
- const FOOTER = document.getElementById('footer');
- const DELIVERYDIV = document.getElementById('delivery-div');
- const INFOCONTAINER = document.getElementById('info-container');
+ function refreshVariables() {
+ WELCOMECONTAINER = document.getElementById('welcome-container');
+ PRODUCTSCONTAINER = document.getElementById('products-display');
+ MENUCONTAINER = document.getElementById('menu-container');
+ FOOTER = document.getElementById('footer');
+ DELIVERYDIV = document.getElementById('delivery-div');
+ INFOCONTAINER = document.getElementById('info-container');
+ }
- function hideContent() {
- WELCOMECONTAINER.classList.add('hidden');
- PRODUCTSCONTAINER.classList.add('hidden');
- MENUCONTAINER.classList.add('hidden');
- FOOTER.classList.add('hidden');
- DELIVERYDIV.classList.remove('hidden');
- INFOCONTAINER.classList.remove('hidden');
+ function deleteDelivery() {
+ if (document.getElementById('delivery-div') && document.getElementById('info-container')) {
+ document.getElementById('delivery-div').remove();
+ document.getElementById('info-container').remove();
+ }
}
-
- function showContent() {
- WELCOMECONTAINER.classList.remove('hidden');
- PRODUCTSCONTAINER.classList.remove('hidden');
- MENUCONTAINER.classList.remove('hidden');
- FOOTER.classList.remove('hidden');
- DELIVERYDIV.classList.add('hidden');
- INFOCONTAINER.classList.add('hidden');
+
+ function deleteContent() {
+ WELCOMECONTAINER.remove();
+ PRODUCTSCONTAINER.remove();
+ MENUCONTAINER.remove();
+ }
+
+ function deleteFooter() {
+ FOOTER.remove();
+ }
+
+ function resetNavBarStyle () {
+ const NAIVGATION = document.getElementById('navigation-container');
+ NAIVGATION.style.backgroundColor = 'white';
+ NAIVGATION.style.color = 'black';
+ NAIVGATION.style.margin = '20px';
+ }
+
+ function wipeTruth() {
+ const TRUTH = document.getElementById('truth-container');
+ if (TRUTH) {
+ TRUTH.remove();
+ }
}
function addEventListeners() {
@@ -36,20 +56,69 @@ const NAVIGATION = function() {
let about = document.getElementById('about');
home.addEventListener('click', () => {
- showContent();
+ wipeTruth();
+ deleteDelivery();
+ deleteContent();
+ pageReload();
+
+ if (document.getElementById('footer') === null) {
+ createAppendFooter();
+ }
+
+ refreshVariables();
+ deleteEventListeners();
+ resetNavBarStyle();
})
delivery.addEventListener('click', () => {
- hideContent();
+ wipeTruth();
+ deleteContent();
+ loadDel();
+ resetNavBarStyle();
})
about.addEventListener('click', () => {
- hideContent();
+ deleteContent();
+ deleteDelivery();
+ deleteFooter();
+ loadAboutPage();
})
+ }
+ function deleteEventListeners() {
+ let home = document.getElementById('home');
+ let delivery = document.getElementById('delivery');
+ let about = document.getElementById('about');
+
+ home.removeEventListener('click', () => {
+ wipeTruth();
+ deleteDelivery();
+ deleteContent();
+ pageReload();
+
+ if (document.getElementById('footer') === null) {
+ createAppendFooter();
+ }
+ refreshVariables();
+ deleteEventListeners();
+ resetNavBarStyle();
+ })
+
+ delivery.removeEventListener('click', () => {
+ wipeTruth();
+ deleteContent();
+ loadDel();
+ resetNavBarStyle();
+ })
+
+ about.removeEventListener('click', () => {
+ deleteContent();
+ deleteDelivery();
+ deleteFooter();
+ loadAboutPage();
+ })
}
- addEventListeners();
- };
pageLoad();
-NAVIGATION();
\ No newline at end of file
+refreshVariables();
+addEventListeners();
\ No newline at end of file
diff --git a/src/pageload.js b/src/pageload.js
index 8d0018b..9b67925 100644
--- a/src/pageload.js
+++ b/src/pageload.js
@@ -12,10 +12,20 @@
createStory();
createMenu();
createAppendFooter();
+}
+
+export function loadDel() {
createDeliveryDiv();
loadDelivery();
}
+export function pageReload() {
+ displayWelcome();
+ addPhotoOverlay();
+ createStory();
+ createMenu();
+}
+
function displayWelcome() {
let welcomeContainer = document.createElement('div');
welcomeContainer.id = 'welcome-container';
@@ -127,7 +137,7 @@ function createMenu() {
createMenuItemInSecondList('8. The Continental Burger - 14.5$');
}
-function createAppendFooter() {
+export function createAppendFooter() {
let footer = document.createElement('div');
footer.id = 'footer';
let footerElementsContanier = document.createElement('div');
diff --git a/src/style.css b/src/style.css
index 2d30fe6..a5ac290 100644
--- a/src/style.css
+++ b/src/style.css
@@ -190,4 +190,12 @@ ol {
background-image: url(img/hero-image.jpg);
background-size: cover;
background-repeat: no-repeat;
+}
+
+.truth {
+
+}
+
+.truth span {
+ filter: blur(6px);
}
\ No newline at end of file
diff --git a/src/truth.js b/src/truth.js
new file mode 100644
index 0000000..04fbed4
--- /dev/null
+++ b/src/truth.js
@@ -0,0 +1,24 @@
+import { content } from "./append";
+
+export function loadAboutPage() {
+ if (document.getElementById('truth-container') === null) {
+ let truthContainer = document.createElement('div');
+ truthContainer.id = 'truth-container';
+ let truth = document.createElement('p');
+ truth.classList.add('truth');
+
+ const NAIVGATION = document.getElementById('navigation-container');
+ NAIVGATION.style.backgroundColor = 'black';
+ NAIVGATION.style.color = 'white';
+ NAIVGATION.style.margin = '0';
+
+ truth.innerHTML = 'The truth this is that the Los Pollos Hermanos is not a chicken restaurant. It is the coverup for the massive criminal syndicate operating on the terrtory of the southern United States of America and Mexico. The law enforcement agencies such as the Department of Homeland Security are not only aware of their existence, but they are actively sponsoring them as a method to exert their influence. The Gustav Fring, is actually a criminal with ties to the Chilean Military and the CIA. The Los Pollos Hermanos is a cover up for the Operation Backwaters , which has played a large role in the CIA\'s Overlord Program. Los Pollos Hermanos shall continue to operate under the guidance of the CIA! God save us all';
+ truthContainer.style.height = '100vh';
+ truthContainer.style.padding = '35vh';
+ truthContainer.style.backgroundColor = 'black';
+ truth.style.fontSize = '25px';
+ truth.style.color = 'white';
+ truthContainer.appendChild(truth);
+ content.appendChild(truthContainer);
+ }
+}
\ No newline at end of file
diff --git a/webpack.config.js b/webpack.config.js
index 53ef905..9517b76 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -1,4 +1,5 @@
const path = require('path');
+const URL = require('url').URL;
module.exports = {
mode: 'development',