19474 lines
No EOL
3.1 MiB
19474 lines
No EOL
3.1 MiB
/******/ (function(modules) { // webpackBootstrap
|
||
/******/ // The module cache
|
||
/******/ var installedModules = {};
|
||
/******/
|
||
/******/ // The require function
|
||
/******/ function __webpack_require__(moduleId) {
|
||
/******/
|
||
/******/ // Check if module is in cache
|
||
/******/ if(installedModules[moduleId]) {
|
||
/******/ return installedModules[moduleId].exports;
|
||
/******/ }
|
||
/******/ // Create a new module (and put it into the cache)
|
||
/******/ var module = installedModules[moduleId] = {
|
||
/******/ i: moduleId,
|
||
/******/ l: false,
|
||
/******/ exports: {}
|
||
/******/ };
|
||
/******/
|
||
/******/ // Execute the module function
|
||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||
/******/
|
||
/******/ // Flag the module as loaded
|
||
/******/ module.l = true;
|
||
/******/
|
||
/******/ // Return the exports of the module
|
||
/******/ return module.exports;
|
||
/******/ }
|
||
/******/
|
||
/******/
|
||
/******/ // expose the modules object (__webpack_modules__)
|
||
/******/ __webpack_require__.m = modules;
|
||
/******/
|
||
/******/ // expose the module cache
|
||
/******/ __webpack_require__.c = installedModules;
|
||
/******/
|
||
/******/ // define getter function for harmony exports
|
||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
||
/******/ }
|
||
/******/ };
|
||
/******/
|
||
/******/ // define __esModule on exports
|
||
/******/ __webpack_require__.r = function(exports) {
|
||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||
/******/ }
|
||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||
/******/ };
|
||
/******/
|
||
/******/ // create a fake namespace object
|
||
/******/ // mode & 1: value is a module id, require it
|
||
/******/ // mode & 2: merge all properties of value into the ns
|
||
/******/ // mode & 4: return value when already ns object
|
||
/******/ // mode & 8|1: behave like require
|
||
/******/ __webpack_require__.t = function(value, mode) {
|
||
/******/ if(mode & 1) value = __webpack_require__(value);
|
||
/******/ if(mode & 8) return value;
|
||
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
||
/******/ var ns = Object.create(null);
|
||
/******/ __webpack_require__.r(ns);
|
||
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
||
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
||
/******/ return ns;
|
||
/******/ };
|
||
/******/
|
||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||
/******/ __webpack_require__.n = function(module) {
|
||
/******/ var getter = module && module.__esModule ?
|
||
/******/ function getDefault() { return module['default']; } :
|
||
/******/ function getModuleExports() { return module; };
|
||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||
/******/ return getter;
|
||
/******/ };
|
||
/******/
|
||
/******/ // Object.prototype.hasOwnProperty.call
|
||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||
/******/
|
||
/******/ // __webpack_public_path__
|
||
/******/ __webpack_require__.p = "";
|
||
/******/
|
||
/******/
|
||
/******/ // Load entry module and return exports
|
||
/******/ return __webpack_require__(__webpack_require__.s = "./client/src/js/index.js");
|
||
/******/ })
|
||
/************************************************************************/
|
||
/******/ ({
|
||
|
||
/***/ "./client/src/css/style.css":
|
||
/*!**********************************!*\
|
||
!*** ./client/src/css/style.css ***!
|
||
\**********************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
// removed by extract-text-webpack-plugin
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./client/src/js/index.js":
|
||
/*!********************************!*\
|
||
!*** ./client/src/js/index.js ***!
|
||
\********************************/
|
||
/*! no exports provided */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
__webpack_require__.r(__webpack_exports__);
|
||
/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! socket.io-client */ "./node_modules/socket.io-client/lib/index.js");
|
||
/* harmony import */ var socket_io_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(socket_io_client__WEBPACK_IMPORTED_MODULE_0__);
|
||
/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! xterm */ "./node_modules/xterm/lib/xterm.js");
|
||
/* harmony import */ var xterm__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(xterm__WEBPACK_IMPORTED_MODULE_1__);
|
||
/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! xterm-addon-fit */ "./node_modules/xterm-addon-fit/lib/xterm-addon-fit.js");
|
||
/* harmony import */ var xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__);
|
||
/* harmony import */ var _fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @fortawesome/fontawesome-svg-core */ "./node_modules/@fortawesome/fontawesome-svg-core/index.es.js");
|
||
/* harmony import */ var _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @fortawesome/free-solid-svg-icons */ "./node_modules/@fortawesome/free-solid-svg-icons/index.es.js");
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
_fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_3__["library"].add(_fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_4__["faBars"], _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_4__["faClipboard"], _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_4__["faDownload"], _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_4__["faKey"], _fortawesome_free_solid_svg_icons__WEBPACK_IMPORTED_MODULE_4__["faCog"])
|
||
|
||
_fortawesome_fontawesome_svg_core__WEBPACK_IMPORTED_MODULE_3__["dom"].watch()
|
||
|
||
__webpack_require__(/*! xterm/css/xterm.css */ "./node_modules/xterm/css/xterm.css")
|
||
__webpack_require__(/*! ../css/style.css */ "./client/src/css/style.css")
|
||
|
||
/* global Blob, logBtn, credentialsBtn, reauthBtn, downloadLogBtn */
|
||
var sessionLogEnable = false
|
||
var loggedData = false
|
||
var allowreplay = false
|
||
var allowreauth = false
|
||
var sessionLog, sessionFooter, logDate, currentDate, myFile, errorExists
|
||
var termid // eslint-disable-line
|
||
// change path here and in the /app/server/app.js line 115
|
||
var socket = socket_io_client__WEBPACK_IMPORTED_MODULE_0___default()({ path: '/ssh/socket.io' })
|
||
var term = new xterm__WEBPACK_IMPORTED_MODULE_1__["Terminal"]()
|
||
const fitAddon = new xterm_addon_fit__WEBPACK_IMPORTED_MODULE_2__["FitAddon"]()
|
||
// DOM properties
|
||
var status = document.getElementById('status')
|
||
var header = document.getElementById('header')
|
||
var dropupContent = document.getElementById('dropupContent')
|
||
var footer = document.getElementById('footer')
|
||
var terminalContainer = document.getElementById('terminal-container')
|
||
term.loadAddon(fitAddon)
|
||
term.open(terminalContainer)
|
||
term.focus()
|
||
fitAddon.fit()
|
||
window.addEventListener('resize', resizeScreen, false)
|
||
|
||
function resizeScreen () {
|
||
fitAddon.fit()
|
||
socket.emit('resize', { cols: term.cols, rows: term.rows })
|
||
}
|
||
|
||
// this area seems unneccessary now, tested out in Chrome 77 - bill
|
||
//
|
||
/* if (document.location.pathname) {
|
||
var parts = document.location.pathname.split('/')
|
||
var base = parts.slice(0, parts.length - 1).join('/') + '/'
|
||
var resource = base.substring(1) + '/ssh/socket.io'
|
||
socket = io(null, {
|
||
path: '/ssh/socket.io',
|
||
resource: resource
|
||
})
|
||
// socket.connect()
|
||
} else {
|
||
socket = io('http://localhost:2222', {path: '/ssh/socket.io'})
|
||
// socket.connect()
|
||
} */
|
||
|
||
term.onData(data => socket.emit('data', data))
|
||
|
||
socket.on('data', function (data) {
|
||
term.write(data)
|
||
if (sessionLogEnable) {
|
||
sessionLog = sessionLog + data
|
||
}
|
||
})
|
||
|
||
socket.on('connect', function () {
|
||
socket.emit('geometry', term.cols, term.rows)
|
||
})
|
||
|
||
socket.on('setTerminalOpts', function (data) {
|
||
term.setOption('cursorBlink', data.cursorBlink)
|
||
term.setOption('scrollback', data.scrollback)
|
||
term.setOption('tabStopWidth', data.tabStopWidth)
|
||
term.setOption('bellStyle', data.bellStyle)
|
||
})
|
||
|
||
socket.on('title', function (data) {
|
||
document.title = data
|
||
})
|
||
|
||
socket.on('menu', function (data) {
|
||
drawMenu(data)
|
||
})
|
||
|
||
socket.on('status', function (data) {
|
||
status.innerHTML = data
|
||
})
|
||
|
||
socket.on('ssherror', function (data) {
|
||
status.innerHTML = data
|
||
status.style.backgroundColor = 'red'
|
||
errorExists = true
|
||
})
|
||
|
||
socket.on('headerBackground', function (data) {
|
||
header.style.backgroundColor = data
|
||
})
|
||
|
||
socket.on('header', function (data) {
|
||
if (data) {
|
||
header.innerHTML = data
|
||
header.style.display = 'block'
|
||
// header is 19px and footer is 19px, recaculate new terminal-container and resize
|
||
terminalContainer.style.height = 'calc(100% - 38px)'
|
||
resizeScreen()
|
||
}
|
||
})
|
||
|
||
socket.on('footer', function (data) {
|
||
sessionFooter = data
|
||
footer.innerHTML = data
|
||
})
|
||
|
||
socket.on('statusBackground', function (data) {
|
||
status.style.backgroundColor = data
|
||
})
|
||
|
||
socket.on('allowreplay', function (data) {
|
||
if (data === true) {
|
||
console.log('allowreplay: ' + data)
|
||
allowreplay = true
|
||
drawMenu(dropupContent.innerHTML + '<a id="credentialsBtn"><i class="fas fa-key fa-fw"></i> Credentials</a>')
|
||
} else {
|
||
allowreplay = false
|
||
console.log('allowreplay: ' + data)
|
||
}
|
||
})
|
||
|
||
socket.on('allowreauth', function (data) {
|
||
if (data === true) {
|
||
console.log('allowreauth: ' + data)
|
||
allowreauth = true
|
||
drawMenu(dropupContent.innerHTML + '<a id="reauthBtn"><i class="fas fa-key fa-fw"></i> Switch User</a>')
|
||
} else {
|
||
allowreauth = false
|
||
console.log('allowreauth: ' + data)
|
||
}
|
||
})
|
||
|
||
socket.on('disconnect', function (err) {
|
||
if (!errorExists) {
|
||
status.style.backgroundColor = 'red'
|
||
status.innerHTML =
|
||
'WEBSOCKET SERVER DISCONNECTED: ' + err
|
||
}
|
||
socket.io.reconnection(false)
|
||
})
|
||
|
||
socket.on('error', function (err) {
|
||
if (!errorExists) {
|
||
status.style.backgroundColor = 'red'
|
||
status.innerHTML = 'ERROR: ' + err
|
||
}
|
||
})
|
||
|
||
socket.on('reauth', function () {
|
||
(allowreauth) && reauthSession()
|
||
})
|
||
|
||
term.onTitleChange(title => (document.title = title))
|
||
|
||
// draw/re-draw menu and reattach listeners
|
||
// when dom is changed, listeners are abandonded
|
||
function drawMenu (data) {
|
||
dropupContent.innerHTML = data
|
||
logBtn.addEventListener('click', toggleLog)
|
||
allowreauth && reauthBtn.addEventListener('click', reauthSession)
|
||
allowreplay && credentialsBtn.addEventListener('click', replayCredentials)
|
||
loggedData && downloadLogBtn.addEventListener('click', downloadLog)
|
||
}
|
||
|
||
// reauthenticate
|
||
function reauthSession () { // eslint-disable-line
|
||
console.log('re-authenticating')
|
||
window.location.href = '/reauth'
|
||
return false
|
||
}
|
||
|
||
// replay password to server, requires
|
||
function replayCredentials () { // eslint-disable-line
|
||
socket.emit('control', 'replayCredentials')
|
||
console.log('replaying credentials')
|
||
term.focus()
|
||
return false
|
||
}
|
||
|
||
// Set variable to toggle log data from client/server to a varialble
|
||
// for later download
|
||
function toggleLog () { // eslint-disable-line
|
||
if (sessionLogEnable === true) {
|
||
sessionLogEnable = false
|
||
loggedData = true
|
||
logBtn.innerHTML = '<i class="fas fa-clipboard fa-fw"></i> Start Log'
|
||
console.log('stopping log, ' + sessionLogEnable)
|
||
currentDate = new Date()
|
||
sessionLog = sessionLog + '\r\n\r\nLog End for ' + sessionFooter + ': ' +
|
||
currentDate.getFullYear() + '/' + (currentDate.getMonth() + 1) + '/' +
|
||
currentDate.getDate() + ' @ ' + currentDate.getHours() + ':' +
|
||
currentDate.getMinutes() + ':' + currentDate.getSeconds() + '\r\n'
|
||
logDate = currentDate
|
||
term.focus()
|
||
return false
|
||
} else {
|
||
sessionLogEnable = true
|
||
loggedData = true
|
||
logBtn.innerHTML = '<i class="fas fa-cog fa-spin fa-fw"></i> Stop Log'
|
||
downloadLogBtn.style.color = '#000'
|
||
downloadLogBtn.addEventListener('click', downloadLog)
|
||
console.log('starting log, ' + sessionLogEnable)
|
||
currentDate = new Date()
|
||
sessionLog = 'Log Start for ' + sessionFooter + ': ' +
|
||
currentDate.getFullYear() + '/' + (currentDate.getMonth() + 1) + '/' +
|
||
currentDate.getDate() + ' @ ' + currentDate.getHours() + ':' +
|
||
currentDate.getMinutes() + ':' + currentDate.getSeconds() + '\r\n\r\n'
|
||
logDate = currentDate
|
||
term.focus()
|
||
return false
|
||
}
|
||
}
|
||
|
||
// cross browser method to "download" an element to the local system
|
||
// used for our client-side logging feature
|
||
function downloadLog () { // eslint-disable-line
|
||
if (loggedData === true) {
|
||
myFile = 'WebSSH2-' + logDate.getFullYear() + (logDate.getMonth() + 1) +
|
||
logDate.getDate() + '_' + logDate.getHours() + logDate.getMinutes() +
|
||
logDate.getSeconds() + '.log'
|
||
// regex should eliminate escape sequences from being logged.
|
||
var blob = new Blob([sessionLog.replace(/[\u001b\u009b][[\]()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><;]/g, '')], { // eslint-disable-line no-control-regex
|
||
type: 'text/plain'
|
||
})
|
||
if (window.navigator.msSaveOrOpenBlob) {
|
||
window.navigator.msSaveBlob(blob, myFile)
|
||
} else {
|
||
var elem = window.document.createElement('a')
|
||
elem.href = window.URL.createObjectURL(blob)
|
||
elem.download = myFile
|
||
document.body.appendChild(elem)
|
||
elem.click()
|
||
document.body.removeChild(elem)
|
||
}
|
||
}
|
||
term.focus()
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/@fortawesome/fontawesome-svg-core/index.es.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/@fortawesome/fontawesome-svg-core/index.es.js ***!
|
||
\********************************************************************/
|
||
/*! exports provided: icon, noAuto, config, toHtml, layer, text, counter, library, dom, parse, findIconDefinition */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
__webpack_require__.r(__webpack_exports__);
|
||
/* WEBPACK VAR INJECTION */(function(global, setImmediate) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "icon", function() { return icon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noAuto", function() { return noAuto; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "config", function() { return config; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toHtml", function() { return toHtml; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "layer", function() { return layer; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "text", function() { return text; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "counter", function() { return counter; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "library", function() { return library; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dom", function() { return dom; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parse", function() { return parse; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIconDefinition", function() { return findIconDefinition; });
|
||
function _typeof(obj) {
|
||
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
|
||
_typeof = function (obj) {
|
||
return typeof obj;
|
||
};
|
||
} else {
|
||
_typeof = function (obj) {
|
||
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
||
};
|
||
}
|
||
|
||
return _typeof(obj);
|
||
}
|
||
|
||
function _classCallCheck(instance, Constructor) {
|
||
if (!(instance instanceof Constructor)) {
|
||
throw new TypeError("Cannot call a class as a function");
|
||
}
|
||
}
|
||
|
||
function _defineProperties(target, props) {
|
||
for (var i = 0; i < props.length; i++) {
|
||
var descriptor = props[i];
|
||
descriptor.enumerable = descriptor.enumerable || false;
|
||
descriptor.configurable = true;
|
||
if ("value" in descriptor) descriptor.writable = true;
|
||
Object.defineProperty(target, descriptor.key, descriptor);
|
||
}
|
||
}
|
||
|
||
function _createClass(Constructor, protoProps, staticProps) {
|
||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||
return Constructor;
|
||
}
|
||
|
||
function _defineProperty(obj, key, value) {
|
||
if (key in obj) {
|
||
Object.defineProperty(obj, key, {
|
||
value: value,
|
||
enumerable: true,
|
||
configurable: true,
|
||
writable: true
|
||
});
|
||
} else {
|
||
obj[key] = value;
|
||
}
|
||
|
||
return obj;
|
||
}
|
||
|
||
function _objectSpread(target) {
|
||
for (var i = 1; i < arguments.length; i++) {
|
||
var source = arguments[i] != null ? arguments[i] : {};
|
||
var ownKeys = Object.keys(source);
|
||
|
||
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||
}));
|
||
}
|
||
|
||
ownKeys.forEach(function (key) {
|
||
_defineProperty(target, key, source[key]);
|
||
});
|
||
}
|
||
|
||
return target;
|
||
}
|
||
|
||
function _slicedToArray(arr, i) {
|
||
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
|
||
}
|
||
|
||
function _toConsumableArray(arr) {
|
||
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
|
||
}
|
||
|
||
function _arrayWithoutHoles(arr) {
|
||
if (Array.isArray(arr)) {
|
||
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
|
||
|
||
return arr2;
|
||
}
|
||
}
|
||
|
||
function _arrayWithHoles(arr) {
|
||
if (Array.isArray(arr)) return arr;
|
||
}
|
||
|
||
function _iterableToArray(iter) {
|
||
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
|
||
}
|
||
|
||
function _iterableToArrayLimit(arr, i) {
|
||
var _arr = [];
|
||
var _n = true;
|
||
var _d = false;
|
||
var _e = undefined;
|
||
|
||
try {
|
||
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
||
_arr.push(_s.value);
|
||
|
||
if (i && _arr.length === i) break;
|
||
}
|
||
} catch (err) {
|
||
_d = true;
|
||
_e = err;
|
||
} finally {
|
||
try {
|
||
if (!_n && _i["return"] != null) _i["return"]();
|
||
} finally {
|
||
if (_d) throw _e;
|
||
}
|
||
}
|
||
|
||
return _arr;
|
||
}
|
||
|
||
function _nonIterableSpread() {
|
||
throw new TypeError("Invalid attempt to spread non-iterable instance");
|
||
}
|
||
|
||
function _nonIterableRest() {
|
||
throw new TypeError("Invalid attempt to destructure non-iterable instance");
|
||
}
|
||
|
||
var noop = function noop() {};
|
||
|
||
var _WINDOW = {};
|
||
var _DOCUMENT = {};
|
||
var _MUTATION_OBSERVER = null;
|
||
var _PERFORMANCE = {
|
||
mark: noop,
|
||
measure: noop
|
||
};
|
||
|
||
try {
|
||
if (typeof window !== 'undefined') _WINDOW = window;
|
||
if (typeof document !== 'undefined') _DOCUMENT = document;
|
||
if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;
|
||
if (typeof performance !== 'undefined') _PERFORMANCE = performance;
|
||
} catch (e) {}
|
||
|
||
var _ref = _WINDOW.navigator || {},
|
||
_ref$userAgent = _ref.userAgent,
|
||
userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;
|
||
|
||
var WINDOW = _WINDOW;
|
||
var DOCUMENT = _DOCUMENT;
|
||
var MUTATION_OBSERVER = _MUTATION_OBSERVER;
|
||
var PERFORMANCE = _PERFORMANCE;
|
||
var IS_BROWSER = !!WINDOW.document;
|
||
var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
|
||
var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
|
||
|
||
var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';
|
||
var UNITS_IN_GRID = 16;
|
||
var DEFAULT_FAMILY_PREFIX = 'fa';
|
||
var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';
|
||
var DATA_FA_I2SVG = 'data-fa-i2svg';
|
||
var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';
|
||
var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';
|
||
var DATA_PREFIX = 'data-prefix';
|
||
var DATA_ICON = 'data-icon';
|
||
var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';
|
||
var MUTATION_APPROACH_ASYNC = 'async';
|
||
var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];
|
||
var PRODUCTION = function () {
|
||
try {
|
||
return "development" === 'production';
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
}();
|
||
var PREFIX_TO_STYLE = {
|
||
'fas': 'solid',
|
||
'far': 'regular',
|
||
'fal': 'light',
|
||
'fad': 'duotone',
|
||
'fab': 'brands',
|
||
'fa': 'solid'
|
||
};
|
||
var STYLE_TO_PREFIX = {
|
||
'solid': 'fas',
|
||
'regular': 'far',
|
||
'light': 'fal',
|
||
'duotone': 'fad',
|
||
'brands': 'fab'
|
||
};
|
||
var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';
|
||
var FONT_FAMILY_PATTERN = /Font Awesome 5 (Solid|Regular|Light|Duotone|Brands|Free|Pro)/;
|
||
var FONT_WEIGHT_TO_PREFIX = {
|
||
'900': 'fas',
|
||
'400': 'far',
|
||
'normal': 'far',
|
||
'300': 'fal'
|
||
};
|
||
var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||
var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);
|
||
var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];
|
||
var DUOTONE_CLASSES = {
|
||
GROUP: 'group',
|
||
SWAP_OPACITY: 'swap-opacity',
|
||
PRIMARY: 'primary',
|
||
SECONDARY: 'secondary'
|
||
};
|
||
var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {
|
||
return "".concat(n, "x");
|
||
})).concat(oneToTwenty.map(function (n) {
|
||
return "w-".concat(n);
|
||
}));
|
||
|
||
var initial = WINDOW.FontAwesomeConfig || {};
|
||
|
||
function getAttrConfig(attr) {
|
||
var element = DOCUMENT.querySelector('script[' + attr + ']');
|
||
|
||
if (element) {
|
||
return element.getAttribute(attr);
|
||
}
|
||
}
|
||
|
||
function coerce(val) {
|
||
// Getting an empty string will occur if the attribute is set on the HTML tag but without a value
|
||
// We'll assume that this is an indication that it should be toggled to true
|
||
// For example <script data-search-pseudo-elements src="..."></script>
|
||
if (val === '') return true;
|
||
if (val === 'false') return false;
|
||
if (val === 'true') return true;
|
||
return val;
|
||
}
|
||
|
||
if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {
|
||
var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];
|
||
attrs.forEach(function (_ref) {
|
||
var _ref2 = _slicedToArray(_ref, 2),
|
||
attr = _ref2[0],
|
||
key = _ref2[1];
|
||
|
||
var val = coerce(getAttrConfig(attr));
|
||
|
||
if (val !== undefined && val !== null) {
|
||
initial[key] = val;
|
||
}
|
||
});
|
||
}
|
||
|
||
var _default = {
|
||
familyPrefix: DEFAULT_FAMILY_PREFIX,
|
||
replacementClass: DEFAULT_REPLACEMENT_CLASS,
|
||
autoReplaceSvg: true,
|
||
autoAddCss: true,
|
||
autoA11y: true,
|
||
searchPseudoElements: false,
|
||
observeMutations: true,
|
||
mutateApproach: 'async',
|
||
keepOriginalSource: true,
|
||
measurePerformance: false,
|
||
showMissingIcons: true
|
||
};
|
||
|
||
var _config = _objectSpread({}, _default, initial);
|
||
|
||
if (!_config.autoReplaceSvg) _config.observeMutations = false;
|
||
|
||
var config = _objectSpread({}, _config);
|
||
|
||
WINDOW.FontAwesomeConfig = config;
|
||
|
||
var w = WINDOW || {};
|
||
if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};
|
||
if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};
|
||
if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};
|
||
if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];
|
||
var namespace = w[NAMESPACE_IDENTIFIER];
|
||
|
||
var functions = [];
|
||
|
||
var listener = function listener() {
|
||
DOCUMENT.removeEventListener('DOMContentLoaded', listener);
|
||
loaded = 1;
|
||
functions.map(function (fn) {
|
||
return fn();
|
||
});
|
||
};
|
||
|
||
var loaded = false;
|
||
|
||
if (IS_DOM) {
|
||
loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);
|
||
if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);
|
||
}
|
||
|
||
function domready (fn) {
|
||
if (!IS_DOM) return;
|
||
loaded ? setTimeout(fn, 0) : functions.push(fn);
|
||
}
|
||
|
||
var PENDING = 'pending';
|
||
var SETTLED = 'settled';
|
||
var FULFILLED = 'fulfilled';
|
||
var REJECTED = 'rejected';
|
||
|
||
var NOOP = function NOOP() {};
|
||
|
||
var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';
|
||
var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;
|
||
var asyncQueue = [];
|
||
var asyncTimer;
|
||
|
||
function asyncFlush() {
|
||
// run promise callbacks
|
||
for (var i = 0; i < asyncQueue.length; i++) {
|
||
asyncQueue[i][0](asyncQueue[i][1]);
|
||
} // reset async asyncQueue
|
||
|
||
|
||
asyncQueue = [];
|
||
asyncTimer = false;
|
||
}
|
||
|
||
function asyncCall(callback, arg) {
|
||
asyncQueue.push([callback, arg]);
|
||
|
||
if (!asyncTimer) {
|
||
asyncTimer = true;
|
||
asyncSetTimer(asyncFlush, 0);
|
||
}
|
||
}
|
||
|
||
function invokeResolver(resolver, promise) {
|
||
function resolvePromise(value) {
|
||
resolve(promise, value);
|
||
}
|
||
|
||
function rejectPromise(reason) {
|
||
reject(promise, reason);
|
||
}
|
||
|
||
try {
|
||
resolver(resolvePromise, rejectPromise);
|
||
} catch (e) {
|
||
rejectPromise(e);
|
||
}
|
||
}
|
||
|
||
function invokeCallback(subscriber) {
|
||
var owner = subscriber.owner;
|
||
var settled = owner._state;
|
||
var value = owner._data;
|
||
var callback = subscriber[settled];
|
||
var promise = subscriber.then;
|
||
|
||
if (typeof callback === 'function') {
|
||
settled = FULFILLED;
|
||
|
||
try {
|
||
value = callback(value);
|
||
} catch (e) {
|
||
reject(promise, e);
|
||
}
|
||
}
|
||
|
||
if (!handleThenable(promise, value)) {
|
||
if (settled === FULFILLED) {
|
||
resolve(promise, value);
|
||
}
|
||
|
||
if (settled === REJECTED) {
|
||
reject(promise, value);
|
||
}
|
||
}
|
||
}
|
||
|
||
function handleThenable(promise, value) {
|
||
var resolved;
|
||
|
||
try {
|
||
if (promise === value) {
|
||
throw new TypeError('A promises callback cannot return that same promise.');
|
||
}
|
||
|
||
if (value && (typeof value === 'function' || _typeof(value) === 'object')) {
|
||
// then should be retrieved only once
|
||
var then = value.then;
|
||
|
||
if (typeof then === 'function') {
|
||
then.call(value, function (val) {
|
||
if (!resolved) {
|
||
resolved = true;
|
||
|
||
if (value === val) {
|
||
fulfill(promise, val);
|
||
} else {
|
||
resolve(promise, val);
|
||
}
|
||
}
|
||
}, function (reason) {
|
||
if (!resolved) {
|
||
resolved = true;
|
||
reject(promise, reason);
|
||
}
|
||
});
|
||
return true;
|
||
}
|
||
}
|
||
} catch (e) {
|
||
if (!resolved) {
|
||
reject(promise, e);
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
function resolve(promise, value) {
|
||
if (promise === value || !handleThenable(promise, value)) {
|
||
fulfill(promise, value);
|
||
}
|
||
}
|
||
|
||
function fulfill(promise, value) {
|
||
if (promise._state === PENDING) {
|
||
promise._state = SETTLED;
|
||
promise._data = value;
|
||
asyncCall(publishFulfillment, promise);
|
||
}
|
||
}
|
||
|
||
function reject(promise, reason) {
|
||
if (promise._state === PENDING) {
|
||
promise._state = SETTLED;
|
||
promise._data = reason;
|
||
asyncCall(publishRejection, promise);
|
||
}
|
||
}
|
||
|
||
function publish(promise) {
|
||
promise._then = promise._then.forEach(invokeCallback);
|
||
}
|
||
|
||
function publishFulfillment(promise) {
|
||
promise._state = FULFILLED;
|
||
publish(promise);
|
||
}
|
||
|
||
function publishRejection(promise) {
|
||
promise._state = REJECTED;
|
||
publish(promise);
|
||
|
||
if (!promise._handled && isNode) {
|
||
global.process.emit('unhandledRejection', promise._data, promise);
|
||
}
|
||
}
|
||
|
||
function notifyRejectionHandled(promise) {
|
||
global.process.emit('rejectionHandled', promise);
|
||
}
|
||
/**
|
||
* @class
|
||
*/
|
||
|
||
|
||
function P(resolver) {
|
||
if (typeof resolver !== 'function') {
|
||
throw new TypeError('Promise resolver ' + resolver + ' is not a function');
|
||
}
|
||
|
||
if (this instanceof P === false) {
|
||
throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.');
|
||
}
|
||
|
||
this._then = [];
|
||
invokeResolver(resolver, this);
|
||
}
|
||
|
||
P.prototype = {
|
||
constructor: P,
|
||
_state: PENDING,
|
||
_then: null,
|
||
_data: undefined,
|
||
_handled: false,
|
||
then: function then(onFulfillment, onRejection) {
|
||
var subscriber = {
|
||
owner: this,
|
||
then: new this.constructor(NOOP),
|
||
fulfilled: onFulfillment,
|
||
rejected: onRejection
|
||
};
|
||
|
||
if ((onRejection || onFulfillment) && !this._handled) {
|
||
this._handled = true;
|
||
|
||
if (this._state === REJECTED && isNode) {
|
||
asyncCall(notifyRejectionHandled, this);
|
||
}
|
||
}
|
||
|
||
if (this._state === FULFILLED || this._state === REJECTED) {
|
||
// already resolved, call callback async
|
||
asyncCall(invokeCallback, subscriber);
|
||
} else {
|
||
// subscribe
|
||
this._then.push(subscriber);
|
||
}
|
||
|
||
return subscriber.then;
|
||
},
|
||
catch: function _catch(onRejection) {
|
||
return this.then(null, onRejection);
|
||
}
|
||
};
|
||
|
||
P.all = function (promises) {
|
||
if (!Array.isArray(promises)) {
|
||
throw new TypeError('You must pass an array to Promise.all().');
|
||
}
|
||
|
||
return new P(function (resolve, reject) {
|
||
var results = [];
|
||
var remaining = 0;
|
||
|
||
function resolver(index) {
|
||
remaining++;
|
||
return function (value) {
|
||
results[index] = value;
|
||
|
||
if (! --remaining) {
|
||
resolve(results);
|
||
}
|
||
};
|
||
}
|
||
|
||
for (var i = 0, promise; i < promises.length; i++) {
|
||
promise = promises[i];
|
||
|
||
if (promise && typeof promise.then === 'function') {
|
||
promise.then(resolver(i), reject);
|
||
} else {
|
||
results[i] = promise;
|
||
}
|
||
}
|
||
|
||
if (!remaining) {
|
||
resolve(results);
|
||
}
|
||
});
|
||
};
|
||
|
||
P.race = function (promises) {
|
||
if (!Array.isArray(promises)) {
|
||
throw new TypeError('You must pass an array to Promise.race().');
|
||
}
|
||
|
||
return new P(function (resolve, reject) {
|
||
for (var i = 0, promise; i < promises.length; i++) {
|
||
promise = promises[i];
|
||
|
||
if (promise && typeof promise.then === 'function') {
|
||
promise.then(resolve, reject);
|
||
} else {
|
||
resolve(promise);
|
||
}
|
||
}
|
||
});
|
||
};
|
||
|
||
P.resolve = function (value) {
|
||
if (value && _typeof(value) === 'object' && value.constructor === P) {
|
||
return value;
|
||
}
|
||
|
||
return new P(function (resolve) {
|
||
resolve(value);
|
||
});
|
||
};
|
||
|
||
P.reject = function (reason) {
|
||
return new P(function (resolve, reject) {
|
||
reject(reason);
|
||
});
|
||
};
|
||
|
||
var picked = typeof Promise === 'function' ? Promise : P;
|
||
|
||
var d = UNITS_IN_GRID;
|
||
var meaninglessTransform = {
|
||
size: 16,
|
||
x: 0,
|
||
y: 0,
|
||
rotate: 0,
|
||
flipX: false,
|
||
flipY: false
|
||
};
|
||
|
||
function isReserved(name) {
|
||
return ~RESERVED_CLASSES.indexOf(name);
|
||
}
|
||
function insertCss(css) {
|
||
if (!css || !IS_DOM) {
|
||
return;
|
||
}
|
||
|
||
var style = DOCUMENT.createElement('style');
|
||
style.setAttribute('type', 'text/css');
|
||
style.innerHTML = css;
|
||
var headChildren = DOCUMENT.head.childNodes;
|
||
var beforeChild = null;
|
||
|
||
for (var i = headChildren.length - 1; i > -1; i--) {
|
||
var child = headChildren[i];
|
||
var tagName = (child.tagName || '').toUpperCase();
|
||
|
||
if (['STYLE', 'LINK'].indexOf(tagName) > -1) {
|
||
beforeChild = child;
|
||
}
|
||
}
|
||
|
||
DOCUMENT.head.insertBefore(style, beforeChild);
|
||
return css;
|
||
}
|
||
var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||
function nextUniqueId() {
|
||
var size = 12;
|
||
var id = '';
|
||
|
||
while (size-- > 0) {
|
||
id += idPool[Math.random() * 62 | 0];
|
||
}
|
||
|
||
return id;
|
||
}
|
||
function toArray(obj) {
|
||
var array = [];
|
||
|
||
for (var i = (obj || []).length >>> 0; i--;) {
|
||
array[i] = obj[i];
|
||
}
|
||
|
||
return array;
|
||
}
|
||
function classArray(node) {
|
||
if (node.classList) {
|
||
return toArray(node.classList);
|
||
} else {
|
||
return (node.getAttribute('class') || '').split(' ').filter(function (i) {
|
||
return i;
|
||
});
|
||
}
|
||
}
|
||
function getIconName(familyPrefix, cls) {
|
||
var parts = cls.split('-');
|
||
var prefix = parts[0];
|
||
var iconName = parts.slice(1).join('-');
|
||
|
||
if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {
|
||
return iconName;
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
function htmlEscape(str) {
|
||
return "".concat(str).replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>');
|
||
}
|
||
function joinAttributes(attributes) {
|
||
return Object.keys(attributes || {}).reduce(function (acc, attributeName) {
|
||
return acc + "".concat(attributeName, "=\"").concat(htmlEscape(attributes[attributeName]), "\" ");
|
||
}, '').trim();
|
||
}
|
||
function joinStyles(styles) {
|
||
return Object.keys(styles || {}).reduce(function (acc, styleName) {
|
||
return acc + "".concat(styleName, ": ").concat(styles[styleName], ";");
|
||
}, '');
|
||
}
|
||
function transformIsMeaningful(transform) {
|
||
return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;
|
||
}
|
||
function transformForSvg(_ref) {
|
||
var transform = _ref.transform,
|
||
containerWidth = _ref.containerWidth,
|
||
iconWidth = _ref.iconWidth;
|
||
var outer = {
|
||
transform: "translate(".concat(containerWidth / 2, " 256)")
|
||
};
|
||
var innerTranslate = "translate(".concat(transform.x * 32, ", ").concat(transform.y * 32, ") ");
|
||
var innerScale = "scale(".concat(transform.size / 16 * (transform.flipX ? -1 : 1), ", ").concat(transform.size / 16 * (transform.flipY ? -1 : 1), ") ");
|
||
var innerRotate = "rotate(".concat(transform.rotate, " 0 0)");
|
||
var inner = {
|
||
transform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate)
|
||
};
|
||
var path = {
|
||
transform: "translate(".concat(iconWidth / 2 * -1, " -256)")
|
||
};
|
||
return {
|
||
outer: outer,
|
||
inner: inner,
|
||
path: path
|
||
};
|
||
}
|
||
function transformForCss(_ref2) {
|
||
var transform = _ref2.transform,
|
||
_ref2$width = _ref2.width,
|
||
width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,
|
||
_ref2$height = _ref2.height,
|
||
height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,
|
||
_ref2$startCentered = _ref2.startCentered,
|
||
startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;
|
||
var val = '';
|
||
|
||
if (startCentered && IS_IE) {
|
||
val += "translate(".concat(transform.x / d - width / 2, "em, ").concat(transform.y / d - height / 2, "em) ");
|
||
} else if (startCentered) {
|
||
val += "translate(calc(-50% + ".concat(transform.x / d, "em), calc(-50% + ").concat(transform.y / d, "em)) ");
|
||
} else {
|
||
val += "translate(".concat(transform.x / d, "em, ").concat(transform.y / d, "em) ");
|
||
}
|
||
|
||
val += "scale(".concat(transform.size / d * (transform.flipX ? -1 : 1), ", ").concat(transform.size / d * (transform.flipY ? -1 : 1), ") ");
|
||
val += "rotate(".concat(transform.rotate, "deg) ");
|
||
return val;
|
||
}
|
||
|
||
var ALL_SPACE = {
|
||
x: 0,
|
||
y: 0,
|
||
width: '100%',
|
||
height: '100%'
|
||
};
|
||
|
||
function fillBlack(abstract) {
|
||
var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
||
|
||
if (abstract.attributes && (abstract.attributes.fill || force)) {
|
||
abstract.attributes.fill = 'black';
|
||
}
|
||
|
||
return abstract;
|
||
}
|
||
|
||
function deGroup(abstract) {
|
||
if (abstract.tag === 'g') {
|
||
return abstract.children;
|
||
} else {
|
||
return [abstract];
|
||
}
|
||
}
|
||
|
||
function makeIconMasking (_ref) {
|
||
var children = _ref.children,
|
||
attributes = _ref.attributes,
|
||
main = _ref.main,
|
||
mask = _ref.mask,
|
||
transform = _ref.transform;
|
||
var mainWidth = main.width,
|
||
mainPath = main.icon;
|
||
var maskWidth = mask.width,
|
||
maskPath = mask.icon;
|
||
var trans = transformForSvg({
|
||
transform: transform,
|
||
containerWidth: maskWidth,
|
||
iconWidth: mainWidth
|
||
});
|
||
var maskRect = {
|
||
tag: 'rect',
|
||
attributes: _objectSpread({}, ALL_SPACE, {
|
||
fill: 'white'
|
||
})
|
||
};
|
||
var maskInnerGroupChildrenMixin = mainPath.children ? {
|
||
children: mainPath.children.map(fillBlack)
|
||
} : {};
|
||
var maskInnerGroup = {
|
||
tag: 'g',
|
||
attributes: _objectSpread({}, trans.inner),
|
||
children: [fillBlack(_objectSpread({
|
||
tag: mainPath.tag,
|
||
attributes: _objectSpread({}, mainPath.attributes, trans.path)
|
||
}, maskInnerGroupChildrenMixin))]
|
||
};
|
||
var maskOuterGroup = {
|
||
tag: 'g',
|
||
attributes: _objectSpread({}, trans.outer),
|
||
children: [maskInnerGroup]
|
||
};
|
||
var maskId = "mask-".concat(nextUniqueId());
|
||
var clipId = "clip-".concat(nextUniqueId());
|
||
var maskTag = {
|
||
tag: 'mask',
|
||
attributes: _objectSpread({}, ALL_SPACE, {
|
||
id: maskId,
|
||
maskUnits: 'userSpaceOnUse',
|
||
maskContentUnits: 'userSpaceOnUse'
|
||
}),
|
||
children: [maskRect, maskOuterGroup]
|
||
};
|
||
var defs = {
|
||
tag: 'defs',
|
||
children: [{
|
||
tag: 'clipPath',
|
||
attributes: {
|
||
id: clipId
|
||
},
|
||
children: deGroup(maskPath)
|
||
}, maskTag]
|
||
};
|
||
children.push(defs, {
|
||
tag: 'rect',
|
||
attributes: _objectSpread({
|
||
fill: 'currentColor',
|
||
'clip-path': "url(#".concat(clipId, ")"),
|
||
mask: "url(#".concat(maskId, ")")
|
||
}, ALL_SPACE)
|
||
});
|
||
return {
|
||
children: children,
|
||
attributes: attributes
|
||
};
|
||
}
|
||
|
||
function makeIconStandard (_ref) {
|
||
var children = _ref.children,
|
||
attributes = _ref.attributes,
|
||
main = _ref.main,
|
||
transform = _ref.transform,
|
||
styles = _ref.styles;
|
||
var styleString = joinStyles(styles);
|
||
|
||
if (styleString.length > 0) {
|
||
attributes['style'] = styleString;
|
||
}
|
||
|
||
if (transformIsMeaningful(transform)) {
|
||
var trans = transformForSvg({
|
||
transform: transform,
|
||
containerWidth: main.width,
|
||
iconWidth: main.width
|
||
});
|
||
children.push({
|
||
tag: 'g',
|
||
attributes: _objectSpread({}, trans.outer),
|
||
children: [{
|
||
tag: 'g',
|
||
attributes: _objectSpread({}, trans.inner),
|
||
children: [{
|
||
tag: main.icon.tag,
|
||
children: main.icon.children,
|
||
attributes: _objectSpread({}, main.icon.attributes, trans.path)
|
||
}]
|
||
}]
|
||
});
|
||
} else {
|
||
children.push(main.icon);
|
||
}
|
||
|
||
return {
|
||
children: children,
|
||
attributes: attributes
|
||
};
|
||
}
|
||
|
||
function asIcon (_ref) {
|
||
var children = _ref.children,
|
||
main = _ref.main,
|
||
mask = _ref.mask,
|
||
attributes = _ref.attributes,
|
||
styles = _ref.styles,
|
||
transform = _ref.transform;
|
||
|
||
if (transformIsMeaningful(transform) && main.found && !mask.found) {
|
||
var width = main.width,
|
||
height = main.height;
|
||
var offset = {
|
||
x: width / height / 2,
|
||
y: 0.5
|
||
};
|
||
attributes['style'] = joinStyles(_objectSpread({}, styles, {
|
||
'transform-origin': "".concat(offset.x + transform.x / 16, "em ").concat(offset.y + transform.y / 16, "em")
|
||
}));
|
||
}
|
||
|
||
return [{
|
||
tag: 'svg',
|
||
attributes: attributes,
|
||
children: children
|
||
}];
|
||
}
|
||
|
||
function asSymbol (_ref) {
|
||
var prefix = _ref.prefix,
|
||
iconName = _ref.iconName,
|
||
children = _ref.children,
|
||
attributes = _ref.attributes,
|
||
symbol = _ref.symbol;
|
||
var id = symbol === true ? "".concat(prefix, "-").concat(config.familyPrefix, "-").concat(iconName) : symbol;
|
||
return [{
|
||
tag: 'svg',
|
||
attributes: {
|
||
style: 'display: none;'
|
||
},
|
||
children: [{
|
||
tag: 'symbol',
|
||
attributes: _objectSpread({}, attributes, {
|
||
id: id
|
||
}),
|
||
children: children
|
||
}]
|
||
}];
|
||
}
|
||
|
||
function makeInlineSvgAbstract(params) {
|
||
var _params$icons = params.icons,
|
||
main = _params$icons.main,
|
||
mask = _params$icons.mask,
|
||
prefix = params.prefix,
|
||
iconName = params.iconName,
|
||
transform = params.transform,
|
||
symbol = params.symbol,
|
||
title = params.title,
|
||
extra = params.extra,
|
||
_params$watchable = params.watchable,
|
||
watchable = _params$watchable === void 0 ? false : _params$watchable;
|
||
|
||
var _ref = mask.found ? mask : main,
|
||
width = _ref.width,
|
||
height = _ref.height;
|
||
|
||
var widthClass = "fa-w-".concat(Math.ceil(width / height * 16));
|
||
var attrClass = [config.replacementClass, iconName ? "".concat(config.familyPrefix, "-").concat(iconName) : '', widthClass].filter(function (c) {
|
||
return extra.classes.indexOf(c) === -1;
|
||
}).concat(extra.classes).join(' ');
|
||
var content = {
|
||
children: [],
|
||
attributes: _objectSpread({}, extra.attributes, {
|
||
'data-prefix': prefix,
|
||
'data-icon': iconName,
|
||
'class': attrClass,
|
||
'role': extra.attributes.role || 'img',
|
||
'xmlns': 'http://www.w3.org/2000/svg',
|
||
'viewBox': "0 0 ".concat(width, " ").concat(height)
|
||
})
|
||
};
|
||
|
||
if (watchable) {
|
||
content.attributes[DATA_FA_I2SVG] = '';
|
||
}
|
||
|
||
if (title) content.children.push({
|
||
tag: 'title',
|
||
attributes: {
|
||
id: content.attributes['aria-labelledby'] || "title-".concat(nextUniqueId())
|
||
},
|
||
children: [title]
|
||
});
|
||
|
||
var args = _objectSpread({}, content, {
|
||
prefix: prefix,
|
||
iconName: iconName,
|
||
main: main,
|
||
mask: mask,
|
||
transform: transform,
|
||
symbol: symbol,
|
||
styles: extra.styles
|
||
});
|
||
|
||
var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),
|
||
children = _ref2.children,
|
||
attributes = _ref2.attributes;
|
||
|
||
args.children = children;
|
||
args.attributes = attributes;
|
||
|
||
if (symbol) {
|
||
return asSymbol(args);
|
||
} else {
|
||
return asIcon(args);
|
||
}
|
||
}
|
||
function makeLayersTextAbstract(params) {
|
||
var content = params.content,
|
||
width = params.width,
|
||
height = params.height,
|
||
transform = params.transform,
|
||
title = params.title,
|
||
extra = params.extra,
|
||
_params$watchable2 = params.watchable,
|
||
watchable = _params$watchable2 === void 0 ? false : _params$watchable2;
|
||
|
||
var attributes = _objectSpread({}, extra.attributes, title ? {
|
||
'title': title
|
||
} : {}, {
|
||
'class': extra.classes.join(' ')
|
||
});
|
||
|
||
if (watchable) {
|
||
attributes[DATA_FA_I2SVG] = '';
|
||
}
|
||
|
||
var styles = _objectSpread({}, extra.styles);
|
||
|
||
if (transformIsMeaningful(transform)) {
|
||
styles['transform'] = transformForCss({
|
||
transform: transform,
|
||
startCentered: true,
|
||
width: width,
|
||
height: height
|
||
});
|
||
styles['-webkit-transform'] = styles['transform'];
|
||
}
|
||
|
||
var styleString = joinStyles(styles);
|
||
|
||
if (styleString.length > 0) {
|
||
attributes['style'] = styleString;
|
||
}
|
||
|
||
var val = [];
|
||
val.push({
|
||
tag: 'span',
|
||
attributes: attributes,
|
||
children: [content]
|
||
});
|
||
|
||
if (title) {
|
||
val.push({
|
||
tag: 'span',
|
||
attributes: {
|
||
class: 'sr-only'
|
||
},
|
||
children: [title]
|
||
});
|
||
}
|
||
|
||
return val;
|
||
}
|
||
function makeLayersCounterAbstract(params) {
|
||
var content = params.content,
|
||
title = params.title,
|
||
extra = params.extra;
|
||
|
||
var attributes = _objectSpread({}, extra.attributes, title ? {
|
||
'title': title
|
||
} : {}, {
|
||
'class': extra.classes.join(' ')
|
||
});
|
||
|
||
var styleString = joinStyles(extra.styles);
|
||
|
||
if (styleString.length > 0) {
|
||
attributes['style'] = styleString;
|
||
}
|
||
|
||
var val = [];
|
||
val.push({
|
||
tag: 'span',
|
||
attributes: attributes,
|
||
children: [content]
|
||
});
|
||
|
||
if (title) {
|
||
val.push({
|
||
tag: 'span',
|
||
attributes: {
|
||
class: 'sr-only'
|
||
},
|
||
children: [title]
|
||
});
|
||
}
|
||
|
||
return val;
|
||
}
|
||
|
||
var noop$1 = function noop() {};
|
||
|
||
var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {
|
||
mark: noop$1,
|
||
measure: noop$1
|
||
};
|
||
var preamble = "FA \"5.11.2\"";
|
||
|
||
var begin = function begin(name) {
|
||
p.mark("".concat(preamble, " ").concat(name, " begins"));
|
||
return function () {
|
||
return end(name);
|
||
};
|
||
};
|
||
|
||
var end = function end(name) {
|
||
p.mark("".concat(preamble, " ").concat(name, " ends"));
|
||
p.measure("".concat(preamble, " ").concat(name), "".concat(preamble, " ").concat(name, " begins"), "".concat(preamble, " ").concat(name, " ends"));
|
||
};
|
||
|
||
var perf = {
|
||
begin: begin,
|
||
end: end
|
||
};
|
||
|
||
/**
|
||
* Internal helper to bind a function known to have 4 arguments
|
||
* to a given context.
|
||
*/
|
||
|
||
var bindInternal4 = function bindInternal4(func, thisContext) {
|
||
return function (a, b, c, d) {
|
||
return func.call(thisContext, a, b, c, d);
|
||
};
|
||
};
|
||
|
||
/**
|
||
* # Reduce
|
||
*
|
||
* A fast object `.reduce()` implementation.
|
||
*
|
||
* @param {Object} subject The object to reduce over.
|
||
* @param {Function} fn The reducer function.
|
||
* @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].
|
||
* @param {Object} thisContext The context for the reducer.
|
||
* @return {mixed} The final result.
|
||
*/
|
||
|
||
|
||
var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {
|
||
var keys = Object.keys(subject),
|
||
length = keys.length,
|
||
iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,
|
||
i,
|
||
key,
|
||
result;
|
||
|
||
if (initialValue === undefined) {
|
||
i = 1;
|
||
result = subject[keys[0]];
|
||
} else {
|
||
i = 0;
|
||
result = initialValue;
|
||
}
|
||
|
||
for (; i < length; i++) {
|
||
key = keys[i];
|
||
result = iterator(result, subject[key], key, subject);
|
||
}
|
||
|
||
return result;
|
||
};
|
||
|
||
function toHex(unicode) {
|
||
var result = '';
|
||
|
||
for (var i = 0; i < unicode.length; i++) {
|
||
var hex = unicode.charCodeAt(i).toString(16);
|
||
result += ('000' + hex).slice(-4);
|
||
}
|
||
|
||
return result;
|
||
}
|
||
|
||
function defineIcons(prefix, icons) {
|
||
var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||
var _params$skipHooks = params.skipHooks,
|
||
skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;
|
||
var normalized = Object.keys(icons).reduce(function (acc, iconName) {
|
||
var icon = icons[iconName];
|
||
var expanded = !!icon.icon;
|
||
|
||
if (expanded) {
|
||
acc[icon.iconName] = icon.icon;
|
||
} else {
|
||
acc[iconName] = icon;
|
||
}
|
||
|
||
return acc;
|
||
}, {});
|
||
|
||
if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {
|
||
namespace.hooks.addPack(prefix, normalized);
|
||
} else {
|
||
namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);
|
||
}
|
||
/**
|
||
* Font Awesome 4 used the prefix of `fa` for all icons. With the introduction
|
||
* of new styles we needed to differentiate between them. Prefix `fa` is now an alias
|
||
* for `fas` so we'll easy the upgrade process for our users by automatically defining
|
||
* this as well.
|
||
*/
|
||
|
||
|
||
if (prefix === 'fas') {
|
||
defineIcons('fa', icons);
|
||
}
|
||
}
|
||
|
||
var styles = namespace.styles,
|
||
shims = namespace.shims;
|
||
var _byUnicode = {};
|
||
var _byLigature = {};
|
||
var _byOldName = {};
|
||
var build = function build() {
|
||
var lookup = function lookup(reducer) {
|
||
return reduce(styles, function (o, style, prefix) {
|
||
o[prefix] = reduce(style, reducer, {});
|
||
return o;
|
||
}, {});
|
||
};
|
||
|
||
_byUnicode = lookup(function (acc, icon, iconName) {
|
||
if (icon[3]) {
|
||
acc[icon[3]] = iconName;
|
||
}
|
||
|
||
return acc;
|
||
});
|
||
_byLigature = lookup(function (acc, icon, iconName) {
|
||
var ligatures = icon[2];
|
||
acc[iconName] = iconName;
|
||
ligatures.forEach(function (ligature) {
|
||
acc[ligature] = iconName;
|
||
});
|
||
return acc;
|
||
});
|
||
var hasRegular = 'far' in styles;
|
||
_byOldName = reduce(shims, function (acc, shim) {
|
||
var oldName = shim[0];
|
||
var prefix = shim[1];
|
||
var iconName = shim[2];
|
||
|
||
if (prefix === 'far' && !hasRegular) {
|
||
prefix = 'fas';
|
||
}
|
||
|
||
acc[oldName] = {
|
||
prefix: prefix,
|
||
iconName: iconName
|
||
};
|
||
return acc;
|
||
}, {});
|
||
};
|
||
build();
|
||
function byUnicode(prefix, unicode) {
|
||
return (_byUnicode[prefix] || {})[unicode];
|
||
}
|
||
function byLigature(prefix, ligature) {
|
||
return (_byLigature[prefix] || {})[ligature];
|
||
}
|
||
function byOldName(name) {
|
||
return _byOldName[name] || {
|
||
prefix: null,
|
||
iconName: null
|
||
};
|
||
}
|
||
|
||
var styles$1 = namespace.styles;
|
||
var emptyCanonicalIcon = function emptyCanonicalIcon() {
|
||
return {
|
||
prefix: null,
|
||
iconName: null,
|
||
rest: []
|
||
};
|
||
};
|
||
function getCanonicalIcon(values) {
|
||
return values.reduce(function (acc, cls) {
|
||
var iconName = getIconName(config.familyPrefix, cls);
|
||
|
||
if (styles$1[cls]) {
|
||
acc.prefix = cls;
|
||
} else if (config.autoFetchSvg && ['fas', 'far', 'fal', 'fad', 'fab', 'fa'].indexOf(cls) > -1) {
|
||
acc.prefix = cls;
|
||
} else if (iconName) {
|
||
var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};
|
||
acc.iconName = shim.iconName || iconName;
|
||
acc.prefix = shim.prefix || acc.prefix;
|
||
} else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {
|
||
acc.rest.push(cls);
|
||
}
|
||
|
||
return acc;
|
||
}, emptyCanonicalIcon());
|
||
}
|
||
function iconFromMapping(mapping, prefix, iconName) {
|
||
if (mapping && mapping[prefix] && mapping[prefix][iconName]) {
|
||
return {
|
||
prefix: prefix,
|
||
iconName: iconName,
|
||
icon: mapping[prefix][iconName]
|
||
};
|
||
}
|
||
}
|
||
|
||
function toHtml(abstractNodes) {
|
||
var tag = abstractNodes.tag,
|
||
_abstractNodes$attrib = abstractNodes.attributes,
|
||
attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,
|
||
_abstractNodes$childr = abstractNodes.children,
|
||
children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;
|
||
|
||
if (typeof abstractNodes === 'string') {
|
||
return htmlEscape(abstractNodes);
|
||
} else {
|
||
return "<".concat(tag, " ").concat(joinAttributes(attributes), ">").concat(children.map(toHtml).join(''), "</").concat(tag, ">");
|
||
}
|
||
}
|
||
|
||
var noop$2 = function noop() {};
|
||
|
||
function isWatched(node) {
|
||
var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;
|
||
return typeof i2svg === 'string';
|
||
}
|
||
|
||
function getMutator() {
|
||
if (config.autoReplaceSvg === true) {
|
||
return mutators.replace;
|
||
}
|
||
|
||
var mutator = mutators[config.autoReplaceSvg];
|
||
return mutator || mutators.replace;
|
||
}
|
||
|
||
var mutators = {
|
||
replace: function replace(mutation) {
|
||
var node = mutation[0];
|
||
var abstract = mutation[1];
|
||
var newOuterHTML = abstract.map(function (a) {
|
||
return toHtml(a);
|
||
}).join('\n');
|
||
|
||
if (node.parentNode && node.outerHTML) {
|
||
node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? "<!-- ".concat(node.outerHTML, " -->") : '');
|
||
} else if (node.parentNode) {
|
||
var newNode = document.createElement('span');
|
||
node.parentNode.replaceChild(newNode, node);
|
||
newNode.outerHTML = newOuterHTML;
|
||
}
|
||
},
|
||
nest: function nest(mutation) {
|
||
var node = mutation[0];
|
||
var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.
|
||
// Short-circuit to the standard replacement
|
||
|
||
if (~classArray(node).indexOf(config.replacementClass)) {
|
||
return mutators.replace(mutation);
|
||
}
|
||
|
||
var forSvg = new RegExp("".concat(config.familyPrefix, "-.*"));
|
||
delete abstract[0].attributes.style;
|
||
delete abstract[0].attributes.id;
|
||
var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {
|
||
if (cls === config.replacementClass || cls.match(forSvg)) {
|
||
acc.toSvg.push(cls);
|
||
} else {
|
||
acc.toNode.push(cls);
|
||
}
|
||
|
||
return acc;
|
||
}, {
|
||
toNode: [],
|
||
toSvg: []
|
||
});
|
||
abstract[0].attributes.class = splitClasses.toSvg.join(' ');
|
||
var newInnerHTML = abstract.map(function (a) {
|
||
return toHtml(a);
|
||
}).join('\n');
|
||
node.setAttribute('class', splitClasses.toNode.join(' '));
|
||
node.setAttribute(DATA_FA_I2SVG, '');
|
||
node.innerHTML = newInnerHTML;
|
||
}
|
||
};
|
||
|
||
function performOperationSync(op) {
|
||
op();
|
||
}
|
||
|
||
function perform(mutations, callback) {
|
||
var callbackFunction = typeof callback === 'function' ? callback : noop$2;
|
||
|
||
if (mutations.length === 0) {
|
||
callbackFunction();
|
||
} else {
|
||
var frame = performOperationSync;
|
||
|
||
if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {
|
||
frame = WINDOW.requestAnimationFrame || performOperationSync;
|
||
}
|
||
|
||
frame(function () {
|
||
var mutator = getMutator();
|
||
var mark = perf.begin('mutate');
|
||
mutations.map(mutator);
|
||
mark();
|
||
callbackFunction();
|
||
});
|
||
}
|
||
}
|
||
var disabled = false;
|
||
function disableObservation() {
|
||
disabled = true;
|
||
}
|
||
function enableObservation() {
|
||
disabled = false;
|
||
}
|
||
var mo = null;
|
||
function observe(options) {
|
||
if (!MUTATION_OBSERVER) {
|
||
return;
|
||
}
|
||
|
||
if (!config.observeMutations) {
|
||
return;
|
||
}
|
||
|
||
var treeCallback = options.treeCallback,
|
||
nodeCallback = options.nodeCallback,
|
||
pseudoElementsCallback = options.pseudoElementsCallback,
|
||
_options$observeMutat = options.observeMutationsRoot,
|
||
observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;
|
||
mo = new MUTATION_OBSERVER(function (objects) {
|
||
if (disabled) return;
|
||
toArray(objects).forEach(function (mutationRecord) {
|
||
if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {
|
||
if (config.searchPseudoElements) {
|
||
pseudoElementsCallback(mutationRecord.target);
|
||
}
|
||
|
||
treeCallback(mutationRecord.target);
|
||
}
|
||
|
||
if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {
|
||
pseudoElementsCallback(mutationRecord.target.parentNode);
|
||
}
|
||
|
||
if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {
|
||
if (mutationRecord.attributeName === 'class') {
|
||
var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),
|
||
prefix = _getCanonicalIcon.prefix,
|
||
iconName = _getCanonicalIcon.iconName;
|
||
|
||
if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);
|
||
if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);
|
||
} else {
|
||
nodeCallback(mutationRecord.target);
|
||
}
|
||
}
|
||
});
|
||
});
|
||
if (!IS_DOM) return;
|
||
mo.observe(observeMutationsRoot, {
|
||
childList: true,
|
||
attributes: true,
|
||
characterData: true,
|
||
subtree: true
|
||
});
|
||
}
|
||
function disconnect() {
|
||
if (!mo) return;
|
||
mo.disconnect();
|
||
}
|
||
|
||
function styleParser (node) {
|
||
var style = node.getAttribute('style');
|
||
var val = [];
|
||
|
||
if (style) {
|
||
val = style.split(';').reduce(function (acc, style) {
|
||
var styles = style.split(':');
|
||
var prop = styles[0];
|
||
var value = styles.slice(1);
|
||
|
||
if (prop && value.length > 0) {
|
||
acc[prop] = value.join(':').trim();
|
||
}
|
||
|
||
return acc;
|
||
}, {});
|
||
}
|
||
|
||
return val;
|
||
}
|
||
|
||
function classParser (node) {
|
||
var existingPrefix = node.getAttribute('data-prefix');
|
||
var existingIconName = node.getAttribute('data-icon');
|
||
var innerText = node.innerText !== undefined ? node.innerText.trim() : '';
|
||
var val = getCanonicalIcon(classArray(node));
|
||
|
||
if (existingPrefix && existingIconName) {
|
||
val.prefix = existingPrefix;
|
||
val.iconName = existingIconName;
|
||
}
|
||
|
||
if (val.prefix && innerText.length > 1) {
|
||
val.iconName = byLigature(val.prefix, node.innerText);
|
||
} else if (val.prefix && innerText.length === 1) {
|
||
val.iconName = byUnicode(val.prefix, toHex(node.innerText));
|
||
}
|
||
|
||
return val;
|
||
}
|
||
|
||
var parseTransformString = function parseTransformString(transformString) {
|
||
var transform = {
|
||
size: 16,
|
||
x: 0,
|
||
y: 0,
|
||
flipX: false,
|
||
flipY: false,
|
||
rotate: 0
|
||
};
|
||
|
||
if (!transformString) {
|
||
return transform;
|
||
} else {
|
||
return transformString.toLowerCase().split(' ').reduce(function (acc, n) {
|
||
var parts = n.toLowerCase().split('-');
|
||
var first = parts[0];
|
||
var rest = parts.slice(1).join('-');
|
||
|
||
if (first && rest === 'h') {
|
||
acc.flipX = true;
|
||
return acc;
|
||
}
|
||
|
||
if (first && rest === 'v') {
|
||
acc.flipY = true;
|
||
return acc;
|
||
}
|
||
|
||
rest = parseFloat(rest);
|
||
|
||
if (isNaN(rest)) {
|
||
return acc;
|
||
}
|
||
|
||
switch (first) {
|
||
case 'grow':
|
||
acc.size = acc.size + rest;
|
||
break;
|
||
|
||
case 'shrink':
|
||
acc.size = acc.size - rest;
|
||
break;
|
||
|
||
case 'left':
|
||
acc.x = acc.x - rest;
|
||
break;
|
||
|
||
case 'right':
|
||
acc.x = acc.x + rest;
|
||
break;
|
||
|
||
case 'up':
|
||
acc.y = acc.y - rest;
|
||
break;
|
||
|
||
case 'down':
|
||
acc.y = acc.y + rest;
|
||
break;
|
||
|
||
case 'rotate':
|
||
acc.rotate = acc.rotate + rest;
|
||
break;
|
||
}
|
||
|
||
return acc;
|
||
}, transform);
|
||
}
|
||
};
|
||
function transformParser (node) {
|
||
return parseTransformString(node.getAttribute('data-fa-transform'));
|
||
}
|
||
|
||
function symbolParser (node) {
|
||
var symbol = node.getAttribute('data-fa-symbol');
|
||
return symbol === null ? false : symbol === '' ? true : symbol;
|
||
}
|
||
|
||
function attributesParser (node) {
|
||
var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {
|
||
if (acc.name !== 'class' && acc.name !== 'style') {
|
||
acc[attr.name] = attr.value;
|
||
}
|
||
|
||
return acc;
|
||
}, {});
|
||
var title = node.getAttribute('title');
|
||
|
||
if (config.autoA11y) {
|
||
if (title) {
|
||
extraAttributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(nextUniqueId());
|
||
} else {
|
||
extraAttributes['aria-hidden'] = 'true';
|
||
extraAttributes['focusable'] = 'false';
|
||
}
|
||
}
|
||
|
||
return extraAttributes;
|
||
}
|
||
|
||
function maskParser (node) {
|
||
var mask = node.getAttribute('data-fa-mask');
|
||
|
||
if (!mask) {
|
||
return emptyCanonicalIcon();
|
||
} else {
|
||
return getCanonicalIcon(mask.split(' ').map(function (i) {
|
||
return i.trim();
|
||
}));
|
||
}
|
||
}
|
||
|
||
function blankMeta() {
|
||
return {
|
||
iconName: null,
|
||
title: null,
|
||
prefix: null,
|
||
transform: meaninglessTransform,
|
||
symbol: false,
|
||
mask: null,
|
||
extra: {
|
||
classes: [],
|
||
styles: {},
|
||
attributes: {}
|
||
}
|
||
};
|
||
}
|
||
function parseMeta(node) {
|
||
var _classParser = classParser(node),
|
||
iconName = _classParser.iconName,
|
||
prefix = _classParser.prefix,
|
||
extraClasses = _classParser.rest;
|
||
|
||
var extraStyles = styleParser(node);
|
||
var transform = transformParser(node);
|
||
var symbol = symbolParser(node);
|
||
var extraAttributes = attributesParser(node);
|
||
var mask = maskParser(node);
|
||
return {
|
||
iconName: iconName,
|
||
title: node.getAttribute('title'),
|
||
prefix: prefix,
|
||
transform: transform,
|
||
symbol: symbol,
|
||
mask: mask,
|
||
extra: {
|
||
classes: extraClasses,
|
||
styles: extraStyles,
|
||
attributes: extraAttributes
|
||
}
|
||
};
|
||
}
|
||
|
||
function MissingIcon(error) {
|
||
this.name = 'MissingIcon';
|
||
this.message = error || 'Icon unavailable';
|
||
this.stack = new Error().stack;
|
||
}
|
||
MissingIcon.prototype = Object.create(Error.prototype);
|
||
MissingIcon.prototype.constructor = MissingIcon;
|
||
|
||
var FILL = {
|
||
fill: 'currentColor'
|
||
};
|
||
var ANIMATION_BASE = {
|
||
attributeType: 'XML',
|
||
repeatCount: 'indefinite',
|
||
dur: '2s'
|
||
};
|
||
var RING = {
|
||
tag: 'path',
|
||
attributes: _objectSpread({}, FILL, {
|
||
d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'
|
||
})
|
||
};
|
||
|
||
var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {
|
||
attributeName: 'opacity'
|
||
});
|
||
|
||
var DOT = {
|
||
tag: 'circle',
|
||
attributes: _objectSpread({}, FILL, {
|
||
cx: '256',
|
||
cy: '364',
|
||
r: '28'
|
||
}),
|
||
children: [{
|
||
tag: 'animate',
|
||
attributes: _objectSpread({}, ANIMATION_BASE, {
|
||
attributeName: 'r',
|
||
values: '28;14;28;28;14;28;'
|
||
})
|
||
}, {
|
||
tag: 'animate',
|
||
attributes: _objectSpread({}, OPACITY_ANIMATE, {
|
||
values: '1;0;1;1;0;1;'
|
||
})
|
||
}]
|
||
};
|
||
var QUESTION = {
|
||
tag: 'path',
|
||
attributes: _objectSpread({}, FILL, {
|
||
opacity: '1',
|
||
d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'
|
||
}),
|
||
children: [{
|
||
tag: 'animate',
|
||
attributes: _objectSpread({}, OPACITY_ANIMATE, {
|
||
values: '1;0;0;0;0;1;'
|
||
})
|
||
}]
|
||
};
|
||
var EXCLAMATION = {
|
||
tag: 'path',
|
||
attributes: _objectSpread({}, FILL, {
|
||
opacity: '0',
|
||
d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'
|
||
}),
|
||
children: [{
|
||
tag: 'animate',
|
||
attributes: _objectSpread({}, OPACITY_ANIMATE, {
|
||
values: '0;0;1;1;0;0;'
|
||
})
|
||
}]
|
||
};
|
||
var missing = {
|
||
tag: 'g',
|
||
children: [RING, DOT, QUESTION, EXCLAMATION]
|
||
};
|
||
|
||
var styles$2 = namespace.styles;
|
||
function asFoundIcon(icon) {
|
||
var width = icon[0];
|
||
var height = icon[1];
|
||
|
||
var _icon$slice = icon.slice(4),
|
||
_icon$slice2 = _slicedToArray(_icon$slice, 1),
|
||
vectorData = _icon$slice2[0];
|
||
|
||
var element = null;
|
||
|
||
if (Array.isArray(vectorData)) {
|
||
element = {
|
||
tag: 'g',
|
||
attributes: {
|
||
class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.GROUP)
|
||
},
|
||
children: [{
|
||
tag: 'path',
|
||
attributes: {
|
||
class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.SECONDARY),
|
||
fill: 'currentColor',
|
||
d: vectorData[0]
|
||
}
|
||
}, {
|
||
tag: 'path',
|
||
attributes: {
|
||
class: "".concat(config.familyPrefix, "-").concat(DUOTONE_CLASSES.PRIMARY),
|
||
fill: 'currentColor',
|
||
d: vectorData[1]
|
||
}
|
||
}]
|
||
};
|
||
} else {
|
||
element = {
|
||
tag: 'path',
|
||
attributes: {
|
||
fill: 'currentColor',
|
||
d: vectorData
|
||
}
|
||
};
|
||
}
|
||
|
||
return {
|
||
found: true,
|
||
width: width,
|
||
height: height,
|
||
icon: element
|
||
};
|
||
}
|
||
function findIcon(iconName, prefix) {
|
||
return new picked(function (resolve, reject) {
|
||
var val = {
|
||
found: false,
|
||
width: 512,
|
||
height: 512,
|
||
icon: missing
|
||
};
|
||
|
||
if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {
|
||
var icon = styles$2[prefix][iconName];
|
||
return resolve(asFoundIcon(icon));
|
||
}
|
||
|
||
var headers = {};
|
||
|
||
if (_typeof(WINDOW.FontAwesomeKitConfig) === 'object' && typeof window.FontAwesomeKitConfig.token === 'string') {
|
||
headers['fa-kit-token'] = WINDOW.FontAwesomeKitConfig.token;
|
||
}
|
||
|
||
if (iconName && prefix && !config.showMissingIcons) {
|
||
reject(new MissingIcon("Icon is missing for prefix ".concat(prefix, " with icon name ").concat(iconName)));
|
||
} else {
|
||
resolve(val);
|
||
}
|
||
});
|
||
}
|
||
|
||
var styles$3 = namespace.styles;
|
||
|
||
function generateSvgReplacementMutation(node, nodeMeta) {
|
||
var iconName = nodeMeta.iconName,
|
||
title = nodeMeta.title,
|
||
prefix = nodeMeta.prefix,
|
||
transform = nodeMeta.transform,
|
||
symbol = nodeMeta.symbol,
|
||
mask = nodeMeta.mask,
|
||
extra = nodeMeta.extra;
|
||
return new picked(function (resolve, reject) {
|
||
picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {
|
||
var _ref2 = _slicedToArray(_ref, 2),
|
||
main = _ref2[0],
|
||
mask = _ref2[1];
|
||
|
||
resolve([node, makeInlineSvgAbstract({
|
||
icons: {
|
||
main: main,
|
||
mask: mask
|
||
},
|
||
prefix: prefix,
|
||
iconName: iconName,
|
||
transform: transform,
|
||
symbol: symbol,
|
||
mask: mask,
|
||
title: title,
|
||
extra: extra,
|
||
watchable: true
|
||
})]);
|
||
});
|
||
});
|
||
}
|
||
|
||
function generateLayersText(node, nodeMeta) {
|
||
var title = nodeMeta.title,
|
||
transform = nodeMeta.transform,
|
||
extra = nodeMeta.extra;
|
||
var width = null;
|
||
var height = null;
|
||
|
||
if (IS_IE) {
|
||
var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);
|
||
var boundingClientRect = node.getBoundingClientRect();
|
||
width = boundingClientRect.width / computedFontSize;
|
||
height = boundingClientRect.height / computedFontSize;
|
||
}
|
||
|
||
if (config.autoA11y && !title) {
|
||
extra.attributes['aria-hidden'] = 'true';
|
||
}
|
||
|
||
return picked.resolve([node, makeLayersTextAbstract({
|
||
content: node.innerHTML,
|
||
width: width,
|
||
height: height,
|
||
transform: transform,
|
||
title: title,
|
||
extra: extra,
|
||
watchable: true
|
||
})]);
|
||
}
|
||
|
||
function generateMutation(node) {
|
||
var nodeMeta = parseMeta(node);
|
||
|
||
if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {
|
||
return generateLayersText(node, nodeMeta);
|
||
} else {
|
||
return generateSvgReplacementMutation(node, nodeMeta);
|
||
}
|
||
}
|
||
|
||
function onTree(root) {
|
||
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
||
if (!IS_DOM) return;
|
||
var htmlClassList = DOCUMENT.documentElement.classList;
|
||
|
||
var hclAdd = function hclAdd(suffix) {
|
||
return htmlClassList.add("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix));
|
||
};
|
||
|
||
var hclRemove = function hclRemove(suffix) {
|
||
return htmlClassList.remove("".concat(HTML_CLASS_I2SVG_BASE_CLASS, "-").concat(suffix));
|
||
};
|
||
|
||
var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);
|
||
var prefixesDomQuery = [".".concat(LAYERS_TEXT_CLASSNAME, ":not([").concat(DATA_FA_I2SVG, "])")].concat(prefixes.map(function (p) {
|
||
return ".".concat(p, ":not([").concat(DATA_FA_I2SVG, "])");
|
||
})).join(', ');
|
||
|
||
if (prefixesDomQuery.length === 0) {
|
||
return;
|
||
}
|
||
|
||
var candidates = [];
|
||
|
||
try {
|
||
candidates = toArray(root.querySelectorAll(prefixesDomQuery));
|
||
} catch (e) {// noop
|
||
}
|
||
|
||
if (candidates.length > 0) {
|
||
hclAdd('pending');
|
||
hclRemove('complete');
|
||
} else {
|
||
return;
|
||
}
|
||
|
||
var mark = perf.begin('onTree');
|
||
var mutations = candidates.reduce(function (acc, node) {
|
||
try {
|
||
var mutation = generateMutation(node);
|
||
|
||
if (mutation) {
|
||
acc.push(mutation);
|
||
}
|
||
} catch (e) {
|
||
if (!PRODUCTION) {
|
||
if (e instanceof MissingIcon) {
|
||
console.error(e);
|
||
}
|
||
}
|
||
}
|
||
|
||
return acc;
|
||
}, []);
|
||
return new picked(function (resolve, reject) {
|
||
picked.all(mutations).then(function (resolvedMutations) {
|
||
perform(resolvedMutations, function () {
|
||
hclAdd('active');
|
||
hclAdd('complete');
|
||
hclRemove('pending');
|
||
if (typeof callback === 'function') callback();
|
||
mark();
|
||
resolve();
|
||
});
|
||
}).catch(function () {
|
||
mark();
|
||
reject();
|
||
});
|
||
});
|
||
}
|
||
function onNode(node) {
|
||
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
||
generateMutation(node).then(function (mutation) {
|
||
if (mutation) {
|
||
perform([mutation], callback);
|
||
}
|
||
});
|
||
}
|
||
|
||
function replaceForPosition(node, position) {
|
||
var pendingAttribute = "".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));
|
||
return new picked(function (resolve, reject) {
|
||
if (node.getAttribute(pendingAttribute) !== null) {
|
||
// This node is already being processed
|
||
return resolve();
|
||
}
|
||
|
||
var children = toArray(node.children);
|
||
var alreadyProcessedPseudoElement = children.filter(function (c) {
|
||
return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;
|
||
})[0];
|
||
var styles = WINDOW.getComputedStyle(node, position);
|
||
var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);
|
||
var fontWeight = styles.getPropertyValue('font-weight');
|
||
|
||
if (alreadyProcessedPseudoElement && !fontFamily) {
|
||
// If we've already processed it but the current computed style does not result in a font-family,
|
||
// that probably means that a class name that was previously present to make the icon has been
|
||
// removed. So we now should delete the icon.
|
||
node.removeChild(alreadyProcessedPseudoElement);
|
||
return resolve();
|
||
} else if (fontFamily) {
|
||
var content = styles.getPropertyValue('content');
|
||
var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];
|
||
var hexValue = toHex(content.length === 3 ? content.substr(1, 1) : content);
|
||
var iconName = byUnicode(prefix, hexValue);
|
||
var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't
|
||
// already done so with the same prefix and iconName
|
||
|
||
if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {
|
||
node.setAttribute(pendingAttribute, iconIdentifier);
|
||
|
||
if (alreadyProcessedPseudoElement) {
|
||
// Delete the old one, since we're replacing it with a new one
|
||
node.removeChild(alreadyProcessedPseudoElement);
|
||
}
|
||
|
||
var meta = blankMeta();
|
||
var extra = meta.extra;
|
||
extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;
|
||
findIcon(iconName, prefix).then(function (main) {
|
||
var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {
|
||
icons: {
|
||
main: main,
|
||
mask: emptyCanonicalIcon()
|
||
},
|
||
prefix: prefix,
|
||
iconName: iconIdentifier,
|
||
extra: extra,
|
||
watchable: true
|
||
}));
|
||
var element = DOCUMENT.createElement('svg');
|
||
|
||
if (position === ':before') {
|
||
node.insertBefore(element, node.firstChild);
|
||
} else {
|
||
node.appendChild(element);
|
||
}
|
||
|
||
element.outerHTML = abstract.map(function (a) {
|
||
return toHtml(a);
|
||
}).join('\n');
|
||
node.removeAttribute(pendingAttribute);
|
||
resolve();
|
||
}).catch(reject);
|
||
} else {
|
||
resolve();
|
||
}
|
||
} else {
|
||
resolve();
|
||
}
|
||
});
|
||
}
|
||
|
||
function replace(node) {
|
||
return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);
|
||
}
|
||
|
||
function processable(node) {
|
||
return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');
|
||
}
|
||
|
||
function searchPseudoElements (root) {
|
||
if (!IS_DOM) return;
|
||
return new picked(function (resolve, reject) {
|
||
var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);
|
||
var end = perf.begin('searchPseudoElements');
|
||
disableObservation();
|
||
picked.all(operations).then(function () {
|
||
end();
|
||
enableObservation();
|
||
resolve();
|
||
}).catch(function () {
|
||
end();
|
||
enableObservation();
|
||
reject();
|
||
});
|
||
});
|
||
}
|
||
|
||
var baseStyles = "svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}";
|
||
|
||
function css () {
|
||
var dfp = DEFAULT_FAMILY_PREFIX;
|
||
var drc = DEFAULT_REPLACEMENT_CLASS;
|
||
var fp = config.familyPrefix;
|
||
var rc = config.replacementClass;
|
||
var s = baseStyles;
|
||
|
||
if (fp !== dfp || rc !== drc) {
|
||
var dPatt = new RegExp("\\.".concat(dfp, "\\-"), 'g');
|
||
var customPropPatt = new RegExp("\\--".concat(dfp, "\\-"), 'g');
|
||
var rPatt = new RegExp("\\.".concat(drc), 'g');
|
||
s = s.replace(dPatt, ".".concat(fp, "-")).replace(customPropPatt, "--".concat(fp, "-")).replace(rPatt, ".".concat(rc));
|
||
}
|
||
|
||
return s;
|
||
}
|
||
|
||
var Library =
|
||
/*#__PURE__*/
|
||
function () {
|
||
function Library() {
|
||
_classCallCheck(this, Library);
|
||
|
||
this.definitions = {};
|
||
}
|
||
|
||
_createClass(Library, [{
|
||
key: "add",
|
||
value: function add() {
|
||
var _this = this;
|
||
|
||
for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {
|
||
definitions[_key] = arguments[_key];
|
||
}
|
||
|
||
var additions = definitions.reduce(this._pullDefinitions, {});
|
||
Object.keys(additions).forEach(function (key) {
|
||
_this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);
|
||
defineIcons(key, additions[key]);
|
||
build();
|
||
});
|
||
}
|
||
}, {
|
||
key: "reset",
|
||
value: function reset() {
|
||
this.definitions = {};
|
||
}
|
||
}, {
|
||
key: "_pullDefinitions",
|
||
value: function _pullDefinitions(additions, definition) {
|
||
var normalized = definition.prefix && definition.iconName && definition.icon ? {
|
||
0: definition
|
||
} : definition;
|
||
Object.keys(normalized).map(function (key) {
|
||
var _normalized$key = normalized[key],
|
||
prefix = _normalized$key.prefix,
|
||
iconName = _normalized$key.iconName,
|
||
icon = _normalized$key.icon;
|
||
if (!additions[prefix]) additions[prefix] = {};
|
||
additions[prefix][iconName] = icon;
|
||
});
|
||
return additions;
|
||
}
|
||
}]);
|
||
|
||
return Library;
|
||
}();
|
||
|
||
function ensureCss() {
|
||
if (config.autoAddCss && !_cssInserted) {
|
||
insertCss(css());
|
||
|
||
_cssInserted = true;
|
||
}
|
||
}
|
||
|
||
function apiObject(val, abstractCreator) {
|
||
Object.defineProperty(val, 'abstract', {
|
||
get: abstractCreator
|
||
});
|
||
Object.defineProperty(val, 'html', {
|
||
get: function get() {
|
||
return val.abstract.map(function (a) {
|
||
return toHtml(a);
|
||
});
|
||
}
|
||
});
|
||
Object.defineProperty(val, 'node', {
|
||
get: function get() {
|
||
if (!IS_DOM) return;
|
||
var container = DOCUMENT.createElement('div');
|
||
container.innerHTML = val.html;
|
||
return container.children;
|
||
}
|
||
});
|
||
return val;
|
||
}
|
||
|
||
function findIconDefinition(iconLookup) {
|
||
var _iconLookup$prefix = iconLookup.prefix,
|
||
prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,
|
||
iconName = iconLookup.iconName;
|
||
if (!iconName) return;
|
||
return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);
|
||
}
|
||
|
||
function resolveIcons(next) {
|
||
return function (maybeIconDefinition) {
|
||
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});
|
||
var mask = params.mask;
|
||
|
||
if (mask) {
|
||
mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});
|
||
}
|
||
|
||
return next(iconDefinition, _objectSpread({}, params, {
|
||
mask: mask
|
||
}));
|
||
};
|
||
}
|
||
|
||
var library = new Library();
|
||
var noAuto = function noAuto() {
|
||
config.autoReplaceSvg = false;
|
||
config.observeMutations = false;
|
||
disconnect();
|
||
};
|
||
var _cssInserted = false;
|
||
var dom = {
|
||
i2svg: function i2svg() {
|
||
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
|
||
if (IS_DOM) {
|
||
ensureCss();
|
||
var _params$node = params.node,
|
||
node = _params$node === void 0 ? DOCUMENT : _params$node,
|
||
_params$callback = params.callback,
|
||
callback = _params$callback === void 0 ? function () {} : _params$callback;
|
||
|
||
if (config.searchPseudoElements) {
|
||
searchPseudoElements(node);
|
||
}
|
||
|
||
return onTree(node, callback);
|
||
} else {
|
||
return picked.reject('Operation requires a DOM of some kind.');
|
||
}
|
||
},
|
||
css: css,
|
||
insertCss: function insertCss$$1() {
|
||
if (!_cssInserted) {
|
||
insertCss(css());
|
||
|
||
_cssInserted = true;
|
||
}
|
||
},
|
||
watch: function watch() {
|
||
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
var autoReplaceSvgRoot = params.autoReplaceSvgRoot,
|
||
observeMutationsRoot = params.observeMutationsRoot;
|
||
|
||
if (config.autoReplaceSvg === false) {
|
||
config.autoReplaceSvg = true;
|
||
}
|
||
|
||
config.observeMutations = true;
|
||
domready(function () {
|
||
autoReplace({
|
||
autoReplaceSvgRoot: autoReplaceSvgRoot
|
||
});
|
||
observe({
|
||
treeCallback: onTree,
|
||
nodeCallback: onNode,
|
||
pseudoElementsCallback: searchPseudoElements,
|
||
observeMutationsRoot: observeMutationsRoot
|
||
});
|
||
});
|
||
}
|
||
};
|
||
var parse = {
|
||
transform: function transform(transformString) {
|
||
return parseTransformString(transformString);
|
||
}
|
||
};
|
||
var icon = resolveIcons(function (iconDefinition) {
|
||
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
var _params$transform = params.transform,
|
||
transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,
|
||
_params$symbol = params.symbol,
|
||
symbol = _params$symbol === void 0 ? false : _params$symbol,
|
||
_params$mask = params.mask,
|
||
mask = _params$mask === void 0 ? null : _params$mask,
|
||
_params$title = params.title,
|
||
title = _params$title === void 0 ? null : _params$title,
|
||
_params$classes = params.classes,
|
||
classes = _params$classes === void 0 ? [] : _params$classes,
|
||
_params$attributes = params.attributes,
|
||
attributes = _params$attributes === void 0 ? {} : _params$attributes,
|
||
_params$styles = params.styles,
|
||
styles = _params$styles === void 0 ? {} : _params$styles;
|
||
if (!iconDefinition) return;
|
||
var prefix = iconDefinition.prefix,
|
||
iconName = iconDefinition.iconName,
|
||
icon = iconDefinition.icon;
|
||
return apiObject(_objectSpread({
|
||
type: 'icon'
|
||
}, iconDefinition), function () {
|
||
ensureCss();
|
||
|
||
if (config.autoA11y) {
|
||
if (title) {
|
||
attributes['aria-labelledby'] = "".concat(config.replacementClass, "-title-").concat(nextUniqueId());
|
||
} else {
|
||
attributes['aria-hidden'] = 'true';
|
||
attributes['focusable'] = 'false';
|
||
}
|
||
}
|
||
|
||
return makeInlineSvgAbstract({
|
||
icons: {
|
||
main: asFoundIcon(icon),
|
||
mask: mask ? asFoundIcon(mask.icon) : {
|
||
found: false,
|
||
width: null,
|
||
height: null,
|
||
icon: {}
|
||
}
|
||
},
|
||
prefix: prefix,
|
||
iconName: iconName,
|
||
transform: _objectSpread({}, meaninglessTransform, transform),
|
||
symbol: symbol,
|
||
title: title,
|
||
extra: {
|
||
attributes: attributes,
|
||
styles: styles,
|
||
classes: classes
|
||
}
|
||
});
|
||
});
|
||
});
|
||
var text = function text(content) {
|
||
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
var _params$transform2 = params.transform,
|
||
transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,
|
||
_params$title2 = params.title,
|
||
title = _params$title2 === void 0 ? null : _params$title2,
|
||
_params$classes2 = params.classes,
|
||
classes = _params$classes2 === void 0 ? [] : _params$classes2,
|
||
_params$attributes2 = params.attributes,
|
||
attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,
|
||
_params$styles2 = params.styles,
|
||
styles = _params$styles2 === void 0 ? {} : _params$styles2;
|
||
return apiObject({
|
||
type: 'text',
|
||
content: content
|
||
}, function () {
|
||
ensureCss();
|
||
return makeLayersTextAbstract({
|
||
content: content,
|
||
transform: _objectSpread({}, meaninglessTransform, transform),
|
||
title: title,
|
||
extra: {
|
||
attributes: attributes,
|
||
styles: styles,
|
||
classes: ["".concat(config.familyPrefix, "-layers-text")].concat(_toConsumableArray(classes))
|
||
}
|
||
});
|
||
});
|
||
};
|
||
var counter = function counter(content) {
|
||
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
var _params$title3 = params.title,
|
||
title = _params$title3 === void 0 ? null : _params$title3,
|
||
_params$classes3 = params.classes,
|
||
classes = _params$classes3 === void 0 ? [] : _params$classes3,
|
||
_params$attributes3 = params.attributes,
|
||
attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,
|
||
_params$styles3 = params.styles,
|
||
styles = _params$styles3 === void 0 ? {} : _params$styles3;
|
||
return apiObject({
|
||
type: 'counter',
|
||
content: content
|
||
}, function () {
|
||
ensureCss();
|
||
return makeLayersCounterAbstract({
|
||
content: content.toString(),
|
||
title: title,
|
||
extra: {
|
||
attributes: attributes,
|
||
styles: styles,
|
||
classes: ["".concat(config.familyPrefix, "-layers-counter")].concat(_toConsumableArray(classes))
|
||
}
|
||
});
|
||
});
|
||
};
|
||
var layer = function layer(assembler) {
|
||
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
var _params$classes4 = params.classes,
|
||
classes = _params$classes4 === void 0 ? [] : _params$classes4;
|
||
return apiObject({
|
||
type: 'layer'
|
||
}, function () {
|
||
ensureCss();
|
||
var children = [];
|
||
assembler(function (args) {
|
||
Array.isArray(args) ? args.map(function (a) {
|
||
children = children.concat(a.abstract);
|
||
}) : children = children.concat(args.abstract);
|
||
});
|
||
return [{
|
||
tag: 'span',
|
||
attributes: {
|
||
class: ["".concat(config.familyPrefix, "-layers")].concat(_toConsumableArray(classes)).join(' ')
|
||
},
|
||
children: children
|
||
}];
|
||
});
|
||
};
|
||
var api = {
|
||
noAuto: noAuto,
|
||
config: config,
|
||
dom: dom,
|
||
library: library,
|
||
parse: parse,
|
||
findIconDefinition: findIconDefinition,
|
||
icon: icon,
|
||
text: text,
|
||
counter: counter,
|
||
layer: layer,
|
||
toHtml: toHtml
|
||
};
|
||
|
||
var autoReplace = function autoReplace() {
|
||
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
var _params$autoReplaceSv = params.autoReplaceSvgRoot,
|
||
autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;
|
||
if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({
|
||
node: autoReplaceSvgRoot
|
||
});
|
||
};
|
||
|
||
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../../timers-browserify/main.js */ "./node_modules/timers-browserify/main.js").setImmediate))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/@fortawesome/free-solid-svg-icons/index.es.js":
|
||
/*!********************************************************************!*\
|
||
!*** ./node_modules/@fortawesome/free-solid-svg-icons/index.es.js ***!
|
||
\********************************************************************/
|
||
/*! exports provided: fas, prefix, faAd, faAddressBook, faAddressCard, faAdjust, faAirFreshener, faAlignCenter, faAlignJustify, faAlignLeft, faAlignRight, faAllergies, faAmbulance, faAmericanSignLanguageInterpreting, faAnchor, faAngleDoubleDown, faAngleDoubleLeft, faAngleDoubleRight, faAngleDoubleUp, faAngleDown, faAngleLeft, faAngleRight, faAngleUp, faAngry, faAnkh, faAppleAlt, faArchive, faArchway, faArrowAltCircleDown, faArrowAltCircleLeft, faArrowAltCircleRight, faArrowAltCircleUp, faArrowCircleDown, faArrowCircleLeft, faArrowCircleRight, faArrowCircleUp, faArrowDown, faArrowLeft, faArrowRight, faArrowUp, faArrowsAlt, faArrowsAltH, faArrowsAltV, faAssistiveListeningSystems, faAsterisk, faAt, faAtlas, faAtom, faAudioDescription, faAward, faBaby, faBabyCarriage, faBackspace, faBackward, faBacon, faBalanceScale, faBalanceScaleLeft, faBalanceScaleRight, faBan, faBandAid, faBarcode, faBars, faBaseballBall, faBasketballBall, faBath, faBatteryEmpty, faBatteryFull, faBatteryHalf, faBatteryQuarter, faBatteryThreeQuarters, faBed, faBeer, faBell, faBellSlash, faBezierCurve, faBible, faBicycle, faBiking, faBinoculars, faBiohazard, faBirthdayCake, faBlender, faBlenderPhone, faBlind, faBlog, faBold, faBolt, faBomb, faBone, faBong, faBook, faBookDead, faBookMedical, faBookOpen, faBookReader, faBookmark, faBorderAll, faBorderNone, faBorderStyle, faBowlingBall, faBox, faBoxOpen, faBoxes, faBraille, faBrain, faBreadSlice, faBriefcase, faBriefcaseMedical, faBroadcastTower, faBroom, faBrush, faBug, faBuilding, faBullhorn, faBullseye, faBurn, faBus, faBusAlt, faBusinessTime, faCalculator, faCalendar, faCalendarAlt, faCalendarCheck, faCalendarDay, faCalendarMinus, faCalendarPlus, faCalendarTimes, faCalendarWeek, faCamera, faCameraRetro, faCampground, faCandyCane, faCannabis, faCapsules, faCar, faCarAlt, faCarBattery, faCarCrash, faCarSide, faCaretDown, faCaretLeft, faCaretRight, faCaretSquareDown, faCaretSquareLeft, faCaretSquareRight, faCaretSquareUp, faCaretUp, faCarrot, faCartArrowDown, faCartPlus, faCashRegister, faCat, faCertificate, faChair, faChalkboard, faChalkboardTeacher, faChargingStation, faChartArea, faChartBar, faChartLine, faChartPie, faCheck, faCheckCircle, faCheckDouble, faCheckSquare, faCheese, faChess, faChessBishop, faChessBoard, faChessKing, faChessKnight, faChessPawn, faChessQueen, faChessRook, faChevronCircleDown, faChevronCircleLeft, faChevronCircleRight, faChevronCircleUp, faChevronDown, faChevronLeft, faChevronRight, faChevronUp, faChild, faChurch, faCircle, faCircleNotch, faCity, faClinicMedical, faClipboard, faClipboardCheck, faClipboardList, faClock, faClone, faClosedCaptioning, faCloud, faCloudDownloadAlt, faCloudMeatball, faCloudMoon, faCloudMoonRain, faCloudRain, faCloudShowersHeavy, faCloudSun, faCloudSunRain, faCloudUploadAlt, faCocktail, faCode, faCodeBranch, faCoffee, faCog, faCogs, faCoins, faColumns, faComment, faCommentAlt, faCommentDollar, faCommentDots, faCommentMedical, faCommentSlash, faComments, faCommentsDollar, faCompactDisc, faCompass, faCompress, faCompressArrowsAlt, faConciergeBell, faCookie, faCookieBite, faCopy, faCopyright, faCouch, faCreditCard, faCrop, faCropAlt, faCross, faCrosshairs, faCrow, faCrown, faCrutch, faCube, faCubes, faCut, faDatabase, faDeaf, faDemocrat, faDesktop, faDharmachakra, faDiagnoses, faDice, faDiceD20, faDiceD6, faDiceFive, faDiceFour, faDiceOne, faDiceSix, faDiceThree, faDiceTwo, faDigitalTachograph, faDirections, faDivide, faDizzy, faDna, faDog, faDollarSign, faDolly, faDollyFlatbed, faDonate, faDoorClosed, faDoorOpen, faDotCircle, faDove, faDownload, faDraftingCompass, faDragon, faDrawPolygon, faDrum, faDrumSteelpan, faDrumstickBite, faDumbbell, faDumpster, faDumpsterFire, faDungeon, faEdit, faEgg, faEject, faEllipsisH, faEllipsisV, faEnvelope, faEnvelopeOpen, faEnvelopeOpenText, faEnvelopeSquare, faEquals, faEraser, faEthernet, faEuroSign, faExchangeAlt, faExclamation, faExclamationCircle, faExclamationTriangle, faExpand, faExpandArrowsAlt, faExternalLinkAlt, faExternalLinkSquareAlt, faEye, faEyeDropper, faEyeSlash, faFan, faFastBackward, faFastForward, faFax, faFeather, faFeatherAlt, faFemale, faFighterJet, faFile, faFileAlt, faFileArchive, faFileAudio, faFileCode, faFileContract, faFileCsv, faFileDownload, faFileExcel, faFileExport, faFileImage, faFileImport, faFileInvoice, faFileInvoiceDollar, faFileMedical, faFileMedicalAlt, faFilePdf, faFilePowerpoint, faFilePrescription, faFileSignature, faFileUpload, faFileVideo, faFileWord, faFill, faFillDrip, faFilm, faFilter, faFingerprint, faFire, faFireAlt, faFireExtinguisher, faFirstAid, faFish, faFistRaised, faFlag, faFlagCheckered, faFlagUsa, faFlask, faFlushed, faFolder, faFolderMinus, faFolderOpen, faFolderPlus, faFont, faFontAwesomeLogoFull, faFootballBall, faForward, faFrog, faFrown, faFrownOpen, faFunnelDollar, faFutbol, faGamepad, faGasPump, faGavel, faGem, faGenderless, faGhost, faGift, faGifts, faGlassCheers, faGlassMartini, faGlassMartiniAlt, faGlassWhiskey, faGlasses, faGlobe, faGlobeAfrica, faGlobeAmericas, faGlobeAsia, faGlobeEurope, faGolfBall, faGopuram, faGraduationCap, faGreaterThan, faGreaterThanEqual, faGrimace, faGrin, faGrinAlt, faGrinBeam, faGrinBeamSweat, faGrinHearts, faGrinSquint, faGrinSquintTears, faGrinStars, faGrinTears, faGrinTongue, faGrinTongueSquint, faGrinTongueWink, faGrinWink, faGripHorizontal, faGripLines, faGripLinesVertical, faGripVertical, faGuitar, faHSquare, faHamburger, faHammer, faHamsa, faHandHolding, faHandHoldingHeart, faHandHoldingUsd, faHandLizard, faHandMiddleFinger, faHandPaper, faHandPeace, faHandPointDown, faHandPointLeft, faHandPointRight, faHandPointUp, faHandPointer, faHandRock, faHandScissors, faHandSpock, faHands, faHandsHelping, faHandshake, faHanukiah, faHardHat, faHashtag, faHatCowboy, faHatCowboySide, faHatWizard, faHaykal, faHdd, faHeading, faHeadphones, faHeadphonesAlt, faHeadset, faHeart, faHeartBroken, faHeartbeat, faHelicopter, faHighlighter, faHiking, faHippo, faHistory, faHockeyPuck, faHollyBerry, faHome, faHorse, faHorseHead, faHospital, faHospitalAlt, faHospitalSymbol, faHotTub, faHotdog, faHotel, faHourglass, faHourglassEnd, faHourglassHalf, faHourglassStart, faHouseDamage, faHryvnia, faICursor, faIceCream, faIcicles, faIcons, faIdBadge, faIdCard, faIdCardAlt, faIgloo, faImage, faImages, faInbox, faIndent, faIndustry, faInfinity, faInfo, faInfoCircle, faItalic, faJedi, faJoint, faJournalWhills, faKaaba, faKey, faKeyboard, faKhanda, faKiss, faKissBeam, faKissWinkHeart, faKiwiBird, faLandmark, faLanguage, faLaptop, faLaptopCode, faLaptopMedical, faLaugh, faLaughBeam, faLaughSquint, faLaughWink, faLayerGroup, faLeaf, faLemon, faLessThan, faLessThanEqual, faLevelDownAlt, faLevelUpAlt, faLifeRing, faLightbulb, faLink, faLiraSign, faList, faListAlt, faListOl, faListUl, faLocationArrow, faLock, faLockOpen, faLongArrowAltDown, faLongArrowAltLeft, faLongArrowAltRight, faLongArrowAltUp, faLowVision, faLuggageCart, faMagic, faMagnet, faMailBulk, faMale, faMap, faMapMarked, faMapMarkedAlt, faMapMarker, faMapMarkerAlt, faMapPin, faMapSigns, faMarker, faMars, faMarsDouble, faMarsStroke, faMarsStrokeH, faMarsStrokeV, faMask, faMedal, faMedkit, faMeh, faMehBlank, faMehRollingEyes, faMemory, faMenorah, faMercury, faMeteor, faMicrochip, faMicrophone, faMicrophoneAlt, faMicrophoneAltSlash, faMicrophoneSlash, faMicroscope, faMinus, faMinusCircle, faMinusSquare, faMitten, faMobile, faMobileAlt, faMoneyBill, faMoneyBillAlt, faMoneyBillWave, faMoneyBillWaveAlt, faMoneyCheck, faMoneyCheckAlt, faMonument, faMoon, faMortarPestle, faMosque, faMotorcycle, faMountain, faMouse, faMousePointer, faMugHot, faMusic, faNetworkWired, faNeuter, faNewspaper, faNotEqual, faNotesMedical, faObjectGroup, faObjectUngroup, faOilCan, faOm, faOtter, faOutdent, faPager, faPaintBrush, faPaintRoller, faPalette, faPallet, faPaperPlane, faPaperclip, faParachuteBox, faParagraph, faParking, faPassport, faPastafarianism, faPaste, faPause, faPauseCircle, faPaw, faPeace, faPen, faPenAlt, faPenFancy, faPenNib, faPenSquare, faPencilAlt, faPencilRuler, faPeopleCarry, faPepperHot, faPercent, faPercentage, faPersonBooth, faPhone, faPhoneAlt, faPhoneSlash, faPhoneSquare, faPhoneSquareAlt, faPhoneVolume, faPhotoVideo, faPiggyBank, faPills, faPizzaSlice, faPlaceOfWorship, faPlane, faPlaneArrival, faPlaneDeparture, faPlay, faPlayCircle, faPlug, faPlus, faPlusCircle, faPlusSquare, faPodcast, faPoll, faPollH, faPoo, faPooStorm, faPoop, faPortrait, faPoundSign, faPowerOff, faPray, faPrayingHands, faPrescription, faPrescriptionBottle, faPrescriptionBottleAlt, faPrint, faProcedures, faProjectDiagram, faPuzzlePiece, faQrcode, faQuestion, faQuestionCircle, faQuidditch, faQuoteLeft, faQuoteRight, faQuran, faRadiation, faRadiationAlt, faRainbow, faRandom, faReceipt, faRecordVinyl, faRecycle, faRedo, faRedoAlt, faRegistered, faRemoveFormat, faReply, faReplyAll, faRepublican, faRestroom, faRetweet, faRibbon, faRing, faRoad, faRobot, faRocket, faRoute, faRss, faRssSquare, faRubleSign, faRuler, faRulerCombined, faRulerHorizontal, faRulerVertical, faRunning, faRupeeSign, faSadCry, faSadTear, faSatellite, faSatelliteDish, faSave, faSchool, faScrewdriver, faScroll, faSdCard, faSearch, faSearchDollar, faSearchLocation, faSearchMinus, faSearchPlus, faSeedling, faServer, faShapes, faShare, faShareAlt, faShareAltSquare, faShareSquare, faShekelSign, faShieldAlt, faShip, faShippingFast, faShoePrints, faShoppingBag, faShoppingBasket, faShoppingCart, faShower, faShuttleVan, faSign, faSignInAlt, faSignLanguage, faSignOutAlt, faSignal, faSignature, faSimCard, faSitemap, faSkating, faSkiing, faSkiingNordic, faSkull, faSkullCrossbones, faSlash, faSleigh, faSlidersH, faSmile, faSmileBeam, faSmileWink, faSmog, faSmoking, faSmokingBan, faSms, faSnowboarding, faSnowflake, faSnowman, faSnowplow, faSocks, faSolarPanel, faSort, faSortAlphaDown, faSortAlphaDownAlt, faSortAlphaUp, faSortAlphaUpAlt, faSortAmountDown, faSortAmountDownAlt, faSortAmountUp, faSortAmountUpAlt, faSortDown, faSortNumericDown, faSortNumericDownAlt, faSortNumericUp, faSortNumericUpAlt, faSortUp, faSpa, faSpaceShuttle, faSpellCheck, faSpider, faSpinner, faSplotch, faSprayCan, faSquare, faSquareFull, faSquareRootAlt, faStamp, faStar, faStarAndCrescent, faStarHalf, faStarHalfAlt, faStarOfDavid, faStarOfLife, faStepBackward, faStepForward, faStethoscope, faStickyNote, faStop, faStopCircle, faStopwatch, faStore, faStoreAlt, faStream, faStreetView, faStrikethrough, faStroopwafel, faSubscript, faSubway, faSuitcase, faSuitcaseRolling, faSun, faSuperscript, faSurprise, faSwatchbook, faSwimmer, faSwimmingPool, faSynagogue, faSync, faSyncAlt, faSyringe, faTable, faTableTennis, faTablet, faTabletAlt, faTablets, faTachometerAlt, faTag, faTags, faTape, faTasks, faTaxi, faTeeth, faTeethOpen, faTemperatureHigh, faTemperatureLow, faTenge, faTerminal, faTextHeight, faTextWidth, faTh, faThLarge, faThList, faTheaterMasks, faThermometer, faThermometerEmpty, faThermometerFull, faThermometerHalf, faThermometerQuarter, faThermometerThreeQuarters, faThumbsDown, faThumbsUp, faThumbtack, faTicketAlt, faTimes, faTimesCircle, faTint, faTintSlash, faTired, faToggleOff, faToggleOn, faToilet, faToiletPaper, faToolbox, faTools, faTooth, faTorah, faToriiGate, faTractor, faTrademark, faTrafficLight, faTrain, faTram, faTransgender, faTransgenderAlt, faTrash, faTrashAlt, faTrashRestore, faTrashRestoreAlt, faTree, faTrophy, faTruck, faTruckLoading, faTruckMonster, faTruckMoving, faTruckPickup, faTshirt, faTty, faTv, faUmbrella, faUmbrellaBeach, faUnderline, faUndo, faUndoAlt, faUniversalAccess, faUniversity, faUnlink, faUnlock, faUnlockAlt, faUpload, faUser, faUserAlt, faUserAltSlash, faUserAstronaut, faUserCheck, faUserCircle, faUserClock, faUserCog, faUserEdit, faUserFriends, faUserGraduate, faUserInjured, faUserLock, faUserMd, faUserMinus, faUserNinja, faUserNurse, faUserPlus, faUserSecret, faUserShield, faUserSlash, faUserTag, faUserTie, faUserTimes, faUsers, faUsersCog, faUtensilSpoon, faUtensils, faVectorSquare, faVenus, faVenusDouble, faVenusMars, faVial, faVials, faVideo, faVideoSlash, faVihara, faVoicemail, faVolleyballBall, faVolumeDown, faVolumeMute, faVolumeOff, faVolumeUp, faVoteYea, faVrCardboard, faWalking, faWallet, faWarehouse, faWater, faWaveSquare, faWeight, faWeightHanging, faWheelchair, faWifi, faWind, faWindowClose, faWindowMaximize, faWindowMinimize, faWindowRestore, faWineBottle, faWineGlass, faWineGlassAlt, faWonSign, faWrench, faXRay, faYenSign, faYinYang */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
__webpack_require__.r(__webpack_exports__);
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fas", function() { return _iconsCache; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prefix", function() { return prefix; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAd", function() { return faAd; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAddressBook", function() { return faAddressBook; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAddressCard", function() { return faAddressCard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAdjust", function() { return faAdjust; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAirFreshener", function() { return faAirFreshener; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAlignCenter", function() { return faAlignCenter; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAlignJustify", function() { return faAlignJustify; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAlignLeft", function() { return faAlignLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAlignRight", function() { return faAlignRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAllergies", function() { return faAllergies; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAmbulance", function() { return faAmbulance; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAmericanSignLanguageInterpreting", function() { return faAmericanSignLanguageInterpreting; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAnchor", function() { return faAnchor; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAngleDoubleDown", function() { return faAngleDoubleDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAngleDoubleLeft", function() { return faAngleDoubleLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAngleDoubleRight", function() { return faAngleDoubleRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAngleDoubleUp", function() { return faAngleDoubleUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAngleDown", function() { return faAngleDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAngleLeft", function() { return faAngleLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAngleRight", function() { return faAngleRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAngleUp", function() { return faAngleUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAngry", function() { return faAngry; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAnkh", function() { return faAnkh; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAppleAlt", function() { return faAppleAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArchive", function() { return faArchive; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArchway", function() { return faArchway; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowAltCircleDown", function() { return faArrowAltCircleDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowAltCircleLeft", function() { return faArrowAltCircleLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowAltCircleRight", function() { return faArrowAltCircleRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowAltCircleUp", function() { return faArrowAltCircleUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowCircleDown", function() { return faArrowCircleDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowCircleLeft", function() { return faArrowCircleLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowCircleRight", function() { return faArrowCircleRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowCircleUp", function() { return faArrowCircleUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowDown", function() { return faArrowDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowLeft", function() { return faArrowLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowRight", function() { return faArrowRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowUp", function() { return faArrowUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowsAlt", function() { return faArrowsAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowsAltH", function() { return faArrowsAltH; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faArrowsAltV", function() { return faArrowsAltV; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAssistiveListeningSystems", function() { return faAssistiveListeningSystems; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAsterisk", function() { return faAsterisk; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAt", function() { return faAt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAtlas", function() { return faAtlas; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAtom", function() { return faAtom; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAudioDescription", function() { return faAudioDescription; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faAward", function() { return faAward; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBaby", function() { return faBaby; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBabyCarriage", function() { return faBabyCarriage; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBackspace", function() { return faBackspace; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBackward", function() { return faBackward; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBacon", function() { return faBacon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBalanceScale", function() { return faBalanceScale; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBalanceScaleLeft", function() { return faBalanceScaleLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBalanceScaleRight", function() { return faBalanceScaleRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBan", function() { return faBan; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBandAid", function() { return faBandAid; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBarcode", function() { return faBarcode; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBars", function() { return faBars; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBaseballBall", function() { return faBaseballBall; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBasketballBall", function() { return faBasketballBall; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBath", function() { return faBath; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBatteryEmpty", function() { return faBatteryEmpty; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBatteryFull", function() { return faBatteryFull; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBatteryHalf", function() { return faBatteryHalf; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBatteryQuarter", function() { return faBatteryQuarter; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBatteryThreeQuarters", function() { return faBatteryThreeQuarters; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBed", function() { return faBed; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBeer", function() { return faBeer; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBell", function() { return faBell; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBellSlash", function() { return faBellSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBezierCurve", function() { return faBezierCurve; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBible", function() { return faBible; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBicycle", function() { return faBicycle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBiking", function() { return faBiking; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBinoculars", function() { return faBinoculars; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBiohazard", function() { return faBiohazard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBirthdayCake", function() { return faBirthdayCake; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBlender", function() { return faBlender; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBlenderPhone", function() { return faBlenderPhone; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBlind", function() { return faBlind; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBlog", function() { return faBlog; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBold", function() { return faBold; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBolt", function() { return faBolt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBomb", function() { return faBomb; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBone", function() { return faBone; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBong", function() { return faBong; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBook", function() { return faBook; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBookDead", function() { return faBookDead; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBookMedical", function() { return faBookMedical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBookOpen", function() { return faBookOpen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBookReader", function() { return faBookReader; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBookmark", function() { return faBookmark; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBorderAll", function() { return faBorderAll; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBorderNone", function() { return faBorderNone; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBorderStyle", function() { return faBorderStyle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBowlingBall", function() { return faBowlingBall; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBox", function() { return faBox; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBoxOpen", function() { return faBoxOpen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBoxes", function() { return faBoxes; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBraille", function() { return faBraille; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBrain", function() { return faBrain; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBreadSlice", function() { return faBreadSlice; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBriefcase", function() { return faBriefcase; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBriefcaseMedical", function() { return faBriefcaseMedical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBroadcastTower", function() { return faBroadcastTower; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBroom", function() { return faBroom; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBrush", function() { return faBrush; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBug", function() { return faBug; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBuilding", function() { return faBuilding; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBullhorn", function() { return faBullhorn; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBullseye", function() { return faBullseye; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBurn", function() { return faBurn; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBus", function() { return faBus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBusAlt", function() { return faBusAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faBusinessTime", function() { return faBusinessTime; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCalculator", function() { return faCalculator; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCalendar", function() { return faCalendar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCalendarAlt", function() { return faCalendarAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCalendarCheck", function() { return faCalendarCheck; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCalendarDay", function() { return faCalendarDay; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCalendarMinus", function() { return faCalendarMinus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCalendarPlus", function() { return faCalendarPlus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCalendarTimes", function() { return faCalendarTimes; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCalendarWeek", function() { return faCalendarWeek; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCamera", function() { return faCamera; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCameraRetro", function() { return faCameraRetro; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCampground", function() { return faCampground; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCandyCane", function() { return faCandyCane; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCannabis", function() { return faCannabis; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCapsules", function() { return faCapsules; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCar", function() { return faCar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCarAlt", function() { return faCarAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCarBattery", function() { return faCarBattery; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCarCrash", function() { return faCarCrash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCarSide", function() { return faCarSide; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCaretDown", function() { return faCaretDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCaretLeft", function() { return faCaretLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCaretRight", function() { return faCaretRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCaretSquareDown", function() { return faCaretSquareDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCaretSquareLeft", function() { return faCaretSquareLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCaretSquareRight", function() { return faCaretSquareRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCaretSquareUp", function() { return faCaretSquareUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCaretUp", function() { return faCaretUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCarrot", function() { return faCarrot; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCartArrowDown", function() { return faCartArrowDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCartPlus", function() { return faCartPlus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCashRegister", function() { return faCashRegister; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCat", function() { return faCat; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCertificate", function() { return faCertificate; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChair", function() { return faChair; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChalkboard", function() { return faChalkboard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChalkboardTeacher", function() { return faChalkboardTeacher; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChargingStation", function() { return faChargingStation; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChartArea", function() { return faChartArea; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChartBar", function() { return faChartBar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChartLine", function() { return faChartLine; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChartPie", function() { return faChartPie; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCheck", function() { return faCheck; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCheckCircle", function() { return faCheckCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCheckDouble", function() { return faCheckDouble; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCheckSquare", function() { return faCheckSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCheese", function() { return faCheese; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChess", function() { return faChess; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChessBishop", function() { return faChessBishop; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChessBoard", function() { return faChessBoard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChessKing", function() { return faChessKing; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChessKnight", function() { return faChessKnight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChessPawn", function() { return faChessPawn; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChessQueen", function() { return faChessQueen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChessRook", function() { return faChessRook; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChevronCircleDown", function() { return faChevronCircleDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChevronCircleLeft", function() { return faChevronCircleLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChevronCircleRight", function() { return faChevronCircleRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChevronCircleUp", function() { return faChevronCircleUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChevronDown", function() { return faChevronDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChevronLeft", function() { return faChevronLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChevronRight", function() { return faChevronRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChevronUp", function() { return faChevronUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChild", function() { return faChild; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faChurch", function() { return faChurch; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCircle", function() { return faCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCircleNotch", function() { return faCircleNotch; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCity", function() { return faCity; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faClinicMedical", function() { return faClinicMedical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faClipboard", function() { return faClipboard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faClipboardCheck", function() { return faClipboardCheck; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faClipboardList", function() { return faClipboardList; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faClock", function() { return faClock; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faClone", function() { return faClone; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faClosedCaptioning", function() { return faClosedCaptioning; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloud", function() { return faCloud; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloudDownloadAlt", function() { return faCloudDownloadAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloudMeatball", function() { return faCloudMeatball; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloudMoon", function() { return faCloudMoon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloudMoonRain", function() { return faCloudMoonRain; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloudRain", function() { return faCloudRain; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloudShowersHeavy", function() { return faCloudShowersHeavy; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloudSun", function() { return faCloudSun; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloudSunRain", function() { return faCloudSunRain; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCloudUploadAlt", function() { return faCloudUploadAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCocktail", function() { return faCocktail; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCode", function() { return faCode; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCodeBranch", function() { return faCodeBranch; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCoffee", function() { return faCoffee; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCog", function() { return faCog; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCogs", function() { return faCogs; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCoins", function() { return faCoins; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faColumns", function() { return faColumns; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faComment", function() { return faComment; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCommentAlt", function() { return faCommentAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCommentDollar", function() { return faCommentDollar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCommentDots", function() { return faCommentDots; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCommentMedical", function() { return faCommentMedical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCommentSlash", function() { return faCommentSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faComments", function() { return faComments; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCommentsDollar", function() { return faCommentsDollar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCompactDisc", function() { return faCompactDisc; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCompass", function() { return faCompass; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCompress", function() { return faCompress; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCompressArrowsAlt", function() { return faCompressArrowsAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faConciergeBell", function() { return faConciergeBell; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCookie", function() { return faCookie; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCookieBite", function() { return faCookieBite; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCopy", function() { return faCopy; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCopyright", function() { return faCopyright; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCouch", function() { return faCouch; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCreditCard", function() { return faCreditCard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCrop", function() { return faCrop; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCropAlt", function() { return faCropAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCross", function() { return faCross; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCrosshairs", function() { return faCrosshairs; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCrow", function() { return faCrow; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCrown", function() { return faCrown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCrutch", function() { return faCrutch; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCube", function() { return faCube; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCubes", function() { return faCubes; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faCut", function() { return faCut; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDatabase", function() { return faDatabase; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDeaf", function() { return faDeaf; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDemocrat", function() { return faDemocrat; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDesktop", function() { return faDesktop; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDharmachakra", function() { return faDharmachakra; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDiagnoses", function() { return faDiagnoses; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDice", function() { return faDice; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDiceD20", function() { return faDiceD20; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDiceD6", function() { return faDiceD6; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDiceFive", function() { return faDiceFive; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDiceFour", function() { return faDiceFour; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDiceOne", function() { return faDiceOne; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDiceSix", function() { return faDiceSix; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDiceThree", function() { return faDiceThree; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDiceTwo", function() { return faDiceTwo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDigitalTachograph", function() { return faDigitalTachograph; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDirections", function() { return faDirections; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDivide", function() { return faDivide; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDizzy", function() { return faDizzy; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDna", function() { return faDna; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDog", function() { return faDog; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDollarSign", function() { return faDollarSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDolly", function() { return faDolly; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDollyFlatbed", function() { return faDollyFlatbed; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDonate", function() { return faDonate; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDoorClosed", function() { return faDoorClosed; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDoorOpen", function() { return faDoorOpen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDotCircle", function() { return faDotCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDove", function() { return faDove; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDownload", function() { return faDownload; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDraftingCompass", function() { return faDraftingCompass; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDragon", function() { return faDragon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDrawPolygon", function() { return faDrawPolygon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDrum", function() { return faDrum; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDrumSteelpan", function() { return faDrumSteelpan; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDrumstickBite", function() { return faDrumstickBite; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDumbbell", function() { return faDumbbell; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDumpster", function() { return faDumpster; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDumpsterFire", function() { return faDumpsterFire; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faDungeon", function() { return faDungeon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEdit", function() { return faEdit; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEgg", function() { return faEgg; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEject", function() { return faEject; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEllipsisH", function() { return faEllipsisH; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEllipsisV", function() { return faEllipsisV; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEnvelope", function() { return faEnvelope; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEnvelopeOpen", function() { return faEnvelopeOpen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEnvelopeOpenText", function() { return faEnvelopeOpenText; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEnvelopeSquare", function() { return faEnvelopeSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEquals", function() { return faEquals; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEraser", function() { return faEraser; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEthernet", function() { return faEthernet; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEuroSign", function() { return faEuroSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faExchangeAlt", function() { return faExchangeAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faExclamation", function() { return faExclamation; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faExclamationCircle", function() { return faExclamationCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faExclamationTriangle", function() { return faExclamationTriangle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faExpand", function() { return faExpand; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faExpandArrowsAlt", function() { return faExpandArrowsAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faExternalLinkAlt", function() { return faExternalLinkAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faExternalLinkSquareAlt", function() { return faExternalLinkSquareAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEye", function() { return faEye; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEyeDropper", function() { return faEyeDropper; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faEyeSlash", function() { return faEyeSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFan", function() { return faFan; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFastBackward", function() { return faFastBackward; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFastForward", function() { return faFastForward; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFax", function() { return faFax; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFeather", function() { return faFeather; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFeatherAlt", function() { return faFeatherAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFemale", function() { return faFemale; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFighterJet", function() { return faFighterJet; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFile", function() { return faFile; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileAlt", function() { return faFileAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileArchive", function() { return faFileArchive; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileAudio", function() { return faFileAudio; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileCode", function() { return faFileCode; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileContract", function() { return faFileContract; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileCsv", function() { return faFileCsv; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileDownload", function() { return faFileDownload; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileExcel", function() { return faFileExcel; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileExport", function() { return faFileExport; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileImage", function() { return faFileImage; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileImport", function() { return faFileImport; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileInvoice", function() { return faFileInvoice; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileInvoiceDollar", function() { return faFileInvoiceDollar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileMedical", function() { return faFileMedical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileMedicalAlt", function() { return faFileMedicalAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFilePdf", function() { return faFilePdf; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFilePowerpoint", function() { return faFilePowerpoint; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFilePrescription", function() { return faFilePrescription; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileSignature", function() { return faFileSignature; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileUpload", function() { return faFileUpload; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileVideo", function() { return faFileVideo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFileWord", function() { return faFileWord; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFill", function() { return faFill; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFillDrip", function() { return faFillDrip; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFilm", function() { return faFilm; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFilter", function() { return faFilter; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFingerprint", function() { return faFingerprint; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFire", function() { return faFire; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFireAlt", function() { return faFireAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFireExtinguisher", function() { return faFireExtinguisher; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFirstAid", function() { return faFirstAid; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFish", function() { return faFish; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFistRaised", function() { return faFistRaised; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFlag", function() { return faFlag; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFlagCheckered", function() { return faFlagCheckered; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFlagUsa", function() { return faFlagUsa; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFlask", function() { return faFlask; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFlushed", function() { return faFlushed; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFolder", function() { return faFolder; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFolderMinus", function() { return faFolderMinus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFolderOpen", function() { return faFolderOpen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFolderPlus", function() { return faFolderPlus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFont", function() { return faFont; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFontAwesomeLogoFull", function() { return faFontAwesomeLogoFull; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFootballBall", function() { return faFootballBall; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faForward", function() { return faForward; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFrog", function() { return faFrog; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFrown", function() { return faFrown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFrownOpen", function() { return faFrownOpen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFunnelDollar", function() { return faFunnelDollar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faFutbol", function() { return faFutbol; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGamepad", function() { return faGamepad; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGasPump", function() { return faGasPump; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGavel", function() { return faGavel; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGem", function() { return faGem; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGenderless", function() { return faGenderless; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGhost", function() { return faGhost; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGift", function() { return faGift; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGifts", function() { return faGifts; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlassCheers", function() { return faGlassCheers; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlassMartini", function() { return faGlassMartini; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlassMartiniAlt", function() { return faGlassMartiniAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlassWhiskey", function() { return faGlassWhiskey; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlasses", function() { return faGlasses; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlobe", function() { return faGlobe; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlobeAfrica", function() { return faGlobeAfrica; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlobeAmericas", function() { return faGlobeAmericas; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlobeAsia", function() { return faGlobeAsia; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGlobeEurope", function() { return faGlobeEurope; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGolfBall", function() { return faGolfBall; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGopuram", function() { return faGopuram; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGraduationCap", function() { return faGraduationCap; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGreaterThan", function() { return faGreaterThan; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGreaterThanEqual", function() { return faGreaterThanEqual; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrimace", function() { return faGrimace; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrin", function() { return faGrin; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinAlt", function() { return faGrinAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinBeam", function() { return faGrinBeam; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinBeamSweat", function() { return faGrinBeamSweat; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinHearts", function() { return faGrinHearts; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinSquint", function() { return faGrinSquint; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinSquintTears", function() { return faGrinSquintTears; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinStars", function() { return faGrinStars; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinTears", function() { return faGrinTears; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinTongue", function() { return faGrinTongue; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinTongueSquint", function() { return faGrinTongueSquint; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinTongueWink", function() { return faGrinTongueWink; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGrinWink", function() { return faGrinWink; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGripHorizontal", function() { return faGripHorizontal; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGripLines", function() { return faGripLines; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGripLinesVertical", function() { return faGripLinesVertical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGripVertical", function() { return faGripVertical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faGuitar", function() { return faGuitar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHSquare", function() { return faHSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHamburger", function() { return faHamburger; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHammer", function() { return faHammer; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHamsa", function() { return faHamsa; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandHolding", function() { return faHandHolding; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandHoldingHeart", function() { return faHandHoldingHeart; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandHoldingUsd", function() { return faHandHoldingUsd; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandLizard", function() { return faHandLizard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandMiddleFinger", function() { return faHandMiddleFinger; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandPaper", function() { return faHandPaper; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandPeace", function() { return faHandPeace; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandPointDown", function() { return faHandPointDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandPointLeft", function() { return faHandPointLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandPointRight", function() { return faHandPointRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandPointUp", function() { return faHandPointUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandPointer", function() { return faHandPointer; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandRock", function() { return faHandRock; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandScissors", function() { return faHandScissors; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandSpock", function() { return faHandSpock; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHands", function() { return faHands; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandsHelping", function() { return faHandsHelping; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHandshake", function() { return faHandshake; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHanukiah", function() { return faHanukiah; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHardHat", function() { return faHardHat; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHashtag", function() { return faHashtag; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHatCowboy", function() { return faHatCowboy; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHatCowboySide", function() { return faHatCowboySide; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHatWizard", function() { return faHatWizard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHaykal", function() { return faHaykal; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHdd", function() { return faHdd; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHeading", function() { return faHeading; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHeadphones", function() { return faHeadphones; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHeadphonesAlt", function() { return faHeadphonesAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHeadset", function() { return faHeadset; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHeart", function() { return faHeart; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHeartBroken", function() { return faHeartBroken; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHeartbeat", function() { return faHeartbeat; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHelicopter", function() { return faHelicopter; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHighlighter", function() { return faHighlighter; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHiking", function() { return faHiking; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHippo", function() { return faHippo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHistory", function() { return faHistory; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHockeyPuck", function() { return faHockeyPuck; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHollyBerry", function() { return faHollyBerry; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHome", function() { return faHome; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHorse", function() { return faHorse; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHorseHead", function() { return faHorseHead; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHospital", function() { return faHospital; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHospitalAlt", function() { return faHospitalAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHospitalSymbol", function() { return faHospitalSymbol; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHotTub", function() { return faHotTub; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHotdog", function() { return faHotdog; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHotel", function() { return faHotel; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHourglass", function() { return faHourglass; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHourglassEnd", function() { return faHourglassEnd; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHourglassHalf", function() { return faHourglassHalf; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHourglassStart", function() { return faHourglassStart; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHouseDamage", function() { return faHouseDamage; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faHryvnia", function() { return faHryvnia; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faICursor", function() { return faICursor; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faIceCream", function() { return faIceCream; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faIcicles", function() { return faIcicles; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faIcons", function() { return faIcons; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faIdBadge", function() { return faIdBadge; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faIdCard", function() { return faIdCard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faIdCardAlt", function() { return faIdCardAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faIgloo", function() { return faIgloo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faImage", function() { return faImage; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faImages", function() { return faImages; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faInbox", function() { return faInbox; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faIndent", function() { return faIndent; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faIndustry", function() { return faIndustry; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faInfinity", function() { return faInfinity; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faInfo", function() { return faInfo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faInfoCircle", function() { return faInfoCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faItalic", function() { return faItalic; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faJedi", function() { return faJedi; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faJoint", function() { return faJoint; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faJournalWhills", function() { return faJournalWhills; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faKaaba", function() { return faKaaba; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faKey", function() { return faKey; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faKeyboard", function() { return faKeyboard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faKhanda", function() { return faKhanda; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faKiss", function() { return faKiss; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faKissBeam", function() { return faKissBeam; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faKissWinkHeart", function() { return faKissWinkHeart; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faKiwiBird", function() { return faKiwiBird; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLandmark", function() { return faLandmark; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLanguage", function() { return faLanguage; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLaptop", function() { return faLaptop; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLaptopCode", function() { return faLaptopCode; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLaptopMedical", function() { return faLaptopMedical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLaugh", function() { return faLaugh; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLaughBeam", function() { return faLaughBeam; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLaughSquint", function() { return faLaughSquint; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLaughWink", function() { return faLaughWink; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLayerGroup", function() { return faLayerGroup; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLeaf", function() { return faLeaf; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLemon", function() { return faLemon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLessThan", function() { return faLessThan; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLessThanEqual", function() { return faLessThanEqual; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLevelDownAlt", function() { return faLevelDownAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLevelUpAlt", function() { return faLevelUpAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLifeRing", function() { return faLifeRing; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLightbulb", function() { return faLightbulb; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLink", function() { return faLink; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLiraSign", function() { return faLiraSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faList", function() { return faList; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faListAlt", function() { return faListAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faListOl", function() { return faListOl; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faListUl", function() { return faListUl; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLocationArrow", function() { return faLocationArrow; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLock", function() { return faLock; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLockOpen", function() { return faLockOpen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLongArrowAltDown", function() { return faLongArrowAltDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLongArrowAltLeft", function() { return faLongArrowAltLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLongArrowAltRight", function() { return faLongArrowAltRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLongArrowAltUp", function() { return faLongArrowAltUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLowVision", function() { return faLowVision; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faLuggageCart", function() { return faLuggageCart; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMagic", function() { return faMagic; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMagnet", function() { return faMagnet; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMailBulk", function() { return faMailBulk; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMale", function() { return faMale; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMap", function() { return faMap; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMapMarked", function() { return faMapMarked; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMapMarkedAlt", function() { return faMapMarkedAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMapMarker", function() { return faMapMarker; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMapMarkerAlt", function() { return faMapMarkerAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMapPin", function() { return faMapPin; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMapSigns", function() { return faMapSigns; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMarker", function() { return faMarker; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMars", function() { return faMars; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMarsDouble", function() { return faMarsDouble; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMarsStroke", function() { return faMarsStroke; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMarsStrokeH", function() { return faMarsStrokeH; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMarsStrokeV", function() { return faMarsStrokeV; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMask", function() { return faMask; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMedal", function() { return faMedal; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMedkit", function() { return faMedkit; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMeh", function() { return faMeh; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMehBlank", function() { return faMehBlank; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMehRollingEyes", function() { return faMehRollingEyes; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMemory", function() { return faMemory; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMenorah", function() { return faMenorah; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMercury", function() { return faMercury; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMeteor", function() { return faMeteor; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMicrochip", function() { return faMicrochip; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMicrophone", function() { return faMicrophone; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMicrophoneAlt", function() { return faMicrophoneAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMicrophoneAltSlash", function() { return faMicrophoneAltSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMicrophoneSlash", function() { return faMicrophoneSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMicroscope", function() { return faMicroscope; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMinus", function() { return faMinus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMinusCircle", function() { return faMinusCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMinusSquare", function() { return faMinusSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMitten", function() { return faMitten; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMobile", function() { return faMobile; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMobileAlt", function() { return faMobileAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMoneyBill", function() { return faMoneyBill; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMoneyBillAlt", function() { return faMoneyBillAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMoneyBillWave", function() { return faMoneyBillWave; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMoneyBillWaveAlt", function() { return faMoneyBillWaveAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMoneyCheck", function() { return faMoneyCheck; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMoneyCheckAlt", function() { return faMoneyCheckAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMonument", function() { return faMonument; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMoon", function() { return faMoon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMortarPestle", function() { return faMortarPestle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMosque", function() { return faMosque; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMotorcycle", function() { return faMotorcycle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMountain", function() { return faMountain; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMouse", function() { return faMouse; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMousePointer", function() { return faMousePointer; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMugHot", function() { return faMugHot; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faMusic", function() { return faMusic; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faNetworkWired", function() { return faNetworkWired; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faNeuter", function() { return faNeuter; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faNewspaper", function() { return faNewspaper; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faNotEqual", function() { return faNotEqual; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faNotesMedical", function() { return faNotesMedical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faObjectGroup", function() { return faObjectGroup; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faObjectUngroup", function() { return faObjectUngroup; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faOilCan", function() { return faOilCan; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faOm", function() { return faOm; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faOtter", function() { return faOtter; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faOutdent", function() { return faOutdent; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPager", function() { return faPager; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPaintBrush", function() { return faPaintBrush; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPaintRoller", function() { return faPaintRoller; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPalette", function() { return faPalette; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPallet", function() { return faPallet; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPaperPlane", function() { return faPaperPlane; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPaperclip", function() { return faPaperclip; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faParachuteBox", function() { return faParachuteBox; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faParagraph", function() { return faParagraph; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faParking", function() { return faParking; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPassport", function() { return faPassport; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPastafarianism", function() { return faPastafarianism; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPaste", function() { return faPaste; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPause", function() { return faPause; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPauseCircle", function() { return faPauseCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPaw", function() { return faPaw; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPeace", function() { return faPeace; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPen", function() { return faPen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPenAlt", function() { return faPenAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPenFancy", function() { return faPenFancy; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPenNib", function() { return faPenNib; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPenSquare", function() { return faPenSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPencilAlt", function() { return faPencilAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPencilRuler", function() { return faPencilRuler; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPeopleCarry", function() { return faPeopleCarry; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPepperHot", function() { return faPepperHot; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPercent", function() { return faPercent; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPercentage", function() { return faPercentage; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPersonBooth", function() { return faPersonBooth; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPhone", function() { return faPhone; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPhoneAlt", function() { return faPhoneAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPhoneSlash", function() { return faPhoneSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPhoneSquare", function() { return faPhoneSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPhoneSquareAlt", function() { return faPhoneSquareAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPhoneVolume", function() { return faPhoneVolume; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPhotoVideo", function() { return faPhotoVideo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPiggyBank", function() { return faPiggyBank; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPills", function() { return faPills; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPizzaSlice", function() { return faPizzaSlice; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlaceOfWorship", function() { return faPlaceOfWorship; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlane", function() { return faPlane; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlaneArrival", function() { return faPlaneArrival; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlaneDeparture", function() { return faPlaneDeparture; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlay", function() { return faPlay; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlayCircle", function() { return faPlayCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlug", function() { return faPlug; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlus", function() { return faPlus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlusCircle", function() { return faPlusCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPlusSquare", function() { return faPlusSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPodcast", function() { return faPodcast; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPoll", function() { return faPoll; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPollH", function() { return faPollH; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPoo", function() { return faPoo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPooStorm", function() { return faPooStorm; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPoop", function() { return faPoop; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPortrait", function() { return faPortrait; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPoundSign", function() { return faPoundSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPowerOff", function() { return faPowerOff; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPray", function() { return faPray; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPrayingHands", function() { return faPrayingHands; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPrescription", function() { return faPrescription; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPrescriptionBottle", function() { return faPrescriptionBottle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPrescriptionBottleAlt", function() { return faPrescriptionBottleAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPrint", function() { return faPrint; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faProcedures", function() { return faProcedures; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faProjectDiagram", function() { return faProjectDiagram; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faPuzzlePiece", function() { return faPuzzlePiece; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faQrcode", function() { return faQrcode; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faQuestion", function() { return faQuestion; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faQuestionCircle", function() { return faQuestionCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faQuidditch", function() { return faQuidditch; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faQuoteLeft", function() { return faQuoteLeft; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faQuoteRight", function() { return faQuoteRight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faQuran", function() { return faQuran; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRadiation", function() { return faRadiation; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRadiationAlt", function() { return faRadiationAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRainbow", function() { return faRainbow; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRandom", function() { return faRandom; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faReceipt", function() { return faReceipt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRecordVinyl", function() { return faRecordVinyl; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRecycle", function() { return faRecycle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRedo", function() { return faRedo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRedoAlt", function() { return faRedoAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRegistered", function() { return faRegistered; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRemoveFormat", function() { return faRemoveFormat; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faReply", function() { return faReply; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faReplyAll", function() { return faReplyAll; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRepublican", function() { return faRepublican; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRestroom", function() { return faRestroom; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRetweet", function() { return faRetweet; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRibbon", function() { return faRibbon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRing", function() { return faRing; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRoad", function() { return faRoad; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRobot", function() { return faRobot; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRocket", function() { return faRocket; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRoute", function() { return faRoute; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRss", function() { return faRss; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRssSquare", function() { return faRssSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRubleSign", function() { return faRubleSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRuler", function() { return faRuler; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRulerCombined", function() { return faRulerCombined; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRulerHorizontal", function() { return faRulerHorizontal; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRulerVertical", function() { return faRulerVertical; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRunning", function() { return faRunning; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faRupeeSign", function() { return faRupeeSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSadCry", function() { return faSadCry; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSadTear", function() { return faSadTear; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSatellite", function() { return faSatellite; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSatelliteDish", function() { return faSatelliteDish; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSave", function() { return faSave; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSchool", function() { return faSchool; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faScrewdriver", function() { return faScrewdriver; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faScroll", function() { return faScroll; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSdCard", function() { return faSdCard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSearch", function() { return faSearch; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSearchDollar", function() { return faSearchDollar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSearchLocation", function() { return faSearchLocation; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSearchMinus", function() { return faSearchMinus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSearchPlus", function() { return faSearchPlus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSeedling", function() { return faSeedling; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faServer", function() { return faServer; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShapes", function() { return faShapes; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShare", function() { return faShare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShareAlt", function() { return faShareAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShareAltSquare", function() { return faShareAltSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShareSquare", function() { return faShareSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShekelSign", function() { return faShekelSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShieldAlt", function() { return faShieldAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShip", function() { return faShip; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShippingFast", function() { return faShippingFast; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShoePrints", function() { return faShoePrints; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShoppingBag", function() { return faShoppingBag; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShoppingBasket", function() { return faShoppingBasket; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShoppingCart", function() { return faShoppingCart; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShower", function() { return faShower; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faShuttleVan", function() { return faShuttleVan; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSign", function() { return faSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSignInAlt", function() { return faSignInAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSignLanguage", function() { return faSignLanguage; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSignOutAlt", function() { return faSignOutAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSignal", function() { return faSignal; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSignature", function() { return faSignature; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSimCard", function() { return faSimCard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSitemap", function() { return faSitemap; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSkating", function() { return faSkating; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSkiing", function() { return faSkiing; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSkiingNordic", function() { return faSkiingNordic; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSkull", function() { return faSkull; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSkullCrossbones", function() { return faSkullCrossbones; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSlash", function() { return faSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSleigh", function() { return faSleigh; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSlidersH", function() { return faSlidersH; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSmile", function() { return faSmile; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSmileBeam", function() { return faSmileBeam; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSmileWink", function() { return faSmileWink; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSmog", function() { return faSmog; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSmoking", function() { return faSmoking; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSmokingBan", function() { return faSmokingBan; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSms", function() { return faSms; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSnowboarding", function() { return faSnowboarding; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSnowflake", function() { return faSnowflake; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSnowman", function() { return faSnowman; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSnowplow", function() { return faSnowplow; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSocks", function() { return faSocks; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSolarPanel", function() { return faSolarPanel; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSort", function() { return faSort; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortAlphaDown", function() { return faSortAlphaDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortAlphaDownAlt", function() { return faSortAlphaDownAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortAlphaUp", function() { return faSortAlphaUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortAlphaUpAlt", function() { return faSortAlphaUpAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortAmountDown", function() { return faSortAmountDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortAmountDownAlt", function() { return faSortAmountDownAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortAmountUp", function() { return faSortAmountUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortAmountUpAlt", function() { return faSortAmountUpAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortDown", function() { return faSortDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortNumericDown", function() { return faSortNumericDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortNumericDownAlt", function() { return faSortNumericDownAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortNumericUp", function() { return faSortNumericUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortNumericUpAlt", function() { return faSortNumericUpAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSortUp", function() { return faSortUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSpa", function() { return faSpa; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSpaceShuttle", function() { return faSpaceShuttle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSpellCheck", function() { return faSpellCheck; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSpider", function() { return faSpider; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSpinner", function() { return faSpinner; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSplotch", function() { return faSplotch; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSprayCan", function() { return faSprayCan; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSquare", function() { return faSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSquareFull", function() { return faSquareFull; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSquareRootAlt", function() { return faSquareRootAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStamp", function() { return faStamp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStar", function() { return faStar; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStarAndCrescent", function() { return faStarAndCrescent; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStarHalf", function() { return faStarHalf; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStarHalfAlt", function() { return faStarHalfAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStarOfDavid", function() { return faStarOfDavid; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStarOfLife", function() { return faStarOfLife; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStepBackward", function() { return faStepBackward; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStepForward", function() { return faStepForward; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStethoscope", function() { return faStethoscope; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStickyNote", function() { return faStickyNote; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStop", function() { return faStop; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStopCircle", function() { return faStopCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStopwatch", function() { return faStopwatch; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStore", function() { return faStore; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStoreAlt", function() { return faStoreAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStream", function() { return faStream; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStreetView", function() { return faStreetView; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStrikethrough", function() { return faStrikethrough; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faStroopwafel", function() { return faStroopwafel; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSubscript", function() { return faSubscript; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSubway", function() { return faSubway; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSuitcase", function() { return faSuitcase; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSuitcaseRolling", function() { return faSuitcaseRolling; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSun", function() { return faSun; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSuperscript", function() { return faSuperscript; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSurprise", function() { return faSurprise; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSwatchbook", function() { return faSwatchbook; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSwimmer", function() { return faSwimmer; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSwimmingPool", function() { return faSwimmingPool; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSynagogue", function() { return faSynagogue; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSync", function() { return faSync; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSyncAlt", function() { return faSyncAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faSyringe", function() { return faSyringe; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTable", function() { return faTable; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTableTennis", function() { return faTableTennis; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTablet", function() { return faTablet; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTabletAlt", function() { return faTabletAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTablets", function() { return faTablets; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTachometerAlt", function() { return faTachometerAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTag", function() { return faTag; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTags", function() { return faTags; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTape", function() { return faTape; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTasks", function() { return faTasks; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTaxi", function() { return faTaxi; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTeeth", function() { return faTeeth; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTeethOpen", function() { return faTeethOpen; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTemperatureHigh", function() { return faTemperatureHigh; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTemperatureLow", function() { return faTemperatureLow; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTenge", function() { return faTenge; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTerminal", function() { return faTerminal; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTextHeight", function() { return faTextHeight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTextWidth", function() { return faTextWidth; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTh", function() { return faTh; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThLarge", function() { return faThLarge; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThList", function() { return faThList; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTheaterMasks", function() { return faTheaterMasks; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThermometer", function() { return faThermometer; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThermometerEmpty", function() { return faThermometerEmpty; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThermometerFull", function() { return faThermometerFull; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThermometerHalf", function() { return faThermometerHalf; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThermometerQuarter", function() { return faThermometerQuarter; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThermometerThreeQuarters", function() { return faThermometerThreeQuarters; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThumbsDown", function() { return faThumbsDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThumbsUp", function() { return faThumbsUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faThumbtack", function() { return faThumbtack; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTicketAlt", function() { return faTicketAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTimes", function() { return faTimes; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTimesCircle", function() { return faTimesCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTint", function() { return faTint; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTintSlash", function() { return faTintSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTired", function() { return faTired; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faToggleOff", function() { return faToggleOff; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faToggleOn", function() { return faToggleOn; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faToilet", function() { return faToilet; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faToiletPaper", function() { return faToiletPaper; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faToolbox", function() { return faToolbox; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTools", function() { return faTools; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTooth", function() { return faTooth; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTorah", function() { return faTorah; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faToriiGate", function() { return faToriiGate; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTractor", function() { return faTractor; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTrademark", function() { return faTrademark; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTrafficLight", function() { return faTrafficLight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTrain", function() { return faTrain; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTram", function() { return faTram; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTransgender", function() { return faTransgender; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTransgenderAlt", function() { return faTransgenderAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTrash", function() { return faTrash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTrashAlt", function() { return faTrashAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTrashRestore", function() { return faTrashRestore; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTrashRestoreAlt", function() { return faTrashRestoreAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTree", function() { return faTree; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTrophy", function() { return faTrophy; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTruck", function() { return faTruck; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTruckLoading", function() { return faTruckLoading; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTruckMonster", function() { return faTruckMonster; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTruckMoving", function() { return faTruckMoving; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTruckPickup", function() { return faTruckPickup; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTshirt", function() { return faTshirt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTty", function() { return faTty; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faTv", function() { return faTv; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUmbrella", function() { return faUmbrella; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUmbrellaBeach", function() { return faUmbrellaBeach; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUnderline", function() { return faUnderline; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUndo", function() { return faUndo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUndoAlt", function() { return faUndoAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUniversalAccess", function() { return faUniversalAccess; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUniversity", function() { return faUniversity; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUnlink", function() { return faUnlink; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUnlock", function() { return faUnlock; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUnlockAlt", function() { return faUnlockAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUpload", function() { return faUpload; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUser", function() { return faUser; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserAlt", function() { return faUserAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserAltSlash", function() { return faUserAltSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserAstronaut", function() { return faUserAstronaut; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserCheck", function() { return faUserCheck; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserCircle", function() { return faUserCircle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserClock", function() { return faUserClock; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserCog", function() { return faUserCog; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserEdit", function() { return faUserEdit; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserFriends", function() { return faUserFriends; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserGraduate", function() { return faUserGraduate; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserInjured", function() { return faUserInjured; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserLock", function() { return faUserLock; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserMd", function() { return faUserMd; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserMinus", function() { return faUserMinus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserNinja", function() { return faUserNinja; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserNurse", function() { return faUserNurse; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserPlus", function() { return faUserPlus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserSecret", function() { return faUserSecret; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserShield", function() { return faUserShield; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserSlash", function() { return faUserSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserTag", function() { return faUserTag; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserTie", function() { return faUserTie; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUserTimes", function() { return faUserTimes; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUsers", function() { return faUsers; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUsersCog", function() { return faUsersCog; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUtensilSpoon", function() { return faUtensilSpoon; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faUtensils", function() { return faUtensils; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVectorSquare", function() { return faVectorSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVenus", function() { return faVenus; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVenusDouble", function() { return faVenusDouble; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVenusMars", function() { return faVenusMars; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVial", function() { return faVial; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVials", function() { return faVials; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVideo", function() { return faVideo; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVideoSlash", function() { return faVideoSlash; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVihara", function() { return faVihara; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVoicemail", function() { return faVoicemail; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVolleyballBall", function() { return faVolleyballBall; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVolumeDown", function() { return faVolumeDown; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVolumeMute", function() { return faVolumeMute; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVolumeOff", function() { return faVolumeOff; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVolumeUp", function() { return faVolumeUp; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVoteYea", function() { return faVoteYea; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faVrCardboard", function() { return faVrCardboard; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWalking", function() { return faWalking; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWallet", function() { return faWallet; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWarehouse", function() { return faWarehouse; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWater", function() { return faWater; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWaveSquare", function() { return faWaveSquare; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWeight", function() { return faWeight; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWeightHanging", function() { return faWeightHanging; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWheelchair", function() { return faWheelchair; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWifi", function() { return faWifi; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWind", function() { return faWind; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWindowClose", function() { return faWindowClose; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWindowMaximize", function() { return faWindowMaximize; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWindowMinimize", function() { return faWindowMinimize; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWindowRestore", function() { return faWindowRestore; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWineBottle", function() { return faWineBottle; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWineGlass", function() { return faWineGlass; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWineGlassAlt", function() { return faWineGlassAlt; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWonSign", function() { return faWonSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faWrench", function() { return faWrench; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faXRay", function() { return faXRay; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faYenSign", function() { return faYenSign; });
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "faYinYang", function() { return faYinYang; });
|
||
var prefix = "fas";
|
||
var faAd = {
|
||
prefix: 'fas',
|
||
iconName: 'ad',
|
||
icon: [512, 512, [], "f641", "M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"]
|
||
};
|
||
var faAddressBook = {
|
||
prefix: 'fas',
|
||
iconName: 'address-book',
|
||
icon: [448, 512, [], "f2b9", "M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]
|
||
};
|
||
var faAddressCard = {
|
||
prefix: 'fas',
|
||
iconName: 'address-card',
|
||
icon: [576, 512, [], "f2bb", "M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"]
|
||
};
|
||
var faAdjust = {
|
||
prefix: 'fas',
|
||
iconName: 'adjust',
|
||
icon: [512, 512, [], "f042", "M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"]
|
||
};
|
||
var faAirFreshener = {
|
||
prefix: 'fas',
|
||
iconName: 'air-freshener',
|
||
icon: [384, 512, [], "f5d0", "M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z"]
|
||
};
|
||
var faAlignCenter = {
|
||
prefix: 'fas',
|
||
iconName: 'align-center',
|
||
icon: [448, 512, [], "f037", "M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z"]
|
||
};
|
||
var faAlignJustify = {
|
||
prefix: 'fas',
|
||
iconName: 'align-justify',
|
||
icon: [448, 512, [], "f039", "M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faAlignLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'align-left',
|
||
icon: [448, 512, [], "f036", "M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faAlignRight = {
|
||
prefix: 'fas',
|
||
iconName: 'align-right',
|
||
icon: [448, 512, [], "f038", "M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z"]
|
||
};
|
||
var faAllergies = {
|
||
prefix: 'fas',
|
||
iconName: 'allergies',
|
||
icon: [448, 512, [], "f461", "M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]
|
||
};
|
||
var faAmbulance = {
|
||
prefix: 'fas',
|
||
iconName: 'ambulance',
|
||
icon: [640, 512, [], "f0f9", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]
|
||
};
|
||
var faAmericanSignLanguageInterpreting = {
|
||
prefix: 'fas',
|
||
iconName: 'american-sign-language-interpreting',
|
||
icon: [640, 512, [], "f2a3", "M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"]
|
||
};
|
||
var faAnchor = {
|
||
prefix: 'fas',
|
||
iconName: 'anchor',
|
||
icon: [576, 512, [], "f13d", "M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"]
|
||
};
|
||
var faAngleDoubleDown = {
|
||
prefix: 'fas',
|
||
iconName: 'angle-double-down',
|
||
icon: [320, 512, [], "f103", "M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"]
|
||
};
|
||
var faAngleDoubleLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'angle-double-left',
|
||
icon: [448, 512, [], "f100", "M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"]
|
||
};
|
||
var faAngleDoubleRight = {
|
||
prefix: 'fas',
|
||
iconName: 'angle-double-right',
|
||
icon: [448, 512, [], "f101", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"]
|
||
};
|
||
var faAngleDoubleUp = {
|
||
prefix: 'fas',
|
||
iconName: 'angle-double-up',
|
||
icon: [320, 512, [], "f102", "M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"]
|
||
};
|
||
var faAngleDown = {
|
||
prefix: 'fas',
|
||
iconName: 'angle-down',
|
||
icon: [320, 512, [], "f107", "M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"]
|
||
};
|
||
var faAngleLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'angle-left',
|
||
icon: [256, 512, [], "f104", "M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"]
|
||
};
|
||
var faAngleRight = {
|
||
prefix: 'fas',
|
||
iconName: 'angle-right',
|
||
icon: [256, 512, [], "f105", "M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"]
|
||
};
|
||
var faAngleUp = {
|
||
prefix: 'fas',
|
||
iconName: 'angle-up',
|
||
icon: [320, 512, [], "f106", "M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"]
|
||
};
|
||
var faAngry = {
|
||
prefix: 'fas',
|
||
iconName: 'angry',
|
||
icon: [496, 512, [], "f556", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"]
|
||
};
|
||
var faAnkh = {
|
||
prefix: 'fas',
|
||
iconName: 'ankh',
|
||
icon: [320, 512, [], "f644", "M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"]
|
||
};
|
||
var faAppleAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'apple-alt',
|
||
icon: [448, 512, [], "f5d1", "M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"]
|
||
};
|
||
var faArchive = {
|
||
prefix: 'fas',
|
||
iconName: 'archive',
|
||
icon: [512, 512, [], "f187", "M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"]
|
||
};
|
||
var faArchway = {
|
||
prefix: 'fas',
|
||
iconName: 'archway',
|
||
icon: [576, 512, [], "f557", "M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faArrowAltCircleDown = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-alt-circle-down',
|
||
icon: [512, 512, [], "f358", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"]
|
||
};
|
||
var faArrowAltCircleLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-alt-circle-left',
|
||
icon: [512, 512, [], "f359", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"]
|
||
};
|
||
var faArrowAltCircleRight = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-alt-circle-right',
|
||
icon: [512, 512, [], "f35a", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"]
|
||
};
|
||
var faArrowAltCircleUp = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-alt-circle-up',
|
||
icon: [512, 512, [], "f35b", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"]
|
||
};
|
||
var faArrowCircleDown = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-circle-down',
|
||
icon: [512, 512, [], "f0ab", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"]
|
||
};
|
||
var faArrowCircleLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-circle-left',
|
||
icon: [512, 512, [], "f0a8", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"]
|
||
};
|
||
var faArrowCircleRight = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-circle-right',
|
||
icon: [512, 512, [], "f0a9", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"]
|
||
};
|
||
var faArrowCircleUp = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-circle-up',
|
||
icon: [512, 512, [], "f0aa", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"]
|
||
};
|
||
var faArrowDown = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-down',
|
||
icon: [448, 512, [], "f063", "M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"]
|
||
};
|
||
var faArrowLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-left',
|
||
icon: [448, 512, [], "f060", "M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"]
|
||
};
|
||
var faArrowRight = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-right',
|
||
icon: [448, 512, [], "f061", "M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"]
|
||
};
|
||
var faArrowUp = {
|
||
prefix: 'fas',
|
||
iconName: 'arrow-up',
|
||
icon: [448, 512, [], "f062", "M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"]
|
||
};
|
||
var faArrowsAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'arrows-alt',
|
||
icon: [512, 512, [], "f0b2", "M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"]
|
||
};
|
||
var faArrowsAltH = {
|
||
prefix: 'fas',
|
||
iconName: 'arrows-alt-h',
|
||
icon: [512, 512, [], "f337", "M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"]
|
||
};
|
||
var faArrowsAltV = {
|
||
prefix: 'fas',
|
||
iconName: 'arrows-alt-v',
|
||
icon: [256, 512, [], "f338", "M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"]
|
||
};
|
||
var faAssistiveListeningSystems = {
|
||
prefix: 'fas',
|
||
iconName: 'assistive-listening-systems',
|
||
icon: [512, 512, [], "f2a2", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"]
|
||
};
|
||
var faAsterisk = {
|
||
prefix: 'fas',
|
||
iconName: 'asterisk',
|
||
icon: [512, 512, [], "f069", "M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"]
|
||
};
|
||
var faAt = {
|
||
prefix: 'fas',
|
||
iconName: 'at',
|
||
icon: [512, 512, [], "f1fa", "M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"]
|
||
};
|
||
var faAtlas = {
|
||
prefix: 'fas',
|
||
iconName: 'atlas',
|
||
icon: [448, 512, [], "f558", "M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"]
|
||
};
|
||
var faAtom = {
|
||
prefix: 'fas',
|
||
iconName: 'atom',
|
||
icon: [448, 512, [], "f5d2", "M413.03 256c40.13-54.89 41.51-98.62 25.14-128-10.91-19.52-40.54-50.73-116.33-41.88C300.36 34.89 267.64 0 224 0s-76.36 34.89-97.84 86.12C50.43 77.34 20.73 108.48 9.83 128c-16.38 29.4-15 73.09 25.14 128-40.13 54.89-41.51 98.62-25.14 128 29.21 52.34 101.68 43.58 116.33 41.88C147.63 477.1 180.36 512 224 512s76.37-34.9 97.84-86.12c14.64 1.7 87.11 10.46 116.33-41.88 16.38-29.4 15-73.09-25.14-128zM63.38 352c-4.03-7.21-.19-24.8 14.95-48.29 6.96 6.53 14.2 12.89 21.87 19.18 1.71 13.71 4 27.08 6.76 40.08-24.56.89-39.89-4.37-43.58-10.97zm36.82-162.88c-7.66 6.29-14.9 12.65-21.87 19.18-15.13-23.5-18.97-41.09-14.95-48.3 3.41-6.14 16.39-11.47 37.92-11.47 1.71 0 3.87.3 5.69.37a472.191 472.191 0 0 0-6.79 40.22zM224 64c9.47 0 22.2 13.52 33.86 37.26-11.19 3.7-22.44 8-33.86 12.86-11.42-4.86-22.67-9.16-33.86-12.86C201.8 77.52 214.53 64 224 64zm0 384c-9.47 0-22.2-13.52-33.86-37.26 11.19-3.7 22.44-8 33.86-12.86 11.42 4.86 22.67 9.16 33.86 12.86C246.2 434.48 233.47 448 224 448zm62.5-157.33c-26.7 19.08-46.14 29.33-62.5 37.48-16.35-8.14-35.8-18.41-62.5-37.48-1.99-27.79-1.99-41.54 0-69.33 26.67-19.05 46.13-29.32 62.5-37.48 16.39 8.17 35.86 18.44 62.5 37.48 1.98 27.78 1.99 41.53 0 69.33zM384.62 352c-3.67 6.62-19 11.82-43.58 10.95 2.76-13 5.05-26.37 6.76-40.06 7.66-6.29 14.9-12.65 21.87-19.18 15.13 23.49 18.97 41.08 14.95 48.29zm-14.95-143.71c-6.96-6.53-14.2-12.89-21.87-19.18a473.535 473.535 0 0 0-6.79-40.22c1.82-.07 3.97-.37 5.69-.37 21.52 0 34.51 5.34 37.92 11.47 4.02 7.22.18 24.81-14.95 48.3zM224 224c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]
|
||
};
|
||
var faAudioDescription = {
|
||
prefix: 'fas',
|
||
iconName: 'audio-description',
|
||
icon: [512, 512, [], "f29e", "M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"]
|
||
};
|
||
var faAward = {
|
||
prefix: 'fas',
|
||
iconName: 'award',
|
||
icon: [384, 512, [], "f559", "M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"]
|
||
};
|
||
var faBaby = {
|
||
prefix: 'fas',
|
||
iconName: 'baby',
|
||
icon: [384, 512, [], "f77c", "M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z"]
|
||
};
|
||
var faBabyCarriage = {
|
||
prefix: 'fas',
|
||
iconName: 'baby-carriage',
|
||
icon: [512, 512, [], "f77d", "M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z"]
|
||
};
|
||
var faBackspace = {
|
||
prefix: 'fas',
|
||
iconName: 'backspace',
|
||
icon: [640, 512, [], "f55a", "M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"]
|
||
};
|
||
var faBackward = {
|
||
prefix: 'fas',
|
||
iconName: 'backward',
|
||
icon: [512, 512, [], "f04a", "M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"]
|
||
};
|
||
var faBacon = {
|
||
prefix: 'fas',
|
||
iconName: 'bacon',
|
||
icon: [576, 512, [], "f7e5", "M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z"]
|
||
};
|
||
var faBalanceScale = {
|
||
prefix: 'fas',
|
||
iconName: 'balance-scale',
|
||
icon: [640, 512, [], "f24e", "M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faBalanceScaleLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'balance-scale-left',
|
||
icon: [640, 512, [], "f515", "M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z"]
|
||
};
|
||
var faBalanceScaleRight = {
|
||
prefix: 'fas',
|
||
iconName: 'balance-scale-right',
|
||
icon: [640, 512, [], "f516", "M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z"]
|
||
};
|
||
var faBan = {
|
||
prefix: 'fas',
|
||
iconName: 'ban',
|
||
icon: [512, 512, [], "f05e", "M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"]
|
||
};
|
||
var faBandAid = {
|
||
prefix: 'fas',
|
||
iconName: 'band-aid',
|
||
icon: [640, 512, [], "f462", "M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"]
|
||
};
|
||
var faBarcode = {
|
||
prefix: 'fas',
|
||
iconName: 'barcode',
|
||
icon: [512, 512, [], "f02a", "M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"]
|
||
};
|
||
var faBars = {
|
||
prefix: 'fas',
|
||
iconName: 'bars',
|
||
icon: [448, 512, [], "f0c9", "M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"]
|
||
};
|
||
var faBaseballBall = {
|
||
prefix: 'fas',
|
||
iconName: 'baseball-ball',
|
||
icon: [496, 512, [], "f433", "M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"]
|
||
};
|
||
var faBasketballBall = {
|
||
prefix: 'fas',
|
||
iconName: 'basketball-ball',
|
||
icon: [496, 512, [], "f434", "M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"]
|
||
};
|
||
var faBath = {
|
||
prefix: 'fas',
|
||
iconName: 'bath',
|
||
icon: [512, 512, [], "f2cd", "M488 256H80V112c0-17.645 14.355-32 32-32 11.351 0 21.332 5.945 27.015 14.88-16.492 25.207-14.687 59.576 6.838 83.035-4.176 4.713-4.021 11.916.491 16.428l11.314 11.314c4.686 4.686 12.284 4.686 16.971 0l95.03-95.029c4.686-4.686 4.686-12.284 0-16.971l-11.314-11.314c-4.512-4.512-11.715-4.666-16.428-.491-17.949-16.469-42.294-21.429-64.178-15.365C163.281 45.667 139.212 32 112 32c-44.112 0-80 35.888-80 80v144h-8c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h8v32c0 28.43 12.362 53.969 32 71.547V456c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-8h256v8c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-32.453c19.638-17.578 32-43.117 32-71.547v-32h8c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"]
|
||
};
|
||
var faBatteryEmpty = {
|
||
prefix: 'fas',
|
||
iconName: 'battery-empty',
|
||
icon: [640, 512, [], "f244", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"]
|
||
};
|
||
var faBatteryFull = {
|
||
prefix: 'fas',
|
||
iconName: 'battery-full',
|
||
icon: [640, 512, [], "f240", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"]
|
||
};
|
||
var faBatteryHalf = {
|
||
prefix: 'fas',
|
||
iconName: 'battery-half',
|
||
icon: [640, 512, [], "f242", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"]
|
||
};
|
||
var faBatteryQuarter = {
|
||
prefix: 'fas',
|
||
iconName: 'battery-quarter',
|
||
icon: [640, 512, [], "f243", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"]
|
||
};
|
||
var faBatteryThreeQuarters = {
|
||
prefix: 'fas',
|
||
iconName: 'battery-three-quarters',
|
||
icon: [640, 512, [], "f241", "M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"]
|
||
};
|
||
var faBed = {
|
||
prefix: 'fas',
|
||
iconName: 'bed',
|
||
icon: [640, 512, [], "f236", "M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"]
|
||
};
|
||
var faBeer = {
|
||
prefix: 'fas',
|
||
iconName: 'beer',
|
||
icon: [448, 512, [], "f0fc", "M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"]
|
||
};
|
||
var faBell = {
|
||
prefix: 'fas',
|
||
iconName: 'bell',
|
||
icon: [448, 512, [], "f0f3", "M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"]
|
||
};
|
||
var faBellSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'bell-slash',
|
||
icon: [640, 512, [], "f1f6", "M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"]
|
||
};
|
||
var faBezierCurve = {
|
||
prefix: 'fas',
|
||
iconName: 'bezier-curve',
|
||
icon: [640, 512, [], "f55b", "M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faBible = {
|
||
prefix: 'fas',
|
||
iconName: 'bible',
|
||
icon: [448, 512, [], "f647", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"]
|
||
};
|
||
var faBicycle = {
|
||
prefix: 'fas',
|
||
iconName: 'bicycle',
|
||
icon: [640, 512, [], "f206", "M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"]
|
||
};
|
||
var faBiking = {
|
||
prefix: 'fas',
|
||
iconName: 'biking',
|
||
icon: [640, 512, [], "f84a", "M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z"]
|
||
};
|
||
var faBinoculars = {
|
||
prefix: 'fas',
|
||
iconName: 'binoculars',
|
||
icon: [512, 512, [], "f1e5", "M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"]
|
||
};
|
||
var faBiohazard = {
|
||
prefix: 'fas',
|
||
iconName: 'biohazard',
|
||
icon: [576, 512, [], "f780", "M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]
|
||
};
|
||
var faBirthdayCake = {
|
||
prefix: 'fas',
|
||
iconName: 'birthday-cake',
|
||
icon: [448, 512, [], "f1fd", "M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"]
|
||
};
|
||
var faBlender = {
|
||
prefix: 'fas',
|
||
iconName: 'blender',
|
||
icon: [512, 512, [], "f517", "M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"]
|
||
};
|
||
var faBlenderPhone = {
|
||
prefix: 'fas',
|
||
iconName: 'blender-phone',
|
||
icon: [576, 512, [], "f6b6", "M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faBlind = {
|
||
prefix: 'fas',
|
||
iconName: 'blind',
|
||
icon: [384, 512, [], "f29d", "M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"]
|
||
};
|
||
var faBlog = {
|
||
prefix: 'fas',
|
||
iconName: 'blog',
|
||
icon: [512, 512, [], "f781", "M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z"]
|
||
};
|
||
var faBold = {
|
||
prefix: 'fas',
|
||
iconName: 'bold',
|
||
icon: [384, 512, [], "f032", "M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z"]
|
||
};
|
||
var faBolt = {
|
||
prefix: 'fas',
|
||
iconName: 'bolt',
|
||
icon: [320, 512, [], "f0e7", "M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z"]
|
||
};
|
||
var faBomb = {
|
||
prefix: 'fas',
|
||
iconName: 'bomb',
|
||
icon: [512, 512, [], "f1e2", "M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"]
|
||
};
|
||
var faBone = {
|
||
prefix: 'fas',
|
||
iconName: 'bone',
|
||
icon: [640, 512, [], "f5d7", "M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"]
|
||
};
|
||
var faBong = {
|
||
prefix: 'fas',
|
||
iconName: 'bong',
|
||
icon: [448, 512, [], "f55c", "M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"]
|
||
};
|
||
var faBook = {
|
||
prefix: 'fas',
|
||
iconName: 'book',
|
||
icon: [448, 512, [], "f02d", "M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"]
|
||
};
|
||
var faBookDead = {
|
||
prefix: 'fas',
|
||
iconName: 'book-dead',
|
||
icon: [448, 512, [], "f6b7", "M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z"]
|
||
};
|
||
var faBookMedical = {
|
||
prefix: 'fas',
|
||
iconName: 'book-medical',
|
||
icon: [448, 512, [], "f7e6", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z"]
|
||
};
|
||
var faBookOpen = {
|
||
prefix: 'fas',
|
||
iconName: 'book-open',
|
||
icon: [576, 512, [], "f518", "M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"]
|
||
};
|
||
var faBookReader = {
|
||
prefix: 'fas',
|
||
iconName: 'book-reader',
|
||
icon: [512, 512, [], "f5da", "M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"]
|
||
};
|
||
var faBookmark = {
|
||
prefix: 'fas',
|
||
iconName: 'bookmark',
|
||
icon: [384, 512, [], "f02e", "M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"]
|
||
};
|
||
var faBorderAll = {
|
||
prefix: 'fas',
|
||
iconName: 'border-all',
|
||
icon: [448, 512, [], "f84c", "M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z"]
|
||
};
|
||
var faBorderNone = {
|
||
prefix: 'fas',
|
||
iconName: 'border-none',
|
||
icon: [448, 512, [], "f850", "M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faBorderStyle = {
|
||
prefix: 'fas',
|
||
iconName: 'border-style',
|
||
icon: [448, 512, [], "f853", "M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faBowlingBall = {
|
||
prefix: 'fas',
|
||
iconName: 'bowling-ball',
|
||
icon: [496, 512, [], "f436", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faBox = {
|
||
prefix: 'fas',
|
||
iconName: 'box',
|
||
icon: [512, 512, [], "f466", "M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"]
|
||
};
|
||
var faBoxOpen = {
|
||
prefix: 'fas',
|
||
iconName: 'box-open',
|
||
icon: [640, 512, [], "f49e", "M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z"]
|
||
};
|
||
var faBoxes = {
|
||
prefix: 'fas',
|
||
iconName: 'boxes',
|
||
icon: [576, 512, [], "f468", "M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"]
|
||
};
|
||
var faBraille = {
|
||
prefix: 'fas',
|
||
iconName: 'braille',
|
||
icon: [640, 512, [], "f2a1", "M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"]
|
||
};
|
||
var faBrain = {
|
||
prefix: 'fas',
|
||
iconName: 'brain',
|
||
icon: [576, 512, [], "f5dc", "M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z"]
|
||
};
|
||
var faBreadSlice = {
|
||
prefix: 'fas',
|
||
iconName: 'bread-slice',
|
||
icon: [576, 512, [], "f7ec", "M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z"]
|
||
};
|
||
var faBriefcase = {
|
||
prefix: 'fas',
|
||
iconName: 'briefcase',
|
||
icon: [512, 512, [], "f0b1", "M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"]
|
||
};
|
||
var faBriefcaseMedical = {
|
||
prefix: 'fas',
|
||
iconName: 'briefcase-medical',
|
||
icon: [512, 512, [], "f469", "M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"]
|
||
};
|
||
var faBroadcastTower = {
|
||
prefix: 'fas',
|
||
iconName: 'broadcast-tower',
|
||
icon: [640, 512, [], "f519", "M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"]
|
||
};
|
||
var faBroom = {
|
||
prefix: 'fas',
|
||
iconName: 'broom',
|
||
icon: [640, 512, [], "f51a", "M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"]
|
||
};
|
||
var faBrush = {
|
||
prefix: 'fas',
|
||
iconName: 'brush',
|
||
icon: [384, 512, [], "f55d", "M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"]
|
||
};
|
||
var faBug = {
|
||
prefix: 'fas',
|
||
iconName: 'bug',
|
||
icon: [512, 512, [], "f188", "M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"]
|
||
};
|
||
var faBuilding = {
|
||
prefix: 'fas',
|
||
iconName: 'building',
|
||
icon: [448, 512, [], "f1ad", "M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"]
|
||
};
|
||
var faBullhorn = {
|
||
prefix: 'fas',
|
||
iconName: 'bullhorn',
|
||
icon: [576, 512, [], "f0a1", "M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"]
|
||
};
|
||
var faBullseye = {
|
||
prefix: 'fas',
|
||
iconName: 'bullseye',
|
||
icon: [496, 512, [], "f140", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"]
|
||
};
|
||
var faBurn = {
|
||
prefix: 'fas',
|
||
iconName: 'burn',
|
||
icon: [384, 512, [], "f46a", "M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"]
|
||
};
|
||
var faBus = {
|
||
prefix: 'fas',
|
||
iconName: 'bus',
|
||
icon: [512, 512, [], "f207", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faBusAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'bus-alt',
|
||
icon: [512, 512, [], "f55e", "M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faBusinessTime = {
|
||
prefix: 'fas',
|
||
iconName: 'business-time',
|
||
icon: [640, 512, [], "f64a", "M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"]
|
||
};
|
||
var faCalculator = {
|
||
prefix: 'fas',
|
||
iconName: 'calculator',
|
||
icon: [448, 512, [], "f1ec", "M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"]
|
||
};
|
||
var faCalendar = {
|
||
prefix: 'fas',
|
||
iconName: 'calendar',
|
||
icon: [448, 512, [], "f133", "M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"]
|
||
};
|
||
var faCalendarAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'calendar-alt',
|
||
icon: [448, 512, [], "f073", "M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faCalendarCheck = {
|
||
prefix: 'fas',
|
||
iconName: 'calendar-check',
|
||
icon: [448, 512, [], "f274", "M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"]
|
||
};
|
||
var faCalendarDay = {
|
||
prefix: 'fas',
|
||
iconName: 'calendar-day',
|
||
icon: [448, 512, [], "f783", "M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faCalendarMinus = {
|
||
prefix: 'fas',
|
||
iconName: 'calendar-minus',
|
||
icon: [448, 512, [], "f272", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"]
|
||
};
|
||
var faCalendarPlus = {
|
||
prefix: 'fas',
|
||
iconName: 'calendar-plus',
|
||
icon: [448, 512, [], "f271", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"]
|
||
};
|
||
var faCalendarTimes = {
|
||
prefix: 'fas',
|
||
iconName: 'calendar-times',
|
||
icon: [448, 512, [], "f273", "M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"]
|
||
};
|
||
var faCalendarWeek = {
|
||
prefix: 'fas',
|
||
iconName: 'calendar-week',
|
||
icon: [448, 512, [], "f784", "M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faCamera = {
|
||
prefix: 'fas',
|
||
iconName: 'camera',
|
||
icon: [512, 512, [], "f030", "M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"]
|
||
};
|
||
var faCameraRetro = {
|
||
prefix: 'fas',
|
||
iconName: 'camera-retro',
|
||
icon: [512, 512, [], "f083", "M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"]
|
||
};
|
||
var faCampground = {
|
||
prefix: 'fas',
|
||
iconName: 'campground',
|
||
icon: [640, 512, [], "f6bb", "M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"]
|
||
};
|
||
var faCandyCane = {
|
||
prefix: 'fas',
|
||
iconName: 'candy-cane',
|
||
icon: [512, 512, [], "f786", "M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z"]
|
||
};
|
||
var faCannabis = {
|
||
prefix: 'fas',
|
||
iconName: 'cannabis',
|
||
icon: [512, 512, [], "f55f", "M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"]
|
||
};
|
||
var faCapsules = {
|
||
prefix: 'fas',
|
||
iconName: 'capsules',
|
||
icon: [576, 512, [], "f46b", "M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"]
|
||
};
|
||
var faCar = {
|
||
prefix: 'fas',
|
||
iconName: 'car',
|
||
icon: [512, 512, [], "f1b9", "M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"]
|
||
};
|
||
var faCarAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'car-alt',
|
||
icon: [480, 512, [], "f5de", "M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"]
|
||
};
|
||
var faCarBattery = {
|
||
prefix: 'fas',
|
||
iconName: 'car-battery',
|
||
icon: [512, 512, [], "f5df", "M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"]
|
||
};
|
||
var faCarCrash = {
|
||
prefix: 'fas',
|
||
iconName: 'car-crash',
|
||
icon: [640, 512, [], "f5e1", "M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"]
|
||
};
|
||
var faCarSide = {
|
||
prefix: 'fas',
|
||
iconName: 'car-side',
|
||
icon: [640, 512, [], "f5e4", "M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"]
|
||
};
|
||
var faCaretDown = {
|
||
prefix: 'fas',
|
||
iconName: 'caret-down',
|
||
icon: [320, 512, [], "f0d7", "M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"]
|
||
};
|
||
var faCaretLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'caret-left',
|
||
icon: [192, 512, [], "f0d9", "M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"]
|
||
};
|
||
var faCaretRight = {
|
||
prefix: 'fas',
|
||
iconName: 'caret-right',
|
||
icon: [192, 512, [], "f0da", "M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"]
|
||
};
|
||
var faCaretSquareDown = {
|
||
prefix: 'fas',
|
||
iconName: 'caret-square-down',
|
||
icon: [448, 512, [], "f150", "M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"]
|
||
};
|
||
var faCaretSquareLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'caret-square-left',
|
||
icon: [448, 512, [], "f191", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"]
|
||
};
|
||
var faCaretSquareRight = {
|
||
prefix: 'fas',
|
||
iconName: 'caret-square-right',
|
||
icon: [448, 512, [], "f152", "M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"]
|
||
};
|
||
var faCaretSquareUp = {
|
||
prefix: 'fas',
|
||
iconName: 'caret-square-up',
|
||
icon: [448, 512, [], "f151", "M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"]
|
||
};
|
||
var faCaretUp = {
|
||
prefix: 'fas',
|
||
iconName: 'caret-up',
|
||
icon: [320, 512, [], "f0d8", "M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"]
|
||
};
|
||
var faCarrot = {
|
||
prefix: 'fas',
|
||
iconName: 'carrot',
|
||
icon: [512, 512, [], "f787", "M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z"]
|
||
};
|
||
var faCartArrowDown = {
|
||
prefix: 'fas',
|
||
iconName: 'cart-arrow-down',
|
||
icon: [576, 512, [], "f218", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"]
|
||
};
|
||
var faCartPlus = {
|
||
prefix: 'fas',
|
||
iconName: 'cart-plus',
|
||
icon: [576, 512, [], "f217", "M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"]
|
||
};
|
||
var faCashRegister = {
|
||
prefix: 'fas',
|
||
iconName: 'cash-register',
|
||
icon: [512, 512, [], "f788", "M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z"]
|
||
};
|
||
var faCat = {
|
||
prefix: 'fas',
|
||
iconName: 'cat',
|
||
icon: [512, 512, [], "f6be", "M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]
|
||
};
|
||
var faCertificate = {
|
||
prefix: 'fas',
|
||
iconName: 'certificate',
|
||
icon: [512, 512, [], "f0a3", "M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"]
|
||
};
|
||
var faChair = {
|
||
prefix: 'fas',
|
||
iconName: 'chair',
|
||
icon: [448, 512, [], "f6c0", "M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z"]
|
||
};
|
||
var faChalkboard = {
|
||
prefix: 'fas',
|
||
iconName: 'chalkboard',
|
||
icon: [640, 512, [], "f51b", "M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faChalkboardTeacher = {
|
||
prefix: 'fas',
|
||
iconName: 'chalkboard-teacher',
|
||
icon: [640, 512, [], "f51c", "M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"]
|
||
};
|
||
var faChargingStation = {
|
||
prefix: 'fas',
|
||
iconName: 'charging-station',
|
||
icon: [576, 512, [], "f5e7", "M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"]
|
||
};
|
||
var faChartArea = {
|
||
prefix: 'fas',
|
||
iconName: 'chart-area',
|
||
icon: [512, 512, [], "f1fe", "M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"]
|
||
};
|
||
var faChartBar = {
|
||
prefix: 'fas',
|
||
iconName: 'chart-bar',
|
||
icon: [512, 512, [], "f080", "M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faChartLine = {
|
||
prefix: 'fas',
|
||
iconName: 'chart-line',
|
||
icon: [512, 512, [], "f201", "M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"]
|
||
};
|
||
var faChartPie = {
|
||
prefix: 'fas',
|
||
iconName: 'chart-pie',
|
||
icon: [544, 512, [], "f200", "M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"]
|
||
};
|
||
var faCheck = {
|
||
prefix: 'fas',
|
||
iconName: 'check',
|
||
icon: [512, 512, [], "f00c", "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"]
|
||
};
|
||
var faCheckCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'check-circle',
|
||
icon: [512, 512, [], "f058", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"]
|
||
};
|
||
var faCheckDouble = {
|
||
prefix: 'fas',
|
||
iconName: 'check-double',
|
||
icon: [512, 512, [], "f560", "M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z"]
|
||
};
|
||
var faCheckSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'check-square',
|
||
icon: [448, 512, [], "f14a", "M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"]
|
||
};
|
||
var faCheese = {
|
||
prefix: 'fas',
|
||
iconName: 'cheese',
|
||
icon: [512, 512, [], "f7ef", "M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z"]
|
||
};
|
||
var faChess = {
|
||
prefix: 'fas',
|
||
iconName: 'chess',
|
||
icon: [512, 512, [], "f439", "M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z"]
|
||
};
|
||
var faChessBishop = {
|
||
prefix: 'fas',
|
||
iconName: 'chess-bishop',
|
||
icon: [320, 512, [], "f43a", "M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faChessBoard = {
|
||
prefix: 'fas',
|
||
iconName: 'chess-board',
|
||
icon: [512, 512, [], "f43c", "M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z"]
|
||
};
|
||
var faChessKing = {
|
||
prefix: 'fas',
|
||
iconName: 'chess-king',
|
||
icon: [448, 512, [], "f43f", "M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z"]
|
||
};
|
||
var faChessKnight = {
|
||
prefix: 'fas',
|
||
iconName: 'chess-knight',
|
||
icon: [384, 512, [], "f441", "M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faChessPawn = {
|
||
prefix: 'fas',
|
||
iconName: 'chess-pawn',
|
||
icon: [320, 512, [], "f443", "M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faChessQueen = {
|
||
prefix: 'fas',
|
||
iconName: 'chess-queen',
|
||
icon: [512, 512, [], "f445", "M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z"]
|
||
};
|
||
var faChessRook = {
|
||
prefix: 'fas',
|
||
iconName: 'chess-rook',
|
||
icon: [384, 512, [], "f447", "M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faChevronCircleDown = {
|
||
prefix: 'fas',
|
||
iconName: 'chevron-circle-down',
|
||
icon: [512, 512, [], "f13a", "M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"]
|
||
};
|
||
var faChevronCircleLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'chevron-circle-left',
|
||
icon: [512, 512, [], "f137", "M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"]
|
||
};
|
||
var faChevronCircleRight = {
|
||
prefix: 'fas',
|
||
iconName: 'chevron-circle-right',
|
||
icon: [512, 512, [], "f138", "M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"]
|
||
};
|
||
var faChevronCircleUp = {
|
||
prefix: 'fas',
|
||
iconName: 'chevron-circle-up',
|
||
icon: [512, 512, [], "f139", "M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"]
|
||
};
|
||
var faChevronDown = {
|
||
prefix: 'fas',
|
||
iconName: 'chevron-down',
|
||
icon: [448, 512, [], "f078", "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"]
|
||
};
|
||
var faChevronLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'chevron-left',
|
||
icon: [320, 512, [], "f053", "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"]
|
||
};
|
||
var faChevronRight = {
|
||
prefix: 'fas',
|
||
iconName: 'chevron-right',
|
||
icon: [320, 512, [], "f054", "M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"]
|
||
};
|
||
var faChevronUp = {
|
||
prefix: 'fas',
|
||
iconName: 'chevron-up',
|
||
icon: [448, 512, [], "f077", "M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"]
|
||
};
|
||
var faChild = {
|
||
prefix: 'fas',
|
||
iconName: 'child',
|
||
icon: [384, 512, [], "f1ae", "M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"]
|
||
};
|
||
var faChurch = {
|
||
prefix: 'fas',
|
||
iconName: 'church',
|
||
icon: [640, 512, [], "f51d", "M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"]
|
||
};
|
||
var faCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'circle',
|
||
icon: [512, 512, [], "f111", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"]
|
||
};
|
||
var faCircleNotch = {
|
||
prefix: 'fas',
|
||
iconName: 'circle-notch',
|
||
icon: [512, 512, [], "f1ce", "M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"]
|
||
};
|
||
var faCity = {
|
||
prefix: 'fas',
|
||
iconName: 'city',
|
||
icon: [640, 512, [], "f64f", "M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"]
|
||
};
|
||
var faClinicMedical = {
|
||
prefix: 'fas',
|
||
iconName: 'clinic-medical',
|
||
icon: [576, 512, [], "f7f2", "M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z"]
|
||
};
|
||
var faClipboard = {
|
||
prefix: 'fas',
|
||
iconName: 'clipboard',
|
||
icon: [384, 512, [], "f328", "M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"]
|
||
};
|
||
var faClipboardCheck = {
|
||
prefix: 'fas',
|
||
iconName: 'clipboard-check',
|
||
icon: [384, 512, [], "f46c", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"]
|
||
};
|
||
var faClipboardList = {
|
||
prefix: 'fas',
|
||
iconName: 'clipboard-list',
|
||
icon: [384, 512, [], "f46d", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"]
|
||
};
|
||
var faClock = {
|
||
prefix: 'fas',
|
||
iconName: 'clock',
|
||
icon: [512, 512, [], "f017", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm57.1 350.1L224.9 294c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v137.7l63.5 46.2c5.4 3.9 6.5 11.4 2.6 16.8l-28.2 38.8c-3.9 5.3-11.4 6.5-16.8 2.6z"]
|
||
};
|
||
var faClone = {
|
||
prefix: 'fas',
|
||
iconName: 'clone',
|
||
icon: [512, 512, [], "f24d", "M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"]
|
||
};
|
||
var faClosedCaptioning = {
|
||
prefix: 'fas',
|
||
iconName: 'closed-captioning',
|
||
icon: [512, 512, [], "f20a", "M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"]
|
||
};
|
||
var faCloud = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud',
|
||
icon: [640, 512, [], "f0c2", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"]
|
||
};
|
||
var faCloudDownloadAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud-download-alt',
|
||
icon: [640, 512, [], "f381", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"]
|
||
};
|
||
var faCloudMeatball = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud-meatball',
|
||
icon: [512, 512, [], "f73b", "M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z"]
|
||
};
|
||
var faCloudMoon = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud-moon',
|
||
icon: [576, 512, [], "f6c3", "M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z"]
|
||
};
|
||
var faCloudMoonRain = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud-moon-rain',
|
||
icon: [576, 512, [], "f73c", "M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"]
|
||
};
|
||
var faCloudRain = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud-rain',
|
||
icon: [512, 512, [], "f73d", "M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z"]
|
||
};
|
||
var faCloudShowersHeavy = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud-showers-heavy',
|
||
icon: [512, 512, [], "f740", "M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z"]
|
||
};
|
||
var faCloudSun = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud-sun',
|
||
icon: [640, 512, [], "f6c4", "M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z"]
|
||
};
|
||
var faCloudSunRain = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud-sun-rain',
|
||
icon: [576, 512, [], "f743", "M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"]
|
||
};
|
||
var faCloudUploadAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'cloud-upload-alt',
|
||
icon: [640, 512, [], "f382", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"]
|
||
};
|
||
var faCocktail = {
|
||
prefix: 'fas',
|
||
iconName: 'cocktail',
|
||
icon: [576, 512, [], "f561", "M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"]
|
||
};
|
||
var faCode = {
|
||
prefix: 'fas',
|
||
iconName: 'code',
|
||
icon: [640, 512, [], "f121", "M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"]
|
||
};
|
||
var faCodeBranch = {
|
||
prefix: 'fas',
|
||
iconName: 'code-branch',
|
||
icon: [384, 512, [], "f126", "M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"]
|
||
};
|
||
var faCoffee = {
|
||
prefix: 'fas',
|
||
iconName: 'coffee',
|
||
icon: [640, 512, [], "f0f4", "M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"]
|
||
};
|
||
var faCog = {
|
||
prefix: 'fas',
|
||
iconName: 'cog',
|
||
icon: [512, 512, [], "f013", "M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]
|
||
};
|
||
var faCogs = {
|
||
prefix: 'fas',
|
||
iconName: 'cogs',
|
||
icon: [640, 512, [], "f085", "M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"]
|
||
};
|
||
var faCoins = {
|
||
prefix: 'fas',
|
||
iconName: 'coins',
|
||
icon: [512, 512, [], "f51e", "M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"]
|
||
};
|
||
var faColumns = {
|
||
prefix: 'fas',
|
||
iconName: 'columns',
|
||
icon: [512, 512, [], "f0db", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"]
|
||
};
|
||
var faComment = {
|
||
prefix: 'fas',
|
||
iconName: 'comment',
|
||
icon: [512, 512, [], "f075", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"]
|
||
};
|
||
var faCommentAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'comment-alt',
|
||
icon: [512, 512, [], "f27a", "M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"]
|
||
};
|
||
var faCommentDollar = {
|
||
prefix: 'fas',
|
||
iconName: 'comment-dollar',
|
||
icon: [512, 512, [], "f651", "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"]
|
||
};
|
||
var faCommentDots = {
|
||
prefix: 'fas',
|
||
iconName: 'comment-dots',
|
||
icon: [512, 512, [], "f4ad", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faCommentMedical = {
|
||
prefix: 'fas',
|
||
iconName: 'comment-medical',
|
||
icon: [512, 512, [], "f7f5", "M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z"]
|
||
};
|
||
var faCommentSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'comment-slash',
|
||
icon: [640, 512, [], "f4b3", "M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"]
|
||
};
|
||
var faComments = {
|
||
prefix: 'fas',
|
||
iconName: 'comments',
|
||
icon: [576, 512, [], "f086", "M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"]
|
||
};
|
||
var faCommentsDollar = {
|
||
prefix: 'fas',
|
||
iconName: 'comments-dollar',
|
||
icon: [576, 512, [], "f653", "M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"]
|
||
};
|
||
var faCompactDisc = {
|
||
prefix: 'fas',
|
||
iconName: 'compact-disc',
|
||
icon: [496, 512, [], "f51f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"]
|
||
};
|
||
var faCompass = {
|
||
prefix: 'fas',
|
||
iconName: 'compass',
|
||
icon: [496, 512, [], "f14e", "M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"]
|
||
};
|
||
var faCompress = {
|
||
prefix: 'fas',
|
||
iconName: 'compress',
|
||
icon: [448, 512, [], "f066", "M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"]
|
||
};
|
||
var faCompressArrowsAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'compress-arrows-alt',
|
||
icon: [512, 512, [], "f78c", "M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"]
|
||
};
|
||
var faConciergeBell = {
|
||
prefix: 'fas',
|
||
iconName: 'concierge-bell',
|
||
icon: [512, 512, [], "f562", "M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faCookie = {
|
||
prefix: 'fas',
|
||
iconName: 'cookie',
|
||
icon: [512, 512, [], "f563", "M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faCookieBite = {
|
||
prefix: 'fas',
|
||
iconName: 'cookie-bite',
|
||
icon: [512, 512, [], "f564", "M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faCopy = {
|
||
prefix: 'fas',
|
||
iconName: 'copy',
|
||
icon: [448, 512, [], "f0c5", "M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"]
|
||
};
|
||
var faCopyright = {
|
||
prefix: 'fas',
|
||
iconName: 'copyright',
|
||
icon: [512, 512, [], "f1f9", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"]
|
||
};
|
||
var faCouch = {
|
||
prefix: 'fas',
|
||
iconName: 'couch',
|
||
icon: [640, 512, [], "f4b8", "M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"]
|
||
};
|
||
var faCreditCard = {
|
||
prefix: 'fas',
|
||
iconName: 'credit-card',
|
||
icon: [576, 512, [], "f09d", "M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"]
|
||
};
|
||
var faCrop = {
|
||
prefix: 'fas',
|
||
iconName: 'crop',
|
||
icon: [512, 512, [], "f125", "M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]
|
||
};
|
||
var faCropAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'crop-alt',
|
||
icon: [512, 512, [], "f565", "M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"]
|
||
};
|
||
var faCross = {
|
||
prefix: 'fas',
|
||
iconName: 'cross',
|
||
icon: [384, 512, [], "f654", "M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faCrosshairs = {
|
||
prefix: 'fas',
|
||
iconName: 'crosshairs',
|
||
icon: [512, 512, [], "f05b", "M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"]
|
||
};
|
||
var faCrow = {
|
||
prefix: 'fas',
|
||
iconName: 'crow',
|
||
icon: [640, 512, [], "f520", "M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]
|
||
};
|
||
var faCrown = {
|
||
prefix: 'fas',
|
||
iconName: 'crown',
|
||
icon: [640, 512, [], "f521", "M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"]
|
||
};
|
||
var faCrutch = {
|
||
prefix: 'fas',
|
||
iconName: 'crutch',
|
||
icon: [512, 512, [], "f7f7", "M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z"]
|
||
};
|
||
var faCube = {
|
||
prefix: 'fas',
|
||
iconName: 'cube',
|
||
icon: [512, 512, [], "f1b2", "M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"]
|
||
};
|
||
var faCubes = {
|
||
prefix: 'fas',
|
||
iconName: 'cubes',
|
||
icon: [512, 512, [], "f1b3", "M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"]
|
||
};
|
||
var faCut = {
|
||
prefix: 'fas',
|
||
iconName: 'cut',
|
||
icon: [448, 512, [], "f0c4", "M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"]
|
||
};
|
||
var faDatabase = {
|
||
prefix: 'fas',
|
||
iconName: 'database',
|
||
icon: [448, 512, [], "f1c0", "M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"]
|
||
};
|
||
var faDeaf = {
|
||
prefix: 'fas',
|
||
iconName: 'deaf',
|
||
icon: [512, 512, [], "f2a4", "M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"]
|
||
};
|
||
var faDemocrat = {
|
||
prefix: 'fas',
|
||
iconName: 'democrat',
|
||
icon: [640, 512, [], "f747", "M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z"]
|
||
};
|
||
var faDesktop = {
|
||
prefix: 'fas',
|
||
iconName: 'desktop',
|
||
icon: [576, 512, [], "f108", "M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"]
|
||
};
|
||
var faDharmachakra = {
|
||
prefix: 'fas',
|
||
iconName: 'dharmachakra',
|
||
icon: [512, 512, [], "f655", "M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"]
|
||
};
|
||
var faDiagnoses = {
|
||
prefix: 'fas',
|
||
iconName: 'diagnoses',
|
||
icon: [640, 512, [], "f470", "M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]
|
||
};
|
||
var faDice = {
|
||
prefix: 'fas',
|
||
iconName: 'dice',
|
||
icon: [640, 512, [], "f522", "M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]
|
||
};
|
||
var faDiceD20 = {
|
||
prefix: 'fas',
|
||
iconName: 'dice-d20',
|
||
icon: [480, 512, [], "f6cf", "M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"]
|
||
};
|
||
var faDiceD6 = {
|
||
prefix: 'fas',
|
||
iconName: 'dice-d6',
|
||
icon: [448, 512, [], "f6d1", "M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"]
|
||
};
|
||
var faDiceFive = {
|
||
prefix: 'fas',
|
||
iconName: 'dice-five',
|
||
icon: [448, 512, [], "f523", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faDiceFour = {
|
||
prefix: 'fas',
|
||
iconName: 'dice-four',
|
||
icon: [448, 512, [], "f524", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faDiceOne = {
|
||
prefix: 'fas',
|
||
iconName: 'dice-one',
|
||
icon: [448, 512, [], "f525", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faDiceSix = {
|
||
prefix: 'fas',
|
||
iconName: 'dice-six',
|
||
icon: [448, 512, [], "f526", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faDiceThree = {
|
||
prefix: 'fas',
|
||
iconName: 'dice-three',
|
||
icon: [448, 512, [], "f527", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faDiceTwo = {
|
||
prefix: 'fas',
|
||
iconName: 'dice-two',
|
||
icon: [448, 512, [], "f528", "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faDigitalTachograph = {
|
||
prefix: 'fas',
|
||
iconName: 'digital-tachograph',
|
||
icon: [640, 512, [], "f566", "M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"]
|
||
};
|
||
var faDirections = {
|
||
prefix: 'fas',
|
||
iconName: 'directions',
|
||
icon: [512, 512, [], "f5eb", "M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"]
|
||
};
|
||
var faDivide = {
|
||
prefix: 'fas',
|
||
iconName: 'divide',
|
||
icon: [448, 512, [], "f529", "M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faDizzy = {
|
||
prefix: 'fas',
|
||
iconName: 'dizzy',
|
||
icon: [496, 512, [], "f567", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"]
|
||
};
|
||
var faDna = {
|
||
prefix: 'fas',
|
||
iconName: 'dna',
|
||
icon: [448, 512, [], "f471", "M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"]
|
||
};
|
||
var faDog = {
|
||
prefix: 'fas',
|
||
iconName: 'dog',
|
||
icon: [512, 512, [], "f6d3", "M496 96h-64l-7.16-14.31A32 32 0 0 0 396.22 64H342.6l-27.28-27.28C305.23 26.64 288 33.78 288 48.03v149.84l128 45.71V208h32c35.35 0 64-28.65 64-64v-32c0-8.84-7.16-16-16-16zm-112 48c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM96 224c-17.64 0-32-14.36-32-32 0-17.67-14.33-32-32-32S0 174.33 0 192c0 41.66 26.83 76.85 64 90.1V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V384h160v112c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V277.55L266.05 224H96z"]
|
||
};
|
||
var faDollarSign = {
|
||
prefix: 'fas',
|
||
iconName: 'dollar-sign',
|
||
icon: [288, 512, [], "f155", "M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"]
|
||
};
|
||
var faDolly = {
|
||
prefix: 'fas',
|
||
iconName: 'dolly',
|
||
icon: [576, 512, [], "f472", "M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]
|
||
};
|
||
var faDollyFlatbed = {
|
||
prefix: 'fas',
|
||
iconName: 'dolly-flatbed',
|
||
icon: [640, 512, [], "f474", "M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]
|
||
};
|
||
var faDonate = {
|
||
prefix: 'fas',
|
||
iconName: 'donate',
|
||
icon: [512, 512, [], "f4b9", "M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"]
|
||
};
|
||
var faDoorClosed = {
|
||
prefix: 'fas',
|
||
iconName: 'door-closed',
|
||
icon: [640, 512, [], "f52a", "M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"]
|
||
};
|
||
var faDoorOpen = {
|
||
prefix: 'fas',
|
||
iconName: 'door-open',
|
||
icon: [640, 512, [], "f52b", "M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"]
|
||
};
|
||
var faDotCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'dot-circle',
|
||
icon: [512, 512, [], "f192", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"]
|
||
};
|
||
var faDove = {
|
||
prefix: 'fas',
|
||
iconName: 'dove',
|
||
icon: [512, 512, [], "f4ba", "M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]
|
||
};
|
||
var faDownload = {
|
||
prefix: 'fas',
|
||
iconName: 'download',
|
||
icon: [512, 512, [], "f019", "M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]
|
||
};
|
||
var faDraftingCompass = {
|
||
prefix: 'fas',
|
||
iconName: 'drafting-compass',
|
||
icon: [512, 512, [], "f568", "M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"]
|
||
};
|
||
var faDragon = {
|
||
prefix: 'fas',
|
||
iconName: 'dragon',
|
||
icon: [640, 512, [], "f6d5", "M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"]
|
||
};
|
||
var faDrawPolygon = {
|
||
prefix: 'fas',
|
||
iconName: 'draw-polygon',
|
||
icon: [448, 512, [], "f5ee", "M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"]
|
||
};
|
||
var faDrum = {
|
||
prefix: 'fas',
|
||
iconName: 'drum',
|
||
icon: [512, 512, [], "f569", "M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z"]
|
||
};
|
||
var faDrumSteelpan = {
|
||
prefix: 'fas',
|
||
iconName: 'drum-steelpan',
|
||
icon: [576, 512, [], "f56a", "M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"]
|
||
};
|
||
var faDrumstickBite = {
|
||
prefix: 'fas',
|
||
iconName: 'drumstick-bite',
|
||
icon: [512, 512, [], "f6d7", "M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z"]
|
||
};
|
||
var faDumbbell = {
|
||
prefix: 'fas',
|
||
iconName: 'dumbbell',
|
||
icon: [640, 512, [], "f44b", "M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"]
|
||
};
|
||
var faDumpster = {
|
||
prefix: 'fas',
|
||
iconName: 'dumpster',
|
||
icon: [576, 512, [], "f793", "M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]
|
||
};
|
||
var faDumpsterFire = {
|
||
prefix: 'fas',
|
||
iconName: 'dumpster-fire',
|
||
icon: [640, 512, [], "f794", "M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z"]
|
||
};
|
||
var faDungeon = {
|
||
prefix: 'fas',
|
||
iconName: 'dungeon',
|
||
icon: [512, 512, [], "f6d9", "M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"]
|
||
};
|
||
var faEdit = {
|
||
prefix: 'fas',
|
||
iconName: 'edit',
|
||
icon: [576, 512, [], "f044", "M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"]
|
||
};
|
||
var faEgg = {
|
||
prefix: 'fas',
|
||
iconName: 'egg',
|
||
icon: [384, 512, [], "f7fb", "M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z"]
|
||
};
|
||
var faEject = {
|
||
prefix: 'fas',
|
||
iconName: 'eject',
|
||
icon: [448, 512, [], "f052", "M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"]
|
||
};
|
||
var faEllipsisH = {
|
||
prefix: 'fas',
|
||
iconName: 'ellipsis-h',
|
||
icon: [512, 512, [], "f141", "M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"]
|
||
};
|
||
var faEllipsisV = {
|
||
prefix: 'fas',
|
||
iconName: 'ellipsis-v',
|
||
icon: [192, 512, [], "f142", "M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"]
|
||
};
|
||
var faEnvelope = {
|
||
prefix: 'fas',
|
||
iconName: 'envelope',
|
||
icon: [512, 512, [], "f0e0", "M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"]
|
||
};
|
||
var faEnvelopeOpen = {
|
||
prefix: 'fas',
|
||
iconName: 'envelope-open',
|
||
icon: [512, 512, [], "f2b6", "M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"]
|
||
};
|
||
var faEnvelopeOpenText = {
|
||
prefix: 'fas',
|
||
iconName: 'envelope-open-text',
|
||
icon: [512, 512, [], "f658", "M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"]
|
||
};
|
||
var faEnvelopeSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'envelope-square',
|
||
icon: [448, 512, [], "f199", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"]
|
||
};
|
||
var faEquals = {
|
||
prefix: 'fas',
|
||
iconName: 'equals',
|
||
icon: [448, 512, [], "f52c", "M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faEraser = {
|
||
prefix: 'fas',
|
||
iconName: 'eraser',
|
||
icon: [512, 512, [], "f12d", "M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"]
|
||
};
|
||
var faEthernet = {
|
||
prefix: 'fas',
|
||
iconName: 'ethernet',
|
||
icon: [512, 512, [], "f796", "M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z"]
|
||
};
|
||
var faEuroSign = {
|
||
prefix: 'fas',
|
||
iconName: 'euro-sign',
|
||
icon: [320, 512, [], "f153", "M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"]
|
||
};
|
||
var faExchangeAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'exchange-alt',
|
||
icon: [512, 512, [], "f362", "M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"]
|
||
};
|
||
var faExclamation = {
|
||
prefix: 'fas',
|
||
iconName: 'exclamation',
|
||
icon: [192, 512, [], "f12a", "M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"]
|
||
};
|
||
var faExclamationCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'exclamation-circle',
|
||
icon: [512, 512, [], "f06a", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]
|
||
};
|
||
var faExclamationTriangle = {
|
||
prefix: 'fas',
|
||
iconName: 'exclamation-triangle',
|
||
icon: [576, 512, [], "f071", "M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]
|
||
};
|
||
var faExpand = {
|
||
prefix: 'fas',
|
||
iconName: 'expand',
|
||
icon: [448, 512, [], "f065", "M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"]
|
||
};
|
||
var faExpandArrowsAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'expand-arrows-alt',
|
||
icon: [448, 512, [], "f31e", "M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"]
|
||
};
|
||
var faExternalLinkAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'external-link-alt',
|
||
icon: [512, 512, [], "f35d", "M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z"]
|
||
};
|
||
var faExternalLinkSquareAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'external-link-square-alt',
|
||
icon: [448, 512, [], "f360", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"]
|
||
};
|
||
var faEye = {
|
||
prefix: 'fas',
|
||
iconName: 'eye',
|
||
icon: [576, 512, [], "f06e", "M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"]
|
||
};
|
||
var faEyeDropper = {
|
||
prefix: 'fas',
|
||
iconName: 'eye-dropper',
|
||
icon: [512, 512, [], "f1fb", "M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"]
|
||
};
|
||
var faEyeSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'eye-slash',
|
||
icon: [640, 512, [], "f070", "M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"]
|
||
};
|
||
var faFan = {
|
||
prefix: 'fas',
|
||
iconName: 'fan',
|
||
icon: [512, 512, [], "f863", "M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"]
|
||
};
|
||
var faFastBackward = {
|
||
prefix: 'fas',
|
||
iconName: 'fast-backward',
|
||
icon: [512, 512, [], "f049", "M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"]
|
||
};
|
||
var faFastForward = {
|
||
prefix: 'fas',
|
||
iconName: 'fast-forward',
|
||
icon: [512, 512, [], "f050", "M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"]
|
||
};
|
||
var faFax = {
|
||
prefix: 'fas',
|
||
iconName: 'fax',
|
||
icon: [512, 512, [], "f1ac", "M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z"]
|
||
};
|
||
var faFeather = {
|
||
prefix: 'fas',
|
||
iconName: 'feather',
|
||
icon: [512, 512, [], "f52d", "M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"]
|
||
};
|
||
var faFeatherAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'feather-alt',
|
||
icon: [512, 512, [], "f56b", "M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"]
|
||
};
|
||
var faFemale = {
|
||
prefix: 'fas',
|
||
iconName: 'female',
|
||
icon: [256, 512, [], "f182", "M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"]
|
||
};
|
||
var faFighterJet = {
|
||
prefix: 'fas',
|
||
iconName: 'fighter-jet',
|
||
icon: [640, 512, [], "f0fb", "M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"]
|
||
};
|
||
var faFile = {
|
||
prefix: 'fas',
|
||
iconName: 'file',
|
||
icon: [384, 512, [], "f15b", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]
|
||
};
|
||
var faFileAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'file-alt',
|
||
icon: [384, 512, [], "f15c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]
|
||
};
|
||
var faFileArchive = {
|
||
prefix: 'fas',
|
||
iconName: 'file-archive',
|
||
icon: [384, 512, [], "f1c6", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z"]
|
||
};
|
||
var faFileAudio = {
|
||
prefix: 'fas',
|
||
iconName: 'file-audio',
|
||
icon: [384, 512, [], "f1c7", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]
|
||
};
|
||
var faFileCode = {
|
||
prefix: 'fas',
|
||
iconName: 'file-code',
|
||
icon: [384, 512, [], "f1c9", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"]
|
||
};
|
||
var faFileContract = {
|
||
prefix: 'fas',
|
||
iconName: 'file-contract',
|
||
icon: [384, 512, [], "f56c", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]
|
||
};
|
||
var faFileCsv = {
|
||
prefix: 'fas',
|
||
iconName: 'file-csv',
|
||
icon: [384, 512, [], "f6dd", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]
|
||
};
|
||
var faFileDownload = {
|
||
prefix: 'fas',
|
||
iconName: 'file-download',
|
||
icon: [384, 512, [], "f56d", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]
|
||
};
|
||
var faFileExcel = {
|
||
prefix: 'fas',
|
||
iconName: 'file-excel',
|
||
icon: [384, 512, [], "f1c3", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]
|
||
};
|
||
var faFileExport = {
|
||
prefix: 'fas',
|
||
iconName: 'file-export',
|
||
icon: [576, 512, [], "f56e", "M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"]
|
||
};
|
||
var faFileImage = {
|
||
prefix: 'fas',
|
||
iconName: 'file-image',
|
||
icon: [384, 512, [], "f1c5", "M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"]
|
||
};
|
||
var faFileImport = {
|
||
prefix: 'fas',
|
||
iconName: 'file-import',
|
||
icon: [512, 512, [], "f56f", "M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z"]
|
||
};
|
||
var faFileInvoice = {
|
||
prefix: 'fas',
|
||
iconName: 'file-invoice',
|
||
icon: [384, 512, [], "f570", "M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"]
|
||
};
|
||
var faFileInvoiceDollar = {
|
||
prefix: 'fas',
|
||
iconName: 'file-invoice-dollar',
|
||
icon: [384, 512, [], "f571", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"]
|
||
};
|
||
var faFileMedical = {
|
||
prefix: 'fas',
|
||
iconName: 'file-medical',
|
||
icon: [384, 512, [], "f477", "M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"]
|
||
};
|
||
var faFileMedicalAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'file-medical-alt',
|
||
icon: [448, 512, [], "f478", "M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]
|
||
};
|
||
var faFilePdf = {
|
||
prefix: 'fas',
|
||
iconName: 'file-pdf',
|
||
icon: [384, 512, [], "f1c1", "M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"]
|
||
};
|
||
var faFilePowerpoint = {
|
||
prefix: 'fas',
|
||
iconName: 'file-powerpoint',
|
||
icon: [384, 512, [], "f1c4", "M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"]
|
||
};
|
||
var faFilePrescription = {
|
||
prefix: 'fas',
|
||
iconName: 'file-prescription',
|
||
icon: [384, 512, [], "f572", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]
|
||
};
|
||
var faFileSignature = {
|
||
prefix: 'fas',
|
||
iconName: 'file-signature',
|
||
icon: [576, 512, [], "f573", "M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"]
|
||
};
|
||
var faFileUpload = {
|
||
prefix: 'fas',
|
||
iconName: 'file-upload',
|
||
icon: [384, 512, [], "f574", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]
|
||
};
|
||
var faFileVideo = {
|
||
prefix: 'fas',
|
||
iconName: 'file-video',
|
||
icon: [384, 512, [], "f1c8", "M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"]
|
||
};
|
||
var faFileWord = {
|
||
prefix: 'fas',
|
||
iconName: 'file-word',
|
||
icon: [384, 512, [], "f1c2", "M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]
|
||
};
|
||
var faFill = {
|
||
prefix: 'fas',
|
||
iconName: 'fill',
|
||
icon: [512, 512, [], "f575", "M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"]
|
||
};
|
||
var faFillDrip = {
|
||
prefix: 'fas',
|
||
iconName: 'fill-drip',
|
||
icon: [576, 512, [], "f576", "M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"]
|
||
};
|
||
var faFilm = {
|
||
prefix: 'fas',
|
||
iconName: 'film',
|
||
icon: [512, 512, [], "f008", "M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"]
|
||
};
|
||
var faFilter = {
|
||
prefix: 'fas',
|
||
iconName: 'filter',
|
||
icon: [512, 512, [], "f0b0", "M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"]
|
||
};
|
||
var faFingerprint = {
|
||
prefix: 'fas',
|
||
iconName: 'fingerprint',
|
||
icon: [512, 512, [], "f577", "M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"]
|
||
};
|
||
var faFire = {
|
||
prefix: 'fas',
|
||
iconName: 'fire',
|
||
icon: [384, 512, [], "f06d", "M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z"]
|
||
};
|
||
var faFireAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'fire-alt',
|
||
icon: [448, 512, [], "f7e4", "M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"]
|
||
};
|
||
var faFireExtinguisher = {
|
||
prefix: 'fas',
|
||
iconName: 'fire-extinguisher',
|
||
icon: [448, 512, [], "f134", "M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"]
|
||
};
|
||
var faFirstAid = {
|
||
prefix: 'fas',
|
||
iconName: 'first-aid',
|
||
icon: [576, 512, [], "f479", "M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faFish = {
|
||
prefix: 'fas',
|
||
iconName: 'fish',
|
||
icon: [576, 512, [], "f578", "M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"]
|
||
};
|
||
var faFistRaised = {
|
||
prefix: 'fas',
|
||
iconName: 'fist-raised',
|
||
icon: [384, 512, [], "f6de", "M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"]
|
||
};
|
||
var faFlag = {
|
||
prefix: 'fas',
|
||
iconName: 'flag',
|
||
icon: [512, 512, [], "f024", "M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"]
|
||
};
|
||
var faFlagCheckered = {
|
||
prefix: 'fas',
|
||
iconName: 'flag-checkered',
|
||
icon: [512, 512, [], "f11e", "M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z"]
|
||
};
|
||
var faFlagUsa = {
|
||
prefix: 'fas',
|
||
iconName: 'flag-usa',
|
||
icon: [512, 512, [], "f74d", "M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z"]
|
||
};
|
||
var faFlask = {
|
||
prefix: 'fas',
|
||
iconName: 'flask',
|
||
icon: [448, 512, [], "f0c3", "M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"]
|
||
};
|
||
var faFlushed = {
|
||
prefix: 'fas',
|
||
iconName: 'flushed',
|
||
icon: [496, 512, [], "f579", "M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"]
|
||
};
|
||
var faFolder = {
|
||
prefix: 'fas',
|
||
iconName: 'folder',
|
||
icon: [512, 512, [], "f07b", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"]
|
||
};
|
||
var faFolderMinus = {
|
||
prefix: 'fas',
|
||
iconName: 'folder-minus',
|
||
icon: [512, 512, [], "f65d", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"]
|
||
};
|
||
var faFolderOpen = {
|
||
prefix: 'fas',
|
||
iconName: 'folder-open',
|
||
icon: [576, 512, [], "f07c", "M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"]
|
||
};
|
||
var faFolderPlus = {
|
||
prefix: 'fas',
|
||
iconName: 'folder-plus',
|
||
icon: [512, 512, [], "f65e", "M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16h-72v72c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-72h-72c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h72v-72c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v72h72c8.84 0 16 7.16 16 16v16z"]
|
||
};
|
||
var faFont = {
|
||
prefix: 'fas',
|
||
iconName: 'font',
|
||
icon: [448, 512, [], "f031", "M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"]
|
||
};
|
||
var faFontAwesomeLogoFull = {
|
||
prefix: 'fas',
|
||
iconName: 'font-awesome-logo-full',
|
||
icon: [3992, 512, ["Font Awesome"], "f4e6", "M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"]
|
||
};
|
||
var faFootballBall = {
|
||
prefix: 'fas',
|
||
iconName: 'football-ball',
|
||
icon: [496, 512, [], "f44e", "M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"]
|
||
};
|
||
var faForward = {
|
||
prefix: 'fas',
|
||
iconName: 'forward',
|
||
icon: [512, 512, [], "f04e", "M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"]
|
||
};
|
||
var faFrog = {
|
||
prefix: 'fas',
|
||
iconName: 'frog',
|
||
icon: [576, 512, [], "f52e", "M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"]
|
||
};
|
||
var faFrown = {
|
||
prefix: 'fas',
|
||
iconName: 'frown',
|
||
icon: [496, 512, [], "f119", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"]
|
||
};
|
||
var faFrownOpen = {
|
||
prefix: 'fas',
|
||
iconName: 'frown-open',
|
||
icon: [496, 512, [], "f57a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faFunnelDollar = {
|
||
prefix: 'fas',
|
||
iconName: 'funnel-dollar',
|
||
icon: [640, 512, [], "f662", "M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"]
|
||
};
|
||
var faFutbol = {
|
||
prefix: 'fas',
|
||
iconName: 'futbol',
|
||
icon: [512, 512, [], "f1e3", "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"]
|
||
};
|
||
var faGamepad = {
|
||
prefix: 'fas',
|
||
iconName: 'gamepad',
|
||
icon: [640, 512, [], "f11b", "M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"]
|
||
};
|
||
var faGasPump = {
|
||
prefix: 'fas',
|
||
iconName: 'gas-pump',
|
||
icon: [512, 512, [], "f52f", "M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"]
|
||
};
|
||
var faGavel = {
|
||
prefix: 'fas',
|
||
iconName: 'gavel',
|
||
icon: [512, 512, [], "f0e3", "M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"]
|
||
};
|
||
var faGem = {
|
||
prefix: 'fas',
|
||
iconName: 'gem',
|
||
icon: [576, 512, [], "f3a5", "M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"]
|
||
};
|
||
var faGenderless = {
|
||
prefix: 'fas',
|
||
iconName: 'genderless',
|
||
icon: [288, 512, [], "f22d", "M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"]
|
||
};
|
||
var faGhost = {
|
||
prefix: 'fas',
|
||
iconName: 'ghost',
|
||
icon: [384, 512, [], "f6e2", "M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faGift = {
|
||
prefix: 'fas',
|
||
iconName: 'gift',
|
||
icon: [512, 512, [], "f06b", "M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z"]
|
||
};
|
||
var faGifts = {
|
||
prefix: 'fas',
|
||
iconName: 'gifts',
|
||
icon: [640, 512, [], "f79c", "M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z"]
|
||
};
|
||
var faGlassCheers = {
|
||
prefix: 'fas',
|
||
iconName: 'glass-cheers',
|
||
icon: [640, 512, [], "f79f", "M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z"]
|
||
};
|
||
var faGlassMartini = {
|
||
prefix: 'fas',
|
||
iconName: 'glass-martini',
|
||
icon: [512, 512, [], "f000", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"]
|
||
};
|
||
var faGlassMartiniAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'glass-martini-alt',
|
||
icon: [512, 512, [], "f57b", "M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"]
|
||
};
|
||
var faGlassWhiskey = {
|
||
prefix: 'fas',
|
||
iconName: 'glass-whiskey',
|
||
icon: [512, 512, [], "f7a0", "M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z"]
|
||
};
|
||
var faGlasses = {
|
||
prefix: 'fas',
|
||
iconName: 'glasses',
|
||
icon: [576, 512, [], "f530", "M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"]
|
||
};
|
||
var faGlobe = {
|
||
prefix: 'fas',
|
||
iconName: 'globe',
|
||
icon: [496, 512, [], "f0ac", "M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"]
|
||
};
|
||
var faGlobeAfrica = {
|
||
prefix: 'fas',
|
||
iconName: 'globe-africa',
|
||
icon: [496, 512, [], "f57c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"]
|
||
};
|
||
var faGlobeAmericas = {
|
||
prefix: 'fas',
|
||
iconName: 'globe-americas',
|
||
icon: [496, 512, [], "f57d", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"]
|
||
};
|
||
var faGlobeAsia = {
|
||
prefix: 'fas',
|
||
iconName: 'globe-asia',
|
||
icon: [496, 512, [], "f57e", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"]
|
||
};
|
||
var faGlobeEurope = {
|
||
prefix: 'fas',
|
||
iconName: 'globe-europe',
|
||
icon: [496, 512, [], "f7a2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z"]
|
||
};
|
||
var faGolfBall = {
|
||
prefix: 'fas',
|
||
iconName: 'golf-ball',
|
||
icon: [416, 512, [], "f450", "M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"]
|
||
};
|
||
var faGopuram = {
|
||
prefix: 'fas',
|
||
iconName: 'gopuram',
|
||
icon: [512, 512, [], "f664", "M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z"]
|
||
};
|
||
var faGraduationCap = {
|
||
prefix: 'fas',
|
||
iconName: 'graduation-cap',
|
||
icon: [640, 512, [], "f19d", "M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"]
|
||
};
|
||
var faGreaterThan = {
|
||
prefix: 'fas',
|
||
iconName: 'greater-than',
|
||
icon: [384, 512, [], "f531", "M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"]
|
||
};
|
||
var faGreaterThanEqual = {
|
||
prefix: 'fas',
|
||
iconName: 'greater-than-equal',
|
||
icon: [448, 512, [], "f532", "M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]
|
||
};
|
||
var faGrimace = {
|
||
prefix: 'fas',
|
||
iconName: 'grimace',
|
||
icon: [496, 512, [], "f57f", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"]
|
||
};
|
||
var faGrin = {
|
||
prefix: 'fas',
|
||
iconName: 'grin',
|
||
icon: [496, 512, [], "f580", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]
|
||
};
|
||
var faGrinAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-alt',
|
||
icon: [496, 512, [], "f581", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]
|
||
};
|
||
var faGrinBeam = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-beam',
|
||
icon: [496, 512, [], "f582", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]
|
||
};
|
||
var faGrinBeamSweat = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-beam-sweat',
|
||
icon: [504, 512, [], "f583", "M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]
|
||
};
|
||
var faGrinHearts = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-hearts',
|
||
icon: [496, 512, [], "f584", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"]
|
||
};
|
||
var faGrinSquint = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-squint',
|
||
icon: [496, 512, [], "f585", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]
|
||
};
|
||
var faGrinSquintTears = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-squint-tears',
|
||
icon: [512, 512, [], "f586", "M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"]
|
||
};
|
||
var faGrinStars = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-stars',
|
||
icon: [496, 512, [], "f587", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"]
|
||
};
|
||
var faGrinTears = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-tears',
|
||
icon: [640, 512, [], "f588", "M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]
|
||
};
|
||
var faGrinTongue = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-tongue',
|
||
icon: [496, 512, [], "f589", "M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"]
|
||
};
|
||
var faGrinTongueSquint = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-tongue-squint',
|
||
icon: [496, 512, [], "f58a", "M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"]
|
||
};
|
||
var faGrinTongueWink = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-tongue-wink',
|
||
icon: [496, 512, [], "f58b", "M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"]
|
||
};
|
||
var faGrinWink = {
|
||
prefix: 'fas',
|
||
iconName: 'grin-wink',
|
||
icon: [496, 512, [], "f58c", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"]
|
||
};
|
||
var faGripHorizontal = {
|
||
prefix: 'fas',
|
||
iconName: 'grip-horizontal',
|
||
icon: [448, 512, [], "f58d", "M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faGripLines = {
|
||
prefix: 'fas',
|
||
iconName: 'grip-lines',
|
||
icon: [512, 512, [], "f7a4", "M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]
|
||
};
|
||
var faGripLinesVertical = {
|
||
prefix: 'fas',
|
||
iconName: 'grip-lines-vertical',
|
||
icon: [256, 512, [], "f7a5", "M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z"]
|
||
};
|
||
var faGripVertical = {
|
||
prefix: 'fas',
|
||
iconName: 'grip-vertical',
|
||
icon: [320, 512, [], "f58e", "M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faGuitar = {
|
||
prefix: 'fas',
|
||
iconName: 'guitar',
|
||
icon: [512, 512, [], "f7a6", "M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z"]
|
||
};
|
||
var faHSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'h-square',
|
||
icon: [448, 512, [], "f0fd", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"]
|
||
};
|
||
var faHamburger = {
|
||
prefix: 'fas',
|
||
iconName: 'hamburger',
|
||
icon: [512, 512, [], "f805", "M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z"]
|
||
};
|
||
var faHammer = {
|
||
prefix: 'fas',
|
||
iconName: 'hammer',
|
||
icon: [576, 512, [], "f6e3", "M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"]
|
||
};
|
||
var faHamsa = {
|
||
prefix: 'fas',
|
||
iconName: 'hamsa',
|
||
icon: [512, 512, [], "f665", "M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]
|
||
};
|
||
var faHandHolding = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-holding',
|
||
icon: [576, 512, [], "f4bd", "M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]
|
||
};
|
||
var faHandHoldingHeart = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-holding-heart',
|
||
icon: [576, 512, [], "f4be", "M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]
|
||
};
|
||
var faHandHoldingUsd = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-holding-usd',
|
||
icon: [576, 512, [], "f4c0", "M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z"]
|
||
};
|
||
var faHandLizard = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-lizard',
|
||
icon: [576, 512, [], "f258", "M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"]
|
||
};
|
||
var faHandMiddleFinger = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-middle-finger',
|
||
icon: [512, 512, [], "f806", "M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z"]
|
||
};
|
||
var faHandPaper = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-paper',
|
||
icon: [448, 512, [], "f256", "M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"]
|
||
};
|
||
var faHandPeace = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-peace',
|
||
icon: [448, 512, [], "f25b", "M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"]
|
||
};
|
||
var faHandPointDown = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-point-down',
|
||
icon: [384, 512, [], "f0a7", "M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"]
|
||
};
|
||
var faHandPointLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-point-left',
|
||
icon: [512, 512, [], "f0a5", "M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"]
|
||
};
|
||
var faHandPointRight = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-point-right',
|
||
icon: [512, 512, [], "f0a4", "M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"]
|
||
};
|
||
var faHandPointUp = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-point-up',
|
||
icon: [384, 512, [], "f0a6", "M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"]
|
||
};
|
||
var faHandPointer = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-pointer',
|
||
icon: [448, 512, [], "f25a", "M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"]
|
||
};
|
||
var faHandRock = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-rock',
|
||
icon: [512, 512, [], "f255", "M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z"]
|
||
};
|
||
var faHandScissors = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-scissors',
|
||
icon: [512, 512, [], "f257", "M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"]
|
||
};
|
||
var faHandSpock = {
|
||
prefix: 'fas',
|
||
iconName: 'hand-spock',
|
||
icon: [512, 512, [], "f259", "M481.3 97.1c-21.5-5.1-43.1 8.2-48.2 29.6L402.3 256h-11.1l43.6-174.3c5.4-21.4-7.7-43.1-29.1-48.5s-43.1 7.7-48.5 29.1L308.8 256h-15.1L242 31.1c-5-21.6-26.4-35-48-30.1-21.5 4.9-35 26.4-30 47.9l47.6 207h-9.8L167 103.1c-4.9-21.5-26.3-35-47.9-30.1-21.5 4.9-35 26.3-30.1 47.9l39 171.6v79.4l-60.6-57c-16.1-15.1-41.4-14.4-56.5 1.7s-14.4 41.4 1.7 56.5L146.3 499c8.9 8.4 20.7 13 32.9 13h216.7c21.3 0 40-14 46-34.4l26.2-88.3c2.6-8.9 4-18 4-27.3v-42c0-7.5.9-15 2.6-22.2L511 145.3c5-21.5-8.3-43.1-29.7-48.2z"]
|
||
};
|
||
var faHands = {
|
||
prefix: 'fas',
|
||
iconName: 'hands',
|
||
icon: [640, 512, [], "f4c2", "M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"]
|
||
};
|
||
var faHandsHelping = {
|
||
prefix: 'fas',
|
||
iconName: 'hands-helping',
|
||
icon: [640, 512, [], "f4c4", "M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"]
|
||
};
|
||
var faHandshake = {
|
||
prefix: 'fas',
|
||
iconName: 'handshake',
|
||
icon: [640, 512, [], "f2b5", "M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"]
|
||
};
|
||
var faHanukiah = {
|
||
prefix: 'fas',
|
||
iconName: 'hanukiah',
|
||
icon: [640, 512, [], "f6e6", "M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"]
|
||
};
|
||
var faHardHat = {
|
||
prefix: 'fas',
|
||
iconName: 'hard-hat',
|
||
icon: [512, 512, [], "f807", "M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faHashtag = {
|
||
prefix: 'fas',
|
||
iconName: 'hashtag',
|
||
icon: [448, 512, [], "f292", "M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"]
|
||
};
|
||
var faHatCowboy = {
|
||
prefix: 'fas',
|
||
iconName: 'hat-cowboy',
|
||
icon: [640, 512, [], "f8c0", "M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z"]
|
||
};
|
||
var faHatCowboySide = {
|
||
prefix: 'fas',
|
||
iconName: 'hat-cowboy-side',
|
||
icon: [640, 512, [], "f8c1", "M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z"]
|
||
};
|
||
var faHatWizard = {
|
||
prefix: 'fas',
|
||
iconName: 'hat-wizard',
|
||
icon: [512, 512, [], "f6e8", "M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"]
|
||
};
|
||
var faHaykal = {
|
||
prefix: 'fas',
|
||
iconName: 'haykal',
|
||
icon: [512, 512, [], "f666", "M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"]
|
||
};
|
||
var faHdd = {
|
||
prefix: 'fas',
|
||
iconName: 'hdd',
|
||
icon: [576, 512, [], "f0a0", "M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"]
|
||
};
|
||
var faHeading = {
|
||
prefix: 'fas',
|
||
iconName: 'heading',
|
||
icon: [512, 512, [], "f1dc", "M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z"]
|
||
};
|
||
var faHeadphones = {
|
||
prefix: 'fas',
|
||
iconName: 'headphones',
|
||
icon: [512, 512, [], "f025", "M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"]
|
||
};
|
||
var faHeadphonesAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'headphones-alt',
|
||
icon: [512, 512, [], "f58f", "M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"]
|
||
};
|
||
var faHeadset = {
|
||
prefix: 'fas',
|
||
iconName: 'headset',
|
||
icon: [512, 512, [], "f590", "M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"]
|
||
};
|
||
var faHeart = {
|
||
prefix: 'fas',
|
||
iconName: 'heart',
|
||
icon: [512, 512, [], "f004", "M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"]
|
||
};
|
||
var faHeartBroken = {
|
||
prefix: 'fas',
|
||
iconName: 'heart-broken',
|
||
icon: [512, 512, [], "f7a9", "M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z"]
|
||
};
|
||
var faHeartbeat = {
|
||
prefix: 'fas',
|
||
iconName: 'heartbeat',
|
||
icon: [512, 512, [], "f21e", "M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"]
|
||
};
|
||
var faHelicopter = {
|
||
prefix: 'fas',
|
||
iconName: 'helicopter',
|
||
icon: [640, 512, [], "f533", "M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"]
|
||
};
|
||
var faHighlighter = {
|
||
prefix: 'fas',
|
||
iconName: 'highlighter',
|
||
icon: [544, 512, [], "f591", "M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"]
|
||
};
|
||
var faHiking = {
|
||
prefix: 'fas',
|
||
iconName: 'hiking',
|
||
icon: [384, 512, [], "f6ec", "M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"]
|
||
};
|
||
var faHippo = {
|
||
prefix: 'fas',
|
||
iconName: 'hippo',
|
||
icon: [640, 512, [], "f6ed", "M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]
|
||
};
|
||
var faHistory = {
|
||
prefix: 'fas',
|
||
iconName: 'history',
|
||
icon: [512, 512, [], "f1da", "M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"]
|
||
};
|
||
var faHockeyPuck = {
|
||
prefix: 'fas',
|
||
iconName: 'hockey-puck',
|
||
icon: [512, 512, [], "f453", "M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"]
|
||
};
|
||
var faHollyBerry = {
|
||
prefix: 'fas',
|
||
iconName: 'holly-berry',
|
||
icon: [448, 512, [], "f7aa", "M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z"]
|
||
};
|
||
var faHome = {
|
||
prefix: 'fas',
|
||
iconName: 'home',
|
||
icon: [576, 512, [], "f015", "M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"]
|
||
};
|
||
var faHorse = {
|
||
prefix: 'fas',
|
||
iconName: 'horse',
|
||
icon: [576, 512, [], "f6f0", "M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]
|
||
};
|
||
var faHorseHead = {
|
||
prefix: 'fas',
|
||
iconName: 'horse-head',
|
||
icon: [512, 512, [], "f7ab", "M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"]
|
||
};
|
||
var faHospital = {
|
||
prefix: 'fas',
|
||
iconName: 'hospital',
|
||
icon: [448, 512, [], "f0f8", "M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"]
|
||
};
|
||
var faHospitalAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'hospital-alt',
|
||
icon: [576, 512, [], "f47d", "M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"]
|
||
};
|
||
var faHospitalSymbol = {
|
||
prefix: 'fas',
|
||
iconName: 'hospital-symbol',
|
||
icon: [512, 512, [], "f47e", "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"]
|
||
};
|
||
var faHotTub = {
|
||
prefix: 'fas',
|
||
iconName: 'hot-tub',
|
||
icon: [512, 512, [], "f593", "M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"]
|
||
};
|
||
var faHotdog = {
|
||
prefix: 'fas',
|
||
iconName: 'hotdog',
|
||
icon: [512, 512, [], "f80f", "M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z"]
|
||
};
|
||
var faHotel = {
|
||
prefix: 'fas',
|
||
iconName: 'hotel',
|
||
icon: [576, 512, [], "f594", "M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"]
|
||
};
|
||
var faHourglass = {
|
||
prefix: 'fas',
|
||
iconName: 'hourglass',
|
||
icon: [384, 512, [], "f254", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"]
|
||
};
|
||
var faHourglassEnd = {
|
||
prefix: 'fas',
|
||
iconName: 'hourglass-end',
|
||
icon: [384, 512, [], "f253", "M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"]
|
||
};
|
||
var faHourglassHalf = {
|
||
prefix: 'fas',
|
||
iconName: 'hourglass-half',
|
||
icon: [384, 512, [], "f252", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"]
|
||
};
|
||
var faHourglassStart = {
|
||
prefix: 'fas',
|
||
iconName: 'hourglass-start',
|
||
icon: [384, 512, [], "f251", "M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"]
|
||
};
|
||
var faHouseDamage = {
|
||
prefix: 'fas',
|
||
iconName: 'house-damage',
|
||
icon: [576, 512, [], "f6f1", "M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"]
|
||
};
|
||
var faHryvnia = {
|
||
prefix: 'fas',
|
||
iconName: 'hryvnia',
|
||
icon: [384, 512, [], "f6f2", "M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"]
|
||
};
|
||
var faICursor = {
|
||
prefix: 'fas',
|
||
iconName: 'i-cursor',
|
||
icon: [256, 512, [], "f246", "M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"]
|
||
};
|
||
var faIceCream = {
|
||
prefix: 'fas',
|
||
iconName: 'ice-cream',
|
||
icon: [448, 512, [], "f810", "M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z"]
|
||
};
|
||
var faIcicles = {
|
||
prefix: 'fas',
|
||
iconName: 'icicles',
|
||
icon: [512, 512, [], "f7ad", "M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z"]
|
||
};
|
||
var faIcons = {
|
||
prefix: 'fas',
|
||
iconName: 'icons',
|
||
icon: [512, 512, [], "f86d", "M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z"]
|
||
};
|
||
var faIdBadge = {
|
||
prefix: 'fas',
|
||
iconName: 'id-badge',
|
||
icon: [384, 512, [], "f2c1", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]
|
||
};
|
||
var faIdCard = {
|
||
prefix: 'fas',
|
||
iconName: 'id-card',
|
||
icon: [576, 512, [], "f2c2", "M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"]
|
||
};
|
||
var faIdCardAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'id-card-alt',
|
||
icon: [576, 512, [], "f47f", "M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"]
|
||
};
|
||
var faIgloo = {
|
||
prefix: 'fas',
|
||
iconName: 'igloo',
|
||
icon: [576, 512, [], "f7ae", "M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z"]
|
||
};
|
||
var faImage = {
|
||
prefix: 'fas',
|
||
iconName: 'image',
|
||
icon: [512, 512, [], "f03e", "M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"]
|
||
};
|
||
var faImages = {
|
||
prefix: 'fas',
|
||
iconName: 'images',
|
||
icon: [576, 512, [], "f302", "M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"]
|
||
};
|
||
var faInbox = {
|
||
prefix: 'fas',
|
||
iconName: 'inbox',
|
||
icon: [576, 512, [], "f01c", "M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"]
|
||
};
|
||
var faIndent = {
|
||
prefix: 'fas',
|
||
iconName: 'indent',
|
||
icon: [448, 512, [], "f03c", "M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faIndustry = {
|
||
prefix: 'fas',
|
||
iconName: 'industry',
|
||
icon: [512, 512, [], "f275", "M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"]
|
||
};
|
||
var faInfinity = {
|
||
prefix: 'fas',
|
||
iconName: 'infinity',
|
||
icon: [640, 512, [], "f534", "M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"]
|
||
};
|
||
var faInfo = {
|
||
prefix: 'fas',
|
||
iconName: 'info',
|
||
icon: [192, 512, [], "f129", "M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"]
|
||
};
|
||
var faInfoCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'info-circle',
|
||
icon: [512, 512, [], "f05a", "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"]
|
||
};
|
||
var faItalic = {
|
||
prefix: 'fas',
|
||
iconName: 'italic',
|
||
icon: [320, 512, [], "f033", "M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z"]
|
||
};
|
||
var faJedi = {
|
||
prefix: 'fas',
|
||
iconName: 'jedi',
|
||
icon: [544, 512, [], "f669", "M479.99 352l58.88-58.87c3.29-16.8 5.13-34.12 5.13-51.86 0-5.81-.68-11.51-1.05-17.27H496l41.25-41.24c-14.5-64.79-52.43-123.05-107.91-162.27-2.77-1.96-5.97-2.99-9.25-2.99-5.37 0-10.41 2.71-13.49 7.24-3.05 4.49-3.64 9.99-1.61 15.09 6.55 16.46 9.86 33.73 9.86 51.31 0 45.12-21.03 86.57-57.69 113.73-4.02 2.98-6.46 7.5-6.7 12.4-.24 4.92 1.76 9.66 5.49 13.03 32.93 29.75 47.35 73.51 38.57 117.07-9.74 48.35-48.84 87.1-97.31 96.5l-2.5-65.34L321.88 397c2.98 2.06 7.39 1.69 10.02-.8a8.002 8.002 0 0 0 1.34-9.92l-20.11-33.73 42.07-8.72c3.7-.75 6.38-4.05 6.38-7.83 0-3.77-2.69-7.06-6.38-7.83l-42.07-8.73 20.13-33.77c1.92-3.23 1.34-7.31-1.38-9.91-2.7-2.55-6.97-2.89-10-.8l-30.39 20.67L279.96 7.7a7.964 7.964 0 0 0-8-7.7c-4.33 0-7.84 3.38-8 7.67l-11.52 287.97-30.39-20.66c-3.14-2.12-7.27-1.83-10 .78-2.72 2.59-3.3 6.67-1.36 9.94l20.11 33.73-42.07 8.73c-3.7.75-6.38 4.05-6.38 7.83s2.67 7.08 6.38 7.83l42.07 8.72-20.13 33.77c-1.92 3.23-1.34 7.33 1.39 9.94 2.59 2.45 7.03 2.75 10 .75l27.16-18.48-2.5 65.26c-56.94-11.64-99.89-61.89-99.89-121.92 0-35.08 14.62-67.6 41.17-91.58 3.72-3.36 5.72-8.11 5.48-13.01-.24-4.9-2.68-9.41-6.69-12.38-36.67-27.16-57.71-68.62-57.71-113.74 0-17.56 3.31-34.81 9.84-51.26 2.02-5.09 1.43-10.59-1.62-15.09-3.08-4.54-8.13-7.25-13.51-7.25-3.3 0-6.5 1.04-9.27 3-55.87 39.52-93.6 97.37-107.97 162.07L47.93 224H.72c-.63 9.92-.97 19.91-.5 29.99.62 13.43 2.54 26.53 5.11 39.41l58.6 58.6H24.02c41.25 90.23 131.13 154.94 235.1 159.71 4.3.2 8.59.29 12.85.29 110.34 0 205.35-65.83 247.98-160h-39.96z"]
|
||
};
|
||
var faJoint = {
|
||
prefix: 'fas',
|
||
iconName: 'joint',
|
||
icon: [640, 512, [], "f595", "M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"]
|
||
};
|
||
var faJournalWhills = {
|
||
prefix: 'fas',
|
||
iconName: 'journal-whills',
|
||
icon: [448, 512, [], "f66a", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM133.08 144.39l21.26 21.26c1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34c3.12-3.12 3.12-8.19 0-11.31l-26.42-26.42c10-20.9 26.24-37.97 46.37-49.26C179.62 88.4 176 99.74 176 112c0 19.96 9.33 37.57 23.66 49.31C190.01 171.37 184 184.96 184 200c0 26.94 19.04 49.4 44.38 54.76l1.36-32.71-10.37 7.04c-.69.45-1.47.69-2.25.69-1 0-1.98-.38-2.75-1.09a4.006 4.006 0 0 1-.69-4.95l8.54-14.31-17.91-3.72c-1.86-.39-3.19-2.03-3.19-3.92s1.33-3.53 3.19-3.92l17.91-3.72-8.54-14.31c-.95-1.61-.67-3.67.69-4.95 1.36-1.3 3.44-1.44 5-.41l12.01 8.16L236 71.83c.09-2.14 1.86-3.83 4-3.83s3.91 1.69 4 3.83l4.68 112.29 14.2-9.65a4.067 4.067 0 0 1 5 .41 4.006 4.006 0 0 1 .69 4.95l-8.54 14.31 17.91 3.72c1.86.39 3.19 2.03 3.19 3.92s-1.33 3.53-3.19 3.92l-17.91 3.72 8.54 14.31c.95 1.61.67 3.67-.69 4.95-.77.72-1.77 1.09-2.75 1.09-.78 0-1.56-.23-2.25-.69l-12.68-8.62 1.43 34.28C276.96 249.4 296 226.94 296 200c0-15.04-6.01-28.63-15.66-38.69C294.67 149.57 304 131.96 304 112c0-12.26-3.62-23.6-9.6-33.33 20.13 11.28 36.37 28.36 46.37 49.26l-26.42 26.42c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34s4.09-.78 5.66-2.34l21.26-21.26c2.97 10.08 5.07 20.55 5.07 31.6 0 .52-.14.99-.15 1.51l-37.11 32.47a7.975 7.975 0 0 0-.75 11.28 7.97 7.97 0 0 0 6.02 2.73c1.88 0 3.75-.66 5.27-1.98l23.59-20.64C337.32 250.96 293.09 288 240 288s-97.32-37.04-108.86-86.62l23.59 20.64A7.957 7.957 0 0 0 160 224c2.22 0 4.44-.92 6.02-2.73 2.92-3.33 2.58-8.38-.75-11.28l-37.11-32.47c-.01-.52-.15-.99-.15-1.51-.01-11.06 2.09-21.53 5.07-31.62zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"]
|
||
};
|
||
var faKaaba = {
|
||
prefix: 'fas',
|
||
iconName: 'kaaba',
|
||
icon: [576, 512, [], "f66b", "M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"]
|
||
};
|
||
var faKey = {
|
||
prefix: 'fas',
|
||
iconName: 'key',
|
||
icon: [512, 512, [], "f084", "M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"]
|
||
};
|
||
var faKeyboard = {
|
||
prefix: 'fas',
|
||
iconName: 'keyboard',
|
||
icon: [576, 512, [], "f11c", "M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"]
|
||
};
|
||
var faKhanda = {
|
||
prefix: 'fas',
|
||
iconName: 'khanda',
|
||
icon: [512, 512, [], "f66d", "M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"]
|
||
};
|
||
var faKiss = {
|
||
prefix: 'fas',
|
||
iconName: 'kiss',
|
||
icon: [496, 512, [], "f596", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faKissBeam = {
|
||
prefix: 'fas',
|
||
iconName: 'kiss-beam',
|
||
icon: [496, 512, [], "f597", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"]
|
||
};
|
||
var faKissWinkHeart = {
|
||
prefix: 'fas',
|
||
iconName: 'kiss-wink-heart',
|
||
icon: [504, 512, [], "f598", "M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"]
|
||
};
|
||
var faKiwiBird = {
|
||
prefix: 'fas',
|
||
iconName: 'kiwi-bird',
|
||
icon: [576, 512, [], "f535", "M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"]
|
||
};
|
||
var faLandmark = {
|
||
prefix: 'fas',
|
||
iconName: 'landmark',
|
||
icon: [512, 512, [], "f66f", "M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faLanguage = {
|
||
prefix: 'fas',
|
||
iconName: 'language',
|
||
icon: [640, 512, [], "f1ab", "M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z"]
|
||
};
|
||
var faLaptop = {
|
||
prefix: 'fas',
|
||
iconName: 'laptop',
|
||
icon: [640, 512, [], "f109", "M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"]
|
||
};
|
||
var faLaptopCode = {
|
||
prefix: 'fas',
|
||
iconName: 'laptop-code',
|
||
icon: [640, 512, [], "f5fc", "M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"]
|
||
};
|
||
var faLaptopMedical = {
|
||
prefix: 'fas',
|
||
iconName: 'laptop-medical',
|
||
icon: [640, 512, [], "f812", "M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faLaugh = {
|
||
prefix: 'fas',
|
||
iconName: 'laugh',
|
||
icon: [496, 512, [], "f599", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"]
|
||
};
|
||
var faLaughBeam = {
|
||
prefix: 'fas',
|
||
iconName: 'laugh-beam',
|
||
icon: [496, 512, [], "f59a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]
|
||
};
|
||
var faLaughSquint = {
|
||
prefix: 'fas',
|
||
iconName: 'laugh-squint',
|
||
icon: [496, 512, [], "f59b", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]
|
||
};
|
||
var faLaughWink = {
|
||
prefix: 'fas',
|
||
iconName: 'laugh-wink',
|
||
icon: [496, 512, [], "f59c", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]
|
||
};
|
||
var faLayerGroup = {
|
||
prefix: 'fas',
|
||
iconName: 'layer-group',
|
||
icon: [512, 512, [], "f5fd", "M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"]
|
||
};
|
||
var faLeaf = {
|
||
prefix: 'fas',
|
||
iconName: 'leaf',
|
||
icon: [576, 512, [], "f06c", "M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"]
|
||
};
|
||
var faLemon = {
|
||
prefix: 'fas',
|
||
iconName: 'lemon',
|
||
icon: [512, 512, [], "f094", "M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"]
|
||
};
|
||
var faLessThan = {
|
||
prefix: 'fas',
|
||
iconName: 'less-than',
|
||
icon: [384, 512, [], "f536", "M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"]
|
||
};
|
||
var faLessThanEqual = {
|
||
prefix: 'fas',
|
||
iconName: 'less-than-equal',
|
||
icon: [448, 512, [], "f537", "M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]
|
||
};
|
||
var faLevelDownAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'level-down-alt',
|
||
icon: [320, 512, [], "f3be", "M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"]
|
||
};
|
||
var faLevelUpAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'level-up-alt',
|
||
icon: [320, 512, [], "f3bf", "M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"]
|
||
};
|
||
var faLifeRing = {
|
||
prefix: 'fas',
|
||
iconName: 'life-ring',
|
||
icon: [512, 512, [], "f1cd", "M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"]
|
||
};
|
||
var faLightbulb = {
|
||
prefix: 'fas',
|
||
iconName: 'lightbulb',
|
||
icon: [352, 512, [], "f0eb", "M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"]
|
||
};
|
||
var faLink = {
|
||
prefix: 'fas',
|
||
iconName: 'link',
|
||
icon: [512, 512, [], "f0c1", "M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"]
|
||
};
|
||
var faLiraSign = {
|
||
prefix: 'fas',
|
||
iconName: 'lira-sign',
|
||
icon: [384, 512, [], "f195", "M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"]
|
||
};
|
||
var faList = {
|
||
prefix: 'fas',
|
||
iconName: 'list',
|
||
icon: [512, 512, [], "f03a", "M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faListAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'list-alt',
|
||
icon: [512, 512, [], "f022", "M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"]
|
||
};
|
||
var faListOl = {
|
||
prefix: 'fas',
|
||
iconName: 'list-ol',
|
||
icon: [512, 512, [], "f0cb", "M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"]
|
||
};
|
||
var faListUl = {
|
||
prefix: 'fas',
|
||
iconName: 'list-ul',
|
||
icon: [512, 512, [], "f0ca", "M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faLocationArrow = {
|
||
prefix: 'fas',
|
||
iconName: 'location-arrow',
|
||
icon: [512, 512, [], "f124", "M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"]
|
||
};
|
||
var faLock = {
|
||
prefix: 'fas',
|
||
iconName: 'lock',
|
||
icon: [448, 512, [], "f023", "M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"]
|
||
};
|
||
var faLockOpen = {
|
||
prefix: 'fas',
|
||
iconName: 'lock-open',
|
||
icon: [576, 512, [], "f3c1", "M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"]
|
||
};
|
||
var faLongArrowAltDown = {
|
||
prefix: 'fas',
|
||
iconName: 'long-arrow-alt-down',
|
||
icon: [256, 512, [], "f309", "M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"]
|
||
};
|
||
var faLongArrowAltLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'long-arrow-alt-left',
|
||
icon: [448, 512, [], "f30a", "M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"]
|
||
};
|
||
var faLongArrowAltRight = {
|
||
prefix: 'fas',
|
||
iconName: 'long-arrow-alt-right',
|
||
icon: [448, 512, [], "f30b", "M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"]
|
||
};
|
||
var faLongArrowAltUp = {
|
||
prefix: 'fas',
|
||
iconName: 'long-arrow-alt-up',
|
||
icon: [256, 512, [], "f30c", "M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"]
|
||
};
|
||
var faLowVision = {
|
||
prefix: 'fas',
|
||
iconName: 'low-vision',
|
||
icon: [576, 512, [], "f2a8", "M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"]
|
||
};
|
||
var faLuggageCart = {
|
||
prefix: 'fas',
|
||
iconName: 'luggage-cart',
|
||
icon: [640, 512, [], "f59d", "M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"]
|
||
};
|
||
var faMagic = {
|
||
prefix: 'fas',
|
||
iconName: 'magic',
|
||
icon: [512, 512, [], "f0d0", "M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"]
|
||
};
|
||
var faMagnet = {
|
||
prefix: 'fas',
|
||
iconName: 'magnet',
|
||
icon: [512, 512, [], "f076", "M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z"]
|
||
};
|
||
var faMailBulk = {
|
||
prefix: 'fas',
|
||
iconName: 'mail-bulk',
|
||
icon: [576, 512, [], "f674", "M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"]
|
||
};
|
||
var faMale = {
|
||
prefix: 'fas',
|
||
iconName: 'male',
|
||
icon: [192, 512, [], "f183", "M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"]
|
||
};
|
||
var faMap = {
|
||
prefix: 'fas',
|
||
iconName: 'map',
|
||
icon: [576, 512, [], "f279", "M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"]
|
||
};
|
||
var faMapMarked = {
|
||
prefix: 'fas',
|
||
iconName: 'map-marked',
|
||
icon: [576, 512, [], "f59f", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"]
|
||
};
|
||
var faMapMarkedAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'map-marked-alt',
|
||
icon: [576, 512, [], "f5a0", "M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"]
|
||
};
|
||
var faMapMarker = {
|
||
prefix: 'fas',
|
||
iconName: 'map-marker',
|
||
icon: [384, 512, [], "f041", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"]
|
||
};
|
||
var faMapMarkerAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'map-marker-alt',
|
||
icon: [384, 512, [], "f3c5", "M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"]
|
||
};
|
||
var faMapPin = {
|
||
prefix: 'fas',
|
||
iconName: 'map-pin',
|
||
icon: [288, 512, [], "f276", "M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"]
|
||
};
|
||
var faMapSigns = {
|
||
prefix: 'fas',
|
||
iconName: 'map-signs',
|
||
icon: [512, 512, [], "f277", "M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"]
|
||
};
|
||
var faMarker = {
|
||
prefix: 'fas',
|
||
iconName: 'marker',
|
||
icon: [512, 512, [], "f5a1", "M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"]
|
||
};
|
||
var faMars = {
|
||
prefix: 'fas',
|
||
iconName: 'mars',
|
||
icon: [384, 512, [], "f222", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]
|
||
};
|
||
var faMarsDouble = {
|
||
prefix: 'fas',
|
||
iconName: 'mars-double',
|
||
icon: [512, 512, [], "f227", "M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"]
|
||
};
|
||
var faMarsStroke = {
|
||
prefix: 'fas',
|
||
iconName: 'mars-stroke',
|
||
icon: [384, 512, [], "f229", "M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]
|
||
};
|
||
var faMarsStrokeH = {
|
||
prefix: 'fas',
|
||
iconName: 'mars-stroke-h',
|
||
icon: [480, 512, [], "f22b", "M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"]
|
||
};
|
||
var faMarsStrokeV = {
|
||
prefix: 'fas',
|
||
iconName: 'mars-stroke-v',
|
||
icon: [288, 512, [], "f22a", "M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"]
|
||
};
|
||
var faMask = {
|
||
prefix: 'fas',
|
||
iconName: 'mask',
|
||
icon: [640, 512, [], "f6fa", "M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"]
|
||
};
|
||
var faMedal = {
|
||
prefix: 'fas',
|
||
iconName: 'medal',
|
||
icon: [512, 512, [], "f5a2", "M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"]
|
||
};
|
||
var faMedkit = {
|
||
prefix: 'fas',
|
||
iconName: 'medkit',
|
||
icon: [512, 512, [], "f0fa", "M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"]
|
||
};
|
||
var faMeh = {
|
||
prefix: 'fas',
|
||
iconName: 'meh',
|
||
icon: [496, 512, [], "f11a", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faMehBlank = {
|
||
prefix: 'fas',
|
||
iconName: 'meh-blank',
|
||
icon: [496, 512, [], "f5a4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faMehRollingEyes = {
|
||
prefix: 'fas',
|
||
iconName: 'meh-rolling-eyes',
|
||
icon: [496, 512, [], "f5a5", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"]
|
||
};
|
||
var faMemory = {
|
||
prefix: 'fas',
|
||
iconName: 'memory',
|
||
icon: [640, 512, [], "f538", "M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"]
|
||
};
|
||
var faMenorah = {
|
||
prefix: 'fas',
|
||
iconName: 'menorah',
|
||
icon: [640, 512, [], "f676", "M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"]
|
||
};
|
||
var faMercury = {
|
||
prefix: 'fas',
|
||
iconName: 'mercury',
|
||
icon: [288, 512, [], "f223", "M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"]
|
||
};
|
||
var faMeteor = {
|
||
prefix: 'fas',
|
||
iconName: 'meteor',
|
||
icon: [512, 512, [], "f753", "M491.2.7C452.5 12.3 379.4 35 303.5 62c-2.1-7-4-13.5-5.6-18.6-3-9.7-13.9-14.2-22.9-9.5C232.6 56 122.2 116.5 60.6 176.4c-1.1 1-2.5 2-3.5 3C19 217.4 0 267.3 0 317.2 0 367 19 416.9 57 455c38 38 87.9 57.1 137.8 57 49.9 0 99.8-19 137.9-57.1 1-1 2-2.4 3-3.5 59.8-61.6 120.4-172.1 142.5-214.4 4.7-9 .2-19.9-9.5-22.9-5.2-1.6-11.6-3.5-18.6-5.6 27-76 49.7-149 61.3-187.7C515 8.4 503.6-3 491.2.7zM192 448c-70.7 0-128-57.3-128-128s57.3-128 128-128 128 57.3 128 128-57.3 128-128 128zm-32-192c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm48 96c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16z"]
|
||
};
|
||
var faMicrochip = {
|
||
prefix: 'fas',
|
||
iconName: 'microchip',
|
||
icon: [512, 512, [], "f2db", "M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"]
|
||
};
|
||
var faMicrophone = {
|
||
prefix: 'fas',
|
||
iconName: 'microphone',
|
||
icon: [352, 512, [], "f130", "M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faMicrophoneAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'microphone-alt',
|
||
icon: [352, 512, [], "f3c9", "M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"]
|
||
};
|
||
var faMicrophoneAltSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'microphone-alt-slash',
|
||
icon: [640, 512, [], "f539", "M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faMicrophoneSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'microphone-slash',
|
||
icon: [640, 512, [], "f131", "M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faMicroscope = {
|
||
prefix: 'fas',
|
||
iconName: 'microscope',
|
||
icon: [512, 512, [], "f610", "M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"]
|
||
};
|
||
var faMinus = {
|
||
prefix: 'fas',
|
||
iconName: 'minus',
|
||
icon: [448, 512, [], "f068", "M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faMinusCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'minus-circle',
|
||
icon: [512, 512, [], "f056", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"]
|
||
};
|
||
var faMinusSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'minus-square',
|
||
icon: [448, 512, [], "f146", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"]
|
||
};
|
||
var faMitten = {
|
||
prefix: 'fas',
|
||
iconName: 'mitten',
|
||
icon: [448, 512, [], "f7b5", "M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z"]
|
||
};
|
||
var faMobile = {
|
||
prefix: 'fas',
|
||
iconName: 'mobile',
|
||
icon: [320, 512, [], "f10b", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faMobileAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'mobile-alt',
|
||
icon: [320, 512, [], "f3cd", "M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"]
|
||
};
|
||
var faMoneyBill = {
|
||
prefix: 'fas',
|
||
iconName: 'money-bill',
|
||
icon: [640, 512, [], "f0d6", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]
|
||
};
|
||
var faMoneyBillAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'money-bill-alt',
|
||
icon: [640, 512, [], "f3d1", "M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]
|
||
};
|
||
var faMoneyBillWave = {
|
||
prefix: 'fas',
|
||
iconName: 'money-bill-wave',
|
||
icon: [640, 512, [], "f53a", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"]
|
||
};
|
||
var faMoneyBillWaveAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'money-bill-wave-alt',
|
||
icon: [640, 512, [], "f53b", "M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"]
|
||
};
|
||
var faMoneyCheck = {
|
||
prefix: 'fas',
|
||
iconName: 'money-check',
|
||
icon: [640, 512, [], "f53c", "M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faMoneyCheckAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'money-check-alt',
|
||
icon: [640, 512, [], "f53d", "M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"]
|
||
};
|
||
var faMonument = {
|
||
prefix: 'fas',
|
||
iconName: 'monument',
|
||
icon: [384, 512, [], "f5a6", "M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"]
|
||
};
|
||
var faMoon = {
|
||
prefix: 'fas',
|
||
iconName: 'moon',
|
||
icon: [512, 512, [], "f186", "M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"]
|
||
};
|
||
var faMortarPestle = {
|
||
prefix: 'fas',
|
||
iconName: 'mortar-pestle',
|
||
icon: [512, 512, [], "f5a7", "M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faMosque = {
|
||
prefix: 'fas',
|
||
iconName: 'mosque',
|
||
icon: [640, 512, [], "f678", "M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"]
|
||
};
|
||
var faMotorcycle = {
|
||
prefix: 'fas',
|
||
iconName: 'motorcycle',
|
||
icon: [640, 512, [], "f21c", "M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z"]
|
||
};
|
||
var faMountain = {
|
||
prefix: 'fas',
|
||
iconName: 'mountain',
|
||
icon: [640, 512, [], "f6fc", "M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"]
|
||
};
|
||
var faMouse = {
|
||
prefix: 'fas',
|
||
iconName: 'mouse',
|
||
icon: [384, 512, [], "f8cc", "M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z"]
|
||
};
|
||
var faMousePointer = {
|
||
prefix: 'fas',
|
||
iconName: 'mouse-pointer',
|
||
icon: [320, 512, [], "f245", "M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"]
|
||
};
|
||
var faMugHot = {
|
||
prefix: 'fas',
|
||
iconName: 'mug-hot',
|
||
icon: [512, 512, [], "f7b6", "M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]
|
||
};
|
||
var faMusic = {
|
||
prefix: 'fas',
|
||
iconName: 'music',
|
||
icon: [512, 512, [], "f001", "M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z"]
|
||
};
|
||
var faNetworkWired = {
|
||
prefix: 'fas',
|
||
iconName: 'network-wired',
|
||
icon: [640, 512, [], "f6ff", "M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"]
|
||
};
|
||
var faNeuter = {
|
||
prefix: 'fas',
|
||
iconName: 'neuter',
|
||
icon: [288, 512, [], "f22c", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]
|
||
};
|
||
var faNewspaper = {
|
||
prefix: 'fas',
|
||
iconName: 'newspaper',
|
||
icon: [576, 512, [], "f1ea", "M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"]
|
||
};
|
||
var faNotEqual = {
|
||
prefix: 'fas',
|
||
iconName: 'not-equal',
|
||
icon: [448, 512, [], "f53e", "M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"]
|
||
};
|
||
var faNotesMedical = {
|
||
prefix: 'fas',
|
||
iconName: 'notes-medical',
|
||
icon: [384, 512, [], "f481", "M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"]
|
||
};
|
||
var faObjectGroup = {
|
||
prefix: 'fas',
|
||
iconName: 'object-group',
|
||
icon: [512, 512, [], "f247", "M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"]
|
||
};
|
||
var faObjectUngroup = {
|
||
prefix: 'fas',
|
||
iconName: 'object-ungroup',
|
||
icon: [576, 512, [], "f248", "M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"]
|
||
};
|
||
var faOilCan = {
|
||
prefix: 'fas',
|
||
iconName: 'oil-can',
|
||
icon: [640, 512, [], "f613", "M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"]
|
||
};
|
||
var faOm = {
|
||
prefix: 'fas',
|
||
iconName: 'om',
|
||
icon: [512, 512, [], "f679", "M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"]
|
||
};
|
||
var faOtter = {
|
||
prefix: 'fas',
|
||
iconName: 'otter',
|
||
icon: [640, 512, [], "f700", "M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"]
|
||
};
|
||
var faOutdent = {
|
||
prefix: 'fas',
|
||
iconName: 'outdent',
|
||
icon: [448, 512, [], "f03b", "M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faPager = {
|
||
prefix: 'fas',
|
||
iconName: 'pager',
|
||
icon: [512, 512, [], "f815", "M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z"]
|
||
};
|
||
var faPaintBrush = {
|
||
prefix: 'fas',
|
||
iconName: 'paint-brush',
|
||
icon: [512, 512, [], "f1fc", "M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"]
|
||
};
|
||
var faPaintRoller = {
|
||
prefix: 'fas',
|
||
iconName: 'paint-roller',
|
||
icon: [512, 512, [], "f5aa", "M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"]
|
||
};
|
||
var faPalette = {
|
||
prefix: 'fas',
|
||
iconName: 'palette',
|
||
icon: [512, 512, [], "f53f", "M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faPallet = {
|
||
prefix: 'fas',
|
||
iconName: 'pallet',
|
||
icon: [640, 512, [], "f482", "M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"]
|
||
};
|
||
var faPaperPlane = {
|
||
prefix: 'fas',
|
||
iconName: 'paper-plane',
|
||
icon: [512, 512, [], "f1d8", "M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"]
|
||
};
|
||
var faPaperclip = {
|
||
prefix: 'fas',
|
||
iconName: 'paperclip',
|
||
icon: [448, 512, [], "f0c6", "M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"]
|
||
};
|
||
var faParachuteBox = {
|
||
prefix: 'fas',
|
||
iconName: 'parachute-box',
|
||
icon: [512, 512, [], "f4cd", "M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"]
|
||
};
|
||
var faParagraph = {
|
||
prefix: 'fas',
|
||
iconName: 'paragraph',
|
||
icon: [448, 512, [], "f1dd", "M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z"]
|
||
};
|
||
var faParking = {
|
||
prefix: 'fas',
|
||
iconName: 'parking',
|
||
icon: [448, 512, [], "f540", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"]
|
||
};
|
||
var faPassport = {
|
||
prefix: 'fas',
|
||
iconName: 'passport',
|
||
icon: [448, 512, [], "f5ab", "M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"]
|
||
};
|
||
var faPastafarianism = {
|
||
prefix: 'fas',
|
||
iconName: 'pastafarianism',
|
||
icon: [640, 512, [], "f67b", "M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"]
|
||
};
|
||
var faPaste = {
|
||
prefix: 'fas',
|
||
iconName: 'paste',
|
||
icon: [448, 512, [], "f0ea", "M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"]
|
||
};
|
||
var faPause = {
|
||
prefix: 'fas',
|
||
iconName: 'pause',
|
||
icon: [448, 512, [], "f04c", "M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"]
|
||
};
|
||
var faPauseCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'pause-circle',
|
||
icon: [512, 512, [], "f28b", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"]
|
||
};
|
||
var faPaw = {
|
||
prefix: 'fas',
|
||
iconName: 'paw',
|
||
icon: [512, 512, [], "f1b0", "M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"]
|
||
};
|
||
var faPeace = {
|
||
prefix: 'fas',
|
||
iconName: 'peace',
|
||
icon: [496, 512, [], "f67c", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"]
|
||
};
|
||
var faPen = {
|
||
prefix: 'fas',
|
||
iconName: 'pen',
|
||
icon: [512, 512, [], "f304", "M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"]
|
||
};
|
||
var faPenAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'pen-alt',
|
||
icon: [512, 512, [], "f305", "M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"]
|
||
};
|
||
var faPenFancy = {
|
||
prefix: 'fas',
|
||
iconName: 'pen-fancy',
|
||
icon: [512, 512, [], "f5ac", "M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"]
|
||
};
|
||
var faPenNib = {
|
||
prefix: 'fas',
|
||
iconName: 'pen-nib',
|
||
icon: [512, 512, [], "f5ad", "M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"]
|
||
};
|
||
var faPenSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'pen-square',
|
||
icon: [448, 512, [], "f14b", "M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"]
|
||
};
|
||
var faPencilAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'pencil-alt',
|
||
icon: [512, 512, [], "f303", "M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"]
|
||
};
|
||
var faPencilRuler = {
|
||
prefix: 'fas',
|
||
iconName: 'pencil-ruler',
|
||
icon: [512, 512, [], "f5ae", "M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"]
|
||
};
|
||
var faPeopleCarry = {
|
||
prefix: 'fas',
|
||
iconName: 'people-carry',
|
||
icon: [640, 512, [], "f4ce", "M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"]
|
||
};
|
||
var faPepperHot = {
|
||
prefix: 'fas',
|
||
iconName: 'pepper-hot',
|
||
icon: [512, 512, [], "f816", "M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z"]
|
||
};
|
||
var faPercent = {
|
||
prefix: 'fas',
|
||
iconName: 'percent',
|
||
icon: [448, 512, [], "f295", "M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"]
|
||
};
|
||
var faPercentage = {
|
||
prefix: 'fas',
|
||
iconName: 'percentage',
|
||
icon: [384, 512, [], "f541", "M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"]
|
||
};
|
||
var faPersonBooth = {
|
||
prefix: 'fas',
|
||
iconName: 'person-booth',
|
||
icon: [576, 512, [], "f756", "M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z"]
|
||
};
|
||
var faPhone = {
|
||
prefix: 'fas',
|
||
iconName: 'phone',
|
||
icon: [512, 512, [], "f095", "M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"]
|
||
};
|
||
var faPhoneAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'phone-alt',
|
||
icon: [512, 512, [], "f879", "M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z"]
|
||
};
|
||
var faPhoneSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'phone-slash',
|
||
icon: [640, 512, [], "f3dd", "M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"]
|
||
};
|
||
var faPhoneSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'phone-square',
|
||
icon: [448, 512, [], "f098", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"]
|
||
};
|
||
var faPhoneSquareAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'phone-square-alt',
|
||
icon: [448, 512, [], "f87b", "M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z"]
|
||
};
|
||
var faPhoneVolume = {
|
||
prefix: 'fas',
|
||
iconName: 'phone-volume',
|
||
icon: [384, 512, [], "f2a0", "M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"]
|
||
};
|
||
var faPhotoVideo = {
|
||
prefix: 'fas',
|
||
iconName: 'photo-video',
|
||
icon: [640, 512, [], "f87c", "M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z"]
|
||
};
|
||
var faPiggyBank = {
|
||
prefix: 'fas',
|
||
iconName: 'piggy-bank',
|
||
icon: [576, 512, [], "f4d3", "M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"]
|
||
};
|
||
var faPills = {
|
||
prefix: 'fas',
|
||
iconName: 'pills',
|
||
icon: [576, 512, [], "f484", "M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"]
|
||
};
|
||
var faPizzaSlice = {
|
||
prefix: 'fas',
|
||
iconName: 'pizza-slice',
|
||
icon: [512, 512, [], "f818", "M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"]
|
||
};
|
||
var faPlaceOfWorship = {
|
||
prefix: 'fas',
|
||
iconName: 'place-of-worship',
|
||
icon: [640, 512, [], "f67f", "M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"]
|
||
};
|
||
var faPlane = {
|
||
prefix: 'fas',
|
||
iconName: 'plane',
|
||
icon: [576, 512, [], "f072", "M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"]
|
||
};
|
||
var faPlaneArrival = {
|
||
prefix: 'fas',
|
||
iconName: 'plane-arrival',
|
||
icon: [640, 512, [], "f5af", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"]
|
||
};
|
||
var faPlaneDeparture = {
|
||
prefix: 'fas',
|
||
iconName: 'plane-departure',
|
||
icon: [640, 512, [], "f5b0", "M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"]
|
||
};
|
||
var faPlay = {
|
||
prefix: 'fas',
|
||
iconName: 'play',
|
||
icon: [448, 512, [], "f04b", "M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"]
|
||
};
|
||
var faPlayCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'play-circle',
|
||
icon: [512, 512, [], "f144", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"]
|
||
};
|
||
var faPlug = {
|
||
prefix: 'fas',
|
||
iconName: 'plug',
|
||
icon: [384, 512, [], "f1e6", "M256 144V32c0-17.673 14.327-32 32-32s32 14.327 32 32v112h-64zm112 16H16c-8.837 0-16 7.163-16 16v32c0 8.837 7.163 16 16 16h16v32c0 77.406 54.969 141.971 128 156.796V512h64v-99.204c73.031-14.825 128-79.39 128-156.796v-32h16c8.837 0 16-7.163 16-16v-32c0-8.837-7.163-16-16-16zm-240-16V32c0-17.673-14.327-32-32-32S64 14.327 64 32v112h64z"]
|
||
};
|
||
var faPlus = {
|
||
prefix: 'fas',
|
||
iconName: 'plus',
|
||
icon: [448, 512, [], "f067", "M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faPlusCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'plus-circle',
|
||
icon: [512, 512, [], "f055", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"]
|
||
};
|
||
var faPlusSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'plus-square',
|
||
icon: [448, 512, [], "f0fe", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"]
|
||
};
|
||
var faPodcast = {
|
||
prefix: 'fas',
|
||
iconName: 'podcast',
|
||
icon: [448, 512, [], "f2ce", "M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"]
|
||
};
|
||
var faPoll = {
|
||
prefix: 'fas',
|
||
iconName: 'poll',
|
||
icon: [448, 512, [], "f681", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"]
|
||
};
|
||
var faPollH = {
|
||
prefix: 'fas',
|
||
iconName: 'poll-h',
|
||
icon: [448, 512, [], "f682", "M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"]
|
||
};
|
||
var faPoo = {
|
||
prefix: 'fas',
|
||
iconName: 'poo',
|
||
icon: [512, 512, [], "f2fe", "M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faPooStorm = {
|
||
prefix: 'fas',
|
||
iconName: 'poo-storm',
|
||
icon: [448, 512, [], "f75a", "M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z"]
|
||
};
|
||
var faPoop = {
|
||
prefix: 'fas',
|
||
iconName: 'poop',
|
||
icon: [512, 512, [], "f619", "M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"]
|
||
};
|
||
var faPortrait = {
|
||
prefix: 'fas',
|
||
iconName: 'portrait',
|
||
icon: [384, 512, [], "f3e0", "M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]
|
||
};
|
||
var faPoundSign = {
|
||
prefix: 'fas',
|
||
iconName: 'pound-sign',
|
||
icon: [320, 512, [], "f154", "M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"]
|
||
};
|
||
var faPowerOff = {
|
||
prefix: 'fas',
|
||
iconName: 'power-off',
|
||
icon: [512, 512, [], "f011", "M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"]
|
||
};
|
||
var faPray = {
|
||
prefix: 'fas',
|
||
iconName: 'pray',
|
||
icon: [384, 512, [], "f683", "M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"]
|
||
};
|
||
var faPrayingHands = {
|
||
prefix: 'fas',
|
||
iconName: 'praying-hands',
|
||
icon: [640, 512, [], "f684", "M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"]
|
||
};
|
||
var faPrescription = {
|
||
prefix: 'fas',
|
||
iconName: 'prescription',
|
||
icon: [384, 512, [], "f5b1", "M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"]
|
||
};
|
||
var faPrescriptionBottle = {
|
||
prefix: 'fas',
|
||
iconName: 'prescription-bottle',
|
||
icon: [384, 512, [], "f485", "M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"]
|
||
};
|
||
var faPrescriptionBottleAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'prescription-bottle-alt',
|
||
icon: [384, 512, [], "f486", "M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"]
|
||
};
|
||
var faPrint = {
|
||
prefix: 'fas',
|
||
iconName: 'print',
|
||
icon: [512, 512, [], "f02f", "M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]
|
||
};
|
||
var faProcedures = {
|
||
prefix: 'fas',
|
||
iconName: 'procedures',
|
||
icon: [640, 512, [], "f487", "M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"]
|
||
};
|
||
var faProjectDiagram = {
|
||
prefix: 'fas',
|
||
iconName: 'project-diagram',
|
||
icon: [640, 512, [], "f542", "M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faPuzzlePiece = {
|
||
prefix: 'fas',
|
||
iconName: 'puzzle-piece',
|
||
icon: [576, 512, [], "f12e", "M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"]
|
||
};
|
||
var faQrcode = {
|
||
prefix: 'fas',
|
||
iconName: 'qrcode',
|
||
icon: [448, 512, [], "f029", "M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"]
|
||
};
|
||
var faQuestion = {
|
||
prefix: 'fas',
|
||
iconName: 'question',
|
||
icon: [384, 512, [], "f128", "M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"]
|
||
};
|
||
var faQuestionCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'question-circle',
|
||
icon: [512, 512, [], "f059", "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"]
|
||
};
|
||
var faQuidditch = {
|
||
prefix: 'fas',
|
||
iconName: 'quidditch',
|
||
icon: [640, 512, [], "f458", "M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"]
|
||
};
|
||
var faQuoteLeft = {
|
||
prefix: 'fas',
|
||
iconName: 'quote-left',
|
||
icon: [512, 512, [], "f10d", "M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faQuoteRight = {
|
||
prefix: 'fas',
|
||
iconName: 'quote-right',
|
||
icon: [512, 512, [], "f10e", "M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faQuran = {
|
||
prefix: 'fas',
|
||
iconName: 'quran',
|
||
icon: [448, 512, [], "f687", "M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"]
|
||
};
|
||
var faRadiation = {
|
||
prefix: 'fas',
|
||
iconName: 'radiation',
|
||
icon: [496, 512, [], "f7b9", "M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z"]
|
||
};
|
||
var faRadiationAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'radiation-alt',
|
||
icon: [496, 512, [], "f7ba", "M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"]
|
||
};
|
||
var faRainbow = {
|
||
prefix: 'fas',
|
||
iconName: 'rainbow',
|
||
icon: [576, 512, [], "f75b", "M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z"]
|
||
};
|
||
var faRandom = {
|
||
prefix: 'fas',
|
||
iconName: 'random',
|
||
icon: [512, 512, [], "f074", "M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"]
|
||
};
|
||
var faReceipt = {
|
||
prefix: 'fas',
|
||
iconName: 'receipt',
|
||
icon: [384, 512, [], "f543", "M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"]
|
||
};
|
||
var faRecordVinyl = {
|
||
prefix: 'fas',
|
||
iconName: 'record-vinyl',
|
||
icon: [512, 512, [], "f8d9", "M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z"]
|
||
};
|
||
var faRecycle = {
|
||
prefix: 'fas',
|
||
iconName: 'recycle',
|
||
icon: [512, 512, [], "f1b8", "M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"]
|
||
};
|
||
var faRedo = {
|
||
prefix: 'fas',
|
||
iconName: 'redo',
|
||
icon: [512, 512, [], "f01e", "M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"]
|
||
};
|
||
var faRedoAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'redo-alt',
|
||
icon: [512, 512, [], "f2f9", "M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"]
|
||
};
|
||
var faRegistered = {
|
||
prefix: 'fas',
|
||
iconName: 'registered',
|
||
icon: [512, 512, [], "f25d", "M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"]
|
||
};
|
||
var faRemoveFormat = {
|
||
prefix: 'fas',
|
||
iconName: 'remove-format',
|
||
icon: [640, 512, [], "f87d", "M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z"]
|
||
};
|
||
var faReply = {
|
||
prefix: 'fas',
|
||
iconName: 'reply',
|
||
icon: [512, 512, [], "f3e5", "M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"]
|
||
};
|
||
var faReplyAll = {
|
||
prefix: 'fas',
|
||
iconName: 'reply-all',
|
||
icon: [576, 512, [], "f122", "M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"]
|
||
};
|
||
var faRepublican = {
|
||
prefix: 'fas',
|
||
iconName: 'republican',
|
||
icon: [640, 512, [], "f75e", "M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z"]
|
||
};
|
||
var faRestroom = {
|
||
prefix: 'fas',
|
||
iconName: 'restroom',
|
||
icon: [640, 512, [], "f7bd", "M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z"]
|
||
};
|
||
var faRetweet = {
|
||
prefix: 'fas',
|
||
iconName: 'retweet',
|
||
icon: [640, 512, [], "f079", "M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"]
|
||
};
|
||
var faRibbon = {
|
||
prefix: 'fas',
|
||
iconName: 'ribbon',
|
||
icon: [448, 512, [], "f4d6", "M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"]
|
||
};
|
||
var faRing = {
|
||
prefix: 'fas',
|
||
iconName: 'ring',
|
||
icon: [512, 512, [], "f70b", "M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"]
|
||
};
|
||
var faRoad = {
|
||
prefix: 'fas',
|
||
iconName: 'road',
|
||
icon: [576, 512, [], "f018", "M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"]
|
||
};
|
||
var faRobot = {
|
||
prefix: 'fas',
|
||
iconName: 'robot',
|
||
icon: [640, 512, [], "f544", "M0 256v128c0 17.7 14.3 32 32 32h32V224H32c-17.7 0-32 14.3-32 32zM464 96H352V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v64H176c-44.2 0-80 35.8-80 80v272c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V176c0-44.2-35.8-80-80-80zM256 416h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm128 120h-64v-32h64v32zm96 0h-64v-32h64v32zm-32-120c-22.1 0-40-17.9-40-40s17.9-40 40-40 40 17.9 40 40-17.9 40-40 40zm192-72h-32v192h32c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32z"]
|
||
};
|
||
var faRocket = {
|
||
prefix: 'fas',
|
||
iconName: 'rocket',
|
||
icon: [512, 512, [], "f135", "M505.05 19.1a15.89 15.89 0 0 0-12.2-12.2C460.65 0 435.46 0 410.36 0c-103.2 0-165.1 55.2-211.29 128H94.87A48 48 0 0 0 52 154.49l-49.42 98.8A24 24 0 0 0 24.07 288h103.77l-22.47 22.47a32 32 0 0 0 0 45.25l50.9 50.91a32 32 0 0 0 45.26 0L224 384.16V488a24 24 0 0 0 34.7 21.49l98.7-49.39a47.91 47.91 0 0 0 26.5-42.9V312.79c72.59-46.3 128-108.4 128-211.09.1-25.2.1-50.4-6.85-82.6zM384 168a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"]
|
||
};
|
||
var faRoute = {
|
||
prefix: 'fas',
|
||
iconName: 'route',
|
||
icon: [512, 512, [], "f4d7", "M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faRss = {
|
||
prefix: 'fas',
|
||
iconName: 'rss',
|
||
icon: [448, 512, [], "f09e", "M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"]
|
||
};
|
||
var faRssSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'rss-square',
|
||
icon: [448, 512, [], "f143", "M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"]
|
||
};
|
||
var faRubleSign = {
|
||
prefix: 'fas',
|
||
iconName: 'ruble-sign',
|
||
icon: [384, 512, [], "f158", "M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"]
|
||
};
|
||
var faRuler = {
|
||
prefix: 'fas',
|
||
iconName: 'ruler',
|
||
icon: [640, 512, [], "f545", "M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"]
|
||
};
|
||
var faRulerCombined = {
|
||
prefix: 'fas',
|
||
iconName: 'ruler-combined',
|
||
icon: [512, 512, [], "f546", "M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faRulerHorizontal = {
|
||
prefix: 'fas',
|
||
iconName: 'ruler-horizontal',
|
||
icon: [576, 512, [], "f547", "M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faRulerVertical = {
|
||
prefix: 'fas',
|
||
iconName: 'ruler-vertical',
|
||
icon: [256, 512, [], "f548", "M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"]
|
||
};
|
||
var faRunning = {
|
||
prefix: 'fas',
|
||
iconName: 'running',
|
||
icon: [416, 512, [], "f70c", "M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"]
|
||
};
|
||
var faRupeeSign = {
|
||
prefix: 'fas',
|
||
iconName: 'rupee-sign',
|
||
icon: [320, 512, [], "f156", "M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"]
|
||
};
|
||
var faSadCry = {
|
||
prefix: 'fas',
|
||
iconName: 'sad-cry',
|
||
icon: [496, 512, [], "f5b3", "M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"]
|
||
};
|
||
var faSadTear = {
|
||
prefix: 'fas',
|
||
iconName: 'sad-tear',
|
||
icon: [496, 512, [], "f5b4", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"]
|
||
};
|
||
var faSatellite = {
|
||
prefix: 'fas',
|
||
iconName: 'satellite',
|
||
icon: [512, 512, [], "f7bf", "M502.7 265l-80.3-80.4 47.8-47.9c13.1-13.1 13.1-34.4 0-47.5l-47.5-47.5c-13.1-13.1-34.4-13.1-47.5 0l-47.8 47.9-80.3-80.3C240.8 3.1 232.7 0 224.5 0S208.2 3.1 202 9.3L105.3 106c-12.4 12.4-12.4 32.6 0 45.1l80.3 80.4-9.8 9.8C122.1 217 59.6 218.6 7.3 246.7c-8.5 4.6-9.6 16.4-2.8 23.2L112 377.4l-17.8 17.8c-2.6-.7-5-1.6-7.8-1.6-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32c0-2.8-.9-5.2-1.6-7.8l17.8-17.8 107.5 107.5c6.8 6.8 18.7 5.7 23.2-2.8 28.1-52.3 29.7-114.8 5.4-168.5l9.9-9.9 80.3 80.4c6.2 6.2 14.4 9.3 22.5 9.3s16.3-3.1 22.5-9.3l96.7-96.7c12.5-12.4 12.5-32.6.1-45zm-352-136.5l73.8-73.8 68.9 68.9-73.8 73.8-68.9-68.9zm232.8 232.8l-68.9-68.9 73.8-73.8 68.9 68.9-73.8 73.8z"]
|
||
};
|
||
var faSatelliteDish = {
|
||
prefix: 'fas',
|
||
iconName: 'satellite-dish',
|
||
icon: [512, 512, [], "f7c0", "M188.8 345.9l27.4-27.4c2.6.7 5 1.6 7.8 1.6 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 2.8.9 5.2 1.6 7.8l-27.4 27.4L49.4 206.5c-7.3-7.3-20.1-6.1-25 3-41.8 77.8-29.9 176.7 35.7 242.3 65.6 65.6 164.6 77.5 242.3 35.7 9.2-4.9 10.4-17.7 3-25L188.8 345.9zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z"]
|
||
};
|
||
var faSave = {
|
||
prefix: 'fas',
|
||
iconName: 'save',
|
||
icon: [448, 512, [], "f0c7", "M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"]
|
||
};
|
||
var faSchool = {
|
||
prefix: 'fas',
|
||
iconName: 'school',
|
||
icon: [640, 512, [], "f549", "M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faScrewdriver = {
|
||
prefix: 'fas',
|
||
iconName: 'screwdriver',
|
||
icon: [512, 512, [], "f54a", "M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"]
|
||
};
|
||
var faScroll = {
|
||
prefix: 'fas',
|
||
iconName: 'scroll',
|
||
icon: [640, 512, [], "f70e", "M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"]
|
||
};
|
||
var faSdCard = {
|
||
prefix: 'fas',
|
||
iconName: 'sd-card',
|
||
icon: [384, 512, [], "f7c2", "M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z"]
|
||
};
|
||
var faSearch = {
|
||
prefix: 'fas',
|
||
iconName: 'search',
|
||
icon: [512, 512, [], "f002", "M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"]
|
||
};
|
||
var faSearchDollar = {
|
||
prefix: 'fas',
|
||
iconName: 'search-dollar',
|
||
icon: [512, 512, [], "f688", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"]
|
||
};
|
||
var faSearchLocation = {
|
||
prefix: 'fas',
|
||
iconName: 'search-location',
|
||
icon: [512, 512, [], "f689", "M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]
|
||
};
|
||
var faSearchMinus = {
|
||
prefix: 'fas',
|
||
iconName: 'search-minus',
|
||
icon: [512, 512, [], "f010", "M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"]
|
||
};
|
||
var faSearchPlus = {
|
||
prefix: 'fas',
|
||
iconName: 'search-plus',
|
||
icon: [512, 512, [], "f00e", "M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"]
|
||
};
|
||
var faSeedling = {
|
||
prefix: 'fas',
|
||
iconName: 'seedling',
|
||
icon: [512, 512, [], "f4d8", "M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"]
|
||
};
|
||
var faServer = {
|
||
prefix: 'fas',
|
||
iconName: 'server',
|
||
icon: [512, 512, [], "f233", "M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"]
|
||
};
|
||
var faShapes = {
|
||
prefix: 'fas',
|
||
iconName: 'shapes',
|
||
icon: [512, 512, [], "f61f", "M512 320v160c0 17.67-14.33 32-32 32H320c-17.67 0-32-14.33-32-32V320c0-17.67 14.33-32 32-32h160c17.67 0 32 14.33 32 32zm-384-64C57.31 256 0 313.31 0 384s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm351.03-32c25.34 0 41.18-26.67 28.51-48L412.51 16c-12.67-21.33-44.35-21.33-57.02 0l-95.03 160c-12.67 21.33 3.17 48 28.51 48h190.06z"]
|
||
};
|
||
var faShare = {
|
||
prefix: 'fas',
|
||
iconName: 'share',
|
||
icon: [512, 512, [], "f064", "M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"]
|
||
};
|
||
var faShareAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'share-alt',
|
||
icon: [448, 512, [], "f1e0", "M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"]
|
||
};
|
||
var faShareAltSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'share-alt-square',
|
||
icon: [448, 512, [], "f1e1", "M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"]
|
||
};
|
||
var faShareSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'share-square',
|
||
icon: [576, 512, [], "f14d", "M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"]
|
||
};
|
||
var faShekelSign = {
|
||
prefix: 'fas',
|
||
iconName: 'shekel-sign',
|
||
icon: [448, 512, [], "f20b", "M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faShieldAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'shield-alt',
|
||
icon: [512, 512, [], "f3ed", "M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z"]
|
||
};
|
||
var faShip = {
|
||
prefix: 'fas',
|
||
iconName: 'ship',
|
||
icon: [640, 512, [], "f21a", "M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"]
|
||
};
|
||
var faShippingFast = {
|
||
prefix: 'fas',
|
||
iconName: 'shipping-fast',
|
||
icon: [640, 512, [], "f48b", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]
|
||
};
|
||
var faShoePrints = {
|
||
prefix: 'fas',
|
||
iconName: 'shoe-prints',
|
||
icon: [640, 512, [], "f54b", "M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"]
|
||
};
|
||
var faShoppingBag = {
|
||
prefix: 'fas',
|
||
iconName: 'shopping-bag',
|
||
icon: [448, 512, [], "f290", "M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"]
|
||
};
|
||
var faShoppingBasket = {
|
||
prefix: 'fas',
|
||
iconName: 'shopping-basket',
|
||
icon: [576, 512, [], "f291", "M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"]
|
||
};
|
||
var faShoppingCart = {
|
||
prefix: 'fas',
|
||
iconName: 'shopping-cart',
|
||
icon: [576, 512, [], "f07a", "M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"]
|
||
};
|
||
var faShower = {
|
||
prefix: 'fas',
|
||
iconName: 'shower',
|
||
icon: [512, 512, [], "f2cc", "M389.66 135.6L231.6 293.66c-9.37 9.37-24.57 9.37-33.94 0l-11.32-11.32c-9.37-9.37-9.37-24.57 0-33.94l.11-.11c-34.03-40.21-35.16-98.94-3.39-140.38-11.97-7.55-26.14-11.91-41.3-11.91C98.88 96 64 130.88 64 173.76V480H0V173.76C0 95.59 63.59 32 141.76 32c36.93 0 70.61 14.2 95.86 37.42 35.9-11.51 76.5-4.5 106.67 21.03l.11-.11c9.37-9.37 24.57-9.37 33.94 0l11.32 11.32c9.37 9.37 9.37 24.57 0 33.94zM384 208c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm48-16c8.837 0 16 7.163 16 16s-7.163 16-16 16-16-7.163-16-16 7.163-16 16-16zm80 16c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-160 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm32 0c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-128 32c0-8.837 7.163-16 16-16s16 7.163 16 16-7.163 16-16 16-16-7.163-16-16zm96 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-96 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm64 0c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16zm-32 32c0 8.837-7.163 16-16 16s-16-7.163-16-16 7.163-16 16-16 16 7.163 16 16z"]
|
||
};
|
||
var faShuttleVan = {
|
||
prefix: 'fas',
|
||
iconName: 'shuttle-van',
|
||
icon: [640, 512, [], "f5b6", "M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"]
|
||
};
|
||
var faSign = {
|
||
prefix: 'fas',
|
||
iconName: 'sign',
|
||
icon: [512, 512, [], "f4d9", "M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"]
|
||
};
|
||
var faSignInAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'sign-in-alt',
|
||
icon: [512, 512, [], "f2f6", "M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"]
|
||
};
|
||
var faSignLanguage = {
|
||
prefix: 'fas',
|
||
iconName: 'sign-language',
|
||
icon: [448, 512, [], "f2a7", "M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"]
|
||
};
|
||
var faSignOutAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'sign-out-alt',
|
||
icon: [512, 512, [], "f2f5", "M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"]
|
||
};
|
||
var faSignal = {
|
||
prefix: 'fas',
|
||
iconName: 'signal',
|
||
icon: [640, 512, [], "f012", "M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faSignature = {
|
||
prefix: 'fas',
|
||
iconName: 'signature',
|
||
icon: [640, 512, [], "f5b7", "M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z"]
|
||
};
|
||
var faSimCard = {
|
||
prefix: 'fas',
|
||
iconName: 'sim-card',
|
||
icon: [384, 512, [], "f7c4", "M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z"]
|
||
};
|
||
var faSitemap = {
|
||
prefix: 'fas',
|
||
iconName: 'sitemap',
|
||
icon: [640, 512, [], "f0e8", "M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]
|
||
};
|
||
var faSkating = {
|
||
prefix: 'fas',
|
||
iconName: 'skating',
|
||
icon: [448, 512, [], "f7c5", "M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]
|
||
};
|
||
var faSkiing = {
|
||
prefix: 'fas',
|
||
iconName: 'skiing',
|
||
icon: [512, 512, [], "f7c9", "M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z"]
|
||
};
|
||
var faSkiingNordic = {
|
||
prefix: 'fas',
|
||
iconName: 'skiing-nordic',
|
||
icon: [576, 512, [], "f7ca", "M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z"]
|
||
};
|
||
var faSkull = {
|
||
prefix: 'fas',
|
||
iconName: 'skull',
|
||
icon: [512, 512, [], "f54c", "M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"]
|
||
};
|
||
var faSkullCrossbones = {
|
||
prefix: 'fas',
|
||
iconName: 'skull-crossbones',
|
||
icon: [448, 512, [], "f714", "M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"]
|
||
};
|
||
var faSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'slash',
|
||
icon: [640, 512, [], "f715", "M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"]
|
||
};
|
||
var faSleigh = {
|
||
prefix: 'fas',
|
||
iconName: 'sleigh',
|
||
icon: [640, 512, [], "f7cc", "M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z"]
|
||
};
|
||
var faSlidersH = {
|
||
prefix: 'fas',
|
||
iconName: 'sliders-h',
|
||
icon: [512, 512, [], "f1de", "M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"]
|
||
};
|
||
var faSmile = {
|
||
prefix: 'fas',
|
||
iconName: 'smile',
|
||
icon: [496, 512, [], "f118", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"]
|
||
};
|
||
var faSmileBeam = {
|
||
prefix: 'fas',
|
||
iconName: 'smile-beam',
|
||
icon: [496, 512, [], "f5b8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"]
|
||
};
|
||
var faSmileWink = {
|
||
prefix: 'fas',
|
||
iconName: 'smile-wink',
|
||
icon: [496, 512, [], "f4da", "M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"]
|
||
};
|
||
var faSmog = {
|
||
prefix: 'fas',
|
||
iconName: 'smog',
|
||
icon: [640, 512, [], "f75f", "M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z"]
|
||
};
|
||
var faSmoking = {
|
||
prefix: 'fas',
|
||
iconName: 'smoking',
|
||
icon: [640, 512, [], "f48d", "M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"]
|
||
};
|
||
var faSmokingBan = {
|
||
prefix: 'fas',
|
||
iconName: 'smoking-ban',
|
||
icon: [512, 512, [], "f54d", "M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"]
|
||
};
|
||
var faSms = {
|
||
prefix: 'fas',
|
||
iconName: 'sms',
|
||
icon: [512, 512, [], "f7cd", "M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z"]
|
||
};
|
||
var faSnowboarding = {
|
||
prefix: 'fas',
|
||
iconName: 'snowboarding',
|
||
icon: [512, 512, [], "f7ce", "M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z"]
|
||
};
|
||
var faSnowflake = {
|
||
prefix: 'fas',
|
||
iconName: 'snowflake',
|
||
icon: [448, 512, [], "f2dc", "M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z"]
|
||
};
|
||
var faSnowman = {
|
||
prefix: 'fas',
|
||
iconName: 'snowman',
|
||
icon: [512, 512, [], "f7d0", "M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]
|
||
};
|
||
var faSnowplow = {
|
||
prefix: 'fas',
|
||
iconName: 'snowplow',
|
||
icon: [640, 512, [], "f7d2", "M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]
|
||
};
|
||
var faSocks = {
|
||
prefix: 'fas',
|
||
iconName: 'socks',
|
||
icon: [512, 512, [], "f696", "M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"]
|
||
};
|
||
var faSolarPanel = {
|
||
prefix: 'fas',
|
||
iconName: 'solar-panel',
|
||
icon: [640, 512, [], "f5ba", "M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"]
|
||
};
|
||
var faSort = {
|
||
prefix: 'fas',
|
||
iconName: 'sort',
|
||
icon: [320, 512, [], "f0dc", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"]
|
||
};
|
||
var faSortAlphaDown = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-alpha-down',
|
||
icon: [448, 512, [], "f15d", "M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"]
|
||
};
|
||
var faSortAlphaDownAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-alpha-down-alt',
|
||
icon: [448, 512, [], "f881", "M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"]
|
||
};
|
||
var faSortAlphaUp = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-alpha-up',
|
||
icon: [448, 512, [], "f15e", "M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"]
|
||
};
|
||
var faSortAlphaUpAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-alpha-up-alt',
|
||
icon: [448, 512, [], "f882", "M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"]
|
||
};
|
||
var faSortAmountDown = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-amount-down',
|
||
icon: [512, 512, [], "f160", "M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faSortAmountDownAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-amount-down-alt',
|
||
icon: [512, 512, [], "f884", "M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"]
|
||
};
|
||
var faSortAmountUp = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-amount-up',
|
||
icon: [512, 512, [], "f161", "M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faSortAmountUpAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-amount-up-alt',
|
||
icon: [512, 512, [], "f885", "M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z"]
|
||
};
|
||
var faSortDown = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-down',
|
||
icon: [320, 512, [], "f0dd", "M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"]
|
||
};
|
||
var faSortNumericDown = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-numeric-down',
|
||
icon: [448, 512, [], "f162", "M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"]
|
||
};
|
||
var faSortNumericDownAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-numeric-down-alt',
|
||
icon: [448, 512, [], "f886", "M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"]
|
||
};
|
||
var faSortNumericUp = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-numeric-up',
|
||
icon: [448, 512, [], "f163", "M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z"]
|
||
};
|
||
var faSortNumericUpAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-numeric-up-alt',
|
||
icon: [448, 512, [], "f887", "M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"]
|
||
};
|
||
var faSortUp = {
|
||
prefix: 'fas',
|
||
iconName: 'sort-up',
|
||
icon: [320, 512, [], "f0de", "M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"]
|
||
};
|
||
var faSpa = {
|
||
prefix: 'fas',
|
||
iconName: 'spa',
|
||
icon: [576, 512, [], "f5bb", "M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"]
|
||
};
|
||
var faSpaceShuttle = {
|
||
prefix: 'fas',
|
||
iconName: 'space-shuttle',
|
||
icon: [640, 512, [], "f197", "M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"]
|
||
};
|
||
var faSpellCheck = {
|
||
prefix: 'fas',
|
||
iconName: 'spell-check',
|
||
icon: [576, 512, [], "f891", "M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z"]
|
||
};
|
||
var faSpider = {
|
||
prefix: 'fas',
|
||
iconName: 'spider',
|
||
icon: [576, 512, [], "f717", "M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"]
|
||
};
|
||
var faSpinner = {
|
||
prefix: 'fas',
|
||
iconName: 'spinner',
|
||
icon: [512, 512, [], "f110", "M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"]
|
||
};
|
||
var faSplotch = {
|
||
prefix: 'fas',
|
||
iconName: 'splotch',
|
||
icon: [512, 512, [], "f5bc", "M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"]
|
||
};
|
||
var faSprayCan = {
|
||
prefix: 'fas',
|
||
iconName: 'spray-can',
|
||
icon: [512, 512, [], "f5bd", "M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]
|
||
};
|
||
var faSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'square',
|
||
icon: [448, 512, [], "f0c8", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faSquareFull = {
|
||
prefix: 'fas',
|
||
iconName: 'square-full',
|
||
icon: [512, 512, [], "f45c", "M512 512H0V0h512v512z"]
|
||
};
|
||
var faSquareRootAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'square-root-alt',
|
||
icon: [576, 512, [], "f698", "M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"]
|
||
};
|
||
var faStamp = {
|
||
prefix: 'fas',
|
||
iconName: 'stamp',
|
||
icon: [512, 512, [], "f5bf", "M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"]
|
||
};
|
||
var faStar = {
|
||
prefix: 'fas',
|
||
iconName: 'star',
|
||
icon: [576, 512, [], "f005", "M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"]
|
||
};
|
||
var faStarAndCrescent = {
|
||
prefix: 'fas',
|
||
iconName: 'star-and-crescent',
|
||
icon: [512, 512, [], "f699", "M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"]
|
||
};
|
||
var faStarHalf = {
|
||
prefix: 'fas',
|
||
iconName: 'star-half',
|
||
icon: [576, 512, [], "f089", "M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"]
|
||
};
|
||
var faStarHalfAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'star-half-alt',
|
||
icon: [536, 512, [], "f5c0", "M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"]
|
||
};
|
||
var faStarOfDavid = {
|
||
prefix: 'fas',
|
||
iconName: 'star-of-david',
|
||
icon: [464, 512, [], "f69a", "M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"]
|
||
};
|
||
var faStarOfLife = {
|
||
prefix: 'fas',
|
||
iconName: 'star-of-life',
|
||
icon: [480, 512, [], "f621", "M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"]
|
||
};
|
||
var faStepBackward = {
|
||
prefix: 'fas',
|
||
iconName: 'step-backward',
|
||
icon: [448, 512, [], "f048", "M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"]
|
||
};
|
||
var faStepForward = {
|
||
prefix: 'fas',
|
||
iconName: 'step-forward',
|
||
icon: [448, 512, [], "f051", "M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"]
|
||
};
|
||
var faStethoscope = {
|
||
prefix: 'fas',
|
||
iconName: 'stethoscope',
|
||
icon: [512, 512, [], "f0f1", "M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]
|
||
};
|
||
var faStickyNote = {
|
||
prefix: 'fas',
|
||
iconName: 'sticky-note',
|
||
icon: [448, 512, [], "f249", "M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"]
|
||
};
|
||
var faStop = {
|
||
prefix: 'fas',
|
||
iconName: 'stop',
|
||
icon: [448, 512, [], "f04d", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faStopCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'stop-circle',
|
||
icon: [512, 512, [], "f28d", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"]
|
||
};
|
||
var faStopwatch = {
|
||
prefix: 'fas',
|
||
iconName: 'stopwatch',
|
||
icon: [448, 512, [], "f2f2", "M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"]
|
||
};
|
||
var faStore = {
|
||
prefix: 'fas',
|
||
iconName: 'store',
|
||
icon: [616, 512, [], "f54e", "M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"]
|
||
};
|
||
var faStoreAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'store-alt',
|
||
icon: [640, 512, [], "f54f", "M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"]
|
||
};
|
||
var faStream = {
|
||
prefix: 'fas',
|
||
iconName: 'stream',
|
||
icon: [512, 512, [], "f550", "M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faStreetView = {
|
||
prefix: 'fas',
|
||
iconName: 'street-view',
|
||
icon: [512, 512, [], "f21d", "M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"]
|
||
};
|
||
var faStrikethrough = {
|
||
prefix: 'fas',
|
||
iconName: 'strikethrough',
|
||
icon: [512, 512, [], "f0cc", "M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z"]
|
||
};
|
||
var faStroopwafel = {
|
||
prefix: 'fas',
|
||
iconName: 'stroopwafel',
|
||
icon: [512, 512, [], "f551", "M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"]
|
||
};
|
||
var faSubscript = {
|
||
prefix: 'fas',
|
||
iconName: 'subscript',
|
||
icon: [512, 512, [], "f12c", "M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faSubway = {
|
||
prefix: 'fas',
|
||
iconName: 'subway',
|
||
icon: [448, 512, [], "f239", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"]
|
||
};
|
||
var faSuitcase = {
|
||
prefix: 'fas',
|
||
iconName: 'suitcase',
|
||
icon: [512, 512, [], "f0f2", "M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"]
|
||
};
|
||
var faSuitcaseRolling = {
|
||
prefix: 'fas',
|
||
iconName: 'suitcase-rolling',
|
||
icon: [384, 512, [], "f5c1", "M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"]
|
||
};
|
||
var faSun = {
|
||
prefix: 'fas',
|
||
iconName: 'sun',
|
||
icon: [512, 512, [], "f185", "M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"]
|
||
};
|
||
var faSuperscript = {
|
||
prefix: 'fas',
|
||
iconName: 'superscript',
|
||
icon: [512, 512, [], "f12b", "M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faSurprise = {
|
||
prefix: 'fas',
|
||
iconName: 'surprise',
|
||
icon: [496, 512, [], "f5c2", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faSwatchbook = {
|
||
prefix: 'fas',
|
||
iconName: 'swatchbook',
|
||
icon: [512, 512, [], "f5c3", "M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z"]
|
||
};
|
||
var faSwimmer = {
|
||
prefix: 'fas',
|
||
iconName: 'swimmer',
|
||
icon: [640, 512, [], "f5c4", "M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"]
|
||
};
|
||
var faSwimmingPool = {
|
||
prefix: 'fas',
|
||
iconName: 'swimming-pool',
|
||
icon: [640, 512, [], "f5c5", "M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"]
|
||
};
|
||
var faSynagogue = {
|
||
prefix: 'fas',
|
||
iconName: 'synagogue',
|
||
icon: [640, 512, [], "f69b", "M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"]
|
||
};
|
||
var faSync = {
|
||
prefix: 'fas',
|
||
iconName: 'sync',
|
||
icon: [512, 512, [], "f021", "M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z"]
|
||
};
|
||
var faSyncAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'sync-alt',
|
||
icon: [512, 512, [], "f2f1", "M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"]
|
||
};
|
||
var faSyringe = {
|
||
prefix: 'fas',
|
||
iconName: 'syringe',
|
||
icon: [512, 512, [], "f48e", "M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"]
|
||
};
|
||
var faTable = {
|
||
prefix: 'fas',
|
||
iconName: 'table',
|
||
icon: [512, 512, [], "f0ce", "M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"]
|
||
};
|
||
var faTableTennis = {
|
||
prefix: 'fas',
|
||
iconName: 'table-tennis',
|
||
icon: [512, 512, [], "f45d", "M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"]
|
||
};
|
||
var faTablet = {
|
||
prefix: 'fas',
|
||
iconName: 'tablet',
|
||
icon: [448, 512, [], "f10a", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]
|
||
};
|
||
var faTabletAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'tablet-alt',
|
||
icon: [448, 512, [], "f3fa", "M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"]
|
||
};
|
||
var faTablets = {
|
||
prefix: 'fas',
|
||
iconName: 'tablets',
|
||
icon: [640, 512, [], "f490", "M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"]
|
||
};
|
||
var faTachometerAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'tachometer-alt',
|
||
icon: [576, 512, [], "f3fd", "M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faTag = {
|
||
prefix: 'fas',
|
||
iconName: 'tag',
|
||
icon: [512, 512, [], "f02b", "M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"]
|
||
};
|
||
var faTags = {
|
||
prefix: 'fas',
|
||
iconName: 'tags',
|
||
icon: [640, 512, [], "f02c", "M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"]
|
||
};
|
||
var faTape = {
|
||
prefix: 'fas',
|
||
iconName: 'tape',
|
||
icon: [640, 512, [], "f4db", "M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"]
|
||
};
|
||
var faTasks = {
|
||
prefix: 'fas',
|
||
iconName: 'tasks',
|
||
icon: [512, 512, [], "f0ae", "M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faTaxi = {
|
||
prefix: 'fas',
|
||
iconName: 'taxi',
|
||
icon: [512, 512, [], "f1ba", "M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faTeeth = {
|
||
prefix: 'fas',
|
||
iconName: 'teeth',
|
||
icon: [640, 512, [], "f62e", "M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"]
|
||
};
|
||
var faTeethOpen = {
|
||
prefix: 'fas',
|
||
iconName: 'teeth-open',
|
||
icon: [640, 512, [], "f62f", "M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"]
|
||
};
|
||
var faTemperatureHigh = {
|
||
prefix: 'fas',
|
||
iconName: 'temperature-high',
|
||
icon: [512, 512, [], "f769", "M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"]
|
||
};
|
||
var faTemperatureLow = {
|
||
prefix: 'fas',
|
||
iconName: 'temperature-low',
|
||
icon: [512, 512, [], "f76b", "M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"]
|
||
};
|
||
var faTenge = {
|
||
prefix: 'fas',
|
||
iconName: 'tenge',
|
||
icon: [384, 512, [], "f7d7", "M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z"]
|
||
};
|
||
var faTerminal = {
|
||
prefix: 'fas',
|
||
iconName: 'terminal',
|
||
icon: [640, 512, [], "f120", "M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"]
|
||
};
|
||
var faTextHeight = {
|
||
prefix: 'fas',
|
||
iconName: 'text-height',
|
||
icon: [576, 512, [], "f034", "M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z"]
|
||
};
|
||
var faTextWidth = {
|
||
prefix: 'fas',
|
||
iconName: 'text-width',
|
||
icon: [448, 512, [], "f035", "M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z"]
|
||
};
|
||
var faTh = {
|
||
prefix: 'fas',
|
||
iconName: 'th',
|
||
icon: [512, 512, [], "f00a", "M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"]
|
||
};
|
||
var faThLarge = {
|
||
prefix: 'fas',
|
||
iconName: 'th-large',
|
||
icon: [512, 512, [], "f009", "M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"]
|
||
};
|
||
var faThList = {
|
||
prefix: 'fas',
|
||
iconName: 'th-list',
|
||
icon: [512, 512, [], "f00b", "M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"]
|
||
};
|
||
var faTheaterMasks = {
|
||
prefix: 'fas',
|
||
iconName: 'theater-masks',
|
||
icon: [640, 512, [], "f630", "M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"]
|
||
};
|
||
var faThermometer = {
|
||
prefix: 'fas',
|
||
iconName: 'thermometer',
|
||
icon: [512, 512, [], "f491", "M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"]
|
||
};
|
||
var faThermometerEmpty = {
|
||
prefix: 'fas',
|
||
iconName: 'thermometer-empty',
|
||
icon: [256, 512, [], "f2cb", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]
|
||
};
|
||
var faThermometerFull = {
|
||
prefix: 'fas',
|
||
iconName: 'thermometer-full',
|
||
icon: [256, 512, [], "f2c7", "M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"]
|
||
};
|
||
var faThermometerHalf = {
|
||
prefix: 'fas',
|
||
iconName: 'thermometer-half',
|
||
icon: [256, 512, [], "f2c9", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]
|
||
};
|
||
var faThermometerQuarter = {
|
||
prefix: 'fas',
|
||
iconName: 'thermometer-quarter',
|
||
icon: [256, 512, [], "f2ca", "M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]
|
||
};
|
||
var faThermometerThreeQuarters = {
|
||
prefix: 'fas',
|
||
iconName: 'thermometer-three-quarters',
|
||
icon: [256, 512, [], "f2c8", "M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]
|
||
};
|
||
var faThumbsDown = {
|
||
prefix: 'fas',
|
||
iconName: 'thumbs-down',
|
||
icon: [512, 512, [], "f165", "M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"]
|
||
};
|
||
var faThumbsUp = {
|
||
prefix: 'fas',
|
||
iconName: 'thumbs-up',
|
||
icon: [512, 512, [], "f164", "M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"]
|
||
};
|
||
var faThumbtack = {
|
||
prefix: 'fas',
|
||
iconName: 'thumbtack',
|
||
icon: [384, 512, [], "f08d", "M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"]
|
||
};
|
||
var faTicketAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'ticket-alt',
|
||
icon: [576, 512, [], "f3ff", "M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"]
|
||
};
|
||
var faTimes = {
|
||
prefix: 'fas',
|
||
iconName: 'times',
|
||
icon: [352, 512, [], "f00d", "M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"]
|
||
};
|
||
var faTimesCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'times-circle',
|
||
icon: [512, 512, [], "f057", "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"]
|
||
};
|
||
var faTint = {
|
||
prefix: 'fas',
|
||
iconName: 'tint',
|
||
icon: [352, 512, [], "f043", "M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"]
|
||
};
|
||
var faTintSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'tint-slash',
|
||
icon: [640, 512, [], "f5c7", "M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"]
|
||
};
|
||
var faTired = {
|
||
prefix: 'fas',
|
||
iconName: 'tired',
|
||
icon: [496, 512, [], "f5c8", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"]
|
||
};
|
||
var faToggleOff = {
|
||
prefix: 'fas',
|
||
iconName: 'toggle-off',
|
||
icon: [576, 512, [], "f204", "M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"]
|
||
};
|
||
var faToggleOn = {
|
||
prefix: 'fas',
|
||
iconName: 'toggle-on',
|
||
icon: [576, 512, [], "f205", "M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"]
|
||
};
|
||
var faToilet = {
|
||
prefix: 'fas',
|
||
iconName: 'toilet',
|
||
icon: [384, 512, [], "f7d8", "M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z"]
|
||
};
|
||
var faToiletPaper = {
|
||
prefix: 'fas',
|
||
iconName: 'toilet-paper',
|
||
icon: [576, 512, [], "f71e", "M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"]
|
||
};
|
||
var faToolbox = {
|
||
prefix: 'fas',
|
||
iconName: 'toolbox',
|
||
icon: [512, 512, [], "f552", "M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"]
|
||
};
|
||
var faTools = {
|
||
prefix: 'fas',
|
||
iconName: 'tools',
|
||
icon: [512, 512, [], "f7d9", "M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"]
|
||
};
|
||
var faTooth = {
|
||
prefix: 'fas',
|
||
iconName: 'tooth',
|
||
icon: [448, 512, [], "f5c9", "M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"]
|
||
};
|
||
var faTorah = {
|
||
prefix: 'fas',
|
||
iconName: 'torah',
|
||
icon: [640, 512, [], "f6a0", "M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z"]
|
||
};
|
||
var faToriiGate = {
|
||
prefix: 'fas',
|
||
iconName: 'torii-gate',
|
||
icon: [512, 512, [], "f6a1", "M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"]
|
||
};
|
||
var faTractor = {
|
||
prefix: 'fas',
|
||
iconName: 'tractor',
|
||
icon: [640, 512, [], "f722", "M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"]
|
||
};
|
||
var faTrademark = {
|
||
prefix: 'fas',
|
||
iconName: 'trademark',
|
||
icon: [640, 512, [], "f25c", "M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z"]
|
||
};
|
||
var faTrafficLight = {
|
||
prefix: 'fas',
|
||
iconName: 'traffic-light',
|
||
icon: [384, 512, [], "f637", "M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"]
|
||
};
|
||
var faTrain = {
|
||
prefix: 'fas',
|
||
iconName: 'train',
|
||
icon: [448, 512, [], "f238", "M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"]
|
||
};
|
||
var faTram = {
|
||
prefix: 'fas',
|
||
iconName: 'tram',
|
||
icon: [512, 512, [], "f7da", "M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"]
|
||
};
|
||
var faTransgender = {
|
||
prefix: 'fas',
|
||
iconName: 'transgender',
|
||
icon: [384, 512, [], "f224", "M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]
|
||
};
|
||
var faTransgenderAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'transgender-alt',
|
||
icon: [480, 512, [], "f225", "M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]
|
||
};
|
||
var faTrash = {
|
||
prefix: 'fas',
|
||
iconName: 'trash',
|
||
icon: [448, 512, [], "f1f8", "M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"]
|
||
};
|
||
var faTrashAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'trash-alt',
|
||
icon: [448, 512, [], "f2ed", "M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faTrashRestore = {
|
||
prefix: 'fas',
|
||
iconName: 'trash-restore',
|
||
icon: [448, 512, [], "f829", "M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faTrashRestoreAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'trash-restore-alt',
|
||
icon: [448, 512, [], "f82a", "M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faTree = {
|
||
prefix: 'fas',
|
||
iconName: 'tree',
|
||
icon: [384, 512, [], "f1bb", "M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"]
|
||
};
|
||
var faTrophy = {
|
||
prefix: 'fas',
|
||
iconName: 'trophy',
|
||
icon: [576, 512, [], "f091", "M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"]
|
||
};
|
||
var faTruck = {
|
||
prefix: 'fas',
|
||
iconName: 'truck',
|
||
icon: [640, 512, [], "f0d1", "M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]
|
||
};
|
||
var faTruckLoading = {
|
||
prefix: 'fas',
|
||
iconName: 'truck-loading',
|
||
icon: [640, 512, [], "f4de", "M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]
|
||
};
|
||
var faTruckMonster = {
|
||
prefix: 'fas',
|
||
iconName: 'truck-monster',
|
||
icon: [640, 512, [], "f63b", "M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"]
|
||
};
|
||
var faTruckMoving = {
|
||
prefix: 'fas',
|
||
iconName: 'truck-moving',
|
||
icon: [640, 512, [], "f4df", "M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"]
|
||
};
|
||
var faTruckPickup = {
|
||
prefix: 'fas',
|
||
iconName: 'truck-pickup',
|
||
icon: [640, 512, [], "f63c", "M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"]
|
||
};
|
||
var faTshirt = {
|
||
prefix: 'fas',
|
||
iconName: 'tshirt',
|
||
icon: [640, 512, [], "f553", "M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"]
|
||
};
|
||
var faTty = {
|
||
prefix: 'fas',
|
||
iconName: 'tty',
|
||
icon: [512, 512, [], "f1e4", "M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"]
|
||
};
|
||
var faTv = {
|
||
prefix: 'fas',
|
||
iconName: 'tv',
|
||
icon: [640, 512, [], "f26c", "M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z"]
|
||
};
|
||
var faUmbrella = {
|
||
prefix: 'fas',
|
||
iconName: 'umbrella',
|
||
icon: [576, 512, [], "f0e9", "M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z"]
|
||
};
|
||
var faUmbrellaBeach = {
|
||
prefix: 'fas',
|
||
iconName: 'umbrella-beach',
|
||
icon: [640, 512, [], "f5ca", "M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"]
|
||
};
|
||
var faUnderline = {
|
||
prefix: 'fas',
|
||
iconName: 'underline',
|
||
icon: [448, 512, [], "f0cd", "M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]
|
||
};
|
||
var faUndo = {
|
||
prefix: 'fas',
|
||
iconName: 'undo',
|
||
icon: [512, 512, [], "f0e2", "M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"]
|
||
};
|
||
var faUndoAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'undo-alt',
|
||
icon: [512, 512, [], "f2ea", "M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"]
|
||
};
|
||
var faUniversalAccess = {
|
||
prefix: 'fas',
|
||
iconName: 'universal-access',
|
||
icon: [512, 512, [], "f29a", "M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"]
|
||
};
|
||
var faUniversity = {
|
||
prefix: 'fas',
|
||
iconName: 'university',
|
||
icon: [512, 512, [], "f19c", "M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"]
|
||
};
|
||
var faUnlink = {
|
||
prefix: 'fas',
|
||
iconName: 'unlink',
|
||
icon: [512, 512, [], "f127", "M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"]
|
||
};
|
||
var faUnlock = {
|
||
prefix: 'fas',
|
||
iconName: 'unlock',
|
||
icon: [448, 512, [], "f09c", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faUnlockAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'unlock-alt',
|
||
icon: [448, 512, [], "f13e", "M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"]
|
||
};
|
||
var faUpload = {
|
||
prefix: 'fas',
|
||
iconName: 'upload',
|
||
icon: [512, 512, [], "f093", "M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]
|
||
};
|
||
var faUser = {
|
||
prefix: 'fas',
|
||
iconName: 'user',
|
||
icon: [448, 512, [], "f007", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]
|
||
};
|
||
var faUserAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'user-alt',
|
||
icon: [512, 512, [], "f406", "M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"]
|
||
};
|
||
var faUserAltSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'user-alt-slash',
|
||
icon: [640, 512, [], "f4fa", "M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"]
|
||
};
|
||
var faUserAstronaut = {
|
||
prefix: 'fas',
|
||
iconName: 'user-astronaut',
|
||
icon: [448, 512, [], "f4fb", "M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"]
|
||
};
|
||
var faUserCheck = {
|
||
prefix: 'fas',
|
||
iconName: 'user-check',
|
||
icon: [640, 512, [], "f4fc", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"]
|
||
};
|
||
var faUserCircle = {
|
||
prefix: 'fas',
|
||
iconName: 'user-circle',
|
||
icon: [496, 512, [], "f2bd", "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"]
|
||
};
|
||
var faUserClock = {
|
||
prefix: 'fas',
|
||
iconName: 'user-clock',
|
||
icon: [640, 512, [], "f4fd", "M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"]
|
||
};
|
||
var faUserCog = {
|
||
prefix: 'fas',
|
||
iconName: 'user-cog',
|
||
icon: [640, 512, [], "f4fe", "M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"]
|
||
};
|
||
var faUserEdit = {
|
||
prefix: 'fas',
|
||
iconName: 'user-edit',
|
||
icon: [640, 512, [], "f4ff", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"]
|
||
};
|
||
var faUserFriends = {
|
||
prefix: 'fas',
|
||
iconName: 'user-friends',
|
||
icon: [640, 512, [], "f500", "M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"]
|
||
};
|
||
var faUserGraduate = {
|
||
prefix: 'fas',
|
||
iconName: 'user-graduate',
|
||
icon: [448, 512, [], "f501", "M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"]
|
||
};
|
||
var faUserInjured = {
|
||
prefix: 'fas',
|
||
iconName: 'user-injured',
|
||
icon: [448, 512, [], "f728", "M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"]
|
||
};
|
||
var faUserLock = {
|
||
prefix: 'fas',
|
||
iconName: 'user-lock',
|
||
icon: [640, 512, [], "f502", "M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"]
|
||
};
|
||
var faUserMd = {
|
||
prefix: 'fas',
|
||
iconName: 'user-md',
|
||
icon: [448, 512, [], "f0f0", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"]
|
||
};
|
||
var faUserMinus = {
|
||
prefix: 'fas',
|
||
iconName: 'user-minus',
|
||
icon: [640, 512, [], "f503", "M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]
|
||
};
|
||
var faUserNinja = {
|
||
prefix: 'fas',
|
||
iconName: 'user-ninja',
|
||
icon: [448, 512, [], "f504", "M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"]
|
||
};
|
||
var faUserNurse = {
|
||
prefix: 'fas',
|
||
iconName: 'user-nurse',
|
||
icon: [448, 512, [], "f82f", "M57.78 288h82.36c22.51 19.68 51.62 32 83.86 32s61.35-12.32 83.86-32h82.36a16 16 0 0 0 14.28-23.18c-15.23-29.85-31.28-62.23-42.15-95.54C354.78 146.09 352 121.59 352 97.2V48L224 0 96 48v49.2c0 24.39-2.75 48.89-10.33 72.08C74.78 202.59 58.73 235 43.5 264.82A16 16 0 0 0 57.78 288zM184 71.67a5 5 0 0 1 5-5h21.67V45a5 5 0 0 1 5-5h16.66a5 5 0 0 1 5 5v21.67H259a5 5 0 0 1 5 5v16.66a5 5 0 0 1-5 5h-21.67V115a5 5 0 0 1-5 5h-16.66a5 5 0 0 1-5-5V93.33H189a5 5 0 0 1-5-5zM144 160h160v32a80 80 0 0 1-160 0zm175.41 160L224 415.39 128.59 320C57.1 323.1 0 381.6 0 453.79A58.21 58.21 0 0 0 58.21 512h331.58A58.21 58.21 0 0 0 448 453.79C448 381.6 390.9 323.1 319.41 320z"]
|
||
};
|
||
var faUserPlus = {
|
||
prefix: 'fas',
|
||
iconName: 'user-plus',
|
||
icon: [640, 512, [], "f234", "M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]
|
||
};
|
||
var faUserSecret = {
|
||
prefix: 'fas',
|
||
iconName: 'user-secret',
|
||
icon: [448, 512, [], "f21b", "M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"]
|
||
};
|
||
var faUserShield = {
|
||
prefix: 'fas',
|
||
iconName: 'user-shield',
|
||
icon: [640, 512, [], "f505", "M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"]
|
||
};
|
||
var faUserSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'user-slash',
|
||
icon: [640, 512, [], "f506", "M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"]
|
||
};
|
||
var faUserTag = {
|
||
prefix: 'fas',
|
||
iconName: 'user-tag',
|
||
icon: [640, 512, [], "f507", "M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"]
|
||
};
|
||
var faUserTie = {
|
||
prefix: 'fas',
|
||
iconName: 'user-tie',
|
||
icon: [448, 512, [], "f508", "M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"]
|
||
};
|
||
var faUserTimes = {
|
||
prefix: 'fas',
|
||
iconName: 'user-times',
|
||
icon: [640, 512, [], "f235", "M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]
|
||
};
|
||
var faUsers = {
|
||
prefix: 'fas',
|
||
iconName: 'users',
|
||
icon: [640, 512, [], "f0c0", "M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]
|
||
};
|
||
var faUsersCog = {
|
||
prefix: 'fas',
|
||
iconName: 'users-cog',
|
||
icon: [640, 512, [], "f509", "M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]
|
||
};
|
||
var faUtensilSpoon = {
|
||
prefix: 'fas',
|
||
iconName: 'utensil-spoon',
|
||
icon: [512, 512, [], "f2e5", "M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"]
|
||
};
|
||
var faUtensils = {
|
||
prefix: 'fas',
|
||
iconName: 'utensils',
|
||
icon: [416, 512, [], "f2e7", "M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"]
|
||
};
|
||
var faVectorSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'vector-square',
|
||
icon: [512, 512, [], "f5cb", "M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"]
|
||
};
|
||
var faVenus = {
|
||
prefix: 'fas',
|
||
iconName: 'venus',
|
||
icon: [288, 512, [], "f221", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"]
|
||
};
|
||
var faVenusDouble = {
|
||
prefix: 'fas',
|
||
iconName: 'venus-double',
|
||
icon: [512, 512, [], "f226", "M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"]
|
||
};
|
||
var faVenusMars = {
|
||
prefix: 'fas',
|
||
iconName: 'venus-mars',
|
||
icon: [576, 512, [], "f228", "M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]
|
||
};
|
||
var faVial = {
|
||
prefix: 'fas',
|
||
iconName: 'vial',
|
||
icon: [480, 512, [], "f492", "M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"]
|
||
};
|
||
var faVials = {
|
||
prefix: 'fas',
|
||
iconName: 'vials',
|
||
icon: [640, 512, [], "f493", "M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"]
|
||
};
|
||
var faVideo = {
|
||
prefix: 'fas',
|
||
iconName: 'video',
|
||
icon: [576, 512, [], "f03d", "M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"]
|
||
};
|
||
var faVideoSlash = {
|
||
prefix: 'fas',
|
||
iconName: 'video-slash',
|
||
icon: [640, 512, [], "f4e2", "M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"]
|
||
};
|
||
var faVihara = {
|
||
prefix: 'fas',
|
||
iconName: 'vihara',
|
||
icon: [640, 512, [], "f6a7", "M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"]
|
||
};
|
||
var faVoicemail = {
|
||
prefix: 'fas',
|
||
iconName: 'voicemail',
|
||
icon: [640, 512, [], "f897", "M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z"]
|
||
};
|
||
var faVolleyballBall = {
|
||
prefix: 'fas',
|
||
iconName: 'volleyball-ball',
|
||
icon: [512, 512, [], "f45f", "M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"]
|
||
};
|
||
var faVolumeDown = {
|
||
prefix: 'fas',
|
||
iconName: 'volume-down',
|
||
icon: [384, 512, [], "f027", "M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"]
|
||
};
|
||
var faVolumeMute = {
|
||
prefix: 'fas',
|
||
iconName: 'volume-mute',
|
||
icon: [512, 512, [], "f6a9", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"]
|
||
};
|
||
var faVolumeOff = {
|
||
prefix: 'fas',
|
||
iconName: 'volume-off',
|
||
icon: [256, 512, [], "f026", "M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z"]
|
||
};
|
||
var faVolumeUp = {
|
||
prefix: 'fas',
|
||
iconName: 'volume-up',
|
||
icon: [576, 512, [], "f028", "M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"]
|
||
};
|
||
var faVoteYea = {
|
||
prefix: 'fas',
|
||
iconName: 'vote-yea',
|
||
icon: [640, 512, [], "f772", "M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z"]
|
||
};
|
||
var faVrCardboard = {
|
||
prefix: 'fas',
|
||
iconName: 'vr-cardboard',
|
||
icon: [640, 512, [], "f729", "M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z"]
|
||
};
|
||
var faWalking = {
|
||
prefix: 'fas',
|
||
iconName: 'walking',
|
||
icon: [320, 512, [], "f554", "M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"]
|
||
};
|
||
var faWallet = {
|
||
prefix: 'fas',
|
||
iconName: 'wallet',
|
||
icon: [512, 512, [], "f555", "M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]
|
||
};
|
||
var faWarehouse = {
|
||
prefix: 'fas',
|
||
iconName: 'warehouse',
|
||
icon: [640, 512, [], "f494", "M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"]
|
||
};
|
||
var faWater = {
|
||
prefix: 'fas',
|
||
iconName: 'water',
|
||
icon: [576, 512, [], "f773", "M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z"]
|
||
};
|
||
var faWaveSquare = {
|
||
prefix: 'fas',
|
||
iconName: 'wave-square',
|
||
icon: [640, 512, [], "f83e", "M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z"]
|
||
};
|
||
var faWeight = {
|
||
prefix: 'fas',
|
||
iconName: 'weight',
|
||
icon: [512, 512, [], "f496", "M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"]
|
||
};
|
||
var faWeightHanging = {
|
||
prefix: 'fas',
|
||
iconName: 'weight-hanging',
|
||
icon: [512, 512, [], "f5cd", "M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"]
|
||
};
|
||
var faWheelchair = {
|
||
prefix: 'fas',
|
||
iconName: 'wheelchair',
|
||
icon: [512, 512, [], "f193", "M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"]
|
||
};
|
||
var faWifi = {
|
||
prefix: 'fas',
|
||
iconName: 'wifi',
|
||
icon: [640, 512, [], "f1eb", "M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"]
|
||
};
|
||
var faWind = {
|
||
prefix: 'fas',
|
||
iconName: 'wind',
|
||
icon: [512, 512, [], "f72e", "M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z"]
|
||
};
|
||
var faWindowClose = {
|
||
prefix: 'fas',
|
||
iconName: 'window-close',
|
||
icon: [512, 512, [], "f410", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"]
|
||
};
|
||
var faWindowMaximize = {
|
||
prefix: 'fas',
|
||
iconName: 'window-maximize',
|
||
icon: [512, 512, [], "f2d0", "M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"]
|
||
};
|
||
var faWindowMinimize = {
|
||
prefix: 'fas',
|
||
iconName: 'window-minimize',
|
||
icon: [512, 512, [], "f2d1", "M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"]
|
||
};
|
||
var faWindowRestore = {
|
||
prefix: 'fas',
|
||
iconName: 'window-restore',
|
||
icon: [512, 512, [], "f2d2", "M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"]
|
||
};
|
||
var faWineBottle = {
|
||
prefix: 'fas',
|
||
iconName: 'wine-bottle',
|
||
icon: [512, 512, [], "f72f", "M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"]
|
||
};
|
||
var faWineGlass = {
|
||
prefix: 'fas',
|
||
iconName: 'wine-glass',
|
||
icon: [288, 512, [], "f4e3", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"]
|
||
};
|
||
var faWineGlassAlt = {
|
||
prefix: 'fas',
|
||
iconName: 'wine-glass-alt',
|
||
icon: [288, 512, [], "f5ce", "M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"]
|
||
};
|
||
var faWonSign = {
|
||
prefix: 'fas',
|
||
iconName: 'won-sign',
|
||
icon: [576, 512, [], "f159", "M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z"]
|
||
};
|
||
var faWrench = {
|
||
prefix: 'fas',
|
||
iconName: 'wrench',
|
||
icon: [512, 512, [], "f0ad", "M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]
|
||
};
|
||
var faXRay = {
|
||
prefix: 'fas',
|
||
iconName: 'x-ray',
|
||
icon: [640, 512, [], "f497", "M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"]
|
||
};
|
||
var faYenSign = {
|
||
prefix: 'fas',
|
||
iconName: 'yen-sign',
|
||
icon: [384, 512, [], "f157", "M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z"]
|
||
};
|
||
var faYinYang = {
|
||
prefix: 'fas',
|
||
iconName: 'yin-yang',
|
||
icon: [496, 512, [], "f6ad", "M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]
|
||
};
|
||
var _iconsCache = {
|
||
faAd: faAd,
|
||
faAddressBook: faAddressBook,
|
||
faAddressCard: faAddressCard,
|
||
faAdjust: faAdjust,
|
||
faAirFreshener: faAirFreshener,
|
||
faAlignCenter: faAlignCenter,
|
||
faAlignJustify: faAlignJustify,
|
||
faAlignLeft: faAlignLeft,
|
||
faAlignRight: faAlignRight,
|
||
faAllergies: faAllergies,
|
||
faAmbulance: faAmbulance,
|
||
faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,
|
||
faAnchor: faAnchor,
|
||
faAngleDoubleDown: faAngleDoubleDown,
|
||
faAngleDoubleLeft: faAngleDoubleLeft,
|
||
faAngleDoubleRight: faAngleDoubleRight,
|
||
faAngleDoubleUp: faAngleDoubleUp,
|
||
faAngleDown: faAngleDown,
|
||
faAngleLeft: faAngleLeft,
|
||
faAngleRight: faAngleRight,
|
||
faAngleUp: faAngleUp,
|
||
faAngry: faAngry,
|
||
faAnkh: faAnkh,
|
||
faAppleAlt: faAppleAlt,
|
||
faArchive: faArchive,
|
||
faArchway: faArchway,
|
||
faArrowAltCircleDown: faArrowAltCircleDown,
|
||
faArrowAltCircleLeft: faArrowAltCircleLeft,
|
||
faArrowAltCircleRight: faArrowAltCircleRight,
|
||
faArrowAltCircleUp: faArrowAltCircleUp,
|
||
faArrowCircleDown: faArrowCircleDown,
|
||
faArrowCircleLeft: faArrowCircleLeft,
|
||
faArrowCircleRight: faArrowCircleRight,
|
||
faArrowCircleUp: faArrowCircleUp,
|
||
faArrowDown: faArrowDown,
|
||
faArrowLeft: faArrowLeft,
|
||
faArrowRight: faArrowRight,
|
||
faArrowUp: faArrowUp,
|
||
faArrowsAlt: faArrowsAlt,
|
||
faArrowsAltH: faArrowsAltH,
|
||
faArrowsAltV: faArrowsAltV,
|
||
faAssistiveListeningSystems: faAssistiveListeningSystems,
|
||
faAsterisk: faAsterisk,
|
||
faAt: faAt,
|
||
faAtlas: faAtlas,
|
||
faAtom: faAtom,
|
||
faAudioDescription: faAudioDescription,
|
||
faAward: faAward,
|
||
faBaby: faBaby,
|
||
faBabyCarriage: faBabyCarriage,
|
||
faBackspace: faBackspace,
|
||
faBackward: faBackward,
|
||
faBacon: faBacon,
|
||
faBalanceScale: faBalanceScale,
|
||
faBalanceScaleLeft: faBalanceScaleLeft,
|
||
faBalanceScaleRight: faBalanceScaleRight,
|
||
faBan: faBan,
|
||
faBandAid: faBandAid,
|
||
faBarcode: faBarcode,
|
||
faBars: faBars,
|
||
faBaseballBall: faBaseballBall,
|
||
faBasketballBall: faBasketballBall,
|
||
faBath: faBath,
|
||
faBatteryEmpty: faBatteryEmpty,
|
||
faBatteryFull: faBatteryFull,
|
||
faBatteryHalf: faBatteryHalf,
|
||
faBatteryQuarter: faBatteryQuarter,
|
||
faBatteryThreeQuarters: faBatteryThreeQuarters,
|
||
faBed: faBed,
|
||
faBeer: faBeer,
|
||
faBell: faBell,
|
||
faBellSlash: faBellSlash,
|
||
faBezierCurve: faBezierCurve,
|
||
faBible: faBible,
|
||
faBicycle: faBicycle,
|
||
faBiking: faBiking,
|
||
faBinoculars: faBinoculars,
|
||
faBiohazard: faBiohazard,
|
||
faBirthdayCake: faBirthdayCake,
|
||
faBlender: faBlender,
|
||
faBlenderPhone: faBlenderPhone,
|
||
faBlind: faBlind,
|
||
faBlog: faBlog,
|
||
faBold: faBold,
|
||
faBolt: faBolt,
|
||
faBomb: faBomb,
|
||
faBone: faBone,
|
||
faBong: faBong,
|
||
faBook: faBook,
|
||
faBookDead: faBookDead,
|
||
faBookMedical: faBookMedical,
|
||
faBookOpen: faBookOpen,
|
||
faBookReader: faBookReader,
|
||
faBookmark: faBookmark,
|
||
faBorderAll: faBorderAll,
|
||
faBorderNone: faBorderNone,
|
||
faBorderStyle: faBorderStyle,
|
||
faBowlingBall: faBowlingBall,
|
||
faBox: faBox,
|
||
faBoxOpen: faBoxOpen,
|
||
faBoxes: faBoxes,
|
||
faBraille: faBraille,
|
||
faBrain: faBrain,
|
||
faBreadSlice: faBreadSlice,
|
||
faBriefcase: faBriefcase,
|
||
faBriefcaseMedical: faBriefcaseMedical,
|
||
faBroadcastTower: faBroadcastTower,
|
||
faBroom: faBroom,
|
||
faBrush: faBrush,
|
||
faBug: faBug,
|
||
faBuilding: faBuilding,
|
||
faBullhorn: faBullhorn,
|
||
faBullseye: faBullseye,
|
||
faBurn: faBurn,
|
||
faBus: faBus,
|
||
faBusAlt: faBusAlt,
|
||
faBusinessTime: faBusinessTime,
|
||
faCalculator: faCalculator,
|
||
faCalendar: faCalendar,
|
||
faCalendarAlt: faCalendarAlt,
|
||
faCalendarCheck: faCalendarCheck,
|
||
faCalendarDay: faCalendarDay,
|
||
faCalendarMinus: faCalendarMinus,
|
||
faCalendarPlus: faCalendarPlus,
|
||
faCalendarTimes: faCalendarTimes,
|
||
faCalendarWeek: faCalendarWeek,
|
||
faCamera: faCamera,
|
||
faCameraRetro: faCameraRetro,
|
||
faCampground: faCampground,
|
||
faCandyCane: faCandyCane,
|
||
faCannabis: faCannabis,
|
||
faCapsules: faCapsules,
|
||
faCar: faCar,
|
||
faCarAlt: faCarAlt,
|
||
faCarBattery: faCarBattery,
|
||
faCarCrash: faCarCrash,
|
||
faCarSide: faCarSide,
|
||
faCaretDown: faCaretDown,
|
||
faCaretLeft: faCaretLeft,
|
||
faCaretRight: faCaretRight,
|
||
faCaretSquareDown: faCaretSquareDown,
|
||
faCaretSquareLeft: faCaretSquareLeft,
|
||
faCaretSquareRight: faCaretSquareRight,
|
||
faCaretSquareUp: faCaretSquareUp,
|
||
faCaretUp: faCaretUp,
|
||
faCarrot: faCarrot,
|
||
faCartArrowDown: faCartArrowDown,
|
||
faCartPlus: faCartPlus,
|
||
faCashRegister: faCashRegister,
|
||
faCat: faCat,
|
||
faCertificate: faCertificate,
|
||
faChair: faChair,
|
||
faChalkboard: faChalkboard,
|
||
faChalkboardTeacher: faChalkboardTeacher,
|
||
faChargingStation: faChargingStation,
|
||
faChartArea: faChartArea,
|
||
faChartBar: faChartBar,
|
||
faChartLine: faChartLine,
|
||
faChartPie: faChartPie,
|
||
faCheck: faCheck,
|
||
faCheckCircle: faCheckCircle,
|
||
faCheckDouble: faCheckDouble,
|
||
faCheckSquare: faCheckSquare,
|
||
faCheese: faCheese,
|
||
faChess: faChess,
|
||
faChessBishop: faChessBishop,
|
||
faChessBoard: faChessBoard,
|
||
faChessKing: faChessKing,
|
||
faChessKnight: faChessKnight,
|
||
faChessPawn: faChessPawn,
|
||
faChessQueen: faChessQueen,
|
||
faChessRook: faChessRook,
|
||
faChevronCircleDown: faChevronCircleDown,
|
||
faChevronCircleLeft: faChevronCircleLeft,
|
||
faChevronCircleRight: faChevronCircleRight,
|
||
faChevronCircleUp: faChevronCircleUp,
|
||
faChevronDown: faChevronDown,
|
||
faChevronLeft: faChevronLeft,
|
||
faChevronRight: faChevronRight,
|
||
faChevronUp: faChevronUp,
|
||
faChild: faChild,
|
||
faChurch: faChurch,
|
||
faCircle: faCircle,
|
||
faCircleNotch: faCircleNotch,
|
||
faCity: faCity,
|
||
faClinicMedical: faClinicMedical,
|
||
faClipboard: faClipboard,
|
||
faClipboardCheck: faClipboardCheck,
|
||
faClipboardList: faClipboardList,
|
||
faClock: faClock,
|
||
faClone: faClone,
|
||
faClosedCaptioning: faClosedCaptioning,
|
||
faCloud: faCloud,
|
||
faCloudDownloadAlt: faCloudDownloadAlt,
|
||
faCloudMeatball: faCloudMeatball,
|
||
faCloudMoon: faCloudMoon,
|
||
faCloudMoonRain: faCloudMoonRain,
|
||
faCloudRain: faCloudRain,
|
||
faCloudShowersHeavy: faCloudShowersHeavy,
|
||
faCloudSun: faCloudSun,
|
||
faCloudSunRain: faCloudSunRain,
|
||
faCloudUploadAlt: faCloudUploadAlt,
|
||
faCocktail: faCocktail,
|
||
faCode: faCode,
|
||
faCodeBranch: faCodeBranch,
|
||
faCoffee: faCoffee,
|
||
faCog: faCog,
|
||
faCogs: faCogs,
|
||
faCoins: faCoins,
|
||
faColumns: faColumns,
|
||
faComment: faComment,
|
||
faCommentAlt: faCommentAlt,
|
||
faCommentDollar: faCommentDollar,
|
||
faCommentDots: faCommentDots,
|
||
faCommentMedical: faCommentMedical,
|
||
faCommentSlash: faCommentSlash,
|
||
faComments: faComments,
|
||
faCommentsDollar: faCommentsDollar,
|
||
faCompactDisc: faCompactDisc,
|
||
faCompass: faCompass,
|
||
faCompress: faCompress,
|
||
faCompressArrowsAlt: faCompressArrowsAlt,
|
||
faConciergeBell: faConciergeBell,
|
||
faCookie: faCookie,
|
||
faCookieBite: faCookieBite,
|
||
faCopy: faCopy,
|
||
faCopyright: faCopyright,
|
||
faCouch: faCouch,
|
||
faCreditCard: faCreditCard,
|
||
faCrop: faCrop,
|
||
faCropAlt: faCropAlt,
|
||
faCross: faCross,
|
||
faCrosshairs: faCrosshairs,
|
||
faCrow: faCrow,
|
||
faCrown: faCrown,
|
||
faCrutch: faCrutch,
|
||
faCube: faCube,
|
||
faCubes: faCubes,
|
||
faCut: faCut,
|
||
faDatabase: faDatabase,
|
||
faDeaf: faDeaf,
|
||
faDemocrat: faDemocrat,
|
||
faDesktop: faDesktop,
|
||
faDharmachakra: faDharmachakra,
|
||
faDiagnoses: faDiagnoses,
|
||
faDice: faDice,
|
||
faDiceD20: faDiceD20,
|
||
faDiceD6: faDiceD6,
|
||
faDiceFive: faDiceFive,
|
||
faDiceFour: faDiceFour,
|
||
faDiceOne: faDiceOne,
|
||
faDiceSix: faDiceSix,
|
||
faDiceThree: faDiceThree,
|
||
faDiceTwo: faDiceTwo,
|
||
faDigitalTachograph: faDigitalTachograph,
|
||
faDirections: faDirections,
|
||
faDivide: faDivide,
|
||
faDizzy: faDizzy,
|
||
faDna: faDna,
|
||
faDog: faDog,
|
||
faDollarSign: faDollarSign,
|
||
faDolly: faDolly,
|
||
faDollyFlatbed: faDollyFlatbed,
|
||
faDonate: faDonate,
|
||
faDoorClosed: faDoorClosed,
|
||
faDoorOpen: faDoorOpen,
|
||
faDotCircle: faDotCircle,
|
||
faDove: faDove,
|
||
faDownload: faDownload,
|
||
faDraftingCompass: faDraftingCompass,
|
||
faDragon: faDragon,
|
||
faDrawPolygon: faDrawPolygon,
|
||
faDrum: faDrum,
|
||
faDrumSteelpan: faDrumSteelpan,
|
||
faDrumstickBite: faDrumstickBite,
|
||
faDumbbell: faDumbbell,
|
||
faDumpster: faDumpster,
|
||
faDumpsterFire: faDumpsterFire,
|
||
faDungeon: faDungeon,
|
||
faEdit: faEdit,
|
||
faEgg: faEgg,
|
||
faEject: faEject,
|
||
faEllipsisH: faEllipsisH,
|
||
faEllipsisV: faEllipsisV,
|
||
faEnvelope: faEnvelope,
|
||
faEnvelopeOpen: faEnvelopeOpen,
|
||
faEnvelopeOpenText: faEnvelopeOpenText,
|
||
faEnvelopeSquare: faEnvelopeSquare,
|
||
faEquals: faEquals,
|
||
faEraser: faEraser,
|
||
faEthernet: faEthernet,
|
||
faEuroSign: faEuroSign,
|
||
faExchangeAlt: faExchangeAlt,
|
||
faExclamation: faExclamation,
|
||
faExclamationCircle: faExclamationCircle,
|
||
faExclamationTriangle: faExclamationTriangle,
|
||
faExpand: faExpand,
|
||
faExpandArrowsAlt: faExpandArrowsAlt,
|
||
faExternalLinkAlt: faExternalLinkAlt,
|
||
faExternalLinkSquareAlt: faExternalLinkSquareAlt,
|
||
faEye: faEye,
|
||
faEyeDropper: faEyeDropper,
|
||
faEyeSlash: faEyeSlash,
|
||
faFan: faFan,
|
||
faFastBackward: faFastBackward,
|
||
faFastForward: faFastForward,
|
||
faFax: faFax,
|
||
faFeather: faFeather,
|
||
faFeatherAlt: faFeatherAlt,
|
||
faFemale: faFemale,
|
||
faFighterJet: faFighterJet,
|
||
faFile: faFile,
|
||
faFileAlt: faFileAlt,
|
||
faFileArchive: faFileArchive,
|
||
faFileAudio: faFileAudio,
|
||
faFileCode: faFileCode,
|
||
faFileContract: faFileContract,
|
||
faFileCsv: faFileCsv,
|
||
faFileDownload: faFileDownload,
|
||
faFileExcel: faFileExcel,
|
||
faFileExport: faFileExport,
|
||
faFileImage: faFileImage,
|
||
faFileImport: faFileImport,
|
||
faFileInvoice: faFileInvoice,
|
||
faFileInvoiceDollar: faFileInvoiceDollar,
|
||
faFileMedical: faFileMedical,
|
||
faFileMedicalAlt: faFileMedicalAlt,
|
||
faFilePdf: faFilePdf,
|
||
faFilePowerpoint: faFilePowerpoint,
|
||
faFilePrescription: faFilePrescription,
|
||
faFileSignature: faFileSignature,
|
||
faFileUpload: faFileUpload,
|
||
faFileVideo: faFileVideo,
|
||
faFileWord: faFileWord,
|
||
faFill: faFill,
|
||
faFillDrip: faFillDrip,
|
||
faFilm: faFilm,
|
||
faFilter: faFilter,
|
||
faFingerprint: faFingerprint,
|
||
faFire: faFire,
|
||
faFireAlt: faFireAlt,
|
||
faFireExtinguisher: faFireExtinguisher,
|
||
faFirstAid: faFirstAid,
|
||
faFish: faFish,
|
||
faFistRaised: faFistRaised,
|
||
faFlag: faFlag,
|
||
faFlagCheckered: faFlagCheckered,
|
||
faFlagUsa: faFlagUsa,
|
||
faFlask: faFlask,
|
||
faFlushed: faFlushed,
|
||
faFolder: faFolder,
|
||
faFolderMinus: faFolderMinus,
|
||
faFolderOpen: faFolderOpen,
|
||
faFolderPlus: faFolderPlus,
|
||
faFont: faFont,
|
||
faFontAwesomeLogoFull: faFontAwesomeLogoFull,
|
||
faFootballBall: faFootballBall,
|
||
faForward: faForward,
|
||
faFrog: faFrog,
|
||
faFrown: faFrown,
|
||
faFrownOpen: faFrownOpen,
|
||
faFunnelDollar: faFunnelDollar,
|
||
faFutbol: faFutbol,
|
||
faGamepad: faGamepad,
|
||
faGasPump: faGasPump,
|
||
faGavel: faGavel,
|
||
faGem: faGem,
|
||
faGenderless: faGenderless,
|
||
faGhost: faGhost,
|
||
faGift: faGift,
|
||
faGifts: faGifts,
|
||
faGlassCheers: faGlassCheers,
|
||
faGlassMartini: faGlassMartini,
|
||
faGlassMartiniAlt: faGlassMartiniAlt,
|
||
faGlassWhiskey: faGlassWhiskey,
|
||
faGlasses: faGlasses,
|
||
faGlobe: faGlobe,
|
||
faGlobeAfrica: faGlobeAfrica,
|
||
faGlobeAmericas: faGlobeAmericas,
|
||
faGlobeAsia: faGlobeAsia,
|
||
faGlobeEurope: faGlobeEurope,
|
||
faGolfBall: faGolfBall,
|
||
faGopuram: faGopuram,
|
||
faGraduationCap: faGraduationCap,
|
||
faGreaterThan: faGreaterThan,
|
||
faGreaterThanEqual: faGreaterThanEqual,
|
||
faGrimace: faGrimace,
|
||
faGrin: faGrin,
|
||
faGrinAlt: faGrinAlt,
|
||
faGrinBeam: faGrinBeam,
|
||
faGrinBeamSweat: faGrinBeamSweat,
|
||
faGrinHearts: faGrinHearts,
|
||
faGrinSquint: faGrinSquint,
|
||
faGrinSquintTears: faGrinSquintTears,
|
||
faGrinStars: faGrinStars,
|
||
faGrinTears: faGrinTears,
|
||
faGrinTongue: faGrinTongue,
|
||
faGrinTongueSquint: faGrinTongueSquint,
|
||
faGrinTongueWink: faGrinTongueWink,
|
||
faGrinWink: faGrinWink,
|
||
faGripHorizontal: faGripHorizontal,
|
||
faGripLines: faGripLines,
|
||
faGripLinesVertical: faGripLinesVertical,
|
||
faGripVertical: faGripVertical,
|
||
faGuitar: faGuitar,
|
||
faHSquare: faHSquare,
|
||
faHamburger: faHamburger,
|
||
faHammer: faHammer,
|
||
faHamsa: faHamsa,
|
||
faHandHolding: faHandHolding,
|
||
faHandHoldingHeart: faHandHoldingHeart,
|
||
faHandHoldingUsd: faHandHoldingUsd,
|
||
faHandLizard: faHandLizard,
|
||
faHandMiddleFinger: faHandMiddleFinger,
|
||
faHandPaper: faHandPaper,
|
||
faHandPeace: faHandPeace,
|
||
faHandPointDown: faHandPointDown,
|
||
faHandPointLeft: faHandPointLeft,
|
||
faHandPointRight: faHandPointRight,
|
||
faHandPointUp: faHandPointUp,
|
||
faHandPointer: faHandPointer,
|
||
faHandRock: faHandRock,
|
||
faHandScissors: faHandScissors,
|
||
faHandSpock: faHandSpock,
|
||
faHands: faHands,
|
||
faHandsHelping: faHandsHelping,
|
||
faHandshake: faHandshake,
|
||
faHanukiah: faHanukiah,
|
||
faHardHat: faHardHat,
|
||
faHashtag: faHashtag,
|
||
faHatCowboy: faHatCowboy,
|
||
faHatCowboySide: faHatCowboySide,
|
||
faHatWizard: faHatWizard,
|
||
faHaykal: faHaykal,
|
||
faHdd: faHdd,
|
||
faHeading: faHeading,
|
||
faHeadphones: faHeadphones,
|
||
faHeadphonesAlt: faHeadphonesAlt,
|
||
faHeadset: faHeadset,
|
||
faHeart: faHeart,
|
||
faHeartBroken: faHeartBroken,
|
||
faHeartbeat: faHeartbeat,
|
||
faHelicopter: faHelicopter,
|
||
faHighlighter: faHighlighter,
|
||
faHiking: faHiking,
|
||
faHippo: faHippo,
|
||
faHistory: faHistory,
|
||
faHockeyPuck: faHockeyPuck,
|
||
faHollyBerry: faHollyBerry,
|
||
faHome: faHome,
|
||
faHorse: faHorse,
|
||
faHorseHead: faHorseHead,
|
||
faHospital: faHospital,
|
||
faHospitalAlt: faHospitalAlt,
|
||
faHospitalSymbol: faHospitalSymbol,
|
||
faHotTub: faHotTub,
|
||
faHotdog: faHotdog,
|
||
faHotel: faHotel,
|
||
faHourglass: faHourglass,
|
||
faHourglassEnd: faHourglassEnd,
|
||
faHourglassHalf: faHourglassHalf,
|
||
faHourglassStart: faHourglassStart,
|
||
faHouseDamage: faHouseDamage,
|
||
faHryvnia: faHryvnia,
|
||
faICursor: faICursor,
|
||
faIceCream: faIceCream,
|
||
faIcicles: faIcicles,
|
||
faIcons: faIcons,
|
||
faIdBadge: faIdBadge,
|
||
faIdCard: faIdCard,
|
||
faIdCardAlt: faIdCardAlt,
|
||
faIgloo: faIgloo,
|
||
faImage: faImage,
|
||
faImages: faImages,
|
||
faInbox: faInbox,
|
||
faIndent: faIndent,
|
||
faIndustry: faIndustry,
|
||
faInfinity: faInfinity,
|
||
faInfo: faInfo,
|
||
faInfoCircle: faInfoCircle,
|
||
faItalic: faItalic,
|
||
faJedi: faJedi,
|
||
faJoint: faJoint,
|
||
faJournalWhills: faJournalWhills,
|
||
faKaaba: faKaaba,
|
||
faKey: faKey,
|
||
faKeyboard: faKeyboard,
|
||
faKhanda: faKhanda,
|
||
faKiss: faKiss,
|
||
faKissBeam: faKissBeam,
|
||
faKissWinkHeart: faKissWinkHeart,
|
||
faKiwiBird: faKiwiBird,
|
||
faLandmark: faLandmark,
|
||
faLanguage: faLanguage,
|
||
faLaptop: faLaptop,
|
||
faLaptopCode: faLaptopCode,
|
||
faLaptopMedical: faLaptopMedical,
|
||
faLaugh: faLaugh,
|
||
faLaughBeam: faLaughBeam,
|
||
faLaughSquint: faLaughSquint,
|
||
faLaughWink: faLaughWink,
|
||
faLayerGroup: faLayerGroup,
|
||
faLeaf: faLeaf,
|
||
faLemon: faLemon,
|
||
faLessThan: faLessThan,
|
||
faLessThanEqual: faLessThanEqual,
|
||
faLevelDownAlt: faLevelDownAlt,
|
||
faLevelUpAlt: faLevelUpAlt,
|
||
faLifeRing: faLifeRing,
|
||
faLightbulb: faLightbulb,
|
||
faLink: faLink,
|
||
faLiraSign: faLiraSign,
|
||
faList: faList,
|
||
faListAlt: faListAlt,
|
||
faListOl: faListOl,
|
||
faListUl: faListUl,
|
||
faLocationArrow: faLocationArrow,
|
||
faLock: faLock,
|
||
faLockOpen: faLockOpen,
|
||
faLongArrowAltDown: faLongArrowAltDown,
|
||
faLongArrowAltLeft: faLongArrowAltLeft,
|
||
faLongArrowAltRight: faLongArrowAltRight,
|
||
faLongArrowAltUp: faLongArrowAltUp,
|
||
faLowVision: faLowVision,
|
||
faLuggageCart: faLuggageCart,
|
||
faMagic: faMagic,
|
||
faMagnet: faMagnet,
|
||
faMailBulk: faMailBulk,
|
||
faMale: faMale,
|
||
faMap: faMap,
|
||
faMapMarked: faMapMarked,
|
||
faMapMarkedAlt: faMapMarkedAlt,
|
||
faMapMarker: faMapMarker,
|
||
faMapMarkerAlt: faMapMarkerAlt,
|
||
faMapPin: faMapPin,
|
||
faMapSigns: faMapSigns,
|
||
faMarker: faMarker,
|
||
faMars: faMars,
|
||
faMarsDouble: faMarsDouble,
|
||
faMarsStroke: faMarsStroke,
|
||
faMarsStrokeH: faMarsStrokeH,
|
||
faMarsStrokeV: faMarsStrokeV,
|
||
faMask: faMask,
|
||
faMedal: faMedal,
|
||
faMedkit: faMedkit,
|
||
faMeh: faMeh,
|
||
faMehBlank: faMehBlank,
|
||
faMehRollingEyes: faMehRollingEyes,
|
||
faMemory: faMemory,
|
||
faMenorah: faMenorah,
|
||
faMercury: faMercury,
|
||
faMeteor: faMeteor,
|
||
faMicrochip: faMicrochip,
|
||
faMicrophone: faMicrophone,
|
||
faMicrophoneAlt: faMicrophoneAlt,
|
||
faMicrophoneAltSlash: faMicrophoneAltSlash,
|
||
faMicrophoneSlash: faMicrophoneSlash,
|
||
faMicroscope: faMicroscope,
|
||
faMinus: faMinus,
|
||
faMinusCircle: faMinusCircle,
|
||
faMinusSquare: faMinusSquare,
|
||
faMitten: faMitten,
|
||
faMobile: faMobile,
|
||
faMobileAlt: faMobileAlt,
|
||
faMoneyBill: faMoneyBill,
|
||
faMoneyBillAlt: faMoneyBillAlt,
|
||
faMoneyBillWave: faMoneyBillWave,
|
||
faMoneyBillWaveAlt: faMoneyBillWaveAlt,
|
||
faMoneyCheck: faMoneyCheck,
|
||
faMoneyCheckAlt: faMoneyCheckAlt,
|
||
faMonument: faMonument,
|
||
faMoon: faMoon,
|
||
faMortarPestle: faMortarPestle,
|
||
faMosque: faMosque,
|
||
faMotorcycle: faMotorcycle,
|
||
faMountain: faMountain,
|
||
faMouse: faMouse,
|
||
faMousePointer: faMousePointer,
|
||
faMugHot: faMugHot,
|
||
faMusic: faMusic,
|
||
faNetworkWired: faNetworkWired,
|
||
faNeuter: faNeuter,
|
||
faNewspaper: faNewspaper,
|
||
faNotEqual: faNotEqual,
|
||
faNotesMedical: faNotesMedical,
|
||
faObjectGroup: faObjectGroup,
|
||
faObjectUngroup: faObjectUngroup,
|
||
faOilCan: faOilCan,
|
||
faOm: faOm,
|
||
faOtter: faOtter,
|
||
faOutdent: faOutdent,
|
||
faPager: faPager,
|
||
faPaintBrush: faPaintBrush,
|
||
faPaintRoller: faPaintRoller,
|
||
faPalette: faPalette,
|
||
faPallet: faPallet,
|
||
faPaperPlane: faPaperPlane,
|
||
faPaperclip: faPaperclip,
|
||
faParachuteBox: faParachuteBox,
|
||
faParagraph: faParagraph,
|
||
faParking: faParking,
|
||
faPassport: faPassport,
|
||
faPastafarianism: faPastafarianism,
|
||
faPaste: faPaste,
|
||
faPause: faPause,
|
||
faPauseCircle: faPauseCircle,
|
||
faPaw: faPaw,
|
||
faPeace: faPeace,
|
||
faPen: faPen,
|
||
faPenAlt: faPenAlt,
|
||
faPenFancy: faPenFancy,
|
||
faPenNib: faPenNib,
|
||
faPenSquare: faPenSquare,
|
||
faPencilAlt: faPencilAlt,
|
||
faPencilRuler: faPencilRuler,
|
||
faPeopleCarry: faPeopleCarry,
|
||
faPepperHot: faPepperHot,
|
||
faPercent: faPercent,
|
||
faPercentage: faPercentage,
|
||
faPersonBooth: faPersonBooth,
|
||
faPhone: faPhone,
|
||
faPhoneAlt: faPhoneAlt,
|
||
faPhoneSlash: faPhoneSlash,
|
||
faPhoneSquare: faPhoneSquare,
|
||
faPhoneSquareAlt: faPhoneSquareAlt,
|
||
faPhoneVolume: faPhoneVolume,
|
||
faPhotoVideo: faPhotoVideo,
|
||
faPiggyBank: faPiggyBank,
|
||
faPills: faPills,
|
||
faPizzaSlice: faPizzaSlice,
|
||
faPlaceOfWorship: faPlaceOfWorship,
|
||
faPlane: faPlane,
|
||
faPlaneArrival: faPlaneArrival,
|
||
faPlaneDeparture: faPlaneDeparture,
|
||
faPlay: faPlay,
|
||
faPlayCircle: faPlayCircle,
|
||
faPlug: faPlug,
|
||
faPlus: faPlus,
|
||
faPlusCircle: faPlusCircle,
|
||
faPlusSquare: faPlusSquare,
|
||
faPodcast: faPodcast,
|
||
faPoll: faPoll,
|
||
faPollH: faPollH,
|
||
faPoo: faPoo,
|
||
faPooStorm: faPooStorm,
|
||
faPoop: faPoop,
|
||
faPortrait: faPortrait,
|
||
faPoundSign: faPoundSign,
|
||
faPowerOff: faPowerOff,
|
||
faPray: faPray,
|
||
faPrayingHands: faPrayingHands,
|
||
faPrescription: faPrescription,
|
||
faPrescriptionBottle: faPrescriptionBottle,
|
||
faPrescriptionBottleAlt: faPrescriptionBottleAlt,
|
||
faPrint: faPrint,
|
||
faProcedures: faProcedures,
|
||
faProjectDiagram: faProjectDiagram,
|
||
faPuzzlePiece: faPuzzlePiece,
|
||
faQrcode: faQrcode,
|
||
faQuestion: faQuestion,
|
||
faQuestionCircle: faQuestionCircle,
|
||
faQuidditch: faQuidditch,
|
||
faQuoteLeft: faQuoteLeft,
|
||
faQuoteRight: faQuoteRight,
|
||
faQuran: faQuran,
|
||
faRadiation: faRadiation,
|
||
faRadiationAlt: faRadiationAlt,
|
||
faRainbow: faRainbow,
|
||
faRandom: faRandom,
|
||
faReceipt: faReceipt,
|
||
faRecordVinyl: faRecordVinyl,
|
||
faRecycle: faRecycle,
|
||
faRedo: faRedo,
|
||
faRedoAlt: faRedoAlt,
|
||
faRegistered: faRegistered,
|
||
faRemoveFormat: faRemoveFormat,
|
||
faReply: faReply,
|
||
faReplyAll: faReplyAll,
|
||
faRepublican: faRepublican,
|
||
faRestroom: faRestroom,
|
||
faRetweet: faRetweet,
|
||
faRibbon: faRibbon,
|
||
faRing: faRing,
|
||
faRoad: faRoad,
|
||
faRobot: faRobot,
|
||
faRocket: faRocket,
|
||
faRoute: faRoute,
|
||
faRss: faRss,
|
||
faRssSquare: faRssSquare,
|
||
faRubleSign: faRubleSign,
|
||
faRuler: faRuler,
|
||
faRulerCombined: faRulerCombined,
|
||
faRulerHorizontal: faRulerHorizontal,
|
||
faRulerVertical: faRulerVertical,
|
||
faRunning: faRunning,
|
||
faRupeeSign: faRupeeSign,
|
||
faSadCry: faSadCry,
|
||
faSadTear: faSadTear,
|
||
faSatellite: faSatellite,
|
||
faSatelliteDish: faSatelliteDish,
|
||
faSave: faSave,
|
||
faSchool: faSchool,
|
||
faScrewdriver: faScrewdriver,
|
||
faScroll: faScroll,
|
||
faSdCard: faSdCard,
|
||
faSearch: faSearch,
|
||
faSearchDollar: faSearchDollar,
|
||
faSearchLocation: faSearchLocation,
|
||
faSearchMinus: faSearchMinus,
|
||
faSearchPlus: faSearchPlus,
|
||
faSeedling: faSeedling,
|
||
faServer: faServer,
|
||
faShapes: faShapes,
|
||
faShare: faShare,
|
||
faShareAlt: faShareAlt,
|
||
faShareAltSquare: faShareAltSquare,
|
||
faShareSquare: faShareSquare,
|
||
faShekelSign: faShekelSign,
|
||
faShieldAlt: faShieldAlt,
|
||
faShip: faShip,
|
||
faShippingFast: faShippingFast,
|
||
faShoePrints: faShoePrints,
|
||
faShoppingBag: faShoppingBag,
|
||
faShoppingBasket: faShoppingBasket,
|
||
faShoppingCart: faShoppingCart,
|
||
faShower: faShower,
|
||
faShuttleVan: faShuttleVan,
|
||
faSign: faSign,
|
||
faSignInAlt: faSignInAlt,
|
||
faSignLanguage: faSignLanguage,
|
||
faSignOutAlt: faSignOutAlt,
|
||
faSignal: faSignal,
|
||
faSignature: faSignature,
|
||
faSimCard: faSimCard,
|
||
faSitemap: faSitemap,
|
||
faSkating: faSkating,
|
||
faSkiing: faSkiing,
|
||
faSkiingNordic: faSkiingNordic,
|
||
faSkull: faSkull,
|
||
faSkullCrossbones: faSkullCrossbones,
|
||
faSlash: faSlash,
|
||
faSleigh: faSleigh,
|
||
faSlidersH: faSlidersH,
|
||
faSmile: faSmile,
|
||
faSmileBeam: faSmileBeam,
|
||
faSmileWink: faSmileWink,
|
||
faSmog: faSmog,
|
||
faSmoking: faSmoking,
|
||
faSmokingBan: faSmokingBan,
|
||
faSms: faSms,
|
||
faSnowboarding: faSnowboarding,
|
||
faSnowflake: faSnowflake,
|
||
faSnowman: faSnowman,
|
||
faSnowplow: faSnowplow,
|
||
faSocks: faSocks,
|
||
faSolarPanel: faSolarPanel,
|
||
faSort: faSort,
|
||
faSortAlphaDown: faSortAlphaDown,
|
||
faSortAlphaDownAlt: faSortAlphaDownAlt,
|
||
faSortAlphaUp: faSortAlphaUp,
|
||
faSortAlphaUpAlt: faSortAlphaUpAlt,
|
||
faSortAmountDown: faSortAmountDown,
|
||
faSortAmountDownAlt: faSortAmountDownAlt,
|
||
faSortAmountUp: faSortAmountUp,
|
||
faSortAmountUpAlt: faSortAmountUpAlt,
|
||
faSortDown: faSortDown,
|
||
faSortNumericDown: faSortNumericDown,
|
||
faSortNumericDownAlt: faSortNumericDownAlt,
|
||
faSortNumericUp: faSortNumericUp,
|
||
faSortNumericUpAlt: faSortNumericUpAlt,
|
||
faSortUp: faSortUp,
|
||
faSpa: faSpa,
|
||
faSpaceShuttle: faSpaceShuttle,
|
||
faSpellCheck: faSpellCheck,
|
||
faSpider: faSpider,
|
||
faSpinner: faSpinner,
|
||
faSplotch: faSplotch,
|
||
faSprayCan: faSprayCan,
|
||
faSquare: faSquare,
|
||
faSquareFull: faSquareFull,
|
||
faSquareRootAlt: faSquareRootAlt,
|
||
faStamp: faStamp,
|
||
faStar: faStar,
|
||
faStarAndCrescent: faStarAndCrescent,
|
||
faStarHalf: faStarHalf,
|
||
faStarHalfAlt: faStarHalfAlt,
|
||
faStarOfDavid: faStarOfDavid,
|
||
faStarOfLife: faStarOfLife,
|
||
faStepBackward: faStepBackward,
|
||
faStepForward: faStepForward,
|
||
faStethoscope: faStethoscope,
|
||
faStickyNote: faStickyNote,
|
||
faStop: faStop,
|
||
faStopCircle: faStopCircle,
|
||
faStopwatch: faStopwatch,
|
||
faStore: faStore,
|
||
faStoreAlt: faStoreAlt,
|
||
faStream: faStream,
|
||
faStreetView: faStreetView,
|
||
faStrikethrough: faStrikethrough,
|
||
faStroopwafel: faStroopwafel,
|
||
faSubscript: faSubscript,
|
||
faSubway: faSubway,
|
||
faSuitcase: faSuitcase,
|
||
faSuitcaseRolling: faSuitcaseRolling,
|
||
faSun: faSun,
|
||
faSuperscript: faSuperscript,
|
||
faSurprise: faSurprise,
|
||
faSwatchbook: faSwatchbook,
|
||
faSwimmer: faSwimmer,
|
||
faSwimmingPool: faSwimmingPool,
|
||
faSynagogue: faSynagogue,
|
||
faSync: faSync,
|
||
faSyncAlt: faSyncAlt,
|
||
faSyringe: faSyringe,
|
||
faTable: faTable,
|
||
faTableTennis: faTableTennis,
|
||
faTablet: faTablet,
|
||
faTabletAlt: faTabletAlt,
|
||
faTablets: faTablets,
|
||
faTachometerAlt: faTachometerAlt,
|
||
faTag: faTag,
|
||
faTags: faTags,
|
||
faTape: faTape,
|
||
faTasks: faTasks,
|
||
faTaxi: faTaxi,
|
||
faTeeth: faTeeth,
|
||
faTeethOpen: faTeethOpen,
|
||
faTemperatureHigh: faTemperatureHigh,
|
||
faTemperatureLow: faTemperatureLow,
|
||
faTenge: faTenge,
|
||
faTerminal: faTerminal,
|
||
faTextHeight: faTextHeight,
|
||
faTextWidth: faTextWidth,
|
||
faTh: faTh,
|
||
faThLarge: faThLarge,
|
||
faThList: faThList,
|
||
faTheaterMasks: faTheaterMasks,
|
||
faThermometer: faThermometer,
|
||
faThermometerEmpty: faThermometerEmpty,
|
||
faThermometerFull: faThermometerFull,
|
||
faThermometerHalf: faThermometerHalf,
|
||
faThermometerQuarter: faThermometerQuarter,
|
||
faThermometerThreeQuarters: faThermometerThreeQuarters,
|
||
faThumbsDown: faThumbsDown,
|
||
faThumbsUp: faThumbsUp,
|
||
faThumbtack: faThumbtack,
|
||
faTicketAlt: faTicketAlt,
|
||
faTimes: faTimes,
|
||
faTimesCircle: faTimesCircle,
|
||
faTint: faTint,
|
||
faTintSlash: faTintSlash,
|
||
faTired: faTired,
|
||
faToggleOff: faToggleOff,
|
||
faToggleOn: faToggleOn,
|
||
faToilet: faToilet,
|
||
faToiletPaper: faToiletPaper,
|
||
faToolbox: faToolbox,
|
||
faTools: faTools,
|
||
faTooth: faTooth,
|
||
faTorah: faTorah,
|
||
faToriiGate: faToriiGate,
|
||
faTractor: faTractor,
|
||
faTrademark: faTrademark,
|
||
faTrafficLight: faTrafficLight,
|
||
faTrain: faTrain,
|
||
faTram: faTram,
|
||
faTransgender: faTransgender,
|
||
faTransgenderAlt: faTransgenderAlt,
|
||
faTrash: faTrash,
|
||
faTrashAlt: faTrashAlt,
|
||
faTrashRestore: faTrashRestore,
|
||
faTrashRestoreAlt: faTrashRestoreAlt,
|
||
faTree: faTree,
|
||
faTrophy: faTrophy,
|
||
faTruck: faTruck,
|
||
faTruckLoading: faTruckLoading,
|
||
faTruckMonster: faTruckMonster,
|
||
faTruckMoving: faTruckMoving,
|
||
faTruckPickup: faTruckPickup,
|
||
faTshirt: faTshirt,
|
||
faTty: faTty,
|
||
faTv: faTv,
|
||
faUmbrella: faUmbrella,
|
||
faUmbrellaBeach: faUmbrellaBeach,
|
||
faUnderline: faUnderline,
|
||
faUndo: faUndo,
|
||
faUndoAlt: faUndoAlt,
|
||
faUniversalAccess: faUniversalAccess,
|
||
faUniversity: faUniversity,
|
||
faUnlink: faUnlink,
|
||
faUnlock: faUnlock,
|
||
faUnlockAlt: faUnlockAlt,
|
||
faUpload: faUpload,
|
||
faUser: faUser,
|
||
faUserAlt: faUserAlt,
|
||
faUserAltSlash: faUserAltSlash,
|
||
faUserAstronaut: faUserAstronaut,
|
||
faUserCheck: faUserCheck,
|
||
faUserCircle: faUserCircle,
|
||
faUserClock: faUserClock,
|
||
faUserCog: faUserCog,
|
||
faUserEdit: faUserEdit,
|
||
faUserFriends: faUserFriends,
|
||
faUserGraduate: faUserGraduate,
|
||
faUserInjured: faUserInjured,
|
||
faUserLock: faUserLock,
|
||
faUserMd: faUserMd,
|
||
faUserMinus: faUserMinus,
|
||
faUserNinja: faUserNinja,
|
||
faUserNurse: faUserNurse,
|
||
faUserPlus: faUserPlus,
|
||
faUserSecret: faUserSecret,
|
||
faUserShield: faUserShield,
|
||
faUserSlash: faUserSlash,
|
||
faUserTag: faUserTag,
|
||
faUserTie: faUserTie,
|
||
faUserTimes: faUserTimes,
|
||
faUsers: faUsers,
|
||
faUsersCog: faUsersCog,
|
||
faUtensilSpoon: faUtensilSpoon,
|
||
faUtensils: faUtensils,
|
||
faVectorSquare: faVectorSquare,
|
||
faVenus: faVenus,
|
||
faVenusDouble: faVenusDouble,
|
||
faVenusMars: faVenusMars,
|
||
faVial: faVial,
|
||
faVials: faVials,
|
||
faVideo: faVideo,
|
||
faVideoSlash: faVideoSlash,
|
||
faVihara: faVihara,
|
||
faVoicemail: faVoicemail,
|
||
faVolleyballBall: faVolleyballBall,
|
||
faVolumeDown: faVolumeDown,
|
||
faVolumeMute: faVolumeMute,
|
||
faVolumeOff: faVolumeOff,
|
||
faVolumeUp: faVolumeUp,
|
||
faVoteYea: faVoteYea,
|
||
faVrCardboard: faVrCardboard,
|
||
faWalking: faWalking,
|
||
faWallet: faWallet,
|
||
faWarehouse: faWarehouse,
|
||
faWater: faWater,
|
||
faWaveSquare: faWaveSquare,
|
||
faWeight: faWeight,
|
||
faWeightHanging: faWeightHanging,
|
||
faWheelchair: faWheelchair,
|
||
faWifi: faWifi,
|
||
faWind: faWind,
|
||
faWindowClose: faWindowClose,
|
||
faWindowMaximize: faWindowMaximize,
|
||
faWindowMinimize: faWindowMinimize,
|
||
faWindowRestore: faWindowRestore,
|
||
faWineBottle: faWineBottle,
|
||
faWineGlass: faWineGlass,
|
||
faWineGlassAlt: faWineGlassAlt,
|
||
faWonSign: faWonSign,
|
||
faWrench: faWrench,
|
||
faXRay: faXRay,
|
||
faYenSign: faYenSign,
|
||
faYinYang: faYinYang
|
||
};
|
||
|
||
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/after/index.js":
|
||
/*!*************************************!*\
|
||
!*** ./node_modules/after/index.js ***!
|
||
\*************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = after
|
||
|
||
function after(count, callback, err_cb) {
|
||
var bail = false
|
||
err_cb = err_cb || noop
|
||
proxy.count = count
|
||
|
||
return (count === 0) ? callback() : proxy
|
||
|
||
function proxy(err, result) {
|
||
if (proxy.count <= 0) {
|
||
throw new Error('after called too many times')
|
||
}
|
||
--proxy.count
|
||
|
||
// after first error, rest are passed to err_cb
|
||
if (err) {
|
||
bail = true
|
||
callback(err)
|
||
// future error callbacks will go to error handler
|
||
callback = err_cb
|
||
} else if (proxy.count === 0 && !bail) {
|
||
callback(null, result)
|
||
}
|
||
}
|
||
}
|
||
|
||
function noop() {}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/arraybuffer.slice/index.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/arraybuffer.slice/index.js ***!
|
||
\*************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* An abstraction for slicing an arraybuffer even when
|
||
* ArrayBuffer.prototype.slice is not supported
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
module.exports = function(arraybuffer, start, end) {
|
||
var bytes = arraybuffer.byteLength;
|
||
start = start || 0;
|
||
end = end || bytes;
|
||
|
||
if (arraybuffer.slice) { return arraybuffer.slice(start, end); }
|
||
|
||
if (start < 0) { start += bytes; }
|
||
if (end < 0) { end += bytes; }
|
||
if (end > bytes) { end = bytes; }
|
||
|
||
if (start >= bytes || start >= end || bytes === 0) {
|
||
return new ArrayBuffer(0);
|
||
}
|
||
|
||
var abv = new Uint8Array(arraybuffer);
|
||
var result = new Uint8Array(end - start);
|
||
for (var i = start, ii = 0; i < end; i++, ii++) {
|
||
result[ii] = abv[i];
|
||
}
|
||
return result.buffer;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/backo2/index.js":
|
||
/*!**************************************!*\
|
||
!*** ./node_modules/backo2/index.js ***!
|
||
\**************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
|
||
/**
|
||
* Expose `Backoff`.
|
||
*/
|
||
|
||
module.exports = Backoff;
|
||
|
||
/**
|
||
* Initialize backoff timer with `opts`.
|
||
*
|
||
* - `min` initial timeout in milliseconds [100]
|
||
* - `max` max timeout [10000]
|
||
* - `jitter` [0]
|
||
* - `factor` [2]
|
||
*
|
||
* @param {Object} opts
|
||
* @api public
|
||
*/
|
||
|
||
function Backoff(opts) {
|
||
opts = opts || {};
|
||
this.ms = opts.min || 100;
|
||
this.max = opts.max || 10000;
|
||
this.factor = opts.factor || 2;
|
||
this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;
|
||
this.attempts = 0;
|
||
}
|
||
|
||
/**
|
||
* Return the backoff duration.
|
||
*
|
||
* @return {Number}
|
||
* @api public
|
||
*/
|
||
|
||
Backoff.prototype.duration = function(){
|
||
var ms = this.ms * Math.pow(this.factor, this.attempts++);
|
||
if (this.jitter) {
|
||
var rand = Math.random();
|
||
var deviation = Math.floor(rand * this.jitter * ms);
|
||
ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;
|
||
}
|
||
return Math.min(ms, this.max) | 0;
|
||
};
|
||
|
||
/**
|
||
* Reset the number of attempts.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Backoff.prototype.reset = function(){
|
||
this.attempts = 0;
|
||
};
|
||
|
||
/**
|
||
* Set the minimum duration
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Backoff.prototype.setMin = function(min){
|
||
this.ms = min;
|
||
};
|
||
|
||
/**
|
||
* Set the maximum duration
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Backoff.prototype.setMax = function(max){
|
||
this.max = max;
|
||
};
|
||
|
||
/**
|
||
* Set the jitter
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Backoff.prototype.setJitter = function(jitter){
|
||
this.jitter = jitter;
|
||
};
|
||
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js ***!
|
||
\*******************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/*
|
||
* base64-arraybuffer
|
||
* https://github.com/niklasvh/base64-arraybuffer
|
||
*
|
||
* Copyright (c) 2012 Niklas von Hertzen
|
||
* Licensed under the MIT license.
|
||
*/
|
||
(function(){
|
||
"use strict";
|
||
|
||
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||
|
||
// Use a lookup table to find the index.
|
||
var lookup = new Uint8Array(256);
|
||
for (var i = 0; i < chars.length; i++) {
|
||
lookup[chars.charCodeAt(i)] = i;
|
||
}
|
||
|
||
exports.encode = function(arraybuffer) {
|
||
var bytes = new Uint8Array(arraybuffer),
|
||
i, len = bytes.length, base64 = "";
|
||
|
||
for (i = 0; i < len; i+=3) {
|
||
base64 += chars[bytes[i] >> 2];
|
||
base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
|
||
base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
|
||
base64 += chars[bytes[i + 2] & 63];
|
||
}
|
||
|
||
if ((len % 3) === 2) {
|
||
base64 = base64.substring(0, base64.length - 1) + "=";
|
||
} else if (len % 3 === 1) {
|
||
base64 = base64.substring(0, base64.length - 2) + "==";
|
||
}
|
||
|
||
return base64;
|
||
};
|
||
|
||
exports.decode = function(base64) {
|
||
var bufferLength = base64.length * 0.75,
|
||
len = base64.length, i, p = 0,
|
||
encoded1, encoded2, encoded3, encoded4;
|
||
|
||
if (base64[base64.length - 1] === "=") {
|
||
bufferLength--;
|
||
if (base64[base64.length - 2] === "=") {
|
||
bufferLength--;
|
||
}
|
||
}
|
||
|
||
var arraybuffer = new ArrayBuffer(bufferLength),
|
||
bytes = new Uint8Array(arraybuffer);
|
||
|
||
for (i = 0; i < len; i+=4) {
|
||
encoded1 = lookup[base64.charCodeAt(i)];
|
||
encoded2 = lookup[base64.charCodeAt(i+1)];
|
||
encoded3 = lookup[base64.charCodeAt(i+2)];
|
||
encoded4 = lookup[base64.charCodeAt(i+3)];
|
||
|
||
bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
|
||
bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
|
||
bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
|
||
}
|
||
|
||
return arraybuffer;
|
||
};
|
||
})();
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/base64-js/index.js":
|
||
/*!*****************************************!*\
|
||
!*** ./node_modules/base64-js/index.js ***!
|
||
\*****************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.byteLength = byteLength
|
||
exports.toByteArray = toByteArray
|
||
exports.fromByteArray = fromByteArray
|
||
|
||
var lookup = []
|
||
var revLookup = []
|
||
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
|
||
|
||
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
|
||
for (var i = 0, len = code.length; i < len; ++i) {
|
||
lookup[i] = code[i]
|
||
revLookup[code.charCodeAt(i)] = i
|
||
}
|
||
|
||
// Support decoding URL-safe base64 strings, as Node.js does.
|
||
// See: https://en.wikipedia.org/wiki/Base64#URL_applications
|
||
revLookup['-'.charCodeAt(0)] = 62
|
||
revLookup['_'.charCodeAt(0)] = 63
|
||
|
||
function getLens (b64) {
|
||
var len = b64.length
|
||
|
||
if (len % 4 > 0) {
|
||
throw new Error('Invalid string. Length must be a multiple of 4')
|
||
}
|
||
|
||
// Trim off extra bytes after placeholder bytes are found
|
||
// See: https://github.com/beatgammit/base64-js/issues/42
|
||
var validLen = b64.indexOf('=')
|
||
if (validLen === -1) validLen = len
|
||
|
||
var placeHoldersLen = validLen === len
|
||
? 0
|
||
: 4 - (validLen % 4)
|
||
|
||
return [validLen, placeHoldersLen]
|
||
}
|
||
|
||
// base64 is 4/3 + up to two characters of the original data
|
||
function byteLength (b64) {
|
||
var lens = getLens(b64)
|
||
var validLen = lens[0]
|
||
var placeHoldersLen = lens[1]
|
||
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
|
||
}
|
||
|
||
function _byteLength (b64, validLen, placeHoldersLen) {
|
||
return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
|
||
}
|
||
|
||
function toByteArray (b64) {
|
||
var tmp
|
||
var lens = getLens(b64)
|
||
var validLen = lens[0]
|
||
var placeHoldersLen = lens[1]
|
||
|
||
var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
|
||
|
||
var curByte = 0
|
||
|
||
// if there are placeholders, only get up to the last complete 4 chars
|
||
var len = placeHoldersLen > 0
|
||
? validLen - 4
|
||
: validLen
|
||
|
||
var i
|
||
for (i = 0; i < len; i += 4) {
|
||
tmp =
|
||
(revLookup[b64.charCodeAt(i)] << 18) |
|
||
(revLookup[b64.charCodeAt(i + 1)] << 12) |
|
||
(revLookup[b64.charCodeAt(i + 2)] << 6) |
|
||
revLookup[b64.charCodeAt(i + 3)]
|
||
arr[curByte++] = (tmp >> 16) & 0xFF
|
||
arr[curByte++] = (tmp >> 8) & 0xFF
|
||
arr[curByte++] = tmp & 0xFF
|
||
}
|
||
|
||
if (placeHoldersLen === 2) {
|
||
tmp =
|
||
(revLookup[b64.charCodeAt(i)] << 2) |
|
||
(revLookup[b64.charCodeAt(i + 1)] >> 4)
|
||
arr[curByte++] = tmp & 0xFF
|
||
}
|
||
|
||
if (placeHoldersLen === 1) {
|
||
tmp =
|
||
(revLookup[b64.charCodeAt(i)] << 10) |
|
||
(revLookup[b64.charCodeAt(i + 1)] << 4) |
|
||
(revLookup[b64.charCodeAt(i + 2)] >> 2)
|
||
arr[curByte++] = (tmp >> 8) & 0xFF
|
||
arr[curByte++] = tmp & 0xFF
|
||
}
|
||
|
||
return arr
|
||
}
|
||
|
||
function tripletToBase64 (num) {
|
||
return lookup[num >> 18 & 0x3F] +
|
||
lookup[num >> 12 & 0x3F] +
|
||
lookup[num >> 6 & 0x3F] +
|
||
lookup[num & 0x3F]
|
||
}
|
||
|
||
function encodeChunk (uint8, start, end) {
|
||
var tmp
|
||
var output = []
|
||
for (var i = start; i < end; i += 3) {
|
||
tmp =
|
||
((uint8[i] << 16) & 0xFF0000) +
|
||
((uint8[i + 1] << 8) & 0xFF00) +
|
||
(uint8[i + 2] & 0xFF)
|
||
output.push(tripletToBase64(tmp))
|
||
}
|
||
return output.join('')
|
||
}
|
||
|
||
function fromByteArray (uint8) {
|
||
var tmp
|
||
var len = uint8.length
|
||
var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
|
||
var parts = []
|
||
var maxChunkLength = 16383 // must be multiple of 3
|
||
|
||
// go through the array every three bytes, we'll deal with trailing stuff later
|
||
for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
|
||
parts.push(encodeChunk(
|
||
uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
|
||
))
|
||
}
|
||
|
||
// pad the end with zeros, but make sure to not forget the extra bytes
|
||
if (extraBytes === 1) {
|
||
tmp = uint8[len - 1]
|
||
parts.push(
|
||
lookup[tmp >> 2] +
|
||
lookup[(tmp << 4) & 0x3F] +
|
||
'=='
|
||
)
|
||
} else if (extraBytes === 2) {
|
||
tmp = (uint8[len - 2] << 8) + uint8[len - 1]
|
||
parts.push(
|
||
lookup[tmp >> 10] +
|
||
lookup[(tmp >> 4) & 0x3F] +
|
||
lookup[(tmp << 2) & 0x3F] +
|
||
'='
|
||
)
|
||
}
|
||
|
||
return parts.join('')
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/blob/index.js":
|
||
/*!************************************!*\
|
||
!*** ./node_modules/blob/index.js ***!
|
||
\************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Create a blob builder even when vendor prefixes exist
|
||
*/
|
||
|
||
var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :
|
||
typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :
|
||
typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :
|
||
typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder :
|
||
false;
|
||
|
||
/**
|
||
* Check if Blob constructor is supported
|
||
*/
|
||
|
||
var blobSupported = (function() {
|
||
try {
|
||
var a = new Blob(['hi']);
|
||
return a.size === 2;
|
||
} catch(e) {
|
||
return false;
|
||
}
|
||
})();
|
||
|
||
/**
|
||
* Check if Blob constructor supports ArrayBufferViews
|
||
* Fails in Safari 6, so we need to map to ArrayBuffers there.
|
||
*/
|
||
|
||
var blobSupportsArrayBufferView = blobSupported && (function() {
|
||
try {
|
||
var b = new Blob([new Uint8Array([1,2])]);
|
||
return b.size === 2;
|
||
} catch(e) {
|
||
return false;
|
||
}
|
||
})();
|
||
|
||
/**
|
||
* Check if BlobBuilder is supported
|
||
*/
|
||
|
||
var blobBuilderSupported = BlobBuilder
|
||
&& BlobBuilder.prototype.append
|
||
&& BlobBuilder.prototype.getBlob;
|
||
|
||
/**
|
||
* Helper function that maps ArrayBufferViews to ArrayBuffers
|
||
* Used by BlobBuilder constructor and old browsers that didn't
|
||
* support it in the Blob constructor.
|
||
*/
|
||
|
||
function mapArrayBufferViews(ary) {
|
||
return ary.map(function(chunk) {
|
||
if (chunk.buffer instanceof ArrayBuffer) {
|
||
var buf = chunk.buffer;
|
||
|
||
// if this is a subarray, make a copy so we only
|
||
// include the subarray region from the underlying buffer
|
||
if (chunk.byteLength !== buf.byteLength) {
|
||
var copy = new Uint8Array(chunk.byteLength);
|
||
copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));
|
||
buf = copy.buffer;
|
||
}
|
||
|
||
return buf;
|
||
}
|
||
|
||
return chunk;
|
||
});
|
||
}
|
||
|
||
function BlobBuilderConstructor(ary, options) {
|
||
options = options || {};
|
||
|
||
var bb = new BlobBuilder();
|
||
mapArrayBufferViews(ary).forEach(function(part) {
|
||
bb.append(part);
|
||
});
|
||
|
||
return (options.type) ? bb.getBlob(options.type) : bb.getBlob();
|
||
};
|
||
|
||
function BlobConstructor(ary, options) {
|
||
return new Blob(mapArrayBufferViews(ary), options || {});
|
||
};
|
||
|
||
if (typeof Blob !== 'undefined') {
|
||
BlobBuilderConstructor.prototype = Blob.prototype;
|
||
BlobConstructor.prototype = Blob.prototype;
|
||
}
|
||
|
||
module.exports = (function() {
|
||
if (blobSupported) {
|
||
return blobSupportsArrayBufferView ? Blob : BlobConstructor;
|
||
} else if (blobBuilderSupported) {
|
||
return BlobBuilderConstructor;
|
||
} else {
|
||
return undefined;
|
||
}
|
||
})();
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/buffer/index.js":
|
||
/*!**************************************!*\
|
||
!*** ./node_modules/buffer/index.js ***!
|
||
\**************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(global) {/*!
|
||
* The buffer module from node.js, for the browser.
|
||
*
|
||
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
|
||
* @license MIT
|
||
*/
|
||
/* eslint-disable no-proto */
|
||
|
||
|
||
|
||
var base64 = __webpack_require__(/*! base64-js */ "./node_modules/base64-js/index.js")
|
||
var ieee754 = __webpack_require__(/*! ieee754 */ "./node_modules/ieee754/index.js")
|
||
var isArray = __webpack_require__(/*! isarray */ "./node_modules/buffer/node_modules/isarray/index.js")
|
||
|
||
exports.Buffer = Buffer
|
||
exports.SlowBuffer = SlowBuffer
|
||
exports.INSPECT_MAX_BYTES = 50
|
||
|
||
/**
|
||
* If `Buffer.TYPED_ARRAY_SUPPORT`:
|
||
* === true Use Uint8Array implementation (fastest)
|
||
* === false Use Object implementation (most compatible, even IE6)
|
||
*
|
||
* Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
|
||
* Opera 11.6+, iOS 4.2+.
|
||
*
|
||
* Due to various browser bugs, sometimes the Object implementation will be used even
|
||
* when the browser supports typed arrays.
|
||
*
|
||
* Note:
|
||
*
|
||
* - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
|
||
* See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
|
||
*
|
||
* - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
|
||
*
|
||
* - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
|
||
* incorrect length in some situations.
|
||
|
||
* We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
|
||
* get the Object implementation, which is slower but behaves correctly.
|
||
*/
|
||
Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
|
||
? global.TYPED_ARRAY_SUPPORT
|
||
: typedArraySupport()
|
||
|
||
/*
|
||
* Export kMaxLength after typed array support is determined.
|
||
*/
|
||
exports.kMaxLength = kMaxLength()
|
||
|
||
function typedArraySupport () {
|
||
try {
|
||
var arr = new Uint8Array(1)
|
||
arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
|
||
return arr.foo() === 42 && // typed array instances can be augmented
|
||
typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
|
||
arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
|
||
} catch (e) {
|
||
return false
|
||
}
|
||
}
|
||
|
||
function kMaxLength () {
|
||
return Buffer.TYPED_ARRAY_SUPPORT
|
||
? 0x7fffffff
|
||
: 0x3fffffff
|
||
}
|
||
|
||
function createBuffer (that, length) {
|
||
if (kMaxLength() < length) {
|
||
throw new RangeError('Invalid typed array length')
|
||
}
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
// Return an augmented `Uint8Array` instance, for best performance
|
||
that = new Uint8Array(length)
|
||
that.__proto__ = Buffer.prototype
|
||
} else {
|
||
// Fallback: Return an object instance of the Buffer class
|
||
if (that === null) {
|
||
that = new Buffer(length)
|
||
}
|
||
that.length = length
|
||
}
|
||
|
||
return that
|
||
}
|
||
|
||
/**
|
||
* The Buffer constructor returns instances of `Uint8Array` that have their
|
||
* prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
|
||
* `Uint8Array`, so the returned instances will have all the node `Buffer` methods
|
||
* and the `Uint8Array` methods. Square bracket notation works as expected -- it
|
||
* returns a single octet.
|
||
*
|
||
* The `Uint8Array` prototype remains unmodified.
|
||
*/
|
||
|
||
function Buffer (arg, encodingOrOffset, length) {
|
||
if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
|
||
return new Buffer(arg, encodingOrOffset, length)
|
||
}
|
||
|
||
// Common case.
|
||
if (typeof arg === 'number') {
|
||
if (typeof encodingOrOffset === 'string') {
|
||
throw new Error(
|
||
'If encoding is specified then the first argument must be a string'
|
||
)
|
||
}
|
||
return allocUnsafe(this, arg)
|
||
}
|
||
return from(this, arg, encodingOrOffset, length)
|
||
}
|
||
|
||
Buffer.poolSize = 8192 // not used by this implementation
|
||
|
||
// TODO: Legacy, not needed anymore. Remove in next major version.
|
||
Buffer._augment = function (arr) {
|
||
arr.__proto__ = Buffer.prototype
|
||
return arr
|
||
}
|
||
|
||
function from (that, value, encodingOrOffset, length) {
|
||
if (typeof value === 'number') {
|
||
throw new TypeError('"value" argument must not be a number')
|
||
}
|
||
|
||
if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
|
||
return fromArrayBuffer(that, value, encodingOrOffset, length)
|
||
}
|
||
|
||
if (typeof value === 'string') {
|
||
return fromString(that, value, encodingOrOffset)
|
||
}
|
||
|
||
return fromObject(that, value)
|
||
}
|
||
|
||
/**
|
||
* Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
|
||
* if value is a number.
|
||
* Buffer.from(str[, encoding])
|
||
* Buffer.from(array)
|
||
* Buffer.from(buffer)
|
||
* Buffer.from(arrayBuffer[, byteOffset[, length]])
|
||
**/
|
||
Buffer.from = function (value, encodingOrOffset, length) {
|
||
return from(null, value, encodingOrOffset, length)
|
||
}
|
||
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
Buffer.prototype.__proto__ = Uint8Array.prototype
|
||
Buffer.__proto__ = Uint8Array
|
||
if (typeof Symbol !== 'undefined' && Symbol.species &&
|
||
Buffer[Symbol.species] === Buffer) {
|
||
// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
|
||
Object.defineProperty(Buffer, Symbol.species, {
|
||
value: null,
|
||
configurable: true
|
||
})
|
||
}
|
||
}
|
||
|
||
function assertSize (size) {
|
||
if (typeof size !== 'number') {
|
||
throw new TypeError('"size" argument must be a number')
|
||
} else if (size < 0) {
|
||
throw new RangeError('"size" argument must not be negative')
|
||
}
|
||
}
|
||
|
||
function alloc (that, size, fill, encoding) {
|
||
assertSize(size)
|
||
if (size <= 0) {
|
||
return createBuffer(that, size)
|
||
}
|
||
if (fill !== undefined) {
|
||
// Only pay attention to encoding if it's a string. This
|
||
// prevents accidentally sending in a number that would
|
||
// be interpretted as a start offset.
|
||
return typeof encoding === 'string'
|
||
? createBuffer(that, size).fill(fill, encoding)
|
||
: createBuffer(that, size).fill(fill)
|
||
}
|
||
return createBuffer(that, size)
|
||
}
|
||
|
||
/**
|
||
* Creates a new filled Buffer instance.
|
||
* alloc(size[, fill[, encoding]])
|
||
**/
|
||
Buffer.alloc = function (size, fill, encoding) {
|
||
return alloc(null, size, fill, encoding)
|
||
}
|
||
|
||
function allocUnsafe (that, size) {
|
||
assertSize(size)
|
||
that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
|
||
if (!Buffer.TYPED_ARRAY_SUPPORT) {
|
||
for (var i = 0; i < size; ++i) {
|
||
that[i] = 0
|
||
}
|
||
}
|
||
return that
|
||
}
|
||
|
||
/**
|
||
* Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
|
||
* */
|
||
Buffer.allocUnsafe = function (size) {
|
||
return allocUnsafe(null, size)
|
||
}
|
||
/**
|
||
* Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
|
||
*/
|
||
Buffer.allocUnsafeSlow = function (size) {
|
||
return allocUnsafe(null, size)
|
||
}
|
||
|
||
function fromString (that, string, encoding) {
|
||
if (typeof encoding !== 'string' || encoding === '') {
|
||
encoding = 'utf8'
|
||
}
|
||
|
||
if (!Buffer.isEncoding(encoding)) {
|
||
throw new TypeError('"encoding" must be a valid string encoding')
|
||
}
|
||
|
||
var length = byteLength(string, encoding) | 0
|
||
that = createBuffer(that, length)
|
||
|
||
var actual = that.write(string, encoding)
|
||
|
||
if (actual !== length) {
|
||
// Writing a hex string, for example, that contains invalid characters will
|
||
// cause everything after the first invalid character to be ignored. (e.g.
|
||
// 'abxxcd' will be treated as 'ab')
|
||
that = that.slice(0, actual)
|
||
}
|
||
|
||
return that
|
||
}
|
||
|
||
function fromArrayLike (that, array) {
|
||
var length = array.length < 0 ? 0 : checked(array.length) | 0
|
||
that = createBuffer(that, length)
|
||
for (var i = 0; i < length; i += 1) {
|
||
that[i] = array[i] & 255
|
||
}
|
||
return that
|
||
}
|
||
|
||
function fromArrayBuffer (that, array, byteOffset, length) {
|
||
array.byteLength // this throws if `array` is not a valid ArrayBuffer
|
||
|
||
if (byteOffset < 0 || array.byteLength < byteOffset) {
|
||
throw new RangeError('\'offset\' is out of bounds')
|
||
}
|
||
|
||
if (array.byteLength < byteOffset + (length || 0)) {
|
||
throw new RangeError('\'length\' is out of bounds')
|
||
}
|
||
|
||
if (byteOffset === undefined && length === undefined) {
|
||
array = new Uint8Array(array)
|
||
} else if (length === undefined) {
|
||
array = new Uint8Array(array, byteOffset)
|
||
} else {
|
||
array = new Uint8Array(array, byteOffset, length)
|
||
}
|
||
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
// Return an augmented `Uint8Array` instance, for best performance
|
||
that = array
|
||
that.__proto__ = Buffer.prototype
|
||
} else {
|
||
// Fallback: Return an object instance of the Buffer class
|
||
that = fromArrayLike(that, array)
|
||
}
|
||
return that
|
||
}
|
||
|
||
function fromObject (that, obj) {
|
||
if (Buffer.isBuffer(obj)) {
|
||
var len = checked(obj.length) | 0
|
||
that = createBuffer(that, len)
|
||
|
||
if (that.length === 0) {
|
||
return that
|
||
}
|
||
|
||
obj.copy(that, 0, 0, len)
|
||
return that
|
||
}
|
||
|
||
if (obj) {
|
||
if ((typeof ArrayBuffer !== 'undefined' &&
|
||
obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
|
||
if (typeof obj.length !== 'number' || isnan(obj.length)) {
|
||
return createBuffer(that, 0)
|
||
}
|
||
return fromArrayLike(that, obj)
|
||
}
|
||
|
||
if (obj.type === 'Buffer' && isArray(obj.data)) {
|
||
return fromArrayLike(that, obj.data)
|
||
}
|
||
}
|
||
|
||
throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
|
||
}
|
||
|
||
function checked (length) {
|
||
// Note: cannot use `length < kMaxLength()` here because that fails when
|
||
// length is NaN (which is otherwise coerced to zero.)
|
||
if (length >= kMaxLength()) {
|
||
throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
|
||
'size: 0x' + kMaxLength().toString(16) + ' bytes')
|
||
}
|
||
return length | 0
|
||
}
|
||
|
||
function SlowBuffer (length) {
|
||
if (+length != length) { // eslint-disable-line eqeqeq
|
||
length = 0
|
||
}
|
||
return Buffer.alloc(+length)
|
||
}
|
||
|
||
Buffer.isBuffer = function isBuffer (b) {
|
||
return !!(b != null && b._isBuffer)
|
||
}
|
||
|
||
Buffer.compare = function compare (a, b) {
|
||
if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
|
||
throw new TypeError('Arguments must be Buffers')
|
||
}
|
||
|
||
if (a === b) return 0
|
||
|
||
var x = a.length
|
||
var y = b.length
|
||
|
||
for (var i = 0, len = Math.min(x, y); i < len; ++i) {
|
||
if (a[i] !== b[i]) {
|
||
x = a[i]
|
||
y = b[i]
|
||
break
|
||
}
|
||
}
|
||
|
||
if (x < y) return -1
|
||
if (y < x) return 1
|
||
return 0
|
||
}
|
||
|
||
Buffer.isEncoding = function isEncoding (encoding) {
|
||
switch (String(encoding).toLowerCase()) {
|
||
case 'hex':
|
||
case 'utf8':
|
||
case 'utf-8':
|
||
case 'ascii':
|
||
case 'latin1':
|
||
case 'binary':
|
||
case 'base64':
|
||
case 'ucs2':
|
||
case 'ucs-2':
|
||
case 'utf16le':
|
||
case 'utf-16le':
|
||
return true
|
||
default:
|
||
return false
|
||
}
|
||
}
|
||
|
||
Buffer.concat = function concat (list, length) {
|
||
if (!isArray(list)) {
|
||
throw new TypeError('"list" argument must be an Array of Buffers')
|
||
}
|
||
|
||
if (list.length === 0) {
|
||
return Buffer.alloc(0)
|
||
}
|
||
|
||
var i
|
||
if (length === undefined) {
|
||
length = 0
|
||
for (i = 0; i < list.length; ++i) {
|
||
length += list[i].length
|
||
}
|
||
}
|
||
|
||
var buffer = Buffer.allocUnsafe(length)
|
||
var pos = 0
|
||
for (i = 0; i < list.length; ++i) {
|
||
var buf = list[i]
|
||
if (!Buffer.isBuffer(buf)) {
|
||
throw new TypeError('"list" argument must be an Array of Buffers')
|
||
}
|
||
buf.copy(buffer, pos)
|
||
pos += buf.length
|
||
}
|
||
return buffer
|
||
}
|
||
|
||
function byteLength (string, encoding) {
|
||
if (Buffer.isBuffer(string)) {
|
||
return string.length
|
||
}
|
||
if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
|
||
(ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
|
||
return string.byteLength
|
||
}
|
||
if (typeof string !== 'string') {
|
||
string = '' + string
|
||
}
|
||
|
||
var len = string.length
|
||
if (len === 0) return 0
|
||
|
||
// Use a for loop to avoid recursion
|
||
var loweredCase = false
|
||
for (;;) {
|
||
switch (encoding) {
|
||
case 'ascii':
|
||
case 'latin1':
|
||
case 'binary':
|
||
return len
|
||
case 'utf8':
|
||
case 'utf-8':
|
||
case undefined:
|
||
return utf8ToBytes(string).length
|
||
case 'ucs2':
|
||
case 'ucs-2':
|
||
case 'utf16le':
|
||
case 'utf-16le':
|
||
return len * 2
|
||
case 'hex':
|
||
return len >>> 1
|
||
case 'base64':
|
||
return base64ToBytes(string).length
|
||
default:
|
||
if (loweredCase) return utf8ToBytes(string).length // assume utf8
|
||
encoding = ('' + encoding).toLowerCase()
|
||
loweredCase = true
|
||
}
|
||
}
|
||
}
|
||
Buffer.byteLength = byteLength
|
||
|
||
function slowToString (encoding, start, end) {
|
||
var loweredCase = false
|
||
|
||
// No need to verify that "this.length <= MAX_UINT32" since it's a read-only
|
||
// property of a typed array.
|
||
|
||
// This behaves neither like String nor Uint8Array in that we set start/end
|
||
// to their upper/lower bounds if the value passed is out of range.
|
||
// undefined is handled specially as per ECMA-262 6th Edition,
|
||
// Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
|
||
if (start === undefined || start < 0) {
|
||
start = 0
|
||
}
|
||
// Return early if start > this.length. Done here to prevent potential uint32
|
||
// coercion fail below.
|
||
if (start > this.length) {
|
||
return ''
|
||
}
|
||
|
||
if (end === undefined || end > this.length) {
|
||
end = this.length
|
||
}
|
||
|
||
if (end <= 0) {
|
||
return ''
|
||
}
|
||
|
||
// Force coersion to uint32. This will also coerce falsey/NaN values to 0.
|
||
end >>>= 0
|
||
start >>>= 0
|
||
|
||
if (end <= start) {
|
||
return ''
|
||
}
|
||
|
||
if (!encoding) encoding = 'utf8'
|
||
|
||
while (true) {
|
||
switch (encoding) {
|
||
case 'hex':
|
||
return hexSlice(this, start, end)
|
||
|
||
case 'utf8':
|
||
case 'utf-8':
|
||
return utf8Slice(this, start, end)
|
||
|
||
case 'ascii':
|
||
return asciiSlice(this, start, end)
|
||
|
||
case 'latin1':
|
||
case 'binary':
|
||
return latin1Slice(this, start, end)
|
||
|
||
case 'base64':
|
||
return base64Slice(this, start, end)
|
||
|
||
case 'ucs2':
|
||
case 'ucs-2':
|
||
case 'utf16le':
|
||
case 'utf-16le':
|
||
return utf16leSlice(this, start, end)
|
||
|
||
default:
|
||
if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
|
||
encoding = (encoding + '').toLowerCase()
|
||
loweredCase = true
|
||
}
|
||
}
|
||
}
|
||
|
||
// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
|
||
// Buffer instances.
|
||
Buffer.prototype._isBuffer = true
|
||
|
||
function swap (b, n, m) {
|
||
var i = b[n]
|
||
b[n] = b[m]
|
||
b[m] = i
|
||
}
|
||
|
||
Buffer.prototype.swap16 = function swap16 () {
|
||
var len = this.length
|
||
if (len % 2 !== 0) {
|
||
throw new RangeError('Buffer size must be a multiple of 16-bits')
|
||
}
|
||
for (var i = 0; i < len; i += 2) {
|
||
swap(this, i, i + 1)
|
||
}
|
||
return this
|
||
}
|
||
|
||
Buffer.prototype.swap32 = function swap32 () {
|
||
var len = this.length
|
||
if (len % 4 !== 0) {
|
||
throw new RangeError('Buffer size must be a multiple of 32-bits')
|
||
}
|
||
for (var i = 0; i < len; i += 4) {
|
||
swap(this, i, i + 3)
|
||
swap(this, i + 1, i + 2)
|
||
}
|
||
return this
|
||
}
|
||
|
||
Buffer.prototype.swap64 = function swap64 () {
|
||
var len = this.length
|
||
if (len % 8 !== 0) {
|
||
throw new RangeError('Buffer size must be a multiple of 64-bits')
|
||
}
|
||
for (var i = 0; i < len; i += 8) {
|
||
swap(this, i, i + 7)
|
||
swap(this, i + 1, i + 6)
|
||
swap(this, i + 2, i + 5)
|
||
swap(this, i + 3, i + 4)
|
||
}
|
||
return this
|
||
}
|
||
|
||
Buffer.prototype.toString = function toString () {
|
||
var length = this.length | 0
|
||
if (length === 0) return ''
|
||
if (arguments.length === 0) return utf8Slice(this, 0, length)
|
||
return slowToString.apply(this, arguments)
|
||
}
|
||
|
||
Buffer.prototype.equals = function equals (b) {
|
||
if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
|
||
if (this === b) return true
|
||
return Buffer.compare(this, b) === 0
|
||
}
|
||
|
||
Buffer.prototype.inspect = function inspect () {
|
||
var str = ''
|
||
var max = exports.INSPECT_MAX_BYTES
|
||
if (this.length > 0) {
|
||
str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
|
||
if (this.length > max) str += ' ... '
|
||
}
|
||
return '<Buffer ' + str + '>'
|
||
}
|
||
|
||
Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
|
||
if (!Buffer.isBuffer(target)) {
|
||
throw new TypeError('Argument must be a Buffer')
|
||
}
|
||
|
||
if (start === undefined) {
|
||
start = 0
|
||
}
|
||
if (end === undefined) {
|
||
end = target ? target.length : 0
|
||
}
|
||
if (thisStart === undefined) {
|
||
thisStart = 0
|
||
}
|
||
if (thisEnd === undefined) {
|
||
thisEnd = this.length
|
||
}
|
||
|
||
if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
|
||
throw new RangeError('out of range index')
|
||
}
|
||
|
||
if (thisStart >= thisEnd && start >= end) {
|
||
return 0
|
||
}
|
||
if (thisStart >= thisEnd) {
|
||
return -1
|
||
}
|
||
if (start >= end) {
|
||
return 1
|
||
}
|
||
|
||
start >>>= 0
|
||
end >>>= 0
|
||
thisStart >>>= 0
|
||
thisEnd >>>= 0
|
||
|
||
if (this === target) return 0
|
||
|
||
var x = thisEnd - thisStart
|
||
var y = end - start
|
||
var len = Math.min(x, y)
|
||
|
||
var thisCopy = this.slice(thisStart, thisEnd)
|
||
var targetCopy = target.slice(start, end)
|
||
|
||
for (var i = 0; i < len; ++i) {
|
||
if (thisCopy[i] !== targetCopy[i]) {
|
||
x = thisCopy[i]
|
||
y = targetCopy[i]
|
||
break
|
||
}
|
||
}
|
||
|
||
if (x < y) return -1
|
||
if (y < x) return 1
|
||
return 0
|
||
}
|
||
|
||
// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
|
||
// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
|
||
//
|
||
// Arguments:
|
||
// - buffer - a Buffer to search
|
||
// - val - a string, Buffer, or number
|
||
// - byteOffset - an index into `buffer`; will be clamped to an int32
|
||
// - encoding - an optional encoding, relevant is val is a string
|
||
// - dir - true for indexOf, false for lastIndexOf
|
||
function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
|
||
// Empty buffer means no match
|
||
if (buffer.length === 0) return -1
|
||
|
||
// Normalize byteOffset
|
||
if (typeof byteOffset === 'string') {
|
||
encoding = byteOffset
|
||
byteOffset = 0
|
||
} else if (byteOffset > 0x7fffffff) {
|
||
byteOffset = 0x7fffffff
|
||
} else if (byteOffset < -0x80000000) {
|
||
byteOffset = -0x80000000
|
||
}
|
||
byteOffset = +byteOffset // Coerce to Number.
|
||
if (isNaN(byteOffset)) {
|
||
// byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
|
||
byteOffset = dir ? 0 : (buffer.length - 1)
|
||
}
|
||
|
||
// Normalize byteOffset: negative offsets start from the end of the buffer
|
||
if (byteOffset < 0) byteOffset = buffer.length + byteOffset
|
||
if (byteOffset >= buffer.length) {
|
||
if (dir) return -1
|
||
else byteOffset = buffer.length - 1
|
||
} else if (byteOffset < 0) {
|
||
if (dir) byteOffset = 0
|
||
else return -1
|
||
}
|
||
|
||
// Normalize val
|
||
if (typeof val === 'string') {
|
||
val = Buffer.from(val, encoding)
|
||
}
|
||
|
||
// Finally, search either indexOf (if dir is true) or lastIndexOf
|
||
if (Buffer.isBuffer(val)) {
|
||
// Special case: looking for empty string/buffer always fails
|
||
if (val.length === 0) {
|
||
return -1
|
||
}
|
||
return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
|
||
} else if (typeof val === 'number') {
|
||
val = val & 0xFF // Search for a byte value [0-255]
|
||
if (Buffer.TYPED_ARRAY_SUPPORT &&
|
||
typeof Uint8Array.prototype.indexOf === 'function') {
|
||
if (dir) {
|
||
return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
|
||
} else {
|
||
return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
|
||
}
|
||
}
|
||
return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
|
||
}
|
||
|
||
throw new TypeError('val must be string, number or Buffer')
|
||
}
|
||
|
||
function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
|
||
var indexSize = 1
|
||
var arrLength = arr.length
|
||
var valLength = val.length
|
||
|
||
if (encoding !== undefined) {
|
||
encoding = String(encoding).toLowerCase()
|
||
if (encoding === 'ucs2' || encoding === 'ucs-2' ||
|
||
encoding === 'utf16le' || encoding === 'utf-16le') {
|
||
if (arr.length < 2 || val.length < 2) {
|
||
return -1
|
||
}
|
||
indexSize = 2
|
||
arrLength /= 2
|
||
valLength /= 2
|
||
byteOffset /= 2
|
||
}
|
||
}
|
||
|
||
function read (buf, i) {
|
||
if (indexSize === 1) {
|
||
return buf[i]
|
||
} else {
|
||
return buf.readUInt16BE(i * indexSize)
|
||
}
|
||
}
|
||
|
||
var i
|
||
if (dir) {
|
||
var foundIndex = -1
|
||
for (i = byteOffset; i < arrLength; i++) {
|
||
if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
|
||
if (foundIndex === -1) foundIndex = i
|
||
if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
|
||
} else {
|
||
if (foundIndex !== -1) i -= i - foundIndex
|
||
foundIndex = -1
|
||
}
|
||
}
|
||
} else {
|
||
if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
|
||
for (i = byteOffset; i >= 0; i--) {
|
||
var found = true
|
||
for (var j = 0; j < valLength; j++) {
|
||
if (read(arr, i + j) !== read(val, j)) {
|
||
found = false
|
||
break
|
||
}
|
||
}
|
||
if (found) return i
|
||
}
|
||
}
|
||
|
||
return -1
|
||
}
|
||
|
||
Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
|
||
return this.indexOf(val, byteOffset, encoding) !== -1
|
||
}
|
||
|
||
Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
|
||
return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
|
||
}
|
||
|
||
Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
|
||
return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
|
||
}
|
||
|
||
function hexWrite (buf, string, offset, length) {
|
||
offset = Number(offset) || 0
|
||
var remaining = buf.length - offset
|
||
if (!length) {
|
||
length = remaining
|
||
} else {
|
||
length = Number(length)
|
||
if (length > remaining) {
|
||
length = remaining
|
||
}
|
||
}
|
||
|
||
// must be an even number of digits
|
||
var strLen = string.length
|
||
if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
|
||
|
||
if (length > strLen / 2) {
|
||
length = strLen / 2
|
||
}
|
||
for (var i = 0; i < length; ++i) {
|
||
var parsed = parseInt(string.substr(i * 2, 2), 16)
|
||
if (isNaN(parsed)) return i
|
||
buf[offset + i] = parsed
|
||
}
|
||
return i
|
||
}
|
||
|
||
function utf8Write (buf, string, offset, length) {
|
||
return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
|
||
}
|
||
|
||
function asciiWrite (buf, string, offset, length) {
|
||
return blitBuffer(asciiToBytes(string), buf, offset, length)
|
||
}
|
||
|
||
function latin1Write (buf, string, offset, length) {
|
||
return asciiWrite(buf, string, offset, length)
|
||
}
|
||
|
||
function base64Write (buf, string, offset, length) {
|
||
return blitBuffer(base64ToBytes(string), buf, offset, length)
|
||
}
|
||
|
||
function ucs2Write (buf, string, offset, length) {
|
||
return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
|
||
}
|
||
|
||
Buffer.prototype.write = function write (string, offset, length, encoding) {
|
||
// Buffer#write(string)
|
||
if (offset === undefined) {
|
||
encoding = 'utf8'
|
||
length = this.length
|
||
offset = 0
|
||
// Buffer#write(string, encoding)
|
||
} else if (length === undefined && typeof offset === 'string') {
|
||
encoding = offset
|
||
length = this.length
|
||
offset = 0
|
||
// Buffer#write(string, offset[, length][, encoding])
|
||
} else if (isFinite(offset)) {
|
||
offset = offset | 0
|
||
if (isFinite(length)) {
|
||
length = length | 0
|
||
if (encoding === undefined) encoding = 'utf8'
|
||
} else {
|
||
encoding = length
|
||
length = undefined
|
||
}
|
||
// legacy write(string, encoding, offset, length) - remove in v0.13
|
||
} else {
|
||
throw new Error(
|
||
'Buffer.write(string, encoding, offset[, length]) is no longer supported'
|
||
)
|
||
}
|
||
|
||
var remaining = this.length - offset
|
||
if (length === undefined || length > remaining) length = remaining
|
||
|
||
if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
|
||
throw new RangeError('Attempt to write outside buffer bounds')
|
||
}
|
||
|
||
if (!encoding) encoding = 'utf8'
|
||
|
||
var loweredCase = false
|
||
for (;;) {
|
||
switch (encoding) {
|
||
case 'hex':
|
||
return hexWrite(this, string, offset, length)
|
||
|
||
case 'utf8':
|
||
case 'utf-8':
|
||
return utf8Write(this, string, offset, length)
|
||
|
||
case 'ascii':
|
||
return asciiWrite(this, string, offset, length)
|
||
|
||
case 'latin1':
|
||
case 'binary':
|
||
return latin1Write(this, string, offset, length)
|
||
|
||
case 'base64':
|
||
// Warning: maxLength not taken into account in base64Write
|
||
return base64Write(this, string, offset, length)
|
||
|
||
case 'ucs2':
|
||
case 'ucs-2':
|
||
case 'utf16le':
|
||
case 'utf-16le':
|
||
return ucs2Write(this, string, offset, length)
|
||
|
||
default:
|
||
if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
|
||
encoding = ('' + encoding).toLowerCase()
|
||
loweredCase = true
|
||
}
|
||
}
|
||
}
|
||
|
||
Buffer.prototype.toJSON = function toJSON () {
|
||
return {
|
||
type: 'Buffer',
|
||
data: Array.prototype.slice.call(this._arr || this, 0)
|
||
}
|
||
}
|
||
|
||
function base64Slice (buf, start, end) {
|
||
if (start === 0 && end === buf.length) {
|
||
return base64.fromByteArray(buf)
|
||
} else {
|
||
return base64.fromByteArray(buf.slice(start, end))
|
||
}
|
||
}
|
||
|
||
function utf8Slice (buf, start, end) {
|
||
end = Math.min(buf.length, end)
|
||
var res = []
|
||
|
||
var i = start
|
||
while (i < end) {
|
||
var firstByte = buf[i]
|
||
var codePoint = null
|
||
var bytesPerSequence = (firstByte > 0xEF) ? 4
|
||
: (firstByte > 0xDF) ? 3
|
||
: (firstByte > 0xBF) ? 2
|
||
: 1
|
||
|
||
if (i + bytesPerSequence <= end) {
|
||
var secondByte, thirdByte, fourthByte, tempCodePoint
|
||
|
||
switch (bytesPerSequence) {
|
||
case 1:
|
||
if (firstByte < 0x80) {
|
||
codePoint = firstByte
|
||
}
|
||
break
|
||
case 2:
|
||
secondByte = buf[i + 1]
|
||
if ((secondByte & 0xC0) === 0x80) {
|
||
tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
|
||
if (tempCodePoint > 0x7F) {
|
||
codePoint = tempCodePoint
|
||
}
|
||
}
|
||
break
|
||
case 3:
|
||
secondByte = buf[i + 1]
|
||
thirdByte = buf[i + 2]
|
||
if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
|
||
tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
|
||
if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
|
||
codePoint = tempCodePoint
|
||
}
|
||
}
|
||
break
|
||
case 4:
|
||
secondByte = buf[i + 1]
|
||
thirdByte = buf[i + 2]
|
||
fourthByte = buf[i + 3]
|
||
if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
|
||
tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
|
||
if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
|
||
codePoint = tempCodePoint
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if (codePoint === null) {
|
||
// we did not generate a valid codePoint so insert a
|
||
// replacement char (U+FFFD) and advance only 1 byte
|
||
codePoint = 0xFFFD
|
||
bytesPerSequence = 1
|
||
} else if (codePoint > 0xFFFF) {
|
||
// encode to utf16 (surrogate pair dance)
|
||
codePoint -= 0x10000
|
||
res.push(codePoint >>> 10 & 0x3FF | 0xD800)
|
||
codePoint = 0xDC00 | codePoint & 0x3FF
|
||
}
|
||
|
||
res.push(codePoint)
|
||
i += bytesPerSequence
|
||
}
|
||
|
||
return decodeCodePointsArray(res)
|
||
}
|
||
|
||
// Based on http://stackoverflow.com/a/22747272/680742, the browser with
|
||
// the lowest limit is Chrome, with 0x10000 args.
|
||
// We go 1 magnitude less, for safety
|
||
var MAX_ARGUMENTS_LENGTH = 0x1000
|
||
|
||
function decodeCodePointsArray (codePoints) {
|
||
var len = codePoints.length
|
||
if (len <= MAX_ARGUMENTS_LENGTH) {
|
||
return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
|
||
}
|
||
|
||
// Decode in chunks to avoid "call stack size exceeded".
|
||
var res = ''
|
||
var i = 0
|
||
while (i < len) {
|
||
res += String.fromCharCode.apply(
|
||
String,
|
||
codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
|
||
)
|
||
}
|
||
return res
|
||
}
|
||
|
||
function asciiSlice (buf, start, end) {
|
||
var ret = ''
|
||
end = Math.min(buf.length, end)
|
||
|
||
for (var i = start; i < end; ++i) {
|
||
ret += String.fromCharCode(buf[i] & 0x7F)
|
||
}
|
||
return ret
|
||
}
|
||
|
||
function latin1Slice (buf, start, end) {
|
||
var ret = ''
|
||
end = Math.min(buf.length, end)
|
||
|
||
for (var i = start; i < end; ++i) {
|
||
ret += String.fromCharCode(buf[i])
|
||
}
|
||
return ret
|
||
}
|
||
|
||
function hexSlice (buf, start, end) {
|
||
var len = buf.length
|
||
|
||
if (!start || start < 0) start = 0
|
||
if (!end || end < 0 || end > len) end = len
|
||
|
||
var out = ''
|
||
for (var i = start; i < end; ++i) {
|
||
out += toHex(buf[i])
|
||
}
|
||
return out
|
||
}
|
||
|
||
function utf16leSlice (buf, start, end) {
|
||
var bytes = buf.slice(start, end)
|
||
var res = ''
|
||
for (var i = 0; i < bytes.length; i += 2) {
|
||
res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
|
||
}
|
||
return res
|
||
}
|
||
|
||
Buffer.prototype.slice = function slice (start, end) {
|
||
var len = this.length
|
||
start = ~~start
|
||
end = end === undefined ? len : ~~end
|
||
|
||
if (start < 0) {
|
||
start += len
|
||
if (start < 0) start = 0
|
||
} else if (start > len) {
|
||
start = len
|
||
}
|
||
|
||
if (end < 0) {
|
||
end += len
|
||
if (end < 0) end = 0
|
||
} else if (end > len) {
|
||
end = len
|
||
}
|
||
|
||
if (end < start) end = start
|
||
|
||
var newBuf
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
newBuf = this.subarray(start, end)
|
||
newBuf.__proto__ = Buffer.prototype
|
||
} else {
|
||
var sliceLen = end - start
|
||
newBuf = new Buffer(sliceLen, undefined)
|
||
for (var i = 0; i < sliceLen; ++i) {
|
||
newBuf[i] = this[i + start]
|
||
}
|
||
}
|
||
|
||
return newBuf
|
||
}
|
||
|
||
/*
|
||
* Need to make sure that buffer isn't trying to write out of bounds.
|
||
*/
|
||
function checkOffset (offset, ext, length) {
|
||
if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
|
||
if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
|
||
}
|
||
|
||
Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
|
||
offset = offset | 0
|
||
byteLength = byteLength | 0
|
||
if (!noAssert) checkOffset(offset, byteLength, this.length)
|
||
|
||
var val = this[offset]
|
||
var mul = 1
|
||
var i = 0
|
||
while (++i < byteLength && (mul *= 0x100)) {
|
||
val += this[offset + i] * mul
|
||
}
|
||
|
||
return val
|
||
}
|
||
|
||
Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
|
||
offset = offset | 0
|
||
byteLength = byteLength | 0
|
||
if (!noAssert) {
|
||
checkOffset(offset, byteLength, this.length)
|
||
}
|
||
|
||
var val = this[offset + --byteLength]
|
||
var mul = 1
|
||
while (byteLength > 0 && (mul *= 0x100)) {
|
||
val += this[offset + --byteLength] * mul
|
||
}
|
||
|
||
return val
|
||
}
|
||
|
||
Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 1, this.length)
|
||
return this[offset]
|
||
}
|
||
|
||
Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 2, this.length)
|
||
return this[offset] | (this[offset + 1] << 8)
|
||
}
|
||
|
||
Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 2, this.length)
|
||
return (this[offset] << 8) | this[offset + 1]
|
||
}
|
||
|
||
Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 4, this.length)
|
||
|
||
return ((this[offset]) |
|
||
(this[offset + 1] << 8) |
|
||
(this[offset + 2] << 16)) +
|
||
(this[offset + 3] * 0x1000000)
|
||
}
|
||
|
||
Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 4, this.length)
|
||
|
||
return (this[offset] * 0x1000000) +
|
||
((this[offset + 1] << 16) |
|
||
(this[offset + 2] << 8) |
|
||
this[offset + 3])
|
||
}
|
||
|
||
Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
|
||
offset = offset | 0
|
||
byteLength = byteLength | 0
|
||
if (!noAssert) checkOffset(offset, byteLength, this.length)
|
||
|
||
var val = this[offset]
|
||
var mul = 1
|
||
var i = 0
|
||
while (++i < byteLength && (mul *= 0x100)) {
|
||
val += this[offset + i] * mul
|
||
}
|
||
mul *= 0x80
|
||
|
||
if (val >= mul) val -= Math.pow(2, 8 * byteLength)
|
||
|
||
return val
|
||
}
|
||
|
||
Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
|
||
offset = offset | 0
|
||
byteLength = byteLength | 0
|
||
if (!noAssert) checkOffset(offset, byteLength, this.length)
|
||
|
||
var i = byteLength
|
||
var mul = 1
|
||
var val = this[offset + --i]
|
||
while (i > 0 && (mul *= 0x100)) {
|
||
val += this[offset + --i] * mul
|
||
}
|
||
mul *= 0x80
|
||
|
||
if (val >= mul) val -= Math.pow(2, 8 * byteLength)
|
||
|
||
return val
|
||
}
|
||
|
||
Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 1, this.length)
|
||
if (!(this[offset] & 0x80)) return (this[offset])
|
||
return ((0xff - this[offset] + 1) * -1)
|
||
}
|
||
|
||
Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 2, this.length)
|
||
var val = this[offset] | (this[offset + 1] << 8)
|
||
return (val & 0x8000) ? val | 0xFFFF0000 : val
|
||
}
|
||
|
||
Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 2, this.length)
|
||
var val = this[offset + 1] | (this[offset] << 8)
|
||
return (val & 0x8000) ? val | 0xFFFF0000 : val
|
||
}
|
||
|
||
Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 4, this.length)
|
||
|
||
return (this[offset]) |
|
||
(this[offset + 1] << 8) |
|
||
(this[offset + 2] << 16) |
|
||
(this[offset + 3] << 24)
|
||
}
|
||
|
||
Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 4, this.length)
|
||
|
||
return (this[offset] << 24) |
|
||
(this[offset + 1] << 16) |
|
||
(this[offset + 2] << 8) |
|
||
(this[offset + 3])
|
||
}
|
||
|
||
Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 4, this.length)
|
||
return ieee754.read(this, offset, true, 23, 4)
|
||
}
|
||
|
||
Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 4, this.length)
|
||
return ieee754.read(this, offset, false, 23, 4)
|
||
}
|
||
|
||
Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 8, this.length)
|
||
return ieee754.read(this, offset, true, 52, 8)
|
||
}
|
||
|
||
Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
|
||
if (!noAssert) checkOffset(offset, 8, this.length)
|
||
return ieee754.read(this, offset, false, 52, 8)
|
||
}
|
||
|
||
function checkInt (buf, value, offset, ext, max, min) {
|
||
if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
|
||
if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
|
||
if (offset + ext > buf.length) throw new RangeError('Index out of range')
|
||
}
|
||
|
||
Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
byteLength = byteLength | 0
|
||
if (!noAssert) {
|
||
var maxBytes = Math.pow(2, 8 * byteLength) - 1
|
||
checkInt(this, value, offset, byteLength, maxBytes, 0)
|
||
}
|
||
|
||
var mul = 1
|
||
var i = 0
|
||
this[offset] = value & 0xFF
|
||
while (++i < byteLength && (mul *= 0x100)) {
|
||
this[offset + i] = (value / mul) & 0xFF
|
||
}
|
||
|
||
return offset + byteLength
|
||
}
|
||
|
||
Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
byteLength = byteLength | 0
|
||
if (!noAssert) {
|
||
var maxBytes = Math.pow(2, 8 * byteLength) - 1
|
||
checkInt(this, value, offset, byteLength, maxBytes, 0)
|
||
}
|
||
|
||
var i = byteLength - 1
|
||
var mul = 1
|
||
this[offset + i] = value & 0xFF
|
||
while (--i >= 0 && (mul *= 0x100)) {
|
||
this[offset + i] = (value / mul) & 0xFF
|
||
}
|
||
|
||
return offset + byteLength
|
||
}
|
||
|
||
Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
|
||
if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
|
||
this[offset] = (value & 0xff)
|
||
return offset + 1
|
||
}
|
||
|
||
function objectWriteUInt16 (buf, value, offset, littleEndian) {
|
||
if (value < 0) value = 0xffff + value + 1
|
||
for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
|
||
buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
|
||
(littleEndian ? i : 1 - i) * 8
|
||
}
|
||
}
|
||
|
||
Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
this[offset] = (value & 0xff)
|
||
this[offset + 1] = (value >>> 8)
|
||
} else {
|
||
objectWriteUInt16(this, value, offset, true)
|
||
}
|
||
return offset + 2
|
||
}
|
||
|
||
Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
this[offset] = (value >>> 8)
|
||
this[offset + 1] = (value & 0xff)
|
||
} else {
|
||
objectWriteUInt16(this, value, offset, false)
|
||
}
|
||
return offset + 2
|
||
}
|
||
|
||
function objectWriteUInt32 (buf, value, offset, littleEndian) {
|
||
if (value < 0) value = 0xffffffff + value + 1
|
||
for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
|
||
buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
|
||
}
|
||
}
|
||
|
||
Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
this[offset + 3] = (value >>> 24)
|
||
this[offset + 2] = (value >>> 16)
|
||
this[offset + 1] = (value >>> 8)
|
||
this[offset] = (value & 0xff)
|
||
} else {
|
||
objectWriteUInt32(this, value, offset, true)
|
||
}
|
||
return offset + 4
|
||
}
|
||
|
||
Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
this[offset] = (value >>> 24)
|
||
this[offset + 1] = (value >>> 16)
|
||
this[offset + 2] = (value >>> 8)
|
||
this[offset + 3] = (value & 0xff)
|
||
} else {
|
||
objectWriteUInt32(this, value, offset, false)
|
||
}
|
||
return offset + 4
|
||
}
|
||
|
||
Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) {
|
||
var limit = Math.pow(2, 8 * byteLength - 1)
|
||
|
||
checkInt(this, value, offset, byteLength, limit - 1, -limit)
|
||
}
|
||
|
||
var i = 0
|
||
var mul = 1
|
||
var sub = 0
|
||
this[offset] = value & 0xFF
|
||
while (++i < byteLength && (mul *= 0x100)) {
|
||
if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
|
||
sub = 1
|
||
}
|
||
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
|
||
}
|
||
|
||
return offset + byteLength
|
||
}
|
||
|
||
Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) {
|
||
var limit = Math.pow(2, 8 * byteLength - 1)
|
||
|
||
checkInt(this, value, offset, byteLength, limit - 1, -limit)
|
||
}
|
||
|
||
var i = byteLength - 1
|
||
var mul = 1
|
||
var sub = 0
|
||
this[offset + i] = value & 0xFF
|
||
while (--i >= 0 && (mul *= 0x100)) {
|
||
if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
|
||
sub = 1
|
||
}
|
||
this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
|
||
}
|
||
|
||
return offset + byteLength
|
||
}
|
||
|
||
Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
|
||
if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
|
||
if (value < 0) value = 0xff + value + 1
|
||
this[offset] = (value & 0xff)
|
||
return offset + 1
|
||
}
|
||
|
||
Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
this[offset] = (value & 0xff)
|
||
this[offset + 1] = (value >>> 8)
|
||
} else {
|
||
objectWriteUInt16(this, value, offset, true)
|
||
}
|
||
return offset + 2
|
||
}
|
||
|
||
Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
this[offset] = (value >>> 8)
|
||
this[offset + 1] = (value & 0xff)
|
||
} else {
|
||
objectWriteUInt16(this, value, offset, false)
|
||
}
|
||
return offset + 2
|
||
}
|
||
|
||
Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
this[offset] = (value & 0xff)
|
||
this[offset + 1] = (value >>> 8)
|
||
this[offset + 2] = (value >>> 16)
|
||
this[offset + 3] = (value >>> 24)
|
||
} else {
|
||
objectWriteUInt32(this, value, offset, true)
|
||
}
|
||
return offset + 4
|
||
}
|
||
|
||
Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
|
||
value = +value
|
||
offset = offset | 0
|
||
if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
|
||
if (value < 0) value = 0xffffffff + value + 1
|
||
if (Buffer.TYPED_ARRAY_SUPPORT) {
|
||
this[offset] = (value >>> 24)
|
||
this[offset + 1] = (value >>> 16)
|
||
this[offset + 2] = (value >>> 8)
|
||
this[offset + 3] = (value & 0xff)
|
||
} else {
|
||
objectWriteUInt32(this, value, offset, false)
|
||
}
|
||
return offset + 4
|
||
}
|
||
|
||
function checkIEEE754 (buf, value, offset, ext, max, min) {
|
||
if (offset + ext > buf.length) throw new RangeError('Index out of range')
|
||
if (offset < 0) throw new RangeError('Index out of range')
|
||
}
|
||
|
||
function writeFloat (buf, value, offset, littleEndian, noAssert) {
|
||
if (!noAssert) {
|
||
checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
|
||
}
|
||
ieee754.write(buf, value, offset, littleEndian, 23, 4)
|
||
return offset + 4
|
||
}
|
||
|
||
Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
|
||
return writeFloat(this, value, offset, true, noAssert)
|
||
}
|
||
|
||
Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
|
||
return writeFloat(this, value, offset, false, noAssert)
|
||
}
|
||
|
||
function writeDouble (buf, value, offset, littleEndian, noAssert) {
|
||
if (!noAssert) {
|
||
checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
|
||
}
|
||
ieee754.write(buf, value, offset, littleEndian, 52, 8)
|
||
return offset + 8
|
||
}
|
||
|
||
Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
|
||
return writeDouble(this, value, offset, true, noAssert)
|
||
}
|
||
|
||
Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
|
||
return writeDouble(this, value, offset, false, noAssert)
|
||
}
|
||
|
||
// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
|
||
Buffer.prototype.copy = function copy (target, targetStart, start, end) {
|
||
if (!start) start = 0
|
||
if (!end && end !== 0) end = this.length
|
||
if (targetStart >= target.length) targetStart = target.length
|
||
if (!targetStart) targetStart = 0
|
||
if (end > 0 && end < start) end = start
|
||
|
||
// Copy 0 bytes; we're done
|
||
if (end === start) return 0
|
||
if (target.length === 0 || this.length === 0) return 0
|
||
|
||
// Fatal error conditions
|
||
if (targetStart < 0) {
|
||
throw new RangeError('targetStart out of bounds')
|
||
}
|
||
if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
|
||
if (end < 0) throw new RangeError('sourceEnd out of bounds')
|
||
|
||
// Are we oob?
|
||
if (end > this.length) end = this.length
|
||
if (target.length - targetStart < end - start) {
|
||
end = target.length - targetStart + start
|
||
}
|
||
|
||
var len = end - start
|
||
var i
|
||
|
||
if (this === target && start < targetStart && targetStart < end) {
|
||
// descending copy from end
|
||
for (i = len - 1; i >= 0; --i) {
|
||
target[i + targetStart] = this[i + start]
|
||
}
|
||
} else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
|
||
// ascending copy from start
|
||
for (i = 0; i < len; ++i) {
|
||
target[i + targetStart] = this[i + start]
|
||
}
|
||
} else {
|
||
Uint8Array.prototype.set.call(
|
||
target,
|
||
this.subarray(start, start + len),
|
||
targetStart
|
||
)
|
||
}
|
||
|
||
return len
|
||
}
|
||
|
||
// Usage:
|
||
// buffer.fill(number[, offset[, end]])
|
||
// buffer.fill(buffer[, offset[, end]])
|
||
// buffer.fill(string[, offset[, end]][, encoding])
|
||
Buffer.prototype.fill = function fill (val, start, end, encoding) {
|
||
// Handle string cases:
|
||
if (typeof val === 'string') {
|
||
if (typeof start === 'string') {
|
||
encoding = start
|
||
start = 0
|
||
end = this.length
|
||
} else if (typeof end === 'string') {
|
||
encoding = end
|
||
end = this.length
|
||
}
|
||
if (val.length === 1) {
|
||
var code = val.charCodeAt(0)
|
||
if (code < 256) {
|
||
val = code
|
||
}
|
||
}
|
||
if (encoding !== undefined && typeof encoding !== 'string') {
|
||
throw new TypeError('encoding must be a string')
|
||
}
|
||
if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
|
||
throw new TypeError('Unknown encoding: ' + encoding)
|
||
}
|
||
} else if (typeof val === 'number') {
|
||
val = val & 255
|
||
}
|
||
|
||
// Invalid ranges are not set to a default, so can range check early.
|
||
if (start < 0 || this.length < start || this.length < end) {
|
||
throw new RangeError('Out of range index')
|
||
}
|
||
|
||
if (end <= start) {
|
||
return this
|
||
}
|
||
|
||
start = start >>> 0
|
||
end = end === undefined ? this.length : end >>> 0
|
||
|
||
if (!val) val = 0
|
||
|
||
var i
|
||
if (typeof val === 'number') {
|
||
for (i = start; i < end; ++i) {
|
||
this[i] = val
|
||
}
|
||
} else {
|
||
var bytes = Buffer.isBuffer(val)
|
||
? val
|
||
: utf8ToBytes(new Buffer(val, encoding).toString())
|
||
var len = bytes.length
|
||
for (i = 0; i < end - start; ++i) {
|
||
this[i + start] = bytes[i % len]
|
||
}
|
||
}
|
||
|
||
return this
|
||
}
|
||
|
||
// HELPER FUNCTIONS
|
||
// ================
|
||
|
||
var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
|
||
|
||
function base64clean (str) {
|
||
// Node strips out invalid characters like \n and \t from the string, base64-js does not
|
||
str = stringtrim(str).replace(INVALID_BASE64_RE, '')
|
||
// Node converts strings with length < 2 to ''
|
||
if (str.length < 2) return ''
|
||
// Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
|
||
while (str.length % 4 !== 0) {
|
||
str = str + '='
|
||
}
|
||
return str
|
||
}
|
||
|
||
function stringtrim (str) {
|
||
if (str.trim) return str.trim()
|
||
return str.replace(/^\s+|\s+$/g, '')
|
||
}
|
||
|
||
function toHex (n) {
|
||
if (n < 16) return '0' + n.toString(16)
|
||
return n.toString(16)
|
||
}
|
||
|
||
function utf8ToBytes (string, units) {
|
||
units = units || Infinity
|
||
var codePoint
|
||
var length = string.length
|
||
var leadSurrogate = null
|
||
var bytes = []
|
||
|
||
for (var i = 0; i < length; ++i) {
|
||
codePoint = string.charCodeAt(i)
|
||
|
||
// is surrogate component
|
||
if (codePoint > 0xD7FF && codePoint < 0xE000) {
|
||
// last char was a lead
|
||
if (!leadSurrogate) {
|
||
// no lead yet
|
||
if (codePoint > 0xDBFF) {
|
||
// unexpected trail
|
||
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
||
continue
|
||
} else if (i + 1 === length) {
|
||
// unpaired lead
|
||
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
||
continue
|
||
}
|
||
|
||
// valid lead
|
||
leadSurrogate = codePoint
|
||
|
||
continue
|
||
}
|
||
|
||
// 2 leads in a row
|
||
if (codePoint < 0xDC00) {
|
||
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
||
leadSurrogate = codePoint
|
||
continue
|
||
}
|
||
|
||
// valid surrogate pair
|
||
codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
|
||
} else if (leadSurrogate) {
|
||
// valid bmp char, but last char was a lead
|
||
if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
|
||
}
|
||
|
||
leadSurrogate = null
|
||
|
||
// encode utf8
|
||
if (codePoint < 0x80) {
|
||
if ((units -= 1) < 0) break
|
||
bytes.push(codePoint)
|
||
} else if (codePoint < 0x800) {
|
||
if ((units -= 2) < 0) break
|
||
bytes.push(
|
||
codePoint >> 0x6 | 0xC0,
|
||
codePoint & 0x3F | 0x80
|
||
)
|
||
} else if (codePoint < 0x10000) {
|
||
if ((units -= 3) < 0) break
|
||
bytes.push(
|
||
codePoint >> 0xC | 0xE0,
|
||
codePoint >> 0x6 & 0x3F | 0x80,
|
||
codePoint & 0x3F | 0x80
|
||
)
|
||
} else if (codePoint < 0x110000) {
|
||
if ((units -= 4) < 0) break
|
||
bytes.push(
|
||
codePoint >> 0x12 | 0xF0,
|
||
codePoint >> 0xC & 0x3F | 0x80,
|
||
codePoint >> 0x6 & 0x3F | 0x80,
|
||
codePoint & 0x3F | 0x80
|
||
)
|
||
} else {
|
||
throw new Error('Invalid code point')
|
||
}
|
||
}
|
||
|
||
return bytes
|
||
}
|
||
|
||
function asciiToBytes (str) {
|
||
var byteArray = []
|
||
for (var i = 0; i < str.length; ++i) {
|
||
// Node's code seems to be doing this and not & 0x7F..
|
||
byteArray.push(str.charCodeAt(i) & 0xFF)
|
||
}
|
||
return byteArray
|
||
}
|
||
|
||
function utf16leToBytes (str, units) {
|
||
var c, hi, lo
|
||
var byteArray = []
|
||
for (var i = 0; i < str.length; ++i) {
|
||
if ((units -= 2) < 0) break
|
||
|
||
c = str.charCodeAt(i)
|
||
hi = c >> 8
|
||
lo = c % 256
|
||
byteArray.push(lo)
|
||
byteArray.push(hi)
|
||
}
|
||
|
||
return byteArray
|
||
}
|
||
|
||
function base64ToBytes (str) {
|
||
return base64.toByteArray(base64clean(str))
|
||
}
|
||
|
||
function blitBuffer (src, dst, offset, length) {
|
||
for (var i = 0; i < length; ++i) {
|
||
if ((i + offset >= dst.length) || (i >= src.length)) break
|
||
dst[i + offset] = src[i]
|
||
}
|
||
return i
|
||
}
|
||
|
||
function isnan (val) {
|
||
return val !== val // eslint-disable-line no-self-compare
|
||
}
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/buffer/node_modules/isarray/index.js":
|
||
/*!***********************************************************!*\
|
||
!*** ./node_modules/buffer/node_modules/isarray/index.js ***!
|
||
\***********************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
var toString = {}.toString;
|
||
|
||
module.exports = Array.isArray || function (arr) {
|
||
return toString.call(arr) == '[object Array]';
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/component-bind/index.js":
|
||
/*!**********************************************!*\
|
||
!*** ./node_modules/component-bind/index.js ***!
|
||
\**********************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Slice reference.
|
||
*/
|
||
|
||
var slice = [].slice;
|
||
|
||
/**
|
||
* Bind `obj` to `fn`.
|
||
*
|
||
* @param {Object} obj
|
||
* @param {Function|String} fn or string
|
||
* @return {Function}
|
||
* @api public
|
||
*/
|
||
|
||
module.exports = function(obj, fn){
|
||
if ('string' == typeof fn) fn = obj[fn];
|
||
if ('function' != typeof fn) throw new Error('bind() requires a function');
|
||
var args = slice.call(arguments, 2);
|
||
return function(){
|
||
return fn.apply(obj, args.concat(slice.call(arguments)));
|
||
}
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/component-emitter/index.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/component-emitter/index.js ***!
|
||
\*************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
|
||
/**
|
||
* Expose `Emitter`.
|
||
*/
|
||
|
||
if (true) {
|
||
module.exports = Emitter;
|
||
}
|
||
|
||
/**
|
||
* Initialize a new `Emitter`.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
function Emitter(obj) {
|
||
if (obj) return mixin(obj);
|
||
};
|
||
|
||
/**
|
||
* Mixin the emitter properties.
|
||
*
|
||
* @param {Object} obj
|
||
* @return {Object}
|
||
* @api private
|
||
*/
|
||
|
||
function mixin(obj) {
|
||
for (var key in Emitter.prototype) {
|
||
obj[key] = Emitter.prototype[key];
|
||
}
|
||
return obj;
|
||
}
|
||
|
||
/**
|
||
* Listen on the given `event` with `fn`.
|
||
*
|
||
* @param {String} event
|
||
* @param {Function} fn
|
||
* @return {Emitter}
|
||
* @api public
|
||
*/
|
||
|
||
Emitter.prototype.on =
|
||
Emitter.prototype.addEventListener = function(event, fn){
|
||
this._callbacks = this._callbacks || {};
|
||
(this._callbacks['$' + event] = this._callbacks['$' + event] || [])
|
||
.push(fn);
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Adds an `event` listener that will be invoked a single
|
||
* time then automatically removed.
|
||
*
|
||
* @param {String} event
|
||
* @param {Function} fn
|
||
* @return {Emitter}
|
||
* @api public
|
||
*/
|
||
|
||
Emitter.prototype.once = function(event, fn){
|
||
function on() {
|
||
this.off(event, on);
|
||
fn.apply(this, arguments);
|
||
}
|
||
|
||
on.fn = fn;
|
||
this.on(event, on);
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Remove the given callback for `event` or all
|
||
* registered callbacks.
|
||
*
|
||
* @param {String} event
|
||
* @param {Function} fn
|
||
* @return {Emitter}
|
||
* @api public
|
||
*/
|
||
|
||
Emitter.prototype.off =
|
||
Emitter.prototype.removeListener =
|
||
Emitter.prototype.removeAllListeners =
|
||
Emitter.prototype.removeEventListener = function(event, fn){
|
||
this._callbacks = this._callbacks || {};
|
||
|
||
// all
|
||
if (0 == arguments.length) {
|
||
this._callbacks = {};
|
||
return this;
|
||
}
|
||
|
||
// specific event
|
||
var callbacks = this._callbacks['$' + event];
|
||
if (!callbacks) return this;
|
||
|
||
// remove all handlers
|
||
if (1 == arguments.length) {
|
||
delete this._callbacks['$' + event];
|
||
return this;
|
||
}
|
||
|
||
// remove specific handler
|
||
var cb;
|
||
for (var i = 0; i < callbacks.length; i++) {
|
||
cb = callbacks[i];
|
||
if (cb === fn || cb.fn === fn) {
|
||
callbacks.splice(i, 1);
|
||
break;
|
||
}
|
||
}
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Emit `event` with the given args.
|
||
*
|
||
* @param {String} event
|
||
* @param {Mixed} ...
|
||
* @return {Emitter}
|
||
*/
|
||
|
||
Emitter.prototype.emit = function(event){
|
||
this._callbacks = this._callbacks || {};
|
||
var args = [].slice.call(arguments, 1)
|
||
, callbacks = this._callbacks['$' + event];
|
||
|
||
if (callbacks) {
|
||
callbacks = callbacks.slice(0);
|
||
for (var i = 0, len = callbacks.length; i < len; ++i) {
|
||
callbacks[i].apply(this, args);
|
||
}
|
||
}
|
||
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Return array of callbacks for `event`.
|
||
*
|
||
* @param {String} event
|
||
* @return {Array}
|
||
* @api public
|
||
*/
|
||
|
||
Emitter.prototype.listeners = function(event){
|
||
this._callbacks = this._callbacks || {};
|
||
return this._callbacks['$' + event] || [];
|
||
};
|
||
|
||
/**
|
||
* Check if this emitter has `event` handlers.
|
||
*
|
||
* @param {String} event
|
||
* @return {Boolean}
|
||
* @api public
|
||
*/
|
||
|
||
Emitter.prototype.hasListeners = function(event){
|
||
return !! this.listeners(event).length;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/component-inherit/index.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/component-inherit/index.js ***!
|
||
\*************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
|
||
module.exports = function(a, b){
|
||
var fn = function(){};
|
||
fn.prototype = b.prototype;
|
||
a.prototype = new fn;
|
||
a.prototype.constructor = a;
|
||
};
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/debug/node_modules/ms/index.js":
|
||
/*!*****************************************************!*\
|
||
!*** ./node_modules/debug/node_modules/ms/index.js ***!
|
||
\*****************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Helpers.
|
||
*/
|
||
|
||
var s = 1000;
|
||
var m = s * 60;
|
||
var h = m * 60;
|
||
var d = h * 24;
|
||
var w = d * 7;
|
||
var y = d * 365.25;
|
||
|
||
/**
|
||
* Parse or format the given `val`.
|
||
*
|
||
* Options:
|
||
*
|
||
* - `long` verbose formatting [false]
|
||
*
|
||
* @param {String|Number} val
|
||
* @param {Object} [options]
|
||
* @throws {Error} throw an error if val is not a non-empty string or a number
|
||
* @return {String|Number}
|
||
* @api public
|
||
*/
|
||
|
||
module.exports = function(val, options) {
|
||
options = options || {};
|
||
var type = typeof val;
|
||
if (type === 'string' && val.length > 0) {
|
||
return parse(val);
|
||
} else if (type === 'number' && isFinite(val)) {
|
||
return options.long ? fmtLong(val) : fmtShort(val);
|
||
}
|
||
throw new Error(
|
||
'val is not a non-empty string or a valid number. val=' +
|
||
JSON.stringify(val)
|
||
);
|
||
};
|
||
|
||
/**
|
||
* Parse the given `str` and return milliseconds.
|
||
*
|
||
* @param {String} str
|
||
* @return {Number}
|
||
* @api private
|
||
*/
|
||
|
||
function parse(str) {
|
||
str = String(str);
|
||
if (str.length > 100) {
|
||
return;
|
||
}
|
||
var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
|
||
str
|
||
);
|
||
if (!match) {
|
||
return;
|
||
}
|
||
var n = parseFloat(match[1]);
|
||
var type = (match[2] || 'ms').toLowerCase();
|
||
switch (type) {
|
||
case 'years':
|
||
case 'year':
|
||
case 'yrs':
|
||
case 'yr':
|
||
case 'y':
|
||
return n * y;
|
||
case 'weeks':
|
||
case 'week':
|
||
case 'w':
|
||
return n * w;
|
||
case 'days':
|
||
case 'day':
|
||
case 'd':
|
||
return n * d;
|
||
case 'hours':
|
||
case 'hour':
|
||
case 'hrs':
|
||
case 'hr':
|
||
case 'h':
|
||
return n * h;
|
||
case 'minutes':
|
||
case 'minute':
|
||
case 'mins':
|
||
case 'min':
|
||
case 'm':
|
||
return n * m;
|
||
case 'seconds':
|
||
case 'second':
|
||
case 'secs':
|
||
case 'sec':
|
||
case 's':
|
||
return n * s;
|
||
case 'milliseconds':
|
||
case 'millisecond':
|
||
case 'msecs':
|
||
case 'msec':
|
||
case 'ms':
|
||
return n;
|
||
default:
|
||
return undefined;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Short format for `ms`.
|
||
*
|
||
* @param {Number} ms
|
||
* @return {String}
|
||
* @api private
|
||
*/
|
||
|
||
function fmtShort(ms) {
|
||
var msAbs = Math.abs(ms);
|
||
if (msAbs >= d) {
|
||
return Math.round(ms / d) + 'd';
|
||
}
|
||
if (msAbs >= h) {
|
||
return Math.round(ms / h) + 'h';
|
||
}
|
||
if (msAbs >= m) {
|
||
return Math.round(ms / m) + 'm';
|
||
}
|
||
if (msAbs >= s) {
|
||
return Math.round(ms / s) + 's';
|
||
}
|
||
return ms + 'ms';
|
||
}
|
||
|
||
/**
|
||
* Long format for `ms`.
|
||
*
|
||
* @param {Number} ms
|
||
* @return {String}
|
||
* @api private
|
||
*/
|
||
|
||
function fmtLong(ms) {
|
||
var msAbs = Math.abs(ms);
|
||
if (msAbs >= d) {
|
||
return plural(ms, msAbs, d, 'day');
|
||
}
|
||
if (msAbs >= h) {
|
||
return plural(ms, msAbs, h, 'hour');
|
||
}
|
||
if (msAbs >= m) {
|
||
return plural(ms, msAbs, m, 'minute');
|
||
}
|
||
if (msAbs >= s) {
|
||
return plural(ms, msAbs, s, 'second');
|
||
}
|
||
return ms + ' ms';
|
||
}
|
||
|
||
/**
|
||
* Pluralization helper.
|
||
*/
|
||
|
||
function plural(ms, msAbs, n, name) {
|
||
var isPlural = msAbs >= n * 1.5;
|
||
return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/debug/src/browser.js":
|
||
/*!*******************************************!*\
|
||
!*** ./node_modules/debug/src/browser.js ***!
|
||
\*******************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(process) {/* eslint-env browser */
|
||
|
||
/**
|
||
* This is the web browser implementation of `debug()`.
|
||
*/
|
||
|
||
exports.log = log;
|
||
exports.formatArgs = formatArgs;
|
||
exports.save = save;
|
||
exports.load = load;
|
||
exports.useColors = useColors;
|
||
exports.storage = localstorage();
|
||
|
||
/**
|
||
* Colors.
|
||
*/
|
||
|
||
exports.colors = [
|
||
'#0000CC',
|
||
'#0000FF',
|
||
'#0033CC',
|
||
'#0033FF',
|
||
'#0066CC',
|
||
'#0066FF',
|
||
'#0099CC',
|
||
'#0099FF',
|
||
'#00CC00',
|
||
'#00CC33',
|
||
'#00CC66',
|
||
'#00CC99',
|
||
'#00CCCC',
|
||
'#00CCFF',
|
||
'#3300CC',
|
||
'#3300FF',
|
||
'#3333CC',
|
||
'#3333FF',
|
||
'#3366CC',
|
||
'#3366FF',
|
||
'#3399CC',
|
||
'#3399FF',
|
||
'#33CC00',
|
||
'#33CC33',
|
||
'#33CC66',
|
||
'#33CC99',
|
||
'#33CCCC',
|
||
'#33CCFF',
|
||
'#6600CC',
|
||
'#6600FF',
|
||
'#6633CC',
|
||
'#6633FF',
|
||
'#66CC00',
|
||
'#66CC33',
|
||
'#9900CC',
|
||
'#9900FF',
|
||
'#9933CC',
|
||
'#9933FF',
|
||
'#99CC00',
|
||
'#99CC33',
|
||
'#CC0000',
|
||
'#CC0033',
|
||
'#CC0066',
|
||
'#CC0099',
|
||
'#CC00CC',
|
||
'#CC00FF',
|
||
'#CC3300',
|
||
'#CC3333',
|
||
'#CC3366',
|
||
'#CC3399',
|
||
'#CC33CC',
|
||
'#CC33FF',
|
||
'#CC6600',
|
||
'#CC6633',
|
||
'#CC9900',
|
||
'#CC9933',
|
||
'#CCCC00',
|
||
'#CCCC33',
|
||
'#FF0000',
|
||
'#FF0033',
|
||
'#FF0066',
|
||
'#FF0099',
|
||
'#FF00CC',
|
||
'#FF00FF',
|
||
'#FF3300',
|
||
'#FF3333',
|
||
'#FF3366',
|
||
'#FF3399',
|
||
'#FF33CC',
|
||
'#FF33FF',
|
||
'#FF6600',
|
||
'#FF6633',
|
||
'#FF9900',
|
||
'#FF9933',
|
||
'#FFCC00',
|
||
'#FFCC33'
|
||
];
|
||
|
||
/**
|
||
* Currently only WebKit-based Web Inspectors, Firefox >= v31,
|
||
* and the Firebug extension (any Firefox version) are known
|
||
* to support "%c" CSS customizations.
|
||
*
|
||
* TODO: add a `localStorage` variable to explicitly enable/disable colors
|
||
*/
|
||
|
||
// eslint-disable-next-line complexity
|
||
function useColors() {
|
||
// NB: In an Electron preload script, document will be defined but not fully
|
||
// initialized. Since we know we're in Chrome, we'll just detect this case
|
||
// explicitly
|
||
if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
|
||
return true;
|
||
}
|
||
|
||
// Internet Explorer and Edge do not support colors.
|
||
if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
|
||
return false;
|
||
}
|
||
|
||
// Is webkit? http://stackoverflow.com/a/16459606/376773
|
||
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
|
||
return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
|
||
// Is firebug? http://stackoverflow.com/a/398120/376773
|
||
(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
|
||
// Is firefox >= v31?
|
||
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
|
||
(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
|
||
// Double check webkit in userAgent just in case we are in a worker
|
||
(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
|
||
}
|
||
|
||
/**
|
||
* Colorize log arguments if enabled.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
function formatArgs(args) {
|
||
args[0] = (this.useColors ? '%c' : '') +
|
||
this.namespace +
|
||
(this.useColors ? ' %c' : ' ') +
|
||
args[0] +
|
||
(this.useColors ? '%c ' : ' ') +
|
||
'+' + module.exports.humanize(this.diff);
|
||
|
||
if (!this.useColors) {
|
||
return;
|
||
}
|
||
|
||
const c = 'color: ' + this.color;
|
||
args.splice(1, 0, c, 'color: inherit');
|
||
|
||
// The final "%c" is somewhat tricky, because there could be other
|
||
// arguments passed either before or after the %c, so we need to
|
||
// figure out the correct index to insert the CSS into
|
||
let index = 0;
|
||
let lastC = 0;
|
||
args[0].replace(/%[a-zA-Z%]/g, match => {
|
||
if (match === '%%') {
|
||
return;
|
||
}
|
||
index++;
|
||
if (match === '%c') {
|
||
// We only are interested in the *last* %c
|
||
// (the user may have provided their own)
|
||
lastC = index;
|
||
}
|
||
});
|
||
|
||
args.splice(lastC, 0, c);
|
||
}
|
||
|
||
/**
|
||
* Invokes `console.log()` when available.
|
||
* No-op when `console.log` is not a "function".
|
||
*
|
||
* @api public
|
||
*/
|
||
function log(...args) {
|
||
// This hackery is required for IE8/9, where
|
||
// the `console.log` function doesn't have 'apply'
|
||
return typeof console === 'object' &&
|
||
console.log &&
|
||
console.log(...args);
|
||
}
|
||
|
||
/**
|
||
* Save `namespaces`.
|
||
*
|
||
* @param {String} namespaces
|
||
* @api private
|
||
*/
|
||
function save(namespaces) {
|
||
try {
|
||
if (namespaces) {
|
||
exports.storage.setItem('debug', namespaces);
|
||
} else {
|
||
exports.storage.removeItem('debug');
|
||
}
|
||
} catch (error) {
|
||
// Swallow
|
||
// XXX (@Qix-) should we be logging these?
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Load `namespaces`.
|
||
*
|
||
* @return {String} returns the previously persisted debug modes
|
||
* @api private
|
||
*/
|
||
function load() {
|
||
let r;
|
||
try {
|
||
r = exports.storage.getItem('debug');
|
||
} catch (error) {
|
||
// Swallow
|
||
// XXX (@Qix-) should we be logging these?
|
||
}
|
||
|
||
// If debug isn't set in LS, and we're in Electron, try to load $DEBUG
|
||
if (!r && typeof process !== 'undefined' && 'env' in process) {
|
||
r = process.env.DEBUG;
|
||
}
|
||
|
||
return r;
|
||
}
|
||
|
||
/**
|
||
* Localstorage attempts to return the localstorage.
|
||
*
|
||
* This is necessary because safari throws
|
||
* when a user disables cookies/localstorage
|
||
* and you attempt to access it.
|
||
*
|
||
* @return {LocalStorage}
|
||
* @api private
|
||
*/
|
||
|
||
function localstorage() {
|
||
try {
|
||
// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
|
||
// The Browser also has localStorage in the global context.
|
||
return localStorage;
|
||
} catch (error) {
|
||
// Swallow
|
||
// XXX (@Qix-) should we be logging these?
|
||
}
|
||
}
|
||
|
||
module.exports = __webpack_require__(/*! ./common */ "./node_modules/debug/src/common.js")(exports);
|
||
|
||
const {formatters} = module.exports;
|
||
|
||
/**
|
||
* Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
|
||
*/
|
||
|
||
formatters.j = function (v) {
|
||
try {
|
||
return JSON.stringify(v);
|
||
} catch (error) {
|
||
return '[UnexpectedJSONParseError]: ' + error.message;
|
||
}
|
||
};
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js")))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/debug/src/common.js":
|
||
/*!******************************************!*\
|
||
!*** ./node_modules/debug/src/common.js ***!
|
||
\******************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
|
||
/**
|
||
* This is the common logic for both the Node.js and web browser
|
||
* implementations of `debug()`.
|
||
*/
|
||
|
||
function setup(env) {
|
||
createDebug.debug = createDebug;
|
||
createDebug.default = createDebug;
|
||
createDebug.coerce = coerce;
|
||
createDebug.disable = disable;
|
||
createDebug.enable = enable;
|
||
createDebug.enabled = enabled;
|
||
createDebug.humanize = __webpack_require__(/*! ms */ "./node_modules/debug/node_modules/ms/index.js");
|
||
|
||
Object.keys(env).forEach(key => {
|
||
createDebug[key] = env[key];
|
||
});
|
||
|
||
/**
|
||
* Active `debug` instances.
|
||
*/
|
||
createDebug.instances = [];
|
||
|
||
/**
|
||
* The currently active debug mode names, and names to skip.
|
||
*/
|
||
|
||
createDebug.names = [];
|
||
createDebug.skips = [];
|
||
|
||
/**
|
||
* Map of special "%n" handling functions, for the debug "format" argument.
|
||
*
|
||
* Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
|
||
*/
|
||
createDebug.formatters = {};
|
||
|
||
/**
|
||
* Selects a color for a debug namespace
|
||
* @param {String} namespace The namespace string for the for the debug instance to be colored
|
||
* @return {Number|String} An ANSI color code for the given namespace
|
||
* @api private
|
||
*/
|
||
function selectColor(namespace) {
|
||
let hash = 0;
|
||
|
||
for (let i = 0; i < namespace.length; i++) {
|
||
hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
|
||
hash |= 0; // Convert to 32bit integer
|
||
}
|
||
|
||
return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
|
||
}
|
||
createDebug.selectColor = selectColor;
|
||
|
||
/**
|
||
* Create a debugger with the given `namespace`.
|
||
*
|
||
* @param {String} namespace
|
||
* @return {Function}
|
||
* @api public
|
||
*/
|
||
function createDebug(namespace) {
|
||
let prevTime;
|
||
|
||
function debug(...args) {
|
||
// Disabled?
|
||
if (!debug.enabled) {
|
||
return;
|
||
}
|
||
|
||
const self = debug;
|
||
|
||
// Set `diff` timestamp
|
||
const curr = Number(new Date());
|
||
const ms = curr - (prevTime || curr);
|
||
self.diff = ms;
|
||
self.prev = prevTime;
|
||
self.curr = curr;
|
||
prevTime = curr;
|
||
|
||
args[0] = createDebug.coerce(args[0]);
|
||
|
||
if (typeof args[0] !== 'string') {
|
||
// Anything else let's inspect with %O
|
||
args.unshift('%O');
|
||
}
|
||
|
||
// Apply any `formatters` transformations
|
||
let index = 0;
|
||
args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
|
||
// If we encounter an escaped % then don't increase the array index
|
||
if (match === '%%') {
|
||
return match;
|
||
}
|
||
index++;
|
||
const formatter = createDebug.formatters[format];
|
||
if (typeof formatter === 'function') {
|
||
const val = args[index];
|
||
match = formatter.call(self, val);
|
||
|
||
// Now we need to remove `args[index]` since it's inlined in the `format`
|
||
args.splice(index, 1);
|
||
index--;
|
||
}
|
||
return match;
|
||
});
|
||
|
||
// Apply env-specific formatting (colors, etc.)
|
||
createDebug.formatArgs.call(self, args);
|
||
|
||
const logFn = self.log || createDebug.log;
|
||
logFn.apply(self, args);
|
||
}
|
||
|
||
debug.namespace = namespace;
|
||
debug.enabled = createDebug.enabled(namespace);
|
||
debug.useColors = createDebug.useColors();
|
||
debug.color = selectColor(namespace);
|
||
debug.destroy = destroy;
|
||
debug.extend = extend;
|
||
// Debug.formatArgs = formatArgs;
|
||
// debug.rawLog = rawLog;
|
||
|
||
// env-specific initialization logic for debug instances
|
||
if (typeof createDebug.init === 'function') {
|
||
createDebug.init(debug);
|
||
}
|
||
|
||
createDebug.instances.push(debug);
|
||
|
||
return debug;
|
||
}
|
||
|
||
function destroy() {
|
||
const index = createDebug.instances.indexOf(this);
|
||
if (index !== -1) {
|
||
createDebug.instances.splice(index, 1);
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
function extend(namespace, delimiter) {
|
||
const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
|
||
newDebug.log = this.log;
|
||
return newDebug;
|
||
}
|
||
|
||
/**
|
||
* Enables a debug mode by namespaces. This can include modes
|
||
* separated by a colon and wildcards.
|
||
*
|
||
* @param {String} namespaces
|
||
* @api public
|
||
*/
|
||
function enable(namespaces) {
|
||
createDebug.save(namespaces);
|
||
|
||
createDebug.names = [];
|
||
createDebug.skips = [];
|
||
|
||
let i;
|
||
const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
|
||
const len = split.length;
|
||
|
||
for (i = 0; i < len; i++) {
|
||
if (!split[i]) {
|
||
// ignore empty strings
|
||
continue;
|
||
}
|
||
|
||
namespaces = split[i].replace(/\*/g, '.*?');
|
||
|
||
if (namespaces[0] === '-') {
|
||
createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
|
||
} else {
|
||
createDebug.names.push(new RegExp('^' + namespaces + '$'));
|
||
}
|
||
}
|
||
|
||
for (i = 0; i < createDebug.instances.length; i++) {
|
||
const instance = createDebug.instances[i];
|
||
instance.enabled = createDebug.enabled(instance.namespace);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Disable debug output.
|
||
*
|
||
* @return {String} namespaces
|
||
* @api public
|
||
*/
|
||
function disable() {
|
||
const namespaces = [
|
||
...createDebug.names.map(toNamespace),
|
||
...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)
|
||
].join(',');
|
||
createDebug.enable('');
|
||
return namespaces;
|
||
}
|
||
|
||
/**
|
||
* Returns true if the given mode name is enabled, false otherwise.
|
||
*
|
||
* @param {String} name
|
||
* @return {Boolean}
|
||
* @api public
|
||
*/
|
||
function enabled(name) {
|
||
if (name[name.length - 1] === '*') {
|
||
return true;
|
||
}
|
||
|
||
let i;
|
||
let len;
|
||
|
||
for (i = 0, len = createDebug.skips.length; i < len; i++) {
|
||
if (createDebug.skips[i].test(name)) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
for (i = 0, len = createDebug.names.length; i < len; i++) {
|
||
if (createDebug.names[i].test(name)) {
|
||
return true;
|
||
}
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* Convert regexp to namespace
|
||
*
|
||
* @param {RegExp} regxep
|
||
* @return {String} namespace
|
||
* @api private
|
||
*/
|
||
function toNamespace(regexp) {
|
||
return regexp.toString()
|
||
.substring(2, regexp.toString().length - 2)
|
||
.replace(/\.\*\?$/, '*');
|
||
}
|
||
|
||
/**
|
||
* Coerce `val`.
|
||
*
|
||
* @param {Mixed} val
|
||
* @return {Mixed}
|
||
* @api private
|
||
*/
|
||
function coerce(val) {
|
||
if (val instanceof Error) {
|
||
return val.stack || val.message;
|
||
}
|
||
return val;
|
||
}
|
||
|
||
createDebug.enable(createDebug.load());
|
||
|
||
return createDebug;
|
||
}
|
||
|
||
module.exports = setup;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-client/lib/index.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/engine.io-client/lib/index.js ***!
|
||
\****************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
|
||
module.exports = __webpack_require__(/*! ./socket */ "./node_modules/engine.io-client/lib/socket.js");
|
||
|
||
/**
|
||
* Exports parser
|
||
*
|
||
* @api public
|
||
*
|
||
*/
|
||
module.exports.parser = __webpack_require__(/*! engine.io-parser */ "./node_modules/engine.io-parser/lib/browser.js");
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-client/lib/socket.js":
|
||
/*!*****************************************************!*\
|
||
!*** ./node_modules/engine.io-client/lib/socket.js ***!
|
||
\*****************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var transports = __webpack_require__(/*! ./transports/index */ "./node_modules/engine.io-client/lib/transports/index.js");
|
||
var Emitter = __webpack_require__(/*! component-emitter */ "./node_modules/component-emitter/index.js");
|
||
var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.js")('engine.io-client:socket');
|
||
var index = __webpack_require__(/*! indexof */ "./node_modules/indexof/index.js");
|
||
var parser = __webpack_require__(/*! engine.io-parser */ "./node_modules/engine.io-parser/lib/browser.js");
|
||
var parseuri = __webpack_require__(/*! parseuri */ "./node_modules/parseuri/index.js");
|
||
var parseqs = __webpack_require__(/*! parseqs */ "./node_modules/parseqs/index.js");
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = Socket;
|
||
|
||
/**
|
||
* Socket constructor.
|
||
*
|
||
* @param {String|Object} uri or options
|
||
* @param {Object} options
|
||
* @api public
|
||
*/
|
||
|
||
function Socket (uri, opts) {
|
||
if (!(this instanceof Socket)) return new Socket(uri, opts);
|
||
|
||
opts = opts || {};
|
||
|
||
if (uri && 'object' === typeof uri) {
|
||
opts = uri;
|
||
uri = null;
|
||
}
|
||
|
||
if (uri) {
|
||
uri = parseuri(uri);
|
||
opts.hostname = uri.host;
|
||
opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';
|
||
opts.port = uri.port;
|
||
if (uri.query) opts.query = uri.query;
|
||
} else if (opts.host) {
|
||
opts.hostname = parseuri(opts.host).host;
|
||
}
|
||
|
||
this.secure = null != opts.secure ? opts.secure
|
||
: (typeof location !== 'undefined' && 'https:' === location.protocol);
|
||
|
||
if (opts.hostname && !opts.port) {
|
||
// if no port is specified manually, use the protocol default
|
||
opts.port = this.secure ? '443' : '80';
|
||
}
|
||
|
||
this.agent = opts.agent || false;
|
||
this.hostname = opts.hostname ||
|
||
(typeof location !== 'undefined' ? location.hostname : 'localhost');
|
||
this.port = opts.port || (typeof location !== 'undefined' && location.port
|
||
? location.port
|
||
: (this.secure ? 443 : 80));
|
||
this.query = opts.query || {};
|
||
if ('string' === typeof this.query) this.query = parseqs.decode(this.query);
|
||
this.upgrade = false !== opts.upgrade;
|
||
this.path = (opts.path || '/engine.io').replace(/\/$/, '') + '/';
|
||
this.forceJSONP = !!opts.forceJSONP;
|
||
this.jsonp = false !== opts.jsonp;
|
||
this.forceBase64 = !!opts.forceBase64;
|
||
this.enablesXDR = !!opts.enablesXDR;
|
||
this.withCredentials = false !== opts.withCredentials;
|
||
this.timestampParam = opts.timestampParam || 't';
|
||
this.timestampRequests = opts.timestampRequests;
|
||
this.transports = opts.transports || ['polling', 'websocket'];
|
||
this.transportOptions = opts.transportOptions || {};
|
||
this.readyState = '';
|
||
this.writeBuffer = [];
|
||
this.prevBufferLen = 0;
|
||
this.policyPort = opts.policyPort || 843;
|
||
this.rememberUpgrade = opts.rememberUpgrade || false;
|
||
this.binaryType = null;
|
||
this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;
|
||
this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;
|
||
|
||
if (true === this.perMessageDeflate) this.perMessageDeflate = {};
|
||
if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {
|
||
this.perMessageDeflate.threshold = 1024;
|
||
}
|
||
|
||
// SSL options for Node.js client
|
||
this.pfx = opts.pfx || null;
|
||
this.key = opts.key || null;
|
||
this.passphrase = opts.passphrase || null;
|
||
this.cert = opts.cert || null;
|
||
this.ca = opts.ca || null;
|
||
this.ciphers = opts.ciphers || null;
|
||
this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;
|
||
this.forceNode = !!opts.forceNode;
|
||
|
||
// detect ReactNative environment
|
||
this.isReactNative = (typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative');
|
||
|
||
// other options for Node.js or ReactNative client
|
||
if (typeof self === 'undefined' || this.isReactNative) {
|
||
if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {
|
||
this.extraHeaders = opts.extraHeaders;
|
||
}
|
||
|
||
if (opts.localAddress) {
|
||
this.localAddress = opts.localAddress;
|
||
}
|
||
}
|
||
|
||
// set on handshake
|
||
this.id = null;
|
||
this.upgrades = null;
|
||
this.pingInterval = null;
|
||
this.pingTimeout = null;
|
||
|
||
// set on heartbeat
|
||
this.pingIntervalTimer = null;
|
||
this.pingTimeoutTimer = null;
|
||
|
||
this.open();
|
||
}
|
||
|
||
Socket.priorWebsocketSuccess = false;
|
||
|
||
/**
|
||
* Mix in `Emitter`.
|
||
*/
|
||
|
||
Emitter(Socket.prototype);
|
||
|
||
/**
|
||
* Protocol version.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Socket.protocol = parser.protocol; // this is an int
|
||
|
||
/**
|
||
* Expose deps for legacy compatibility
|
||
* and standalone browser access.
|
||
*/
|
||
|
||
Socket.Socket = Socket;
|
||
Socket.Transport = __webpack_require__(/*! ./transport */ "./node_modules/engine.io-client/lib/transport.js");
|
||
Socket.transports = __webpack_require__(/*! ./transports/index */ "./node_modules/engine.io-client/lib/transports/index.js");
|
||
Socket.parser = __webpack_require__(/*! engine.io-parser */ "./node_modules/engine.io-parser/lib/browser.js");
|
||
|
||
/**
|
||
* Creates transport of the given type.
|
||
*
|
||
* @param {String} transport name
|
||
* @return {Transport}
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.createTransport = function (name) {
|
||
debug('creating transport "%s"', name);
|
||
var query = clone(this.query);
|
||
|
||
// append engine.io protocol identifier
|
||
query.EIO = parser.protocol;
|
||
|
||
// transport name
|
||
query.transport = name;
|
||
|
||
// per-transport options
|
||
var options = this.transportOptions[name] || {};
|
||
|
||
// session id if we already have one
|
||
if (this.id) query.sid = this.id;
|
||
|
||
var transport = new transports[name]({
|
||
query: query,
|
||
socket: this,
|
||
agent: options.agent || this.agent,
|
||
hostname: options.hostname || this.hostname,
|
||
port: options.port || this.port,
|
||
secure: options.secure || this.secure,
|
||
path: options.path || this.path,
|
||
forceJSONP: options.forceJSONP || this.forceJSONP,
|
||
jsonp: options.jsonp || this.jsonp,
|
||
forceBase64: options.forceBase64 || this.forceBase64,
|
||
enablesXDR: options.enablesXDR || this.enablesXDR,
|
||
withCredentials: options.withCredentials || this.withCredentials,
|
||
timestampRequests: options.timestampRequests || this.timestampRequests,
|
||
timestampParam: options.timestampParam || this.timestampParam,
|
||
policyPort: options.policyPort || this.policyPort,
|
||
pfx: options.pfx || this.pfx,
|
||
key: options.key || this.key,
|
||
passphrase: options.passphrase || this.passphrase,
|
||
cert: options.cert || this.cert,
|
||
ca: options.ca || this.ca,
|
||
ciphers: options.ciphers || this.ciphers,
|
||
rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,
|
||
perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,
|
||
extraHeaders: options.extraHeaders || this.extraHeaders,
|
||
forceNode: options.forceNode || this.forceNode,
|
||
localAddress: options.localAddress || this.localAddress,
|
||
requestTimeout: options.requestTimeout || this.requestTimeout,
|
||
protocols: options.protocols || void (0),
|
||
isReactNative: this.isReactNative
|
||
});
|
||
|
||
return transport;
|
||
};
|
||
|
||
function clone (obj) {
|
||
var o = {};
|
||
for (var i in obj) {
|
||
if (obj.hasOwnProperty(i)) {
|
||
o[i] = obj[i];
|
||
}
|
||
}
|
||
return o;
|
||
}
|
||
|
||
/**
|
||
* Initializes transport to use and starts probe.
|
||
*
|
||
* @api private
|
||
*/
|
||
Socket.prototype.open = function () {
|
||
var transport;
|
||
if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {
|
||
transport = 'websocket';
|
||
} else if (0 === this.transports.length) {
|
||
// Emit error on next tick so it can be listened to
|
||
var self = this;
|
||
setTimeout(function () {
|
||
self.emit('error', 'No transports available');
|
||
}, 0);
|
||
return;
|
||
} else {
|
||
transport = this.transports[0];
|
||
}
|
||
this.readyState = 'opening';
|
||
|
||
// Retry with the next transport if the transport is disabled (jsonp: false)
|
||
try {
|
||
transport = this.createTransport(transport);
|
||
} catch (e) {
|
||
this.transports.shift();
|
||
this.open();
|
||
return;
|
||
}
|
||
|
||
transport.open();
|
||
this.setTransport(transport);
|
||
};
|
||
|
||
/**
|
||
* Sets the current transport. Disables the existing one (if any).
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.setTransport = function (transport) {
|
||
debug('setting transport %s', transport.name);
|
||
var self = this;
|
||
|
||
if (this.transport) {
|
||
debug('clearing existing transport %s', this.transport.name);
|
||
this.transport.removeAllListeners();
|
||
}
|
||
|
||
// set up transport
|
||
this.transport = transport;
|
||
|
||
// set up transport listeners
|
||
transport
|
||
.on('drain', function () {
|
||
self.onDrain();
|
||
})
|
||
.on('packet', function (packet) {
|
||
self.onPacket(packet);
|
||
})
|
||
.on('error', function (e) {
|
||
self.onError(e);
|
||
})
|
||
.on('close', function () {
|
||
self.onClose('transport close');
|
||
});
|
||
};
|
||
|
||
/**
|
||
* Probes a transport.
|
||
*
|
||
* @param {String} transport name
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.probe = function (name) {
|
||
debug('probing transport "%s"', name);
|
||
var transport = this.createTransport(name, { probe: 1 });
|
||
var failed = false;
|
||
var self = this;
|
||
|
||
Socket.priorWebsocketSuccess = false;
|
||
|
||
function onTransportOpen () {
|
||
if (self.onlyBinaryUpgrades) {
|
||
var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;
|
||
failed = failed || upgradeLosesBinary;
|
||
}
|
||
if (failed) return;
|
||
|
||
debug('probe transport "%s" opened', name);
|
||
transport.send([{ type: 'ping', data: 'probe' }]);
|
||
transport.once('packet', function (msg) {
|
||
if (failed) return;
|
||
if ('pong' === msg.type && 'probe' === msg.data) {
|
||
debug('probe transport "%s" pong', name);
|
||
self.upgrading = true;
|
||
self.emit('upgrading', transport);
|
||
if (!transport) return;
|
||
Socket.priorWebsocketSuccess = 'websocket' === transport.name;
|
||
|
||
debug('pausing current transport "%s"', self.transport.name);
|
||
self.transport.pause(function () {
|
||
if (failed) return;
|
||
if ('closed' === self.readyState) return;
|
||
debug('changing transport and sending upgrade packet');
|
||
|
||
cleanup();
|
||
|
||
self.setTransport(transport);
|
||
transport.send([{ type: 'upgrade' }]);
|
||
self.emit('upgrade', transport);
|
||
transport = null;
|
||
self.upgrading = false;
|
||
self.flush();
|
||
});
|
||
} else {
|
||
debug('probe transport "%s" failed', name);
|
||
var err = new Error('probe error');
|
||
err.transport = transport.name;
|
||
self.emit('upgradeError', err);
|
||
}
|
||
});
|
||
}
|
||
|
||
function freezeTransport () {
|
||
if (failed) return;
|
||
|
||
// Any callback called by transport should be ignored since now
|
||
failed = true;
|
||
|
||
cleanup();
|
||
|
||
transport.close();
|
||
transport = null;
|
||
}
|
||
|
||
// Handle any error that happens while probing
|
||
function onerror (err) {
|
||
var error = new Error('probe error: ' + err);
|
||
error.transport = transport.name;
|
||
|
||
freezeTransport();
|
||
|
||
debug('probe transport "%s" failed because of error: %s', name, err);
|
||
|
||
self.emit('upgradeError', error);
|
||
}
|
||
|
||
function onTransportClose () {
|
||
onerror('transport closed');
|
||
}
|
||
|
||
// When the socket is closed while we're probing
|
||
function onclose () {
|
||
onerror('socket closed');
|
||
}
|
||
|
||
// When the socket is upgraded while we're probing
|
||
function onupgrade (to) {
|
||
if (transport && to.name !== transport.name) {
|
||
debug('"%s" works - aborting "%s"', to.name, transport.name);
|
||
freezeTransport();
|
||
}
|
||
}
|
||
|
||
// Remove all listeners on the transport and on self
|
||
function cleanup () {
|
||
transport.removeListener('open', onTransportOpen);
|
||
transport.removeListener('error', onerror);
|
||
transport.removeListener('close', onTransportClose);
|
||
self.removeListener('close', onclose);
|
||
self.removeListener('upgrading', onupgrade);
|
||
}
|
||
|
||
transport.once('open', onTransportOpen);
|
||
transport.once('error', onerror);
|
||
transport.once('close', onTransportClose);
|
||
|
||
this.once('close', onclose);
|
||
this.once('upgrading', onupgrade);
|
||
|
||
transport.open();
|
||
};
|
||
|
||
/**
|
||
* Called when connection is deemed open.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Socket.prototype.onOpen = function () {
|
||
debug('socket open');
|
||
this.readyState = 'open';
|
||
Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;
|
||
this.emit('open');
|
||
this.flush();
|
||
|
||
// we check for `readyState` in case an `open`
|
||
// listener already closed the socket
|
||
if ('open' === this.readyState && this.upgrade && this.transport.pause) {
|
||
debug('starting upgrade probes');
|
||
for (var i = 0, l = this.upgrades.length; i < l; i++) {
|
||
this.probe(this.upgrades[i]);
|
||
}
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Handles a packet.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onPacket = function (packet) {
|
||
if ('opening' === this.readyState || 'open' === this.readyState ||
|
||
'closing' === this.readyState) {
|
||
debug('socket receive: type "%s", data "%s"', packet.type, packet.data);
|
||
|
||
this.emit('packet', packet);
|
||
|
||
// Socket is live - any packet counts
|
||
this.emit('heartbeat');
|
||
|
||
switch (packet.type) {
|
||
case 'open':
|
||
this.onHandshake(JSON.parse(packet.data));
|
||
break;
|
||
|
||
case 'pong':
|
||
this.setPing();
|
||
this.emit('pong');
|
||
break;
|
||
|
||
case 'error':
|
||
var err = new Error('server error');
|
||
err.code = packet.data;
|
||
this.onError(err);
|
||
break;
|
||
|
||
case 'message':
|
||
this.emit('data', packet.data);
|
||
this.emit('message', packet.data);
|
||
break;
|
||
}
|
||
} else {
|
||
debug('packet received with socket readyState "%s"', this.readyState);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Called upon handshake completion.
|
||
*
|
||
* @param {Object} handshake obj
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onHandshake = function (data) {
|
||
this.emit('handshake', data);
|
||
this.id = data.sid;
|
||
this.transport.query.sid = data.sid;
|
||
this.upgrades = this.filterUpgrades(data.upgrades);
|
||
this.pingInterval = data.pingInterval;
|
||
this.pingTimeout = data.pingTimeout;
|
||
this.onOpen();
|
||
// In case open handler closes socket
|
||
if ('closed' === this.readyState) return;
|
||
this.setPing();
|
||
|
||
// Prolong liveness of socket on heartbeat
|
||
this.removeListener('heartbeat', this.onHeartbeat);
|
||
this.on('heartbeat', this.onHeartbeat);
|
||
};
|
||
|
||
/**
|
||
* Resets ping timeout.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onHeartbeat = function (timeout) {
|
||
clearTimeout(this.pingTimeoutTimer);
|
||
var self = this;
|
||
self.pingTimeoutTimer = setTimeout(function () {
|
||
if ('closed' === self.readyState) return;
|
||
self.onClose('ping timeout');
|
||
}, timeout || (self.pingInterval + self.pingTimeout));
|
||
};
|
||
|
||
/**
|
||
* Pings server every `this.pingInterval` and expects response
|
||
* within `this.pingTimeout` or closes connection.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.setPing = function () {
|
||
var self = this;
|
||
clearTimeout(self.pingIntervalTimer);
|
||
self.pingIntervalTimer = setTimeout(function () {
|
||
debug('writing ping packet - expecting pong within %sms', self.pingTimeout);
|
||
self.ping();
|
||
self.onHeartbeat(self.pingTimeout);
|
||
}, self.pingInterval);
|
||
};
|
||
|
||
/**
|
||
* Sends a ping packet.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.ping = function () {
|
||
var self = this;
|
||
this.sendPacket('ping', function () {
|
||
self.emit('ping');
|
||
});
|
||
};
|
||
|
||
/**
|
||
* Called on `drain` event
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onDrain = function () {
|
||
this.writeBuffer.splice(0, this.prevBufferLen);
|
||
|
||
// setting prevBufferLen = 0 is very important
|
||
// for example, when upgrading, upgrade packet is sent over,
|
||
// and a nonzero prevBufferLen could cause problems on `drain`
|
||
this.prevBufferLen = 0;
|
||
|
||
if (0 === this.writeBuffer.length) {
|
||
this.emit('drain');
|
||
} else {
|
||
this.flush();
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Flush write buffers.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.flush = function () {
|
||
if ('closed' !== this.readyState && this.transport.writable &&
|
||
!this.upgrading && this.writeBuffer.length) {
|
||
debug('flushing %d packets in socket', this.writeBuffer.length);
|
||
this.transport.send(this.writeBuffer);
|
||
// keep track of current length of writeBuffer
|
||
// splice writeBuffer and callbackBuffer on `drain`
|
||
this.prevBufferLen = this.writeBuffer.length;
|
||
this.emit('flush');
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Sends a message.
|
||
*
|
||
* @param {String} message.
|
||
* @param {Function} callback function.
|
||
* @param {Object} options.
|
||
* @return {Socket} for chaining.
|
||
* @api public
|
||
*/
|
||
|
||
Socket.prototype.write =
|
||
Socket.prototype.send = function (msg, options, fn) {
|
||
this.sendPacket('message', msg, options, fn);
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sends a packet.
|
||
*
|
||
* @param {String} packet type.
|
||
* @param {String} data.
|
||
* @param {Object} options.
|
||
* @param {Function} callback function.
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.sendPacket = function (type, data, options, fn) {
|
||
if ('function' === typeof data) {
|
||
fn = data;
|
||
data = undefined;
|
||
}
|
||
|
||
if ('function' === typeof options) {
|
||
fn = options;
|
||
options = null;
|
||
}
|
||
|
||
if ('closing' === this.readyState || 'closed' === this.readyState) {
|
||
return;
|
||
}
|
||
|
||
options = options || {};
|
||
options.compress = false !== options.compress;
|
||
|
||
var packet = {
|
||
type: type,
|
||
data: data,
|
||
options: options
|
||
};
|
||
this.emit('packetCreate', packet);
|
||
this.writeBuffer.push(packet);
|
||
if (fn) this.once('flush', fn);
|
||
this.flush();
|
||
};
|
||
|
||
/**
|
||
* Closes the connection.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.close = function () {
|
||
if ('opening' === this.readyState || 'open' === this.readyState) {
|
||
this.readyState = 'closing';
|
||
|
||
var self = this;
|
||
|
||
if (this.writeBuffer.length) {
|
||
this.once('drain', function () {
|
||
if (this.upgrading) {
|
||
waitForUpgrade();
|
||
} else {
|
||
close();
|
||
}
|
||
});
|
||
} else if (this.upgrading) {
|
||
waitForUpgrade();
|
||
} else {
|
||
close();
|
||
}
|
||
}
|
||
|
||
function close () {
|
||
self.onClose('forced close');
|
||
debug('socket closing - telling transport to close');
|
||
self.transport.close();
|
||
}
|
||
|
||
function cleanupAndClose () {
|
||
self.removeListener('upgrade', cleanupAndClose);
|
||
self.removeListener('upgradeError', cleanupAndClose);
|
||
close();
|
||
}
|
||
|
||
function waitForUpgrade () {
|
||
// wait for upgrade to finish since we can't send packets while pausing a transport
|
||
self.once('upgrade', cleanupAndClose);
|
||
self.once('upgradeError', cleanupAndClose);
|
||
}
|
||
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Called upon transport error
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onError = function (err) {
|
||
debug('socket error %j', err);
|
||
Socket.priorWebsocketSuccess = false;
|
||
this.emit('error', err);
|
||
this.onClose('transport error', err);
|
||
};
|
||
|
||
/**
|
||
* Called upon transport close.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onClose = function (reason, desc) {
|
||
if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {
|
||
debug('socket close with reason: "%s"', reason);
|
||
var self = this;
|
||
|
||
// clear timers
|
||
clearTimeout(this.pingIntervalTimer);
|
||
clearTimeout(this.pingTimeoutTimer);
|
||
|
||
// stop event from firing again for transport
|
||
this.transport.removeAllListeners('close');
|
||
|
||
// ensure transport won't stay open
|
||
this.transport.close();
|
||
|
||
// ignore further transport communication
|
||
this.transport.removeAllListeners();
|
||
|
||
// set ready state
|
||
this.readyState = 'closed';
|
||
|
||
// clear session id
|
||
this.id = null;
|
||
|
||
// emit close event
|
||
this.emit('close', reason, desc);
|
||
|
||
// clean buffers after, so users can still
|
||
// grab the buffers on `close` event
|
||
self.writeBuffer = [];
|
||
self.prevBufferLen = 0;
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Filters upgrades, returning only those matching client transports.
|
||
*
|
||
* @param {Array} server upgrades
|
||
* @api private
|
||
*
|
||
*/
|
||
|
||
Socket.prototype.filterUpgrades = function (upgrades) {
|
||
var filteredUpgrades = [];
|
||
for (var i = 0, j = upgrades.length; i < j; i++) {
|
||
if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);
|
||
}
|
||
return filteredUpgrades;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-client/lib/transport.js":
|
||
/*!********************************************************!*\
|
||
!*** ./node_modules/engine.io-client/lib/transport.js ***!
|
||
\********************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var parser = __webpack_require__(/*! engine.io-parser */ "./node_modules/engine.io-parser/lib/browser.js");
|
||
var Emitter = __webpack_require__(/*! component-emitter */ "./node_modules/component-emitter/index.js");
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = Transport;
|
||
|
||
/**
|
||
* Transport abstract constructor.
|
||
*
|
||
* @param {Object} options.
|
||
* @api private
|
||
*/
|
||
|
||
function Transport (opts) {
|
||
this.path = opts.path;
|
||
this.hostname = opts.hostname;
|
||
this.port = opts.port;
|
||
this.secure = opts.secure;
|
||
this.query = opts.query;
|
||
this.timestampParam = opts.timestampParam;
|
||
this.timestampRequests = opts.timestampRequests;
|
||
this.readyState = '';
|
||
this.agent = opts.agent || false;
|
||
this.socket = opts.socket;
|
||
this.enablesXDR = opts.enablesXDR;
|
||
this.withCredentials = opts.withCredentials;
|
||
|
||
// SSL options for Node.js client
|
||
this.pfx = opts.pfx;
|
||
this.key = opts.key;
|
||
this.passphrase = opts.passphrase;
|
||
this.cert = opts.cert;
|
||
this.ca = opts.ca;
|
||
this.ciphers = opts.ciphers;
|
||
this.rejectUnauthorized = opts.rejectUnauthorized;
|
||
this.forceNode = opts.forceNode;
|
||
|
||
// results of ReactNative environment detection
|
||
this.isReactNative = opts.isReactNative;
|
||
|
||
// other options for Node.js client
|
||
this.extraHeaders = opts.extraHeaders;
|
||
this.localAddress = opts.localAddress;
|
||
}
|
||
|
||
/**
|
||
* Mix in `Emitter`.
|
||
*/
|
||
|
||
Emitter(Transport.prototype);
|
||
|
||
/**
|
||
* Emits an error.
|
||
*
|
||
* @param {String} str
|
||
* @return {Transport} for chaining
|
||
* @api public
|
||
*/
|
||
|
||
Transport.prototype.onError = function (msg, desc) {
|
||
var err = new Error(msg);
|
||
err.type = 'TransportError';
|
||
err.description = desc;
|
||
this.emit('error', err);
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Opens the transport.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Transport.prototype.open = function () {
|
||
if ('closed' === this.readyState || '' === this.readyState) {
|
||
this.readyState = 'opening';
|
||
this.doOpen();
|
||
}
|
||
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Closes the transport.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Transport.prototype.close = function () {
|
||
if ('opening' === this.readyState || 'open' === this.readyState) {
|
||
this.doClose();
|
||
this.onClose();
|
||
}
|
||
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sends multiple packets.
|
||
*
|
||
* @param {Array} packets
|
||
* @api private
|
||
*/
|
||
|
||
Transport.prototype.send = function (packets) {
|
||
if ('open' === this.readyState) {
|
||
this.write(packets);
|
||
} else {
|
||
throw new Error('Transport not open');
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Called upon open
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Transport.prototype.onOpen = function () {
|
||
this.readyState = 'open';
|
||
this.writable = true;
|
||
this.emit('open');
|
||
};
|
||
|
||
/**
|
||
* Called with data.
|
||
*
|
||
* @param {String} data
|
||
* @api private
|
||
*/
|
||
|
||
Transport.prototype.onData = function (data) {
|
||
var packet = parser.decodePacket(data, this.socket.binaryType);
|
||
this.onPacket(packet);
|
||
};
|
||
|
||
/**
|
||
* Called with a decoded packet.
|
||
*/
|
||
|
||
Transport.prototype.onPacket = function (packet) {
|
||
this.emit('packet', packet);
|
||
};
|
||
|
||
/**
|
||
* Called upon close.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Transport.prototype.onClose = function () {
|
||
this.readyState = 'closed';
|
||
this.emit('close');
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-client/lib/transports/index.js":
|
||
/*!***************************************************************!*\
|
||
!*** ./node_modules/engine.io-client/lib/transports/index.js ***!
|
||
\***************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/**
|
||
* Module dependencies
|
||
*/
|
||
|
||
var XMLHttpRequest = __webpack_require__(/*! xmlhttprequest-ssl */ "./node_modules/engine.io-client/lib/xmlhttprequest.js");
|
||
var XHR = __webpack_require__(/*! ./polling-xhr */ "./node_modules/engine.io-client/lib/transports/polling-xhr.js");
|
||
var JSONP = __webpack_require__(/*! ./polling-jsonp */ "./node_modules/engine.io-client/lib/transports/polling-jsonp.js");
|
||
var websocket = __webpack_require__(/*! ./websocket */ "./node_modules/engine.io-client/lib/transports/websocket.js");
|
||
|
||
/**
|
||
* Export transports.
|
||
*/
|
||
|
||
exports.polling = polling;
|
||
exports.websocket = websocket;
|
||
|
||
/**
|
||
* Polling transport polymorphic constructor.
|
||
* Decides on xhr vs jsonp based on feature detection.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
function polling (opts) {
|
||
var xhr;
|
||
var xd = false;
|
||
var xs = false;
|
||
var jsonp = false !== opts.jsonp;
|
||
|
||
if (typeof location !== 'undefined') {
|
||
var isSSL = 'https:' === location.protocol;
|
||
var port = location.port;
|
||
|
||
// some user agents have empty `location.port`
|
||
if (!port) {
|
||
port = isSSL ? 443 : 80;
|
||
}
|
||
|
||
xd = opts.hostname !== location.hostname || port !== opts.port;
|
||
xs = opts.secure !== isSSL;
|
||
}
|
||
|
||
opts.xdomain = xd;
|
||
opts.xscheme = xs;
|
||
xhr = new XMLHttpRequest(opts);
|
||
|
||
if ('open' in xhr && !opts.forceJSONP) {
|
||
return new XHR(opts);
|
||
} else {
|
||
if (!jsonp) throw new Error('JSONP disabled');
|
||
return new JSONP(opts);
|
||
}
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-client/lib/transports/polling-jsonp.js":
|
||
/*!***********************************************************************!*\
|
||
!*** ./node_modules/engine.io-client/lib/transports/polling-jsonp.js ***!
|
||
\***********************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(global) {/**
|
||
* Module requirements.
|
||
*/
|
||
|
||
var Polling = __webpack_require__(/*! ./polling */ "./node_modules/engine.io-client/lib/transports/polling.js");
|
||
var inherit = __webpack_require__(/*! component-inherit */ "./node_modules/component-inherit/index.js");
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = JSONPPolling;
|
||
|
||
/**
|
||
* Cached regular expressions.
|
||
*/
|
||
|
||
var rNewline = /\n/g;
|
||
var rEscapedNewline = /\\n/g;
|
||
|
||
/**
|
||
* Global JSONP callbacks.
|
||
*/
|
||
|
||
var callbacks;
|
||
|
||
/**
|
||
* Noop.
|
||
*/
|
||
|
||
function empty () { }
|
||
|
||
/**
|
||
* Until https://github.com/tc39/proposal-global is shipped.
|
||
*/
|
||
function glob () {
|
||
return typeof self !== 'undefined' ? self
|
||
: typeof window !== 'undefined' ? window
|
||
: typeof global !== 'undefined' ? global : {};
|
||
}
|
||
|
||
/**
|
||
* JSONP Polling constructor.
|
||
*
|
||
* @param {Object} opts.
|
||
* @api public
|
||
*/
|
||
|
||
function JSONPPolling (opts) {
|
||
Polling.call(this, opts);
|
||
|
||
this.query = this.query || {};
|
||
|
||
// define global callbacks array if not present
|
||
// we do this here (lazily) to avoid unneeded global pollution
|
||
if (!callbacks) {
|
||
// we need to consider multiple engines in the same page
|
||
var global = glob();
|
||
callbacks = global.___eio = (global.___eio || []);
|
||
}
|
||
|
||
// callback identifier
|
||
this.index = callbacks.length;
|
||
|
||
// add callback to jsonp global
|
||
var self = this;
|
||
callbacks.push(function (msg) {
|
||
self.onData(msg);
|
||
});
|
||
|
||
// append to query string
|
||
this.query.j = this.index;
|
||
|
||
// prevent spurious errors from being emitted when the window is unloaded
|
||
if (typeof addEventListener === 'function') {
|
||
addEventListener('beforeunload', function () {
|
||
if (self.script) self.script.onerror = empty;
|
||
}, false);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Inherits from Polling.
|
||
*/
|
||
|
||
inherit(JSONPPolling, Polling);
|
||
|
||
/*
|
||
* JSONP only supports binary as base64 encoded strings
|
||
*/
|
||
|
||
JSONPPolling.prototype.supportsBinary = false;
|
||
|
||
/**
|
||
* Closes the socket.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
JSONPPolling.prototype.doClose = function () {
|
||
if (this.script) {
|
||
this.script.parentNode.removeChild(this.script);
|
||
this.script = null;
|
||
}
|
||
|
||
if (this.form) {
|
||
this.form.parentNode.removeChild(this.form);
|
||
this.form = null;
|
||
this.iframe = null;
|
||
}
|
||
|
||
Polling.prototype.doClose.call(this);
|
||
};
|
||
|
||
/**
|
||
* Starts a poll cycle.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
JSONPPolling.prototype.doPoll = function () {
|
||
var self = this;
|
||
var script = document.createElement('script');
|
||
|
||
if (this.script) {
|
||
this.script.parentNode.removeChild(this.script);
|
||
this.script = null;
|
||
}
|
||
|
||
script.async = true;
|
||
script.src = this.uri();
|
||
script.onerror = function (e) {
|
||
self.onError('jsonp poll error', e);
|
||
};
|
||
|
||
var insertAt = document.getElementsByTagName('script')[0];
|
||
if (insertAt) {
|
||
insertAt.parentNode.insertBefore(script, insertAt);
|
||
} else {
|
||
(document.head || document.body).appendChild(script);
|
||
}
|
||
this.script = script;
|
||
|
||
var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);
|
||
|
||
if (isUAgecko) {
|
||
setTimeout(function () {
|
||
var iframe = document.createElement('iframe');
|
||
document.body.appendChild(iframe);
|
||
document.body.removeChild(iframe);
|
||
}, 100);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Writes with a hidden iframe.
|
||
*
|
||
* @param {String} data to send
|
||
* @param {Function} called upon flush.
|
||
* @api private
|
||
*/
|
||
|
||
JSONPPolling.prototype.doWrite = function (data, fn) {
|
||
var self = this;
|
||
|
||
if (!this.form) {
|
||
var form = document.createElement('form');
|
||
var area = document.createElement('textarea');
|
||
var id = this.iframeId = 'eio_iframe_' + this.index;
|
||
var iframe;
|
||
|
||
form.className = 'socketio';
|
||
form.style.position = 'absolute';
|
||
form.style.top = '-1000px';
|
||
form.style.left = '-1000px';
|
||
form.target = id;
|
||
form.method = 'POST';
|
||
form.setAttribute('accept-charset', 'utf-8');
|
||
area.name = 'd';
|
||
form.appendChild(area);
|
||
document.body.appendChild(form);
|
||
|
||
this.form = form;
|
||
this.area = area;
|
||
}
|
||
|
||
this.form.action = this.uri();
|
||
|
||
function complete () {
|
||
initIframe();
|
||
fn();
|
||
}
|
||
|
||
function initIframe () {
|
||
if (self.iframe) {
|
||
try {
|
||
self.form.removeChild(self.iframe);
|
||
} catch (e) {
|
||
self.onError('jsonp polling iframe removal error', e);
|
||
}
|
||
}
|
||
|
||
try {
|
||
// ie6 dynamic iframes with target="" support (thanks Chris Lambacher)
|
||
var html = '<iframe src="javascript:0" name="' + self.iframeId + '">';
|
||
iframe = document.createElement(html);
|
||
} catch (e) {
|
||
iframe = document.createElement('iframe');
|
||
iframe.name = self.iframeId;
|
||
iframe.src = 'javascript:0';
|
||
}
|
||
|
||
iframe.id = self.iframeId;
|
||
|
||
self.form.appendChild(iframe);
|
||
self.iframe = iframe;
|
||
}
|
||
|
||
initIframe();
|
||
|
||
// escape \n to prevent it from being converted into \r\n by some UAs
|
||
// double escaping is required for escaped new lines because unescaping of new lines can be done safely on server-side
|
||
data = data.replace(rEscapedNewline, '\\\n');
|
||
this.area.value = data.replace(rNewline, '\\n');
|
||
|
||
try {
|
||
this.form.submit();
|
||
} catch (e) {}
|
||
|
||
if (this.iframe.attachEvent) {
|
||
this.iframe.onreadystatechange = function () {
|
||
if (self.iframe.readyState === 'complete') {
|
||
complete();
|
||
}
|
||
};
|
||
} else {
|
||
this.iframe.onload = complete;
|
||
}
|
||
};
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-client/lib/transports/polling-xhr.js":
|
||
/*!*********************************************************************!*\
|
||
!*** ./node_modules/engine.io-client/lib/transports/polling-xhr.js ***!
|
||
\*********************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* global attachEvent */
|
||
|
||
/**
|
||
* Module requirements.
|
||
*/
|
||
|
||
var XMLHttpRequest = __webpack_require__(/*! xmlhttprequest-ssl */ "./node_modules/engine.io-client/lib/xmlhttprequest.js");
|
||
var Polling = __webpack_require__(/*! ./polling */ "./node_modules/engine.io-client/lib/transports/polling.js");
|
||
var Emitter = __webpack_require__(/*! component-emitter */ "./node_modules/component-emitter/index.js");
|
||
var inherit = __webpack_require__(/*! component-inherit */ "./node_modules/component-inherit/index.js");
|
||
var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.js")('engine.io-client:polling-xhr');
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = XHR;
|
||
module.exports.Request = Request;
|
||
|
||
/**
|
||
* Empty function
|
||
*/
|
||
|
||
function empty () {}
|
||
|
||
/**
|
||
* XHR Polling constructor.
|
||
*
|
||
* @param {Object} opts
|
||
* @api public
|
||
*/
|
||
|
||
function XHR (opts) {
|
||
Polling.call(this, opts);
|
||
this.requestTimeout = opts.requestTimeout;
|
||
this.extraHeaders = opts.extraHeaders;
|
||
|
||
if (typeof location !== 'undefined') {
|
||
var isSSL = 'https:' === location.protocol;
|
||
var port = location.port;
|
||
|
||
// some user agents have empty `location.port`
|
||
if (!port) {
|
||
port = isSSL ? 443 : 80;
|
||
}
|
||
|
||
this.xd = (typeof location !== 'undefined' && opts.hostname !== location.hostname) ||
|
||
port !== opts.port;
|
||
this.xs = opts.secure !== isSSL;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Inherits from Polling.
|
||
*/
|
||
|
||
inherit(XHR, Polling);
|
||
|
||
/**
|
||
* XHR supports binary
|
||
*/
|
||
|
||
XHR.prototype.supportsBinary = true;
|
||
|
||
/**
|
||
* Creates a request.
|
||
*
|
||
* @param {String} method
|
||
* @api private
|
||
*/
|
||
|
||
XHR.prototype.request = function (opts) {
|
||
opts = opts || {};
|
||
opts.uri = this.uri();
|
||
opts.xd = this.xd;
|
||
opts.xs = this.xs;
|
||
opts.agent = this.agent || false;
|
||
opts.supportsBinary = this.supportsBinary;
|
||
opts.enablesXDR = this.enablesXDR;
|
||
opts.withCredentials = this.withCredentials;
|
||
|
||
// SSL options for Node.js client
|
||
opts.pfx = this.pfx;
|
||
opts.key = this.key;
|
||
opts.passphrase = this.passphrase;
|
||
opts.cert = this.cert;
|
||
opts.ca = this.ca;
|
||
opts.ciphers = this.ciphers;
|
||
opts.rejectUnauthorized = this.rejectUnauthorized;
|
||
opts.requestTimeout = this.requestTimeout;
|
||
|
||
// other options for Node.js client
|
||
opts.extraHeaders = this.extraHeaders;
|
||
|
||
return new Request(opts);
|
||
};
|
||
|
||
/**
|
||
* Sends data.
|
||
*
|
||
* @param {String} data to send.
|
||
* @param {Function} called upon flush.
|
||
* @api private
|
||
*/
|
||
|
||
XHR.prototype.doWrite = function (data, fn) {
|
||
var isBinary = typeof data !== 'string' && data !== undefined;
|
||
var req = this.request({ method: 'POST', data: data, isBinary: isBinary });
|
||
var self = this;
|
||
req.on('success', fn);
|
||
req.on('error', function (err) {
|
||
self.onError('xhr post error', err);
|
||
});
|
||
this.sendXhr = req;
|
||
};
|
||
|
||
/**
|
||
* Starts a poll cycle.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
XHR.prototype.doPoll = function () {
|
||
debug('xhr poll');
|
||
var req = this.request();
|
||
var self = this;
|
||
req.on('data', function (data) {
|
||
self.onData(data);
|
||
});
|
||
req.on('error', function (err) {
|
||
self.onError('xhr poll error', err);
|
||
});
|
||
this.pollXhr = req;
|
||
};
|
||
|
||
/**
|
||
* Request constructor
|
||
*
|
||
* @param {Object} options
|
||
* @api public
|
||
*/
|
||
|
||
function Request (opts) {
|
||
this.method = opts.method || 'GET';
|
||
this.uri = opts.uri;
|
||
this.xd = !!opts.xd;
|
||
this.xs = !!opts.xs;
|
||
this.async = false !== opts.async;
|
||
this.data = undefined !== opts.data ? opts.data : null;
|
||
this.agent = opts.agent;
|
||
this.isBinary = opts.isBinary;
|
||
this.supportsBinary = opts.supportsBinary;
|
||
this.enablesXDR = opts.enablesXDR;
|
||
this.withCredentials = opts.withCredentials;
|
||
this.requestTimeout = opts.requestTimeout;
|
||
|
||
// SSL options for Node.js client
|
||
this.pfx = opts.pfx;
|
||
this.key = opts.key;
|
||
this.passphrase = opts.passphrase;
|
||
this.cert = opts.cert;
|
||
this.ca = opts.ca;
|
||
this.ciphers = opts.ciphers;
|
||
this.rejectUnauthorized = opts.rejectUnauthorized;
|
||
|
||
// other options for Node.js client
|
||
this.extraHeaders = opts.extraHeaders;
|
||
|
||
this.create();
|
||
}
|
||
|
||
/**
|
||
* Mix in `Emitter`.
|
||
*/
|
||
|
||
Emitter(Request.prototype);
|
||
|
||
/**
|
||
* Creates the XHR object and sends the request.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Request.prototype.create = function () {
|
||
var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };
|
||
|
||
// SSL options for Node.js client
|
||
opts.pfx = this.pfx;
|
||
opts.key = this.key;
|
||
opts.passphrase = this.passphrase;
|
||
opts.cert = this.cert;
|
||
opts.ca = this.ca;
|
||
opts.ciphers = this.ciphers;
|
||
opts.rejectUnauthorized = this.rejectUnauthorized;
|
||
|
||
var xhr = this.xhr = new XMLHttpRequest(opts);
|
||
var self = this;
|
||
|
||
try {
|
||
debug('xhr open %s: %s', this.method, this.uri);
|
||
xhr.open(this.method, this.uri, this.async);
|
||
try {
|
||
if (this.extraHeaders) {
|
||
xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);
|
||
for (var i in this.extraHeaders) {
|
||
if (this.extraHeaders.hasOwnProperty(i)) {
|
||
xhr.setRequestHeader(i, this.extraHeaders[i]);
|
||
}
|
||
}
|
||
}
|
||
} catch (e) {}
|
||
|
||
if ('POST' === this.method) {
|
||
try {
|
||
if (this.isBinary) {
|
||
xhr.setRequestHeader('Content-type', 'application/octet-stream');
|
||
} else {
|
||
xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');
|
||
}
|
||
} catch (e) {}
|
||
}
|
||
|
||
try {
|
||
xhr.setRequestHeader('Accept', '*/*');
|
||
} catch (e) {}
|
||
|
||
// ie6 check
|
||
if ('withCredentials' in xhr) {
|
||
xhr.withCredentials = this.withCredentials;
|
||
}
|
||
|
||
if (this.requestTimeout) {
|
||
xhr.timeout = this.requestTimeout;
|
||
}
|
||
|
||
if (this.hasXDR()) {
|
||
xhr.onload = function () {
|
||
self.onLoad();
|
||
};
|
||
xhr.onerror = function () {
|
||
self.onError(xhr.responseText);
|
||
};
|
||
} else {
|
||
xhr.onreadystatechange = function () {
|
||
if (xhr.readyState === 2) {
|
||
try {
|
||
var contentType = xhr.getResponseHeader('Content-Type');
|
||
if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {
|
||
xhr.responseType = 'arraybuffer';
|
||
}
|
||
} catch (e) {}
|
||
}
|
||
if (4 !== xhr.readyState) return;
|
||
if (200 === xhr.status || 1223 === xhr.status) {
|
||
self.onLoad();
|
||
} else {
|
||
// make sure the `error` event handler that's user-set
|
||
// does not throw in the same tick and gets caught here
|
||
setTimeout(function () {
|
||
self.onError(typeof xhr.status === 'number' ? xhr.status : 0);
|
||
}, 0);
|
||
}
|
||
};
|
||
}
|
||
|
||
debug('xhr data %s', this.data);
|
||
xhr.send(this.data);
|
||
} catch (e) {
|
||
// Need to defer since .create() is called directly fhrom the constructor
|
||
// and thus the 'error' event can only be only bound *after* this exception
|
||
// occurs. Therefore, also, we cannot throw here at all.
|
||
setTimeout(function () {
|
||
self.onError(e);
|
||
}, 0);
|
||
return;
|
||
}
|
||
|
||
if (typeof document !== 'undefined') {
|
||
this.index = Request.requestsCount++;
|
||
Request.requests[this.index] = this;
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Called upon successful response.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Request.prototype.onSuccess = function () {
|
||
this.emit('success');
|
||
this.cleanup();
|
||
};
|
||
|
||
/**
|
||
* Called if we have data.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Request.prototype.onData = function (data) {
|
||
this.emit('data', data);
|
||
this.onSuccess();
|
||
};
|
||
|
||
/**
|
||
* Called upon error.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Request.prototype.onError = function (err) {
|
||
this.emit('error', err);
|
||
this.cleanup(true);
|
||
};
|
||
|
||
/**
|
||
* Cleans up house.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Request.prototype.cleanup = function (fromError) {
|
||
if ('undefined' === typeof this.xhr || null === this.xhr) {
|
||
return;
|
||
}
|
||
// xmlhttprequest
|
||
if (this.hasXDR()) {
|
||
this.xhr.onload = this.xhr.onerror = empty;
|
||
} else {
|
||
this.xhr.onreadystatechange = empty;
|
||
}
|
||
|
||
if (fromError) {
|
||
try {
|
||
this.xhr.abort();
|
||
} catch (e) {}
|
||
}
|
||
|
||
if (typeof document !== 'undefined') {
|
||
delete Request.requests[this.index];
|
||
}
|
||
|
||
this.xhr = null;
|
||
};
|
||
|
||
/**
|
||
* Called upon load.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Request.prototype.onLoad = function () {
|
||
var data;
|
||
try {
|
||
var contentType;
|
||
try {
|
||
contentType = this.xhr.getResponseHeader('Content-Type');
|
||
} catch (e) {}
|
||
if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {
|
||
data = this.xhr.response || this.xhr.responseText;
|
||
} else {
|
||
data = this.xhr.responseText;
|
||
}
|
||
} catch (e) {
|
||
this.onError(e);
|
||
}
|
||
if (null != data) {
|
||
this.onData(data);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Check if it has XDomainRequest.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Request.prototype.hasXDR = function () {
|
||
return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR;
|
||
};
|
||
|
||
/**
|
||
* Aborts the request.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Request.prototype.abort = function () {
|
||
this.cleanup();
|
||
};
|
||
|
||
/**
|
||
* Aborts pending requests when unloading the window. This is needed to prevent
|
||
* memory leaks (e.g. when using IE) and to ensure that no spurious error is
|
||
* emitted.
|
||
*/
|
||
|
||
Request.requestsCount = 0;
|
||
Request.requests = {};
|
||
|
||
if (typeof document !== 'undefined') {
|
||
if (typeof attachEvent === 'function') {
|
||
attachEvent('onunload', unloadHandler);
|
||
} else if (typeof addEventListener === 'function') {
|
||
var terminationEvent = 'onpagehide' in self ? 'pagehide' : 'unload';
|
||
addEventListener(terminationEvent, unloadHandler, false);
|
||
}
|
||
}
|
||
|
||
function unloadHandler () {
|
||
for (var i in Request.requests) {
|
||
if (Request.requests.hasOwnProperty(i)) {
|
||
Request.requests[i].abort();
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-client/lib/transports/polling.js":
|
||
/*!*****************************************************************!*\
|
||
!*** ./node_modules/engine.io-client/lib/transports/polling.js ***!
|
||
\*****************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var Transport = __webpack_require__(/*! ../transport */ "./node_modules/engine.io-client/lib/transport.js");
|
||
var parseqs = __webpack_require__(/*! parseqs */ "./node_modules/parseqs/index.js");
|
||
var parser = __webpack_require__(/*! engine.io-parser */ "./node_modules/engine.io-parser/lib/browser.js");
|
||
var inherit = __webpack_require__(/*! component-inherit */ "./node_modules/component-inherit/index.js");
|
||
var yeast = __webpack_require__(/*! yeast */ "./node_modules/yeast/index.js");
|
||
var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.js")('engine.io-client:polling');
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = Polling;
|
||
|
||
/**
|
||
* Is XHR2 supported?
|
||
*/
|
||
|
||
var hasXHR2 = (function () {
|
||
var XMLHttpRequest = __webpack_require__(/*! xmlhttprequest-ssl */ "./node_modules/engine.io-client/lib/xmlhttprequest.js");
|
||
var xhr = new XMLHttpRequest({ xdomain: false });
|
||
return null != xhr.responseType;
|
||
})();
|
||
|
||
/**
|
||
* Polling interface.
|
||
*
|
||
* @param {Object} opts
|
||
* @api private
|
||
*/
|
||
|
||
function Polling (opts) {
|
||
var forceBase64 = (opts && opts.forceBase64);
|
||
if (!hasXHR2 || forceBase64) {
|
||
this.supportsBinary = false;
|
||
}
|
||
Transport.call(this, opts);
|
||
}
|
||
|
||
/**
|
||
* Inherits from Transport.
|
||
*/
|
||
|
||
inherit(Polling, Transport);
|
||
|
||
/**
|
||
* Transport name.
|
||
*/
|
||
|
||
Polling.prototype.name = 'polling';
|
||
|
||
/**
|
||
* Opens the socket (triggers polling). We write a PING message to determine
|
||
* when the transport is open.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Polling.prototype.doOpen = function () {
|
||
this.poll();
|
||
};
|
||
|
||
/**
|
||
* Pauses polling.
|
||
*
|
||
* @param {Function} callback upon buffers are flushed and transport is paused
|
||
* @api private
|
||
*/
|
||
|
||
Polling.prototype.pause = function (onPause) {
|
||
var self = this;
|
||
|
||
this.readyState = 'pausing';
|
||
|
||
function pause () {
|
||
debug('paused');
|
||
self.readyState = 'paused';
|
||
onPause();
|
||
}
|
||
|
||
if (this.polling || !this.writable) {
|
||
var total = 0;
|
||
|
||
if (this.polling) {
|
||
debug('we are currently polling - waiting to pause');
|
||
total++;
|
||
this.once('pollComplete', function () {
|
||
debug('pre-pause polling complete');
|
||
--total || pause();
|
||
});
|
||
}
|
||
|
||
if (!this.writable) {
|
||
debug('we are currently writing - waiting to pause');
|
||
total++;
|
||
this.once('drain', function () {
|
||
debug('pre-pause writing complete');
|
||
--total || pause();
|
||
});
|
||
}
|
||
} else {
|
||
pause();
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Starts polling cycle.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Polling.prototype.poll = function () {
|
||
debug('polling');
|
||
this.polling = true;
|
||
this.doPoll();
|
||
this.emit('poll');
|
||
};
|
||
|
||
/**
|
||
* Overloads onData to detect payloads.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Polling.prototype.onData = function (data) {
|
||
var self = this;
|
||
debug('polling got data %s', data);
|
||
var callback = function (packet, index, total) {
|
||
// if its the first message we consider the transport open
|
||
if ('opening' === self.readyState) {
|
||
self.onOpen();
|
||
}
|
||
|
||
// if its a close packet, we close the ongoing requests
|
||
if ('close' === packet.type) {
|
||
self.onClose();
|
||
return false;
|
||
}
|
||
|
||
// otherwise bypass onData and handle the message
|
||
self.onPacket(packet);
|
||
};
|
||
|
||
// decode payload
|
||
parser.decodePayload(data, this.socket.binaryType, callback);
|
||
|
||
// if an event did not trigger closing
|
||
if ('closed' !== this.readyState) {
|
||
// if we got data we're not polling
|
||
this.polling = false;
|
||
this.emit('pollComplete');
|
||
|
||
if ('open' === this.readyState) {
|
||
this.poll();
|
||
} else {
|
||
debug('ignoring poll - transport state "%s"', this.readyState);
|
||
}
|
||
}
|
||
};
|
||
|
||
/**
|
||
* For polling, send a close packet.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Polling.prototype.doClose = function () {
|
||
var self = this;
|
||
|
||
function close () {
|
||
debug('writing close packet');
|
||
self.write([{ type: 'close' }]);
|
||
}
|
||
|
||
if ('open' === this.readyState) {
|
||
debug('transport open - closing');
|
||
close();
|
||
} else {
|
||
// in case we're trying to close while
|
||
// handshaking is in progress (GH-164)
|
||
debug('transport not open - deferring close');
|
||
this.once('open', close);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Writes a packets payload.
|
||
*
|
||
* @param {Array} data packets
|
||
* @param {Function} drain callback
|
||
* @api private
|
||
*/
|
||
|
||
Polling.prototype.write = function (packets) {
|
||
var self = this;
|
||
this.writable = false;
|
||
var callbackfn = function () {
|
||
self.writable = true;
|
||
self.emit('drain');
|
||
};
|
||
|
||
parser.encodePayload(packets, this.supportsBinary, function (data) {
|
||
self.doWrite(data, callbackfn);
|
||
});
|
||
};
|
||
|
||
/**
|
||
* Generates uri for connection.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Polling.prototype.uri = function () {
|
||
var query = this.query || {};
|
||
var schema = this.secure ? 'https' : 'http';
|
||
var port = '';
|
||
|
||
// cache busting is forced
|
||
if (false !== this.timestampRequests) {
|
||
query[this.timestampParam] = yeast();
|
||
}
|
||
|
||
if (!this.supportsBinary && !query.sid) {
|
||
query.b64 = 1;
|
||
}
|
||
|
||
query = parseqs.encode(query);
|
||
|
||
// avoid port if default for schema
|
||
if (this.port && (('https' === schema && Number(this.port) !== 443) ||
|
||
('http' === schema && Number(this.port) !== 80))) {
|
||
port = ':' + this.port;
|
||
}
|
||
|
||
// prepend ? to query
|
||
if (query.length) {
|
||
query = '?' + query;
|
||
}
|
||
|
||
var ipv6 = this.hostname.indexOf(':') !== -1;
|
||
return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-client/lib/transports/websocket.js":
|
||
/*!*******************************************************************!*\
|
||
!*** ./node_modules/engine.io-client/lib/transports/websocket.js ***!
|
||
\*******************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(Buffer) {/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var Transport = __webpack_require__(/*! ../transport */ "./node_modules/engine.io-client/lib/transport.js");
|
||
var parser = __webpack_require__(/*! engine.io-parser */ "./node_modules/engine.io-parser/lib/browser.js");
|
||
var parseqs = __webpack_require__(/*! parseqs */ "./node_modules/parseqs/index.js");
|
||
var inherit = __webpack_require__(/*! component-inherit */ "./node_modules/component-inherit/index.js");
|
||
var yeast = __webpack_require__(/*! yeast */ "./node_modules/yeast/index.js");
|
||
var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.js")('engine.io-client:websocket');
|
||
|
||
var BrowserWebSocket, NodeWebSocket;
|
||
|
||
if (typeof WebSocket !== 'undefined') {
|
||
BrowserWebSocket = WebSocket;
|
||
} else if (typeof self !== 'undefined') {
|
||
BrowserWebSocket = self.WebSocket || self.MozWebSocket;
|
||
}
|
||
|
||
if (typeof window === 'undefined') {
|
||
try {
|
||
NodeWebSocket = __webpack_require__(/*! ws */ 0);
|
||
} catch (e) { }
|
||
}
|
||
|
||
/**
|
||
* Get either the `WebSocket` or `MozWebSocket` globals
|
||
* in the browser or try to resolve WebSocket-compatible
|
||
* interface exposed by `ws` for Node-like environment.
|
||
*/
|
||
|
||
var WebSocketImpl = BrowserWebSocket || NodeWebSocket;
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = WS;
|
||
|
||
/**
|
||
* WebSocket transport constructor.
|
||
*
|
||
* @api {Object} connection options
|
||
* @api public
|
||
*/
|
||
|
||
function WS (opts) {
|
||
var forceBase64 = (opts && opts.forceBase64);
|
||
if (forceBase64) {
|
||
this.supportsBinary = false;
|
||
}
|
||
this.perMessageDeflate = opts.perMessageDeflate;
|
||
this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;
|
||
this.protocols = opts.protocols;
|
||
if (!this.usingBrowserWebSocket) {
|
||
WebSocketImpl = NodeWebSocket;
|
||
}
|
||
Transport.call(this, opts);
|
||
}
|
||
|
||
/**
|
||
* Inherits from Transport.
|
||
*/
|
||
|
||
inherit(WS, Transport);
|
||
|
||
/**
|
||
* Transport name.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
WS.prototype.name = 'websocket';
|
||
|
||
/*
|
||
* WebSockets support binary
|
||
*/
|
||
|
||
WS.prototype.supportsBinary = true;
|
||
|
||
/**
|
||
* Opens socket.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
WS.prototype.doOpen = function () {
|
||
if (!this.check()) {
|
||
// let probe timeout
|
||
return;
|
||
}
|
||
|
||
var uri = this.uri();
|
||
var protocols = this.protocols;
|
||
var opts = {
|
||
agent: this.agent,
|
||
perMessageDeflate: this.perMessageDeflate
|
||
};
|
||
|
||
// SSL options for Node.js client
|
||
opts.pfx = this.pfx;
|
||
opts.key = this.key;
|
||
opts.passphrase = this.passphrase;
|
||
opts.cert = this.cert;
|
||
opts.ca = this.ca;
|
||
opts.ciphers = this.ciphers;
|
||
opts.rejectUnauthorized = this.rejectUnauthorized;
|
||
if (this.extraHeaders) {
|
||
opts.headers = this.extraHeaders;
|
||
}
|
||
if (this.localAddress) {
|
||
opts.localAddress = this.localAddress;
|
||
}
|
||
|
||
try {
|
||
this.ws =
|
||
this.usingBrowserWebSocket && !this.isReactNative
|
||
? protocols
|
||
? new WebSocketImpl(uri, protocols)
|
||
: new WebSocketImpl(uri)
|
||
: new WebSocketImpl(uri, protocols, opts);
|
||
} catch (err) {
|
||
return this.emit('error', err);
|
||
}
|
||
|
||
if (this.ws.binaryType === undefined) {
|
||
this.supportsBinary = false;
|
||
}
|
||
|
||
if (this.ws.supports && this.ws.supports.binary) {
|
||
this.supportsBinary = true;
|
||
this.ws.binaryType = 'nodebuffer';
|
||
} else {
|
||
this.ws.binaryType = 'arraybuffer';
|
||
}
|
||
|
||
this.addEventListeners();
|
||
};
|
||
|
||
/**
|
||
* Adds event listeners to the socket
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
WS.prototype.addEventListeners = function () {
|
||
var self = this;
|
||
|
||
this.ws.onopen = function () {
|
||
self.onOpen();
|
||
};
|
||
this.ws.onclose = function () {
|
||
self.onClose();
|
||
};
|
||
this.ws.onmessage = function (ev) {
|
||
self.onData(ev.data);
|
||
};
|
||
this.ws.onerror = function (e) {
|
||
self.onError('websocket error', e);
|
||
};
|
||
};
|
||
|
||
/**
|
||
* Writes data to socket.
|
||
*
|
||
* @param {Array} array of packets.
|
||
* @api private
|
||
*/
|
||
|
||
WS.prototype.write = function (packets) {
|
||
var self = this;
|
||
this.writable = false;
|
||
|
||
// encodePacket efficient as it uses WS framing
|
||
// no need for encodePayload
|
||
var total = packets.length;
|
||
for (var i = 0, l = total; i < l; i++) {
|
||
(function (packet) {
|
||
parser.encodePacket(packet, self.supportsBinary, function (data) {
|
||
if (!self.usingBrowserWebSocket) {
|
||
// always create a new object (GH-437)
|
||
var opts = {};
|
||
if (packet.options) {
|
||
opts.compress = packet.options.compress;
|
||
}
|
||
|
||
if (self.perMessageDeflate) {
|
||
var len = 'string' === typeof data ? Buffer.byteLength(data) : data.length;
|
||
if (len < self.perMessageDeflate.threshold) {
|
||
opts.compress = false;
|
||
}
|
||
}
|
||
}
|
||
|
||
// Sometimes the websocket has already been closed but the browser didn't
|
||
// have a chance of informing us about it yet, in that case send will
|
||
// throw an error
|
||
try {
|
||
if (self.usingBrowserWebSocket) {
|
||
// TypeError is thrown when passing the second argument on Safari
|
||
self.ws.send(data);
|
||
} else {
|
||
self.ws.send(data, opts);
|
||
}
|
||
} catch (e) {
|
||
debug('websocket closed before onclose event');
|
||
}
|
||
|
||
--total || done();
|
||
});
|
||
})(packets[i]);
|
||
}
|
||
|
||
function done () {
|
||
self.emit('flush');
|
||
|
||
// fake drain
|
||
// defer to next tick to allow Socket to clear writeBuffer
|
||
setTimeout(function () {
|
||
self.writable = true;
|
||
self.emit('drain');
|
||
}, 0);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Called upon close
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
WS.prototype.onClose = function () {
|
||
Transport.prototype.onClose.call(this);
|
||
};
|
||
|
||
/**
|
||
* Closes socket.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
WS.prototype.doClose = function () {
|
||
if (typeof this.ws !== 'undefined') {
|
||
this.ws.close();
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Generates uri for connection.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
WS.prototype.uri = function () {
|
||
var query = this.query || {};
|
||
var schema = this.secure ? 'wss' : 'ws';
|
||
var port = '';
|
||
|
||
// avoid port if default for schema
|
||
if (this.port && (('wss' === schema && Number(this.port) !== 443) ||
|
||
('ws' === schema && Number(this.port) !== 80))) {
|
||
port = ':' + this.port;
|
||
}
|
||
|
||
// append timestamp to URI
|
||
if (this.timestampRequests) {
|
||
query[this.timestampParam] = yeast();
|
||
}
|
||
|
||
// communicate binary support capabilities
|
||
if (!this.supportsBinary) {
|
||
query.b64 = 1;
|
||
}
|
||
|
||
query = parseqs.encode(query);
|
||
|
||
// prepend ? to query
|
||
if (query.length) {
|
||
query = '?' + query;
|
||
}
|
||
|
||
var ipv6 = this.hostname.indexOf(':') !== -1;
|
||
return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;
|
||
};
|
||
|
||
/**
|
||
* Feature detection for WebSocket.
|
||
*
|
||
* @return {Boolean} whether this transport is available.
|
||
* @api public
|
||
*/
|
||
|
||
WS.prototype.check = function () {
|
||
return !!WebSocketImpl && !('__initialize' in WebSocketImpl && this.name === WS.prototype.name);
|
||
};
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-client/lib/xmlhttprequest.js":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/engine.io-client/lib/xmlhttprequest.js ***!
|
||
\*************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// browser shim for xmlhttprequest module
|
||
|
||
var hasCORS = __webpack_require__(/*! has-cors */ "./node_modules/has-cors/index.js");
|
||
|
||
module.exports = function (opts) {
|
||
var xdomain = opts.xdomain;
|
||
|
||
// scheme must be same when usign XDomainRequest
|
||
// http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx
|
||
var xscheme = opts.xscheme;
|
||
|
||
// XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.
|
||
// https://github.com/Automattic/engine.io-client/pull/217
|
||
var enablesXDR = opts.enablesXDR;
|
||
|
||
// XMLHttpRequest can be disabled on IE
|
||
try {
|
||
if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {
|
||
return new XMLHttpRequest();
|
||
}
|
||
} catch (e) { }
|
||
|
||
// Use XDomainRequest for IE8 if enablesXDR is true
|
||
// because loading bar keeps flashing when using jsonp-polling
|
||
// https://github.com/yujiosaka/socke.io-ie8-loading-example
|
||
try {
|
||
if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {
|
||
return new XDomainRequest();
|
||
}
|
||
} catch (e) { }
|
||
|
||
if (!xdomain) {
|
||
try {
|
||
return new self[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');
|
||
} catch (e) { }
|
||
}
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-parser/lib/browser.js":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/engine.io-parser/lib/browser.js ***!
|
||
\******************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var keys = __webpack_require__(/*! ./keys */ "./node_modules/engine.io-parser/lib/keys.js");
|
||
var hasBinary = __webpack_require__(/*! has-binary2 */ "./node_modules/has-binary2/index.js");
|
||
var sliceBuffer = __webpack_require__(/*! arraybuffer.slice */ "./node_modules/arraybuffer.slice/index.js");
|
||
var after = __webpack_require__(/*! after */ "./node_modules/after/index.js");
|
||
var utf8 = __webpack_require__(/*! ./utf8 */ "./node_modules/engine.io-parser/lib/utf8.js");
|
||
|
||
var base64encoder;
|
||
if (typeof ArrayBuffer !== 'undefined') {
|
||
base64encoder = __webpack_require__(/*! base64-arraybuffer */ "./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js");
|
||
}
|
||
|
||
/**
|
||
* Check if we are running an android browser. That requires us to use
|
||
* ArrayBuffer with polling transports...
|
||
*
|
||
* http://ghinda.net/jpeg-blob-ajax-android/
|
||
*/
|
||
|
||
var isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);
|
||
|
||
/**
|
||
* Check if we are running in PhantomJS.
|
||
* Uploading a Blob with PhantomJS does not work correctly, as reported here:
|
||
* https://github.com/ariya/phantomjs/issues/11395
|
||
* @type boolean
|
||
*/
|
||
var isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);
|
||
|
||
/**
|
||
* When true, avoids using Blobs to encode payloads.
|
||
* @type boolean
|
||
*/
|
||
var dontSendBlobs = isAndroid || isPhantomJS;
|
||
|
||
/**
|
||
* Current protocol version.
|
||
*/
|
||
|
||
exports.protocol = 3;
|
||
|
||
/**
|
||
* Packet types.
|
||
*/
|
||
|
||
var packets = exports.packets = {
|
||
open: 0 // non-ws
|
||
, close: 1 // non-ws
|
||
, ping: 2
|
||
, pong: 3
|
||
, message: 4
|
||
, upgrade: 5
|
||
, noop: 6
|
||
};
|
||
|
||
var packetslist = keys(packets);
|
||
|
||
/**
|
||
* Premade error packet.
|
||
*/
|
||
|
||
var err = { type: 'error', data: 'parser error' };
|
||
|
||
/**
|
||
* Create a blob api even for blob builder when vendor prefixes exist
|
||
*/
|
||
|
||
var Blob = __webpack_require__(/*! blob */ "./node_modules/blob/index.js");
|
||
|
||
/**
|
||
* Encodes a packet.
|
||
*
|
||
* <packet type id> [ <data> ]
|
||
*
|
||
* Example:
|
||
*
|
||
* 5hello world
|
||
* 3
|
||
* 4
|
||
*
|
||
* Binary is encoded in an identical principle
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
exports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {
|
||
if (typeof supportsBinary === 'function') {
|
||
callback = supportsBinary;
|
||
supportsBinary = false;
|
||
}
|
||
|
||
if (typeof utf8encode === 'function') {
|
||
callback = utf8encode;
|
||
utf8encode = null;
|
||
}
|
||
|
||
var data = (packet.data === undefined)
|
||
? undefined
|
||
: packet.data.buffer || packet.data;
|
||
|
||
if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) {
|
||
return encodeArrayBuffer(packet, supportsBinary, callback);
|
||
} else if (typeof Blob !== 'undefined' && data instanceof Blob) {
|
||
return encodeBlob(packet, supportsBinary, callback);
|
||
}
|
||
|
||
// might be an object with { base64: true, data: dataAsBase64String }
|
||
if (data && data.base64) {
|
||
return encodeBase64Object(packet, callback);
|
||
}
|
||
|
||
// Sending data as a utf-8 string
|
||
var encoded = packets[packet.type];
|
||
|
||
// data fragment is optional
|
||
if (undefined !== packet.data) {
|
||
encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);
|
||
}
|
||
|
||
return callback('' + encoded);
|
||
|
||
};
|
||
|
||
function encodeBase64Object(packet, callback) {
|
||
// packet data is an object { base64: true, data: dataAsBase64String }
|
||
var message = 'b' + exports.packets[packet.type] + packet.data.data;
|
||
return callback(message);
|
||
}
|
||
|
||
/**
|
||
* Encode packet helpers for binary types
|
||
*/
|
||
|
||
function encodeArrayBuffer(packet, supportsBinary, callback) {
|
||
if (!supportsBinary) {
|
||
return exports.encodeBase64Packet(packet, callback);
|
||
}
|
||
|
||
var data = packet.data;
|
||
var contentArray = new Uint8Array(data);
|
||
var resultBuffer = new Uint8Array(1 + data.byteLength);
|
||
|
||
resultBuffer[0] = packets[packet.type];
|
||
for (var i = 0; i < contentArray.length; i++) {
|
||
resultBuffer[i+1] = contentArray[i];
|
||
}
|
||
|
||
return callback(resultBuffer.buffer);
|
||
}
|
||
|
||
function encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {
|
||
if (!supportsBinary) {
|
||
return exports.encodeBase64Packet(packet, callback);
|
||
}
|
||
|
||
var fr = new FileReader();
|
||
fr.onload = function() {
|
||
exports.encodePacket({ type: packet.type, data: fr.result }, supportsBinary, true, callback);
|
||
};
|
||
return fr.readAsArrayBuffer(packet.data);
|
||
}
|
||
|
||
function encodeBlob(packet, supportsBinary, callback) {
|
||
if (!supportsBinary) {
|
||
return exports.encodeBase64Packet(packet, callback);
|
||
}
|
||
|
||
if (dontSendBlobs) {
|
||
return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);
|
||
}
|
||
|
||
var length = new Uint8Array(1);
|
||
length[0] = packets[packet.type];
|
||
var blob = new Blob([length.buffer, packet.data]);
|
||
|
||
return callback(blob);
|
||
}
|
||
|
||
/**
|
||
* Encodes a packet with binary data in a base64 string
|
||
*
|
||
* @param {Object} packet, has `type` and `data`
|
||
* @return {String} base64 encoded message
|
||
*/
|
||
|
||
exports.encodeBase64Packet = function(packet, callback) {
|
||
var message = 'b' + exports.packets[packet.type];
|
||
if (typeof Blob !== 'undefined' && packet.data instanceof Blob) {
|
||
var fr = new FileReader();
|
||
fr.onload = function() {
|
||
var b64 = fr.result.split(',')[1];
|
||
callback(message + b64);
|
||
};
|
||
return fr.readAsDataURL(packet.data);
|
||
}
|
||
|
||
var b64data;
|
||
try {
|
||
b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));
|
||
} catch (e) {
|
||
// iPhone Safari doesn't let you apply with typed arrays
|
||
var typed = new Uint8Array(packet.data);
|
||
var basic = new Array(typed.length);
|
||
for (var i = 0; i < typed.length; i++) {
|
||
basic[i] = typed[i];
|
||
}
|
||
b64data = String.fromCharCode.apply(null, basic);
|
||
}
|
||
message += btoa(b64data);
|
||
return callback(message);
|
||
};
|
||
|
||
/**
|
||
* Decodes a packet. Changes format to Blob if requested.
|
||
*
|
||
* @return {Object} with `type` and `data` (if any)
|
||
* @api private
|
||
*/
|
||
|
||
exports.decodePacket = function (data, binaryType, utf8decode) {
|
||
if (data === undefined) {
|
||
return err;
|
||
}
|
||
// String data
|
||
if (typeof data === 'string') {
|
||
if (data.charAt(0) === 'b') {
|
||
return exports.decodeBase64Packet(data.substr(1), binaryType);
|
||
}
|
||
|
||
if (utf8decode) {
|
||
data = tryDecode(data);
|
||
if (data === false) {
|
||
return err;
|
||
}
|
||
}
|
||
var type = data.charAt(0);
|
||
|
||
if (Number(type) != type || !packetslist[type]) {
|
||
return err;
|
||
}
|
||
|
||
if (data.length > 1) {
|
||
return { type: packetslist[type], data: data.substring(1) };
|
||
} else {
|
||
return { type: packetslist[type] };
|
||
}
|
||
}
|
||
|
||
var asArray = new Uint8Array(data);
|
||
var type = asArray[0];
|
||
var rest = sliceBuffer(data, 1);
|
||
if (Blob && binaryType === 'blob') {
|
||
rest = new Blob([rest]);
|
||
}
|
||
return { type: packetslist[type], data: rest };
|
||
};
|
||
|
||
function tryDecode(data) {
|
||
try {
|
||
data = utf8.decode(data, { strict: false });
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
return data;
|
||
}
|
||
|
||
/**
|
||
* Decodes a packet encoded in a base64 string
|
||
*
|
||
* @param {String} base64 encoded message
|
||
* @return {Object} with `type` and `data` (if any)
|
||
*/
|
||
|
||
exports.decodeBase64Packet = function(msg, binaryType) {
|
||
var type = packetslist[msg.charAt(0)];
|
||
if (!base64encoder) {
|
||
return { type: type, data: { base64: true, data: msg.substr(1) } };
|
||
}
|
||
|
||
var data = base64encoder.decode(msg.substr(1));
|
||
|
||
if (binaryType === 'blob' && Blob) {
|
||
data = new Blob([data]);
|
||
}
|
||
|
||
return { type: type, data: data };
|
||
};
|
||
|
||
/**
|
||
* Encodes multiple messages (payload).
|
||
*
|
||
* <length>:data
|
||
*
|
||
* Example:
|
||
*
|
||
* 11:hello world2:hi
|
||
*
|
||
* If any contents are binary, they will be encoded as base64 strings. Base64
|
||
* encoded strings are marked with a b before the length specifier
|
||
*
|
||
* @param {Array} packets
|
||
* @api private
|
||
*/
|
||
|
||
exports.encodePayload = function (packets, supportsBinary, callback) {
|
||
if (typeof supportsBinary === 'function') {
|
||
callback = supportsBinary;
|
||
supportsBinary = null;
|
||
}
|
||
|
||
var isBinary = hasBinary(packets);
|
||
|
||
if (supportsBinary && isBinary) {
|
||
if (Blob && !dontSendBlobs) {
|
||
return exports.encodePayloadAsBlob(packets, callback);
|
||
}
|
||
|
||
return exports.encodePayloadAsArrayBuffer(packets, callback);
|
||
}
|
||
|
||
if (!packets.length) {
|
||
return callback('0:');
|
||
}
|
||
|
||
function setLengthHeader(message) {
|
||
return message.length + ':' + message;
|
||
}
|
||
|
||
function encodeOne(packet, doneCallback) {
|
||
exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {
|
||
doneCallback(null, setLengthHeader(message));
|
||
});
|
||
}
|
||
|
||
map(packets, encodeOne, function(err, results) {
|
||
return callback(results.join(''));
|
||
});
|
||
};
|
||
|
||
/**
|
||
* Async array map using after
|
||
*/
|
||
|
||
function map(ary, each, done) {
|
||
var result = new Array(ary.length);
|
||
var next = after(ary.length, done);
|
||
|
||
var eachWithIndex = function(i, el, cb) {
|
||
each(el, function(error, msg) {
|
||
result[i] = msg;
|
||
cb(error, result);
|
||
});
|
||
};
|
||
|
||
for (var i = 0; i < ary.length; i++) {
|
||
eachWithIndex(i, ary[i], next);
|
||
}
|
||
}
|
||
|
||
/*
|
||
* Decodes data when a payload is maybe expected. Possible binary contents are
|
||
* decoded from their base64 representation
|
||
*
|
||
* @param {String} data, callback method
|
||
* @api public
|
||
*/
|
||
|
||
exports.decodePayload = function (data, binaryType, callback) {
|
||
if (typeof data !== 'string') {
|
||
return exports.decodePayloadAsBinary(data, binaryType, callback);
|
||
}
|
||
|
||
if (typeof binaryType === 'function') {
|
||
callback = binaryType;
|
||
binaryType = null;
|
||
}
|
||
|
||
var packet;
|
||
if (data === '') {
|
||
// parser error - ignoring payload
|
||
return callback(err, 0, 1);
|
||
}
|
||
|
||
var length = '', n, msg;
|
||
|
||
for (var i = 0, l = data.length; i < l; i++) {
|
||
var chr = data.charAt(i);
|
||
|
||
if (chr !== ':') {
|
||
length += chr;
|
||
continue;
|
||
}
|
||
|
||
if (length === '' || (length != (n = Number(length)))) {
|
||
// parser error - ignoring payload
|
||
return callback(err, 0, 1);
|
||
}
|
||
|
||
msg = data.substr(i + 1, n);
|
||
|
||
if (length != msg.length) {
|
||
// parser error - ignoring payload
|
||
return callback(err, 0, 1);
|
||
}
|
||
|
||
if (msg.length) {
|
||
packet = exports.decodePacket(msg, binaryType, false);
|
||
|
||
if (err.type === packet.type && err.data === packet.data) {
|
||
// parser error in individual packet - ignoring payload
|
||
return callback(err, 0, 1);
|
||
}
|
||
|
||
var ret = callback(packet, i + n, l);
|
||
if (false === ret) return;
|
||
}
|
||
|
||
// advance cursor
|
||
i += n;
|
||
length = '';
|
||
}
|
||
|
||
if (length !== '') {
|
||
// parser error - ignoring payload
|
||
return callback(err, 0, 1);
|
||
}
|
||
|
||
};
|
||
|
||
/**
|
||
* Encodes multiple messages (payload) as binary.
|
||
*
|
||
* <1 = binary, 0 = string><number from 0-9><number from 0-9>[...]<number
|
||
* 255><data>
|
||
*
|
||
* Example:
|
||
* 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers
|
||
*
|
||
* @param {Array} packets
|
||
* @return {ArrayBuffer} encoded payload
|
||
* @api private
|
||
*/
|
||
|
||
exports.encodePayloadAsArrayBuffer = function(packets, callback) {
|
||
if (!packets.length) {
|
||
return callback(new ArrayBuffer(0));
|
||
}
|
||
|
||
function encodeOne(packet, doneCallback) {
|
||
exports.encodePacket(packet, true, true, function(data) {
|
||
return doneCallback(null, data);
|
||
});
|
||
}
|
||
|
||
map(packets, encodeOne, function(err, encodedPackets) {
|
||
var totalLength = encodedPackets.reduce(function(acc, p) {
|
||
var len;
|
||
if (typeof p === 'string'){
|
||
len = p.length;
|
||
} else {
|
||
len = p.byteLength;
|
||
}
|
||
return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2
|
||
}, 0);
|
||
|
||
var resultArray = new Uint8Array(totalLength);
|
||
|
||
var bufferIndex = 0;
|
||
encodedPackets.forEach(function(p) {
|
||
var isString = typeof p === 'string';
|
||
var ab = p;
|
||
if (isString) {
|
||
var view = new Uint8Array(p.length);
|
||
for (var i = 0; i < p.length; i++) {
|
||
view[i] = p.charCodeAt(i);
|
||
}
|
||
ab = view.buffer;
|
||
}
|
||
|
||
if (isString) { // not true binary
|
||
resultArray[bufferIndex++] = 0;
|
||
} else { // true binary
|
||
resultArray[bufferIndex++] = 1;
|
||
}
|
||
|
||
var lenStr = ab.byteLength.toString();
|
||
for (var i = 0; i < lenStr.length; i++) {
|
||
resultArray[bufferIndex++] = parseInt(lenStr[i]);
|
||
}
|
||
resultArray[bufferIndex++] = 255;
|
||
|
||
var view = new Uint8Array(ab);
|
||
for (var i = 0; i < view.length; i++) {
|
||
resultArray[bufferIndex++] = view[i];
|
||
}
|
||
});
|
||
|
||
return callback(resultArray.buffer);
|
||
});
|
||
};
|
||
|
||
/**
|
||
* Encode as Blob
|
||
*/
|
||
|
||
exports.encodePayloadAsBlob = function(packets, callback) {
|
||
function encodeOne(packet, doneCallback) {
|
||
exports.encodePacket(packet, true, true, function(encoded) {
|
||
var binaryIdentifier = new Uint8Array(1);
|
||
binaryIdentifier[0] = 1;
|
||
if (typeof encoded === 'string') {
|
||
var view = new Uint8Array(encoded.length);
|
||
for (var i = 0; i < encoded.length; i++) {
|
||
view[i] = encoded.charCodeAt(i);
|
||
}
|
||
encoded = view.buffer;
|
||
binaryIdentifier[0] = 0;
|
||
}
|
||
|
||
var len = (encoded instanceof ArrayBuffer)
|
||
? encoded.byteLength
|
||
: encoded.size;
|
||
|
||
var lenStr = len.toString();
|
||
var lengthAry = new Uint8Array(lenStr.length + 1);
|
||
for (var i = 0; i < lenStr.length; i++) {
|
||
lengthAry[i] = parseInt(lenStr[i]);
|
||
}
|
||
lengthAry[lenStr.length] = 255;
|
||
|
||
if (Blob) {
|
||
var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);
|
||
doneCallback(null, blob);
|
||
}
|
||
});
|
||
}
|
||
|
||
map(packets, encodeOne, function(err, results) {
|
||
return callback(new Blob(results));
|
||
});
|
||
};
|
||
|
||
/*
|
||
* Decodes data when a payload is maybe expected. Strings are decoded by
|
||
* interpreting each byte as a key code for entries marked to start with 0. See
|
||
* description of encodePayloadAsBinary
|
||
*
|
||
* @param {ArrayBuffer} data, callback method
|
||
* @api public
|
||
*/
|
||
|
||
exports.decodePayloadAsBinary = function (data, binaryType, callback) {
|
||
if (typeof binaryType === 'function') {
|
||
callback = binaryType;
|
||
binaryType = null;
|
||
}
|
||
|
||
var bufferTail = data;
|
||
var buffers = [];
|
||
|
||
while (bufferTail.byteLength > 0) {
|
||
var tailArray = new Uint8Array(bufferTail);
|
||
var isString = tailArray[0] === 0;
|
||
var msgLength = '';
|
||
|
||
for (var i = 1; ; i++) {
|
||
if (tailArray[i] === 255) break;
|
||
|
||
// 310 = char length of Number.MAX_VALUE
|
||
if (msgLength.length > 310) {
|
||
return callback(err, 0, 1);
|
||
}
|
||
|
||
msgLength += tailArray[i];
|
||
}
|
||
|
||
bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);
|
||
msgLength = parseInt(msgLength);
|
||
|
||
var msg = sliceBuffer(bufferTail, 0, msgLength);
|
||
if (isString) {
|
||
try {
|
||
msg = String.fromCharCode.apply(null, new Uint8Array(msg));
|
||
} catch (e) {
|
||
// iPhone Safari doesn't let you apply to typed arrays
|
||
var typed = new Uint8Array(msg);
|
||
msg = '';
|
||
for (var i = 0; i < typed.length; i++) {
|
||
msg += String.fromCharCode(typed[i]);
|
||
}
|
||
}
|
||
}
|
||
|
||
buffers.push(msg);
|
||
bufferTail = sliceBuffer(bufferTail, msgLength);
|
||
}
|
||
|
||
var total = buffers.length;
|
||
buffers.forEach(function(buffer, i) {
|
||
callback(exports.decodePacket(buffer, binaryType, true), i, total);
|
||
});
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-parser/lib/keys.js":
|
||
/*!***************************************************!*\
|
||
!*** ./node_modules/engine.io-parser/lib/keys.js ***!
|
||
\***************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
|
||
/**
|
||
* Gets the keys for an object.
|
||
*
|
||
* @return {Array} keys
|
||
* @api private
|
||
*/
|
||
|
||
module.exports = Object.keys || function keys (obj){
|
||
var arr = [];
|
||
var has = Object.prototype.hasOwnProperty;
|
||
|
||
for (var i in obj) {
|
||
if (has.call(obj, i)) {
|
||
arr.push(i);
|
||
}
|
||
}
|
||
return arr;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/engine.io-parser/lib/utf8.js":
|
||
/*!***************************************************!*\
|
||
!*** ./node_modules/engine.io-parser/lib/utf8.js ***!
|
||
\***************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/*! https://mths.be/utf8js v2.1.2 by @mathias */
|
||
|
||
var stringFromCharCode = String.fromCharCode;
|
||
|
||
// Taken from https://mths.be/punycode
|
||
function ucs2decode(string) {
|
||
var output = [];
|
||
var counter = 0;
|
||
var length = string.length;
|
||
var value;
|
||
var extra;
|
||
while (counter < length) {
|
||
value = string.charCodeAt(counter++);
|
||
if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
|
||
// high surrogate, and there is a next character
|
||
extra = string.charCodeAt(counter++);
|
||
if ((extra & 0xFC00) == 0xDC00) { // low surrogate
|
||
output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
|
||
} else {
|
||
// unmatched surrogate; only append this code unit, in case the next
|
||
// code unit is the high surrogate of a surrogate pair
|
||
output.push(value);
|
||
counter--;
|
||
}
|
||
} else {
|
||
output.push(value);
|
||
}
|
||
}
|
||
return output;
|
||
}
|
||
|
||
// Taken from https://mths.be/punycode
|
||
function ucs2encode(array) {
|
||
var length = array.length;
|
||
var index = -1;
|
||
var value;
|
||
var output = '';
|
||
while (++index < length) {
|
||
value = array[index];
|
||
if (value > 0xFFFF) {
|
||
value -= 0x10000;
|
||
output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
|
||
value = 0xDC00 | value & 0x3FF;
|
||
}
|
||
output += stringFromCharCode(value);
|
||
}
|
||
return output;
|
||
}
|
||
|
||
function checkScalarValue(codePoint, strict) {
|
||
if (codePoint >= 0xD800 && codePoint <= 0xDFFF) {
|
||
if (strict) {
|
||
throw Error(
|
||
'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +
|
||
' is not a scalar value'
|
||
);
|
||
}
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
/*--------------------------------------------------------------------------*/
|
||
|
||
function createByte(codePoint, shift) {
|
||
return stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);
|
||
}
|
||
|
||
function encodeCodePoint(codePoint, strict) {
|
||
if ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence
|
||
return stringFromCharCode(codePoint);
|
||
}
|
||
var symbol = '';
|
||
if ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence
|
||
symbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);
|
||
}
|
||
else if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence
|
||
if (!checkScalarValue(codePoint, strict)) {
|
||
codePoint = 0xFFFD;
|
||
}
|
||
symbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);
|
||
symbol += createByte(codePoint, 6);
|
||
}
|
||
else if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence
|
||
symbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);
|
||
symbol += createByte(codePoint, 12);
|
||
symbol += createByte(codePoint, 6);
|
||
}
|
||
symbol += stringFromCharCode((codePoint & 0x3F) | 0x80);
|
||
return symbol;
|
||
}
|
||
|
||
function utf8encode(string, opts) {
|
||
opts = opts || {};
|
||
var strict = false !== opts.strict;
|
||
|
||
var codePoints = ucs2decode(string);
|
||
var length = codePoints.length;
|
||
var index = -1;
|
||
var codePoint;
|
||
var byteString = '';
|
||
while (++index < length) {
|
||
codePoint = codePoints[index];
|
||
byteString += encodeCodePoint(codePoint, strict);
|
||
}
|
||
return byteString;
|
||
}
|
||
|
||
/*--------------------------------------------------------------------------*/
|
||
|
||
function readContinuationByte() {
|
||
if (byteIndex >= byteCount) {
|
||
throw Error('Invalid byte index');
|
||
}
|
||
|
||
var continuationByte = byteArray[byteIndex] & 0xFF;
|
||
byteIndex++;
|
||
|
||
if ((continuationByte & 0xC0) == 0x80) {
|
||
return continuationByte & 0x3F;
|
||
}
|
||
|
||
// If we end up here, it’s not a continuation byte
|
||
throw Error('Invalid continuation byte');
|
||
}
|
||
|
||
function decodeSymbol(strict) {
|
||
var byte1;
|
||
var byte2;
|
||
var byte3;
|
||
var byte4;
|
||
var codePoint;
|
||
|
||
if (byteIndex > byteCount) {
|
||
throw Error('Invalid byte index');
|
||
}
|
||
|
||
if (byteIndex == byteCount) {
|
||
return false;
|
||
}
|
||
|
||
// Read first byte
|
||
byte1 = byteArray[byteIndex] & 0xFF;
|
||
byteIndex++;
|
||
|
||
// 1-byte sequence (no continuation bytes)
|
||
if ((byte1 & 0x80) == 0) {
|
||
return byte1;
|
||
}
|
||
|
||
// 2-byte sequence
|
||
if ((byte1 & 0xE0) == 0xC0) {
|
||
byte2 = readContinuationByte();
|
||
codePoint = ((byte1 & 0x1F) << 6) | byte2;
|
||
if (codePoint >= 0x80) {
|
||
return codePoint;
|
||
} else {
|
||
throw Error('Invalid continuation byte');
|
||
}
|
||
}
|
||
|
||
// 3-byte sequence (may include unpaired surrogates)
|
||
if ((byte1 & 0xF0) == 0xE0) {
|
||
byte2 = readContinuationByte();
|
||
byte3 = readContinuationByte();
|
||
codePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;
|
||
if (codePoint >= 0x0800) {
|
||
return checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;
|
||
} else {
|
||
throw Error('Invalid continuation byte');
|
||
}
|
||
}
|
||
|
||
// 4-byte sequence
|
||
if ((byte1 & 0xF8) == 0xF0) {
|
||
byte2 = readContinuationByte();
|
||
byte3 = readContinuationByte();
|
||
byte4 = readContinuationByte();
|
||
codePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |
|
||
(byte3 << 0x06) | byte4;
|
||
if (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {
|
||
return codePoint;
|
||
}
|
||
}
|
||
|
||
throw Error('Invalid UTF-8 detected');
|
||
}
|
||
|
||
var byteArray;
|
||
var byteCount;
|
||
var byteIndex;
|
||
function utf8decode(byteString, opts) {
|
||
opts = opts || {};
|
||
var strict = false !== opts.strict;
|
||
|
||
byteArray = ucs2decode(byteString);
|
||
byteCount = byteArray.length;
|
||
byteIndex = 0;
|
||
var codePoints = [];
|
||
var tmp;
|
||
while ((tmp = decodeSymbol(strict)) !== false) {
|
||
codePoints.push(tmp);
|
||
}
|
||
return ucs2encode(codePoints);
|
||
}
|
||
|
||
module.exports = {
|
||
version: '2.1.2',
|
||
encode: utf8encode,
|
||
decode: utf8decode
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/has-binary2/index.js":
|
||
/*!*******************************************!*\
|
||
!*** ./node_modules/has-binary2/index.js ***!
|
||
\*******************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(Buffer) {/* global Blob File */
|
||
|
||
/*
|
||
* Module requirements.
|
||
*/
|
||
|
||
var isArray = __webpack_require__(/*! isarray */ "./node_modules/isarray/index.js");
|
||
|
||
var toString = Object.prototype.toString;
|
||
var withNativeBlob = typeof Blob === 'function' ||
|
||
typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]';
|
||
var withNativeFile = typeof File === 'function' ||
|
||
typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]';
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = hasBinary;
|
||
|
||
/**
|
||
* Checks for binary data.
|
||
*
|
||
* Supports Buffer, ArrayBuffer, Blob and File.
|
||
*
|
||
* @param {Object} anything
|
||
* @api public
|
||
*/
|
||
|
||
function hasBinary (obj) {
|
||
if (!obj || typeof obj !== 'object') {
|
||
return false;
|
||
}
|
||
|
||
if (isArray(obj)) {
|
||
for (var i = 0, l = obj.length; i < l; i++) {
|
||
if (hasBinary(obj[i])) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
if ((typeof Buffer === 'function' && Buffer.isBuffer && Buffer.isBuffer(obj)) ||
|
||
(typeof ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||
|
||
(withNativeBlob && obj instanceof Blob) ||
|
||
(withNativeFile && obj instanceof File)
|
||
) {
|
||
return true;
|
||
}
|
||
|
||
// see: https://github.com/Automattic/has-binary/pull/4
|
||
if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {
|
||
return hasBinary(obj.toJSON(), true);
|
||
}
|
||
|
||
for (var key in obj) {
|
||
if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {
|
||
return true;
|
||
}
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/has-cors/index.js":
|
||
/*!****************************************!*\
|
||
!*** ./node_modules/has-cors/index.js ***!
|
||
\****************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
|
||
/**
|
||
* Module exports.
|
||
*
|
||
* Logic borrowed from Modernizr:
|
||
*
|
||
* - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js
|
||
*/
|
||
|
||
try {
|
||
module.exports = typeof XMLHttpRequest !== 'undefined' &&
|
||
'withCredentials' in new XMLHttpRequest();
|
||
} catch (err) {
|
||
// if XMLHttp support is disabled in IE then it will throw
|
||
// when trying to create
|
||
module.exports = false;
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/ieee754/index.js":
|
||
/*!***************************************!*\
|
||
!*** ./node_modules/ieee754/index.js ***!
|
||
\***************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
exports.read = function (buffer, offset, isLE, mLen, nBytes) {
|
||
var e, m
|
||
var eLen = (nBytes * 8) - mLen - 1
|
||
var eMax = (1 << eLen) - 1
|
||
var eBias = eMax >> 1
|
||
var nBits = -7
|
||
var i = isLE ? (nBytes - 1) : 0
|
||
var d = isLE ? -1 : 1
|
||
var s = buffer[offset + i]
|
||
|
||
i += d
|
||
|
||
e = s & ((1 << (-nBits)) - 1)
|
||
s >>= (-nBits)
|
||
nBits += eLen
|
||
for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
|
||
|
||
m = e & ((1 << (-nBits)) - 1)
|
||
e >>= (-nBits)
|
||
nBits += mLen
|
||
for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
|
||
|
||
if (e === 0) {
|
||
e = 1 - eBias
|
||
} else if (e === eMax) {
|
||
return m ? NaN : ((s ? -1 : 1) * Infinity)
|
||
} else {
|
||
m = m + Math.pow(2, mLen)
|
||
e = e - eBias
|
||
}
|
||
return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
|
||
}
|
||
|
||
exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
|
||
var e, m, c
|
||
var eLen = (nBytes * 8) - mLen - 1
|
||
var eMax = (1 << eLen) - 1
|
||
var eBias = eMax >> 1
|
||
var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
|
||
var i = isLE ? 0 : (nBytes - 1)
|
||
var d = isLE ? 1 : -1
|
||
var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
|
||
|
||
value = Math.abs(value)
|
||
|
||
if (isNaN(value) || value === Infinity) {
|
||
m = isNaN(value) ? 1 : 0
|
||
e = eMax
|
||
} else {
|
||
e = Math.floor(Math.log(value) / Math.LN2)
|
||
if (value * (c = Math.pow(2, -e)) < 1) {
|
||
e--
|
||
c *= 2
|
||
}
|
||
if (e + eBias >= 1) {
|
||
value += rt / c
|
||
} else {
|
||
value += rt * Math.pow(2, 1 - eBias)
|
||
}
|
||
if (value * c >= 2) {
|
||
e++
|
||
c /= 2
|
||
}
|
||
|
||
if (e + eBias >= eMax) {
|
||
m = 0
|
||
e = eMax
|
||
} else if (e + eBias >= 1) {
|
||
m = ((value * c) - 1) * Math.pow(2, mLen)
|
||
e = e + eBias
|
||
} else {
|
||
m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
|
||
e = 0
|
||
}
|
||
}
|
||
|
||
for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
|
||
|
||
e = (e << mLen) | m
|
||
eLen += mLen
|
||
for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
|
||
|
||
buffer[offset + i - d] |= s * 128
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/indexof/index.js":
|
||
/*!***************************************!*\
|
||
!*** ./node_modules/indexof/index.js ***!
|
||
\***************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
|
||
var indexOf = [].indexOf;
|
||
|
||
module.exports = function(arr, obj){
|
||
if (indexOf) return arr.indexOf(obj);
|
||
for (var i = 0; i < arr.length; ++i) {
|
||
if (arr[i] === obj) return i;
|
||
}
|
||
return -1;
|
||
};
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/isarray/index.js":
|
||
/*!***************************************!*\
|
||
!*** ./node_modules/isarray/index.js ***!
|
||
\***************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
var toString = {}.toString;
|
||
|
||
module.exports = Array.isArray || function (arr) {
|
||
return toString.call(arr) == '[object Array]';
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/ms/index.js":
|
||
/*!**********************************!*\
|
||
!*** ./node_modules/ms/index.js ***!
|
||
\**********************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Helpers.
|
||
*/
|
||
|
||
var s = 1000;
|
||
var m = s * 60;
|
||
var h = m * 60;
|
||
var d = h * 24;
|
||
var y = d * 365.25;
|
||
|
||
/**
|
||
* Parse or format the given `val`.
|
||
*
|
||
* Options:
|
||
*
|
||
* - `long` verbose formatting [false]
|
||
*
|
||
* @param {String|Number} val
|
||
* @param {Object} [options]
|
||
* @throws {Error} throw an error if val is not a non-empty string or a number
|
||
* @return {String|Number}
|
||
* @api public
|
||
*/
|
||
|
||
module.exports = function(val, options) {
|
||
options = options || {};
|
||
var type = typeof val;
|
||
if (type === 'string' && val.length > 0) {
|
||
return parse(val);
|
||
} else if (type === 'number' && isNaN(val) === false) {
|
||
return options.long ? fmtLong(val) : fmtShort(val);
|
||
}
|
||
throw new Error(
|
||
'val is not a non-empty string or a valid number. val=' +
|
||
JSON.stringify(val)
|
||
);
|
||
};
|
||
|
||
/**
|
||
* Parse the given `str` and return milliseconds.
|
||
*
|
||
* @param {String} str
|
||
* @return {Number}
|
||
* @api private
|
||
*/
|
||
|
||
function parse(str) {
|
||
str = String(str);
|
||
if (str.length > 100) {
|
||
return;
|
||
}
|
||
var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
|
||
str
|
||
);
|
||
if (!match) {
|
||
return;
|
||
}
|
||
var n = parseFloat(match[1]);
|
||
var type = (match[2] || 'ms').toLowerCase();
|
||
switch (type) {
|
||
case 'years':
|
||
case 'year':
|
||
case 'yrs':
|
||
case 'yr':
|
||
case 'y':
|
||
return n * y;
|
||
case 'days':
|
||
case 'day':
|
||
case 'd':
|
||
return n * d;
|
||
case 'hours':
|
||
case 'hour':
|
||
case 'hrs':
|
||
case 'hr':
|
||
case 'h':
|
||
return n * h;
|
||
case 'minutes':
|
||
case 'minute':
|
||
case 'mins':
|
||
case 'min':
|
||
case 'm':
|
||
return n * m;
|
||
case 'seconds':
|
||
case 'second':
|
||
case 'secs':
|
||
case 'sec':
|
||
case 's':
|
||
return n * s;
|
||
case 'milliseconds':
|
||
case 'millisecond':
|
||
case 'msecs':
|
||
case 'msec':
|
||
case 'ms':
|
||
return n;
|
||
default:
|
||
return undefined;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Short format for `ms`.
|
||
*
|
||
* @param {Number} ms
|
||
* @return {String}
|
||
* @api private
|
||
*/
|
||
|
||
function fmtShort(ms) {
|
||
if (ms >= d) {
|
||
return Math.round(ms / d) + 'd';
|
||
}
|
||
if (ms >= h) {
|
||
return Math.round(ms / h) + 'h';
|
||
}
|
||
if (ms >= m) {
|
||
return Math.round(ms / m) + 'm';
|
||
}
|
||
if (ms >= s) {
|
||
return Math.round(ms / s) + 's';
|
||
}
|
||
return ms + 'ms';
|
||
}
|
||
|
||
/**
|
||
* Long format for `ms`.
|
||
*
|
||
* @param {Number} ms
|
||
* @return {String}
|
||
* @api private
|
||
*/
|
||
|
||
function fmtLong(ms) {
|
||
return plural(ms, d, 'day') ||
|
||
plural(ms, h, 'hour') ||
|
||
plural(ms, m, 'minute') ||
|
||
plural(ms, s, 'second') ||
|
||
ms + ' ms';
|
||
}
|
||
|
||
/**
|
||
* Pluralization helper.
|
||
*/
|
||
|
||
function plural(ms, n, name) {
|
||
if (ms < n) {
|
||
return;
|
||
}
|
||
if (ms < n * 1.5) {
|
||
return Math.floor(ms / n) + ' ' + name;
|
||
}
|
||
return Math.ceil(ms / n) + ' ' + name + 's';
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/parseqs/index.js":
|
||
/*!***************************************!*\
|
||
!*** ./node_modules/parseqs/index.js ***!
|
||
\***************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Compiles a querystring
|
||
* Returns string representation of the object
|
||
*
|
||
* @param {Object}
|
||
* @api private
|
||
*/
|
||
|
||
exports.encode = function (obj) {
|
||
var str = '';
|
||
|
||
for (var i in obj) {
|
||
if (obj.hasOwnProperty(i)) {
|
||
if (str.length) str += '&';
|
||
str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);
|
||
}
|
||
}
|
||
|
||
return str;
|
||
};
|
||
|
||
/**
|
||
* Parses a simple querystring into an object
|
||
*
|
||
* @param {String} qs
|
||
* @api private
|
||
*/
|
||
|
||
exports.decode = function(qs){
|
||
var qry = {};
|
||
var pairs = qs.split('&');
|
||
for (var i = 0, l = pairs.length; i < l; i++) {
|
||
var pair = pairs[i].split('=');
|
||
qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
|
||
}
|
||
return qry;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/parseuri/index.js":
|
||
/*!****************************************!*\
|
||
!*** ./node_modules/parseuri/index.js ***!
|
||
\****************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Parses an URI
|
||
*
|
||
* @author Steven Levithan <stevenlevithan.com> (MIT license)
|
||
* @api private
|
||
*/
|
||
|
||
var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/;
|
||
|
||
var parts = [
|
||
'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'
|
||
];
|
||
|
||
module.exports = function parseuri(str) {
|
||
var src = str,
|
||
b = str.indexOf('['),
|
||
e = str.indexOf(']');
|
||
|
||
if (b != -1 && e != -1) {
|
||
str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);
|
||
}
|
||
|
||
var m = re.exec(str || ''),
|
||
uri = {},
|
||
i = 14;
|
||
|
||
while (i--) {
|
||
uri[parts[i]] = m[i] || '';
|
||
}
|
||
|
||
if (b != -1 && e != -1) {
|
||
uri.source = src;
|
||
uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');
|
||
uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');
|
||
uri.ipv6uri = true;
|
||
}
|
||
|
||
return uri;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/process/browser.js":
|
||
/*!*****************************************!*\
|
||
!*** ./node_modules/process/browser.js ***!
|
||
\*****************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
// shim for using process in browser
|
||
var process = module.exports = {};
|
||
|
||
// cached from whatever global is present so that test runners that stub it
|
||
// don't break things. But we need to wrap it in a try catch in case it is
|
||
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
||
// function because try/catches deoptimize in certain engines.
|
||
|
||
var cachedSetTimeout;
|
||
var cachedClearTimeout;
|
||
|
||
function defaultSetTimout() {
|
||
throw new Error('setTimeout has not been defined');
|
||
}
|
||
function defaultClearTimeout () {
|
||
throw new Error('clearTimeout has not been defined');
|
||
}
|
||
(function () {
|
||
try {
|
||
if (typeof setTimeout === 'function') {
|
||
cachedSetTimeout = setTimeout;
|
||
} else {
|
||
cachedSetTimeout = defaultSetTimout;
|
||
}
|
||
} catch (e) {
|
||
cachedSetTimeout = defaultSetTimout;
|
||
}
|
||
try {
|
||
if (typeof clearTimeout === 'function') {
|
||
cachedClearTimeout = clearTimeout;
|
||
} else {
|
||
cachedClearTimeout = defaultClearTimeout;
|
||
}
|
||
} catch (e) {
|
||
cachedClearTimeout = defaultClearTimeout;
|
||
}
|
||
} ())
|
||
function runTimeout(fun) {
|
||
if (cachedSetTimeout === setTimeout) {
|
||
//normal enviroments in sane situations
|
||
return setTimeout(fun, 0);
|
||
}
|
||
// if setTimeout wasn't available but was latter defined
|
||
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
||
cachedSetTimeout = setTimeout;
|
||
return setTimeout(fun, 0);
|
||
}
|
||
try {
|
||
// when when somebody has screwed with setTimeout but no I.E. maddness
|
||
return cachedSetTimeout(fun, 0);
|
||
} catch(e){
|
||
try {
|
||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
||
return cachedSetTimeout.call(null, fun, 0);
|
||
} catch(e){
|
||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
||
return cachedSetTimeout.call(this, fun, 0);
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
function runClearTimeout(marker) {
|
||
if (cachedClearTimeout === clearTimeout) {
|
||
//normal enviroments in sane situations
|
||
return clearTimeout(marker);
|
||
}
|
||
// if clearTimeout wasn't available but was latter defined
|
||
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
||
cachedClearTimeout = clearTimeout;
|
||
return clearTimeout(marker);
|
||
}
|
||
try {
|
||
// when when somebody has screwed with setTimeout but no I.E. maddness
|
||
return cachedClearTimeout(marker);
|
||
} catch (e){
|
||
try {
|
||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
||
return cachedClearTimeout.call(null, marker);
|
||
} catch (e){
|
||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
||
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
||
return cachedClearTimeout.call(this, marker);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
}
|
||
var queue = [];
|
||
var draining = false;
|
||
var currentQueue;
|
||
var queueIndex = -1;
|
||
|
||
function cleanUpNextTick() {
|
||
if (!draining || !currentQueue) {
|
||
return;
|
||
}
|
||
draining = false;
|
||
if (currentQueue.length) {
|
||
queue = currentQueue.concat(queue);
|
||
} else {
|
||
queueIndex = -1;
|
||
}
|
||
if (queue.length) {
|
||
drainQueue();
|
||
}
|
||
}
|
||
|
||
function drainQueue() {
|
||
if (draining) {
|
||
return;
|
||
}
|
||
var timeout = runTimeout(cleanUpNextTick);
|
||
draining = true;
|
||
|
||
var len = queue.length;
|
||
while(len) {
|
||
currentQueue = queue;
|
||
queue = [];
|
||
while (++queueIndex < len) {
|
||
if (currentQueue) {
|
||
currentQueue[queueIndex].run();
|
||
}
|
||
}
|
||
queueIndex = -1;
|
||
len = queue.length;
|
||
}
|
||
currentQueue = null;
|
||
draining = false;
|
||
runClearTimeout(timeout);
|
||
}
|
||
|
||
process.nextTick = function (fun) {
|
||
var args = new Array(arguments.length - 1);
|
||
if (arguments.length > 1) {
|
||
for (var i = 1; i < arguments.length; i++) {
|
||
args[i - 1] = arguments[i];
|
||
}
|
||
}
|
||
queue.push(new Item(fun, args));
|
||
if (queue.length === 1 && !draining) {
|
||
runTimeout(drainQueue);
|
||
}
|
||
};
|
||
|
||
// v8 likes predictible objects
|
||
function Item(fun, array) {
|
||
this.fun = fun;
|
||
this.array = array;
|
||
}
|
||
Item.prototype.run = function () {
|
||
this.fun.apply(null, this.array);
|
||
};
|
||
process.title = 'browser';
|
||
process.browser = true;
|
||
process.env = {};
|
||
process.argv = [];
|
||
process.version = ''; // empty string to avoid regexp issues
|
||
process.versions = {};
|
||
|
||
function noop() {}
|
||
|
||
process.on = noop;
|
||
process.addListener = noop;
|
||
process.once = noop;
|
||
process.off = noop;
|
||
process.removeListener = noop;
|
||
process.removeAllListeners = noop;
|
||
process.emit = noop;
|
||
process.prependListener = noop;
|
||
process.prependOnceListener = noop;
|
||
|
||
process.listeners = function (name) { return [] }
|
||
|
||
process.binding = function (name) {
|
||
throw new Error('process.binding is not supported');
|
||
};
|
||
|
||
process.cwd = function () { return '/' };
|
||
process.chdir = function (dir) {
|
||
throw new Error('process.chdir is not supported');
|
||
};
|
||
process.umask = function() { return 0; };
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/setimmediate/setImmediate.js":
|
||
/*!***************************************************!*\
|
||
!*** ./node_modules/setimmediate/setImmediate.js ***!
|
||
\***************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
|
||
"use strict";
|
||
|
||
if (global.setImmediate) {
|
||
return;
|
||
}
|
||
|
||
var nextHandle = 1; // Spec says greater than zero
|
||
var tasksByHandle = {};
|
||
var currentlyRunningATask = false;
|
||
var doc = global.document;
|
||
var registerImmediate;
|
||
|
||
function setImmediate(callback) {
|
||
// Callback can either be a function or a string
|
||
if (typeof callback !== "function") {
|
||
callback = new Function("" + callback);
|
||
}
|
||
// Copy function arguments
|
||
var args = new Array(arguments.length - 1);
|
||
for (var i = 0; i < args.length; i++) {
|
||
args[i] = arguments[i + 1];
|
||
}
|
||
// Store and register the task
|
||
var task = { callback: callback, args: args };
|
||
tasksByHandle[nextHandle] = task;
|
||
registerImmediate(nextHandle);
|
||
return nextHandle++;
|
||
}
|
||
|
||
function clearImmediate(handle) {
|
||
delete tasksByHandle[handle];
|
||
}
|
||
|
||
function run(task) {
|
||
var callback = task.callback;
|
||
var args = task.args;
|
||
switch (args.length) {
|
||
case 0:
|
||
callback();
|
||
break;
|
||
case 1:
|
||
callback(args[0]);
|
||
break;
|
||
case 2:
|
||
callback(args[0], args[1]);
|
||
break;
|
||
case 3:
|
||
callback(args[0], args[1], args[2]);
|
||
break;
|
||
default:
|
||
callback.apply(undefined, args);
|
||
break;
|
||
}
|
||
}
|
||
|
||
function runIfPresent(handle) {
|
||
// From the spec: "Wait until any invocations of this algorithm started before this one have completed."
|
||
// So if we're currently running a task, we'll need to delay this invocation.
|
||
if (currentlyRunningATask) {
|
||
// Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
|
||
// "too much recursion" error.
|
||
setTimeout(runIfPresent, 0, handle);
|
||
} else {
|
||
var task = tasksByHandle[handle];
|
||
if (task) {
|
||
currentlyRunningATask = true;
|
||
try {
|
||
run(task);
|
||
} finally {
|
||
clearImmediate(handle);
|
||
currentlyRunningATask = false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function installNextTickImplementation() {
|
||
registerImmediate = function(handle) {
|
||
process.nextTick(function () { runIfPresent(handle); });
|
||
};
|
||
}
|
||
|
||
function canUsePostMessage() {
|
||
// The test against `importScripts` prevents this implementation from being installed inside a web worker,
|
||
// where `global.postMessage` means something completely different and can't be used for this purpose.
|
||
if (global.postMessage && !global.importScripts) {
|
||
var postMessageIsAsynchronous = true;
|
||
var oldOnMessage = global.onmessage;
|
||
global.onmessage = function() {
|
||
postMessageIsAsynchronous = false;
|
||
};
|
||
global.postMessage("", "*");
|
||
global.onmessage = oldOnMessage;
|
||
return postMessageIsAsynchronous;
|
||
}
|
||
}
|
||
|
||
function installPostMessageImplementation() {
|
||
// Installs an event handler on `global` for the `message` event: see
|
||
// * https://developer.mozilla.org/en/DOM/window.postMessage
|
||
// * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
|
||
|
||
var messagePrefix = "setImmediate$" + Math.random() + "$";
|
||
var onGlobalMessage = function(event) {
|
||
if (event.source === global &&
|
||
typeof event.data === "string" &&
|
||
event.data.indexOf(messagePrefix) === 0) {
|
||
runIfPresent(+event.data.slice(messagePrefix.length));
|
||
}
|
||
};
|
||
|
||
if (global.addEventListener) {
|
||
global.addEventListener("message", onGlobalMessage, false);
|
||
} else {
|
||
global.attachEvent("onmessage", onGlobalMessage);
|
||
}
|
||
|
||
registerImmediate = function(handle) {
|
||
global.postMessage(messagePrefix + handle, "*");
|
||
};
|
||
}
|
||
|
||
function installMessageChannelImplementation() {
|
||
var channel = new MessageChannel();
|
||
channel.port1.onmessage = function(event) {
|
||
var handle = event.data;
|
||
runIfPresent(handle);
|
||
};
|
||
|
||
registerImmediate = function(handle) {
|
||
channel.port2.postMessage(handle);
|
||
};
|
||
}
|
||
|
||
function installReadyStateChangeImplementation() {
|
||
var html = doc.documentElement;
|
||
registerImmediate = function(handle) {
|
||
// Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
|
||
// into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
|
||
var script = doc.createElement("script");
|
||
script.onreadystatechange = function () {
|
||
runIfPresent(handle);
|
||
script.onreadystatechange = null;
|
||
html.removeChild(script);
|
||
script = null;
|
||
};
|
||
html.appendChild(script);
|
||
};
|
||
}
|
||
|
||
function installSetTimeoutImplementation() {
|
||
registerImmediate = function(handle) {
|
||
setTimeout(runIfPresent, 0, handle);
|
||
};
|
||
}
|
||
|
||
// If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
|
||
var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
|
||
attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
|
||
|
||
// Don't get fooled by e.g. browserify environments.
|
||
if ({}.toString.call(global.process) === "[object process]") {
|
||
// For Node.js before 0.9
|
||
installNextTickImplementation();
|
||
|
||
} else if (canUsePostMessage()) {
|
||
// For non-IE10 modern browsers
|
||
installPostMessageImplementation();
|
||
|
||
} else if (global.MessageChannel) {
|
||
// For web workers, where supported
|
||
installMessageChannelImplementation();
|
||
|
||
} else if (doc && "onreadystatechange" in doc.createElement("script")) {
|
||
// For IE 6–8
|
||
installReadyStateChangeImplementation();
|
||
|
||
} else {
|
||
// For older browsers
|
||
installSetTimeoutImplementation();
|
||
}
|
||
|
||
attachTo.setImmediate = setImmediate;
|
||
attachTo.clearImmediate = clearImmediate;
|
||
}(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../process/browser.js */ "./node_modules/process/browser.js")))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/lib/index.js":
|
||
/*!****************************************************!*\
|
||
!*** ./node_modules/socket.io-client/lib/index.js ***!
|
||
\****************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
|
||
/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var url = __webpack_require__(/*! ./url */ "./node_modules/socket.io-client/lib/url.js");
|
||
var parser = __webpack_require__(/*! socket.io-parser */ "./node_modules/socket.io-client/node_modules/socket.io-parser/index.js");
|
||
var Manager = __webpack_require__(/*! ./manager */ "./node_modules/socket.io-client/lib/manager.js");
|
||
var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.js")('socket.io-client');
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = exports = lookup;
|
||
|
||
/**
|
||
* Managers cache.
|
||
*/
|
||
|
||
var cache = exports.managers = {};
|
||
|
||
/**
|
||
* Looks up an existing `Manager` for multiplexing.
|
||
* If the user summons:
|
||
*
|
||
* `io('http://localhost/a');`
|
||
* `io('http://localhost/b');`
|
||
*
|
||
* We reuse the existing instance based on same scheme/port/host,
|
||
* and we initialize sockets for each namespace.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
function lookup (uri, opts) {
|
||
if (typeof uri === 'object') {
|
||
opts = uri;
|
||
uri = undefined;
|
||
}
|
||
|
||
opts = opts || {};
|
||
|
||
var parsed = url(uri);
|
||
var source = parsed.source;
|
||
var id = parsed.id;
|
||
var path = parsed.path;
|
||
var sameNamespace = cache[id] && path in cache[id].nsps;
|
||
var newConnection = opts.forceNew || opts['force new connection'] ||
|
||
false === opts.multiplex || sameNamespace;
|
||
|
||
var io;
|
||
|
||
if (newConnection) {
|
||
debug('ignoring socket cache for %s', source);
|
||
io = Manager(source, opts);
|
||
} else {
|
||
if (!cache[id]) {
|
||
debug('new io instance for %s', source);
|
||
cache[id] = Manager(source, opts);
|
||
}
|
||
io = cache[id];
|
||
}
|
||
if (parsed.query && !opts.query) {
|
||
opts.query = parsed.query;
|
||
}
|
||
return io.socket(parsed.path, opts);
|
||
}
|
||
|
||
/**
|
||
* Protocol version.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.protocol = parser.protocol;
|
||
|
||
/**
|
||
* `connect`.
|
||
*
|
||
* @param {String} uri
|
||
* @api public
|
||
*/
|
||
|
||
exports.connect = lookup;
|
||
|
||
/**
|
||
* Expose constructors for standalone build.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.Manager = __webpack_require__(/*! ./manager */ "./node_modules/socket.io-client/lib/manager.js");
|
||
exports.Socket = __webpack_require__(/*! ./socket */ "./node_modules/socket.io-client/lib/socket.js");
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/lib/manager.js":
|
||
/*!******************************************************!*\
|
||
!*** ./node_modules/socket.io-client/lib/manager.js ***!
|
||
\******************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
|
||
/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var eio = __webpack_require__(/*! engine.io-client */ "./node_modules/engine.io-client/lib/index.js");
|
||
var Socket = __webpack_require__(/*! ./socket */ "./node_modules/socket.io-client/lib/socket.js");
|
||
var Emitter = __webpack_require__(/*! component-emitter */ "./node_modules/component-emitter/index.js");
|
||
var parser = __webpack_require__(/*! socket.io-parser */ "./node_modules/socket.io-client/node_modules/socket.io-parser/index.js");
|
||
var on = __webpack_require__(/*! ./on */ "./node_modules/socket.io-client/lib/on.js");
|
||
var bind = __webpack_require__(/*! component-bind */ "./node_modules/component-bind/index.js");
|
||
var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.js")('socket.io-client:manager');
|
||
var indexOf = __webpack_require__(/*! indexof */ "./node_modules/indexof/index.js");
|
||
var Backoff = __webpack_require__(/*! backo2 */ "./node_modules/backo2/index.js");
|
||
|
||
/**
|
||
* IE6+ hasOwnProperty
|
||
*/
|
||
|
||
var has = Object.prototype.hasOwnProperty;
|
||
|
||
/**
|
||
* Module exports
|
||
*/
|
||
|
||
module.exports = Manager;
|
||
|
||
/**
|
||
* `Manager` constructor.
|
||
*
|
||
* @param {String} engine instance or engine uri/opts
|
||
* @param {Object} options
|
||
* @api public
|
||
*/
|
||
|
||
function Manager (uri, opts) {
|
||
if (!(this instanceof Manager)) return new Manager(uri, opts);
|
||
if (uri && ('object' === typeof uri)) {
|
||
opts = uri;
|
||
uri = undefined;
|
||
}
|
||
opts = opts || {};
|
||
|
||
opts.path = opts.path || '/socket.io';
|
||
this.nsps = {};
|
||
this.subs = [];
|
||
this.opts = opts;
|
||
this.reconnection(opts.reconnection !== false);
|
||
this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);
|
||
this.reconnectionDelay(opts.reconnectionDelay || 1000);
|
||
this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);
|
||
this.randomizationFactor(opts.randomizationFactor || 0.5);
|
||
this.backoff = new Backoff({
|
||
min: this.reconnectionDelay(),
|
||
max: this.reconnectionDelayMax(),
|
||
jitter: this.randomizationFactor()
|
||
});
|
||
this.timeout(null == opts.timeout ? 20000 : opts.timeout);
|
||
this.readyState = 'closed';
|
||
this.uri = uri;
|
||
this.connecting = [];
|
||
this.lastPing = null;
|
||
this.encoding = false;
|
||
this.packetBuffer = [];
|
||
var _parser = opts.parser || parser;
|
||
this.encoder = new _parser.Encoder();
|
||
this.decoder = new _parser.Decoder();
|
||
this.autoConnect = opts.autoConnect !== false;
|
||
if (this.autoConnect) this.open();
|
||
}
|
||
|
||
/**
|
||
* Propagate given event to sockets and emit on `this`
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.emitAll = function () {
|
||
this.emit.apply(this, arguments);
|
||
for (var nsp in this.nsps) {
|
||
if (has.call(this.nsps, nsp)) {
|
||
this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);
|
||
}
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Update `socket.id` of all sockets
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.updateSocketIds = function () {
|
||
for (var nsp in this.nsps) {
|
||
if (has.call(this.nsps, nsp)) {
|
||
this.nsps[nsp].id = this.generateId(nsp);
|
||
}
|
||
}
|
||
};
|
||
|
||
/**
|
||
* generate `socket.id` for the given `nsp`
|
||
*
|
||
* @param {String} nsp
|
||
* @return {String}
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.generateId = function (nsp) {
|
||
return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;
|
||
};
|
||
|
||
/**
|
||
* Mix in `Emitter`.
|
||
*/
|
||
|
||
Emitter(Manager.prototype);
|
||
|
||
/**
|
||
* Sets the `reconnection` config.
|
||
*
|
||
* @param {Boolean} true/false if it should automatically reconnect
|
||
* @return {Manager} self or value
|
||
* @api public
|
||
*/
|
||
|
||
Manager.prototype.reconnection = function (v) {
|
||
if (!arguments.length) return this._reconnection;
|
||
this._reconnection = !!v;
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sets the reconnection attempts config.
|
||
*
|
||
* @param {Number} max reconnection attempts before giving up
|
||
* @return {Manager} self or value
|
||
* @api public
|
||
*/
|
||
|
||
Manager.prototype.reconnectionAttempts = function (v) {
|
||
if (!arguments.length) return this._reconnectionAttempts;
|
||
this._reconnectionAttempts = v;
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sets the delay between reconnections.
|
||
*
|
||
* @param {Number} delay
|
||
* @return {Manager} self or value
|
||
* @api public
|
||
*/
|
||
|
||
Manager.prototype.reconnectionDelay = function (v) {
|
||
if (!arguments.length) return this._reconnectionDelay;
|
||
this._reconnectionDelay = v;
|
||
this.backoff && this.backoff.setMin(v);
|
||
return this;
|
||
};
|
||
|
||
Manager.prototype.randomizationFactor = function (v) {
|
||
if (!arguments.length) return this._randomizationFactor;
|
||
this._randomizationFactor = v;
|
||
this.backoff && this.backoff.setJitter(v);
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sets the maximum delay between reconnections.
|
||
*
|
||
* @param {Number} delay
|
||
* @return {Manager} self or value
|
||
* @api public
|
||
*/
|
||
|
||
Manager.prototype.reconnectionDelayMax = function (v) {
|
||
if (!arguments.length) return this._reconnectionDelayMax;
|
||
this._reconnectionDelayMax = v;
|
||
this.backoff && this.backoff.setMax(v);
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sets the connection timeout. `false` to disable
|
||
*
|
||
* @return {Manager} self or value
|
||
* @api public
|
||
*/
|
||
|
||
Manager.prototype.timeout = function (v) {
|
||
if (!arguments.length) return this._timeout;
|
||
this._timeout = v;
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Starts trying to reconnect if reconnection is enabled and we have not
|
||
* started reconnecting yet
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.maybeReconnectOnOpen = function () {
|
||
// Only try to reconnect if it's the first time we're connecting
|
||
if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {
|
||
// keeps reconnection from firing twice for the same reconnection loop
|
||
this.reconnect();
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Sets the current transport `socket`.
|
||
*
|
||
* @param {Function} optional, callback
|
||
* @return {Manager} self
|
||
* @api public
|
||
*/
|
||
|
||
Manager.prototype.open =
|
||
Manager.prototype.connect = function (fn, opts) {
|
||
debug('readyState %s', this.readyState);
|
||
if (~this.readyState.indexOf('open')) return this;
|
||
|
||
debug('opening %s', this.uri);
|
||
this.engine = eio(this.uri, this.opts);
|
||
var socket = this.engine;
|
||
var self = this;
|
||
this.readyState = 'opening';
|
||
this.skipReconnect = false;
|
||
|
||
// emit `open`
|
||
var openSub = on(socket, 'open', function () {
|
||
self.onopen();
|
||
fn && fn();
|
||
});
|
||
|
||
// emit `connect_error`
|
||
var errorSub = on(socket, 'error', function (data) {
|
||
debug('connect_error');
|
||
self.cleanup();
|
||
self.readyState = 'closed';
|
||
self.emitAll('connect_error', data);
|
||
if (fn) {
|
||
var err = new Error('Connection error');
|
||
err.data = data;
|
||
fn(err);
|
||
} else {
|
||
// Only do this if there is no fn to handle the error
|
||
self.maybeReconnectOnOpen();
|
||
}
|
||
});
|
||
|
||
// emit `connect_timeout`
|
||
if (false !== this._timeout) {
|
||
var timeout = this._timeout;
|
||
debug('connect attempt will timeout after %d', timeout);
|
||
|
||
// set timer
|
||
var timer = setTimeout(function () {
|
||
debug('connect attempt timed out after %d', timeout);
|
||
openSub.destroy();
|
||
socket.close();
|
||
socket.emit('error', 'timeout');
|
||
self.emitAll('connect_timeout', timeout);
|
||
}, timeout);
|
||
|
||
this.subs.push({
|
||
destroy: function () {
|
||
clearTimeout(timer);
|
||
}
|
||
});
|
||
}
|
||
|
||
this.subs.push(openSub);
|
||
this.subs.push(errorSub);
|
||
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Called upon transport open.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.onopen = function () {
|
||
debug('open');
|
||
|
||
// clear old subs
|
||
this.cleanup();
|
||
|
||
// mark as open
|
||
this.readyState = 'open';
|
||
this.emit('open');
|
||
|
||
// add new subs
|
||
var socket = this.engine;
|
||
this.subs.push(on(socket, 'data', bind(this, 'ondata')));
|
||
this.subs.push(on(socket, 'ping', bind(this, 'onping')));
|
||
this.subs.push(on(socket, 'pong', bind(this, 'onpong')));
|
||
this.subs.push(on(socket, 'error', bind(this, 'onerror')));
|
||
this.subs.push(on(socket, 'close', bind(this, 'onclose')));
|
||
this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));
|
||
};
|
||
|
||
/**
|
||
* Called upon a ping.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.onping = function () {
|
||
this.lastPing = new Date();
|
||
this.emitAll('ping');
|
||
};
|
||
|
||
/**
|
||
* Called upon a packet.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.onpong = function () {
|
||
this.emitAll('pong', new Date() - this.lastPing);
|
||
};
|
||
|
||
/**
|
||
* Called with data.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.ondata = function (data) {
|
||
this.decoder.add(data);
|
||
};
|
||
|
||
/**
|
||
* Called when parser fully decodes a packet.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.ondecoded = function (packet) {
|
||
this.emit('packet', packet);
|
||
};
|
||
|
||
/**
|
||
* Called upon socket error.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.onerror = function (err) {
|
||
debug('error', err);
|
||
this.emitAll('error', err);
|
||
};
|
||
|
||
/**
|
||
* Creates a new socket for the given `nsp`.
|
||
*
|
||
* @return {Socket}
|
||
* @api public
|
||
*/
|
||
|
||
Manager.prototype.socket = function (nsp, opts) {
|
||
var socket = this.nsps[nsp];
|
||
if (!socket) {
|
||
socket = new Socket(this, nsp, opts);
|
||
this.nsps[nsp] = socket;
|
||
var self = this;
|
||
socket.on('connecting', onConnecting);
|
||
socket.on('connect', function () {
|
||
socket.id = self.generateId(nsp);
|
||
});
|
||
|
||
if (this.autoConnect) {
|
||
// manually call here since connecting event is fired before listening
|
||
onConnecting();
|
||
}
|
||
}
|
||
|
||
function onConnecting () {
|
||
if (!~indexOf(self.connecting, socket)) {
|
||
self.connecting.push(socket);
|
||
}
|
||
}
|
||
|
||
return socket;
|
||
};
|
||
|
||
/**
|
||
* Called upon a socket close.
|
||
*
|
||
* @param {Socket} socket
|
||
*/
|
||
|
||
Manager.prototype.destroy = function (socket) {
|
||
var index = indexOf(this.connecting, socket);
|
||
if (~index) this.connecting.splice(index, 1);
|
||
if (this.connecting.length) return;
|
||
|
||
this.close();
|
||
};
|
||
|
||
/**
|
||
* Writes a packet.
|
||
*
|
||
* @param {Object} packet
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.packet = function (packet) {
|
||
debug('writing packet %j', packet);
|
||
var self = this;
|
||
if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;
|
||
|
||
if (!self.encoding) {
|
||
// encode, then write to engine with result
|
||
self.encoding = true;
|
||
this.encoder.encode(packet, function (encodedPackets) {
|
||
for (var i = 0; i < encodedPackets.length; i++) {
|
||
self.engine.write(encodedPackets[i], packet.options);
|
||
}
|
||
self.encoding = false;
|
||
self.processPacketQueue();
|
||
});
|
||
} else { // add packet to the queue
|
||
self.packetBuffer.push(packet);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* If packet buffer is non-empty, begins encoding the
|
||
* next packet in line.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.processPacketQueue = function () {
|
||
if (this.packetBuffer.length > 0 && !this.encoding) {
|
||
var pack = this.packetBuffer.shift();
|
||
this.packet(pack);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Clean up transport subscriptions and packet buffer.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.cleanup = function () {
|
||
debug('cleanup');
|
||
|
||
var subsLength = this.subs.length;
|
||
for (var i = 0; i < subsLength; i++) {
|
||
var sub = this.subs.shift();
|
||
sub.destroy();
|
||
}
|
||
|
||
this.packetBuffer = [];
|
||
this.encoding = false;
|
||
this.lastPing = null;
|
||
|
||
this.decoder.destroy();
|
||
};
|
||
|
||
/**
|
||
* Close the current socket.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.close =
|
||
Manager.prototype.disconnect = function () {
|
||
debug('disconnect');
|
||
this.skipReconnect = true;
|
||
this.reconnecting = false;
|
||
if ('opening' === this.readyState) {
|
||
// `onclose` will not fire because
|
||
// an open event never happened
|
||
this.cleanup();
|
||
}
|
||
this.backoff.reset();
|
||
this.readyState = 'closed';
|
||
if (this.engine) this.engine.close();
|
||
};
|
||
|
||
/**
|
||
* Called upon engine close.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.onclose = function (reason) {
|
||
debug('onclose');
|
||
|
||
this.cleanup();
|
||
this.backoff.reset();
|
||
this.readyState = 'closed';
|
||
this.emit('close', reason);
|
||
|
||
if (this._reconnection && !this.skipReconnect) {
|
||
this.reconnect();
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Attempt a reconnection.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.reconnect = function () {
|
||
if (this.reconnecting || this.skipReconnect) return this;
|
||
|
||
var self = this;
|
||
|
||
if (this.backoff.attempts >= this._reconnectionAttempts) {
|
||
debug('reconnect failed');
|
||
this.backoff.reset();
|
||
this.emitAll('reconnect_failed');
|
||
this.reconnecting = false;
|
||
} else {
|
||
var delay = this.backoff.duration();
|
||
debug('will wait %dms before reconnect attempt', delay);
|
||
|
||
this.reconnecting = true;
|
||
var timer = setTimeout(function () {
|
||
if (self.skipReconnect) return;
|
||
|
||
debug('attempting reconnect');
|
||
self.emitAll('reconnect_attempt', self.backoff.attempts);
|
||
self.emitAll('reconnecting', self.backoff.attempts);
|
||
|
||
// check again for the case socket closed in above events
|
||
if (self.skipReconnect) return;
|
||
|
||
self.open(function (err) {
|
||
if (err) {
|
||
debug('reconnect attempt error');
|
||
self.reconnecting = false;
|
||
self.reconnect();
|
||
self.emitAll('reconnect_error', err.data);
|
||
} else {
|
||
debug('reconnect success');
|
||
self.onreconnect();
|
||
}
|
||
});
|
||
}, delay);
|
||
|
||
this.subs.push({
|
||
destroy: function () {
|
||
clearTimeout(timer);
|
||
}
|
||
});
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Called upon successful reconnect.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Manager.prototype.onreconnect = function () {
|
||
var attempt = this.backoff.attempts;
|
||
this.reconnecting = false;
|
||
this.backoff.reset();
|
||
this.updateSocketIds();
|
||
this.emitAll('reconnect', attempt);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/lib/on.js":
|
||
/*!*************************************************!*\
|
||
!*** ./node_modules/socket.io-client/lib/on.js ***!
|
||
\*************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = on;
|
||
|
||
/**
|
||
* Helper for subscriptions.
|
||
*
|
||
* @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`
|
||
* @param {String} event name
|
||
* @param {Function} callback
|
||
* @api public
|
||
*/
|
||
|
||
function on (obj, ev, fn) {
|
||
obj.on(ev, fn);
|
||
return {
|
||
destroy: function () {
|
||
obj.removeListener(ev, fn);
|
||
}
|
||
};
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/lib/socket.js":
|
||
/*!*****************************************************!*\
|
||
!*** ./node_modules/socket.io-client/lib/socket.js ***!
|
||
\*****************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
|
||
/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var parser = __webpack_require__(/*! socket.io-parser */ "./node_modules/socket.io-client/node_modules/socket.io-parser/index.js");
|
||
var Emitter = __webpack_require__(/*! component-emitter */ "./node_modules/component-emitter/index.js");
|
||
var toArray = __webpack_require__(/*! to-array */ "./node_modules/to-array/index.js");
|
||
var on = __webpack_require__(/*! ./on */ "./node_modules/socket.io-client/lib/on.js");
|
||
var bind = __webpack_require__(/*! component-bind */ "./node_modules/component-bind/index.js");
|
||
var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.js")('socket.io-client:socket');
|
||
var parseqs = __webpack_require__(/*! parseqs */ "./node_modules/parseqs/index.js");
|
||
var hasBin = __webpack_require__(/*! has-binary2 */ "./node_modules/has-binary2/index.js");
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = exports = Socket;
|
||
|
||
/**
|
||
* Internal events (blacklisted).
|
||
* These events can't be emitted by the user.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
var events = {
|
||
connect: 1,
|
||
connect_error: 1,
|
||
connect_timeout: 1,
|
||
connecting: 1,
|
||
disconnect: 1,
|
||
error: 1,
|
||
reconnect: 1,
|
||
reconnect_attempt: 1,
|
||
reconnect_failed: 1,
|
||
reconnect_error: 1,
|
||
reconnecting: 1,
|
||
ping: 1,
|
||
pong: 1
|
||
};
|
||
|
||
/**
|
||
* Shortcut to `Emitter#emit`.
|
||
*/
|
||
|
||
var emit = Emitter.prototype.emit;
|
||
|
||
/**
|
||
* `Socket` constructor.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
function Socket (io, nsp, opts) {
|
||
this.io = io;
|
||
this.nsp = nsp;
|
||
this.json = this; // compat
|
||
this.ids = 0;
|
||
this.acks = {};
|
||
this.receiveBuffer = [];
|
||
this.sendBuffer = [];
|
||
this.connected = false;
|
||
this.disconnected = true;
|
||
this.flags = {};
|
||
if (opts && opts.query) {
|
||
this.query = opts.query;
|
||
}
|
||
if (this.io.autoConnect) this.open();
|
||
}
|
||
|
||
/**
|
||
* Mix in `Emitter`.
|
||
*/
|
||
|
||
Emitter(Socket.prototype);
|
||
|
||
/**
|
||
* Subscribe to open, close and packet events
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.subEvents = function () {
|
||
if (this.subs) return;
|
||
|
||
var io = this.io;
|
||
this.subs = [
|
||
on(io, 'open', bind(this, 'onopen')),
|
||
on(io, 'packet', bind(this, 'onpacket')),
|
||
on(io, 'close', bind(this, 'onclose'))
|
||
];
|
||
};
|
||
|
||
/**
|
||
* "Opens" the socket.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Socket.prototype.open =
|
||
Socket.prototype.connect = function () {
|
||
if (this.connected) return this;
|
||
|
||
this.subEvents();
|
||
this.io.open(); // ensure open
|
||
if ('open' === this.io.readyState) this.onopen();
|
||
this.emit('connecting');
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sends a `message` event.
|
||
*
|
||
* @return {Socket} self
|
||
* @api public
|
||
*/
|
||
|
||
Socket.prototype.send = function () {
|
||
var args = toArray(arguments);
|
||
args.unshift('message');
|
||
this.emit.apply(this, args);
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Override `emit`.
|
||
* If the event is in `events`, it's emitted normally.
|
||
*
|
||
* @param {String} event name
|
||
* @return {Socket} self
|
||
* @api public
|
||
*/
|
||
|
||
Socket.prototype.emit = function (ev) {
|
||
if (events.hasOwnProperty(ev)) {
|
||
emit.apply(this, arguments);
|
||
return this;
|
||
}
|
||
|
||
var args = toArray(arguments);
|
||
var packet = {
|
||
type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,
|
||
data: args
|
||
};
|
||
|
||
packet.options = {};
|
||
packet.options.compress = !this.flags || false !== this.flags.compress;
|
||
|
||
// event ack callback
|
||
if ('function' === typeof args[args.length - 1]) {
|
||
debug('emitting packet with ack id %d', this.ids);
|
||
this.acks[this.ids] = args.pop();
|
||
packet.id = this.ids++;
|
||
}
|
||
|
||
if (this.connected) {
|
||
this.packet(packet);
|
||
} else {
|
||
this.sendBuffer.push(packet);
|
||
}
|
||
|
||
this.flags = {};
|
||
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sends a packet.
|
||
*
|
||
* @param {Object} packet
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.packet = function (packet) {
|
||
packet.nsp = this.nsp;
|
||
this.io.packet(packet);
|
||
};
|
||
|
||
/**
|
||
* Called upon engine `open`.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onopen = function () {
|
||
debug('transport is open - connecting');
|
||
|
||
// write connect packet if necessary
|
||
if ('/' !== this.nsp) {
|
||
if (this.query) {
|
||
var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;
|
||
debug('sending connect packet with query %s', query);
|
||
this.packet({type: parser.CONNECT, query: query});
|
||
} else {
|
||
this.packet({type: parser.CONNECT});
|
||
}
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Called upon engine `close`.
|
||
*
|
||
* @param {String} reason
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onclose = function (reason) {
|
||
debug('close (%s)', reason);
|
||
this.connected = false;
|
||
this.disconnected = true;
|
||
delete this.id;
|
||
this.emit('disconnect', reason);
|
||
};
|
||
|
||
/**
|
||
* Called with socket packet.
|
||
*
|
||
* @param {Object} packet
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onpacket = function (packet) {
|
||
var sameNamespace = packet.nsp === this.nsp;
|
||
var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';
|
||
|
||
if (!sameNamespace && !rootNamespaceError) return;
|
||
|
||
switch (packet.type) {
|
||
case parser.CONNECT:
|
||
this.onconnect();
|
||
break;
|
||
|
||
case parser.EVENT:
|
||
this.onevent(packet);
|
||
break;
|
||
|
||
case parser.BINARY_EVENT:
|
||
this.onevent(packet);
|
||
break;
|
||
|
||
case parser.ACK:
|
||
this.onack(packet);
|
||
break;
|
||
|
||
case parser.BINARY_ACK:
|
||
this.onack(packet);
|
||
break;
|
||
|
||
case parser.DISCONNECT:
|
||
this.ondisconnect();
|
||
break;
|
||
|
||
case parser.ERROR:
|
||
this.emit('error', packet.data);
|
||
break;
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Called upon a server event.
|
||
*
|
||
* @param {Object} packet
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onevent = function (packet) {
|
||
var args = packet.data || [];
|
||
debug('emitting event %j', args);
|
||
|
||
if (null != packet.id) {
|
||
debug('attaching ack callback to event');
|
||
args.push(this.ack(packet.id));
|
||
}
|
||
|
||
if (this.connected) {
|
||
emit.apply(this, args);
|
||
} else {
|
||
this.receiveBuffer.push(args);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Produces an ack callback to emit with an event.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.ack = function (id) {
|
||
var self = this;
|
||
var sent = false;
|
||
return function () {
|
||
// prevent double callbacks
|
||
if (sent) return;
|
||
sent = true;
|
||
var args = toArray(arguments);
|
||
debug('sending ack %j', args);
|
||
|
||
self.packet({
|
||
type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,
|
||
id: id,
|
||
data: args
|
||
});
|
||
};
|
||
};
|
||
|
||
/**
|
||
* Called upon a server acknowlegement.
|
||
*
|
||
* @param {Object} packet
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onack = function (packet) {
|
||
var ack = this.acks[packet.id];
|
||
if ('function' === typeof ack) {
|
||
debug('calling ack %s with %j', packet.id, packet.data);
|
||
ack.apply(this, packet.data);
|
||
delete this.acks[packet.id];
|
||
} else {
|
||
debug('bad ack %s', packet.id);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Called upon server connect.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.onconnect = function () {
|
||
this.connected = true;
|
||
this.disconnected = false;
|
||
this.emit('connect');
|
||
this.emitBuffered();
|
||
};
|
||
|
||
/**
|
||
* Emit buffered events (received and emitted).
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.emitBuffered = function () {
|
||
var i;
|
||
for (i = 0; i < this.receiveBuffer.length; i++) {
|
||
emit.apply(this, this.receiveBuffer[i]);
|
||
}
|
||
this.receiveBuffer = [];
|
||
|
||
for (i = 0; i < this.sendBuffer.length; i++) {
|
||
this.packet(this.sendBuffer[i]);
|
||
}
|
||
this.sendBuffer = [];
|
||
};
|
||
|
||
/**
|
||
* Called upon server disconnect.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
Socket.prototype.ondisconnect = function () {
|
||
debug('server disconnect (%s)', this.nsp);
|
||
this.destroy();
|
||
this.onclose('io server disconnect');
|
||
};
|
||
|
||
/**
|
||
* Called upon forced client/server side disconnections,
|
||
* this method ensures the manager stops tracking us and
|
||
* that reconnections don't get triggered for this.
|
||
*
|
||
* @api private.
|
||
*/
|
||
|
||
Socket.prototype.destroy = function () {
|
||
if (this.subs) {
|
||
// clean subscriptions to avoid reconnections
|
||
for (var i = 0; i < this.subs.length; i++) {
|
||
this.subs[i].destroy();
|
||
}
|
||
this.subs = null;
|
||
}
|
||
|
||
this.io.destroy(this);
|
||
};
|
||
|
||
/**
|
||
* Disconnects the socket manually.
|
||
*
|
||
* @return {Socket} self
|
||
* @api public
|
||
*/
|
||
|
||
Socket.prototype.close =
|
||
Socket.prototype.disconnect = function () {
|
||
if (this.connected) {
|
||
debug('performing disconnect (%s)', this.nsp);
|
||
this.packet({ type: parser.DISCONNECT });
|
||
}
|
||
|
||
// remove socket from pool
|
||
this.destroy();
|
||
|
||
if (this.connected) {
|
||
// fire events
|
||
this.onclose('io client disconnect');
|
||
}
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sets the compress flag.
|
||
*
|
||
* @param {Boolean} if `true`, compresses the sending data
|
||
* @return {Socket} self
|
||
* @api public
|
||
*/
|
||
|
||
Socket.prototype.compress = function (compress) {
|
||
this.flags.compress = compress;
|
||
return this;
|
||
};
|
||
|
||
/**
|
||
* Sets the binary flag
|
||
*
|
||
* @param {Boolean} whether the emitted data contains binary
|
||
* @return {Socket} self
|
||
* @api public
|
||
*/
|
||
|
||
Socket.prototype.binary = function (binary) {
|
||
this.flags.binary = binary;
|
||
return this;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/lib/url.js":
|
||
/*!**************************************************!*\
|
||
!*** ./node_modules/socket.io-client/lib/url.js ***!
|
||
\**************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
|
||
/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var parseuri = __webpack_require__(/*! parseuri */ "./node_modules/parseuri/index.js");
|
||
var debug = __webpack_require__(/*! debug */ "./node_modules/debug/src/browser.js")('socket.io-client:url');
|
||
|
||
/**
|
||
* Module exports.
|
||
*/
|
||
|
||
module.exports = url;
|
||
|
||
/**
|
||
* URL parser.
|
||
*
|
||
* @param {String} url
|
||
* @param {Object} An object meant to mimic window.location.
|
||
* Defaults to window.location.
|
||
* @api public
|
||
*/
|
||
|
||
function url (uri, loc) {
|
||
var obj = uri;
|
||
|
||
// default to window.location
|
||
loc = loc || (typeof location !== 'undefined' && location);
|
||
if (null == uri) uri = loc.protocol + '//' + loc.host;
|
||
|
||
// relative path support
|
||
if ('string' === typeof uri) {
|
||
if ('/' === uri.charAt(0)) {
|
||
if ('/' === uri.charAt(1)) {
|
||
uri = loc.protocol + uri;
|
||
} else {
|
||
uri = loc.host + uri;
|
||
}
|
||
}
|
||
|
||
if (!/^(https?|wss?):\/\//.test(uri)) {
|
||
debug('protocol-less url %s', uri);
|
||
if ('undefined' !== typeof loc) {
|
||
uri = loc.protocol + '//' + uri;
|
||
} else {
|
||
uri = 'https://' + uri;
|
||
}
|
||
}
|
||
|
||
// parse
|
||
debug('parse %s', uri);
|
||
obj = parseuri(uri);
|
||
}
|
||
|
||
// make sure we treat `localhost:80` and `localhost` equally
|
||
if (!obj.port) {
|
||
if (/^(http|ws)$/.test(obj.protocol)) {
|
||
obj.port = '80';
|
||
} else if (/^(http|ws)s$/.test(obj.protocol)) {
|
||
obj.port = '443';
|
||
}
|
||
}
|
||
|
||
obj.path = obj.path || '/';
|
||
|
||
var ipv6 = obj.host.indexOf(':') !== -1;
|
||
var host = ipv6 ? '[' + obj.host + ']' : obj.host;
|
||
|
||
// define unique id
|
||
obj.id = obj.protocol + '://' + host + ':' + obj.port;
|
||
// define href
|
||
obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));
|
||
|
||
return obj;
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/node_modules/socket.io-parser/binary.js":
|
||
/*!*******************************************************************************!*\
|
||
!*** ./node_modules/socket.io-client/node_modules/socket.io-parser/binary.js ***!
|
||
\*******************************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/*global Blob,File*/
|
||
|
||
/**
|
||
* Module requirements
|
||
*/
|
||
|
||
var isArray = __webpack_require__(/*! isarray */ "./node_modules/isarray/index.js");
|
||
var isBuf = __webpack_require__(/*! ./is-buffer */ "./node_modules/socket.io-client/node_modules/socket.io-parser/is-buffer.js");
|
||
var toString = Object.prototype.toString;
|
||
var withNativeBlob = typeof Blob === 'function' || (typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]');
|
||
var withNativeFile = typeof File === 'function' || (typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]');
|
||
|
||
/**
|
||
* Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.
|
||
* Anything with blobs or files should be fed through removeBlobs before coming
|
||
* here.
|
||
*
|
||
* @param {Object} packet - socket.io event packet
|
||
* @return {Object} with deconstructed packet and list of buffers
|
||
* @api public
|
||
*/
|
||
|
||
exports.deconstructPacket = function(packet) {
|
||
var buffers = [];
|
||
var packetData = packet.data;
|
||
var pack = packet;
|
||
pack.data = _deconstructPacket(packetData, buffers);
|
||
pack.attachments = buffers.length; // number of binary 'attachments'
|
||
return {packet: pack, buffers: buffers};
|
||
};
|
||
|
||
function _deconstructPacket(data, buffers) {
|
||
if (!data) return data;
|
||
|
||
if (isBuf(data)) {
|
||
var placeholder = { _placeholder: true, num: buffers.length };
|
||
buffers.push(data);
|
||
return placeholder;
|
||
} else if (isArray(data)) {
|
||
var newData = new Array(data.length);
|
||
for (var i = 0; i < data.length; i++) {
|
||
newData[i] = _deconstructPacket(data[i], buffers);
|
||
}
|
||
return newData;
|
||
} else if (typeof data === 'object' && !(data instanceof Date)) {
|
||
var newData = {};
|
||
for (var key in data) {
|
||
newData[key] = _deconstructPacket(data[key], buffers);
|
||
}
|
||
return newData;
|
||
}
|
||
return data;
|
||
}
|
||
|
||
/**
|
||
* Reconstructs a binary packet from its placeholder packet and buffers
|
||
*
|
||
* @param {Object} packet - event packet with placeholders
|
||
* @param {Array} buffers - binary buffers to put in placeholder positions
|
||
* @return {Object} reconstructed packet
|
||
* @api public
|
||
*/
|
||
|
||
exports.reconstructPacket = function(packet, buffers) {
|
||
packet.data = _reconstructPacket(packet.data, buffers);
|
||
packet.attachments = undefined; // no longer useful
|
||
return packet;
|
||
};
|
||
|
||
function _reconstructPacket(data, buffers) {
|
||
if (!data) return data;
|
||
|
||
if (data && data._placeholder) {
|
||
return buffers[data.num]; // appropriate buffer (should be natural order anyway)
|
||
} else if (isArray(data)) {
|
||
for (var i = 0; i < data.length; i++) {
|
||
data[i] = _reconstructPacket(data[i], buffers);
|
||
}
|
||
} else if (typeof data === 'object') {
|
||
for (var key in data) {
|
||
data[key] = _reconstructPacket(data[key], buffers);
|
||
}
|
||
}
|
||
|
||
return data;
|
||
}
|
||
|
||
/**
|
||
* Asynchronously removes Blobs or Files from data via
|
||
* FileReader's readAsArrayBuffer method. Used before encoding
|
||
* data as msgpack. Calls callback with the blobless data.
|
||
*
|
||
* @param {Object} data
|
||
* @param {Function} callback
|
||
* @api private
|
||
*/
|
||
|
||
exports.removeBlobs = function(data, callback) {
|
||
function _removeBlobs(obj, curKey, containingObject) {
|
||
if (!obj) return obj;
|
||
|
||
// convert any blob
|
||
if ((withNativeBlob && obj instanceof Blob) ||
|
||
(withNativeFile && obj instanceof File)) {
|
||
pendingBlobs++;
|
||
|
||
// async filereader
|
||
var fileReader = new FileReader();
|
||
fileReader.onload = function() { // this.result == arraybuffer
|
||
if (containingObject) {
|
||
containingObject[curKey] = this.result;
|
||
}
|
||
else {
|
||
bloblessData = this.result;
|
||
}
|
||
|
||
// if nothing pending its callback time
|
||
if(! --pendingBlobs) {
|
||
callback(bloblessData);
|
||
}
|
||
};
|
||
|
||
fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer
|
||
} else if (isArray(obj)) { // handle array
|
||
for (var i = 0; i < obj.length; i++) {
|
||
_removeBlobs(obj[i], i, obj);
|
||
}
|
||
} else if (typeof obj === 'object' && !isBuf(obj)) { // and object
|
||
for (var key in obj) {
|
||
_removeBlobs(obj[key], key, obj);
|
||
}
|
||
}
|
||
}
|
||
|
||
var pendingBlobs = 0;
|
||
var bloblessData = data;
|
||
_removeBlobs(bloblessData);
|
||
if (!pendingBlobs) {
|
||
callback(bloblessData);
|
||
}
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/node_modules/socket.io-parser/index.js":
|
||
/*!******************************************************************************!*\
|
||
!*** ./node_modules/socket.io-client/node_modules/socket.io-parser/index.js ***!
|
||
\******************************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
|
||
/**
|
||
* Module dependencies.
|
||
*/
|
||
|
||
var debug = __webpack_require__(/*! debug */ "./node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/src/browser.js")('socket.io-parser');
|
||
var Emitter = __webpack_require__(/*! component-emitter */ "./node_modules/component-emitter/index.js");
|
||
var binary = __webpack_require__(/*! ./binary */ "./node_modules/socket.io-client/node_modules/socket.io-parser/binary.js");
|
||
var isArray = __webpack_require__(/*! isarray */ "./node_modules/isarray/index.js");
|
||
var isBuf = __webpack_require__(/*! ./is-buffer */ "./node_modules/socket.io-client/node_modules/socket.io-parser/is-buffer.js");
|
||
|
||
/**
|
||
* Protocol version.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.protocol = 4;
|
||
|
||
/**
|
||
* Packet types.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.types = [
|
||
'CONNECT',
|
||
'DISCONNECT',
|
||
'EVENT',
|
||
'ACK',
|
||
'ERROR',
|
||
'BINARY_EVENT',
|
||
'BINARY_ACK'
|
||
];
|
||
|
||
/**
|
||
* Packet type `connect`.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.CONNECT = 0;
|
||
|
||
/**
|
||
* Packet type `disconnect`.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.DISCONNECT = 1;
|
||
|
||
/**
|
||
* Packet type `event`.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.EVENT = 2;
|
||
|
||
/**
|
||
* Packet type `ack`.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.ACK = 3;
|
||
|
||
/**
|
||
* Packet type `error`.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.ERROR = 4;
|
||
|
||
/**
|
||
* Packet type 'binary event'
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.BINARY_EVENT = 5;
|
||
|
||
/**
|
||
* Packet type `binary ack`. For acks with binary arguments.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.BINARY_ACK = 6;
|
||
|
||
/**
|
||
* Encoder constructor.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.Encoder = Encoder;
|
||
|
||
/**
|
||
* Decoder constructor.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
exports.Decoder = Decoder;
|
||
|
||
/**
|
||
* A socket.io Encoder instance
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
function Encoder() {}
|
||
|
||
var ERROR_PACKET = exports.ERROR + '"encode error"';
|
||
|
||
/**
|
||
* Encode a packet as a single string if non-binary, or as a
|
||
* buffer sequence, depending on packet type.
|
||
*
|
||
* @param {Object} obj - packet object
|
||
* @param {Function} callback - function to handle encodings (likely engine.write)
|
||
* @return Calls callback with Array of encodings
|
||
* @api public
|
||
*/
|
||
|
||
Encoder.prototype.encode = function(obj, callback){
|
||
debug('encoding packet %j', obj);
|
||
|
||
if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {
|
||
encodeAsBinary(obj, callback);
|
||
} else {
|
||
var encoding = encodeAsString(obj);
|
||
callback([encoding]);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Encode packet as string.
|
||
*
|
||
* @param {Object} packet
|
||
* @return {String} encoded
|
||
* @api private
|
||
*/
|
||
|
||
function encodeAsString(obj) {
|
||
|
||
// first is type
|
||
var str = '' + obj.type;
|
||
|
||
// attachments if we have them
|
||
if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {
|
||
str += obj.attachments + '-';
|
||
}
|
||
|
||
// if we have a namespace other than `/`
|
||
// we append it followed by a comma `,`
|
||
if (obj.nsp && '/' !== obj.nsp) {
|
||
str += obj.nsp + ',';
|
||
}
|
||
|
||
// immediately followed by the id
|
||
if (null != obj.id) {
|
||
str += obj.id;
|
||
}
|
||
|
||
// json data
|
||
if (null != obj.data) {
|
||
var payload = tryStringify(obj.data);
|
||
if (payload !== false) {
|
||
str += payload;
|
||
} else {
|
||
return ERROR_PACKET;
|
||
}
|
||
}
|
||
|
||
debug('encoded %j as %s', obj, str);
|
||
return str;
|
||
}
|
||
|
||
function tryStringify(str) {
|
||
try {
|
||
return JSON.stringify(str);
|
||
} catch(e){
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Encode packet as 'buffer sequence' by removing blobs, and
|
||
* deconstructing packet into object with placeholders and
|
||
* a list of buffers.
|
||
*
|
||
* @param {Object} packet
|
||
* @return {Buffer} encoded
|
||
* @api private
|
||
*/
|
||
|
||
function encodeAsBinary(obj, callback) {
|
||
|
||
function writeEncoding(bloblessData) {
|
||
var deconstruction = binary.deconstructPacket(bloblessData);
|
||
var pack = encodeAsString(deconstruction.packet);
|
||
var buffers = deconstruction.buffers;
|
||
|
||
buffers.unshift(pack); // add packet info to beginning of data list
|
||
callback(buffers); // write all the buffers
|
||
}
|
||
|
||
binary.removeBlobs(obj, writeEncoding);
|
||
}
|
||
|
||
/**
|
||
* A socket.io Decoder instance
|
||
*
|
||
* @return {Object} decoder
|
||
* @api public
|
||
*/
|
||
|
||
function Decoder() {
|
||
this.reconstructor = null;
|
||
}
|
||
|
||
/**
|
||
* Mix in `Emitter` with Decoder.
|
||
*/
|
||
|
||
Emitter(Decoder.prototype);
|
||
|
||
/**
|
||
* Decodes an encoded packet string into packet JSON.
|
||
*
|
||
* @param {String} obj - encoded packet
|
||
* @return {Object} packet
|
||
* @api public
|
||
*/
|
||
|
||
Decoder.prototype.add = function(obj) {
|
||
var packet;
|
||
if (typeof obj === 'string') {
|
||
packet = decodeString(obj);
|
||
if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json
|
||
this.reconstructor = new BinaryReconstructor(packet);
|
||
|
||
// no attachments, labeled binary but no binary data to follow
|
||
if (this.reconstructor.reconPack.attachments === 0) {
|
||
this.emit('decoded', packet);
|
||
}
|
||
} else { // non-binary full packet
|
||
this.emit('decoded', packet);
|
||
}
|
||
} else if (isBuf(obj) || obj.base64) { // raw binary data
|
||
if (!this.reconstructor) {
|
||
throw new Error('got binary data when not reconstructing a packet');
|
||
} else {
|
||
packet = this.reconstructor.takeBinaryData(obj);
|
||
if (packet) { // received final buffer
|
||
this.reconstructor = null;
|
||
this.emit('decoded', packet);
|
||
}
|
||
}
|
||
} else {
|
||
throw new Error('Unknown type: ' + obj);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Decode a packet String (JSON data)
|
||
*
|
||
* @param {String} str
|
||
* @return {Object} packet
|
||
* @api private
|
||
*/
|
||
|
||
function decodeString(str) {
|
||
var i = 0;
|
||
// look up type
|
||
var p = {
|
||
type: Number(str.charAt(0))
|
||
};
|
||
|
||
if (null == exports.types[p.type]) {
|
||
return error('unknown packet type ' + p.type);
|
||
}
|
||
|
||
// look up attachments if type binary
|
||
if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {
|
||
var buf = '';
|
||
while (str.charAt(++i) !== '-') {
|
||
buf += str.charAt(i);
|
||
if (i == str.length) break;
|
||
}
|
||
if (buf != Number(buf) || str.charAt(i) !== '-') {
|
||
throw new Error('Illegal attachments');
|
||
}
|
||
p.attachments = Number(buf);
|
||
}
|
||
|
||
// look up namespace (if any)
|
||
if ('/' === str.charAt(i + 1)) {
|
||
p.nsp = '';
|
||
while (++i) {
|
||
var c = str.charAt(i);
|
||
if (',' === c) break;
|
||
p.nsp += c;
|
||
if (i === str.length) break;
|
||
}
|
||
} else {
|
||
p.nsp = '/';
|
||
}
|
||
|
||
// look up id
|
||
var next = str.charAt(i + 1);
|
||
if ('' !== next && Number(next) == next) {
|
||
p.id = '';
|
||
while (++i) {
|
||
var c = str.charAt(i);
|
||
if (null == c || Number(c) != c) {
|
||
--i;
|
||
break;
|
||
}
|
||
p.id += str.charAt(i);
|
||
if (i === str.length) break;
|
||
}
|
||
p.id = Number(p.id);
|
||
}
|
||
|
||
// look up json data
|
||
if (str.charAt(++i)) {
|
||
var payload = tryParse(str.substr(i));
|
||
var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));
|
||
if (isPayloadValid) {
|
||
p.data = payload;
|
||
} else {
|
||
return error('invalid payload');
|
||
}
|
||
}
|
||
|
||
debug('decoded %s as %j', str, p);
|
||
return p;
|
||
}
|
||
|
||
function tryParse(str) {
|
||
try {
|
||
return JSON.parse(str);
|
||
} catch(e){
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Deallocates a parser's resources
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
Decoder.prototype.destroy = function() {
|
||
if (this.reconstructor) {
|
||
this.reconstructor.finishedReconstruction();
|
||
}
|
||
};
|
||
|
||
/**
|
||
* A manager of a binary event's 'buffer sequence'. Should
|
||
* be constructed whenever a packet of type BINARY_EVENT is
|
||
* decoded.
|
||
*
|
||
* @param {Object} packet
|
||
* @return {BinaryReconstructor} initialized reconstructor
|
||
* @api private
|
||
*/
|
||
|
||
function BinaryReconstructor(packet) {
|
||
this.reconPack = packet;
|
||
this.buffers = [];
|
||
}
|
||
|
||
/**
|
||
* Method to be called when binary data received from connection
|
||
* after a BINARY_EVENT packet.
|
||
*
|
||
* @param {Buffer | ArrayBuffer} binData - the raw binary data received
|
||
* @return {null | Object} returns null if more binary data is expected or
|
||
* a reconstructed packet object if all buffers have been received.
|
||
* @api private
|
||
*/
|
||
|
||
BinaryReconstructor.prototype.takeBinaryData = function(binData) {
|
||
this.buffers.push(binData);
|
||
if (this.buffers.length === this.reconPack.attachments) { // done with buffer list
|
||
var packet = binary.reconstructPacket(this.reconPack, this.buffers);
|
||
this.finishedReconstruction();
|
||
return packet;
|
||
}
|
||
return null;
|
||
};
|
||
|
||
/**
|
||
* Cleans up binary packet reconstruction variables.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
BinaryReconstructor.prototype.finishedReconstruction = function() {
|
||
this.reconPack = null;
|
||
this.buffers = [];
|
||
};
|
||
|
||
function error(msg) {
|
||
return {
|
||
type: exports.ERROR,
|
||
data: 'parser error: ' + msg
|
||
};
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/node_modules/socket.io-parser/is-buffer.js":
|
||
/*!**********************************************************************************!*\
|
||
!*** ./node_modules/socket.io-client/node_modules/socket.io-parser/is-buffer.js ***!
|
||
\**********************************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(Buffer) {
|
||
module.exports = isBuf;
|
||
|
||
var withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function';
|
||
var withNativeArrayBuffer = typeof ArrayBuffer === 'function';
|
||
|
||
var isView = function (obj) {
|
||
return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer);
|
||
};
|
||
|
||
/**
|
||
* Returns true if obj is a buffer or an arraybuffer.
|
||
*
|
||
* @api private
|
||
*/
|
||
|
||
function isBuf(obj) {
|
||
return (withNativeBuffer && Buffer.isBuffer(obj)) ||
|
||
(withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj)));
|
||
}
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../buffer/index.js */ "./node_modules/buffer/index.js").Buffer))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/src/browser.js":
|
||
/*!*******************************************************************************************************!*\
|
||
!*** ./node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/src/browser.js ***!
|
||
\*******************************************************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(process) {/**
|
||
* This is the web browser implementation of `debug()`.
|
||
*
|
||
* Expose `debug()` as the module.
|
||
*/
|
||
|
||
exports = module.exports = __webpack_require__(/*! ./debug */ "./node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/src/debug.js");
|
||
exports.log = log;
|
||
exports.formatArgs = formatArgs;
|
||
exports.save = save;
|
||
exports.load = load;
|
||
exports.useColors = useColors;
|
||
exports.storage = 'undefined' != typeof chrome
|
||
&& 'undefined' != typeof chrome.storage
|
||
? chrome.storage.local
|
||
: localstorage();
|
||
|
||
/**
|
||
* Colors.
|
||
*/
|
||
|
||
exports.colors = [
|
||
'#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',
|
||
'#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',
|
||
'#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',
|
||
'#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',
|
||
'#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',
|
||
'#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',
|
||
'#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',
|
||
'#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',
|
||
'#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',
|
||
'#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',
|
||
'#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'
|
||
];
|
||
|
||
/**
|
||
* Currently only WebKit-based Web Inspectors, Firefox >= v31,
|
||
* and the Firebug extension (any Firefox version) are known
|
||
* to support "%c" CSS customizations.
|
||
*
|
||
* TODO: add a `localStorage` variable to explicitly enable/disable colors
|
||
*/
|
||
|
||
function useColors() {
|
||
// NB: In an Electron preload script, document will be defined but not fully
|
||
// initialized. Since we know we're in Chrome, we'll just detect this case
|
||
// explicitly
|
||
if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
|
||
return true;
|
||
}
|
||
|
||
// Internet Explorer and Edge do not support colors.
|
||
if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
|
||
return false;
|
||
}
|
||
|
||
// is webkit? http://stackoverflow.com/a/16459606/376773
|
||
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
|
||
return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
|
||
// is firebug? http://stackoverflow.com/a/398120/376773
|
||
(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
|
||
// is firefox >= v31?
|
||
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
|
||
(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
|
||
// double check webkit in userAgent just in case we are in a worker
|
||
(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
|
||
}
|
||
|
||
/**
|
||
* Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
|
||
*/
|
||
|
||
exports.formatters.j = function(v) {
|
||
try {
|
||
return JSON.stringify(v);
|
||
} catch (err) {
|
||
return '[UnexpectedJSONParseError]: ' + err.message;
|
||
}
|
||
};
|
||
|
||
|
||
/**
|
||
* Colorize log arguments if enabled.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
function formatArgs(args) {
|
||
var useColors = this.useColors;
|
||
|
||
args[0] = (useColors ? '%c' : '')
|
||
+ this.namespace
|
||
+ (useColors ? ' %c' : ' ')
|
||
+ args[0]
|
||
+ (useColors ? '%c ' : ' ')
|
||
+ '+' + exports.humanize(this.diff);
|
||
|
||
if (!useColors) return;
|
||
|
||
var c = 'color: ' + this.color;
|
||
args.splice(1, 0, c, 'color: inherit')
|
||
|
||
// the final "%c" is somewhat tricky, because there could be other
|
||
// arguments passed either before or after the %c, so we need to
|
||
// figure out the correct index to insert the CSS into
|
||
var index = 0;
|
||
var lastC = 0;
|
||
args[0].replace(/%[a-zA-Z%]/g, function(match) {
|
||
if ('%%' === match) return;
|
||
index++;
|
||
if ('%c' === match) {
|
||
// we only are interested in the *last* %c
|
||
// (the user may have provided their own)
|
||
lastC = index;
|
||
}
|
||
});
|
||
|
||
args.splice(lastC, 0, c);
|
||
}
|
||
|
||
/**
|
||
* Invokes `console.log()` when available.
|
||
* No-op when `console.log` is not a "function".
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
function log() {
|
||
// this hackery is required for IE8/9, where
|
||
// the `console.log` function doesn't have 'apply'
|
||
return 'object' === typeof console
|
||
&& console.log
|
||
&& Function.prototype.apply.call(console.log, console, arguments);
|
||
}
|
||
|
||
/**
|
||
* Save `namespaces`.
|
||
*
|
||
* @param {String} namespaces
|
||
* @api private
|
||
*/
|
||
|
||
function save(namespaces) {
|
||
try {
|
||
if (null == namespaces) {
|
||
exports.storage.removeItem('debug');
|
||
} else {
|
||
exports.storage.debug = namespaces;
|
||
}
|
||
} catch(e) {}
|
||
}
|
||
|
||
/**
|
||
* Load `namespaces`.
|
||
*
|
||
* @return {String} returns the previously persisted debug modes
|
||
* @api private
|
||
*/
|
||
|
||
function load() {
|
||
var r;
|
||
try {
|
||
r = exports.storage.debug;
|
||
} catch(e) {}
|
||
|
||
// If debug isn't set in LS, and we're in Electron, try to load $DEBUG
|
||
if (!r && typeof process !== 'undefined' && 'env' in process) {
|
||
r = process.env.DEBUG;
|
||
}
|
||
|
||
return r;
|
||
}
|
||
|
||
/**
|
||
* Enable namespaces listed in `localStorage.debug` initially.
|
||
*/
|
||
|
||
exports.enable(load());
|
||
|
||
/**
|
||
* Localstorage attempts to return the localstorage.
|
||
*
|
||
* This is necessary because safari throws
|
||
* when a user disables cookies/localstorage
|
||
* and you attempt to access it.
|
||
*
|
||
* @return {LocalStorage}
|
||
* @api private
|
||
*/
|
||
|
||
function localstorage() {
|
||
try {
|
||
return window.localStorage;
|
||
} catch (e) {}
|
||
}
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../process/browser.js */ "./node_modules/process/browser.js")))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/src/debug.js":
|
||
/*!*****************************************************************************************************!*\
|
||
!*** ./node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug/src/debug.js ***!
|
||
\*****************************************************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
|
||
/**
|
||
* This is the common logic for both the Node.js and web browser
|
||
* implementations of `debug()`.
|
||
*
|
||
* Expose `debug()` as the module.
|
||
*/
|
||
|
||
exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
|
||
exports.coerce = coerce;
|
||
exports.disable = disable;
|
||
exports.enable = enable;
|
||
exports.enabled = enabled;
|
||
exports.humanize = __webpack_require__(/*! ms */ "./node_modules/ms/index.js");
|
||
|
||
/**
|
||
* Active `debug` instances.
|
||
*/
|
||
exports.instances = [];
|
||
|
||
/**
|
||
* The currently active debug mode names, and names to skip.
|
||
*/
|
||
|
||
exports.names = [];
|
||
exports.skips = [];
|
||
|
||
/**
|
||
* Map of special "%n" handling functions, for the debug "format" argument.
|
||
*
|
||
* Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
|
||
*/
|
||
|
||
exports.formatters = {};
|
||
|
||
/**
|
||
* Select a color.
|
||
* @param {String} namespace
|
||
* @return {Number}
|
||
* @api private
|
||
*/
|
||
|
||
function selectColor(namespace) {
|
||
var hash = 0, i;
|
||
|
||
for (i in namespace) {
|
||
hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
|
||
hash |= 0; // Convert to 32bit integer
|
||
}
|
||
|
||
return exports.colors[Math.abs(hash) % exports.colors.length];
|
||
}
|
||
|
||
/**
|
||
* Create a debugger with the given `namespace`.
|
||
*
|
||
* @param {String} namespace
|
||
* @return {Function}
|
||
* @api public
|
||
*/
|
||
|
||
function createDebug(namespace) {
|
||
|
||
var prevTime;
|
||
|
||
function debug() {
|
||
// disabled?
|
||
if (!debug.enabled) return;
|
||
|
||
var self = debug;
|
||
|
||
// set `diff` timestamp
|
||
var curr = +new Date();
|
||
var ms = curr - (prevTime || curr);
|
||
self.diff = ms;
|
||
self.prev = prevTime;
|
||
self.curr = curr;
|
||
prevTime = curr;
|
||
|
||
// turn the `arguments` into a proper Array
|
||
var args = new Array(arguments.length);
|
||
for (var i = 0; i < args.length; i++) {
|
||
args[i] = arguments[i];
|
||
}
|
||
|
||
args[0] = exports.coerce(args[0]);
|
||
|
||
if ('string' !== typeof args[0]) {
|
||
// anything else let's inspect with %O
|
||
args.unshift('%O');
|
||
}
|
||
|
||
// apply any `formatters` transformations
|
||
var index = 0;
|
||
args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
|
||
// if we encounter an escaped % then don't increase the array index
|
||
if (match === '%%') return match;
|
||
index++;
|
||
var formatter = exports.formatters[format];
|
||
if ('function' === typeof formatter) {
|
||
var val = args[index];
|
||
match = formatter.call(self, val);
|
||
|
||
// now we need to remove `args[index]` since it's inlined in the `format`
|
||
args.splice(index, 1);
|
||
index--;
|
||
}
|
||
return match;
|
||
});
|
||
|
||
// apply env-specific formatting (colors, etc.)
|
||
exports.formatArgs.call(self, args);
|
||
|
||
var logFn = debug.log || exports.log || console.log.bind(console);
|
||
logFn.apply(self, args);
|
||
}
|
||
|
||
debug.namespace = namespace;
|
||
debug.enabled = exports.enabled(namespace);
|
||
debug.useColors = exports.useColors();
|
||
debug.color = selectColor(namespace);
|
||
debug.destroy = destroy;
|
||
|
||
// env-specific initialization logic for debug instances
|
||
if ('function' === typeof exports.init) {
|
||
exports.init(debug);
|
||
}
|
||
|
||
exports.instances.push(debug);
|
||
|
||
return debug;
|
||
}
|
||
|
||
function destroy () {
|
||
var index = exports.instances.indexOf(this);
|
||
if (index !== -1) {
|
||
exports.instances.splice(index, 1);
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Enables a debug mode by namespaces. This can include modes
|
||
* separated by a colon and wildcards.
|
||
*
|
||
* @param {String} namespaces
|
||
* @api public
|
||
*/
|
||
|
||
function enable(namespaces) {
|
||
exports.save(namespaces);
|
||
|
||
exports.names = [];
|
||
exports.skips = [];
|
||
|
||
var i;
|
||
var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
|
||
var len = split.length;
|
||
|
||
for (i = 0; i < len; i++) {
|
||
if (!split[i]) continue; // ignore empty strings
|
||
namespaces = split[i].replace(/\*/g, '.*?');
|
||
if (namespaces[0] === '-') {
|
||
exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
|
||
} else {
|
||
exports.names.push(new RegExp('^' + namespaces + '$'));
|
||
}
|
||
}
|
||
|
||
for (i = 0; i < exports.instances.length; i++) {
|
||
var instance = exports.instances[i];
|
||
instance.enabled = exports.enabled(instance.namespace);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Disable debug output.
|
||
*
|
||
* @api public
|
||
*/
|
||
|
||
function disable() {
|
||
exports.enable('');
|
||
}
|
||
|
||
/**
|
||
* Returns true if the given mode name is enabled, false otherwise.
|
||
*
|
||
* @param {String} name
|
||
* @return {Boolean}
|
||
* @api public
|
||
*/
|
||
|
||
function enabled(name) {
|
||
if (name[name.length - 1] === '*') {
|
||
return true;
|
||
}
|
||
var i, len;
|
||
for (i = 0, len = exports.skips.length; i < len; i++) {
|
||
if (exports.skips[i].test(name)) {
|
||
return false;
|
||
}
|
||
}
|
||
for (i = 0, len = exports.names.length; i < len; i++) {
|
||
if (exports.names[i].test(name)) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* Coerce `val`.
|
||
*
|
||
* @param {Mixed} val
|
||
* @return {Mixed}
|
||
* @api private
|
||
*/
|
||
|
||
function coerce(val) {
|
||
if (val instanceof Error) return val.stack || val.message;
|
||
return val;
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/timers-browserify/main.js":
|
||
/*!************************************************!*\
|
||
!*** ./node_modules/timers-browserify/main.js ***!
|
||
\************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
|
||
(typeof self !== "undefined" && self) ||
|
||
window;
|
||
var apply = Function.prototype.apply;
|
||
|
||
// DOM APIs, for completeness
|
||
|
||
exports.setTimeout = function() {
|
||
return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);
|
||
};
|
||
exports.setInterval = function() {
|
||
return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);
|
||
};
|
||
exports.clearTimeout =
|
||
exports.clearInterval = function(timeout) {
|
||
if (timeout) {
|
||
timeout.close();
|
||
}
|
||
};
|
||
|
||
function Timeout(id, clearFn) {
|
||
this._id = id;
|
||
this._clearFn = clearFn;
|
||
}
|
||
Timeout.prototype.unref = Timeout.prototype.ref = function() {};
|
||
Timeout.prototype.close = function() {
|
||
this._clearFn.call(scope, this._id);
|
||
};
|
||
|
||
// Does not start the time, just sets up the members needed.
|
||
exports.enroll = function(item, msecs) {
|
||
clearTimeout(item._idleTimeoutId);
|
||
item._idleTimeout = msecs;
|
||
};
|
||
|
||
exports.unenroll = function(item) {
|
||
clearTimeout(item._idleTimeoutId);
|
||
item._idleTimeout = -1;
|
||
};
|
||
|
||
exports._unrefActive = exports.active = function(item) {
|
||
clearTimeout(item._idleTimeoutId);
|
||
|
||
var msecs = item._idleTimeout;
|
||
if (msecs >= 0) {
|
||
item._idleTimeoutId = setTimeout(function onTimeout() {
|
||
if (item._onTimeout)
|
||
item._onTimeout();
|
||
}, msecs);
|
||
}
|
||
};
|
||
|
||
// setimmediate attaches itself to the global object
|
||
__webpack_require__(/*! setimmediate */ "./node_modules/setimmediate/setImmediate.js");
|
||
// On some exotic environments, it's not clear which object `setimmediate` was
|
||
// able to install onto. Search each possibility in the same order as the
|
||
// `setimmediate` library.
|
||
exports.setImmediate = (typeof self !== "undefined" && self.setImmediate) ||
|
||
(typeof global !== "undefined" && global.setImmediate) ||
|
||
(this && this.setImmediate);
|
||
exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
|
||
(typeof global !== "undefined" && global.clearImmediate) ||
|
||
(this && this.clearImmediate);
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/to-array/index.js":
|
||
/*!****************************************!*\
|
||
!*** ./node_modules/to-array/index.js ***!
|
||
\****************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = toArray
|
||
|
||
function toArray(list, index) {
|
||
var array = []
|
||
|
||
index = index || 0
|
||
|
||
for (var i = index || 0; i < list.length; i++) {
|
||
array[i - index] = list[i]
|
||
}
|
||
|
||
return array
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/webpack/buildin/global.js":
|
||
/*!***********************************!*\
|
||
!*** (webpack)/buildin/global.js ***!
|
||
\***********************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
var g;
|
||
|
||
// This works in non-strict mode
|
||
g = (function() {
|
||
return this;
|
||
})();
|
||
|
||
try {
|
||
// This works if eval is allowed (see CSP)
|
||
g = g || new Function("return this")();
|
||
} catch (e) {
|
||
// This works if the window reference is available
|
||
if (typeof window === "object") g = window;
|
||
}
|
||
|
||
// g can still be undefined, but nothing to do about it...
|
||
// We return undefined, instead of nothing here, so it's
|
||
// easier to handle this case. if(!global) { ...}
|
||
|
||
module.exports = g;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/xterm-addon-fit/lib/xterm-addon-fit.js":
|
||
/*!*************************************************************!*\
|
||
!*** ./node_modules/xterm-addon-fit/lib/xterm-addon-fit.js ***!
|
||
\*************************************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
!function(e,t){ true?module.exports=t():undefined}(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){}return e.prototype.activate=function(e){this._terminal=e},e.prototype.dispose=function(){},e.prototype.fit=function(){var e=this.proposeDimensions();if(e&&this._terminal){var t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}},e.prototype.proposeDimensions=function(){if(this._terminal&&this._terminal.element.parentElement){var e=this._terminal._core,t=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(t.getPropertyValue("height")),n=Math.max(0,parseInt(t.getPropertyValue("width"))),o=window.getComputedStyle(this._terminal.element),i=r-(parseInt(o.getPropertyValue("padding-top"))+parseInt(o.getPropertyValue("padding-bottom"))),l=n-(parseInt(o.getPropertyValue("padding-right"))+parseInt(o.getPropertyValue("padding-left")))-e.viewport.scrollBarWidth;return{cols:Math.floor(l/e._renderService.dimensions.actualCellWidth),rows:Math.floor(i/e._renderService.dimensions.actualCellHeight)}}},e}();t.FitAddon=n}])});
|
||
//# sourceMappingURL=xterm-addon-fit.js.map
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/xterm/css/xterm.css":
|
||
/*!******************************************!*\
|
||
!*** ./node_modules/xterm/css/xterm.css ***!
|
||
\******************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
// removed by extract-text-webpack-plugin
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/xterm/lib/xterm.js":
|
||
/*!*****************************************!*\
|
||
!*** ./node_modules/xterm/lib/xterm.js ***!
|
||
\*****************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
!function(e,t){if(true)module.exports=t();else { var r, i; }}(window,function(){return function(e){var t={};function i(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,i),n.l=!0,n.exports}return i.m=e,i.c=t,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=32)}([function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(13);t.IBufferService=r.createDecorator("BufferService"),t.ICoreMouseService=r.createDecorator("CoreMouseService"),t.ICoreService=r.createDecorator("CoreService"),t.IDirtyRowService=r.createDecorator("DirtyRowService"),t.IInstantiationService=r.createDecorator("InstantiationService"),t.ILogService=r.createDecorator("LogService"),t.IOptionsService=r.createDecorator("OptionsService")},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this._listeners=[]}return Object.defineProperty(e.prototype,"event",{get:function(){var e=this;return this._event||(this._event=function(t){return e._listeners.push(t),{dispose:function(){for(var i=0;i<e._listeners.length;i++)if(e._listeners[i]===t)return void e._listeners.splice(i,1)}}}),this._event},enumerable:!0,configurable:!0}),e.prototype.fire=function(e){for(var t=[],i=0;i<this._listeners.length;i++)t.push(this._listeners[i]);for(i=0;i<t.length;i++)t[i].call(void 0,e)},e}();t.EventEmitter=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this._disposables=[],this._isDisposed=!1}return e.prototype.dispose=function(){this._isDisposed=!0,this._disposables.forEach(function(e){return e.dispose()}),this._disposables.length=0},e.prototype.register=function(e){this._disposables.push(e)},e.prototype.unregister=function(e){var t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)},e}();t.Disposable=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_COLOR=256,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR="",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=" ",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(8),o=i(3),a=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.content=0,t.fg=0,t.bg=0,t.combinedData="",t}return n(t,e),t.fromCharData=function(e){var i=new t;return i.setFromCharData(e),i},t.prototype.isCombined=function(){return 2097152&this.content},t.prototype.getWidth=function(){return this.content>>22},t.prototype.getChars=function(){return 2097152&this.content?this.combinedData:2097151&this.content?s.stringFromCodePoint(2097151&this.content):""},t.prototype.getCode=function(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content},t.prototype.setFromCharData=function(e){this.fg=e[o.CHAR_DATA_ATTR_INDEX],this.bg=0;var t=!1;if(e[o.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[o.CHAR_DATA_CHAR_INDEX].length){var i=e[o.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){var r=e[o.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=r&&r<=57343?this.content=1024*(i-55296)+r-56320+65536|e[o.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[o.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[o.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[o.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[o.CHAR_DATA_WIDTH_INDEX]<<22)},t.prototype.getAsCharData=function(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]},t}(i(6).AttributeData);t.CellData=a},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(13);t.ICharSizeService=r.createDecorator("CharSizeService"),t.IMouseService=r.createDecorator("MouseService"),t.IRenderService=r.createDecorator("RenderService"),t.ISelectionService=r.createDecorator("SelectionService"),t.ISoundService=r.createDecorator("SoundService")},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.fg=0,this.bg=0}return e.toColorRGB=function(e){return[e>>>16&255,e>>>8&255,255&e]},e.fromColorRGB=function(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]},e.prototype.clone=function(){var t=new e;return t.fg=this.fg,t.bg=this.bg,t},e.prototype.isInverse=function(){return 67108864&this.fg},e.prototype.isBold=function(){return 134217728&this.fg},e.prototype.isUnderline=function(){return 268435456&this.fg},e.prototype.isBlink=function(){return 536870912&this.fg},e.prototype.isInvisible=function(){return 1073741824&this.fg},e.prototype.isItalic=function(){return 67108864&this.bg},e.prototype.isDim=function(){return 134217728&this.bg},e.prototype.getFgColorMode=function(){return 50331648&this.fg},e.prototype.getBgColorMode=function(){return 50331648&this.bg},e.prototype.isFgRGB=function(){return 50331648==(50331648&this.fg)},e.prototype.isBgRGB=function(){return 50331648==(50331648&this.bg)},e.prototype.isFgPalette=function(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)},e.prototype.isBgPalette=function(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)},e.prototype.isFgDefault=function(){return 0==(50331648&this.fg)},e.prototype.isBgDefault=function(){return 0==(50331648&this.bg)},e.prototype.getFgColor=function(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}},e.prototype.getBgColor=function(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}},e}();t.AttributeData=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.addDisposableDomListener=function(e,t,i,r){return e.addEventListener(t,i,r),{dispose:function(){i&&e.removeEventListener(t,i,r)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t,i){void 0===t&&(t=0),void 0===i&&(i=e.length);for(var r="",n=t;n<i;++n){var s=e[n];s>65535?(s-=65536,r+=String.fromCharCode(55296+(s>>10))+String.fromCharCode(s%1024+56320)):r+=String.fromCharCode(s)}return r};var r=function(){function e(){this._interim=0}return e.prototype.clear=function(){this._interim=0},e.prototype.decode=function(e,t){var i=e.length;if(!i)return 0;var r=0,n=0;this._interim&&(56320<=(a=e.charCodeAt(n++))&&a<=57343?t[r++]=1024*(this._interim-55296)+a-56320+65536:(t[r++]=this._interim,t[r++]=a),this._interim=0);for(var s=n;s<i;++s){var o=e.charCodeAt(s);if(55296<=o&&o<=56319){if(++s>=i)return this._interim=o,r;var a;56320<=(a=e.charCodeAt(s))&&a<=57343?t[r++]=1024*(o-55296)+a-56320+65536:(t[r++]=o,t[r++]=a)}else t[r++]=o}return r},e}();t.StringToUtf32=r;var n=function(){function e(){this.interim=new Uint8Array(3)}return e.prototype.clear=function(){this.interim.fill(0)},e.prototype.decode=function(e,t){var i=e.length;if(!i)return 0;var r,n,s,o,a=0,c=0,l=0;if(this.interim[0]){var h=!1,u=this.interim[0];u&=192==(224&u)?31:224==(240&u)?15:7;for(var f=0,_=void 0;(_=63&this.interim[++f])&&f<4;)u<<=6,u|=_;for(var d=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,p=d-f;l<p;){if(l>=i)return 0;if(128!=(192&(_=e[l++]))){l--,h=!0;break}this.interim[f++]=_,u<<=6,u|=63&_}h||(2===d?u<128?l--:t[a++]=u:3===d?u<2048||u>=55296&&u<=57343||(t[a++]=u):c<65536||c>1114111||(t[a++]=u)),this.interim.fill(0)}for(var v=i-4,g=l;g<i;){for(;!(!(g<v)||128&(r=e[g])||128&(n=e[g+1])||128&(s=e[g+2])||128&(o=e[g+3]));)t[a++]=r,t[a++]=n,t[a++]=s,t[a++]=o,g+=4;if((r=e[g++])<128)t[a++]=r;else if(192==(224&r)){if(g>=i)return this.interim[0]=r,a;if(128!=(192&(n=e[g++]))){g--;continue}if((c=(31&r)<<6|63&n)<128){g--;continue}t[a++]=c}else if(224==(240&r)){if(g>=i)return this.interim[0]=r,a;if(128!=(192&(n=e[g++]))){g--;continue}if(g>=i)return this.interim[0]=r,this.interim[1]=n,a;if(128!=(192&(s=e[g++]))){g--;continue}if((c=(15&r)<<12|(63&n)<<6|63&s)<2048||c>=55296&&c<=57343)continue;t[a++]=c}else if(240==(248&r)){if(g>=i)return this.interim[0]=r,a;if(128!=(192&(n=e[g++]))){g--;continue}if(g>=i)return this.interim[0]=r,this.interim[1]=n,a;if(128!=(192&(s=e[g++]))){g--;continue}if(g>=i)return this.interim[0]=r,this.interim[1]=n,this.interim[2]=s,a;if(128!=(192&(o=e[g++]))){g--;continue}if((c=(7&r)<<18|(63&n)<<12|(63&s)<<6|63&o)<65536||c>1114111)continue;t[a++]=c}}return a},e}();t.Utf8ToUtf32=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.CHAR_ATLAS_CELL_SPACING=1},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="undefined"==typeof navigator,n=r?"node":navigator.userAgent,s=r?"node":navigator.platform;function o(e,t){return e.indexOf(t)>=0}t.isFirefox=!!~n.indexOf("Firefox"),t.isSafari=/^((?!chrome|android).)*safari/i.test(n),t.isMac=o(["Macintosh","MacIntel","MacPPC","Mac68K"],s),t.isIpad="iPad"===s,t.isIphone="iPhone"===s,t.isWindows=o(["Windows","Win16","Win32","WinCE"],s),t.isLinux=s.indexOf("Linux")>=0},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e.NUL="\0",e.SOH="",e.STX="",e.ETX="",e.EOT="",e.ENQ="",e.ACK="",e.BEL="",e.BS="\b",e.HT="\t",e.LF="\n",e.VT="\v",e.FF="\f",e.CR="\r",e.SO="",e.SI="",e.DLE="",e.DC1="",e.DC2="",e.DC3="",e.DC4="",e.NAK="",e.SYN="",e.ETB="",e.CAN="",e.EM="",e.SUB="",e.ESC="",e.FS="",e.GS="",e.RS="",e.US="",e.SP=" ",e.DEL=""}(t.C0||(t.C0={})),function(e){e.PAD="",e.HOP="",e.BPH="",e.NBH="",e.IND="",e.NEL="
",e.SSA="",e.ESA="",e.HTS="",e.HTJ="",e.VTS="",e.PLD="",e.PLU="",e.RI="",e.SS2="",e.SS3="",e.DCS="",e.PU1="",e.PU2="",e.STS="",e.CCH="",e.MW="",e.SPA="",e.EPA="",e.SOS="",e.SGCI="",e.SCI="",e.CSI="",e.ST="",e.OSC="",e.PM="",e.APC=""}(t.C1||(t.C1={}))},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(3),n=i(9),s=i(23),o=i(6),a=i(26),c=function(){function e(e,t,i,r,n,s,o,a){this._container=e,this._alpha=r,this._colors=n,this._rendererId=s,this._bufferService=o,this._optionsService=a,this._scaledCharWidth=0,this._scaledCharHeight=0,this._scaledCellWidth=0,this._scaledCellHeight=0,this._scaledCharLeft=0,this._scaledCharTop=0,this._currentGlyphIdentifier={chars:"",code:0,bg:0,fg:0,bold:!1,dim:!1,italic:!1},this._canvas=document.createElement("canvas"),this._canvas.classList.add("xterm-"+t+"-layer"),this._canvas.style.zIndex=i.toString(),this._initCanvas(),this._container.appendChild(this._canvas)}return e.prototype.dispose=function(){this._container.removeChild(this._canvas),this._charAtlas&&this._charAtlas.dispose()},e.prototype._initCanvas=function(){this._ctx=a.throwIfFalsy(this._canvas.getContext("2d",{alpha:this._alpha})),this._alpha||this._clearAll()},e.prototype.onOptionsChanged=function(){},e.prototype.onBlur=function(){},e.prototype.onFocus=function(){},e.prototype.onCursorMove=function(){},e.prototype.onGridChanged=function(e,t){},e.prototype.onSelectionChanged=function(e,t,i){void 0===i&&(i=!1)},e.prototype.setColors=function(e){this._refreshCharAtlas(e)},e.prototype._setTransparency=function(e){if(e!==this._alpha){var t=this._canvas;this._alpha=e,this._canvas=this._canvas.cloneNode(),this._initCanvas(),this._container.replaceChild(this._canvas,t),this._refreshCharAtlas(this._colors),this.onGridChanged(0,this._bufferService.rows-1)}},e.prototype._refreshCharAtlas=function(e){this._scaledCharWidth<=0&&this._scaledCharHeight<=0||(this._charAtlas=s.acquireCharAtlas(this._optionsService.options,this._rendererId,e,this._scaledCharWidth,this._scaledCharHeight),this._charAtlas.warmUp())},e.prototype.resize=function(e){this._scaledCellWidth=e.scaledCellWidth,this._scaledCellHeight=e.scaledCellHeight,this._scaledCharWidth=e.scaledCharWidth,this._scaledCharHeight=e.scaledCharHeight,this._scaledCharLeft=e.scaledCharLeft,this._scaledCharTop=e.scaledCharTop,this._canvas.width=e.scaledCanvasWidth,this._canvas.height=e.scaledCanvasHeight,this._canvas.style.width=e.canvasWidth+"px",this._canvas.style.height=e.canvasHeight+"px",this._alpha||this._clearAll(),this._refreshCharAtlas(this._colors)},e.prototype._fillCells=function(e,t,i,r){this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,i*this._scaledCellWidth,r*this._scaledCellHeight)},e.prototype._fillBottomLineAtCells=function(e,t,i){void 0===i&&(i=1),this._ctx.fillRect(e*this._scaledCellWidth,(t+1)*this._scaledCellHeight-window.devicePixelRatio-1,i*this._scaledCellWidth,window.devicePixelRatio)},e.prototype._fillLeftLineAtCell=function(e,t){this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,window.devicePixelRatio,this._scaledCellHeight)},e.prototype._strokeRectAtCell=function(e,t,i,r){this._ctx.lineWidth=window.devicePixelRatio,this._ctx.strokeRect(e*this._scaledCellWidth+window.devicePixelRatio/2,t*this._scaledCellHeight+window.devicePixelRatio/2,i*this._scaledCellWidth-window.devicePixelRatio,r*this._scaledCellHeight-window.devicePixelRatio)},e.prototype._clearAll=function(){this._alpha?this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height):(this._ctx.fillStyle=this._colors.background.css,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height))},e.prototype._clearCells=function(e,t,i,r){this._alpha?this._ctx.clearRect(e*this._scaledCellWidth,t*this._scaledCellHeight,i*this._scaledCellWidth,r*this._scaledCellHeight):(this._ctx.fillStyle=this._colors.background.css,this._ctx.fillRect(e*this._scaledCellWidth,t*this._scaledCellHeight,i*this._scaledCellWidth,r*this._scaledCellHeight))},e.prototype._fillCharTrueColor=function(e,t,i){this._ctx.font=this._getFont(!1,!1),this._ctx.textBaseline="middle",this._clipRow(i),this._ctx.fillText(e.getChars(),t*this._scaledCellWidth+this._scaledCharLeft,i*this._scaledCellHeight+this._scaledCharTop+this._scaledCharHeight/2)},e.prototype._drawChars=function(e,t,i){var s,o;e.isFgRGB()||e.isBgRGB()?this._drawUncachedChars(e,t,i):(e.isInverse()?(s=e.isBgDefault()?n.INVERTED_DEFAULT_COLOR:e.getBgColor(),o=e.isFgDefault()?n.INVERTED_DEFAULT_COLOR:e.getFgColor()):(o=e.isBgDefault()?r.DEFAULT_COLOR:e.getBgColor(),s=e.isFgDefault()?r.DEFAULT_COLOR:e.getFgColor()),s+=this._optionsService.options.drawBoldTextInBrightColors&&e.isBold()&&s<8&&s!==n.INVERTED_DEFAULT_COLOR?8:0,this._currentGlyphIdentifier.chars=e.getChars()||r.WHITESPACE_CELL_CHAR,this._currentGlyphIdentifier.code=e.getCode()||r.WHITESPACE_CELL_CODE,this._currentGlyphIdentifier.bg=o,this._currentGlyphIdentifier.fg=s,this._currentGlyphIdentifier.bold=!!e.isBold(),this._currentGlyphIdentifier.dim=!!e.isDim(),this._currentGlyphIdentifier.italic=!!e.isItalic(),this._charAtlas&&this._charAtlas.draw(this._ctx,this._currentGlyphIdentifier,t*this._scaledCellWidth+this._scaledCharLeft,i*this._scaledCellHeight+this._scaledCharTop)||this._drawUncachedChars(e,t,i))},e.prototype._drawUncachedChars=function(e,t,i){if(this._ctx.save(),this._ctx.font=this._getFont(!!e.isBold(),!!e.isItalic()),this._ctx.textBaseline="middle",e.isInverse())e.isBgDefault()?this._ctx.fillStyle=this._colors.background.css:e.isBgRGB()?this._ctx.fillStyle="rgb("+o.AttributeData.toColorRGB(e.getBgColor()).join(",")+")":this._ctx.fillStyle=this._colors.ansi[e.getBgColor()].css;else if(e.isFgDefault())this._ctx.fillStyle=this._colors.foreground.css;else if(e.isFgRGB())this._ctx.fillStyle="rgb("+o.AttributeData.toColorRGB(e.getFgColor()).join(",")+")";else{var r=e.getFgColor();this._optionsService.options.drawBoldTextInBrightColors&&e.isBold()&&r<8&&(r+=8),this._ctx.fillStyle=this._colors.ansi[r].css}this._clipRow(i),e.isDim()&&(this._ctx.globalAlpha=n.DIM_OPACITY),this._ctx.fillText(e.getChars(),t*this._scaledCellWidth+this._scaledCharLeft,i*this._scaledCellHeight+this._scaledCharTop+this._scaledCharHeight/2),this._ctx.restore()},e.prototype._clipRow=function(e){this._ctx.beginPath(),this._ctx.rect(0,e*this._scaledCellHeight,this._bufferService.cols*this._scaledCellWidth,this._scaledCellHeight),this._ctx.clip()},e.prototype._getFont=function(e,t){return(t?"italic":"")+" "+(e?this._optionsService.options.fontWeightBold:this._optionsService.options.fontWeight)+" "+this._optionsService.options.fontSize*window.devicePixelRatio+"px "+this._optionsService.options.fontFamily},e}();t.BaseRenderLayer=c},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="di$target",n="di$dependencies";function s(e,t,i){t[r]===t?t[n].push({id:e,index:i}):(t[n]=[{id:e,index:i}],t[r]=t)}t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[n]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);var i=function(e,t,r){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");s(i,e,r)};return i.toString=function(){return e},t.serviceRegistry.set(e,i),i}},function(e,t,i){"use strict";function r(e,t,i,r){if(void 0===i&&(i=0),void 0===r&&(r=e.length),i>=e.length)return e;i=(e.length+i)%e.length,r=r>=e.length?e.length:(e.length+r)%e.length;for(var n=i;n<r;++n)e[n]=t;return e}Object.defineProperty(t,"__esModule",{value:!0}),t.fill=function(e,t,i,n){return e.fill?e.fill(t,i,n):r(e,t,i,n)},t.fillFallback=r,t.concat=function(e,t){var i=new e.constructor(e.length+t.length);return i.set(e),i.set(t,e.length),i}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(8),n=i(3),s=i(4),o=i(6),a=3;t.DEFAULT_ATTR_DATA=Object.freeze(new o.AttributeData);var c=function(){function e(e,t,i){void 0===i&&(i=!1),this.isWrapped=i,this._combined={},this._data=new Uint32Array(e*a);for(var r=t||s.CellData.fromCharData([0,n.NULL_CELL_CHAR,n.NULL_CELL_WIDTH,n.NULL_CELL_CODE]),o=0;o<e;++o)this.setCell(o,r);this.length=e}return e.prototype.get=function(e){var t=this._data[e*a+0],i=2097151&t;return[this._data[e*a+1],2097152&t?this._combined[e]:i?r.stringFromCodePoint(i):"",t>>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):i]},e.prototype.set=function(e,t){this._data[e*a+1]=t[n.CHAR_DATA_ATTR_INDEX],t[n.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[e*a+0]=2097152|e|t[n.CHAR_DATA_WIDTH_INDEX]<<22):this._data[e*a+0]=t[n.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[n.CHAR_DATA_WIDTH_INDEX]<<22},e.prototype.getWidth=function(e){return this._data[e*a+0]>>22},e.prototype.hasWidth=function(e){return 12582912&this._data[e*a+0]},e.prototype.getFg=function(e){return this._data[e*a+1]},e.prototype.getBg=function(e){return this._data[e*a+2]},e.prototype.hasContent=function(e){return 4194303&this._data[e*a+0]},e.prototype.getCodePoint=function(e){var t=this._data[e*a+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t},e.prototype.isCombined=function(e){return 2097152&this._data[e*a+0]},e.prototype.getString=function(e){var t=this._data[e*a+0];return 2097152&t?this._combined[e]:2097151&t?r.stringFromCodePoint(2097151&t):""},e.prototype.loadCell=function(e,t){var i=e*a;return t.content=this._data[i+0],t.fg=this._data[i+1],t.bg=this._data[i+2],2097152&t.content&&(t.combinedData=this._combined[e]),t},e.prototype.setCell=function(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),this._data[e*a+0]=t.content,this._data[e*a+1]=t.fg,this._data[e*a+2]=t.bg},e.prototype.setCellFromCodePoint=function(e,t,i,r,n){this._data[e*a+0]=t|i<<22,this._data[e*a+1]=r,this._data[e*a+2]=n},e.prototype.addCodepointToCell=function(e,t){var i=this._data[e*a+0];2097152&i?this._combined[e]+=r.stringFromCodePoint(t):(2097151&i?(this._combined[e]=r.stringFromCodePoint(2097151&i)+r.stringFromCodePoint(t),i&=-2097152,i|=2097152):i=t|1<<22,this._data[e*a+0]=i)},e.prototype.insertCells=function(e,t,i){if(e%=this.length,t<this.length-e){for(var r=new s.CellData,n=this.length-e-t-1;n>=0;--n)this.setCell(e+t+n,this.loadCell(e+n,r));for(n=0;n<t;++n)this.setCell(e+n,i)}else for(n=e;n<this.length;++n)this.setCell(n,i)},e.prototype.deleteCells=function(e,t,i){if(e%=this.length,t<this.length-e){for(var r=new s.CellData,n=0;n<this.length-e-t;++n)this.setCell(e+n,this.loadCell(e+t+n,r));for(n=this.length-t;n<this.length;++n)this.setCell(n,i)}else for(n=e;n<this.length;++n)this.setCell(n,i)},e.prototype.replaceCells=function(e,t,i){for(;e<t&&e<this.length;)this.setCell(e++,i)},e.prototype.resize=function(e,t){if(e!==this.length){if(e>this.length){var i=new Uint32Array(e*a);this.length&&(e*a<this._data.length?i.set(this._data.subarray(0,e*a)):i.set(this._data)),this._data=i;for(var r=this.length;r<e;++r)this.setCell(r,t)}else if(e){(i=new Uint32Array(e*a)).set(this._data.subarray(0,e*a)),this._data=i;var n=Object.keys(this._combined);for(r=0;r<n.length;r++){var s=parseInt(n[r],10);s>=e&&delete this._combined[s]}}else this._data=new Uint32Array(0),this._combined={};this.length=e}},e.prototype.fill=function(e){this._combined={};for(var t=0;t<this.length;++t)this.setCell(t,e)},e.prototype.copyFrom=function(e){for(var t in this.length!==e.length?this._data=new Uint32Array(e._data):this._data.set(e._data),this.length=e.length,this._combined={},e._combined)this._combined[t]=e._combined[t];this.isWrapped=e.isWrapped},e.prototype.clone=function(){var t=new e(0);for(var i in t._data=new Uint32Array(this._data),t.length=this.length,this._combined)t._combined[i]=this._combined[i];return t.isWrapped=this.isWrapped,t},e.prototype.getTrimmedLength=function(){for(var e=this.length-1;e>=0;--e)if(4194303&this._data[e*a+0])return e+(this._data[e*a+0]>>22);return 0},e.prototype.copyCellsFrom=function(e,t,i,r,n){var s=e._data;if(n)for(var o=r-1;o>=0;o--)for(var c=0;c<a;c++)this._data[(i+o)*a+c]=s[(t+o)*a+c];else for(o=0;o<r;o++)for(c=0;c<a;c++)this._data[(i+o)*a+c]=s[(t+o)*a+c];var l=Object.keys(e._combined);for(c=0;c<l.length;c++){var h=parseInt(l[c],10);h>=t&&(this._combined[h-t+i]=e._combined[h])}},e.prototype.translateToString=function(e,t,i){void 0===e&&(e=!1),void 0===t&&(t=0),void 0===i&&(i=this.length),e&&(i=Math.min(i,this.getTrimmedLength()));for(var s="";t<i;){var o=this._data[t*a+0],c=2097151&o;s+=2097152&o?this._combined[t]:c?r.stringFromCodePoint(c):n.WHITESPACE_CELL_CHAR,t+=o>>22||1}return s},e}();t.BufferLine=c},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.promptLabel="Terminal input",t.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={"`":"◆",a:"▒",b:"\t",c:"\f",d:"\r",e:"\n",f:"°",g:"±",h:"",i:"\v",j:"┘",k:"┐",l:"┌",m:"└",n:"┼",o:"⎺",p:"⎻",q:"─",r:"⎼",s:"⎽",t:"├",u:"┤",v:"┴",w:"┬",x:"│",y:"≤",z:"≥","{":"π","|":"≠","}":"£","~":"·"},t.CHARSETS.A={"#":"£"},t.CHARSETS.B=null,t.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},t.CHARSETS.C=t.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},t.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},t.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},t.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},t.CHARSETS.E=t.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},t.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},t.CHARSETS.H=t.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},t.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(14);t.wcwidth=function(e){var t=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],i=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];var n=0|e.control,s=new Uint8Array(65536);r.fill(s,1),s[0]=e.nul,r.fill(s,e.control,1,32),r.fill(s,e.control,127,160),r.fill(s,2,4352,4448),s[9001]=2,s[9002]=2,r.fill(s,2,11904,42192),s[12351]=1,r.fill(s,2,44032,55204),r.fill(s,2,63744,64256),r.fill(s,2,65040,65050),r.fill(s,2,65072,65136),r.fill(s,2,65280,65377),r.fill(s,2,65504,65511);for(var o=0;o<t.length;++o)r.fill(s,0,t[o][0],t[o][1]+1);return function(e){return e<32?0|n:e<127?1:e<65536?s[e]:function(e,t){var i,r=0,n=t.length-1;if(e<t[0][0]||e>t[n][1])return!1;for(;n>=r;)if(e>t[i=r+n>>1][1])r=i+1;else{if(!(e<t[i][0]))return!0;n=i-1}return!1}(t=e,i)?0:t>=131072&&t<=196605||t>=196608&&t<=262141?2:1;var t}}({nul:0,control:0}),t.getStringCellWidth=function(e){for(var i=0,r=e.length,n=0;n<r;++n){var s=e.charCodeAt(n);if(55296<=s&&s<=56319){if(++n>=r)return i+t.wcwidth(s);var o=e.charCodeAt(n);56320<=o&&o<=57343?s=1024*(s-55296)+o-56320+65536:i+=t.wcwidth(o)}i+=t.wcwidth(s)}return i}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=256,n=function(){function e(e,t){if(void 0===e&&(e=32),void 0===t&&(t=32),this.maxLength=e,this.maxSubParamsLength=t,t>r)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}return e.fromArray=function(t){var i=new e;if(!t.length)return i;for(var r=t[0]instanceof Array?1:0;r<t.length;++r){var n=t[r];if(n instanceof Array)for(var s=0;s<n.length;++s)i.addSubParam(n[s]);else i.addParam(n)}return i},e.prototype.clone=function(){var t=new e(this.maxLength,this.maxSubParamsLength);return t.params.set(this.params),t.length=this.length,t._subParams.set(this._subParams),t._subParamsLength=this._subParamsLength,t._subParamsIdx.set(this._subParamsIdx),t._rejectDigits=this._rejectDigits,t._rejectSubDigits=this._rejectSubDigits,t._digitIsSub=this._digitIsSub,t},e.prototype.toArray=function(){for(var e=[],t=0;t<this.length;++t){e.push(this.params[t]);var i=this._subParamsIdx[t]>>8,r=255&this._subParamsIdx[t];r-i>0&&e.push(Array.prototype.slice.call(this._subParams,i,r))}return e},e.prototype.reset=function(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1},e.prototype.addParam=function(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>2147483647?2147483647:e}},e.prototype.addSubParam=function(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=e>2147483647?2147483647:e,this._subParamsIdx[this.length-1]++}},e.prototype.hasSubParams=function(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0},e.prototype.getSubParams=function(e){var t=this._subParamsIdx[e]>>8,i=255&this._subParamsIdx[e];return i-t>0?this._subParams.subarray(t,i):null},e.prototype.getSubParamsAll=function(){for(var e={},t=0;t<this.length;++t){var i=this._subParamsIdx[t]>>8,r=255&this._subParamsIdx[t];r-i>0&&(e[t]=this._subParams.slice(i,r))}return e},e.prototype.addDigit=function(e){var t;if(!(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)){var i=this._digitIsSub?this._subParams:this.params,r=i[t-1];i[t-1]=~r?Math.min(10*r+e,2147483647):e}},e}();t.Params=n},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(21),n=i(8),s=function(){function e(){this._state=0,this._id=-1,this._handlers=Object.create(null),this._handlerFb=function(){}}return e.prototype.addHandler=function(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);var i=this._handlers[e];return i.push(t),{dispose:function(){var e=i.indexOf(t);-1!==e&&i.splice(e,1)}}},e.prototype.setHandler=function(e,t){this._handlers[e]=[t]},e.prototype.clearHandler=function(e){this._handlers[e]&&delete this._handlers[e]},e.prototype.setHandlerFallback=function(e){this._handlerFb=e},e.prototype.dispose=function(){this._handlers=Object.create(null),this._handlerFb=function(){}},e.prototype.reset=function(){2===this._state&&this.end(!1),this._id=-1,this._state=0},e.prototype._start=function(){var e=this._handlers[this._id];if(e)for(var t=e.length-1;t>=0;t--)e[t].start();else this._handlerFb(this._id,"START")},e.prototype._put=function(e,t,i){var r=this._handlers[this._id];if(r)for(var s=r.length-1;s>=0;s--)r[s].put(e,t,i);else this._handlerFb(this._id,"PUT",n.utf32ToString(e,t,i))},e.prototype._end=function(e){var t=this._handlers[this._id];if(t){for(var i=t.length-1;i>=0&&!1===t[i].end(e);i--);for(i--;i>=0;i--)t[i].end(!1)}else this._handlerFb(this._id,"END",e)},e.prototype.start=function(){this.reset(),this._id=-1,this._state=1},e.prototype.put=function(e,t,i){if(3!==this._state){if(1===this._state)for(;t<i;){var r=e[t++];if(59===r){this._state=2,this._start();break}if(r<48||57<r)return void(this._state=3);-1===this._id&&(this._id=0),this._id=10*this._id+r-48}2===this._state&&i-t>0&&this._put(e,t,i)}},e.prototype.end=function(e){0!==this._state&&(3!==this._state&&(1===this._state&&this._start(),this._end(e)),this._id=-1,this._state=0)},e}();t.OscParser=s;var o=function(){function e(e){this._handler=e,this._data="",this._hitLimit=!1}return e.prototype.start=function(){this._data="",this._hitLimit=!1},e.prototype.put=function(e,t,i){this._hitLimit||(this._data+=n.utf32ToString(e,t,i),this._data.length>r.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))},e.prototype.end=function(e){var t;return this._hitLimit?t=!1:e&&(t=this._handler(this._data)),this._data="",this._hitLimit=!1,t},e}();t.OscHandler=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PAYLOAD_LIMIT=1e7},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(8),n=i(19),s=i(21),o=[],a=function(){function e(){this._handlers=Object.create(null),this._active=o,this._ident=0,this._handlerFb=function(){}}return e.prototype.dispose=function(){this._handlers=Object.create(null),this._handlerFb=function(){}},e.prototype.addHandler=function(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);var i=this._handlers[e];return i.push(t),{dispose:function(){var e=i.indexOf(t);-1!==e&&i.splice(e,1)}}},e.prototype.setHandler=function(e,t){this._handlers[e]=[t]},e.prototype.clearHandler=function(e){this._handlers[e]&&delete this._handlers[e]},e.prototype.setHandlerFallback=function(e){this._handlerFb=e},e.prototype.reset=function(){this._active.length&&this.unhook(!1),this._active=o,this._ident=0},e.prototype.hook=function(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||o,this._active.length)for(var i=this._active.length-1;i>=0;i--)this._active[i].hook(t);else this._handlerFb(this._ident,"HOOK",t)},e.prototype.put=function(e,t,i){if(this._active.length)for(var n=this._active.length-1;n>=0;n--)this._active[n].put(e,t,i);else this._handlerFb(this._ident,"PUT",r.utf32ToString(e,t,i))},e.prototype.unhook=function(e){if(this._active.length){for(var t=this._active.length-1;t>=0&&!1===this._active[t].unhook(e);t--);for(t--;t>=0;t--)this._active[t].unhook(!1)}else this._handlerFb(this._ident,"UNHOOK",e);this._active=o,this._ident=0},e}();t.DcsParser=a;var c=function(){function e(e){this._handler=e,this._data="",this._hitLimit=!1}return e.prototype.hook=function(e){this._params=e.clone(),this._data="",this._hitLimit=!1},e.prototype.put=function(e,t,i){this._hitLimit||(this._data+=r.utf32ToString(e,t,i),this._data.length>s.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))},e.prototype.unhook=function(e){var t;return this._hitLimit?t=!1:e&&(t=this._handler(this._data,this._params?this._params:new n.Params)),this._params=void 0,this._data="",this._hitLimit=!1,t},e}();t.DcsHandler=c},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(24),n=i(42),s=[];t.acquireCharAtlas=function(e,t,i,o,a){for(var c=r.generateConfig(o,a,e,i),l=0;l<s.length;l++){var h=(u=s[l]).ownedBy.indexOf(t);if(h>=0){if(r.configEquals(u.config,c))return u.atlas;1===u.ownedBy.length?(u.atlas.dispose(),s.splice(l,1)):u.ownedBy.splice(h,1);break}}for(l=0;l<s.length;l++){var u=s[l];if(r.configEquals(u.config,c))return u.ownedBy.push(t),u.atlas}var f={atlas:new n.DynamicCharAtlas(document,c),config:c,ownedBy:[t]};return s.push(f),f.atlas},t.removeTerminalFromCache=function(e){for(var t=0;t<s.length;t++){var i=s[t].ownedBy.indexOf(e);if(-1!==i){1===s[t].ownedBy.length?(s[t].atlas.dispose(),s.splice(t,1)):s[t].ownedBy.splice(i,1);break}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(3);t.generateConfig=function(e,t,i,r){var n={foreground:r.foreground,background:r.background,cursor:void 0,cursorAccent:void 0,selection:void 0,ansi:r.ansi.slice(0,16)};return{devicePixelRatio:window.devicePixelRatio,scaledCharWidth:e,scaledCharHeight:t,fontFamily:i.fontFamily,fontSize:i.fontSize,fontWeight:i.fontWeight,fontWeightBold:i.fontWeightBold,allowTransparency:i.allowTransparency,colors:n}},t.configEquals=function(e,t){for(var i=0;i<e.colors.ansi.length;i++)if(e.colors.ansi[i].rgba!==t.colors.ansi[i].rgba)return!1;return e.devicePixelRatio===t.devicePixelRatio&&e.fontFamily===t.fontFamily&&e.fontSize===t.fontSize&&e.fontWeight===t.fontWeight&&e.fontWeightBold===t.fontWeightBold&&e.allowTransparency===t.allowTransparency&&e.scaledCharWidth===t.scaledCharWidth&&e.scaledCharHeight===t.scaledCharHeight&&e.colors.foreground===t.colors.foreground&&e.colors.background===t.colors.background},t.is256Color=function(e){return e<r.DEFAULT_COLOR}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c("#ffffff"),n=c("#000000"),s=c("#ffffff"),o=c("#000000"),a={css:"rgba(255, 255, 255, 0.3)",rgba:4294967159};function c(e){return{css:e,rgba:parseInt(e.slice(1),16)<<8|255}}function l(e){var t=e.toString(16);return t.length<2?"0"+t:t}t.DEFAULT_ANSI_COLORS=function(){for(var e=[c("#2e3436"),c("#cc0000"),c("#4e9a06"),c("#c4a000"),c("#3465a4"),c("#75507b"),c("#06989a"),c("#d3d7cf"),c("#555753"),c("#ef2929"),c("#8ae234"),c("#fce94f"),c("#729fcf"),c("#ad7fa8"),c("#34e2e2"),c("#eeeeec")],t=[0,95,135,175,215,255],i=0;i<216;i++){var r=t[i/36%6|0],n=t[i/6%6|0],s=t[i%6];e.push({css:"#"+l(r)+l(n)+l(s),rgba:(r<<24|n<<16|s<<8|255)>>>0})}for(i=0;i<24;i++){var o=8+10*i,a=l(o);e.push({css:"#"+a+a+a,rgba:(o<<24|o<<16|o<<8|255)>>>0})}return e}();var h=function(){function e(e,i){this.allowTransparency=i;var c=e.createElement("canvas");c.width=1,c.height=1;var l=c.getContext("2d");if(!l)throw new Error("Could not get rendering context");this._ctx=l,this._ctx.globalCompositeOperation="copy",this._litmusColor=this._ctx.createLinearGradient(0,0,1,1),this.colors={foreground:r,background:n,cursor:s,cursorAccent:o,selection:a,ansi:t.DEFAULT_ANSI_COLORS.slice()}}return e.prototype.setTheme=function(e){void 0===e&&(e={}),this.colors.foreground=this._parseColor(e.foreground,r),this.colors.background=this._parseColor(e.background,n),this.colors.cursor=this._parseColor(e.cursor,s,!0),this.colors.cursorAccent=this._parseColor(e.cursorAccent,o,!0),this.colors.selection=this._parseColor(e.selection,a,!0),this.colors.ansi[0]=this._parseColor(e.black,t.DEFAULT_ANSI_COLORS[0]),this.colors.ansi[1]=this._parseColor(e.red,t.DEFAULT_ANSI_COLORS[1]),this.colors.ansi[2]=this._parseColor(e.green,t.DEFAULT_ANSI_COLORS[2]),this.colors.ansi[3]=this._parseColor(e.yellow,t.DEFAULT_ANSI_COLORS[3]),this.colors.ansi[4]=this._parseColor(e.blue,t.DEFAULT_ANSI_COLORS[4]),this.colors.ansi[5]=this._parseColor(e.magenta,t.DEFAULT_ANSI_COLORS[5]),this.colors.ansi[6]=this._parseColor(e.cyan,t.DEFAULT_ANSI_COLORS[6]),this.colors.ansi[7]=this._parseColor(e.white,t.DEFAULT_ANSI_COLORS[7]),this.colors.ansi[8]=this._parseColor(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),this.colors.ansi[9]=this._parseColor(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),this.colors.ansi[10]=this._parseColor(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),this.colors.ansi[11]=this._parseColor(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),this.colors.ansi[12]=this._parseColor(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),this.colors.ansi[13]=this._parseColor(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),this.colors.ansi[14]=this._parseColor(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),this.colors.ansi[15]=this._parseColor(e.brightWhite,t.DEFAULT_ANSI_COLORS[15])},e.prototype._parseColor=function(e,t,i){if(void 0===i&&(i=this.allowTransparency),void 0===e)return t;if(this._ctx.fillStyle=this._litmusColor,this._ctx.fillStyle=e,"string"!=typeof this._ctx.fillStyle)return console.warn("Color: "+e+" is invalid using fallback "+t.css),t;this._ctx.fillRect(0,0,1,1);var r=this._ctx.getImageData(0,0,1,1).data;return i||255===r[3]?{css:e,rgba:(r[0]<<24|r[1]<<16|r[2]<<8|r[3])>>>0}:(console.warn("Color: "+e+" is using transparency, but allowTransparency is false. Using fallback "+t.css+"."),t)},e}();t.ColorManager=h},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.throwIfFalsy=function(e){if(!e)throw new Error("value must not be falsy");return e}},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(6),o=i(3),a=i(4),c=function(e){function t(t,i,r){var n=e.call(this)||this;return n.content=0,n.combinedData="",n.fg=t.fg,n.bg=t.bg,n.combinedData=i,n._width=r,n}return n(t,e),t.prototype.isCombined=function(){return 2097152},t.prototype.getWidth=function(){return this._width},t.prototype.getChars=function(){return this.combinedData},t.prototype.getCode=function(){return 2097151},t.prototype.setFromCharData=function(e){throw new Error("not implemented")},t.prototype.getAsCharData=function(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]},t}(s.AttributeData);t.JoinedCellData=c;var l=function(){function e(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}return e.prototype.registerCharacterJoiner=function(e){var t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id},e.prototype.deregisterCharacterJoiner=function(e){for(var t=0;t<this._characterJoiners.length;t++)if(this._characterJoiners[t].id===e)return this._characterJoiners.splice(t,1),!0;return!1},e.prototype.getJoinedCharacters=function(e){if(0===this._characterJoiners.length)return[];var t=this._bufferService.buffer.lines.get(e);if(!t||0===t.length)return[];for(var i=[],r=t.translateToString(!0),n=0,s=0,a=0,c=t.getFg(0),l=t.getBg(0),h=0;h<t.getTrimmedLength();h++)if(t.loadCell(h,this._workCell),0!==this._workCell.getWidth()){if(this._workCell.fg!==c||this._workCell.bg!==l){if(h-n>1)for(var u=this._getJoinedRanges(r,a,s,t,n),f=0;f<u.length;f++)i.push(u[f]);n=h,a=s,c=this._workCell.fg,l=this._workCell.bg}s+=this._workCell.getChars().length||o.WHITESPACE_CELL_CHAR.length}if(this._bufferService.cols-n>1)for(u=this._getJoinedRanges(r,a,s,t,n),f=0;f<u.length;f++)i.push(u[f]);return i},e.prototype._getJoinedRanges=function(t,i,r,n,s){for(var o=t.substring(i,r),a=this._characterJoiners[0].handler(o),c=1;c<this._characterJoiners.length;c++)for(var l=this._characterJoiners[c].handler(o),h=0;h<l.length;h++)e._mergeRanges(a,l[h]);return this._stringRangesToCellRanges(a,n,s),a},e.prototype._stringRangesToCellRanges=function(e,t,i){var r=0,n=!1,s=0,a=e[r];if(a){for(var c=i;c<this._bufferService.cols;c++){var l=t.getWidth(c),h=t.getString(c).length||o.WHITESPACE_CELL_CHAR.length;if(0!==l){if(!n&&a[0]<=s&&(a[0]=c,n=!0),a[1]<=s){if(a[1]=c,!(a=e[++r]))break;a[0]<=s?(a[0]=c,n=!0):n=!1}s+=h}}a&&(a[1]=this._bufferService.cols)}},e._mergeRanges=function(e,t){for(var i=!1,r=0;r<e.length;r++){var n=e[r];if(i){if(t[1]<=n[0])return e[r-1][1]=t[1],e;if(t[1]<=n[1])return e[r-1][1]=Math.max(t[1],n[1]),e.splice(r,1),i=!1,e;e.splice(r,1),r--}else{if(t[1]<=n[0])return e.splice(r,0,t),e;if(t[1]<=n[1])return n[0]=Math.min(t[0],n[0]),e;t[0]<n[1]&&(n[0]=Math.min(t[0],n[0]),i=!0)}}return i?e[e.length-1][1]=t[1]:e.push(t),e},e}();t.CharacterJoinerRegistry=l},function(e,t,i){"use strict";function r(e,t){var i=t.getBoundingClientRect();return[e.clientX-i.left,e.clientY-i.top]}Object.defineProperty(t,"__esModule",{value:!0}),t.getCoordsRelativeToElement=r,t.getCoords=function(e,t,i,n,s,o,a,c){if(s){var l=r(e,t);if(l)return l[0]=Math.ceil((l[0]+(c?o/2:0))/o),l[1]=Math.ceil(l[1]/a),l[0]=Math.min(Math.max(l[0],1),i+(c?1:0)),l[1]=Math.min(Math.max(l[1],1),n),l}},t.getRawByteCoords=function(e){if(e)return{x:e[0]+32,y:e[1]+32}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this._renderCallback=e}return e.prototype.dispose=function(){this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)},e.prototype.refresh=function(e,t,i){var r=this;this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=window.requestAnimationFrame(function(){return r._innerRefresh()}))},e.prototype._innerRefresh=function(){void 0!==this._rowStart&&void 0!==this._rowEnd&&void 0!==this._rowCount&&(this._rowStart=Math.max(this._rowStart,0),this._rowEnd=Math.min(this._rowEnd,this._rowCount-1),this._renderCallback(this._rowStart,this._rowEnd),this._rowStart=void 0,this._rowEnd=void 0,this._animationFrame=void 0)},e}();t.RenderDebouncer=r},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._currentDevicePixelRatio=window.devicePixelRatio,t}return n(t,e),t.prototype.setListener=function(e){var t=this;this._listener&&this.clearListener(),this._listener=e,this._outerListener=function(){t._listener&&(t._listener(window.devicePixelRatio,t._currentDevicePixelRatio),t._updateDpr())},this._updateDpr()},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.clearListener()},t.prototype._updateDpr=function(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._currentDevicePixelRatio=window.devicePixelRatio,this._resolutionMediaMatchList=window.matchMedia("screen and (resolution: "+window.devicePixelRatio+"dppx)"),this._resolutionMediaMatchList.addListener(this._outerListener))},t.prototype.clearListener=function(){this._resolutionMediaMatchList&&this._listener&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._listener=void 0,this._outerListener=void 0)},t}(i(2).Disposable);t.ScreenDprMonitor=s},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clone=function e(t,i){if(void 0===i&&(i=5),"object"!=typeof t)return t;var r=Array.isArray(t)?[]:{};for(var n in t)r[n]=i<=1?t[n]:t[n]?e(t[n],i-1):t[n];return r}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(33),n=i(16),s=i(74),o=function(){function e(e){this._core=new r.Terminal(e),this._addonManager=new s.AddonManager}return Object.defineProperty(e.prototype,"onCursorMove",{get:function(){return this._core.onCursorMove},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onLineFeed",{get:function(){return this._core.onLineFeed},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onSelectionChange",{get:function(){return this._core.onSelectionChange},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onData",{get:function(){return this._core.onData},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onTitleChange",{get:function(){return this._core.onTitleChange},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onScroll",{get:function(){return this._core.onScroll},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onKey",{get:function(){return this._core.onKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onRender",{get:function(){return this._core.onRender},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onResize",{get:function(){return this._core.onResize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this._core.element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parser",{get:function(){return this._parser||(this._parser=new h(this._core)),this._parser},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textarea",{get:function(){return this._core.textarea},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rows",{get:function(){return this._core.rows},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cols",{get:function(){return this._core.cols},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"buffer",{get:function(){return new a(this._core.buffer)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"markers",{get:function(){return this._core.markers},enumerable:!0,configurable:!0}),e.prototype.blur=function(){this._core.blur()},e.prototype.focus=function(){this._core.focus()},e.prototype.resize=function(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)},e.prototype.writeln=function(e){this._core.writeln(e)},e.prototype.open=function(e){this._core.open(e)},e.prototype.attachCustomKeyEventHandler=function(e){this._core.attachCustomKeyEventHandler(e)},e.prototype.registerLinkMatcher=function(e,t,i){return this._core.registerLinkMatcher(e,t,i)},e.prototype.deregisterLinkMatcher=function(e){this._core.deregisterLinkMatcher(e)},e.prototype.registerCharacterJoiner=function(e){return this._core.registerCharacterJoiner(e)},e.prototype.deregisterCharacterJoiner=function(e){this._core.deregisterCharacterJoiner(e)},e.prototype.addMarker=function(e){return this._verifyIntegers(e),this._core.addMarker(e)},e.prototype.hasSelection=function(){return this._core.hasSelection()},e.prototype.select=function(e,t,i){this._verifyIntegers(e,t,i),this._core.select(e,t,i)},e.prototype.getSelection=function(){return this._core.getSelection()},e.prototype.getSelectionPosition=function(){return this._core.getSelectionPosition()},e.prototype.clearSelection=function(){this._core.clearSelection()},e.prototype.selectAll=function(){this._core.selectAll()},e.prototype.selectLines=function(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)},e.prototype.dispose=function(){this._addonManager.dispose(),this._core.dispose()},e.prototype.scrollLines=function(e){this._verifyIntegers(e),this._core.scrollLines(e)},e.prototype.scrollPages=function(e){this._verifyIntegers(e),this._core.scrollPages(e)},e.prototype.scrollToTop=function(){this._core.scrollToTop()},e.prototype.scrollToBottom=function(){this._core.scrollToBottom()},e.prototype.scrollToLine=function(e){this._verifyIntegers(e),this._core.scrollToLine(e)},e.prototype.clear=function(){this._core.clear()},e.prototype.write=function(e){this._core.write(e)},e.prototype.writeUtf8=function(e){this._core.writeUtf8(e)},e.prototype.paste=function(e){this._core.paste(e)},e.prototype.getOption=function(e){return this._core.optionsService.getOption(e)},e.prototype.setOption=function(e,t){this._core.optionsService.setOption(e,t)},e.prototype.refresh=function(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)},e.prototype.reset=function(){this._core.reset()},e.prototype.loadAddon=function(e){return this._addonManager.loadAddon(this,e)},Object.defineProperty(e,"strings",{get:function(){return n},enumerable:!0,configurable:!0}),e.prototype._verifyIntegers=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];e.forEach(function(e){if(e%1!=0)throw new Error("This API does not accept floating point numbers")})},e}();t.Terminal=o;var a=function(){function e(e){this._buffer=e}return Object.defineProperty(e.prototype,"cursorY",{get:function(){return this._buffer.y},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"cursorX",{get:function(){return this._buffer.x},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"viewportY",{get:function(){return this._buffer.ydisp},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"baseY",{get:function(){return this._buffer.ybase},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this._buffer.lines.length},enumerable:!0,configurable:!0}),e.prototype.getLine=function(e){var t=this._buffer.lines.get(e);if(t)return new c(t)},e}(),c=function(){function e(e){this._line=e}return Object.defineProperty(e.prototype,"isWrapped",{get:function(){return this._line.isWrapped},enumerable:!0,configurable:!0}),e.prototype.getCell=function(e){if(!(e<0||e>=this._line.length))return new l(this._line,e)},e.prototype.translateToString=function(e,t,i){return this._line.translateToString(e,t,i)},e}(),l=function(){function e(e,t){this._line=e,this._x=t}return Object.defineProperty(e.prototype,"char",{get:function(){return this._line.getString(this._x)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this._line.getWidth(this._x)},enumerable:!0,configurable:!0}),e}(),h=function(){function e(e){this._core=e}return e.prototype.addCsiHandler=function(e,t){return this._core.addCsiHandler(e,function(e){return t(e.toArray())})},e.prototype.addDcsHandler=function(e,t){return this._core.addDcsHandler(e,function(e,i){return t(e,i.toArray())})},e.prototype.addEscHandler=function(e,t){return this._core.addEscHandler(e,t)},e.prototype.addOscHandler=function(e,t){return this._core.addOscHandler(e,t)},e}()},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(34),o=i(35),a=i(36),c=i(11),l=i(37),h=i(39),u=i(48),f=i(49),_=i(10),d=i(7),p=i(16),v=i(52),g=i(53),y=i(54),m=i(55),b=i(57),C=i(1),S=i(15),w=i(58),E=i(25),L=i(59),A=i(0),x=i(60),k=i(5),D=i(61),T=i(62),R=i(2),M=i(68),O=i(69),P=i(70),H=i(71),I=i(72),B=i(73),F="undefined"!=typeof window?window.document:null,j=function(e){function t(t){void 0===t&&(t={});var i=e.call(this)||this;return i.browser=_,i.mouseEvents=0,i._keyDownHandled=!1,i._blankLine=null,i._onCursorMove=new C.EventEmitter,i._onData=new C.EventEmitter,i._onKey=new C.EventEmitter,i._onLineFeed=new C.EventEmitter,i._onRender=new C.EventEmitter,i._onResize=new C.EventEmitter,i._onScroll=new C.EventEmitter,i._onSelectionChange=new C.EventEmitter,i._onTitleChange=new C.EventEmitter,i._onFocus=new C.EventEmitter,i._onBlur=new C.EventEmitter,i.onA11yCharEmitter=new C.EventEmitter,i.onA11yTabEmitter=new C.EventEmitter,i._instantiationService=new I.InstantiationService,i.optionsService=new x.OptionsService(t),i._instantiationService.setService(A.IOptionsService,i.optionsService),i._bufferService=i._instantiationService.createInstance(T.BufferService),i._instantiationService.setService(A.IBufferService,i._bufferService),i._logService=i._instantiationService.createInstance(P.LogService),i._instantiationService.setService(A.ILogService,i._logService),i._coreService=i._instantiationService.createInstance(O.CoreService,function(){return i.scrollToBottom()}),i._instantiationService.setService(A.ICoreService,i._coreService),i._coreService.onData(function(e){return i._onData.fire(e)}),i._coreMouseService=i._instantiationService.createInstance(B.CoreMouseService),i._instantiationService.setService(A.ICoreMouseService,i._coreMouseService),i._dirtyRowService=i._instantiationService.createInstance(H.DirtyRowService),i._instantiationService.setService(A.IDirtyRowService,i._dirtyRowService),i._setupOptionsListeners(),i._setup(),i}return n(t,e),Object.defineProperty(t.prototype,"options",{get:function(){return this.optionsService.options},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cols",{get:function(){return this._bufferService.cols},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rows",{get:function(){return this._bufferService.rows},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onCursorMove",{get:function(){return this._onCursorMove.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onData",{get:function(){return this._onData.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onKey",{get:function(){return this._onKey.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onLineFeed",{get:function(){return this._onLineFeed.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onRender",{get:function(){return this._onRender.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onResize",{get:function(){return this._onResize.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onScroll",{get:function(){return this._onScroll.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onSelectionChange",{get:function(){return this._onSelectionChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onTitleChange",{get:function(){return this._onTitleChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onFocus",{get:function(){return this._onFocus.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onBlur",{get:function(){return this._onBlur.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onA11yChar",{get:function(){return this.onA11yCharEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onA11yTab",{get:function(){return this.onA11yTabEmitter.event},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this._isDisposed||(e.prototype.dispose.call(this),this._windowsMode&&(this._windowsMode.dispose(),this._windowsMode=void 0),this._renderService&&this._renderService.dispose(),this._customKeyEventHandler=null,this.write=function(){},this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element))},t.prototype._setup=function(){var e=this;this._parent=F?F.body:null,this.cursorState=0,this.cursorHidden=!1,this._customKeyEventHandler=null,this.applicationKeypad=!1,this.originMode=!1,this.insertMode=!1,this.wraparoundMode=!0,this.bracketedPasteMode=!1,this.charset=null,this.gcharset=null,this.glevel=0,this.charsets=[null],this.curAttrData=S.DEFAULT_ATTR_DATA.clone(),this._eraseAttrData=S.DEFAULT_ATTR_DATA.clone(),this.params=[],this.currentParam=0,this.writeBuffer=[],this.writeBufferUtf8=[],this._writeInProgress=!1,this._xoffSentToCatchUp=!1,this._userScrolling=!1,this._inputHandler=new l.InputHandler(this,this._bufferService,this._coreService,this._dirtyRowService,this._logService,this.optionsService,this._coreMouseService),this._inputHandler.onCursorMove(function(){return e._onCursorMove.fire()}),this._inputHandler.onLineFeed(function(){return e._onLineFeed.fire()}),this.register(this._inputHandler),this.linkifier=this.linkifier||new u.Linkifier(this._bufferService,this._logService),this.options.windowsMode&&(this._windowsMode=w.applyWindowsMode(this))},Object.defineProperty(t.prototype,"buffer",{get:function(){return this.buffers.active},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"buffers",{get:function(){return this._bufferService.buffers},enumerable:!0,configurable:!0}),t.prototype.eraseAttrData=function(){return this._eraseAttrData.bg&=-67108864,this._eraseAttrData.bg|=67108863&this.curAttrData.bg,this._eraseAttrData},t.prototype.focus=function(){this.textarea&&this.textarea.focus({preventScroll:!0})},Object.defineProperty(t.prototype,"isFocused",{get:function(){return F.activeElement===this.textarea&&F.hasFocus()},enumerable:!0,configurable:!0}),t.prototype._setupOptionsListeners=function(){var e=this;this.optionsService.onOptionChange(function(t){switch(t){case"fontFamily":case"fontSize":e._renderService&&e._renderService.clear(),e._charSizeService&&e._charSizeService.measure();break;case"drawBoldTextInBrightColors":case"letterSpacing":case"lineHeight":case"fontWeight":case"fontWeightBold":e._renderService&&(e._renderService.clear(),e._renderService.onResize(e.cols,e.rows),e.refresh(0,e.rows-1));break;case"rendererType":e._renderService&&(e._renderService.setRenderer(e._createRenderer()),e._renderService.onResize(e.cols,e.rows));break;case"scrollback":e.buffers.resize(e.cols,e.rows),e.viewport&&e.viewport.syncScrollArea();break;case"screenReaderMode":e.optionsService.options.screenReaderMode?!e._accessibilityManager&&e._renderService&&(e._accessibilityManager=new y.AccessibilityManager(e,e._renderService)):e._accessibilityManager&&(e._accessibilityManager.dispose(),e._accessibilityManager=null);break;case"tabStopWidth":e.buffers.setupTabStops();break;case"theme":e._setTheme(e.optionsService.options.theme);break;case"scrollback":var i=e.rows+e.optionsService.options.scrollback;if(e.buffer.lines.length>i){var r=e.buffer.lines.length-i,n=e.buffer.ydisp-r<0;e.buffer.lines.trimStart(r),e.buffer.ybase=Math.max(e.buffer.ybase-r,0),e.buffer.ydisp=Math.max(e.buffer.ydisp-r,0),n&&e.refresh(0,e.rows-1)}case"windowsMode":e.optionsService.options.windowsMode?e._windowsMode||(e._windowsMode=w.applyWindowsMode(e)):e._windowsMode&&(e._windowsMode.dispose(),e._windowsMode=void 0)}})},t.prototype._onTextAreaFocus=function(e){this.sendFocus&&this._coreService.triggerDataEvent(c.C0.ESC+"[I"),this.updateCursorStyle(e),this.element.classList.add("focus"),this.showCursor(),this._onFocus.fire()},t.prototype.blur=function(){return this.textarea.blur()},t.prototype._onTextAreaBlur=function(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.sendFocus&&this._coreService.triggerDataEvent(c.C0.ESC+"[O"),this.element.classList.remove("focus"),this._onBlur.fire()},t.prototype._initGlobal=function(){var e=this;this._bindKeys(),this.register(d.addDisposableDomListener(this.element,"copy",function(t){e.hasSelection()&&a.copyHandler(t,e._selectionService)}));var t=function(t){return a.handlePasteEvent(t,e.textarea,e.bracketedPasteMode,e._coreService)};this.register(d.addDisposableDomListener(this.textarea,"paste",t)),this.register(d.addDisposableDomListener(this.element,"paste",t)),_.isFirefox?this.register(d.addDisposableDomListener(this.element,"mousedown",function(t){2===t.button&&a.rightClickHandler(t,e.textarea,e.screenElement,e._selectionService,e.options.rightClickSelectsWord)})):this.register(d.addDisposableDomListener(this.element,"contextmenu",function(t){a.rightClickHandler(t,e.textarea,e.screenElement,e._selectionService,e.options.rightClickSelectsWord)})),_.isLinux&&this.register(d.addDisposableDomListener(this.element,"auxclick",function(t){1===t.button&&a.moveTextAreaUnderMouseCursor(t,e.textarea,e.screenElement)}))},t.prototype._bindKeys=function(){var e=this;this.register(d.addDisposableDomListener(this.textarea,"keyup",function(t){return e._keyUp(t)},!0)),this.register(d.addDisposableDomListener(this.textarea,"keydown",function(t){return e._keyDown(t)},!0)),this.register(d.addDisposableDomListener(this.textarea,"keypress",function(t){return e._keyPress(t)},!0)),this.register(d.addDisposableDomListener(this.textarea,"compositionstart",function(){return e._compositionHelper.compositionstart()})),this.register(d.addDisposableDomListener(this.textarea,"compositionupdate",function(t){return e._compositionHelper.compositionupdate(t)})),this.register(d.addDisposableDomListener(this.textarea,"compositionend",function(){return e._compositionHelper.compositionend()})),this.register(this.onRender(function(){return e._compositionHelper.updateCompositionElements()})),this.register(this.onRender(function(t){return e._queueLinkification(t.start,t.end)}))},t.prototype.open=function(e){var t=this;if(this._parent=e||this._parent,!this._parent)throw new Error("Terminal requires a parent element.");this._document=this._parent.ownerDocument,this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),this.element.setAttribute("tabindex","0"),this._parent.appendChild(this.element);var i=F.createDocumentFragment();this._viewportElement=F.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),i.appendChild(this._viewportElement),this._viewportScrollArea=F.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=F.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._helperContainer=F.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),i.appendChild(this.screenElement),this.textarea=F.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",p.promptLabel),this.textarea.setAttribute("aria-multiline","false"),this.textarea.setAttribute("autocorrect","off"),this.textarea.setAttribute("autocapitalize","off"),this.textarea.setAttribute("spellcheck","false"),this.textarea.tabIndex=0,this.register(d.addDisposableDomListener(this.textarea,"focus",function(e){return t._onTextAreaFocus(e)})),this.register(d.addDisposableDomListener(this.textarea,"blur",function(){return t._onTextAreaBlur()})),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(D.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(k.ICharSizeService,this._charSizeService),this._compositionView=F.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(s.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this.element.appendChild(i),this._theme=this.options.theme||this._theme,this.options.theme=void 0,this._colorManager=new E.ColorManager(F,this.options.allowTransparency),this._colorManager.setTheme(this._theme);var r=this._createRenderer();this._renderService=this._instantiationService.createInstance(L.RenderService,r,this.rows,this.screenElement),this._instantiationService.setService(k.IRenderService,this._renderService),this._renderService.onRender(function(e){return t._onRender.fire(e)}),this.onResize(function(e){return t._renderService.resize(e.cols,e.rows)}),this._soundService=this._instantiationService.createInstance(v.SoundService),this._instantiationService.setService(k.ISoundService,this._soundService),this._mouseService=this._instantiationService.createInstance(M.MouseService),this._instantiationService.setService(k.IMouseService,this._mouseService),this.viewport=this._instantiationService.createInstance(o.Viewport,function(e,i){return t.scrollLines(e,i)},this._viewportElement,this._viewportScrollArea),this.viewport.onThemeChange(this._colorManager.colors),this.register(this.viewport),this.register(this.onCursorMove(function(){return t._renderService.onCursorMove()})),this.register(this.onResize(function(){return t._renderService.onResize(t.cols,t.rows)})),this.register(this.onBlur(function(){return t._renderService.onBlur()})),this.register(this.onFocus(function(){return t._renderService.onFocus()})),this.register(this._renderService.onDimensionsChange(function(){return t.viewport.syncScrollArea()})),this._selectionService=this._instantiationService.createInstance(f.SelectionService,function(e,i){return t.scrollLines(e,i)},this.element,this.screenElement),this._instantiationService.setService(k.ISelectionService,this._selectionService),this.register(this._selectionService.onSelectionChange(function(){return t._onSelectionChange.fire()})),this.register(this._selectionService.onRedrawRequest(function(e){return t._renderService.onSelectionChanged(e.start,e.end,e.columnSelectMode)})),this.register(this._selectionService.onLinuxMouseSelection(function(e){t.textarea.value=e,t.textarea.focus(),t.textarea.select()})),this.register(this.onScroll(function(){t.viewport.syncScrollArea(),t._selectionService.refresh()})),this.register(d.addDisposableDomListener(this._viewportElement,"scroll",function(){return t._selectionService.refresh()})),this._mouseZoneManager=this._instantiationService.createInstance(g.MouseZoneManager,this.element,this.screenElement),this.register(this._mouseZoneManager),this.register(this.onScroll(function(){return t._mouseZoneManager.clearAll()})),this.linkifier.attachToDom(this.element,this._mouseZoneManager),this.register(d.addDisposableDomListener(this.element,"mousedown",function(e){return t._selectionService.onMouseDown(e)})),this.mouseEvents?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager=new y.AccessibilityManager(this,this._renderService)),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()},t.prototype._createRenderer=function(){switch(this.options.rendererType){case"canvas":return new h.Renderer(this._colorManager.colors,this,this._bufferService,this._charSizeService,this.optionsService);case"dom":return new m.DomRenderer(this,this._colorManager.colors,this._charSizeService,this.optionsService);default:throw new Error('Unrecognized rendererType "'+this.options.rendererType+'"')}},t.prototype._setTheme=function(e){this._theme=e,this._colorManager&&this._colorManager.setTheme(e),this._renderService&&this._renderService.setColors(this._colorManager.colors),this.viewport&&this.viewport.onThemeChange(this._colorManager.colors)},t.prototype.bindMouse=function(){var e=this,t=this,i=this.element;function r(e){var i,r,n;if(!(i=t._mouseService.getRawByteCoords(e,t.screenElement,t.cols,t.rows)))return!1;switch(e.overrideType||e.type){case"mousemove":n=32,void 0===e.buttons?(r=3,void 0!==e.button&&(r=e.button<3?e.button:3)):r=1&e.buttons?0:4&e.buttons?1:2&e.buttons?2:3;break;case"mouseup":n=0,r=e.button<3?e.button:3;break;case"mousedown":n=1,r=e.button<3?e.button:3;break;case"wheel":0!==e.deltaY&&(n=e.deltaY<0?0:1),r=4;break;default:return!1}return!(void 0===n||void 0===r||r>4)&&t._coreMouseService.triggerMouseEvent({col:i.x-33,row:i.y-33,button:r,action:n,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey})}var n={mouseup:null,wheel:null,mousedrag:null,mousemove:null},s=function(t){return r(t),t.buttons||(e._document.removeEventListener("mouseup",n.mouseup),n.mousedrag&&e._document.removeEventListener("mousemove",n.mousedrag)),e.cancel(t)},o=function(t){return r(t),t.preventDefault(),e.cancel(t)},a=function(e){e.buttons&&r(e)},l=function(e){e.buttons||r(e)};this._coreMouseService.onProtocolChange(function(t){e.mouseEvents=t,t?("debug"===e.optionsService.options.logLevel&&e._logService.debug("Binding to mouse events:",e._coreMouseService.explainEvents(t)),e.element.classList.add("enable-mouse-events"),e._selectionService.disable()):(e._logService.debug("Unbinding from mouse events."),e.element.classList.remove("enable-mouse-events"),e._selectionService.enable()),8&t?n.mousemove||(i.addEventListener("mousemove",l),n.mousemove=l):(i.removeEventListener("mousemove",n.mousemove),n.mousemove=null),16&t?n.wheel||(i.addEventListener("wheel",o),n.wheel=o):(i.removeEventListener("wheel",n.wheel),n.wheel=null),2&t?n.mouseup||(n.mouseup=s):(e._document.removeEventListener("mouseup",n.mouseup),n.mouseup=null),4&t?n.mousedrag||(n.mousedrag=a):(e._document.removeEventListener("mousemove",n.mousedrag),n.mousedrag=null)}),this._coreMouseService.activeProtocol=this._coreMouseService.activeProtocol,this.register(d.addDisposableDomListener(i,"mousedown",function(t){if(t.preventDefault(),e.focus(),e.mouseEvents&&!e._selectionService.shouldForceSelection(t))return r(t),n.mouseup&&e._document.addEventListener("mouseup",n.mouseup),n.mousedrag&&e._document.addEventListener("mousemove",n.mousedrag),e.cancel(t)})),this.register(d.addDisposableDomListener(i,"wheel",function(t){if(n.wheel);else if(!e.buffer.hasScrollback){var i=e.viewport.getLinesScrolled(t);if(0===i)return;for(var r=c.C0.ESC+(e._coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(t.deltaY<0?"A":"B"),s="",o=0;o<Math.abs(i);o++)s+=r;e._coreService.triggerDataEvent(s,!0)}})),this.register(d.addDisposableDomListener(i,"wheel",function(t){if(!n.wheel)return e.viewport.onWheel(t)?void 0:e.cancel(t)})),this.register(d.addDisposableDomListener(i,"touchstart",function(t){if(!e.mouseEvents)return e.viewport.onTouchStart(t),e.cancel(t)})),this.register(d.addDisposableDomListener(i,"touchmove",function(t){if(!e.mouseEvents)return e.viewport.onTouchMove(t)?void 0:e.cancel(t)}))},t.prototype.refresh=function(e,t){this._renderService&&this._renderService.refreshRows(e,t)},t.prototype._queueLinkification=function(e,t){this.linkifier&&this.linkifier.linkifyRows(e,t)},t.prototype.updateCursorStyle=function(e){this._selectionService&&this._selectionService.shouldColumnSelect(e)?this.element.classList.add("column-select"):this.element.classList.remove("column-select")},t.prototype.showCursor=function(){this.cursorState||(this.cursorState=1,this.refresh(this.buffer.y,this.buffer.y))},t.prototype.scroll=function(e){var t;void 0===e&&(e=!1),t=this._blankLine;var i=this.eraseAttrData();t&&t.length===this.cols&&t.getFg(0)===i.fg&&t.getBg(0)===i.bg||(t=this.buffer.getBlankLine(i,e),this._blankLine=t),t.isWrapped=e;var r=this.buffer.ybase+this.buffer.scrollTop,n=this.buffer.ybase+this.buffer.scrollBottom;if(0===this.buffer.scrollTop){var s=this.buffer.lines.isFull;n===this.buffer.lines.length-1?s?this.buffer.lines.recycle().copyFrom(t):this.buffer.lines.push(t.clone()):this.buffer.lines.splice(n+1,0,t.clone()),s?this._userScrolling&&(this.buffer.ydisp=Math.max(this.buffer.ydisp-1,0)):(this.buffer.ybase++,this._userScrolling||this.buffer.ydisp++)}else{var o=n-r+1;this.buffer.lines.shiftElements(r+1,o-1,-1),this.buffer.lines.set(n,t.clone())}this._userScrolling||(this.buffer.ydisp=this.buffer.ybase),this._dirtyRowService.markRangeDirty(this.buffer.scrollTop,this.buffer.scrollBottom),this._onScroll.fire(this.buffer.ydisp)},t.prototype.scrollLines=function(e,t){if(e<0){if(0===this.buffer.ydisp)return;this._userScrolling=!0}else e+this.buffer.ydisp>=this.buffer.ybase&&(this._userScrolling=!1);var i=this.buffer.ydisp;this.buffer.ydisp=Math.max(Math.min(this.buffer.ydisp+e,this.buffer.ybase),0),i!==this.buffer.ydisp&&(t||this._onScroll.fire(this.buffer.ydisp),this.refresh(0,this.rows-1))},t.prototype.scrollPages=function(e){this.scrollLines(e*(this.rows-1))},t.prototype.scrollToTop=function(){this.scrollLines(-this.buffer.ydisp)},t.prototype.scrollToBottom=function(){this.scrollLines(this.buffer.ybase-this.buffer.ydisp)},t.prototype.scrollToLine=function(e){var t=e-this.buffer.ydisp;0!==t&&this.scrollLines(t)},t.prototype.writeUtf8=function(e){var t=this;this._isDisposed||e&&(this.writeBufferUtf8.push(e),this.options.useFlowControl&&!this._xoffSentToCatchUp&&this.writeBufferUtf8.length>=5&&(this._coreService.triggerDataEvent(c.C0.DC3),this._xoffSentToCatchUp=!0),!this._writeInProgress&&this.writeBufferUtf8.length>0&&(this._writeInProgress=!0,setTimeout(function(){t._innerWriteUtf8()})))},t.prototype._innerWriteUtf8=function(e){var t=this;void 0===e&&(e=0),this._isDisposed&&(this.writeBufferUtf8=[]);for(var i=Date.now();this.writeBufferUtf8.length>e;){var r=this.writeBufferUtf8[e];if(e++,this._xoffSentToCatchUp&&this.writeBufferUtf8.length===e&&(this._coreService.triggerDataEvent(c.C0.DC1),this._xoffSentToCatchUp=!1),this._inputHandler.parseUtf8(r),this.refresh(this._dirtyRowService.start,this._dirtyRowService.end),Date.now()-i>=12)break}this.writeBufferUtf8.length>e?(e>50&&(this.writeBufferUtf8=this.writeBufferUtf8.slice(e),e=0),setTimeout(function(){return t._innerWriteUtf8(e)},0)):(this._writeInProgress=!1,this.writeBufferUtf8=[])},t.prototype.write=function(e){var t=this;this._isDisposed||e&&(this.writeBuffer.push(e),this.options.useFlowControl&&!this._xoffSentToCatchUp&&this.writeBuffer.length>=5&&(this._coreService.triggerDataEvent(c.C0.DC3),this._xoffSentToCatchUp=!0),!this._writeInProgress&&this.writeBuffer.length>0&&(this._writeInProgress=!0,setTimeout(function(){t._innerWrite()})))},t.prototype._innerWrite=function(e){var t=this;void 0===e&&(e=0),this._isDisposed&&(this.writeBuffer=[]);for(var i=Date.now();this.writeBuffer.length>e;){var r=this.writeBuffer[e];if(e++,this._xoffSentToCatchUp&&this.writeBuffer.length===e&&(this._coreService.triggerDataEvent(c.C0.DC1),this._xoffSentToCatchUp=!1),this._inputHandler.parse(r),this.refresh(this._dirtyRowService.start,this._dirtyRowService.end),Date.now()-i>=12)break}this.writeBuffer.length>e?(e>50&&(this.writeBuffer=this.writeBuffer.slice(e),e=0),setTimeout(function(){return t._innerWrite(e)},0)):(this._writeInProgress=!1,this.writeBuffer=[])},t.prototype.writeln=function(e){this.write(e+"\r\n")},t.prototype.paste=function(e){a.paste(e,this.textarea,this.bracketedPasteMode,this._coreService)},t.prototype.attachCustomKeyEventHandler=function(e){this._customKeyEventHandler=e},t.prototype.addEscHandler=function(e,t){return this._inputHandler.addEscHandler(e,t)},t.prototype.addDcsHandler=function(e,t){return this._inputHandler.addDcsHandler(e,t)},t.prototype.addCsiHandler=function(e,t){return this._inputHandler.addCsiHandler(e,t)},t.prototype.addOscHandler=function(e,t){return this._inputHandler.addOscHandler(e,t)},t.prototype.registerLinkMatcher=function(e,t,i){var r=this.linkifier.registerLinkMatcher(e,t,i);return this.refresh(0,this.rows-1),r},t.prototype.deregisterLinkMatcher=function(e){this.linkifier.deregisterLinkMatcher(e)&&this.refresh(0,this.rows-1)},t.prototype.registerCharacterJoiner=function(e){var t=this._renderService.registerCharacterJoiner(e);return this.refresh(0,this.rows-1),t},t.prototype.deregisterCharacterJoiner=function(e){this._renderService.deregisterCharacterJoiner(e)&&this.refresh(0,this.rows-1)},Object.defineProperty(t.prototype,"markers",{get:function(){return this.buffer.markers},enumerable:!0,configurable:!0}),t.prototype.addMarker=function(e){if(this.buffer===this.buffers.normal)return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)},t.prototype.hasSelection=function(){return!!this._selectionService&&this._selectionService.hasSelection},t.prototype.select=function(e,t,i){this._selectionService.setSelection(e,t,i)},t.prototype.getSelection=function(){return this._selectionService?this._selectionService.selectionText:""},t.prototype.getSelectionPosition=function(){if(this._selectionService.hasSelection)return{startColumn:this._selectionService.selectionStart[0],startRow:this._selectionService.selectionStart[1],endColumn:this._selectionService.selectionEnd[0],endRow:this._selectionService.selectionEnd[1]}},t.prototype.clearSelection=function(){this._selectionService&&this._selectionService.clearSelection()},t.prototype.selectAll=function(){this._selectionService&&this._selectionService.selectAll()},t.prototype.selectLines=function(e,t){this._selectionService&&this._selectionService.selectLines(e,t)},t.prototype._keyDown=function(e){if(this._keyDownHandled=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(!this._compositionHelper.keydown(e))return this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;var t=b.evaluateKeyboardEvent(e,this._coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===t.type||2===t.type){var i=this.rows-1;return this.scrollLines(2===t.type?-i:i),this.cancel(e,!0)}return 1===t.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(t.cancel&&this.cancel(e,!0),!t.key||(t.key!==c.C0.ETX&&t.key!==c.C0.CR||(this.textarea.value=""),this._onKey.fire({key:t.key,domEvent:e}),this.showCursor(),this._coreService.triggerDataEvent(t.key,!0),this.optionsService.options.screenReaderMode?void(this._keyDownHandled=!0):this.cancel(e,!0)))},t.prototype._isThirdLevelShift=function(e,t){var i=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey;return"keypress"===t.type?i:i&&(!t.keyCode||t.keyCode>47)},t.prototype.setgLevel=function(e){this.glevel=e,this.charset=this.charsets[e]},t.prototype.setgCharset=function(e,t){this.charsets[e]=t,this.glevel===e&&(this.charset=t)},t.prototype._keyUp=function(e){this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e))},t.prototype._keyPress=function(e){var t;if(this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e))&&(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this.showCursor(),this._coreService.triggerDataEvent(t,!0),!0)},t.prototype.bell=function(){var e=this;this._soundBell()&&this._soundService.playBellSound(),this._visualBell()&&(this.element.classList.add("visual-bell-active"),clearTimeout(this._visualBellTimer),this._visualBellTimer=window.setTimeout(function(){e.element.classList.remove("visual-bell-active")},200))},t.prototype.resize=function(e,t){isNaN(e)||isNaN(t)||(e!==this.cols||t!==this.rows?(e<T.MINIMUM_COLS&&(e=T.MINIMUM_COLS),t<T.MINIMUM_ROWS&&(t=T.MINIMUM_ROWS),this.buffers.resize(e,t),this._bufferService.resize(e,t),this.buffers.setupTabStops(this.cols),this._charSizeService&&this._charSizeService.measure(),this.refresh(0,this.rows-1),this._onResize.fire({cols:e,rows:t})):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure())},t.prototype.clear=function(){if(0!==this.buffer.ybase||0!==this.buffer.y){this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(var e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(S.DEFAULT_ATTR_DATA));this.refresh(0,this.rows-1),this._onScroll.fire(this.buffer.ydisp)}},t.prototype.is=function(e){return 0===(this.options.termName+"").indexOf(e)},t.prototype.handleTitle=function(e){this._onTitleChange.fire(e)},t.prototype.reset=function(){this.options.rows=this.rows,this.options.cols=this.cols;var e=this._customKeyEventHandler,t=this._inputHandler,i=this.cursorState,r=this.writeBuffer,n=this.writeBufferUtf8,s=this._writeInProgress,o=this._xoffSentToCatchUp,a=this._userScrolling;this._setup(),this._bufferService.reset(),this._coreService.reset(),this._coreMouseService.reset(),this._selectionService&&this._selectionService.reset(),this._customKeyEventHandler=e,this._inputHandler=t,this.cursorState=i,this.writeBuffer=r,this.writeBufferUtf8=n,this._writeInProgress=s,this._xoffSentToCatchUp=o,this._userScrolling=a,this.refresh(0,this.rows-1),this.viewport&&this.viewport.syncScrollArea()},t.prototype.cancel=function(e,t){if(this.options.cancelEvents||t)return e.preventDefault(),e.stopPropagation(),!1},t.prototype._visualBell=function(){return!1},t.prototype._soundBell=function(){return"sound"===this.options.bellStyle},t}(R.Disposable);t.Terminal=j},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(5),o=i(0),a=function(){function e(e,t,i,r,n,s){this._textarea=e,this._compositionView=t,this._bufferService=i,this._optionsService=r,this._charSizeService=n,this._coreService=s,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0}}return e.prototype.compositionstart=function(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._compositionView.classList.add("active")},e.prototype.compositionupdate=function(e){var t=this;this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout(function(){t._compositionPosition.end=t._textarea.value.length},0)},e.prototype.compositionend=function(){this._finalizeComposition(!0)},e.prototype.keydown=function(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)},e.prototype._finalizeComposition=function(e){var t=this;if(this._compositionView.classList.remove("active"),this._isComposing=!1,this._clearTextareaPosition(),e){var i={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout(function(){if(t._isSendingComposition){t._isSendingComposition=!1;var e=void 0;e=t._isComposing?t._textarea.value.substring(i.start,i.end):t._textarea.value.substring(i.start),t._coreService.triggerDataEvent(e,!0)}},0)}else{this._isSendingComposition=!1;var r=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(r,!0)}},e.prototype._handleAnyTextareaChanges=function(){var e=this,t=this._textarea.value;setTimeout(function(){if(!e._isComposing){var i=e._textarea.value.replace(t,"");i.length>0&&e._coreService.triggerDataEvent(i,!0)}},0)},e.prototype.updateCompositionElements=function(e){var t=this;if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){var i=Math.ceil(this._charSizeService.height*this._optionsService.options.lineHeight),r=this._bufferService.buffer.y*i,n=this._bufferService.buffer.x*this._charSizeService.width;this._compositionView.style.left=n+"px",this._compositionView.style.top=r+"px",this._compositionView.style.height=i+"px",this._compositionView.style.lineHeight=i+"px",this._compositionView.style.fontFamily=this._optionsService.options.fontFamily,this._compositionView.style.fontSize=this._optionsService.options.fontSize+"px";var s=this._compositionView.getBoundingClientRect();this._textarea.style.left=n+"px",this._textarea.style.top=r+"px",this._textarea.style.width=s.width+"px",this._textarea.style.height=s.height+"px",this._textarea.style.lineHeight=s.height+"px"}e||setTimeout(function(){return t.updateCompositionElements(!0)},0)}},e.prototype._clearTextareaPosition=function(){this._textarea.style.left="",this._textarea.style.top=""},e=r([n(2,o.IBufferService),n(3,o.IOptionsService),n(4,s.ICharSizeService),n(5,o.ICoreService)],e)}();t.CompositionHelper=a},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}),s=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},o=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var a=i(2),c=i(7),l=i(5),h=i(0),u=15,f=function(e){function t(t,i,r,n,s,o){var a=e.call(this)||this;return a._scrollLines=t,a._viewportElement=i,a._scrollArea=r,a._bufferService=n,a._charSizeService=s,a._renderService=o,a.scrollBarWidth=0,a._currentRowHeight=0,a._lastRecordedBufferLength=0,a._lastRecordedViewportHeight=0,a._lastRecordedBufferHeight=0,a._lastTouchY=0,a._lastScrollTop=0,a._wheelPartialScroll=0,a._refreshAnimationFrame=null,a._ignoreNextScrollEvent=!1,a.scrollBarWidth=a._viewportElement.offsetWidth-a._scrollArea.offsetWidth||u,a.register(c.addDisposableDomListener(a._viewportElement,"scroll",a._onScroll.bind(a))),setTimeout(function(){return a.syncScrollArea()},0),a}return n(t,e),t.prototype.onThemeChange=function(e){this._viewportElement.style.backgroundColor=e.background.css},t.prototype._refresh=function(){var e=this;null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=requestAnimationFrame(function(){return e._innerRefresh()}))},t.prototype._innerRefresh=function(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderService.dimensions.scaledCellHeight/window.devicePixelRatio,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;var e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderService.dimensions.canvasHeight);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}var t=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==t&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=t),this._refreshAnimationFrame=null},t.prototype.syncScrollArea=function(){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh();if(this._lastRecordedViewportHeight===this._renderService.dimensions.canvasHeight){var e=this._bufferService.buffer.ydisp*this._currentRowHeight;this._lastScrollTop===e&&this._lastScrollTop===this._viewportElement.scrollTop&&this._renderService.dimensions.scaledCellHeight/window.devicePixelRatio===this._currentRowHeight||this._refresh()}else this._refresh()},t.prototype._onScroll=function(e){if(this._lastScrollTop=this._viewportElement.scrollTop,this._viewportElement.offsetParent)if(this._ignoreNextScrollEvent)this._ignoreNextScrollEvent=!1;else{var t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._scrollLines(t,!0)}},t.prototype._bubbleScroll=function(e,t){var i=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&i<this._lastRecordedBufferHeight)||(e.cancelable&&e.preventDefault(),!1)},t.prototype.onWheel=function(e){var t=this._getPixelsScrolled(e);return 0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))},t.prototype._getPixelsScrolled=function(e){if(0===e.deltaY)return 0;var t=e.deltaY;return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=this._currentRowHeight:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._currentRowHeight*this._bufferService.rows),t},t.prototype.getLinesScrolled=function(e){if(0===e.deltaY)return 0;var t=e.deltaY;return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t},t.prototype.onTouchStart=function(e){this._lastTouchY=e.touches[0].pageY},t.prototype.onTouchMove=function(e){var t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))},t=s([o(3,h.IBufferService),o(4,l.ICharSizeService),o(5,l.IRenderService)],t)}(a.Disposable);t.Viewport=f},function(e,t,i){"use strict";function r(e){return e.replace(/\r?\n/g,"\r")}function n(e,t){return t?"[200~"+e+"[201~":e}function s(e,t,i,s){e=n(e=r(e),i),s.triggerDataEvent(e,!0),t.value=""}function o(e,t,i){var r=i.getBoundingClientRect(),n=e.clientX-r.left-10,s=e.clientY-r.top-10;t.style.position="absolute",t.style.width="20px",t.style.height="20px",t.style.left=n+"px",t.style.top=s+"px",t.style.zIndex="1000",t.focus(),setTimeout(function(){t.style.position=null,t.style.width=null,t.style.height=null,t.style.left=null,t.style.top=null,t.style.zIndex=null},200)}Object.defineProperty(t,"__esModule",{value:!0}),t.prepareTextForTerminal=r,t.bracketTextForPaste=n,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,i,r){e.stopPropagation(),e.clipboardData&&s(e.clipboardData.getData("text/plain"),t,i,r)},t.paste=s,t.moveTextAreaUnderMouseCursor=o,t.rightClickHandler=function(e,t,i,r,n){o(e,t,i),n&&!r.isClickInSelection(e)&&r.selectWordAtCursor(e),t.value=r.selectionText,t.select()}},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(11),o=i(17),a=i(18),c=i(38),l=i(2),h=i(14),u=i(8),f=i(15),_=i(1),d=i(3),p=i(4),v=i(6),g=i(20),y=i(22),m={"(":0,")":1,"*":2,"+":3,"-":1,".":2},b=function(){function e(e,t,i,r){this._bufferService=e,this._coreService=t,this._logService=i,this._optionsService=r,this._data=new Uint32Array(0)}return e.prototype.hook=function(e){this._data=new Uint32Array(0)},e.prototype.put=function(e,t,i){this._data=h.concat(this._data,e.subarray(t,i))},e.prototype.unhook=function(e){if(e){var t=u.utf32ToString(this._data);switch(this._data=new Uint32Array(0),t){case'"q':return this._coreService.triggerDataEvent(s.C0.ESC+'P1$r0"q'+s.C0.ESC+"\\");case'"p':return this._coreService.triggerDataEvent(s.C0.ESC+'P1$r61"p'+s.C0.ESC+"\\");case"r":var i=this._bufferService.buffer.scrollTop+1+";"+(this._bufferService.buffer.scrollBottom+1)+"r";return this._coreService.triggerDataEvent(s.C0.ESC+"P1$r"+i+s.C0.ESC+"\\");case"m":return this._coreService.triggerDataEvent(s.C0.ESC+"P1$r0m"+s.C0.ESC+"\\");case" q":var r={block:2,underline:4,bar:6}[this._optionsService.options.cursorStyle];return r-=this._optionsService.options.cursorBlink?1:0,this._coreService.triggerDataEvent(s.C0.ESC+"P1$r"+r+" q"+s.C0.ESC+"\\");default:this._logService.debug("Unknown DCS $q %s",t),this._coreService.triggerDataEvent(s.C0.ESC+"P0$r"+s.C0.ESC+"\\")}}else this._data=new Uint32Array(0)},e}(),C=function(e){function t(t,i,r,n,a,l,h,f){void 0===f&&(f=new c.EscapeSequenceParser);var d=e.call(this)||this;d._terminal=t,d._bufferService=i,d._coreService=r,d._dirtyRowService=n,d._logService=a,d._optionsService=l,d._coreMouseService=h,d._parser=f,d._parseBuffer=new Uint32Array(4096),d._stringDecoder=new u.StringToUtf32,d._utf8Decoder=new u.Utf8ToUtf32,d._workCell=new p.CellData,d._onCursorMove=new _.EventEmitter,d._onLineFeed=new _.EventEmitter,d._onScroll=new _.EventEmitter,d.register(d._parser),d._parser.setCsiHandlerFallback(function(e,t){d._logService.debug("Unknown CSI code: ",{identifier:d._parser.identToString(e),params:t.toArray()})}),d._parser.setEscHandlerFallback(function(e){d._logService.debug("Unknown ESC code: ",{identifier:d._parser.identToString(e)})}),d._parser.setExecuteHandlerFallback(function(e){d._logService.debug("Unknown EXECUTE code: ",{code:e})}),d._parser.setOscHandlerFallback(function(e,t,i){d._logService.debug("Unknown OSC code: ",{identifier:e,action:t,data:i})}),d._parser.setDcsHandlerFallback(function(e,t,i){"HOOK"===t&&(i=i.toArray()),d._logService.debug("Unknown DCS code: ",{identifier:d._parser.identToString(e),action:t,payload:i})}),d._parser.setPrintHandler(function(e,t,i){return d.print(e,t,i)}),d._parser.setCsiHandler({final:"@"},function(e){return d.insertChars(e)}),d._parser.setCsiHandler({final:"A"},function(e){return d.cursorUp(e)}),d._parser.setCsiHandler({final:"B"},function(e){return d.cursorDown(e)}),d._parser.setCsiHandler({final:"C"},function(e){return d.cursorForward(e)}),d._parser.setCsiHandler({final:"D"},function(e){return d.cursorBackward(e)}),d._parser.setCsiHandler({final:"E"},function(e){return d.cursorNextLine(e)}),d._parser.setCsiHandler({final:"F"},function(e){return d.cursorPrecedingLine(e)}),d._parser.setCsiHandler({final:"G"},function(e){return d.cursorCharAbsolute(e)}),d._parser.setCsiHandler({final:"H"},function(e){return d.cursorPosition(e)}),d._parser.setCsiHandler({final:"I"},function(e){return d.cursorForwardTab(e)}),d._parser.setCsiHandler({final:"J"},function(e){return d.eraseInDisplay(e)}),d._parser.setCsiHandler({prefix:"?",final:"J"},function(e){return d.eraseInDisplay(e)}),d._parser.setCsiHandler({final:"K"},function(e){return d.eraseInLine(e)}),d._parser.setCsiHandler({prefix:"?",final:"K"},function(e){return d.eraseInLine(e)}),d._parser.setCsiHandler({final:"L"},function(e){return d.insertLines(e)}),d._parser.setCsiHandler({final:"M"},function(e){return d.deleteLines(e)}),d._parser.setCsiHandler({final:"P"},function(e){return d.deleteChars(e)}),d._parser.setCsiHandler({final:"S"},function(e){return d.scrollUp(e)}),d._parser.setCsiHandler({final:"T"},function(e){return d.scrollDown(e)}),d._parser.setCsiHandler({final:"X"},function(e){return d.eraseChars(e)}),d._parser.setCsiHandler({final:"Z"},function(e){return d.cursorBackwardTab(e)}),d._parser.setCsiHandler({final:"`"},function(e){return d.charPosAbsolute(e)}),d._parser.setCsiHandler({final:"a"},function(e){return d.hPositionRelative(e)}),d._parser.setCsiHandler({final:"b"},function(e){return d.repeatPrecedingCharacter(e)}),d._parser.setCsiHandler({final:"c"},function(e){return d.sendDeviceAttributesPrimary(e)}),d._parser.setCsiHandler({prefix:">",final:"c"},function(e){return d.sendDeviceAttributesSecondary(e)}),d._parser.setCsiHandler({final:"d"},function(e){return d.linePosAbsolute(e)}),d._parser.setCsiHandler({final:"e"},function(e){return d.vPositionRelative(e)}),d._parser.setCsiHandler({final:"f"},function(e){return d.hVPosition(e)}),d._parser.setCsiHandler({final:"g"},function(e){return d.tabClear(e)}),d._parser.setCsiHandler({final:"h"},function(e){return d.setMode(e)}),d._parser.setCsiHandler({prefix:"?",final:"h"},function(e){return d.setModePrivate(e)}),d._parser.setCsiHandler({final:"l"},function(e){return d.resetMode(e)}),d._parser.setCsiHandler({prefix:"?",final:"l"},function(e){return d.resetModePrivate(e)}),d._parser.setCsiHandler({final:"m"},function(e){return d.charAttributes(e)}),d._parser.setCsiHandler({final:"n"},function(e){return d.deviceStatus(e)}),d._parser.setCsiHandler({prefix:"?",final:"n"},function(e){return d.deviceStatusPrivate(e)}),d._parser.setCsiHandler({intermediates:"!",final:"p"},function(e){return d.softReset(e)}),d._parser.setCsiHandler({intermediates:" ",final:"q"},function(e){return d.setCursorStyle(e)}),d._parser.setCsiHandler({final:"r"},function(e){return d.setScrollRegion(e)}),d._parser.setCsiHandler({final:"s"},function(e){return d.saveCursor(e)}),d._parser.setCsiHandler({final:"u"},function(e){return d.restoreCursor(e)}),d._parser.setExecuteHandler(s.C0.BEL,function(){return d.bell()}),d._parser.setExecuteHandler(s.C0.LF,function(){return d.lineFeed()}),d._parser.setExecuteHandler(s.C0.VT,function(){return d.lineFeed()}),d._parser.setExecuteHandler(s.C0.FF,function(){return d.lineFeed()}),d._parser.setExecuteHandler(s.C0.CR,function(){return d.carriageReturn()}),d._parser.setExecuteHandler(s.C0.BS,function(){return d.backspace()}),d._parser.setExecuteHandler(s.C0.HT,function(){return d.tab()}),d._parser.setExecuteHandler(s.C0.SO,function(){return d.shiftOut()}),d._parser.setExecuteHandler(s.C0.SI,function(){return d.shiftIn()}),d._parser.setExecuteHandler(s.C1.IND,function(){return d.index()}),d._parser.setExecuteHandler(s.C1.NEL,function(){return d.nextLine()}),d._parser.setExecuteHandler(s.C1.HTS,function(){return d.tabSet()}),d._parser.setOscHandler(0,new g.OscHandler(function(e){return d.setTitle(e)})),d._parser.setOscHandler(2,new g.OscHandler(function(e){return d.setTitle(e)})),d._parser.setEscHandler({final:"7"},function(){return d.saveCursor()}),d._parser.setEscHandler({final:"8"},function(){return d.restoreCursor()}),d._parser.setEscHandler({final:"D"},function(){return d.index()}),d._parser.setEscHandler({final:"E"},function(){return d.nextLine()}),d._parser.setEscHandler({final:"H"},function(){return d.tabSet()}),d._parser.setEscHandler({final:"M"},function(){return d.reverseIndex()}),d._parser.setEscHandler({final:"="},function(){return d.keypadApplicationMode()}),d._parser.setEscHandler({final:">"},function(){return d.keypadNumericMode()}),d._parser.setEscHandler({final:"c"},function(){return d.reset()}),d._parser.setEscHandler({final:"n"},function(){return d.setgLevel(2)}),d._parser.setEscHandler({final:"o"},function(){return d.setgLevel(3)}),d._parser.setEscHandler({final:"|"},function(){return d.setgLevel(3)}),d._parser.setEscHandler({final:"}"},function(){return d.setgLevel(2)}),d._parser.setEscHandler({final:"~"},function(){return d.setgLevel(1)}),d._parser.setEscHandler({intermediates:"%",final:"@"},function(){return d.selectDefaultCharset()}),d._parser.setEscHandler({intermediates:"%",final:"G"},function(){return d.selectDefaultCharset()});var v=function(e){y._parser.setEscHandler({intermediates:"(",final:e},function(){return d.selectCharset("("+e)}),y._parser.setEscHandler({intermediates:")",final:e},function(){return d.selectCharset(")"+e)}),y._parser.setEscHandler({intermediates:"*",final:e},function(){return d.selectCharset("*"+e)}),y._parser.setEscHandler({intermediates:"+",final:e},function(){return d.selectCharset("+"+e)}),y._parser.setEscHandler({intermediates:"-",final:e},function(){return d.selectCharset("-"+e)}),y._parser.setEscHandler({intermediates:".",final:e},function(){return d.selectCharset("."+e)}),y._parser.setEscHandler({intermediates:"/",final:e},function(){return d.selectCharset("/"+e)})},y=this;for(var m in o.CHARSETS)v(m);return d._parser.setEscHandler({intermediates:"#",final:"8"},function(){return d.screenAlignmentPattern()}),d._parser.setErrorHandler(function(e){return d._logService.error("Parsing error: ",e),e}),d._parser.setDcsHandler({intermediates:"$",final:"q"},new b(d._bufferService,d._coreService,d._logService,d._optionsService)),d}return n(t,e),Object.defineProperty(t.prototype,"onCursorMove",{get:function(){return this._onCursorMove.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onLineFeed",{get:function(){return this._onLineFeed.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onScroll",{get:function(){return this._onScroll.event},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.parse=function(e){var t=this._bufferService.buffer,i=t.x,r=t.y;this._logService.debug("parsing data",e),this._parseBuffer.length<e.length&&(this._parseBuffer=new Uint32Array(e.length)),this._parser.parse(this._parseBuffer,this._stringDecoder.decode(e,this._parseBuffer)),(t=this._bufferService.buffer).x===i&&t.y===r||this._onCursorMove.fire()},t.prototype.parseUtf8=function(e){var t=this._bufferService.buffer,i=t.x,r=t.y;this._logService.debug("parsing data",e),this._parseBuffer.length<e.length&&(this._parseBuffer=new Uint32Array(e.length)),this._parser.parse(this._parseBuffer,this._utf8Decoder.decode(e,this._parseBuffer)),(t=this._bufferService.buffer).x===i&&t.y===r||this._onCursorMove.fire()},t.prototype.print=function(e,t,i){var r,n,s=this._bufferService.buffer,o=this._terminal.charset,c=this._optionsService.options.screenReaderMode,l=this._bufferService.cols,h=this._terminal.wraparoundMode,f=this._terminal.insertMode,_=this._terminal.curAttrData,p=s.lines.get(s.y+s.ybase);this._dirtyRowService.markDirty(s.y);for(var v=t;v<i;++v){if(r=e[v],n=a.wcwidth(r),r<127&&o){var g=o[String.fromCharCode(r)];g&&(r=g.charCodeAt(0))}if(c&&this._terminal.onA11yCharEmitter.fire(u.stringFromCodePoint(r)),n||!s.x){if(s.x+n-1>=l)if(h)s.x=0,s.y++,s.y===s.scrollBottom+1?(s.y--,this._terminal.scroll(!0)):(s.y>=this._bufferService.rows&&(s.y=this._bufferService.rows-1),s.lines.get(s.y).isWrapped=!0),p=s.lines.get(s.y+s.ybase);else if(s.x=l-1,2===n)continue;if(f&&(p.insertCells(s.x,n,s.getNullCell(_)),2===p.getWidth(l-1)&&p.setCellFromCodePoint(l-1,d.NULL_CELL_CODE,d.NULL_CELL_WIDTH,_.fg,_.bg)),p.setCellFromCodePoint(s.x++,r,n,_.fg,_.bg),n>0)for(;--n;)p.setCellFromCodePoint(s.x++,0,0,_.fg,_.bg)}else p.getWidth(s.x-1)?p.addCodepointToCell(s.x-1,r):p.addCodepointToCell(s.x-2,r)}i&&(p.loadCell(s.x-1,this._workCell),2===this._workCell.getWidth()||this._workCell.getCode()>65535?this._parser.precedingCodepoint=0:this._workCell.isCombined()?this._parser.precedingCodepoint=this._workCell.getChars().charCodeAt(0):this._parser.precedingCodepoint=this._workCell.content),this._dirtyRowService.markDirty(s.y)},t.prototype.addCsiHandler=function(e,t){return this._parser.addCsiHandler(e,t)},t.prototype.addDcsHandler=function(e,t){return this._parser.addDcsHandler(e,new y.DcsHandler(t))},t.prototype.addEscHandler=function(e,t){return this._parser.addEscHandler(e,t)},t.prototype.addOscHandler=function(e,t){return this._parser.addOscHandler(e,new g.OscHandler(t))},t.prototype.bell=function(){this._terminal.bell()},t.prototype.lineFeed=function(){var e=this._bufferService.buffer;this._optionsService.options.convertEol&&(e.x=0),e.y++,e.y===e.scrollBottom+1?(e.y--,this._terminal.scroll()):e.y>=this._bufferService.rows&&(e.y=this._bufferService.rows-1),e.x>=this._bufferService.cols&&e.x--,this._onLineFeed.fire()},t.prototype.carriageReturn=function(){this._bufferService.buffer.x=0},t.prototype.backspace=function(){this._restrictCursor(),this._bufferService.buffer.x>0&&this._bufferService.buffer.x--},t.prototype.tab=function(){if(!(this._bufferService.buffer.x>=this._bufferService.cols)){var e=this._bufferService.buffer.x;this._bufferService.buffer.x=this._bufferService.buffer.nextStop(),this._optionsService.options.screenReaderMode&&this._terminal.onA11yTabEmitter.fire(this._bufferService.buffer.x-e)}},t.prototype.shiftOut=function(){this._terminal.setgLevel(1)},t.prototype.shiftIn=function(){this._terminal.setgLevel(0)},t.prototype._restrictCursor=function(){this._bufferService.buffer.x=Math.min(this._bufferService.cols-1,Math.max(0,this._bufferService.buffer.x)),this._bufferService.buffer.y=this._terminal.originMode?Math.min(this._bufferService.buffer.scrollBottom,Math.max(this._bufferService.buffer.scrollTop,this._bufferService.buffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._bufferService.buffer.y))},t.prototype._setCursor=function(e,t){this._terminal.originMode?(this._bufferService.buffer.x=e,this._bufferService.buffer.y=this._bufferService.buffer.scrollTop+t):(this._bufferService.buffer.x=e,this._bufferService.buffer.y=t),this._restrictCursor()},t.prototype._moveCursor=function(e,t){this._restrictCursor(),this._setCursor(this._bufferService.buffer.x+e,this._bufferService.buffer.y+t)},t.prototype.cursorUp=function(e){var t=this._bufferService.buffer.y-this._bufferService.buffer.scrollTop;t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1))},t.prototype.cursorDown=function(e){var t=this._bufferService.buffer.scrollBottom-this._bufferService.buffer.y;t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1)},t.prototype.cursorForward=function(e){this._moveCursor(e.params[0]||1,0)},t.prototype.cursorBackward=function(e){this._moveCursor(-(e.params[0]||1),0)},t.prototype.cursorNextLine=function(e){this.cursorDown(e),this._bufferService.buffer.x=0},t.prototype.cursorPrecedingLine=function(e){this.cursorUp(e),this._bufferService.buffer.x=0},t.prototype.cursorCharAbsolute=function(e){this._setCursor((e.params[0]||1)-1,this._bufferService.buffer.y)},t.prototype.cursorPosition=function(e){this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1)},t.prototype.charPosAbsolute=function(e){this._setCursor((e.params[0]||1)-1,this._bufferService.buffer.y)},t.prototype.hPositionRelative=function(e){this._moveCursor(e.params[0]||1,0)},t.prototype.linePosAbsolute=function(e){this._setCursor(this._bufferService.buffer.x,(e.params[0]||1)-1)},t.prototype.vPositionRelative=function(e){this._moveCursor(0,e.params[0]||1)},t.prototype.hVPosition=function(e){this.cursorPosition(e)},t.prototype.tabClear=function(e){var t=e.params[0];0===t?delete this._bufferService.buffer.tabs[this._bufferService.buffer.x]:3===t&&(this._bufferService.buffer.tabs={})},t.prototype.cursorForwardTab=function(e){if(!(this._bufferService.buffer.x>=this._bufferService.cols))for(var t=e.params[0]||1;t--;)this._bufferService.buffer.x=this._bufferService.buffer.nextStop()},t.prototype.cursorBackwardTab=function(e){if(!(this._bufferService.buffer.x>=this._bufferService.cols))for(var t=e.params[0]||1,i=this._bufferService.buffer;t--;)i.x=i.prevStop()},t.prototype._eraseInBufferLine=function(e,t,i,r){void 0===r&&(r=!1);var n=this._bufferService.buffer.lines.get(this._bufferService.buffer.ybase+e);n.replaceCells(t,i,this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),r&&(n.isWrapped=!1)},t.prototype._resetBufferLine=function(e){var t=this._bufferService.buffer.lines.get(this._bufferService.buffer.ybase+e);t.fill(this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),t.isWrapped=!1},t.prototype.eraseInDisplay=function(e){var t;switch(this._restrictCursor(),e.params[0]){case 0:for(t=this._bufferService.buffer.y,this._dirtyRowService.markDirty(t),this._eraseInBufferLine(t++,this._bufferService.buffer.x,this._bufferService.cols,0===this._bufferService.buffer.x);t<this._bufferService.rows;t++)this._resetBufferLine(t);this._dirtyRowService.markDirty(t);break;case 1:for(t=this._bufferService.buffer.y,this._dirtyRowService.markDirty(t),this._eraseInBufferLine(t,0,this._bufferService.buffer.x+1,!0),this._bufferService.buffer.x+1>=this._bufferService.cols&&(this._bufferService.buffer.lines.get(t+1).isWrapped=!1);t--;)this._resetBufferLine(t);this._dirtyRowService.markDirty(0);break;case 2:for(t=this._bufferService.rows,this._dirtyRowService.markDirty(t-1);t--;)this._resetBufferLine(t);this._dirtyRowService.markDirty(0);break;case 3:var i=this._bufferService.buffer.lines.length-this._bufferService.rows;i>0&&(this._bufferService.buffer.lines.trimStart(i),this._bufferService.buffer.ybase=Math.max(this._bufferService.buffer.ybase-i,0),this._bufferService.buffer.ydisp=Math.max(this._bufferService.buffer.ydisp-i,0),this._onScroll.fire(0))}},t.prototype.eraseInLine=function(e){switch(this._restrictCursor(),e.params[0]){case 0:this._eraseInBufferLine(this._bufferService.buffer.y,this._bufferService.buffer.x,this._bufferService.cols);break;case 1:this._eraseInBufferLine(this._bufferService.buffer.y,0,this._bufferService.buffer.x+1);break;case 2:this._eraseInBufferLine(this._bufferService.buffer.y,0,this._bufferService.cols)}this._dirtyRowService.markDirty(this._bufferService.buffer.y)},t.prototype.insertLines=function(e){this._restrictCursor();var t=e.params[0]||1,i=this._bufferService.buffer;if(!(i.y>i.scrollBottom||i.y<i.scrollTop)){for(var r=i.y+i.ybase,n=this._bufferService.rows-1-i.scrollBottom,s=this._bufferService.rows-1+i.ybase-n+1;t--;)i.lines.splice(s-1,1),i.lines.splice(r,0,i.getBlankLine(this._terminal.eraseAttrData()));this._dirtyRowService.markRangeDirty(i.y,i.scrollBottom),i.x=0}},t.prototype.deleteLines=function(e){this._restrictCursor();var t=e.params[0]||1,i=this._bufferService.buffer;if(!(i.y>i.scrollBottom||i.y<i.scrollTop)){var r,n=i.y+i.ybase;for(r=this._bufferService.rows-1-i.scrollBottom,r=this._bufferService.rows-1+i.ybase-r;t--;)i.lines.splice(n,1),i.lines.splice(r,0,i.getBlankLine(this._terminal.eraseAttrData()));this._dirtyRowService.markRangeDirty(i.y,i.scrollBottom),i.x=0}},t.prototype.insertChars=function(e){this._restrictCursor();var t=this._bufferService.buffer.lines.get(this._bufferService.buffer.y+this._bufferService.buffer.ybase);t&&(t.insertCells(this._bufferService.buffer.x,e.params[0]||1,this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),this._dirtyRowService.markDirty(this._bufferService.buffer.y))},t.prototype.deleteChars=function(e){this._restrictCursor();var t=this._bufferService.buffer.lines.get(this._bufferService.buffer.y+this._bufferService.buffer.ybase);t&&(t.deleteCells(this._bufferService.buffer.x,e.params[0]||1,this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),this._dirtyRowService.markDirty(this._bufferService.buffer.y))},t.prototype.scrollUp=function(e){for(var t=e.params[0]||1,i=this._bufferService.buffer;t--;)i.lines.splice(i.ybase+i.scrollTop,1),i.lines.splice(i.ybase+i.scrollBottom,0,i.getBlankLine(this._terminal.eraseAttrData()));this._dirtyRowService.markRangeDirty(i.scrollTop,i.scrollBottom)},t.prototype.scrollDown=function(e){if(e.length<2){for(var t=e.params[0]||1,i=this._bufferService.buffer;t--;)i.lines.splice(i.ybase+i.scrollBottom,1),i.lines.splice(i.ybase+i.scrollTop,0,i.getBlankLine(this._terminal.eraseAttrData()));this._dirtyRowService.markRangeDirty(i.scrollTop,i.scrollBottom)}},t.prototype.eraseChars=function(e){this._restrictCursor();var t=this._bufferService.buffer.lines.get(this._bufferService.buffer.y+this._bufferService.buffer.ybase);t&&(t.replaceCells(this._bufferService.buffer.x,this._bufferService.buffer.x+(e.params[0]||1),this._bufferService.buffer.getNullCell(this._terminal.eraseAttrData())),this._dirtyRowService.markDirty(this._bufferService.buffer.y))},t.prototype.repeatPrecedingCharacter=function(e){if(this._parser.precedingCodepoint){for(var t=e.params[0]||1,i=new Uint32Array(t),r=0;r<t;++r)i[r]=this._parser.precedingCodepoint;this.print(i,0,i.length)}},t.prototype.sendDeviceAttributesPrimary=function(e){e.params[0]>0||(this._terminal.is("xterm")||this._terminal.is("rxvt-unicode")||this._terminal.is("screen")?this._coreService.triggerDataEvent(s.C0.ESC+"[?1;2c"):this._terminal.is("linux")&&this._coreService.triggerDataEvent(s.C0.ESC+"[?6c"))},t.prototype.sendDeviceAttributesSecondary=function(e){e.params[0]>0||(this._terminal.is("xterm")?this._coreService.triggerDataEvent(s.C0.ESC+"[>0;276;0c"):this._terminal.is("rxvt-unicode")?this._coreService.triggerDataEvent(s.C0.ESC+"[>85;95;0c"):this._terminal.is("linux")?this._coreService.triggerDataEvent(e.params[0]+"c"):this._terminal.is("screen")&&this._coreService.triggerDataEvent(s.C0.ESC+"[>83;40003;0c"))},t.prototype.setMode=function(e){for(var t=0;t<e.length;t++)switch(e.params[t]){case 4:this._terminal.insertMode=!0}},t.prototype.setModePrivate=function(e){for(var t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._terminal.setgCharset(0,o.DEFAULT_CHARSET),this._terminal.setgCharset(1,o.DEFAULT_CHARSET),this._terminal.setgCharset(2,o.DEFAULT_CHARSET),this._terminal.setgCharset(3,o.DEFAULT_CHARSET);break;case 3:this._terminal.savedCols=this._bufferService.cols,this._terminal.resize(132,this._bufferService.rows),this._terminal.reset();break;case 6:this._terminal.originMode=!0,this._setCursor(0,0);break;case 7:this._terminal.wraparoundMode=!0;break;case 12:break;case 66:this._logService.debug("Serial port requested application keypad."),this._terminal.applicationKeypad=!0,this._terminal.viewport&&this._terminal.viewport.syncScrollArea();break;case 9:this._coreMouseService.activeProtocol="X10";break;case 1e3:this._coreMouseService.activeProtocol="VT200";break;case 1002:this._coreMouseService.activeProtocol="DRAG";break;case 1003:this._coreMouseService.activeProtocol="ANY";break;case 1004:this._terminal.sendFocus=!0;break;case 1005:this._coreMouseService.activeEncoding="UTF8";break;case 1006:this._coreMouseService.activeEncoding="SGR";break;case 1015:this._coreMouseService.activeEncoding="URXVT";break;case 25:this._terminal.cursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._terminal.eraseAttrData()),this._terminal.refresh(0,this._bufferService.rows-1),this._terminal.viewport&&this._terminal.viewport.syncScrollArea(),this._terminal.showCursor();break;case 2004:this._terminal.bracketedPasteMode=!0}},t.prototype.resetMode=function(e){for(var t=0;t<e.length;t++)switch(e.params[t]){case 4:this._terminal.insertMode=!1}},t.prototype.resetModePrivate=function(e){for(var t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:132===this._bufferService.cols&&this._terminal.savedCols&&this._terminal.resize(this._terminal.savedCols,this._bufferService.rows),delete this._terminal.savedCols,this._terminal.reset();break;case 6:this._terminal.originMode=!1,this._setCursor(0,0);break;case 7:this._terminal.wraparoundMode=!1;break;case 12:break;case 66:this._logService.debug("Switching back to normal keypad."),this._terminal.applicationKeypad=!1,this._terminal.viewport&&this._terminal.viewport.syncScrollArea();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol="NONE";break;case 1004:this._terminal.sendFocus=!1;break;case 1005:case 1006:case 1015:this._coreMouseService.activeEncoding="DEFAULT";break;case 25:this._terminal.cursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),1049===e.params[t]&&this.restoreCursor(),this._terminal.refresh(0,this._bufferService.rows-1),this._terminal.viewport&&this._terminal.viewport.syncScrollArea(),this._terminal.showCursor();break;case 2004:this._terminal.bracketedPasteMode=!1}},t.prototype._extractColor=function(e,t,i){var r=[0,0,-1,0,0,0],n=0,s=0;do{if(r[s+n]=e.params[t+s],e.hasSubParams(t+s)){var o=e.getSubParams(t+s),a=0;do{5===r[1]&&(n=1),r[s+a+1+n]=o[a]}while(++a<o.length&&a+s+1+n<r.length);break}if(5===r[1]&&s+n>=2||2===r[1]&&s+n>=5)break;r[1]&&(n=1)}while(++s+t<e.length&&s+n<r.length);for(a=2;a<r.length;++a)-1===r[a]&&(r[a]=0);return 38===r[0]?2===r[1]?(i.fg|=50331648,i.fg&=-16777216,i.fg|=v.AttributeData.fromColorRGB([r[3],r[4],r[5]])):5===r[1]&&(i.fg&=-50331904,i.fg|=33554432|255&r[3]):48===r[0]&&(2===r[1]?(i.bg|=50331648,i.bg&=-16777216,i.bg|=v.AttributeData.fromColorRGB([r[3],r[4],r[5]])):5===r[1]&&(i.bg&=-50331904,i.bg|=33554432|255&r[3])),s},t.prototype.charAttributes=function(e){if(1===e.length&&0===e.params[0])return this._terminal.curAttrData.fg=f.DEFAULT_ATTR_DATA.fg,void(this._terminal.curAttrData.bg=f.DEFAULT_ATTR_DATA.bg);for(var t,i=e.length,r=this._terminal.curAttrData,n=0;n<i;n++)(t=e.params[n])>=30&&t<=37?(r.fg&=-50331904,r.fg|=16777216|t-30):t>=40&&t<=47?(r.bg&=-50331904,r.bg|=16777216|t-40):t>=90&&t<=97?(r.fg&=-50331904,r.fg|=16777224|t-90):t>=100&&t<=107?(r.bg&=-50331904,r.bg|=16777224|t-100):0===t?(r.fg=f.DEFAULT_ATTR_DATA.fg,r.bg=f.DEFAULT_ATTR_DATA.bg):1===t?r.fg|=134217728:3===t?r.bg|=67108864:4===t?r.fg|=268435456:5===t?r.fg|=536870912:7===t?r.fg|=67108864:8===t?r.fg|=1073741824:2===t?r.bg|=134217728:22===t?(r.fg&=-134217729,r.bg&=-134217729):23===t?r.bg&=-67108865:24===t?r.fg&=-268435457:25===t?r.fg&=-536870913:27===t?r.fg&=-67108865:28===t?r.fg&=-1073741825:39===t?(r.fg&=-67108864,r.fg|=16777215&f.DEFAULT_ATTR_DATA.fg):49===t?(r.bg&=-67108864,r.bg|=16777215&f.DEFAULT_ATTR_DATA.bg):38===t||48===t?n+=this._extractColor(e,n,r):100===t?(r.fg&=-67108864,r.fg|=16777215&f.DEFAULT_ATTR_DATA.fg,r.bg&=-67108864,r.bg|=16777215&f.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",t)},t.prototype.deviceStatus=function(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(s.C0.ESC+"[0n");break;case 6:var t=this._bufferService.buffer.y+1,i=this._bufferService.buffer.x+1;this._coreService.triggerDataEvent(s.C0.ESC+"["+t+";"+i+"R")}},t.prototype.deviceStatusPrivate=function(e){switch(e.params[0]){case 6:var t=this._bufferService.buffer.y+1,i=this._bufferService.buffer.x+1;this._coreService.triggerDataEvent(s.C0.ESC+"[?"+t+";"+i+"R")}},t.prototype.softReset=function(e){this._terminal.cursorHidden=!1,this._terminal.insertMode=!1,this._terminal.originMode=!1,this._terminal.wraparoundMode=!0,this._terminal.applicationKeypad=!1,this._terminal.viewport&&this._terminal.viewport.syncScrollArea(),this._coreService.decPrivateModes.applicationCursorKeys=!1,this._bufferService.buffer.scrollTop=0,this._bufferService.buffer.scrollBottom=this._bufferService.rows-1,this._terminal.curAttrData=f.DEFAULT_ATTR_DATA.clone(),this._bufferService.buffer.x=this._bufferService.buffer.y=0,this._terminal.charset=null,this._terminal.glevel=0,this._terminal.charsets=[null]},t.prototype.setCursorStyle=function(e){var t=e.params[0]||1;switch(t){case 1:case 2:this._optionsService.options.cursorStyle="block";break;case 3:case 4:this._optionsService.options.cursorStyle="underline";break;case 5:case 6:this._optionsService.options.cursorStyle="bar"}var i=t%2==1;this._optionsService.options.cursorBlink=i},t.prototype.setScrollRegion=function(e){var t,i=e.params[0]||1;(e.length<2||(t=e.params[1])>this._bufferService.rows||0===t)&&(t=this._bufferService.rows),t>i&&(this._bufferService.buffer.scrollTop=i-1,this._bufferService.buffer.scrollBottom=t-1,this._setCursor(0,0))},t.prototype.saveCursor=function(e){this._bufferService.buffer.savedX=this._bufferService.buffer.x,this._bufferService.buffer.savedY=this._bufferService.buffer.ybase+this._bufferService.buffer.y,this._bufferService.buffer.savedCurAttrData.fg=this._terminal.curAttrData.fg,this._bufferService.buffer.savedCurAttrData.bg=this._terminal.curAttrData.bg,this._bufferService.buffer.savedCharset=this._terminal.charset},t.prototype.restoreCursor=function(e){this._bufferService.buffer.x=this._bufferService.buffer.savedX||0,this._bufferService.buffer.y=Math.max(this._bufferService.buffer.savedY-this._bufferService.buffer.ybase,0),this._terminal.curAttrData.fg=this._bufferService.buffer.savedCurAttrData.fg,this._terminal.curAttrData.bg=this._bufferService.buffer.savedCurAttrData.bg,this._terminal.charset=this._savedCharset,this._bufferService.buffer.savedCharset&&(this._terminal.charset=this._bufferService.buffer.savedCharset),this._restrictCursor()},t.prototype.setTitle=function(e){this._terminal.handleTitle(e)},t.prototype.nextLine=function(){this._bufferService.buffer.x=0,this.index()},t.prototype.keypadApplicationMode=function(){this._logService.debug("Serial port requested application keypad."),this._terminal.applicationKeypad=!0,this._terminal.viewport&&this._terminal.viewport.syncScrollArea()},t.prototype.keypadNumericMode=function(){this._logService.debug("Switching back to normal keypad."),this._terminal.applicationKeypad=!1,this._terminal.viewport&&this._terminal.viewport.syncScrollArea()},t.prototype.selectDefaultCharset=function(){this._terminal.setgLevel(0),this._terminal.setgCharset(0,o.DEFAULT_CHARSET)},t.prototype.selectCharset=function(e){2===e.length?"/"!==e[0]&&this._terminal.setgCharset(m[e[0]],o.CHARSETS[e[1]]||o.DEFAULT_CHARSET):this.selectDefaultCharset()},t.prototype.index=function(){this._restrictCursor();var e=this._bufferService.buffer;this._bufferService.buffer.y++,e.y===e.scrollBottom+1?(e.y--,this._terminal.scroll()):e.y>=this._bufferService.rows&&(e.y=this._bufferService.rows-1),this._restrictCursor()},t.prototype.tabSet=function(){this._bufferService.buffer.tabs[this._bufferService.buffer.x]=!0},t.prototype.reverseIndex=function(){this._restrictCursor();var e=this._bufferService.buffer;if(e.y===e.scrollTop){var t=e.scrollBottom-e.scrollTop;e.lines.shiftElements(e.y+e.ybase,t,1),e.lines.set(e.y+e.ybase,e.getBlankLine(this._terminal.eraseAttrData())),this._dirtyRowService.markRangeDirty(e.scrollTop,e.scrollBottom)}else e.y--,this._restrictCursor()},t.prototype.reset=function(){this._parser.reset(),this._terminal.reset()},t.prototype.setgLevel=function(e){this._terminal.setgLevel(e)},t.prototype.screenAlignmentPattern=function(){var e=new p.CellData;e.content=1<<22|"E".charCodeAt(0),e.fg=this._terminal.curAttrData.fg,e.bg=this._terminal.curAttrData.bg;var t=this._bufferService.buffer;this._setCursor(0,0);for(var i=0;i<this._bufferService.rows;++i){var r=t.y+t.ybase+i;t.lines.get(r).fill(e),t.lines.get(r).isWrapped=!1}this._dirtyRowService.markAllDirty(),this._setCursor(0,0)},t}(l.Disposable);t.InputHandler=C},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(2),o=i(14),a=i(19),c=i(20),l=i(22),h=function(){function e(e){this.table=new Uint8Array(e)}return e.prototype.setDefault=function(e,t){o.fill(this.table,e<<4|t)},e.prototype.add=function(e,t,i,r){this.table[t<<8|e]=i<<4|r},e.prototype.addMany=function(e,t,i,r){for(var n=0;n<e.length;n++)this.table[t<<8|e[n]]=i<<4|r},e}();t.TransitionTable=h;t.VT500_TRANSITION_TABLE=function(){var e=new h(4095),t=Array.apply(null,Array(256)).map(function(e,t){return t}),i=function(e,i){return t.slice(e,i)},r=i(32,127),n=i(0,24);n.push(25),n.push.apply(n,i(28,32));var s,o=i(0,14);for(s in e.setDefault(1,0),e.addMany(r,0,2,0),o)e.addMany([24,26,153,154],s,3,0),e.addMany(i(128,144),s,3,0),e.addMany(i(144,152),s,3,0),e.add(156,s,0,0),e.add(27,s,11,1),e.add(157,s,4,8),e.addMany([152,158,159],s,0,7),e.add(155,s,11,3),e.add(144,s,11,9);return e.addMany(n,0,3,0),e.addMany(n,1,3,1),e.add(127,1,0,1),e.addMany(n,8,0,8),e.addMany(n,3,3,3),e.add(127,3,0,3),e.addMany(n,4,3,4),e.add(127,4,0,4),e.addMany(n,6,3,6),e.addMany(n,5,3,5),e.add(127,5,0,5),e.addMany(n,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(r,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(i(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(r,7,0,7),e.addMany(n,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(i(64,127),3,7,0),e.addMany(i(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(i(48,60),4,8,4),e.addMany(i(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(i(32,64),6,0,6),e.add(127,6,0,6),e.addMany(i(64,127),6,0,0),e.addMany(i(32,48),3,9,5),e.addMany(i(32,48),5,9,5),e.addMany(i(48,64),5,0,6),e.addMany(i(64,127),5,7,0),e.addMany(i(32,48),4,9,5),e.addMany(i(32,48),1,9,2),e.addMany(i(32,48),2,9,2),e.addMany(i(48,127),2,10,0),e.addMany(i(48,80),1,10,0),e.addMany(i(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(i(96,127),1,10,0),e.add(80,1,11,9),e.addMany(n,9,0,9),e.add(127,9,0,9),e.addMany(i(28,32),9,0,9),e.addMany(i(32,48),9,9,12),e.addMany(i(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(n,11,0,11),e.addMany(i(32,128),11,0,11),e.addMany(i(28,32),11,0,11),e.addMany(n,10,0,10),e.add(127,10,0,10),e.addMany(i(28,32),10,0,10),e.addMany(i(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(i(32,48),10,9,12),e.addMany(n,12,0,12),e.add(127,12,0,12),e.addMany(i(28,32),12,0,12),e.addMany(i(32,48),12,9,12),e.addMany(i(48,64),12,0,11),e.addMany(i(64,127),12,12,13),e.addMany(i(64,127),10,12,13),e.addMany(i(64,127),9,12,13),e.addMany(n,13,13,13),e.addMany(r,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(160,0,2,0),e.add(160,8,5,8),e.add(160,6,0,6),e.add(160,11,0,11),e.add(160,13,13,13),e}();var u=function(e){function i(i){void 0===i&&(i=t.VT500_TRANSITION_TABLE);var r=e.call(this)||this;return r.TRANSITIONS=i,r.initialState=0,r.currentState=r.initialState,r._params=new a.Params,r._params.addParam(0),r._collect=0,r.precedingCodepoint=0,r._printHandlerFb=function(e,t,i){},r._executeHandlerFb=function(e){},r._csiHandlerFb=function(e,t){},r._escHandlerFb=function(e){},r._errorHandlerFb=function(e){return e},r._printHandler=r._printHandlerFb,r._executeHandlers=Object.create(null),r._csiHandlers=Object.create(null),r._escHandlers=Object.create(null),r._oscParser=new c.OscParser,r._dcsParser=new l.DcsParser,r._errorHandler=r._errorHandlerFb,r.setEscHandler({final:"\\"},function(){}),r}return n(i,e),i.prototype._identifier=function(e,t){void 0===t&&(t=[64,126]);var i=0;if(e.prefix){if(e.prefix.length>1)throw new Error("only one byte as prefix supported");if((i=e.prefix.charCodeAt(0))&&60>i||i>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(e.intermediates){if(e.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(var r=0;r<e.intermediates.length;++r){var n=e.intermediates.charCodeAt(r);if(32>n||n>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");i<<=8,i|=n}}if(1!==e.final.length)throw new Error("final must be a single byte");var s=e.final.charCodeAt(0);if(t[0]>s||s>t[1])throw new Error("final must be in range "+t[0]+" .. "+t[1]);return i<<=8,i|=s},i.prototype.identToString=function(e){for(var t=[];e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join("")},i.prototype.dispose=function(){this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null),this._oscParser.dispose(),this._dcsParser.dispose()},i.prototype.setPrintHandler=function(e){this._printHandler=e},i.prototype.clearPrintHandler=function(){this._printHandler=this._printHandlerFb},i.prototype.addEscHandler=function(e,t){var i=this._identifier(e,[48,126]);void 0===this._escHandlers[i]&&(this._escHandlers[i]=[]);var r=this._escHandlers[i];return r.push(t),{dispose:function(){var e=r.indexOf(t);-1!==e&&r.splice(e,1)}}},i.prototype.setEscHandler=function(e,t){this._escHandlers[this._identifier(e,[48,126])]=[t]},i.prototype.clearEscHandler=function(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]},i.prototype.setEscHandlerFallback=function(e){this._escHandlerFb=e},i.prototype.setExecuteHandler=function(e,t){this._executeHandlers[e.charCodeAt(0)]=t},i.prototype.clearExecuteHandler=function(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]},i.prototype.setExecuteHandlerFallback=function(e){this._executeHandlerFb=e},i.prototype.addCsiHandler=function(e,t){var i=this._identifier(e);void 0===this._csiHandlers[i]&&(this._csiHandlers[i]=[]);var r=this._csiHandlers[i];return r.push(t),{dispose:function(){var e=r.indexOf(t);-1!==e&&r.splice(e,1)}}},i.prototype.setCsiHandler=function(e,t){this._csiHandlers[this._identifier(e)]=[t]},i.prototype.clearCsiHandler=function(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]},i.prototype.setCsiHandlerFallback=function(e){this._csiHandlerFb=e},i.prototype.addDcsHandler=function(e,t){return this._dcsParser.addHandler(this._identifier(e),t)},i.prototype.setDcsHandler=function(e,t){this._dcsParser.setHandler(this._identifier(e),t)},i.prototype.clearDcsHandler=function(e){this._dcsParser.clearHandler(this._identifier(e))},i.prototype.setDcsHandlerFallback=function(e){this._dcsParser.setHandlerFallback(e)},i.prototype.addOscHandler=function(e,t){return this._oscParser.addHandler(e,t)},i.prototype.setOscHandler=function(e,t){this._oscParser.setHandler(e,t)},i.prototype.clearOscHandler=function(e){this._oscParser.clearHandler(e)},i.prototype.setOscHandlerFallback=function(e){this._oscParser.setHandlerFallback(e)},i.prototype.setErrorHandler=function(e){this._errorHandler=e},i.prototype.clearErrorHandler=function(){this._errorHandler=this._errorHandlerFb},i.prototype.reset=function(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0},i.prototype.parse=function(e,t){for(var i=0,r=0,n=this.currentState,s=this._oscParser,o=this._dcsParser,a=this._collect,c=this._params,l=this.TRANSITIONS.table,h=0;h<t;++h){switch((r=l[n<<8|((i=e[h])<160?i:160)])>>4){case 2:for(var u=h+1;;++u){if(u>=t||(i=e[u])<32||i>126&&i<160){this._printHandler(e,h,u),h=u-1;break}if(++u>=t||(i=e[u])<32||i>126&&i<160){this._printHandler(e,h,u),h=u-1;break}if(++u>=t||(i=e[u])<32||i>126&&i<160){this._printHandler(e,h,u),h=u-1;break}if(++u>=t||(i=e[u])<32||i>126&&i<160){this._printHandler(e,h,u),h=u-1;break}}break;case 3:this._executeHandlers[i]?this._executeHandlers[i]():this._executeHandlerFb(i),this.precedingCodepoint=0;break;case 0:break;case 1:if(this._errorHandler({position:h,code:i,currentState:n,collect:a,params:c,abort:!1}).abort)return;break;case 7:for(var f=this._csiHandlers[a<<8|i],_=f?f.length-1:-1;_>=0&&!1===f[_](c);_--);_<0&&this._csiHandlerFb(a<<8|i,c),this.precedingCodepoint=0;break;case 8:do{switch(i){case 59:c.addParam(0);break;case 58:c.addSubParam(-1);break;default:c.addDigit(i-48)}}while(++h<t&&(i=e[h])>47&&i<60);h--;break;case 9:a<<=8,a|=i;break;case 10:for(var d=this._escHandlers[a<<8|i],p=d?d.length-1:-1;p>=0&&!1===d[p]();p--);p<0&&this._escHandlerFb(a<<8|i),this.precedingCodepoint=0;break;case 11:c.reset(),c.addParam(0),a=0;break;case 12:o.hook(a<<8|i,c);break;case 13:for(var v=h+1;;++v)if(v>=t||24===(i=e[v])||26===i||27===i||i>127&&i<160){o.put(e,h,v),h=v-1;break}break;case 14:o.unhook(24!==i&&26!==i),27===i&&(r|=1),c.reset(),c.addParam(0),a=0,this.precedingCodepoint=0;break;case 4:s.start();break;case 5:for(var g=h+1;;g++)if(g>=t||(i=e[g])<32||i>127&&i<=159){s.put(e,h,g),h=g-1;break}break;case 6:s.end(24!==i&&26!==i),27===i&&(r|=1),c.reset(),c.addParam(0),a=0,this.precedingCodepoint=0}n=15&r}this._collect=a,this.currentState=n},i}(s.Disposable);t.EscapeSequenceParser=u},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(40),o=i(45),a=i(46),c=i(47),l=i(27),h=i(2),u=i(23),f=1,_=function(e){function t(t,i,r,n,h){var u=e.call(this)||this;u._colors=t,u._terminal=i,u.bufferService=r,u._charSizeService=n,u.optionsService=h,u._id=f++;var _=u._terminal.options.allowTransparency;return u._characterJoinerRegistry=new l.CharacterJoinerRegistry(r),u._renderLayers=[new s.TextRenderLayer(u._terminal.screenElement,0,u._colors,u._characterJoinerRegistry,_,u._id,r,h),new o.SelectionRenderLayer(u._terminal.screenElement,1,u._colors,u._id,r,h),new c.LinkRenderLayer(u._terminal.screenElement,2,u._colors,u._id,u._terminal.linkifier,r,h),new a.CursorRenderLayer(u._terminal.screenElement,3,u._colors,u._terminal,u._id,r,h)],u.dimensions={scaledCharWidth:null,scaledCharHeight:null,scaledCellWidth:null,scaledCellHeight:null,scaledCharLeft:null,scaledCharTop:null,scaledCanvasWidth:null,scaledCanvasHeight:null,canvasWidth:null,canvasHeight:null,actualCellWidth:null,actualCellHeight:null},u._devicePixelRatio=window.devicePixelRatio,u._updateDimensions(),u.onOptionsChanged(),u}return n(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._renderLayers.forEach(function(e){return e.dispose()}),u.removeTerminalFromCache(this._id)},t.prototype.onDevicePixelRatioChange=function(){this._devicePixelRatio!==window.devicePixelRatio&&(this._devicePixelRatio=window.devicePixelRatio,this.onResize(this._terminal.cols,this._terminal.rows))},t.prototype.setColors=function(e){var t=this;this._colors=e,this._renderLayers.forEach(function(e){e.setColors(t._colors),e.reset()})},t.prototype.onResize=function(e,t){var i=this;this._updateDimensions(),this._renderLayers.forEach(function(e){return e.resize(i.dimensions)}),this._terminal.screenElement.style.width=this.dimensions.canvasWidth+"px",this._terminal.screenElement.style.height=this.dimensions.canvasHeight+"px"},t.prototype.onCharSizeChanged=function(){this.onResize(this._terminal.cols,this._terminal.rows)},t.prototype.onBlur=function(){this._runOperation(function(e){return e.onBlur()})},t.prototype.onFocus=function(){this._runOperation(function(e){return e.onFocus()})},t.prototype.onSelectionChanged=function(e,t,i){void 0===i&&(i=!1),this._runOperation(function(r){return r.onSelectionChanged(e,t,i)})},t.prototype.onCursorMove=function(){this._runOperation(function(e){return e.onCursorMove()})},t.prototype.onOptionsChanged=function(){this._runOperation(function(e){return e.onOptionsChanged()})},t.prototype.clear=function(){this._runOperation(function(e){return e.reset()})},t.prototype._runOperation=function(e){this._renderLayers.forEach(function(t){return e(t)})},t.prototype.renderRows=function(e,t){this._renderLayers.forEach(function(i){return i.onGridChanged(e,t)})},t.prototype._updateDimensions=function(){this._charSizeService.hasValidSize&&(this.dimensions.scaledCharWidth=Math.floor(this._charSizeService.width*window.devicePixelRatio),this.dimensions.scaledCharHeight=Math.ceil(this._charSizeService.height*window.devicePixelRatio),this.dimensions.scaledCellHeight=Math.floor(this.dimensions.scaledCharHeight*this._terminal.options.lineHeight),this.dimensions.scaledCharTop=1===this._terminal.options.lineHeight?0:Math.round((this.dimensions.scaledCellHeight-this.dimensions.scaledCharHeight)/2),this.dimensions.scaledCellWidth=this.dimensions.scaledCharWidth+Math.round(this._terminal.options.letterSpacing),this.dimensions.scaledCharLeft=Math.floor(this._terminal.options.letterSpacing/2),this.dimensions.scaledCanvasHeight=this._terminal.rows*this.dimensions.scaledCellHeight,this.dimensions.scaledCanvasWidth=this._terminal.cols*this.dimensions.scaledCellWidth,this.dimensions.canvasHeight=Math.round(this.dimensions.scaledCanvasHeight/window.devicePixelRatio),this.dimensions.canvasWidth=Math.round(this.dimensions.scaledCanvasWidth/window.devicePixelRatio),this.dimensions.actualCellHeight=this.dimensions.canvasHeight/this._terminal.rows,this.dimensions.actualCellWidth=this.dimensions.canvasWidth/this._terminal.cols)},t.prototype.registerCharacterJoiner=function(e){return this._characterJoinerRegistry.registerCharacterJoiner(e)},t.prototype.deregisterCharacterJoiner=function(e){return this._characterJoinerRegistry.deregisterCharacterJoiner(e)},t}(h.Disposable);t.Renderer=_},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(41),o=i(12),a=i(6),c=i(3),l=i(27),h=i(4),u=function(e){function t(t,i,r,n,o,a,c,l){var u=e.call(this,t,"text",i,o,r,a,c,l)||this;return u.bufferService=c,u.optionsService=l,u._characterWidth=0,u._characterFont="",u._characterOverlapCache={},u._workCell=new h.CellData,u._state=new s.GridCache,u._characterJoinerRegistry=n,u}return n(t,e),t.prototype.resize=function(t){e.prototype.resize.call(this,t);var i=this._getFont(!1,!1);this._characterWidth===t.scaledCharWidth&&this._characterFont===i||(this._characterWidth=t.scaledCharWidth,this._characterFont=i,this._characterOverlapCache={}),this._state.clear(),this._state.resize(this._bufferService.cols,this._bufferService.rows)},t.prototype.reset=function(){this._state.clear(),this._clearAll()},t.prototype._forEachCell=function(e,t,i,r){for(var n=e;n<=t;n++)for(var s=n+this._bufferService.buffer.ydisp,o=this._bufferService.buffer.lines.get(s),a=i?i.getJoinedCharacters(s):[],h=0;h<this._bufferService.cols;h++){o.loadCell(h,this._workCell);var u=this._workCell,f=!1,_=h;if(0!==u.getWidth()){if(a.length>0&&h===a[0][0]){f=!0;var d=a.shift();u=new l.JoinedCellData(this._workCell,o.translateToString(!0,d[0],d[1]),d[1]-d[0]),_=d[1]-1}!f&&this._isOverlapping(u)&&_<o.length-1&&o.getCodePoint(_+1)===c.NULL_CELL_CODE&&(u.content&=-12582913,u.content|=2<<22),r(u,h,n),h=_}}},t.prototype._drawBackground=function(e,t){var i=this,r=this._ctx,n=this._bufferService.cols,s=0,o=0,c=null;r.save(),this._forEachCell(e,t,null,function(e,t,l){var h=null;e.isInverse()?h=e.isFgDefault()?i._colors.foreground.css:e.isFgRGB()?"rgb("+a.AttributeData.toColorRGB(e.getFgColor()).join(",")+")":i._colors.ansi[e.getFgColor()].css:e.isBgRGB()?h="rgb("+a.AttributeData.toColorRGB(e.getBgColor()).join(",")+")":e.isBgPalette()&&(h=i._colors.ansi[e.getBgColor()].css),null===c&&(s=t,o=l),l!==o?(r.fillStyle=c||"",i._fillCells(s,o,n-s,1),s=t,o=l):c!==h&&(r.fillStyle=c||"",i._fillCells(s,o,t-s,1),s=t,o=l),c=h}),null!==c&&(r.fillStyle=c,this._fillCells(s,o,n-s,1)),r.restore()},t.prototype._drawForeground=function(e,t){var i=this;this._forEachCell(e,t,this._characterJoinerRegistry,function(e,t,r){if(!e.isInvisible()&&(i._drawChars(e,t,r),e.isUnderline())){if(i._ctx.save(),e.isInverse())e.isBgDefault()?i._ctx.fillStyle=i._colors.background.css:e.isBgRGB()?i._ctx.fillStyle="rgb("+a.AttributeData.toColorRGB(e.getBgColor()).join(",")+")":i._ctx.fillStyle=i._colors.ansi[e.getBgColor()].css;else if(e.isFgDefault())i._ctx.fillStyle=i._colors.foreground.css;else if(e.isFgRGB())i._ctx.fillStyle="rgb("+a.AttributeData.toColorRGB(e.getFgColor()).join(",")+")";else{var n=e.getFgColor();i._optionsService.options.drawBoldTextInBrightColors&&e.isBold()&&n<8&&(n+=8),i._ctx.fillStyle=i._colors.ansi[n].css}i._fillBottomLineAtCells(t,r,e.getWidth()),i._ctx.restore()}})},t.prototype.onGridChanged=function(e,t){0!==this._state.cache.length&&(this._charAtlas&&this._charAtlas.beginFrame(),this._clearCells(0,e,this._bufferService.cols,t-e+1),this._drawBackground(e,t),this._drawForeground(e,t))},t.prototype.onOptionsChanged=function(){this._setTransparency(this._optionsService.options.allowTransparency)},t.prototype._isOverlapping=function(e){if(1!==e.getWidth())return!1;if(e.getCode()<256)return!1;var t=e.getChars();if(this._characterOverlapCache.hasOwnProperty(t))return this._characterOverlapCache[t];this._ctx.save(),this._ctx.font=this._characterFont;var i=Math.floor(this._ctx.measureText(t).width)>this._characterWidth;return this._ctx.restore(),this._characterOverlapCache[t]=i,i},t}(o.BaseRenderLayer);t.TextRenderLayer=u},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this.cache=[]}return e.prototype.resize=function(e,t){for(var i=0;i<e;i++){this.cache.length<=i&&this.cache.push([]);for(var r=this.cache[i].length;r<t;r++)this.cache[i].push(void 0);this.cache[i].length=t}this.cache.length=e},e.prototype.clear=function(){for(var e=0;e<this.cache.length;e++)for(var t=0;t<this.cache[e].length;t++)this.cache[e][t]=void 0},e}();t.GridCache=r},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(9),o=i(43),a=i(25),c=i(44),l=i(10),h=i(26),u=1024,f=1024,_={css:"rgba(0, 0, 0, 0)",rgba:0};function d(e){return e.code<<21|e.bg<<12|e.fg<<3|(e.bold?0:4)+(e.dim?0:2)+(e.italic?0:1)}t.getGlyphCacheKey=d;var p=function(e){function t(t,i){var r=e.call(this)||this;r._config=i,r._drawToCacheCount=0,r._glyphsWaitingOnBitmap=[],r._bitmapCommitTimeout=null,r._bitmap=null,r._cacheCanvas=t.createElement("canvas"),r._cacheCanvas.width=u,r._cacheCanvas.height=f,r._cacheCtx=h.throwIfFalsy(r._cacheCanvas.getContext("2d",{alpha:!0}));var n=t.createElement("canvas");n.width=r._config.scaledCharWidth,n.height=r._config.scaledCharHeight,r._tmpCtx=h.throwIfFalsy(n.getContext("2d",{alpha:r._config.allowTransparency})),r._width=Math.floor(u/r._config.scaledCharWidth),r._height=Math.floor(f/r._config.scaledCharHeight);var s=r._width*r._height;return r._cacheMap=new c.LRUMap(s),r._cacheMap.prealloc(s),r}return n(t,e),t.prototype.dispose=function(){null!==this._bitmapCommitTimeout&&(window.clearTimeout(this._bitmapCommitTimeout),this._bitmapCommitTimeout=null)},t.prototype.beginFrame=function(){this._drawToCacheCount=0},t.prototype.draw=function(e,t,i,r){if(32===t.code)return!0;if(!this._canCache(t))return!1;var n=d(t),s=this._cacheMap.get(n);if(null!=s)return this._drawFromCache(e,s,i,r),!0;if(this._drawToCacheCount<100){var o=void 0;o=this._cacheMap.size<this._cacheMap.capacity?this._cacheMap.size:this._cacheMap.peek().index;var a=this._drawToCache(t,o);return this._cacheMap.set(n,a),this._drawFromCache(e,a,i,r),!0}return!1},t.prototype._canCache=function(e){return e.code<256},t.prototype._toCoordinateX=function(e){return e%this._width*this._config.scaledCharWidth},t.prototype._toCoordinateY=function(e){return Math.floor(e/this._width)*this._config.scaledCharHeight},t.prototype._drawFromCache=function(e,t,i,r){if(!t.isEmpty){var n=this._toCoordinateX(t.index),s=this._toCoordinateY(t.index);e.drawImage(t.inBitmap?this._bitmap:this._cacheCanvas,n,s,this._config.scaledCharWidth,this._config.scaledCharHeight,i,r,this._config.scaledCharWidth,this._config.scaledCharHeight)}},t.prototype._getColorFromAnsiIndex=function(e){return e<this._config.colors.ansi.length?this._config.colors.ansi[e]:a.DEFAULT_ANSI_COLORS[e]},t.prototype._getBackgroundColor=function(e){return this._config.allowTransparency?_:e.bg===s.INVERTED_DEFAULT_COLOR?this._config.colors.foreground:e.bg<256?this._getColorFromAnsiIndex(e.bg):this._config.colors.background},t.prototype._getForegroundColor=function(e){return e.fg===s.INVERTED_DEFAULT_COLOR?this._config.colors.background:e.fg<256?this._getColorFromAnsiIndex(e.fg):this._config.colors.foreground},t.prototype._drawToCache=function(e,t){this._drawToCacheCount++,this._tmpCtx.save();var i=this._getBackgroundColor(e);this._tmpCtx.globalCompositeOperation="copy",this._tmpCtx.fillStyle=i.css,this._tmpCtx.fillRect(0,0,this._config.scaledCharWidth,this._config.scaledCharHeight),this._tmpCtx.globalCompositeOperation="source-over";var r=e.bold?this._config.fontWeightBold:this._config.fontWeight,n=e.italic?"italic":"";this._tmpCtx.font=n+" "+r+" "+this._config.fontSize*this._config.devicePixelRatio+"px "+this._config.fontFamily,this._tmpCtx.textBaseline="middle",this._tmpCtx.fillStyle=this._getForegroundColor(e).css,e.dim&&(this._tmpCtx.globalAlpha=s.DIM_OPACITY),this._tmpCtx.fillText(e.chars,0,this._config.scaledCharHeight/2),this._tmpCtx.restore();var o=this._tmpCtx.getImageData(0,0,this._config.scaledCharWidth,this._config.scaledCharHeight),a=!1;this._config.allowTransparency||(a=function(e,t){for(var i=!0,r=t.rgba>>>24,n=t.rgba>>>16&255,s=t.rgba>>>8&255,o=0;o<e.data.length;o+=4)e.data[o]===r&&e.data[o+1]===n&&e.data[o+2]===s?e.data[o+3]=0:i=!1;return i}(o,i));var c=this._toCoordinateX(t),l=this._toCoordinateY(t);this._cacheCtx.putImageData(o,c,l);var h={index:t,isEmpty:a,inBitmap:!1};return this._addGlyphToBitmap(h),h},t.prototype._addGlyphToBitmap=function(e){var t=this;"createImageBitmap"in window&&!l.isFirefox&&!l.isSafari&&(this._glyphsWaitingOnBitmap.push(e),null===this._bitmapCommitTimeout&&(this._bitmapCommitTimeout=window.setTimeout(function(){return t._generateBitmap()},100)))},t.prototype._generateBitmap=function(){var e=this,t=this._glyphsWaitingOnBitmap;this._glyphsWaitingOnBitmap=[],window.createImageBitmap(this._cacheCanvas).then(function(i){e._bitmap=i;for(var r=0;r<t.length;r++){t[r].inBitmap=!0}}),this._bitmapCommitTimeout=null},t}(o.BaseCharAtlas);t.DynamicCharAtlas=p;var v=function(e){function t(t,i){return e.call(this)||this}return n(t,e),t.prototype.draw=function(e,t,i,r){return!1},t}(o.BaseCharAtlas);t.NoneCharAtlas=v},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this._didWarmUp=!1}return e.prototype.dispose=function(){},e.prototype.warmUp=function(){this._didWarmUp||(this._doWarmUp(),this._didWarmUp=!0)},e.prototype._doWarmUp=function(){},e.prototype.beginFrame=function(){},e}();t.BaseCharAtlas=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this.capacity=e,this._map={},this._head=null,this._tail=null,this._nodePool=[],this.size=0}return e.prototype._unlinkNode=function(e){var t=e.prev,i=e.next;e===this._head&&(this._head=i),e===this._tail&&(this._tail=t),null!==t&&(t.next=i),null!==i&&(i.prev=t)},e.prototype._appendNode=function(e){var t=this._tail;null!==t&&(t.next=e),e.prev=t,e.next=null,this._tail=e,null===this._head&&(this._head=e)},e.prototype.prealloc=function(e){for(var t=this._nodePool,i=0;i<e;i++)t.push({prev:null,next:null,key:null,value:null})},e.prototype.get=function(e){var t=this._map[e];return void 0!==t?(this._unlinkNode(t),this._appendNode(t),t.value):null},e.prototype.peekValue=function(e){var t=this._map[e];return void 0!==t?t.value:null},e.prototype.peek=function(){var e=this._head;return null===e?null:e.value},e.prototype.set=function(e,t){var i=this._map[e];if(void 0!==i)i=this._map[e],this._unlinkNode(i),i.value=t;else if(this.size>=this.capacity)i=this._head,this._unlinkNode(i),delete this._map[i.key],i.key=e,i.value=t,this._map[e]=i;else{var r=this._nodePool;r.length>0?((i=r.pop()).key=e,i.value=t):i={prev:null,next:null,key:e,value:t},this._map[e]=i,this.size++}this._appendNode(i)},e}();t.LRUMap=r},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=function(e){function t(t,i,r,n,s,o){var a=e.call(this,t,"selection",i,!0,r,n,s,o)||this;return a.bufferService=s,a.optionsService=o,a._clearState(),a}return n(t,e),t.prototype._clearState=function(){this._state={start:void 0,end:void 0,columnSelectMode:void 0,ydisp:void 0}},t.prototype.resize=function(t){e.prototype.resize.call(this,t),this._clearState()},t.prototype.reset=function(){this._state.start&&this._state.end&&(this._clearState(),this._clearAll())},t.prototype.onSelectionChanged=function(e,t,i){if(this._didStateChange(e,t,i,this._bufferService.buffer.ydisp))if(this._clearAll(),e&&t){var r=e[1]-this._bufferService.buffer.ydisp,n=t[1]-this._bufferService.buffer.ydisp,s=Math.max(r,0),o=Math.min(n,this._bufferService.rows-1);if(!(s>=this._bufferService.rows||o<0)){if(this._ctx.fillStyle=this._colors.selection.css,i){var a=e[0],c=t[0]-a,l=o-s+1;this._fillCells(a,s,c,l)}else{a=r===s?e[0]:0;var h=s===o?t[0]:this._bufferService.cols;this._fillCells(a,s,h-a,1);var u=Math.max(o-s-1,0);if(this._fillCells(0,s+1,this._bufferService.cols,u),s!==o){var f=n===o?t[0]:this._bufferService.cols;this._fillCells(0,o,f,1)}}this._state.start=[e[0],e[1]],this._state.end=[t[0],t[1]],this._state.columnSelectMode=i,this._state.ydisp=this._bufferService.buffer.ydisp}}else this._clearState()},t.prototype._didStateChange=function(e,t,i,r){return!this._areCoordinatesEqual(e,this._state.start)||!this._areCoordinatesEqual(t,this._state.end)||i!==this._state.columnSelectMode||r!==this._state.ydisp},t.prototype._areCoordinatesEqual=function(e,t){return!(!e||!t)&&(e[0]===t[0]&&e[1]===t[1])},t}(i(12).BaseRenderLayer);t.SelectionRenderLayer=s},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(12),o=i(4),a=function(e){function t(t,i,r,n,s,a,c){var l=e.call(this,t,"cursor",i,!0,r,s,a,c)||this;return l._terminal=n,l.bufferService=a,l.optionsService=c,l._cell=new o.CellData,l._state={x:null,y:null,isFocused:null,style:null,width:null},l._cursorRenderers={bar:l._renderBarCursor.bind(l),block:l._renderBlockCursor.bind(l),underline:l._renderUnderlineCursor.bind(l)},l}return n(t,e),t.prototype.resize=function(t){e.prototype.resize.call(this,t),this._state={x:null,y:null,isFocused:null,style:null,width:null}},t.prototype.reset=function(){this._clearCursor(),this._cursorBlinkStateManager&&(this._cursorBlinkStateManager.dispose(),this._cursorBlinkStateManager=null,this.onOptionsChanged())},t.prototype.onBlur=function(){this._cursorBlinkStateManager&&this._cursorBlinkStateManager.pause(),this._terminal.refresh(this._bufferService.buffer.y,this._bufferService.buffer.y)},t.prototype.onFocus=function(){this._cursorBlinkStateManager?this._cursorBlinkStateManager.resume():this._terminal.refresh(this._bufferService.buffer.y,this._bufferService.buffer.y)},t.prototype.onOptionsChanged=function(){var e=this;this._optionsService.options.cursorBlink?this._cursorBlinkStateManager||(this._cursorBlinkStateManager=new c(this._terminal.isFocused,function(){e._render(!0)})):(this._cursorBlinkStateManager&&(this._cursorBlinkStateManager.dispose(),this._cursorBlinkStateManager=null),this._terminal.refresh(this._bufferService.buffer.y,this._bufferService.buffer.y))},t.prototype.onCursorMove=function(){this._cursorBlinkStateManager&&this._cursorBlinkStateManager.restartBlinkAnimation()},t.prototype.onGridChanged=function(e,t){!this._cursorBlinkStateManager||this._cursorBlinkStateManager.isPaused?this._render(!1):this._cursorBlinkStateManager.restartBlinkAnimation()},t.prototype._render=function(e){if(this._terminal.cursorState&&!this._terminal.cursorHidden){var t=this._bufferService.buffer.ybase+this._bufferService.buffer.y,i=t-this._bufferService.buffer.ydisp;if(i<0||i>=this._bufferService.rows)this._clearCursor();else if(this._bufferService.buffer.lines.get(t).loadCell(this._bufferService.buffer.x,this._cell),void 0!==this._cell.content){if(!this._terminal.isFocused)return this._clearCursor(),this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this._renderBlurCursor(this._bufferService.buffer.x,i,this._cell),this._ctx.restore(),this._state.x=this._bufferService.buffer.x,this._state.y=i,this._state.isFocused=!1,this._state.style=this._optionsService.options.cursorStyle,void(this._state.width=this._cell.getWidth());if(!this._cursorBlinkStateManager||this._cursorBlinkStateManager.isCursorVisible){if(this._state){if(this._state.x===this._bufferService.buffer.x&&this._state.y===i&&this._state.isFocused===this._terminal.isFocused&&this._state.style===this._optionsService.options.cursorStyle&&this._state.width===this._cell.getWidth())return;this._clearCursor()}this._ctx.save(),this._cursorRenderers[this._optionsService.options.cursorStyle||"block"](this._bufferService.buffer.x,i,this._cell),this._ctx.restore(),this._state.x=this._bufferService.buffer.x,this._state.y=i,this._state.isFocused=!1,this._state.style=this._optionsService.options.cursorStyle,this._state.width=this._cell.getWidth()}else this._clearCursor()}}else this._clearCursor()},t.prototype._clearCursor=function(){this._state&&(this._clearCells(this._state.x,this._state.y,this._state.width,1),this._state={x:null,y:null,isFocused:null,style:null,width:null})},t.prototype._renderBarCursor=function(e,t,i){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this._fillLeftLineAtCell(e,t),this._ctx.restore()},t.prototype._renderBlockCursor=function(e,t,i){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this._fillCells(e,t,i.getWidth(),1),this._ctx.fillStyle=this._colors.cursorAccent.css,this._fillCharTrueColor(i,e,t),this._ctx.restore()},t.prototype._renderUnderlineCursor=function(e,t,i){this._ctx.save(),this._ctx.fillStyle=this._colors.cursor.css,this._fillBottomLineAtCells(e,t),this._ctx.restore()},t.prototype._renderBlurCursor=function(e,t,i){this._ctx.save(),this._ctx.strokeStyle=this._colors.cursor.css,this._strokeRectAtCell(e,t,i.getWidth(),1),this._ctx.restore()},t}(s.BaseRenderLayer);t.CursorRenderLayer=a;var c=function(){function e(e,t){this._renderCallback=t,this.isCursorVisible=!0,e&&this._restartInterval()}return Object.defineProperty(e.prototype,"isPaused",{get:function(){return!(this._blinkStartTimeout||this._blinkInterval)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=null),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=null),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=null)},e.prototype.restartBlinkAnimation=function(){var e=this;this.isPaused||(this._animationTimeRestarted=Date.now(),this.isCursorVisible=!0,this._animationFrame||(this._animationFrame=window.requestAnimationFrame(function(){e._renderCallback(),e._animationFrame=null})))},e.prototype._restartInterval=function(e){var t=this;void 0===e&&(e=600),this._blinkInterval&&window.clearInterval(this._blinkInterval),this._blinkStartTimeout=setTimeout(function(){if(t._animationTimeRestarted){var e=600-(Date.now()-t._animationTimeRestarted);if(t._animationTimeRestarted=null,e>0)return void t._restartInterval(e)}t.isCursorVisible=!1,t._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=null}),t._blinkInterval=setInterval(function(){if(t._animationTimeRestarted){var e=600-(Date.now()-t._animationTimeRestarted);return t._animationTimeRestarted=null,void t._restartInterval(e)}t.isCursorVisible=!t.isCursorVisible,t._animationFrame=window.requestAnimationFrame(function(){t._renderCallback(),t._animationFrame=null})},600)},e)},e.prototype.pause=function(){this.isCursorVisible=!0,this._blinkInterval&&(window.clearInterval(this._blinkInterval),this._blinkInterval=null),this._blinkStartTimeout&&(window.clearTimeout(this._blinkStartTimeout),this._blinkStartTimeout=null),this._animationFrame&&(window.cancelAnimationFrame(this._animationFrame),this._animationFrame=null)},e.prototype.resume=function(){this._animationTimeRestarted=null,this._restartInterval(),this.restartBlinkAnimation()},e}()},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(12),o=i(9),a=i(24),c=function(e){function t(t,i,r,n,s,o,a){var c=e.call(this,t,"link",i,!0,r,n,o,a)||this;return c.bufferService=o,c.optionsService=a,s.onLinkHover(function(e){return c._onLinkHover(e)}),s.onLinkLeave(function(e){return c._onLinkLeave(e)}),c}return n(t,e),t.prototype.resize=function(t){e.prototype.resize.call(this,t),this._state=void 0},t.prototype.reset=function(){this._clearCurrentLink()},t.prototype._clearCurrentLink=function(){if(this._state){this._clearCells(this._state.x1,this._state.y1,this._state.cols-this._state.x1,1);var e=this._state.y2-this._state.y1-1;e>0&&this._clearCells(0,this._state.y1+1,this._state.cols,e),this._clearCells(0,this._state.y2,this._state.x2,1),this._state=void 0}},t.prototype._onLinkHover=function(e){if(e.fg===o.INVERTED_DEFAULT_COLOR?this._ctx.fillStyle=this._colors.background.css:e.fg&&a.is256Color(e.fg)?this._ctx.fillStyle=this._colors.ansi[e.fg].css:this._ctx.fillStyle=this._colors.foreground.css,e.y1===e.y2)this._fillBottomLineAtCells(e.x1,e.y1,e.x2-e.x1);else{this._fillBottomLineAtCells(e.x1,e.y1,e.cols-e.x1);for(var t=e.y1+1;t<e.y2;t++)this._fillBottomLineAtCells(0,t,e.cols);this._fillBottomLineAtCells(0,e.y2,e.x2)}this._state=e},t.prototype._onLinkLeave=function(e){this._clearCurrentLink()},t}(s.BaseRenderLayer);t.LinkRenderLayer=c},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(18),n=i(1),s=function(){function e(e,t){this._bufferService=e,this._logService=t,this._linkMatchers=[],this._nextLinkMatcherId=0,this._onLinkHover=new n.EventEmitter,this._onLinkLeave=new n.EventEmitter,this._onLinkTooltip=new n.EventEmitter,this._rowsToLinkify={start:void 0,end:void 0}}return Object.defineProperty(e.prototype,"onLinkHover",{get:function(){return this._onLinkHover.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onLinkLeave",{get:function(){return this._onLinkLeave.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onLinkTooltip",{get:function(){return this._onLinkTooltip.event},enumerable:!0,configurable:!0}),e.prototype.attachToDom=function(e,t){this._element=e,this._mouseZoneManager=t},e.prototype.linkifyRows=function(t,i){var r=this;this._mouseZoneManager&&(void 0===this._rowsToLinkify.start||void 0===this._rowsToLinkify.end?(this._rowsToLinkify.start=t,this._rowsToLinkify.end=i):(this._rowsToLinkify.start=Math.min(this._rowsToLinkify.start,t),this._rowsToLinkify.end=Math.max(this._rowsToLinkify.end,i)),this._mouseZoneManager.clearAll(t,i),this._rowsTimeoutId&&clearTimeout(this._rowsTimeoutId),this._rowsTimeoutId=setTimeout(function(){return r._linkifyRows()},e._timeBeforeLatency))},e.prototype._linkifyRows=function(){this._rowsTimeoutId=void 0;var e=this._bufferService.buffer;if(void 0!==this._rowsToLinkify.start&&void 0!==this._rowsToLinkify.end){var t=e.ydisp+this._rowsToLinkify.start;if(!(t>=e.lines.length)){for(var i=e.ydisp+Math.min(this._rowsToLinkify.end,this._bufferService.rows)+1,r=Math.ceil(2e3/this._bufferService.cols),n=this._bufferService.buffer.iterator(!1,t,i,r,r);n.hasNext();)for(var s=n.next(),o=0;o<this._linkMatchers.length;o++)this._doLinkifyRow(s.range.first,s.content,this._linkMatchers[o]);this._rowsToLinkify.start=void 0,this._rowsToLinkify.end=void 0}}else this._logService.debug("_rowToLinkify was unset before _linkifyRows was called")},e.prototype.registerLinkMatcher=function(e,t,i){if(void 0===i&&(i={}),!t)throw new Error("handler must be defined");var r={id:this._nextLinkMatcherId++,regex:e,handler:t,matchIndex:i.matchIndex,validationCallback:i.validationCallback,hoverTooltipCallback:i.tooltipCallback,hoverLeaveCallback:i.leaveCallback,willLinkActivate:i.willLinkActivate,priority:i.priority||0};return this._addLinkMatcherToList(r),r.id},e.prototype._addLinkMatcherToList=function(e){if(0!==this._linkMatchers.length){for(var t=this._linkMatchers.length-1;t>=0;t--)if(e.priority<=this._linkMatchers[t].priority)return void this._linkMatchers.splice(t+1,0,e);this._linkMatchers.splice(0,0,e)}else this._linkMatchers.push(e)},e.prototype.deregisterLinkMatcher=function(e){for(var t=0;t<this._linkMatchers.length;t++)if(this._linkMatchers[t].id===e)return this._linkMatchers.splice(t,1),!0;return!1},e.prototype._doLinkifyRow=function(e,t,i){for(var r,n=this,s=new RegExp(i.regex.source,(i.regex.flags||"")+"g"),o=-1,a=function(){var a=r["number"!=typeof i.matchIndex?0:i.matchIndex];if(!a)return c._logService.debug("match found without corresponding matchIndex",r,i),"break";if(o=t.indexOf(a,o+1),s.lastIndex=o+a.length,o<0)return"break";var l=c._bufferService.buffer.stringIndexToBufferIndex(e,o);if(l[0]<0)return"break";var h=c._bufferService.buffer.lines.get(l[0]);if(!h)return"break";var u=h.getFg(l[1]),f=u?u>>9&511:void 0;i.validationCallback?i.validationCallback(a,function(e){n._rowsTimeoutId||e&&n._addLink(l[1],l[0]-n._bufferService.buffer.ydisp,a,i,f)}):c._addLink(l[1],l[0]-c._bufferService.buffer.ydisp,a,i,f)},c=this;null!==(r=s.exec(t));){if("break"===a())break}},e.prototype._addLink=function(e,t,i,n,s){var a=this;if(this._mouseZoneManager&&this._element){var c=r.getStringCellWidth(i),l=e%this._bufferService.cols,h=t+Math.floor(e/this._bufferService.cols),u=(l+c)%this._bufferService.cols,f=h+Math.floor((l+c)/this._bufferService.cols);0===u&&(u=this._bufferService.cols,f--),this._mouseZoneManager.add(new o(l+1,h+1,u+1,f+1,function(e){if(n.handler)return n.handler(e,i);window.open(i,"_blank")},function(){a._onLinkHover.fire(a._createLinkHoverEvent(l,h,u,f,s)),a._element.classList.add("xterm-cursor-pointer")},function(e){a._onLinkTooltip.fire(a._createLinkHoverEvent(l,h,u,f,s)),n.hoverTooltipCallback&&n.hoverTooltipCallback(e,i)},function(){a._onLinkLeave.fire(a._createLinkHoverEvent(l,h,u,f,s)),a._element.classList.remove("xterm-cursor-pointer"),n.hoverLeaveCallback&&n.hoverLeaveCallback()},function(e){return!n.willLinkActivate||n.willLinkActivate(e,i)}))}},e.prototype._createLinkHoverEvent=function(e,t,i,r,n){return{x1:e,y1:t,x2:i,y2:r,cols:this._bufferService.cols,fg:n}},e._timeBeforeLatency=200,e}();t.Linkifier=s;var o=function(e,t,i,r,n,s,o,a,c){this.x1=e,this.y1=t,this.x2=i,this.y2=r,this.clickCallback=n,this.hoverCallback=s,this.tooltipCallback=o,this.leaveCallback=a,this.willLinkActivate=c};t.MouseZone=o},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(10),o=i(50),a=i(4),c=i(1),l=i(5),h=i(0),u=i(28),f=i(51),_=String.fromCharCode(160),d=new RegExp(_,"g"),p=function(){function e(e,t,i,r,n,s,l,h){var u=this;this._scrollLines=e,this._element=t,this._screenElement=i,this._charSizeService=r,this._bufferService=n,this._coreService=s,this._mouseService=l,this._optionsService=h,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new a.CellData,this._mouseDownTimeStamp=0,this._onLinuxMouseSelection=new c.EventEmitter,this._onRedrawRequest=new c.EventEmitter,this._onSelectionChange=new c.EventEmitter,this._mouseMoveListener=function(e){return u._onMouseMove(e)},this._mouseUpListener=function(e){return u._onMouseUp(e)},this._coreService.onUserInput(function(){u.hasSelection&&u.clearSelection()}),this._trimListener=this._bufferService.buffer.lines.onTrim(function(e){return u._onTrim(e)}),this._bufferService.buffers.onBufferActivate(function(e){return u._onBufferActivate(e)}),this.enable(),this._model=new o.SelectionModel(this._bufferService),this._activeSelectionMode=0}return Object.defineProperty(e.prototype,"onLinuxMouseSelection",{get:function(){return this._onLinuxMouseSelection.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onRedrawRequest",{get:function(){return this._onRedrawRequest.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onSelectionChange",{get:function(){return this._onSelectionChange.event},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._removeMouseDownListeners()},e.prototype.reset=function(){this.clearSelection()},e.prototype.disable=function(){this.clearSelection(),this._enabled=!1},e.prototype.enable=function(){this._enabled=!0},Object.defineProperty(e.prototype,"selectionStart",{get:function(){return this._model.finalSelectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectionEnd",{get:function(){return this._model.finalSelectionEnd},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasSelection",{get:function(){var e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t)&&(e[0]!==t[0]||e[1]!==t[1])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"selectionText",{get:function(){var e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return"";var i=this._bufferService.buffer,r=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return"";for(var n=e[1];n<=t[1];n++){var o=i.translateBufferLineToString(n,!0,e[0],t[0]);r.push(o)}}else{var a=e[1]===t[1]?t[0]:void 0;r.push(i.translateBufferLineToString(e[1],!0,e[0],a));for(n=e[1]+1;n<=t[1]-1;n++){var c=i.lines.get(n);o=i.translateBufferLineToString(n,!0);c.isWrapped?r[r.length-1]+=o:r.push(o)}if(e[1]!==t[1]){c=i.lines.get(t[1]),o=i.translateBufferLineToString(t[1],!0,0,t[0]);c.isWrapped?r[r.length-1]+=o:r.push(o)}}return r.map(function(e){return e.replace(d," ")}).join(s.isWindows?"\r\n":"\n")},enumerable:!0,configurable:!0}),e.prototype.clearSelection=function(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()},e.prototype.refresh=function(e){var t=this;(this._refreshAnimationFrame||(this._refreshAnimationFrame=window.requestAnimationFrame(function(){return t._refresh()})),s.isLinux&&e)&&(this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText))},e.prototype._refresh=function(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})},e.prototype.isClickInSelection=function(e){var t=this._getMouseBufferCoords(e),i=this._model.finalSelectionStart,r=this._model.finalSelectionEnd;return!!(i&&r&&t)&&this._areCoordsInSelection(t,i,r)},e.prototype._areCoordsInSelection=function(e,t,i){return e[1]>t[1]&&e[1]<i[1]||t[1]===i[1]&&e[1]===t[1]&&e[0]>=t[0]&&e[0]<i[0]||t[1]<i[1]&&e[1]===i[1]&&e[0]<i[0]||t[1]<i[1]&&e[1]===t[1]&&e[0]>=t[0]},e.prototype.selectWordAtCursor=function(e){var t=this._getMouseBufferCoords(e);t&&(this._selectWordAt(t,!1),this._model.selectionEnd=void 0,this.refresh(!0))},e.prototype.selectAll=function(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()},e.prototype.selectLines=function(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()},e.prototype._onTrim=function(e){this._model.onTrim(e)&&this.refresh()},e.prototype._getMouseBufferCoords=function(e){var t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t},e.prototype._getMouseEventScrollAmount=function(e){var t=u.getCoordsRelativeToElement(e,this._screenElement)[1],i=this._bufferService.rows*Math.ceil(this._charSizeService.height*this._optionsService.options.lineHeight);return t>=0&&t<=i?0:(t>i&&(t-=i),t=Math.min(Math.max(t,-50),50),(t/=50)/Math.abs(t)+Math.round(14*t))},e.prototype.shouldForceSelection=function(e){return s.isMac?e.altKey&&this._optionsService.options.macOptionClickForcesSelection:e.shiftKey},e.prototype.onMouseDown=function(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._onIncrementalClick(e):1===e.detail?this._onSingleClick(e):2===e.detail?this._onDoubleClick(e):3===e.detail&&this._onTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}},e.prototype._addMouseDownListeners=function(){var e=this;this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener("mouseup",this._mouseUpListener)),this._dragScrollIntervalTimer=window.setInterval(function(){return e._dragScroll()},50)},e.prototype._removeMouseDownListeners=function(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener("mousemove",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener("mouseup",this._mouseUpListener)),clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0},e.prototype._onIncrementalClick=function(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))},e.prototype._onSingleClick=function(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),this._model.selectionStart){this._model.selectionEnd=void 0;var t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}},e.prototype._onDoubleClick=function(e){var t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=1,this._selectWordAt(t,!0))},e.prototype._onTripleClick=function(e){var t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))},e.prototype.shouldColumnSelect=function(e){return e.altKey&&!(s.isMac&&this._optionsService.options.macOptionClickForcesSelection)},e.prototype._onMouseMove=function(e){if(e.stopImmediatePropagation(),this._model.selectionStart){var t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),this._model.selectionEnd){2===this._activeSelectionMode?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:1===this._activeSelectionMode&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),3!==this._activeSelectionMode&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));var i=this._bufferService.buffer;if(this._model.selectionEnd[1]<i.lines.length){var r=i.lines.get(this._model.selectionEnd[1]);r&&0===r.hasWidth(this._model.selectionEnd[0])&&this._model.selectionEnd[0]++}t&&t[0]===this._model.selectionEnd[0]&&t[1]===this._model.selectionEnd[1]||this.refresh(!0)}else this.refresh(!0)}},e.prototype._dragScroll=function(){if(this._model.selectionEnd&&this._model.selectionStart&&this._dragScrollAmount){this._scrollLines(this._dragScrollAmount,!1);var e=this._bufferService.buffer;this._dragScrollAmount>0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}},e.prototype._onMouseUp=function(e){var t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500){if(e.altKey&&this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){var i=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(i&&void 0!==i[0]&&void 0!==i[1]){var r=f.moveToCellSequence(i[0]-1,i[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(r,!0)}}}else this.hasSelection&&this._onSelectionChange.fire()},e.prototype._onBufferActivate=function(e){var t=this;this.clearSelection(),this._trimListener&&this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim(function(e){return t._onTrim(e)})},e.prototype._convertViewportColToCharacterIndex=function(e,t){for(var i=t[0],r=0;t[0]>=r;r++){var n=e.loadCell(r,this._workCell).getChars().length;0===this._workCell.getWidth()?i--:n>1&&t[0]!==r&&(i+=n-1)}return i},e.prototype.setSelection=function(e,t,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=i,this.refresh()},e.prototype._getWordAt=function(e,t,i,r){if(void 0===i&&(i=!0),void 0===r&&(r=!0),!(e[0]>=this._bufferService.cols)){var n=this._bufferService.buffer,s=n.lines.get(e[1]);if(s){var o=n.translateBufferLineToString(e[1],!1),a=this._convertViewportColToCharacterIndex(s,e),c=a,l=e[0]-a,h=0,u=0,f=0,_=0;if(" "===o.charAt(a)){for(;a>0&&" "===o.charAt(a-1);)a--;for(;c<o.length&&" "===o.charAt(c+1);)c++}else{var d=e[0],p=e[0];0===s.getWidth(d)&&(h++,d--),2===s.getWidth(p)&&(u++,p++);var v=s.getString(p).length;for(v>1&&(_+=v-1,c+=v-1);d>0&&a>0&&!this._isCharWordSeparator(s.loadCell(d-1,this._workCell));){s.loadCell(d-1,this._workCell);var g=this._workCell.getChars().length;0===this._workCell.getWidth()?(h++,d--):g>1&&(f+=g-1,a-=g-1),a--,d--}for(;p<s.length&&c+1<o.length&&!this._isCharWordSeparator(s.loadCell(p+1,this._workCell));){s.loadCell(p+1,this._workCell);var y=this._workCell.getChars().length;2===this._workCell.getWidth()?(u++,p++):y>1&&(_+=y-1,c+=y-1),c++,p++}}c++;var m=a+l-h+f,b=Math.min(this._bufferService.cols,c-a+h+u-f-_);if(t||""!==o.slice(a,c).trim()){if(i&&0===m&&32!==s.getCodePoint(0)){var C=n.lines.get(e[1]-1);if(C&&s.isWrapped&&32!==C.getCodePoint(this._bufferService.cols-1)){var S=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(S){var w=this._bufferService.cols-S.start;m-=w,b+=w}}}if(r&&m+b===this._bufferService.cols&&32!==s.getCodePoint(this._bufferService.cols-1)){var E=n.lines.get(e[1]+1);if(E&&E.isWrapped&&32!==E.getCodePoint(0)){var L=this._getWordAt([0,e[1]+1],!1,!1,!0);L&&(b+=L.length)}}return{start:m,length:b}}}}},e.prototype._selectWordAt=function(e,t){var i=this._getWordAt(e,t);if(i){for(;i.start<0;)i.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[i.start,e[1]],this._model.selectionStartLength=i.length}},e.prototype._selectToWordAt=function(e){var t=this._getWordAt(e,!0);if(t){for(var i=e[1];t.start<0;)t.start+=this._bufferService.cols,i--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,i++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,i]}},e.prototype._isCharWordSeparator=function(e){return 0!==e.getWidth()&&this._optionsService.options.wordSeparator.indexOf(e.getChars())>=0},e.prototype._selectLineAt=function(e){var t=this._bufferService.buffer.getWrappedRangeForLine(e);this._model.selectionStart=[0,t.first],this._model.selectionEnd=[this._bufferService.cols,t.last],this._model.selectionStartLength=0},e=r([n(3,l.ICharSizeService),n(4,h.IBufferService),n(5,h.ICoreService),n(6,l.IMouseService),n(7,h.IOptionsService)],e)}();t.SelectionService=p},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}return e.prototype.clearSelection=function(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0},Object.defineProperty(e.prototype,"finalSelectionStart",{get:function(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"finalSelectionEnd",{get:function(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){var e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}return this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]?[Math.max(this.selectionStart[0]+this.selectionStartLength,this.selectionEnd[0]),this.selectionEnd[1]]:this.selectionEnd}},enumerable:!0,configurable:!0}),e.prototype.areSelectionValuesReversed=function(){var e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])},e.prototype.onTrim=function(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)},e}();t.SelectionModel=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(11);function n(e,t,i,r){var n=e-s(i,e),o=t-s(i,t);return h(Math.abs(n-o)-function(e,t,i){for(var r=0,n=e-s(i,e),o=t-s(i,t),c=0;c<Math.abs(n-o);c++){var l="A"===a(e,t)?-1:1,h=i.buffer.lines.get(n+l*c);h&&h.isWrapped&&r++}return r}(e,t,i),l(a(e,t),r))}function s(e,t){for(var i=0,r=e.buffer.lines.get(t),n=r&&r.isWrapped;n&&t>=0&&t<e.rows;)i++,n=(r=e.buffer.lines.get(--t))&&r.isWrapped;return i}function o(e,t,i,r,o,a){var c;return c=n(i,r,o,a).length>0?r-s(o,r):t,e<i&&c<=r||e>=i&&c<r?"C":"D"}function a(e,t){return e>t?"A":"B"}function c(e,t,i,r,n,s){for(var o=e,a=t,c="";o!==i||a!==r;)o+=n?1:-1,n&&o>s.cols-1?(c+=s.buffer.translateBufferLineToString(a,!1,e,o),o=0,e=0,a++):!n&&o<0&&(c+=s.buffer.translateBufferLineToString(a,!1,0,e+1),e=o=s.cols-1,a--);return c+s.buffer.translateBufferLineToString(a,!1,e,o)}function l(e,t){var i=t?"O":"[";return r.C0.ESC+i+e}function h(e,t){e=Math.floor(e);for(var i="",r=0;r<e;r++)i+=t;return i}t.moveToCellSequence=function(e,t,i,r){var a=i.buffer.x,u=i.buffer.y;return i.buffer.hasScrollback?function(e,t,i,r,n,s){var a=o(e,t,i,r,n,s);return h(Math.abs(e-i),l(a,s))}(a,u,e,t,i,r):function(e,t,i,r,o,a){if(0===n(t,r,o,a).length)return"";return h(c(e,t,e,t-s(o,t),!1,o).length,l("D",a))}(a,u,0,t,i,r)+n(u,t,i,r)+function(e,t,i,r,a,u){var f;f=n(t,r,a,u).length>0?r-s(a,r):t;var _=r,d=o(e,t,i,r,a,u);return h(c(e,f,i,_,"C"===d,a).length,l(d,u))}(a,u,e,t,i,r)}},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(0),o=function(){function e(e){this._optionsService=e}return Object.defineProperty(e,"audioContext",{get:function(){if(!e._audioContext){var t=window.AudioContext||window.webkitAudioContext;if(!t)return console.warn("Web Audio API is not supported by this browser. Consider upgrading to the latest version"),null;e._audioContext=new t}return e._audioContext},enumerable:!0,configurable:!0}),e.prototype.playBellSound=function(){var t=e.audioContext;if(t){var i=t.createBufferSource();t.decodeAudioData(this._base64ToArrayBuffer(this._removeMimeType(this._optionsService.options.bellSound)),function(e){i.buffer=e,i.connect(t.destination),i.start(0)})}},e.prototype._base64ToArrayBuffer=function(e){for(var t=window.atob(e),i=t.length,r=new Uint8Array(i),n=0;n<i;n++)r[n]=t.charCodeAt(n);return r.buffer},e.prototype._removeMimeType=function(e){return e.split(",")[1]},e=r([n(0,s.IOptionsService)],e)}();t.SoundService=o},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}),s=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},o=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var a=i(2),c=i(7),l=i(5),h=i(0),u=function(e){function t(t,i,r,n,s){var o=e.call(this)||this;return o._element=t,o._screenElement=i,o._bufferService=r,o._mouseService=n,o._selectionService=s,o._zones=[],o._areZonesActive=!1,o._lastHoverCoords=[void 0,void 0],o._initialSelectionLength=0,o.register(c.addDisposableDomListener(o._element,"mousedown",function(e){return o._onMouseDown(e)})),o._mouseMoveListener=function(e){return o._onMouseMove(e)},o._mouseLeaveListener=function(e){return o._onMouseLeave(e)},o._clickListener=function(e){return o._onClick(e)},o}return n(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._deactivate()},t.prototype.add=function(e){this._zones.push(e),1===this._zones.length&&this._activate()},t.prototype.clearAll=function(e,t){if(0!==this._zones.length){e&&t||(e=0,t=this._bufferService.rows-1);for(var i=0;i<this._zones.length;i++){var r=this._zones[i];(r.y1>e&&r.y1<=t+1||r.y2>e&&r.y2<=t+1||r.y1<e&&r.y2>t+1)&&(this._currentZone&&this._currentZone===r&&(this._currentZone.leaveCallback(),this._currentZone=void 0),this._zones.splice(i--,1))}0===this._zones.length&&this._deactivate()}},t.prototype._activate=function(){this._areZonesActive||(this._areZonesActive=!0,this._element.addEventListener("mousemove",this._mouseMoveListener),this._element.addEventListener("mouseleave",this._mouseLeaveListener),this._element.addEventListener("click",this._clickListener))},t.prototype._deactivate=function(){this._areZonesActive&&(this._areZonesActive=!1,this._element.removeEventListener("mousemove",this._mouseMoveListener),this._element.removeEventListener("mouseleave",this._mouseLeaveListener),this._element.removeEventListener("click",this._clickListener))},t.prototype._onMouseMove=function(e){this._lastHoverCoords[0]===e.pageX&&this._lastHoverCoords[1]===e.pageY||(this._onHover(e),this._lastHoverCoords=[e.pageX,e.pageY])},t.prototype._onHover=function(e){var t=this,i=this._findZoneEventAt(e);i!==this._currentZone&&(this._currentZone&&(this._currentZone.leaveCallback(),this._currentZone=void 0,this._tooltipTimeout&&clearTimeout(this._tooltipTimeout)),i&&(this._currentZone=i,i.hoverCallback&&i.hoverCallback(e),this._tooltipTimeout=setTimeout(function(){return t._onTooltip(e)},500)))},t.prototype._onTooltip=function(e){this._tooltipTimeout=void 0;var t=this._findZoneEventAt(e);t&&t.tooltipCallback&&t.tooltipCallback(e)},t.prototype._onMouseDown=function(e){if(this._initialSelectionLength=this._getSelectionLength(),this._areZonesActive){var t=this._findZoneEventAt(e);t&&t.willLinkActivate(e)&&(e.preventDefault(),e.stopImmediatePropagation())}},t.prototype._onMouseLeave=function(e){this._currentZone&&(this._currentZone.leaveCallback(),this._currentZone=void 0,this._tooltipTimeout&&clearTimeout(this._tooltipTimeout))},t.prototype._onClick=function(e){var t=this._findZoneEventAt(e),i=this._getSelectionLength();t&&i===this._initialSelectionLength&&(t.clickCallback(e),e.preventDefault(),e.stopImmediatePropagation())},t.prototype._getSelectionLength=function(){var e=this._selectionService.selectionText;return e?e.length:0},t.prototype._findZoneEventAt=function(e){var t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows);if(t)for(var i=t[0],r=t[1],n=0;n<this._zones.length;n++){var s=this._zones[n];if(s.y1===s.y2){if(r===s.y1&&i>=s.x1&&i<s.x2)return s}else if(r===s.y1&&i>=s.x1||r===s.y2&&i<s.x2||r>s.y1&&r<s.y2)return s}},t=s([o(2,h.IBufferService),o(3,l.IMouseService),o(4,l.ISelectionService)],t)}(a.Disposable);t.MouseZoneManager=u},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(16),o=i(10),a=i(29),c=i(7),l=i(2),h=i(30),u=function(e){function t(t,i){var r=e.call(this)||this;r._terminal=t,r._renderService=i,r._liveRegionLineCount=0,r._charsToConsume=[],r._charsToAnnounce="",r._accessibilityTreeRoot=document.createElement("div"),r._accessibilityTreeRoot.classList.add("xterm-accessibility"),r._rowContainer=document.createElement("div"),r._rowContainer.classList.add("xterm-accessibility-tree"),r._rowElements=[];for(var n=0;n<r._terminal.rows;n++)r._rowElements[n]=r._createAccessibilityTreeNode(),r._rowContainer.appendChild(r._rowElements[n]);return r._topBoundaryFocusListener=function(e){return r._onBoundaryFocus(e,0)},r._bottomBoundaryFocusListener=function(e){return r._onBoundaryFocus(e,1)},r._rowElements[0].addEventListener("focus",r._topBoundaryFocusListener),r._rowElements[r._rowElements.length-1].addEventListener("focus",r._bottomBoundaryFocusListener),r._refreshRowsDimensions(),r._accessibilityTreeRoot.appendChild(r._rowContainer),r._renderRowsDebouncer=new a.RenderDebouncer(r._renderRows.bind(r)),r._refreshRows(),r._liveRegion=document.createElement("div"),r._liveRegion.classList.add("live-region"),r._liveRegion.setAttribute("aria-live","assertive"),r._accessibilityTreeRoot.appendChild(r._liveRegion),r._terminal.element.insertAdjacentElement("afterbegin",r._accessibilityTreeRoot),r.register(r._renderRowsDebouncer),r.register(r._terminal.onResize(function(e){return r._onResize(e.rows)})),r.register(r._terminal.onRender(function(e){return r._refreshRows(e.start,e.end)})),r.register(r._terminal.onScroll(function(){return r._refreshRows()})),r.register(r._terminal.onA11yChar(function(e){return r._onChar(e)})),r.register(r._terminal.onLineFeed(function(){return r._onChar("\n")})),r.register(r._terminal.onA11yTab(function(e){return r._onTab(e)})),r.register(r._terminal.onKey(function(e){return r._onKey(e.key)})),r.register(r._terminal.onBlur(function(){return r._clearLiveRegion()})),r.register(r._renderService.onDimensionsChange(function(){return r._refreshRowsDimensions()})),r._screenDprMonitor=new h.ScreenDprMonitor,r.register(r._screenDprMonitor),r._screenDprMonitor.setListener(function(){return r._refreshRowsDimensions()}),r.register(c.addDisposableDomListener(window,"resize",function(){return r._refreshRowsDimensions()})),r}return n(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._terminal.element.removeChild(this._accessibilityTreeRoot),this._rowElements.length=0},t.prototype._onBoundaryFocus=function(e,t){var i=e.target,r=this._rowElements[0===t?1:this._rowElements.length-2];if(i.getAttribute("aria-posinset")!==(0===t?"1":""+this._terminal.buffer.lines.length)&&e.relatedTarget===r){var n,s;if(0===t?(n=i,s=this._rowElements.pop(),this._rowContainer.removeChild(s)):(n=this._rowElements.shift(),s=i,this._rowContainer.removeChild(n)),n.removeEventListener("focus",this._topBoundaryFocusListener),s.removeEventListener("focus",this._bottomBoundaryFocusListener),0===t){var o=this._createAccessibilityTreeNode();this._rowElements.unshift(o),this._rowContainer.insertAdjacentElement("afterbegin",o)}else{o=this._createAccessibilityTreeNode();this._rowElements.push(o),this._rowContainer.appendChild(o)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}},t.prototype._onResize=function(e){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(var t=this._rowContainer.children.length;t<this._terminal.rows;t++)this._rowElements[t]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[t]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()},t.prototype._createAccessibilityTreeNode=function(){var e=document.createElement("div");return e.setAttribute("role","listitem"),e.tabIndex=-1,this._refreshRowDimensions(e),e},t.prototype._onTab=function(e){for(var t=0;t<e;t++)this._onChar(" ")},t.prototype._onChar=function(e){var t=this;if(this._liveRegionLineCount<21){if(this._charsToConsume.length>0)this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e);else this._charsToAnnounce+=e;"\n"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=s.tooMuchOutput)),o.isMac&&this._liveRegion.textContent&&this._liveRegion.textContent.length>0&&!this._liveRegion.parentNode&&setTimeout(function(){t._accessibilityTreeRoot.appendChild(t._liveRegion)},0)}},t.prototype._clearLiveRegion=function(){this._liveRegion.textContent="",this._liveRegionLineCount=0,o.isMac&&this._liveRegion.parentNode&&this._accessibilityTreeRoot.removeChild(this._liveRegion)},t.prototype._onKey=function(e){this._clearLiveRegion(),this._charsToConsume.push(e)},t.prototype._refreshRows=function(e,t){this._renderRowsDebouncer.refresh(e,t,this._terminal.rows)},t.prototype._renderRows=function(e,t){for(var i=this._terminal.buffer,r=i.lines.length.toString(),n=e;n<=t;n++){var s=i.translateBufferLineToString(i.ydisp+n,!0),o=(i.ydisp+n+1).toString(),a=this._rowElements[n];a&&(0===s.length?a.innerHTML=" ":a.textContent=s,a.setAttribute("aria-posinset",o),a.setAttribute("aria-setsize",r))}this._announceCharacters()},t.prototype._refreshRowsDimensions=function(){if(this._renderService.dimensions.actualCellHeight){this._rowElements.length!==this._terminal.rows&&this._onResize(this._terminal.rows);for(var e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e])}},t.prototype._refreshRowDimensions=function(e){e.style.height=this._renderService.dimensions.actualCellHeight+"px"},t.prototype._announceCharacters=function(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")},t}(l.Disposable);t.AccessibilityManager=u},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(56),o=i(9),a=i(2),c="xterm-dom-renderer-owner-",l="xterm-rows",h="xterm-selection",u=1,f=function(e){function t(t,i,r,n){var o=e.call(this)||this;return o._terminal=t,o._colors=i,o._charSizeService=r,o._optionsService=n,o._terminalClass=u++,o._rowElements=[],o._rowContainer=document.createElement("div"),o._rowContainer.classList.add(l),o._rowContainer.style.lineHeight="normal",o._rowContainer.setAttribute("aria-hidden","true"),o._refreshRowElements(o._terminal.cols,o._terminal.rows),o._selectionContainer=document.createElement("div"),o._selectionContainer.classList.add(h),o._selectionContainer.setAttribute("aria-hidden","true"),o.dimensions={scaledCharWidth:null,scaledCharHeight:null,scaledCellWidth:null,scaledCellHeight:null,scaledCharLeft:null,scaledCharTop:null,scaledCanvasWidth:null,scaledCanvasHeight:null,canvasWidth:null,canvasHeight:null,actualCellWidth:null,actualCellHeight:null},o._updateDimensions(),o._injectCss(),o._rowFactory=new s.DomRendererRowFactory(document,o._optionsService),o._terminal.element.classList.add(c+o._terminalClass),o._terminal.screenElement.appendChild(o._rowContainer),o._terminal.screenElement.appendChild(o._selectionContainer),o._terminal.linkifier.onLinkHover(function(e){return o._onLinkHover(e)}),o._terminal.linkifier.onLinkLeave(function(e){return o._onLinkLeave(e)}),o}return n(t,e),t.prototype.dispose=function(){this._terminal.element.classList.remove(c+this._terminalClass),this._terminal.screenElement.removeChild(this._rowContainer),this._terminal.screenElement.removeChild(this._selectionContainer),this._terminal.screenElement.removeChild(this._themeStyleElement),this._terminal.screenElement.removeChild(this._dimensionsStyleElement),e.prototype.dispose.call(this)},t.prototype._updateDimensions=function(){var e=this;this.dimensions.scaledCharWidth=this._charSizeService.width*window.devicePixelRatio,this.dimensions.scaledCharHeight=Math.ceil(this._charSizeService.height*window.devicePixelRatio),this.dimensions.scaledCellWidth=this.dimensions.scaledCharWidth+Math.round(this._terminal.options.letterSpacing),this.dimensions.scaledCellHeight=Math.floor(this.dimensions.scaledCharHeight*this._terminal.options.lineHeight),this.dimensions.scaledCharLeft=0,this.dimensions.scaledCharTop=0,this.dimensions.scaledCanvasWidth=this.dimensions.scaledCellWidth*this._terminal.cols,this.dimensions.scaledCanvasHeight=this.dimensions.scaledCellHeight*this._terminal.rows,this.dimensions.canvasWidth=Math.round(this.dimensions.scaledCanvasWidth/window.devicePixelRatio),this.dimensions.canvasHeight=Math.round(this.dimensions.scaledCanvasHeight/window.devicePixelRatio),this.dimensions.actualCellWidth=this.dimensions.canvasWidth/this._terminal.cols,this.dimensions.actualCellHeight=this.dimensions.canvasHeight/this._terminal.rows,this._rowElements.forEach(function(t){t.style.width=e.dimensions.canvasWidth+"px",t.style.height=e.dimensions.actualCellHeight+"px",t.style.lineHeight=e.dimensions.actualCellHeight+"px",t.style.overflow="hidden"}),this._dimensionsStyleElement||(this._dimensionsStyleElement=document.createElement("style"),this._terminal.screenElement.appendChild(this._dimensionsStyleElement));var t=this._terminalSelector+" ."+l+" span { display: inline-block; height: 100%; vertical-align: top; width: "+this.dimensions.actualCellWidth+"px}";this._dimensionsStyleElement.innerHTML=t,this._selectionContainer.style.height=this._terminal._viewportElement.style.height,this._terminal.screenElement.style.width=this.dimensions.canvasWidth+"px",this._terminal.screenElement.style.height=this.dimensions.canvasHeight+"px"},t.prototype.setColors=function(e){this._colors=e,this._injectCss()},t.prototype._injectCss=function(){var e=this;this._themeStyleElement||(this._themeStyleElement=document.createElement("style"),this._terminal.screenElement.appendChild(this._themeStyleElement));var t=this._terminalSelector+" ."+l+" { color: "+this._colors.foreground.css+"; background-color: "+this._colors.background.css+"; font-family: "+this._terminal.options.fontFamily+"; font-size: "+this._terminal.options.fontSize+"px;}";t+=this._terminalSelector+" span:not(."+s.BOLD_CLASS+") { font-weight: "+this._terminal.options.fontWeight+";}"+this._terminalSelector+" span."+s.BOLD_CLASS+" { font-weight: "+this._terminal.options.fontWeightBold+";}"+this._terminalSelector+" span."+s.ITALIC_CLASS+" { font-style: italic;}",t+="@keyframes blink_box_shadow { 50% { box-shadow: none; }}",t+="@keyframes blink_block { 0% { background-color: "+this._colors.cursor.css+"; color: "+this._colors.cursorAccent.css+"; } 50% { background-color: "+this._colors.cursorAccent.css+"; color: "+this._colors.cursor.css+"; }}",t+=this._terminalSelector+" ."+l+":not(.xterm-focus) ."+s.CURSOR_CLASS+" { outline: 1px solid "+this._colors.cursor.css+"; outline-offset: -1px;}"+this._terminalSelector+" ."+l+".xterm-focus ."+s.CURSOR_CLASS+"."+s.CURSOR_BLINK_CLASS+":not(."+s.CURSOR_STYLE_BLOCK_CLASS+") { animation: blink_box_shadow 1s step-end infinite;}"+this._terminalSelector+" ."+l+".xterm-focus ."+s.CURSOR_CLASS+"."+s.CURSOR_BLINK_CLASS+"."+s.CURSOR_STYLE_BLOCK_CLASS+" { animation: blink_block 1s step-end infinite;}"+this._terminalSelector+" ."+l+".xterm-focus ."+s.CURSOR_CLASS+"."+s.CURSOR_STYLE_BLOCK_CLASS+" { background-color: "+this._colors.cursor.css+"; color: "+this._colors.cursorAccent.css+";}"+this._terminalSelector+" ."+l+".xterm-focus ."+s.CURSOR_CLASS+"."+s.CURSOR_STYLE_BAR_CLASS+" { box-shadow: 1px 0 0 "+this._colors.cursor.css+" inset;}"+this._terminalSelector+" ."+l+".xterm-focus ."+s.CURSOR_CLASS+"."+s.CURSOR_STYLE_UNDERLINE_CLASS+" { box-shadow: 0 -1px 0 "+this._colors.cursor.css+" inset;}",t+=this._terminalSelector+" ."+h+" { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}"+this._terminalSelector+" ."+h+" div { position: absolute; background-color: "+this._colors.selection.css+";}",this._colors.ansi.forEach(function(i,r){t+=e._terminalSelector+" .xterm-fg-"+r+" { color: "+i.css+"; }"+e._terminalSelector+" .xterm-bg-"+r+" { background-color: "+i.css+"; }"}),t+=this._terminalSelector+" .xterm-fg-"+o.INVERTED_DEFAULT_COLOR+" { color: "+this._colors.background.css+"; }"+this._terminalSelector+" .xterm-bg-"+o.INVERTED_DEFAULT_COLOR+" { background-color: "+this._colors.foreground.css+"; }",this._themeStyleElement.innerHTML=t},t.prototype.onDevicePixelRatioChange=function(){this._updateDimensions()},t.prototype._refreshRowElements=function(e,t){for(var i=this._rowElements.length;i<=t;i++){var r=document.createElement("div");this._rowContainer.appendChild(r),this._rowElements.push(r)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())},t.prototype.onResize=function(e,t){this._refreshRowElements(e,t),this._updateDimensions()},t.prototype.onCharSizeChanged=function(){this._updateDimensions()},t.prototype.onBlur=function(){this._rowContainer.classList.remove("xterm-focus")},t.prototype.onFocus=function(){this._rowContainer.classList.add("xterm-focus")},t.prototype.onSelectionChanged=function(e,t,i){for(;this._selectionContainer.children.length;)this._selectionContainer.removeChild(this._selectionContainer.children[0]);if(e&&t){var r=e[1]-this._terminal.buffer.ydisp,n=t[1]-this._terminal.buffer.ydisp,s=Math.max(r,0),o=Math.min(n,this._terminal.rows-1);if(!(s>=this._terminal.rows||o<0)){var a=document.createDocumentFragment();if(i)a.appendChild(this._createSelectionElement(s,e[0],t[0],o-s+1));else{var c=r===s?e[0]:0,l=s===o?t[0]:this._terminal.cols;a.appendChild(this._createSelectionElement(s,c,l));var h=o-s-1;if(a.appendChild(this._createSelectionElement(s+1,0,this._terminal.cols,h)),s!==o){var u=n===o?t[0]:this._terminal.cols;a.appendChild(this._createSelectionElement(o,0,u))}}this._selectionContainer.appendChild(a)}}},t.prototype._createSelectionElement=function(e,t,i,r){void 0===r&&(r=1);var n=document.createElement("div");return n.style.height=r*this.dimensions.actualCellHeight+"px",n.style.top=e*this.dimensions.actualCellHeight+"px",n.style.left=t*this.dimensions.actualCellWidth+"px",n.style.width=this.dimensions.actualCellWidth*(i-t)+"px",n},t.prototype.onCursorMove=function(){},t.prototype.onOptionsChanged=function(){this._updateDimensions(),this._injectCss(),this._terminal.refresh(0,this._terminal.rows-1)},t.prototype.clear=function(){this._rowElements.forEach(function(e){return e.innerHTML=""})},t.prototype.renderRows=function(e,t){for(var i=this._terminal,r=i.buffer.ybase+i.buffer.y,n=this._terminal.buffer.x,s=this._terminal.options.cursorBlink,o=e;o<=t;o++){var a=this._rowElements[o];a.innerHTML="";var c=o+i.buffer.ydisp,l=i.buffer.lines.get(c),h=i.options.cursorStyle;a.appendChild(this._rowFactory.createRow(l,c===r,h,n,s,this.dimensions.actualCellWidth,i.cols))}},Object.defineProperty(t.prototype,"_terminalSelector",{get:function(){return"."+c+this._terminalClass},enumerable:!0,configurable:!0}),t.prototype.registerCharacterJoiner=function(e){return-1},t.prototype.deregisterCharacterJoiner=function(e){return!1},t.prototype._onLinkHover=function(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)},t.prototype._onLinkLeave=function(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)},t.prototype._setCellUnderline=function(e,t,i,r,n,s){for(;e!==t||i!==r;){var o=this._rowElements[i];if(!o)return;var a=o.children[e];a&&(a.style.textDecoration=s?"underline":"none"),++e>=n&&(e=0,i++)}},t}(a.Disposable);t.DomRenderer=f},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(9),n=i(6),s=i(3),o=i(4);t.BOLD_CLASS="xterm-bold",t.DIM_CLASS="xterm-dim",t.ITALIC_CLASS="xterm-italic",t.UNDERLINE_CLASS="xterm-underline",t.CURSOR_CLASS="xterm-cursor",t.CURSOR_BLINK_CLASS="xterm-cursor-blink",t.CURSOR_STYLE_BLOCK_CLASS="xterm-cursor-block",t.CURSOR_STYLE_BAR_CLASS="xterm-cursor-bar",t.CURSOR_STYLE_UNDERLINE_CLASS="xterm-cursor-underline";var a=function(){function e(e,t){this._document=e,this._optionsService=t,this._workCell=new o.CellData}return e.prototype.createRow=function(e,i,o,a,c,l,h){for(var u=this._document.createDocumentFragment(),f=0,_=Math.min(e.length,h)-1;_>=0;_--)if(e.loadCell(_,this._workCell).getCode()!==s.NULL_CELL_CODE||i&&_===a){f=_+1;break}for(_=0;_<f;_++){e.loadCell(_,this._workCell);var d=this._workCell.getWidth();if(0!==d){var p=this._document.createElement("span");if(d>1&&(p.style.width=l*d+"px"),i&&_===a)switch(p.classList.add(t.CURSOR_CLASS),c&&p.classList.add(t.CURSOR_BLINK_CLASS),o){case"bar":p.classList.add(t.CURSOR_STYLE_BAR_CLASS);break;case"underline":p.classList.add(t.CURSOR_STYLE_UNDERLINE_CLASS);break;default:p.classList.add(t.CURSOR_STYLE_BLOCK_CLASS)}this._workCell.isBold()&&p.classList.add(t.BOLD_CLASS),this._workCell.isItalic()&&p.classList.add(t.ITALIC_CLASS),this._workCell.isDim()&&p.classList.add(t.DIM_CLASS),this._workCell.isUnderline()&&p.classList.add(t.UNDERLINE_CLASS),p.textContent=this._workCell.getChars()||s.WHITESPACE_CELL_CHAR;var v=this._workCell.isInverse();if(this._workCell.isFgRGB()){var g=p.getAttribute("style")||"";g+=(v?"background-":"")+"color:rgb("+n.AttributeData.toColorRGB(this._workCell.getFgColor()).join(",")+");",p.setAttribute("style",g)}else if(this._workCell.isFgPalette()){var y=this._workCell.getFgColor();this._workCell.isBold()&&y<8&&!v&&this._optionsService.options.drawBoldTextInBrightColors&&(y+=8),p.classList.add("xterm-"+(v?"b":"f")+"g-"+y)}else v&&p.classList.add("xterm-bg-"+r.INVERTED_DEFAULT_COLOR);if(this._workCell.isBgRGB()){g=p.getAttribute("style")||"";g+=(v?"":"background-")+"color:rgb("+n.AttributeData.toColorRGB(this._workCell.getBgColor()).join(",")+");",p.setAttribute("style",g)}else this._workCell.isBgPalette()?p.classList.add("xterm-"+(v?"f":"b")+"g-"+this._workCell.getBgColor()):v&&p.classList.add("xterm-fg-"+r.INVERTED_DEFAULT_COLOR);u.appendChild(p)}}return u},e}();t.DomRendererRowFactory=a},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(11),n={48:["0",")"],49:["1","!"],50:["2","@"],51:["3","#"],52:["4","$"],53:["5","%"],54:["6","^"],55:["7","&"],56:["8","*"],57:["9","("],186:[";",":"],187:["=","+"],188:[",","<"],189:["-","_"],190:[".",">"],191:["/","?"],192:["`","~"],219:["[","{"],220:["\\","|"],221:["]","}"],222:["'",'"']};t.evaluateKeyboardEvent=function(e,t,i,s){var o={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:"UIKeyInputUpArrow"===e.key?o.key=t?r.C0.ESC+"OA":r.C0.ESC+"[A":"UIKeyInputLeftArrow"===e.key?o.key=t?r.C0.ESC+"OD":r.C0.ESC+"[D":"UIKeyInputRightArrow"===e.key?o.key=t?r.C0.ESC+"OC":r.C0.ESC+"[C":"UIKeyInputDownArrow"===e.key&&(o.key=t?r.C0.ESC+"OB":r.C0.ESC+"[B");break;case 8:if(e.shiftKey){o.key=r.C0.BS;break}if(e.altKey){o.key=r.C0.ESC+r.C0.DEL;break}o.key=r.C0.DEL;break;case 9:if(e.shiftKey){o.key=r.C0.ESC+"[Z";break}o.key=r.C0.HT,o.cancel=!0;break;case 13:o.key=r.C0.CR,o.cancel=!0;break;case 27:o.key=r.C0.ESC,o.cancel=!0;break;case 37:a?(o.key=r.C0.ESC+"[1;"+(a+1)+"D",o.key===r.C0.ESC+"[1;3D"&&(o.key=i?r.C0.ESC+"b":r.C0.ESC+"[1;5D")):o.key=t?r.C0.ESC+"OD":r.C0.ESC+"[D";break;case 39:a?(o.key=r.C0.ESC+"[1;"+(a+1)+"C",o.key===r.C0.ESC+"[1;3C"&&(o.key=i?r.C0.ESC+"f":r.C0.ESC+"[1;5C")):o.key=t?r.C0.ESC+"OC":r.C0.ESC+"[C";break;case 38:a?(o.key=r.C0.ESC+"[1;"+(a+1)+"A",o.key===r.C0.ESC+"[1;3A"&&(o.key=r.C0.ESC+"[1;5A")):o.key=t?r.C0.ESC+"OA":r.C0.ESC+"[A";break;case 40:a?(o.key=r.C0.ESC+"[1;"+(a+1)+"B",o.key===r.C0.ESC+"[1;3B"&&(o.key=r.C0.ESC+"[1;5B")):o.key=t?r.C0.ESC+"OB":r.C0.ESC+"[B";break;case 45:e.shiftKey||e.ctrlKey||(o.key=r.C0.ESC+"[2~");break;case 46:o.key=a?r.C0.ESC+"[3;"+(a+1)+"~":r.C0.ESC+"[3~";break;case 36:o.key=a?r.C0.ESC+"[1;"+(a+1)+"H":t?r.C0.ESC+"OH":r.C0.ESC+"[H";break;case 35:o.key=a?r.C0.ESC+"[1;"+(a+1)+"F":t?r.C0.ESC+"OF":r.C0.ESC+"[F";break;case 33:e.shiftKey?o.type=2:o.key=r.C0.ESC+"[5~";break;case 34:e.shiftKey?o.type=3:o.key=r.C0.ESC+"[6~";break;case 112:o.key=a?r.C0.ESC+"[1;"+(a+1)+"P":r.C0.ESC+"OP";break;case 113:o.key=a?r.C0.ESC+"[1;"+(a+1)+"Q":r.C0.ESC+"OQ";break;case 114:o.key=a?r.C0.ESC+"[1;"+(a+1)+"R":r.C0.ESC+"OR";break;case 115:o.key=a?r.C0.ESC+"[1;"+(a+1)+"S":r.C0.ESC+"OS";break;case 116:o.key=a?r.C0.ESC+"[15;"+(a+1)+"~":r.C0.ESC+"[15~";break;case 117:o.key=a?r.C0.ESC+"[17;"+(a+1)+"~":r.C0.ESC+"[17~";break;case 118:o.key=a?r.C0.ESC+"[18;"+(a+1)+"~":r.C0.ESC+"[18~";break;case 119:o.key=a?r.C0.ESC+"[19;"+(a+1)+"~":r.C0.ESC+"[19~";break;case 120:o.key=a?r.C0.ESC+"[20;"+(a+1)+"~":r.C0.ESC+"[20~";break;case 121:o.key=a?r.C0.ESC+"[21;"+(a+1)+"~":r.C0.ESC+"[21~";break;case 122:o.key=a?r.C0.ESC+"[23;"+(a+1)+"~":r.C0.ESC+"[23~";break;case 123:o.key=a?r.C0.ESC+"[24;"+(a+1)+"~":r.C0.ESC+"[24~";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(i&&!s||!e.altKey||e.metaKey)i&&!e.altKey&&!e.ctrlKey&&e.metaKey?65===e.keyCode&&(o.type=1):e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?o.key=e.key:e.key&&e.ctrlKey&&"_"===e.key&&(o.key=r.C0.US);else{var c=n[e.keyCode],l=c&&c[e.shiftKey?1:0];if(l)o.key=r.C0.ESC+l;else if(e.keyCode>=65&&e.keyCode<=90){var h=e.ctrlKey?e.keyCode-64:e.keyCode+32;o.key=r.C0.ESC+String.fromCharCode(h)}}else e.keyCode>=65&&e.keyCode<=90?o.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?o.key=String.fromCharCode(0):e.keyCode>=51&&e.keyCode<=55?o.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?o.key=String.fromCharCode(127):219===e.keyCode?o.key=String.fromCharCode(27):220===e.keyCode?o.key=String.fromCharCode(28):221===e.keyCode&&(o.key=String.fromCharCode(29))}return o}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(3);t.applyWindowsMode=function(e){return e.onLineFeed(function(){var t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1).get(e.cols-1);e.buffer.lines.get(e.buffer.ybase+e.buffer.y).isWrapped=t[r.CHAR_DATA_CODE_INDEX]!==r.NULL_CELL_CODE&&t[r.CHAR_DATA_CODE_INDEX]!==r.WHITESPACE_CELL_CODE})}},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}),s=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},o=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var a=i(29),c=i(1),l=i(2),h=i(30),u=i(7),f=i(0),_=i(5),d=function(e){function t(t,i,r,n,s){var o=e.call(this)||this;if(o._renderer=t,o._rowCount=i,o.screenElement=r,o.optionsService=n,o.charSizeService=s,o._isPaused=!1,o._needsFullRefresh=!1,o._canvasWidth=0,o._canvasHeight=0,o._onDimensionsChange=new c.EventEmitter,o._onRender=new c.EventEmitter,o._onRefreshRequest=new c.EventEmitter,o._renderDebouncer=new a.RenderDebouncer(function(e,t){return o._renderRows(e,t)}),o.register(o._renderDebouncer),o._screenDprMonitor=new h.ScreenDprMonitor,o._screenDprMonitor.setListener(function(){return o.onDevicePixelRatioChange()}),o.register(o._screenDprMonitor),o.register(n.onOptionChange(function(){return o._renderer.onOptionsChanged()})),o.register(s.onCharSizeChange(function(){return o.onCharSizeChanged()})),o.register(u.addDisposableDomListener(window,"resize",function(){return o.onDevicePixelRatioChange()})),"IntersectionObserver"in window){var l=new IntersectionObserver(function(e){return o._onIntersectionChange(e[e.length-1])},{threshold:0});l.observe(r),o.register({dispose:function(){return l.disconnect()}})}return o}return n(t,e),Object.defineProperty(t.prototype,"onDimensionsChange",{get:function(){return this._onDimensionsChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onRender",{get:function(){return this._onRender.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onRefreshRequest",{get:function(){return this._onRefreshRequest.event},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"dimensions",{get:function(){return this._renderer.dimensions},enumerable:!0,configurable:!0}),t.prototype._onIntersectionChange=function(e){this._isPaused=0===e.intersectionRatio,!this._isPaused&&this._needsFullRefresh&&(this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)},t.prototype.refreshRows=function(e,t){this._isPaused?this._needsFullRefresh=!0:this._renderDebouncer.refresh(e,t,this._rowCount)},t.prototype._renderRows=function(e,t){this._renderer.renderRows(e,t),this._onRender.fire({start:e,end:t})},t.prototype.resize=function(e,t){this._rowCount=t,this._fireOnCanvasResize()},t.prototype.changeOptions=function(){this._renderer.onOptionsChanged(),this._fireOnCanvasResize()},t.prototype._fireOnCanvasResize=function(){this._renderer.dimensions.canvasWidth===this._canvasWidth&&this._renderer.dimensions.canvasHeight===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.dimensions)},t.prototype.dispose=function(){this._renderer.dispose()},t.prototype.setRenderer=function(e){this._renderer.dispose(),this._renderer=e,this.refreshRows(0,this._rowCount-1)},t.prototype._fullRefresh=function(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)},t.prototype.setColors=function(e){this._renderer.setColors(e),this._fullRefresh()},t.prototype.onDevicePixelRatioChange=function(){this._renderer.onDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1)},t.prototype.onResize=function(e,t){this._renderer.onResize(e,t),this._fullRefresh()},t.prototype.onCharSizeChanged=function(){this._renderer.onCharSizeChanged()},t.prototype.onBlur=function(){this._renderer.onBlur()},t.prototype.onFocus=function(){this._renderer.onFocus()},t.prototype.onSelectionChanged=function(e,t,i){this._renderer.onSelectionChanged(e,t,i)},t.prototype.onCursorMove=function(){this._renderer.onCursorMove()},t.prototype.clear=function(){this._renderer.clear()},t.prototype.registerCharacterJoiner=function(e){return this._renderer.registerCharacterJoiner(e)},t.prototype.deregisterCharacterJoiner=function(e){return this._renderer.deregisterCharacterJoiner(e)},t=s([o(3,f.IOptionsService),o(4,_.ICharSizeService)],t)}(l.Disposable);t.RenderService=d},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(1),n=i(10),s=i(31);t.DEFAULT_BELL_SOUND="data:audio/wav;base64,UklGRigBAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQQBAADpAFgCwAMlBZoG/wdmCcoKRAypDQ8PbRDBEQQTOxRtFYcWlBePGIUZXhoiG88bcBz7HHIdzh0WHlMeZx51HmkeUx4WHs8dah0AHXwc3hs9G4saxRnyGBIYGBcQFv8U4RPAEoYRQBACD70NWwwHC6gJOwjWBloF7gOBAhABkf8b/qv8R/ve+Xf4Ife79W/0JfPZ8Z/wde9N7ijtE+wU6xvqM+lb6H7nw+YX5mrlxuQz5Mzje+Ma49fioeKD4nXiYeJy4pHitOL04j/jn+MN5IPkFOWs5U3mDefM55/ogOl36m7rdOyE7abuyu8D8Unyj/Pg9D/2qfcb+Yn6/vuK/Qj/lAAlAg==",t.DEFAULT_OPTIONS=Object.freeze({cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",bellSound:t.DEFAULT_BELL_SOUND,bellStyle:"none",drawBoldTextInBrightColors:!0,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",lineHeight:1,letterSpacing:0,logLevel:"info",scrollback:1e3,screenReaderMode:!1,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,disableStdin:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rightClickSelectsWord:n.isMac,rendererType:"canvas",windowsMode:!1,convertEol:!1,termName:"xterm",screenKeys:!1,cancelEvents:!1,useFlowControl:!1,wordSeparator:" ()[]{}'\""});var o=["cols","rows"],a=function(){function e(e){var i=this;this._onOptionChange=new r.EventEmitter,this.options=s.clone(t.DEFAULT_OPTIONS),Object.keys(e).forEach(function(t){if(t in i.options){var r=e[t];i.options[t]=r}})}return Object.defineProperty(e.prototype,"onOptionChange",{get:function(){return this._onOptionChange.event},enumerable:!0,configurable:!0}),e.prototype.setOption=function(e,i){if(!(e in t.DEFAULT_OPTIONS))throw new Error('No option with key "'+e+'"');if(-1!==o.indexOf(e))throw new Error('Option "'+e+'" can only be set in the constructor');this.options[e]!==i&&(i=this._sanitizeAndValidateOption(e,i),this.options[e]!==i&&(this.options[e]=i,this._onOptionChange.fire(e)))},e.prototype._sanitizeAndValidateOption=function(e,i){switch(e){case"bellStyle":case"cursorStyle":case"fontWeight":case"fontWeightBold":case"rendererType":case"wordSeparator":i||(i=t.DEFAULT_OPTIONS[e]);break;case"lineHeight":case"tabStopWidth":if(i<1)throw new Error(e+" cannot be less than 1, value: "+i);break;case"scrollback":if((i=Math.min(i,4294967295))<0)throw new Error(e+" cannot be less than 0, value: "+i)}return i},e.prototype.getOption=function(e){if(!(e in t.DEFAULT_OPTIONS))throw new Error('No option with key "'+e+'"');return this.options[e]},e}();t.OptionsService=a},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(0),o=i(1),a=function(){function e(e,t,i){this.document=e,this.parentElement=t,this._optionsService=i,this.width=0,this.height=0,this._onCharSizeChange=new o.EventEmitter,this._measureStrategy=new c(e,t,this._optionsService)}return Object.defineProperty(e.prototype,"hasValidSize",{get:function(){return this.width>0&&this.height>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onCharSizeChange",{get:function(){return this._onCharSizeChange.event},enumerable:!0,configurable:!0}),e.prototype.measure=function(){var e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())},e=r([n(2,s.IOptionsService)],e)}();t.CharSizeService=a;var c=function(){function e(e,t,i){this._document=e,this._parentElement=t,this._optionsService=i,this._result={width:0,height:0},this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W",this._measureElement.setAttribute("aria-hidden","true"),this._parentElement.appendChild(this._measureElement)}return e.prototype.measure=function(){this._measureElement.style.fontFamily=this._optionsService.options.fontFamily,this._measureElement.style.fontSize=this._optionsService.options.fontSize+"px";var e=this._measureElement.getBoundingClientRect();return 0!==e.width&&0!==e.height&&(this._result.width=e.width,this._result.height=Math.ceil(e.height)),this._result},e}()},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(0),o=i(63);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;var a=function(){function e(e){this._optionsService=e,this.cols=Math.max(e.options.cols,t.MINIMUM_COLS),this.rows=Math.max(e.options.rows,t.MINIMUM_ROWS),this.buffers=new o.BufferSet(e,this)}return Object.defineProperty(e.prototype,"buffer",{get:function(){return this.buffers.active},enumerable:!0,configurable:!0}),e.prototype.resize=function(e,t){this.cols=e,this.rows=t},e.prototype.reset=function(){this.buffers=new o.BufferSet(this._optionsService,this)},e=r([n(0,s.IOptionsService)],e)}();t.BufferService=a},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(64),n=i(1),s=function(){function e(e,t){this.optionsService=e,this.bufferService=t,this._onBufferActivate=new n.EventEmitter,this._normal=new r.Buffer(!0,e,t),this._normal.fillViewportRows(),this._alt=new r.Buffer(!1,e,t),this._activeBuffer=this._normal,this.setupTabStops()}return Object.defineProperty(e.prototype,"onBufferActivate",{get:function(){return this._onBufferActivate.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"alt",{get:function(){return this._alt},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"active",{get:function(){return this._activeBuffer},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"normal",{get:function(){return this._normal},enumerable:!0,configurable:!0}),e.prototype.activateNormalBuffer=function(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))},e.prototype.activateAltBuffer=function(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))},e.prototype.resize=function(e,t){this._normal.resize(e,t),this._alt.resize(e,t)},e.prototype.setupTabStops=function(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)},e}();t.BufferSet=s},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(65),n=i(15),s=i(4),o=i(3),a=i(66),c=i(67),l=i(17);t.MAX_BUFFER_SIZE=4294967295;var h=function(){function e(e,t,i){this._hasScrollback=e,this._optionsService=t,this._bufferService=i,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.savedY=0,this.savedX=0,this.savedCurAttrData=n.DEFAULT_ATTR_DATA.clone(),this.savedCharset=l.DEFAULT_CHARSET,this.markers=[],this._nullCell=s.CellData.fromCharData([0,o.NULL_CELL_CHAR,o.NULL_CELL_WIDTH,o.NULL_CELL_CODE]),this._whitespaceCell=s.CellData.fromCharData([0,o.WHITESPACE_CELL_CHAR,o.WHITESPACE_CELL_WIDTH,o.WHITESPACE_CELL_CODE]),this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new r.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}return e.prototype.getNullCell=function(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg):(this._nullCell.fg=0,this._nullCell.bg=0),this._nullCell},e.prototype.getWhitespaceCell=function(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0),this._whitespaceCell},e.prototype.getBlankLine=function(e,t){return new n.BufferLine(this._bufferService.cols,this.getNullCell(e),t)},Object.defineProperty(e.prototype,"hasScrollback",{get:function(){return this._hasScrollback&&this.lines.maxLength>this._rows},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isCursorInViewport",{get:function(){var e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows},enumerable:!0,configurable:!0}),e.prototype._getCorrectBufferLength=function(e){if(!this._hasScrollback)return e;var i=e+this._optionsService.options.scrollback;return i>t.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:i},e.prototype.fillViewportRows=function(e){if(0===this.lines.length){void 0===e&&(e=n.DEFAULT_ATTR_DATA);for(var t=this._rows;t--;)this.lines.push(this.getBlankLine(e))}},e.prototype.clear=function(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new r.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()},e.prototype.resize=function(e,t){var i=this.getNullCell(n.DEFAULT_ATTR_DATA),r=this._getCorrectBufferLength(t);if(r>this.lines.maxLength&&(this.lines.maxLength=r),this.lines.length>0){if(this._cols<e)for(var s=0;s<this.lines.length;s++)this.lines.get(s).resize(e,i);var o=0;if(this._rows<t)for(var a=this._rows;a<t;a++)this.lines.length<t+this.ybase&&(this.ybase>0&&this.lines.length<=this.ybase+this.y+o+1?(this.ybase--,o++,this.ydisp>0&&this.ydisp--):this.lines.push(new n.BufferLine(e,i)));else for(a=this._rows;a>t;a--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(r<this.lines.maxLength){var c=this.lines.length-r;c>0&&(this.lines.trimStart(c),this.ybase=Math.max(this.ybase-c,0),this.ydisp=Math.max(this.ydisp-c,0),this.savedY=Math.max(this.savedY-c,0)),this.lines.maxLength=r}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),o&&(this.y+=o),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(s=0;s<this.lines.length;s++)this.lines.get(s).resize(e,i);this._cols=e,this._rows=t},Object.defineProperty(e.prototype,"_isReflowEnabled",{get:function(){return this._hasScrollback&&!this._optionsService.options.windowsMode},enumerable:!0,configurable:!0}),e.prototype._reflow=function(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))},e.prototype._reflowLarger=function(e,t){var i=a.reflowLargerGetLinesToRemove(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(n.DEFAULT_ATTR_DATA));if(i.length>0){var r=a.reflowLargerCreateNewLayout(this.lines,i);a.reflowLargerApplyNewLayout(this.lines,r.layout),this._reflowLargerAdjustViewport(e,t,r.countRemoved)}},e.prototype._reflowLargerAdjustViewport=function(e,t,i){for(var r=this.getNullCell(n.DEFAULT_ATTR_DATA),s=i;s-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new n.BufferLine(e,r))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-i,0)},e.prototype._reflowSmaller=function(e,t){for(var i=this.getNullCell(n.DEFAULT_ATTR_DATA),r=[],s=0,o=this.lines.length-1;o>=0;o--){var c=this.lines.get(o);if(!(!c||!c.isWrapped&&c.getTrimmedLength()<=e)){for(var l=[c];c.isWrapped&&o>0;)c=this.lines.get(--o),l.unshift(c);var h=this.ybase+this.y;if(!(h>=o&&h<o+l.length)){var u=l[l.length-1].getTrimmedLength(),f=a.reflowSmallerGetNewLineLengths(l,this._cols,e),_=f.length-l.length,d=void 0;d=0===this.ybase&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+_):Math.max(0,this.lines.length-this.lines.maxLength+_);for(var p=[],v=0;v<_;v++){var g=this.getBlankLine(n.DEFAULT_ATTR_DATA,!0);p.push(g)}p.length>0&&(r.push({start:o+l.length+s,newLines:p}),s+=p.length),l.push.apply(l,p);var y=f.length-1,m=f[y];0===m&&(m=f[--y]);for(var b=l.length-_-1,C=u;b>=0;){var S=Math.min(C,m);if(l[y].copyCellsFrom(l[b],C-S,m-S,S,!0),0===(m-=S)&&(m=f[--y]),0===(C-=S)){b--;var w=Math.max(b,0);C=a.getWrappedLineTrimmedLength(l,w,this._cols)}}for(v=0;v<l.length;v++)f[v]<e&&l[v].setCell(f[v],i);for(var E=_-d;E-- >0;)0===this.ybase?this.y<t-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+s)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+_,this.ybase+t-1)}}}if(r.length>0){var L=[],A=[];for(v=0;v<this.lines.length;v++)A.push(this.lines.get(v));var x=this.lines.length,k=x-1,D=0,T=r[D];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+s);var R=0;for(v=Math.min(this.lines.maxLength-1,x+s-1);v>=0;v--)if(T&&T.start>k+R){for(var M=T.newLines.length-1;M>=0;M--)this.lines.set(v--,T.newLines[M]);v++,L.push({index:k+1,amount:T.newLines.length}),R+=T.newLines.length,T=r[++D]}else this.lines.set(v,A[k--]);var O=0;for(v=L.length-1;v>=0;v--)L[v].index+=O,this.lines.onInsertEmitter.fire(L[v]),O+=L[v].amount;var P=Math.max(0,x+s-this.lines.maxLength);P>0&&this.lines.onTrimEmitter.fire(P)}},e.prototype.stringIndexToBufferIndex=function(e,t,i){for(void 0===i&&(i=!1);t;){var r=this.lines.get(e);if(!r)return[-1,-1];for(var n=i?r.getTrimmedLength():r.length,s=0;s<n;++s)if(r.get(s)[o.CHAR_DATA_WIDTH_INDEX]&&(t-=r.get(s)[o.CHAR_DATA_CHAR_INDEX].length||1),t<0)return[e,s];e++}return[e,0]},e.prototype.translateBufferLineToString=function(e,t,i,r){void 0===i&&(i=0);var n=this.lines.get(e);return n?n.translateToString(t,i,r):""},e.prototype.getWrappedRangeForLine=function(e){for(var t=e,i=e;t>0&&this.lines.get(t).isWrapped;)t--;for(;i+1<this.lines.length&&this.lines.get(i+1).isWrapped;)i++;return{first:t,last:i}},e.prototype.setupTabStops=function(e){for(null!=e?this.tabs[e]||(e=this.prevStop(e)):(this.tabs={},e=0);e<this._cols;e+=this._optionsService.options.tabStopWidth)this.tabs[e]=!0},e.prototype.prevStop=function(e){for(null==e&&(e=this.x);!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e},e.prototype.nextStop=function(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e<this._cols;);return e>=this._cols?this._cols-1:e<0?0:e},e.prototype.addMarker=function(e){var t=this,i=new c.Marker(e);return this.markers.push(i),i.register(this.lines.onTrim(function(e){i.line-=e,i.line<0&&i.dispose()})),i.register(this.lines.onInsert(function(e){i.line>=e.index&&(i.line+=e.amount)})),i.register(this.lines.onDelete(function(e){i.line>=e.index&&i.line<e.index+e.amount&&i.dispose(),i.line>e.index&&(i.line-=e.amount)})),i.register(i.onDispose(function(){return t._removeMarker(i)})),i},e.prototype._removeMarker=function(e){this.markers.splice(this.markers.indexOf(e),1)},e.prototype.iterator=function(e,t,i,r,n){return new u(this,e,t,i,r,n)},e}();t.Buffer=h;var u=function(){function e(e,t,i,r,n,s){void 0===i&&(i=0),void 0===r&&(r=e.lines.length),void 0===n&&(n=0),void 0===s&&(s=0),this._buffer=e,this._trimRight=t,this._startIndex=i,this._endIndex=r,this._startOverscan=n,this._endOverscan=s,this._startIndex<0&&(this._startIndex=0),this._endIndex>this._buffer.lines.length&&(this._endIndex=this._buffer.lines.length),this._current=this._startIndex}return e.prototype.hasNext=function(){return this._current<this._endIndex},e.prototype.next=function(){var e=this._buffer.getWrappedRangeForLine(this._current);e.first<this._startIndex-this._startOverscan&&(e.first=this._startIndex-this._startOverscan),e.last>this._endIndex+this._endOverscan&&(e.last=this._endIndex+this._endOverscan),e.first=Math.max(e.first,0),e.last=Math.min(e.last,this._buffer.lines.length);for(var t="",i=e.first;i<=e.last;++i)t+=this._buffer.translateBufferLineToString(i,this._trimRight);return this._current=e.last+1,{range:e,content:t}},e}();t.BufferStringIterator=u},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(1),n=function(){function e(e){this._maxLength=e,this.onDeleteEmitter=new r.EventEmitter,this.onInsertEmitter=new r.EventEmitter,this.onTrimEmitter=new r.EventEmitter,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}return Object.defineProperty(e.prototype,"onDelete",{get:function(){return this.onDeleteEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onInsert",{get:function(){return this.onInsertEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onTrim",{get:function(){return this.onTrimEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"maxLength",{get:function(){return this._maxLength},set:function(e){if(this._maxLength!==e){for(var t=new Array(e),i=0;i<Math.min(e,this.length);i++)t[i]=this._array[this._getCyclicIndex(i)];this._array=t,this._maxLength=e,this._startIndex=0}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this._length},set:function(e){if(e>this._length)for(var t=this._length;t<e;t++)this._array[t]=void 0;this._length=e},enumerable:!0,configurable:!0}),e.prototype.get=function(e){return this._array[this._getCyclicIndex(e)]},e.prototype.set=function(e,t){this._array[this._getCyclicIndex(e)]=t},e.prototype.push=function(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++},e.prototype.recycle=function(){if(this._length!==this._maxLength)throw new Error("Can only recycle when the buffer is full");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]},Object.defineProperty(e.prototype,"isFull",{get:function(){return this._length===this._maxLength},enumerable:!0,configurable:!0}),e.prototype.pop=function(){return this._array[this._getCyclicIndex(this._length---1)]},e.prototype.splice=function(e,t){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];if(t){for(var n=e;n<this._length-t;n++)this._array[this._getCyclicIndex(n)]=this._array[this._getCyclicIndex(n+t)];this._length-=t}for(n=this._length-1;n>=e;n--)this._array[this._getCyclicIndex(n+i.length)]=this._array[this._getCyclicIndex(n)];for(n=0;n<i.length;n++)this._array[this._getCyclicIndex(e+n)]=i[n];if(this._length+i.length>this._maxLength){var s=this._length+i.length-this._maxLength;this._startIndex+=s,this._length=this._maxLength,this.onTrimEmitter.fire(s)}else this._length+=i.length},e.prototype.trimStart=function(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)},e.prototype.shiftElements=function(e,t,i){if(!(t<=0)){if(e<0||e>=this._length)throw new Error("start argument out of range");if(e+i<0)throw new Error("Cannot shift elements in list beyond index 0");if(i>0){for(var r=t-1;r>=0;r--)this.set(e+r+i,this.get(e+r));var n=e+t+i-this._length;if(n>0)for(this._length+=n;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(r=0;r<t;r++)this.set(e+r+i,this.get(e+r))}},e.prototype._getCyclicIndex=function(e){return(this._startIndex+e)%this._maxLength},e}();t.CircularList=n},function(e,t,i){"use strict";function r(e,t,i){if(t===e.length-1)return e[t].getTrimmedLength();var r=!e[t].hasContent(i-1)&&1===e[t].getWidth(i-1),n=2===e[t+1].getWidth(0);return r&&n?i-1:i}Object.defineProperty(t,"__esModule",{value:!0}),t.reflowLargerGetLinesToRemove=function(e,t,i,n,s){for(var o=[],a=0;a<e.length-1;a++){var c=a,l=e.get(++c);if(l.isWrapped){for(var h=[e.get(a)];c<e.length&&l.isWrapped;)h.push(l),l=e.get(++c);if(n>=a&&n<c)a+=h.length-1;else{for(var u=0,f=r(h,u,t),_=1,d=0;_<h.length;){var p=r(h,_,t),v=p-d,g=i-f,y=Math.min(v,g);h[u].copyCellsFrom(h[_],d,f,y,!1),(f+=y)===i&&(u++,f=0),(d+=y)===p&&(_++,d=0),0===f&&0!==u&&2===h[u-1].getWidth(i-1)&&(h[u].copyCellsFrom(h[u-1],i-1,f++,1,!1),h[u-1].setCell(i-1,s))}h[u].replaceCells(f,i,s);for(var m=0,b=h.length-1;b>0&&(b>u||0===h[b].getTrimmedLength());b--)m++;m>0&&(o.push(a+h.length-m),o.push(m)),a+=h.length-1}}}return o},t.reflowLargerCreateNewLayout=function(e,t){for(var i=[],r=0,n=t[r],s=0,o=0;o<e.length;o++)if(n===o){var a=t[++r];e.onDeleteEmitter.fire({index:o-s,amount:a}),o+=a-1,s+=a,n=t[++r]}else i.push(o);return{layout:i,countRemoved:s}},t.reflowLargerApplyNewLayout=function(e,t){for(var i=[],r=0;r<t.length;r++)i.push(e.get(t[r]));for(r=0;r<i.length;r++)e.set(r,i[r]);e.length=t.length},t.reflowSmallerGetNewLineLengths=function(e,t,i){for(var n=[],s=e.map(function(i,n){return r(e,n,t)}).reduce(function(e,t){return e+t}),o=0,a=0,c=0;c<s;){if(s-c<i){n.push(s-c);break}o+=i;var l=r(e,a,t);o>l&&(o-=l,a++);var h=2===e[a].getWidth(o-1);h&&o--;var u=h?i-1:i;n.push(u),c+=u}return n},t.getWrappedLineTrimmedLength=r},function(e,t,i){"use strict";var r,n=this&&this.__extends||(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)},function(e,t){function i(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)});Object.defineProperty(t,"__esModule",{value:!0});var s=i(1),o=function(e){function t(i){var r=e.call(this)||this;return r.line=i,r._id=t._nextId++,r.isDisposed=!1,r._onDispose=new s.EventEmitter,r}return n(t,e),Object.defineProperty(t.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onDispose",{get:function(){return this._onDispose.event},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this._onDispose.fire())},t._nextId=1,t}(i(2).Disposable);t.Marker=o},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(5),o=i(28),a=function(){function e(e,t){this._renderService=e,this._charSizeService=t}return e.prototype.getCoords=function(e,t,i,r,n){return o.getCoords(e,t,i,r,this._charSizeService.hasValidSize,this._renderService.dimensions.actualCellWidth,this._renderService.dimensions.actualCellHeight,n)},e.prototype.getRawByteCoords=function(e,t,i,r){var n=this.getCoords(e,t,i,r);return o.getRawByteCoords(n)},e=r([n(0,s.IRenderService),n(1,s.ICharSizeService)],e)}();t.MouseService=a},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(0),o=i(1),a=i(31),c=Object.freeze({applicationCursorKeys:!1}),l=function(){function e(e,t,i,r){this._scrollToBottom=e,this._bufferService=t,this._logService=i,this._optionsService=r,this._onData=new o.EventEmitter,this._onUserInput=new o.EventEmitter,this.decPrivateModes=a.clone(c)}return Object.defineProperty(e.prototype,"onData",{get:function(){return this._onData.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onUserInput",{get:function(){return this._onUserInput.event},enumerable:!0,configurable:!0}),e.prototype.reset=function(){this.decPrivateModes=a.clone(c)},e.prototype.triggerDataEvent=function(e,t){if(void 0===t&&(t=!1),!this._optionsService.options.disableStdin){var i=this._bufferService.buffer;i.ybase!==i.ydisp&&this._scrollToBottom(),t&&this._onUserInput.fire(),this._logService.debug("sending data",e),this._onData.fire(e)}},e=r([n(1,s.IBufferService),n(2,s.ILogService),n(3,s.IOptionsService)],e)}();t.CoreService=l},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s,o=i(0);!function(e){e[e.DEBUG=0]="DEBUG",e[e.INFO=1]="INFO",e[e.WARN=2]="WARN",e[e.ERROR=3]="ERROR",e[e.OFF=4]="OFF"}(s=t.LogLevel||(t.LogLevel={}));var a={debug:s.DEBUG,info:s.INFO,warn:s.WARN,error:s.ERROR,off:s.OFF},c=function(){function e(e){var t=this;this._optionsService=e,this._updateLogLevel(),this._optionsService.onOptionChange(function(e){"logLevel"===e&&t._updateLogLevel()})}return e.prototype._updateLogLevel=function(){this._logLevel=a[this._optionsService.options.logLevel]},e.prototype.debug=function(e){for(var t,i=[],r=1;r<arguments.length;r++)i[r-1]=arguments[r];this._logLevel<=s.DEBUG&&(t=console.log).call.apply(t,[console,"xterm.js: "+e].concat(i))},e.prototype.info=function(e){for(var t,i=[],r=1;r<arguments.length;r++)i[r-1]=arguments[r];this._logLevel<=s.INFO&&(t=console.info).call.apply(t,[console,"xterm.js: "+e].concat(i))},e.prototype.warn=function(e){for(var t,i=[],r=1;r<arguments.length;r++)i[r-1]=arguments[r];this._logLevel<=s.WARN&&(t=console.warn).call.apply(t,[console,"xterm.js: "+e].concat(i))},e.prototype.error=function(e){for(var t,i=[],r=1;r<arguments.length;r++)i[r-1]=arguments[r];this._logLevel<=s.ERROR&&(t=console.error).call.apply(t,[console,"xterm.js: "+e].concat(i))},e=r([n(0,o.IOptionsService)],e)}();t.LogService=c},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(0),o=function(){function e(e){this._bufferService=e,this.clearRange()}return Object.defineProperty(e.prototype,"start",{get:function(){return this._start},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"end",{get:function(){return this._end},enumerable:!0,configurable:!0}),e.prototype.clearRange=function(){this._start=this._bufferService.buffer.y,this._end=this._bufferService.buffer.y},e.prototype.markDirty=function(e){e<this._start?this._start=e:e>this._end&&(this._end=e)},e.prototype.markRangeDirty=function(e,t){if(e>t){var i=e;e=t,t=i}e<this._start&&(this._start=e),t>this._end&&(this._end=t)},e.prototype.markAllDirty=function(){this.markRangeDirty(0,this._bufferService.rows-1)},e=r([n(0,s.IBufferService)],e)}();t.DirtyRowService=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(0),n=i(13),s=function(){function e(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];this._entries=new Map;for(var i=0,r=e;i<r.length;i++){var n=r[i],s=n[0],o=n[1];this.set(s,o)}}return e.prototype.set=function(e,t){var i=this._entries.get(e);return this._entries.set(e,t),i},e.prototype.forEach=function(e){this._entries.forEach(function(t,i){return e(i,t)})},e.prototype.has=function(e){return this._entries.has(e)},e.prototype.get=function(e){return this._entries.get(e)},e}();t.ServiceCollection=s;var o=function(){function e(){this._services=new s,this._services.set(r.IInstantiationService,this)}return e.prototype.setService=function(e,t){this._services.set(e,t)},e.prototype.createInstance=function(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];for(var r=n.getServiceDependencies(e).sort(function(e,t){return e.index-t.index}),s=[],o=0,a=r;o<a.length;o++){var c=a[o],l=this._services.get(c.id);if(!l)throw new Error("[createInstance] "+e.name+" depends on UNKNOWN service "+c.id+".");s.push(l)}var h=r.length>0?r[0].index:t.length;if(t.length!==h)throw new Error("[createInstance] First service dependency of "+e.name+" at position "+(h+1)+" conflicts with "+t.length+" static arguments");return new(e.bind.apply(e,[void 0].concat(t.concat(s))))},e}();t.InstantiationService=o},function(e,t,i){"use strict";var r=this&&this.__decorate||function(e,t,i,r){var n,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(o=(s<3?n(o):s>3?n(t,i,o):n(t,i))||o);return s>3&&o&&Object.defineProperty(t,i,o),o},n=this&&this.__param||function(e,t){return function(i,r){t(i,r,e)}};Object.defineProperty(t,"__esModule",{value:!0});var s=i(0),o=i(1),a={NONE:{events:0,restrict:function(){return!1}},X10:{events:1,restrict:function(e){return 4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)}},VT200:{events:19,restrict:function(e){return 32!==e.action}},DRAG:{events:23,restrict:function(e){return 32!==e.action||3!==e.button}},ANY:{events:31,restrict:function(e){return!0}}};function c(e,t){var i=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(i|=64,i|=e.action):(i|=3&e.button,4&e.button&&(i|=64),8&e.button&&(i|=128),32===e.action?i|=32:0!==e.action||t||(i|=3)),i}var l=String.fromCharCode,h={DEFAULT:function(e){var t=[c(e,!1)+32,e.col+32,e.row+32];return t=t.map(function(e){return e>127?127:e}),"[M"+l(t[0])+l(t[1])+l(t[2])},UTF8:function(e){var t=[c(e,!1)+32,e.col+32,e.row+32];return t=t.map(function(e){return e>2047?0:e}),"[M"+l(t[0])+l(t[1])+l(t[2])},SGR:function(e){var t=0===e.action&&4!==e.button?"m":"M";return"[<"+c(e,!0)+";"+e.col+";"+e.row+t},URXVT:function(e){return"["+(c(e,!1)+32)+";"+e.col+";"+e.row+"M"}},u=function(){function e(e,t){var i=this;this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._onProtocolChange=new o.EventEmitter,this._lastEvent=null,Object.keys(a).forEach(function(e){return i.addProtocol(e,a[e])}),Object.keys(h).forEach(function(e){return i.addEncoding(e,h[e])}),this.reset()}return e.prototype.addProtocol=function(e,t){this._protocols[e]=t},e.prototype.addEncoding=function(e,t){this._encodings[e]=t},Object.defineProperty(e.prototype,"activeProtocol",{get:function(){return this._activeProtocol},set:function(e){if(!this._protocols[e])throw new Error('unknown protocol "'+e+'"');this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"activeEncoding",{get:function(){return this._activeEncoding},set:function(e){if(!this._encodings[e])throw new Error('unknown encoding "'+e+'"');this._activeEncoding=e},enumerable:!0,configurable:!0}),e.prototype.reset=function(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null},Object.defineProperty(e.prototype,"onProtocolChange",{get:function(){return this._onProtocolChange.event},enumerable:!0,configurable:!0}),e.prototype.triggerMouseEvent=function(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._compareEvents(this._lastEvent,e))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;var t=this._encodings[this._activeEncoding](e);return this._coreService.triggerDataEvent(t,!0),this._lastEvent=e,!0},e.prototype.explainEvents=function(e){return{DOWN:!!(1&e),UP:!!(2&e),DRAG:!!(4&e),MOVE:!!(8&e),WHEEL:!!(16&e)}},e.prototype._compareEvents=function(e,t){return e.col===t.col&&(e.row===t.row&&(e.button===t.button&&(e.action===t.action&&(e.ctrl===t.ctrl&&(e.alt===t.alt&&e.shift===t.shift)))))},e=r([n(0,s.IBufferService),n(1,s.ICoreService)],e)}();t.CoreMouseService=u},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(){this._addons=[]}return e.prototype.dispose=function(){for(var e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()},e.prototype.loadAddon=function(e,t){var i=this,r={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(r),t.dispose=function(){return i._wrappedAddonDispose(r)},t.activate(e)},e.prototype._wrappedAddonDispose=function(e){if(!e.isDisposed){for(var t=-1,i=0;i<this._addons.length;i++)if(this._addons[i]===e){t=i;break}if(-1===t)throw new Error("Could not dispose an addon that has not been loaded");e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}},e}();t.AddonManager=r}])});
|
||
//# sourceMappingURL=xterm.js.map
|
||
|
||
/***/ }),
|
||
|
||
/***/ "./node_modules/yeast/index.js":
|
||
/*!*************************************!*\
|
||
!*** ./node_modules/yeast/index.js ***!
|
||
\*************************************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')
|
||
, length = 64
|
||
, map = {}
|
||
, seed = 0
|
||
, i = 0
|
||
, prev;
|
||
|
||
/**
|
||
* Return a string representing the specified number.
|
||
*
|
||
* @param {Number} num The number to convert.
|
||
* @returns {String} The string representation of the number.
|
||
* @api public
|
||
*/
|
||
function encode(num) {
|
||
var encoded = '';
|
||
|
||
do {
|
||
encoded = alphabet[num % length] + encoded;
|
||
num = Math.floor(num / length);
|
||
} while (num > 0);
|
||
|
||
return encoded;
|
||
}
|
||
|
||
/**
|
||
* Return the integer value specified by the given string.
|
||
*
|
||
* @param {String} str The string to convert.
|
||
* @returns {Number} The integer value represented by the string.
|
||
* @api public
|
||
*/
|
||
function decode(str) {
|
||
var decoded = 0;
|
||
|
||
for (i = 0; i < str.length; i++) {
|
||
decoded = decoded * length + map[str.charAt(i)];
|
||
}
|
||
|
||
return decoded;
|
||
}
|
||
|
||
/**
|
||
* Yeast: A tiny growing id generator.
|
||
*
|
||
* @returns {String} A unique id.
|
||
* @api public
|
||
*/
|
||
function yeast() {
|
||
var now = encode(+new Date());
|
||
|
||
if (now !== prev) return seed = 0, prev = now;
|
||
return now +'.'+ encode(seed++);
|
||
}
|
||
|
||
//
|
||
// Map each character to its index.
|
||
//
|
||
for (; i < length; i++) map[alphabet[i]] = i;
|
||
|
||
//
|
||
// Expose the `yeast`, `encode` and `decode` functions.
|
||
//
|
||
yeast.encode = encode;
|
||
yeast.decode = decode;
|
||
module.exports = yeast;
|
||
|
||
|
||
/***/ }),
|
||
|
||
/***/ 0:
|
||
/*!********************!*\
|
||
!*** ws (ignored) ***!
|
||
\********************/
|
||
/*! no static exports found */
|
||
/***/ (function(module, exports) {
|
||
|
||
/* (ignored) */
|
||
|
||
/***/ })
|
||
|
||
/******/ });
|
||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vY2xpZW50L3NyYy9jc3Mvc3R5bGUuY3NzIiwid2VicGFjazovLy8uL2NsaWVudC9zcmMvanMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZS9pbmRleC5lcy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zL2luZGV4LmVzLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hZnRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYXJyYXlidWZmZXIuc2xpY2UvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2JhY2tvMi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmFzZTY0LWFycmF5YnVmZmVyL2xpYi9iYXNlNjQtYXJyYXlidWZmZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2Jhc2U2NC1qcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYmxvYi9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvYnVmZmVyL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9idWZmZXIvbm9kZV9tb2R1bGVzL2lzYXJyYXkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2NvbXBvbmVudC1iaW5kL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9jb21wb25lbnQtZW1pdHRlci9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY29tcG9uZW50LWluaGVyaXQvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RlYnVnL25vZGVfbW9kdWxlcy9tcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2Jyb3dzZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2RlYnVnL3NyYy9jb21tb24uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvbGliL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2xpYi9zb2NrZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvbGliL3RyYW5zcG9ydC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9saWIvdHJhbnNwb3J0cy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLWNsaWVudC9saWIvdHJhbnNwb3J0cy9wb2xsaW5nLWpzb25wLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2xpYi90cmFuc3BvcnRzL3BvbGxpbmcteGhyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2xpYi90cmFuc3BvcnRzL3BvbGxpbmcuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2VuZ2luZS5pby1jbGllbnQvbGliL3RyYW5zcG9ydHMvd2Vic29ja2V0LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9lbmdpbmUuaW8tY2xpZW50L2xpYi94bWxodHRwcmVxdWVzdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9saWIvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9saWIva2V5cy5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZW5naW5lLmlvLXBhcnNlci9saWIvdXRmOC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaGFzLWJpbmFyeTIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL2hhcy1jb3JzL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9pZWVlNzU0L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9pbmRleG9mL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9pc2FycmF5L2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9tcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcGFyc2Vxcy9pbmRleC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcGFyc2V1cmkvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc2V0aW1tZWRpYXRlL3NldEltbWVkaWF0ZS5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9saWIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvbGliL21hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvbGliL29uLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tY2xpZW50L2xpYi9zb2NrZXQuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvbGliL3VybC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9ub2RlX21vZHVsZXMvc29ja2V0LmlvLXBhcnNlci9iaW5hcnkuanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvbm9kZV9tb2R1bGVzL3NvY2tldC5pby1wYXJzZXIvaW5kZXguanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3NvY2tldC5pby1jbGllbnQvbm9kZV9tb2R1bGVzL3NvY2tldC5pby1wYXJzZXIvaXMtYnVmZmVyLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tY2xpZW50L25vZGVfbW9kdWxlcy9zb2NrZXQuaW8tcGFyc2VyL25vZGVfbW9kdWxlcy9kZWJ1Zy9zcmMvYnJvd3Nlci5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc29ja2V0LmlvLWNsaWVudC9ub2RlX21vZHVsZXMvc29ja2V0LmlvLXBhcnNlci9ub2RlX21vZHVsZXMvZGVidWcvc3JjL2RlYnVnLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy90aW1lcnMtYnJvd3NlcmlmeS9tYWluLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy90by1hcnJheS9pbmRleC5qcyIsIndlYnBhY2s6Ly8vKHdlYnBhY2spL2J1aWxkaW4vZ2xvYmFsLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy94dGVybS1hZGRvbi1maXQvbGliL3h0ZXJtLWFkZG9uLWZpdC5qcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMveHRlcm0vY3NzL3h0ZXJtLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMveHRlcm0vbGliL3h0ZXJtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy95ZWFzdC9pbmRleC5qcyIsIndlYnBhY2s6Ly8vd3MgKGlnbm9yZWQpIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7UUFBQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTs7O1FBR0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLDBDQUEwQyxnQ0FBZ0M7UUFDMUU7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSx3REFBd0Qsa0JBQWtCO1FBQzFFO1FBQ0EsaURBQWlELGNBQWM7UUFDL0Q7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLHlDQUF5QyxpQ0FBaUM7UUFDMUUsZ0hBQWdILG1CQUFtQixFQUFFO1FBQ3JJO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMkJBQTJCLDBCQUEwQixFQUFFO1FBQ3ZELGlDQUFpQyxlQUFlO1FBQ2hEO1FBQ0E7UUFDQTs7UUFFQTtRQUNBLHNEQUFzRCwrREFBK0Q7O1FBRXJIO1FBQ0E7OztRQUdBO1FBQ0E7Ozs7Ozs7Ozs7OztBQ2xGQSx5Qzs7Ozs7Ozs7Ozs7O0FDQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQVk7O0FBRXFCO0FBQ0Q7QUFDVTtBQUNzQjtBQUNpQztBQUNqRyx5RUFBTyxLQUFLLHdFQUFNLEVBQUUsNkVBQVcsRUFBRSw0RUFBVSxFQUFFLHVFQUFLLEVBQUUsdUVBQUs7O0FBRXpELHFFQUFHOztBQUVILG1CQUFPLENBQUMsK0RBQXFCO0FBQzdCLG1CQUFPLENBQUMsb0RBQWtCOztBQUUxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSx1REFBRSxFQUFFLHlCQUF5QjtBQUMxQyxlQUFlLDhDQUFRO0FBQ3ZCLHFCQUFxQix3REFBUTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx5QkFBeUIsbUNBQW1DO0FBQzVEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLENBQUM7QUFDRCx3Q0FBd0MsdUJBQXVCO0FBQy9EO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1FQUFtRSxZQUFZLElBQUksSUFBSSxNQUFNLElBQUksd0JBQXdCLFlBQVk7QUFDckk7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQ3JQQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQixrQkFBa0I7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLHNCQUFzQjtBQUN2QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaURBQWlELGdCQUFnQjs7QUFFakU7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZDQUE2QywrQkFBK0I7QUFDNUU7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxrQ0FBa0M7QUFDbEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxhQUFvQjtBQUMvQixHQUFHO0FBQ0g7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBLENBQUM7O0FBRUQ7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw4QkFBOEI7O0FBRTlCOztBQUVBLDZCQUE2Qjs7QUFFN0I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGlCQUFpQix1QkFBdUI7QUFDeEM7QUFDQSxHQUFHOzs7QUFHSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDRCQUE0QixxQkFBcUI7QUFDakQ7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsNEJBQTRCLHFCQUFxQjtBQUNqRDs7QUFFQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx1Q0FBdUMsUUFBUTtBQUMvQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx3Q0FBd0MsS0FBSztBQUM3QztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0Qyx3QkFBd0IsdUJBQXVCLHNCQUFzQixzQkFBc0I7QUFDdkk7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDLHdFQUF3RTtBQUN4RSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBLGtDQUFrQztBQUNsQyxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDLFNBQVM7QUFDVCxPQUFPO0FBQ1AsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQ7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUIsS0FBSztBQUNMO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQSxPQUFPO0FBQ1A7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUc7O0FBRUgsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxtQ0FBbUM7QUFDbkM7QUFDQSxHQUFHLEtBQUs7QUFDUjtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBOztBQUVBLCtCQUErQjs7QUFFL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG1DQUFtQztBQUNuQztBQUNBLEdBQUcsS0FBSztBQUNSO0FBQ0EsR0FBRzs7QUFFSDs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksT0FBTztBQUNuQixZQUFZLFNBQVM7QUFDckIsWUFBWSxNQUFNO0FBQ2xCLFlBQVksT0FBTztBQUNuQixZQUFZLE1BQU07QUFDbEI7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUEsUUFBUSxZQUFZO0FBQ3BCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsaUJBQWlCLG9CQUFvQjtBQUNyQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSxHQUFHLElBQUk7O0FBRVA7QUFDQTtBQUNBLEdBQUc7QUFDSCwrQ0FBK0MsZ0NBQWdDO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0EsS0FBSyxJQUFJO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxJQUFJO0FBQ1A7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RDtBQUN4RDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSyxJQUFJO0FBQ1Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEdBQUcsSUFBSTtBQUNQOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0EsR0FBRztBQUNIOztBQUVBLHNDQUFzQztBQUN0QztBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBLGtCQUFrQixHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUc7QUFDakMsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBLGdDQUFnQztBQUNoQyxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQzNCLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLGdDQUFnQztBQUNoQyxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQzNCLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLGdDQUFnQztBQUNoQyxpQkFBaUIsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO0FBQzNCLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTCxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLEdBQUcsWUFBWTtBQUNmOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQzs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0RBQStEO0FBQy9EO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIOztBQUVBLGlEQUFpRCxzQkFBc0IsR0FBRyxxQkFBcUIsMEJBQTBCLHVCQUF1QixnQkFBZ0Isc0JBQXNCLDZCQUE2QixHQUFHLHlCQUF5Qiw2QkFBNkIsR0FBRywwQkFBMEIsb0JBQW9CLEdBQUcsMEJBQTBCLG1CQUFtQixHQUFHLDBCQUEwQixvQkFBb0IsR0FBRywwQkFBMEIsa0JBQWtCLEdBQUcsMEJBQTBCLG9CQUFvQixHQUFHLDBCQUEwQixtQkFBbUIsR0FBRywwQkFBMEIsb0JBQW9CLEdBQUcsMEJBQTBCLGlCQUFpQixHQUFHLDBCQUEwQixvQkFBb0IsR0FBRywyQkFBMkIsbUJBQW1CLEdBQUcsMkJBQTJCLG9CQUFvQixHQUFHLDJCQUEyQixrQkFBa0IsR0FBRywyQkFBMkIsb0JBQW9CLEdBQUcsMkJBQTJCLG1CQUFtQixHQUFHLDJCQUEyQixvQkFBb0IsR0FBRywyQkFBMkIsZUFBZSxHQUFHLDJCQUEyQixvQkFBb0IsR0FBRywyQkFBMkIsbUJBQW1CLEdBQUcsMkJBQTJCLG9CQUFvQixHQUFHLDJCQUEyQixrQkFBa0IsR0FBRyxnQ0FBZ0Msd0JBQXdCLGdCQUFnQixHQUFHLGlDQUFpQyx1QkFBdUIsZ0JBQWdCLEdBQUcsNkJBQTZCLGtCQUFrQixHQUFHLHlCQUF5QixlQUFlLEdBQUcseUJBQXlCLGtCQUFrQixHQUFHLG1DQUFtQyxjQUFjLFlBQVksaUJBQWlCLHVCQUF1QixhQUFhLFdBQVcsR0FBRyxnQkFBZ0IsMEJBQTBCLGdCQUFnQix1QkFBdUIsdUJBQXVCLDZCQUE2QixlQUFlLEdBQUcsaUNBQWlDLDRDQUE0Qyw0Q0FBNEMsR0FBRyx5Q0FBeUMsMEJBQTBCLHVCQUF1Qix1QkFBdUIsR0FBRyxxQkFBcUIsY0FBYyxhQUFhLDZDQUE2Qyw2Q0FBNkMsNENBQTRDLDRDQUE0QyxHQUFHLHdCQUF3Qiw4QkFBOEIsdUJBQXVCLG1DQUFtQyxtQ0FBbUMsZ0JBQWdCLGtCQUFrQixtQkFBbUIsbUJBQW1CLHFCQUFxQixxQkFBcUIsb0JBQW9CLGFBQWEsNEJBQTRCLFdBQVcsbUNBQW1DLG1DQUFtQyx3Q0FBd0Msd0NBQXdDLEdBQUcsNkJBQTZCLGNBQWMsYUFBYSxjQUFjLG1DQUFtQyxtQ0FBbUMsMkNBQTJDLDJDQUEyQyxHQUFHLDRCQUE0QixjQUFjLFlBQVksZ0JBQWdCLGNBQWMsbUNBQW1DLG1DQUFtQywwQ0FBMEMsMENBQTBDLEdBQUcsMEJBQTBCLGFBQWEsV0FBVyxtQ0FBbUMsbUNBQW1DLHdDQUF3Qyx3Q0FBd0MsR0FBRyx5QkFBeUIsWUFBWSxnQkFBZ0IsV0FBVyxtQ0FBbUMsbUNBQW1DLHVDQUF1Qyx1Q0FBdUMsR0FBRyxZQUFZLDhCQUE4Qix3QkFBd0IsOEJBQThCLEdBQUcsWUFBWSxzQkFBc0IsR0FBRyxZQUFZLHVCQUF1QixHQUFHLFlBQVksbUJBQW1CLEdBQUcsWUFBWSxtQkFBbUIsR0FBRyxZQUFZLG1CQUFtQixHQUFHLFlBQVksbUJBQW1CLEdBQUcsWUFBWSxtQkFBbUIsR0FBRyxZQUFZLG1CQUFtQixHQUFHLFlBQVksbUJBQW1CLEdBQUcsWUFBWSxtQkFBbUIsR0FBRyxZQUFZLG1CQUFtQixHQUFHLGFBQWEsb0JBQW9CLEdBQUcsWUFBWSx1QkFBdUIsa0JBQWtCLEdBQUcsWUFBWSwwQkFBMEIsdUJBQXVCLG9CQUFvQixHQUFHLGVBQWUsdUJBQXVCLEdBQUcsWUFBWSxlQUFlLHVCQUF1Qix1QkFBdUIsZUFBZSx5QkFBeUIsR0FBRyxnQkFBZ0IsOEJBQThCLHlCQUF5QixpQ0FBaUMsR0FBRyxtQkFBbUIsZ0JBQWdCLEdBQUcsb0JBQW9CLGlCQUFpQixHQUFHLHNHQUFzRyx3QkFBd0IsR0FBRyx5R0FBeUcsdUJBQXVCLEdBQUcsY0FBYyxrREFBa0Qsa0RBQWtELEdBQUcsZUFBZSxvREFBb0Qsb0RBQW9ELEdBQUcsZ0NBQWdDLFFBQVEsc0NBQXNDLHNDQUFzQyxLQUFLLFVBQVUsd0NBQXdDLHdDQUF3QyxLQUFLLEdBQUcsd0JBQXdCLFFBQVEsc0NBQXNDLHNDQUFzQyxLQUFLLFVBQVUsd0NBQXdDLHdDQUF3QyxLQUFLLEdBQUcsaUJBQWlCLDZFQUE2RSxxQ0FBcUMscUNBQXFDLEdBQUcsb0JBQW9CLDZFQUE2RSxzQ0FBc0Msc0NBQXNDLEdBQUcsb0JBQW9CLDZFQUE2RSxzQ0FBc0Msc0NBQXNDLEdBQUcseUJBQXlCLHVGQUF1RixvQ0FBb0Msb0NBQW9DLEdBQUcsdUJBQXVCLHVGQUF1RixvQ0FBb0Msb0NBQW9DLEdBQUcseURBQXlELHVGQUF1RixxQ0FBcUMscUNBQXFDLEdBQUcsbUpBQW1KLHlCQUF5Qix5QkFBeUIsR0FBRyxlQUFlLDBCQUEwQixnQkFBZ0IsdUJBQXVCLGlCQUFpQixHQUFHLGlDQUFpQyxjQUFjLFlBQVksaUJBQWlCLHVCQUF1QixhQUFhLFdBQVcsR0FBRyxpQ0FBaUMsZ0JBQWdCLGtCQUFrQixHQUFHLCtCQUErQixnQkFBZ0IsaUJBQWlCLEdBQUcsaUJBQWlCLGdCQUFnQixHQUFHLGNBQWMsY0FBYywyQkFBMkIsZ0JBQWdCLGlCQUFpQixxQkFBcUIsZUFBZSx1QkFBdUIsZUFBZSxHQUFHLHlEQUF5RCxlQUFlLGlCQUFpQixjQUFjLHNCQUFzQixxQkFBcUIsZ0JBQWdCLEdBQUcsaUNBQWlDLGdEQUFnRCxlQUFlLDBDQUEwQyxHQUFHLG1DQUFtQyxrREFBa0QsaUJBQWlCLDhDQUE4QyxHQUFHLGlEQUFpRCxpQkFBaUIsOENBQThDLEdBQUcsbURBQW1ELGVBQWUsMENBQTBDLEdBQUcsMkVBQTJFLGdCQUFnQixHQUFHLHFCQUFxQixnQkFBZ0IsR0FBRzs7QUFFdGxRO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZ0ZBQWdGLGFBQWE7QUFDN0Y7QUFDQTs7QUFFQSxrRUFBa0U7QUFDbEU7QUFDQSxpREFBaUQsOEJBQThCO0FBQy9FO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELDJFQUEyRTtBQUM5SDs7QUFFQTtBQUNBLHdCQUF3Qiw2Q0FBNkM7QUFDckU7O0FBRUEsZ0RBQWdEO0FBQ2hEO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlFQUFpRTs7QUFFakU7QUFDQTtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBLDZDQUE2QztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNEO0FBQ3REO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNEO0FBQ3REO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFdUc7Ozs7Ozs7Ozs7Ozs7O0FDdDJFdkc7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdwWTs7Ozs7Ozs7Ozs7O0FDMW9MeHBZOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7Ozs7Ozs7Ozs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDBCQUEwQixzQ0FBc0M7O0FBRWhFLGtCQUFrQixnQkFBZ0I7QUFDbEMsZ0JBQWdCLGNBQWM7QUFDOUIsb0JBQW9CLGFBQWE7O0FBRWpDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkJBQTZCLFNBQVM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUMzQkE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQ25GQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLGlCQUFpQixrQkFBa0I7QUFDbkM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsZUFBZSxTQUFTO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOzs7Ozs7Ozs7Ozs7O0FDbEVXOztBQUVaO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxrQ0FBa0MsU0FBUztBQUMzQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLFNBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixTQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMENBQTBDLFVBQVU7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ3ZKQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQSx5REFBeUQ7QUFDekQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxDQUFDOzs7Ozs7Ozs7Ozs7O0FDbkdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVZOztBQUVaLGFBQWEsbUJBQU8sQ0FBQyxvREFBVztBQUNoQyxjQUFjLG1CQUFPLENBQUMsZ0RBQVM7QUFDL0IsY0FBYyxtQkFBTyxDQUFDLG9FQUFTOztBQUUvQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLG1EQUFtRDtBQUN4RTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLFVBQVU7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFlBQVk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQSx1Q0FBdUMsU0FBUztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGlCQUFpQjtBQUNoQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLGFBQWEsaUJBQWlCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixTQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsU0FBUztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsU0FBUztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxFQUFFO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGlCQUFpQixTQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixlQUFlO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLHdCQUF3QixRQUFRO0FBQ2hDO0FBQ0EscUJBQXFCLGVBQWU7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFlBQVk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHFCQUFxQixTQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUIsU0FBUztBQUM5QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsU0FBUztBQUM5QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsa0JBQWtCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxtQkFBbUIsY0FBYztBQUNqQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdURBQXVELE9BQU87QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVEQUF1RCxPQUFPO0FBQzlEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQjtBQUNsQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxlQUFlLFNBQVM7QUFDeEI7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxtQkFBbUIsU0FBUztBQUM1QjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxpQkFBaUI7QUFDaEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIsWUFBWTtBQUM3Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaUJBQWlCLGdCQUFnQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixnQkFBZ0I7QUFDakM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsaUJBQWlCLFlBQVk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUM1dkRBLGlCQUFpQjs7QUFFakI7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNKQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsZ0JBQWdCO0FBQzNCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUNyQkE7QUFDQTtBQUNBOztBQUVBLElBQUksSUFBNkI7QUFDakM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFNBQVM7QUFDcEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxTQUFTO0FBQ3BCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxTQUFTO0FBQ3BCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsaUJBQWlCLHNCQUFzQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE1BQU07QUFDakIsWUFBWTtBQUNaOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyQ0FBMkMsU0FBUztBQUNwRDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQ2pLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRTs7Ozs7Ozs7Ozs7QUNOQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxjQUFjO0FBQ3pCLFdBQVcsT0FBTztBQUNsQixZQUFZLE1BQU07QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FDaktBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVksT0FBTztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBRTtBQUNGO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlCQUFpQixtQkFBTyxDQUFDLG9EQUFVOztBQUVuQyxPQUFPLFdBQVc7O0FBRWxCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7OztBQ3RRQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixtQkFBTyxDQUFDLHlEQUFJOztBQUVwQztBQUNBO0FBQ0EsRUFBRTs7QUFFRjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZLGNBQWM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsaUJBQWlCLHNCQUFzQjtBQUN2QztBQUNBLGFBQWE7QUFDYjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGFBQWEsU0FBUztBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQSxhQUFhLGtDQUFrQztBQUMvQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLE9BQU87QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSw2Q0FBNkMsU0FBUztBQUN0RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw2Q0FBNkMsU0FBUztBQUN0RDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZLE9BQU87QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxNQUFNO0FBQ2pCLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7Ozs7QUN4UUEsaUJBQWlCLG1CQUFPLENBQUMsK0RBQVU7O0FBRW5DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixtQkFBTyxDQUFDLHdFQUFrQjs7Ozs7Ozs7Ozs7O0FDVGxEO0FBQ0E7QUFDQTs7QUFFQSxpQkFBaUIsbUJBQU8sQ0FBQyxtRkFBb0I7QUFDN0MsY0FBYyxtQkFBTyxDQUFDLG9FQUFtQjtBQUN6QyxZQUFZLG1CQUFPLENBQUMsa0RBQU87QUFDM0IsWUFBWSxtQkFBTyxDQUFDLGdEQUFTO0FBQzdCLGFBQWEsbUJBQU8sQ0FBQyx3RUFBa0I7QUFDdkMsZUFBZSxtQkFBTyxDQUFDLGtEQUFVO0FBQ2pDLGNBQWMsbUJBQU8sQ0FBQyxnREFBUzs7QUFFL0I7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsY0FBYztBQUN6QixXQUFXLE9BQU87QUFDbEI7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJGQUEyRjs7QUFFM0Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtDQUFrQzs7QUFFbEM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxtQkFBbUIsbUJBQU8sQ0FBQyxxRUFBYTtBQUN4QyxvQkFBb0IsbUJBQU8sQ0FBQyxtRkFBb0I7QUFDaEQsZ0JBQWdCLG1CQUFPLENBQUMsd0VBQWtCOztBQUUxQztBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsOENBQThDLFdBQVc7QUFDekQ7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsOEJBQThCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLDJCQUEyQixrQkFBa0I7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsT0FBTztBQUNwRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQixXQUFXLE9BQU87QUFDbEIsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQixXQUFXLFNBQVM7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE1BQU07QUFDakI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxzQ0FBc0MsT0FBTztBQUM3QztBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FDM3VCQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYSxtQkFBTyxDQUFDLHdFQUFrQjtBQUN2QyxjQUFjLG1CQUFPLENBQUMsb0VBQW1COztBQUV6QztBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZLFVBQVU7QUFDdEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE1BQU07QUFDakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ2hLQTtBQUNBO0FBQ0E7O0FBRUEscUJBQXFCLG1CQUFPLENBQUMsaUZBQW9CO0FBQ2pELFVBQVUsbUJBQU8sQ0FBQyxvRkFBZTtBQUNqQyxZQUFZLG1CQUFPLENBQUMsd0ZBQWlCO0FBQ3JDLGdCQUFnQixtQkFBTyxDQUFDLGdGQUFhOztBQUVyQztBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNwREE7QUFDQTtBQUNBOztBQUVBLGNBQWMsbUJBQU8sQ0FBQyw0RUFBVztBQUNqQyxjQUFjLG1CQUFPLENBQUMsb0VBQW1COztBQUV6QztBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxtQkFBbUI7O0FBRW5CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O0FDOU9BOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUIsbUJBQU8sQ0FBQyxpRkFBb0I7QUFDakQsY0FBYyxtQkFBTyxDQUFDLDRFQUFXO0FBQ2pDLGNBQWMsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDekMsY0FBYyxtQkFBTyxDQUFDLG9FQUFtQjtBQUN6QyxZQUFZLG1CQUFPLENBQUMsa0RBQU87O0FBRTNCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLFNBQVM7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsMEJBQTBCLGlEQUFpRDtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGNBQWM7O0FBRWQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsMkRBQTJEO0FBQzNEO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtIQUErSDtBQUMvSDtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsZ0dBQWdHO0FBQ2hHO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ2hhQTtBQUNBO0FBQ0E7O0FBRUEsZ0JBQWdCLG1CQUFPLENBQUMsc0VBQWM7QUFDdEMsY0FBYyxtQkFBTyxDQUFDLGdEQUFTO0FBQy9CLGFBQWEsbUJBQU8sQ0FBQyx3RUFBa0I7QUFDdkMsY0FBYyxtQkFBTyxDQUFDLG9FQUFtQjtBQUN6QyxZQUFZLG1CQUFPLENBQUMsNENBQU87QUFDM0IsWUFBWSxtQkFBTyxDQUFDLGtEQUFPOztBQUUzQjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsdUJBQXVCLG1CQUFPLENBQUMsaUZBQW9CO0FBQ25ELGdDQUFnQyxpQkFBaUI7QUFDakQ7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFNBQVM7QUFDcEI7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUIsZ0JBQWdCO0FBQ2pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxNQUFNO0FBQ2pCLFdBQVcsU0FBUztBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ3BQQTtBQUNBO0FBQ0E7O0FBRUEsZ0JBQWdCLG1CQUFPLENBQUMsc0VBQWM7QUFDdEMsYUFBYSxtQkFBTyxDQUFDLHdFQUFrQjtBQUN2QyxjQUFjLG1CQUFPLENBQUMsZ0RBQVM7QUFDL0IsY0FBYyxtQkFBTyxDQUFDLG9FQUFtQjtBQUN6QyxZQUFZLG1CQUFPLENBQUMsNENBQU87QUFDM0IsWUFBWSxtQkFBTyxDQUFDLGtEQUFPOztBQUUzQjs7QUFFQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9CQUFvQixtQkFBTyxDQUFDLFdBQUk7QUFDaEMsR0FBRyxZQUFZO0FBQ2Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUyxPQUFPO0FBQ2hCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE1BQU07QUFDakI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLE9BQU87QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVksUUFBUTtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQ3RTQTs7QUFFQSxjQUFjLG1CQUFPLENBQUMsa0RBQVU7O0FBRWhDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxZQUFZOztBQUVmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxZQUFZOztBQUVmO0FBQ0E7QUFDQTtBQUNBLEtBQUssWUFBWTtBQUNqQjtBQUNBOzs7Ozs7Ozs7Ozs7QUNwQ0E7QUFDQTtBQUNBOztBQUVBLFdBQVcsbUJBQU8sQ0FBQywyREFBUTtBQUMzQixnQkFBZ0IsbUJBQU8sQ0FBQyx3REFBYTtBQUNyQyxrQkFBa0IsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDN0MsWUFBWSxtQkFBTyxDQUFDLDRDQUFPO0FBQzNCLFdBQVcsbUJBQU8sQ0FBQywyREFBUTs7QUFFM0I7QUFDQTtBQUNBLGtCQUFrQixtQkFBTyxDQUFDLHVGQUFvQjtBQUM5Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsV0FBVzs7QUFFWDtBQUNBO0FBQ0E7O0FBRUEsV0FBVyxtQkFBTyxDQUFDLDBDQUFNOztBQUV6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsOERBQThELGdCQUFnQjtBQUM5RTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQix5QkFBeUI7QUFDMUM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQkFBMEIscUNBQXFDO0FBQy9EO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVksT0FBTztBQUNuQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLGtCQUFrQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLE9BQU87QUFDbkI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsY0FBYztBQUNkLEtBQUs7QUFDTCxjQUFjO0FBQ2Q7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7O0FBRUE7QUFDQTtBQUNBLDhCQUE4QixnQkFBZ0I7QUFDOUMsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZLE9BQU87QUFDbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWSxvQkFBb0Isb0NBQW9DO0FBQ3BFOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxVQUFVO0FBQ1Y7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxNQUFNO0FBQ2pCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSxpQkFBaUIsZ0JBQWdCO0FBQ2pDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsa0NBQWtDLE9BQU87QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxNQUFNO0FBQ2pCLFlBQVksWUFBWTtBQUN4QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxtREFBbUQ7QUFDbkQsS0FBSzs7QUFFTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsY0FBYztBQUNyQztBQUNBO0FBQ0E7QUFDQTs7QUFFQSxxQkFBcUI7QUFDckI7QUFDQSxPQUFPLE9BQU87QUFDZDtBQUNBOztBQUVBO0FBQ0EscUJBQXFCLG1CQUFtQjtBQUN4QztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQkFBcUIsaUJBQWlCO0FBQ3RDO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixvQkFBb0I7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHFCQUFxQixtQkFBbUI7QUFDeEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsWUFBWTtBQUN2QjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxtQkFBbUIsRUFBRTtBQUNyQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLGtCQUFrQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOzs7Ozs7Ozs7Ozs7O0FDM2xCQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLE1BQU07QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ2xCQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQSxJQUFJO0FBQ0osMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQSwwQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNqTkE7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGNBQWMsbUJBQU8sQ0FBQyxnREFBUzs7QUFFL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsbUNBQW1DLE9BQU87QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7Ozs7Ozs7Ozs7QUM5REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNoQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsV0FBVzs7QUFFbkI7QUFDQTtBQUNBO0FBQ0EsUUFBUSxXQUFXOztBQUVuQjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsUUFBUSxXQUFXOztBQUVuQjtBQUNBO0FBQ0EsUUFBUSxVQUFVOztBQUVsQjtBQUNBOzs7Ozs7Ozs7Ozs7O0FDbEZBOztBQUVBO0FBQ0E7QUFDQSxpQkFBaUIsZ0JBQWdCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLEU7Ozs7Ozs7Ozs7O0FDVEEsaUJBQWlCOztBQUVqQjtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ0pBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxjQUFjO0FBQ3pCLFdBQVcsT0FBTztBQUNsQixZQUFZLE1BQU07QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7O0FDdkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsT0FBTztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNwQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHlHQUF5RyxJQUFJLEdBQUcsSUFBSSxTQUFTLElBQUk7O0FBRWpJO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLHdFQUF3RTtBQUN4RTs7QUFFQTtBQUNBLGdCQUFnQjtBQUNoQjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHdFQUF3RTtBQUN4RSxrRkFBa0Y7QUFDbEY7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7Ozs7Ozs7QUN0Q0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixzQkFBc0I7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHFDQUFxQzs7QUFFckM7QUFDQTtBQUNBOztBQUVBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsVUFBVTs7Ozs7Ozs7Ozs7O0FDdkx0QztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsaUJBQWlCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwwQ0FBMEMsc0JBQXNCLEVBQUU7QUFDbEU7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFVBQVU7QUFDVjtBQUNBOztBQUVBLEtBQUs7QUFDTDtBQUNBOztBQUVBLEtBQUs7QUFDTDtBQUNBOztBQUVBLEtBQUs7QUFDTDtBQUNBOztBQUVBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FDeExEO0FBQ0E7QUFDQTs7QUFFQSxVQUFVLG1CQUFPLENBQUMseURBQU87QUFDekIsYUFBYSxtQkFBTyxDQUFDLGdHQUFrQjtBQUN2QyxjQUFjLG1CQUFPLENBQUMsaUVBQVc7QUFDakMsWUFBWSxtQkFBTyxDQUFDLGtEQUFPOztBQUUzQjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLG1CQUFPLENBQUMsaUVBQVc7QUFDckMsaUJBQWlCLG1CQUFPLENBQUMsK0RBQVU7Ozs7Ozs7Ozs7Ozs7QUM1Rm5DO0FBQ0E7QUFDQTs7QUFFQSxVQUFVLG1CQUFPLENBQUMsc0VBQWtCO0FBQ3BDLGFBQWEsbUJBQU8sQ0FBQywrREFBVTtBQUMvQixjQUFjLG1CQUFPLENBQUMsb0VBQW1CO0FBQ3pDLGFBQWEsbUJBQU8sQ0FBQyxnR0FBa0I7QUFDdkMsU0FBUyxtQkFBTyxDQUFDLHVEQUFNO0FBQ3ZCLFdBQVcsbUJBQU8sQ0FBQyw4REFBZ0I7QUFDbkMsWUFBWSxtQkFBTyxDQUFDLGtEQUFPO0FBQzNCLGNBQWMsbUJBQU8sQ0FBQyxnREFBUztBQUMvQixjQUFjLG1CQUFPLENBQUMsOENBQVE7O0FBRTlCO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsT0FBTztBQUNsQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZLFFBQVE7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZLFFBQVE7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZLFFBQVE7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxTQUFTO0FBQ3BCLFlBQVksUUFBUTtBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsMkJBQTJCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUcsT0FBTztBQUNWO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGlCQUFpQixnQkFBZ0I7QUFDakM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQzNqQkE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsb0JBQW9CO0FBQy9CLFdBQVcsT0FBTztBQUNsQixXQUFXLFNBQVM7QUFDcEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O0FDdEJBO0FBQ0E7QUFDQTs7QUFFQSxhQUFhLG1CQUFPLENBQUMsZ0dBQWtCO0FBQ3ZDLGNBQWMsbUJBQU8sQ0FBQyxvRUFBbUI7QUFDekMsY0FBYyxtQkFBTyxDQUFDLGtEQUFVO0FBQ2hDLFNBQVMsbUJBQU8sQ0FBQyx1REFBTTtBQUN2QixXQUFXLG1CQUFPLENBQUMsOERBQWdCO0FBQ25DLFlBQVksbUJBQU8sQ0FBQyxrREFBTztBQUMzQixjQUFjLG1CQUFPLENBQUMsZ0RBQVM7QUFDL0IsYUFBYSxtQkFBTyxDQUFDLHdEQUFhOztBQUVsQztBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVksT0FBTztBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixtQ0FBbUM7QUFDdEQsS0FBSztBQUNMLG1CQUFtQixxQkFBcUI7QUFDeEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxhQUFhLCtCQUErQjtBQUM1QztBQUNBO0FBQ0E7O0FBRUEsYUFBYSw0QkFBNEI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixzQkFBc0I7QUFDekM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLE9BQU87QUFDbkI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiwwQkFBMEI7QUFDM0M7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksT0FBTztBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixZQUFZLE9BQU87QUFDbkI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQ3BiQTtBQUNBO0FBQ0E7O0FBRUEsZUFBZSxtQkFBTyxDQUFDLGtEQUFVO0FBQ2pDLFlBQVksbUJBQU8sQ0FBQyxrREFBTzs7QUFFM0I7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7Ozs7Ozs7QUMxRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGNBQWMsbUJBQU8sQ0FBQyxnREFBUztBQUMvQixZQUFZLG1CQUFPLENBQUMsK0ZBQWE7QUFDakM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQyxVQUFVO0FBQ1Y7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsbUJBQW1CLGlCQUFpQjtBQUNwQztBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsV0FBVyxNQUFNO0FBQ2pCLFlBQVksT0FBTztBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsNkJBQTZCO0FBQzdCLEdBQUc7QUFDSCxtQkFBbUIsaUJBQWlCO0FBQ3BDO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLHdDQUF3QztBQUN4QyxLQUFLLHlCQUF5QjtBQUM5QixxQkFBcUIsZ0JBQWdCO0FBQ3JDO0FBQ0E7QUFDQSxLQUFLLG1EQUFtRDtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O0FDM0lBO0FBQ0E7QUFDQTs7QUFFQSxZQUFZLG1CQUFPLENBQUMsOEdBQU87QUFDM0IsY0FBYyxtQkFBTyxDQUFDLG9FQUFtQjtBQUN6QyxhQUFhLG1CQUFPLENBQUMseUZBQVU7QUFDL0IsY0FBYyxtQkFBTyxDQUFDLGdEQUFTO0FBQy9CLFlBQVksbUJBQU8sQ0FBQywrRkFBYTs7QUFFakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZLE9BQU87QUFDbkI7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZLE9BQU87QUFDbkI7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwwQkFBMEI7QUFDMUIsc0JBQXNCO0FBQ3RCOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLE9BQU87QUFDWjtBQUNBO0FBQ0EsR0FBRyxxQ0FBcUM7QUFDeEM7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVksT0FBTztBQUNuQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVksb0JBQW9CO0FBQ2hDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLHFCQUFxQjtBQUNoQyxZQUFZLGNBQWM7QUFDMUI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7O0FDN1pBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUNuQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSwyQkFBMkIsbUJBQU8sQ0FBQyw4R0FBUztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLE9BQU87QUFDbkI7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7Ozs7Ozs7Ozs7Ozs7O0FDak1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1CQUFPLENBQUMsc0NBQUk7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixZQUFZO0FBQ1o7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtQkFBbUIsaUJBQWlCO0FBQ3BDO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxhQUFhLFNBQVM7QUFDdEIsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUEsYUFBYSw4QkFBOEI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsU0FBUztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxTQUFTO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE1BQU07QUFDakIsWUFBWTtBQUNaO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ2hPQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EsbUJBQU8sQ0FBQyxpRUFBYztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUM5REE7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQSw0QkFBNEIsaUJBQWlCO0FBQzdDO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7Ozs7Ozs7O0FDWkE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw0Q0FBNEM7O0FBRTVDOzs7Ozs7Ozs7Ozs7QUNuQkEsZUFBZSxLQUFpRCxvQkFBb0IsU0FBK0csQ0FBQyxtQkFBbUIsbUJBQW1CLFNBQVMsY0FBYyw0QkFBNEIsWUFBWSxxQkFBcUIsMkRBQTJELHVDQUF1QyxxQ0FBcUMsb0JBQW9CLEVBQUUsaUJBQWlCLDRGQUE0RixlQUFlLHdDQUF3QyxTQUFTLEVBQUUsbUJBQW1CLDhCQUE4QixxREFBcUQsMEJBQTBCLDZDQUE2QyxzQkFBc0IsNkRBQTZELFlBQVksZUFBZSxTQUFTLGlCQUFpQixpQ0FBaUMsaUJBQWlCLFlBQVksVUFBVSxzQkFBc0IsbUJBQW1CLGlEQUFpRCxpQkFBaUIsa0JBQWtCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxpQkFBaUIsY0FBYyx3Q0FBd0MsaUJBQWlCLGlDQUFpQyw0QkFBNEIsK0JBQStCLHNCQUFzQiwyQkFBMkIsNkhBQTZILDBDQUEwQyx5REFBeUQsc2NBQXNjLE9BQU8saUlBQWlJLEdBQUcsR0FBRyxhQUFhLEdBQUc7QUFDM3VFLDJDOzs7Ozs7Ozs7OztBQ0RBLHlDOzs7Ozs7Ozs7OztBQ0FBLGVBQWUsR0FBRyxJQUFpRCxvQkFBb0IsS0FBSyxhQUFpSSxDQUFDLG1CQUFtQixtQkFBbUIsU0FBUyxjQUFjLDRCQUE0QixZQUFZLHFCQUFxQiwyREFBMkQsdUNBQXVDLHFDQUFxQyxvQkFBb0IsRUFBRSxpQkFBaUIsNEZBQTRGLGVBQWUsd0NBQXdDLFNBQVMsRUFBRSxtQkFBbUIsOEJBQThCLHFEQUFxRCwwQkFBMEIsNkNBQTZDLHNCQUFzQiw2REFBNkQsWUFBWSxlQUFlLFNBQVMsaUJBQWlCLGlDQUFpQyxpQkFBaUIsWUFBWSxVQUFVLHNCQUFzQixtQkFBbUIsaURBQWlELGtCQUFrQixrQkFBa0IsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLFlBQVksNFhBQTRYLGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLEVBQUUsaUJBQWlCLGFBQWEsbUJBQW1CLGtEQUFrRCxlQUFlLFdBQVcsNkNBQTZDLDZCQUE2QixtQkFBbUIsWUFBWSxzQkFBc0Isa0VBQWtFLGNBQWMsK0JBQStCLCtCQUErQixpQkFBaUIseUJBQXlCLCtCQUErQixRQUFRLFdBQVcsd0JBQXdCLEdBQUcsR0FBRyxpQkFBaUIsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxpQkFBaUIsYUFBYSx5Q0FBeUMsc0NBQXNDLDBEQUEwRCxtQkFBbUIsNkJBQTZCLGtDQUFrQywwQkFBMEIsb0NBQW9DLG1DQUFtQyxzQ0FBc0MsR0FBRyxHQUFHLGVBQWUsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsMlNBQTJTLGlCQUFpQixhQUFhLCtDQUErQyxpQ0FBaUMsYUFBYSxnQ0FBZ0MsY0FBYyxnQkFBZ0IsZ0RBQWdELE9BQU8sZUFBZSxhQUFhLG1CQUFtQiw2RUFBNkUsRUFBRSxzQ0FBc0MsU0FBUyxFQUFFLGdDQUFnQyxhQUFhLDhDQUE4QyxxREFBcUQseUNBQXlDLFlBQVksOEJBQThCLG1DQUFtQyw0QkFBNEIsaUNBQWlDLHdCQUF3QixpQ0FBaUMsa0hBQWtILGdDQUFnQyx1R0FBdUcseUNBQXlDLDRDQUE0QyxTQUFTLDJDQUEyQyw4Q0FBOEMsOENBQThDLHVCQUF1Qiw4Q0FBOEMsaUdBQWlHLFVBQVUseUZBQXlGLHFHQUFxRyxzQ0FBc0MsK0RBQStELEdBQUcscUJBQXFCLGFBQWEsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxZQUFZLDBRQUEwUSxpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLGlCQUFpQixhQUFhLG9CQUFvQixnQ0FBZ0MsbUNBQW1DLDRCQUE0Qiw0Q0FBNEMsOEJBQThCLFlBQVksbUNBQW1DLGtDQUFrQyx3QkFBd0IsK0JBQStCLHlCQUF5QixvQ0FBb0MseUJBQXlCLGdDQUFnQyx5QkFBeUIsb0NBQW9DLDBCQUEwQixpQ0FBaUMsd0JBQXdCLDhCQUE4Qix5QkFBeUIsdUNBQXVDLHdCQUF3Qix1Q0FBdUMsd0JBQXdCLGdDQUFnQyxvQ0FBb0MsZ0NBQWdDLG9DQUFvQyxvQ0FBb0Msa0VBQWtFLG9DQUFvQyxrRUFBa0Usb0NBQW9DLDZCQUE2QixvQ0FBb0MsNkJBQTZCLG1DQUFtQyx5QkFBeUIsK0NBQStDLHNDQUFzQyxrQkFBa0IsbUNBQW1DLHlCQUF5QiwrQ0FBK0Msc0NBQXNDLGtCQUFrQixHQUFHLEdBQUcsa0JBQWtCLGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLCtDQUErQyxrQ0FBa0MsbUJBQW1CLG1DQUFtQyxpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxvQ0FBb0Msc0hBQXNILGlDQUFpQywyQ0FBMkMsaUJBQWlCLElBQUksS0FBSyxXQUFXLHFIQUFxSCxVQUFVLGlCQUFpQixhQUFhLGdCQUFnQixvQ0FBb0MsZ0JBQWdCLGtDQUFrQyxlQUFlLGVBQWUsWUFBWSx3SkFBd0osWUFBWSxJQUFJLEtBQUssc0JBQXNCLHVCQUF1QixtQ0FBbUMsTUFBTSw2RkFBNkYsY0FBYyxTQUFTLEdBQUcsR0FBRyxrQkFBa0IsaUJBQWlCLGFBQWEsK0JBQStCLG9DQUFvQyxxQkFBcUIsa0NBQWtDLGVBQWUsZUFBZSx3QkFBd0Isb0JBQW9CLDJCQUEyQixxQ0FBcUMscUJBQXFCLDhCQUE4QixZQUFZLDRFQUE0RSxJQUFJLEVBQUUsaUJBQWlCLDBCQUEwQixTQUFTLE1BQU0sa0NBQWtDLCtIQUErSCxrQkFBa0IsSUFBSSxFQUFFLEtBQUssd0VBQXdFLDBDQUEwQywyQkFBMkIsc0JBQXNCLG1DQUFtQywwQkFBMEIsSUFBSSxTQUFTLDJCQUEyQixJQUFJLFNBQVMsU0FBUyxzQkFBc0IsbUNBQW1DLDBCQUEwQixJQUFJLFNBQVMscURBQXFELDBCQUEwQixJQUFJLFNBQVMsbUVBQW1FLFNBQVMsc0JBQXNCLG1DQUFtQywwQkFBMEIsSUFBSSxTQUFTLHFEQUFxRCwwQkFBMEIsSUFBSSxTQUFTLHVFQUF1RSwwQkFBMEIsSUFBSSxTQUFTLHFFQUFxRSxVQUFVLFNBQVMsR0FBRyxHQUFHLGdCQUFnQixpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyw0RUFBNEUsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxpR0FBaUcsZ0JBQWdCLHVCQUF1QixpUkFBaVIsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsY0FBYyw2VUFBNlUsZUFBZSxlQUFlLDZUQUE2VCxlQUFlLEdBQUcsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxzREFBc0QsNEJBQTRCLDRSQUE0UixtREFBbUQsbU1BQW1NLHNDQUFzQyxxRkFBcUYsb0NBQW9DLHVEQUF1RCxrQkFBa0IsaUNBQWlDLDBDQUEwQyxnQ0FBZ0MsaUNBQWlDLHNDQUFzQywwQ0FBMEMsZ0RBQWdELG1CQUFtQixtQ0FBbUMsMEJBQTBCLDBDQUEwQyxvQkFBb0IsbUJBQW1CLDJNQUEyTSwyQ0FBMkMsaU5BQWlOLGdDQUFnQywyZEFBMmQsMENBQTBDLHNIQUFzSCxvREFBb0QscUtBQXFLLCtDQUErQyxvSEFBb0gsaURBQWlELHdRQUF3USxrQ0FBa0MsNkxBQTZMLDJDQUEyQywyU0FBMlMsZ0RBQWdELHlPQUF5Tyx3Q0FBd0MsUUFBUSx5N0JBQXk3QixnREFBZ0Qsc1ZBQXNWLHdFQUF3RSx3R0FBd0csS0FBSyxxQkFBcUIsOEhBQThILDBPQUEwTyxrQ0FBa0Msd0pBQXdKLG9DQUFvQyxrT0FBa08sR0FBRyxHQUFHLG9CQUFvQixpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLHNDQUFzQyxrQkFBa0Isb0JBQW9CLGFBQWEsVUFBVSxhQUFhLFVBQVUsK0RBQStELGdCQUFnQiwrQkFBK0IsNERBQTRELHNCQUFzQiw0R0FBNEcsVUFBVSw2QkFBNkIsU0FBUywrQkFBK0IsaUJBQWlCLGFBQWEsb0JBQW9CLG1FQUFtRSxxRUFBcUUsWUFBWSxJQUFJLFdBQVcsU0FBUyxzQ0FBc0MsU0FBUywyQkFBMkIsdUNBQXVDLHlDQUF5QywyQ0FBMkMscUNBQXFDLGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLEVBQUUsb0NBQW9DLHVEQUF1RCxpQkFBaUIsa0JBQWtCLHFEQUFxRCxpQ0FBaUMsa0dBQWtHLElBQUksc0JBQXNCLGNBQWMsbUNBQW1DLG9DQUFvQywrSkFBK0osK0JBQStCLDRQQUE0UCxrQ0FBa0MsNkJBQTZCLGtDQUFrQyxrQ0FBa0MsK0JBQStCLHlCQUF5QiwrQkFBK0IseUJBQXlCLG9DQUFvQyxpQ0FBaUMsc0NBQXNDLHdCQUF3QixvRkFBb0Ysb0NBQW9DLGlDQUFpQyxtQ0FBbUMsd0JBQXdCLGlGQUFpRixvQ0FBb0MsVUFBVSxtSUFBbUksbUNBQW1DLGdJQUFnSSxzREFBc0Qsa0VBQWtFLDhDQUE4Qyx3QkFBd0IscU1BQXFNLHlDQUF5QyxtQ0FBbUMsNkNBQTZDLEtBQUssNkNBQTZDLFFBQVEsSUFBSSx3QkFBd0IsYUFBYSxjQUFjLHNCQUFzQix5Q0FBeUMsbUNBQW1DLDZCQUE2QixrQkFBa0IsNkNBQTZDLG9CQUFvQixjQUFjLHNCQUFzQixhQUFhLGNBQWMsc0JBQXNCLDBDQUEwQyxLQUFLLG1CQUFtQixxQkFBcUIsa0NBQWtDLG9CQUFvQixrQkFBa0IsMkJBQTJCLHNHQUFzRyxzQkFBc0IsSUFBSSxzQkFBc0IsV0FBVyxzRUFBc0Usa0NBQWtDLFFBQVEsV0FBVyxLQUFLLHdCQUF3QixnQ0FBZ0MscURBQXFELGVBQWUsOEJBQThCLGtCQUFrQixZQUFZLGNBQWMsc0JBQXNCLGtDQUFrQyxzSUFBc0ksOENBQThDLDJCQUEyQiw4QkFBOEIsZUFBZSxzSEFBc0gsb0NBQW9DLHlDQUF5Qyx3QkFBd0IsS0FBSyxrRUFBa0UsU0FBUywrQ0FBK0MsY0FBYyxtQkFBbUIsS0FBSyxnQkFBZ0IsSUFBSSx1Q0FBdUMsYUFBYSxJQUFJLFlBQVksSUFBSSx1Q0FBdUMsK0JBQStCLFFBQVEsV0FBVyxLQUFLLHdCQUF3Qiw4Q0FBOEMsK0NBQStDLDRHQUE0RyxhQUFhLElBQUksRUFBRSxvQ0FBb0MsNkZBQTZGLFNBQVMsR0FBRyxHQUFHLGVBQWUsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsa0hBQWtILGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLGVBQWUsK0NBQStDLDJLQUEySyxnQkFBZ0IsY0FBYyxlQUFlLFFBQVEsa0NBQWtDLDRDQUE0QyxnQkFBZ0IsY0FBYyw2QkFBNkIsMkNBQTJDLGdCQUFnQixjQUFjLGVBQWUsMkNBQTJDLGdCQUFnQixjQUFjLGVBQWUsbURBQW1ELGdCQUFnQixjQUFjLGVBQWUsbUNBQW1DLGdCQUFnQixjQUFjLGVBQWUsbURBQW1ELGdCQUFnQixjQUFjLDZCQUE2QixtREFBbUQsZ0JBQWdCLGNBQWMsZUFBZSwyQ0FBMkMsZ0JBQWdCLE1BQU0sNkJBQTZCLG1EQUFtRCxnQkFBZ0IsY0FBYyxrQkFBa0IsaUVBQWlFLGdCQUFnQixlQUFlLGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLEVBQUUsWUFBWSxzQkFBc0IsZ3ZEQUFndkQsMENBQTBDLHlTQUF5UyxZQUFZLFdBQVcsa0NBQWtDLG1CQUFtQixtREFBbUQsdUJBQXVCLGlDQUFpQyxLQUFLLEtBQUssMkJBQTJCLEtBQUsseUJBQXlCLE1BQU0sU0FBUyx5REFBeUQsT0FBTyxFQUFFLGdCQUFnQixtQ0FBbUMsMkJBQTJCLElBQUksS0FBSyxzQkFBc0IsdUJBQXVCLGdDQUFnQyxzQkFBc0Isa0VBQWtFLGdCQUFnQixVQUFVLGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLEVBQUUsdUJBQXVCLGdCQUFnQiwySkFBMkosK01BQStNLCtCQUErQixZQUFZLHNCQUFzQixtQ0FBbUMsV0FBVyxLQUFLLFdBQVcsa0NBQWtDLFdBQVcsd0JBQXdCLG1CQUFtQixTQUFTLDhCQUE4QixvREFBb0Qsc1JBQXNSLGdDQUFnQyxpQkFBaUIsY0FBYyxLQUFLLHVCQUF1QiwyREFBMkQsK0RBQStELFNBQVMsOEJBQThCLHlHQUF5RyxrQ0FBa0MseUVBQXlFLEtBQUssaUVBQWlFLHFJQUFxSSxxQ0FBcUMsa0lBQWtJLEtBQUssaUVBQWlFLHdHQUF3RyxzQ0FBc0MsK0RBQStELHNDQUFzQywyREFBMkQsZ0RBQWdELHdDQUF3QyxZQUFZLEtBQUssY0FBYyxLQUFLLDJEQUEyRCx5Q0FBeUMsU0FBUyxrQ0FBa0MsTUFBTSw0SEFBNEgsNERBQTRELHlDQUF5QyxHQUFHLEdBQUcsV0FBVyxpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLGdDQUFnQyxhQUFhLDBGQUEwRiw0Q0FBNEMsbURBQW1ELHdCQUF3QixrQkFBa0IsbUJBQW1CLG1CQUFtQix3QkFBd0Isc0NBQXNDLHNCQUFzQixzQ0FBc0MsNENBQTRDLDRDQUE0QyxrQkFBa0IsZ0NBQWdDLGdFQUFnRSw4QkFBOEIsd0RBQXdELCtCQUErQiwrQkFBK0IsMEJBQTBCLEtBQUssaUJBQWlCLHVDQUF1QyxrQ0FBa0MsK0JBQStCLDBCQUEwQixLQUFLLG9CQUFvQiw0REFBNEQsOEJBQThCLCtCQUErQixNQUFNLHFCQUFxQix1QkFBdUIsS0FBSyxRQUFRLEtBQUssaUJBQWlCLHVDQUF1Qyw4QkFBOEIsdUNBQXVDLGlDQUFpQyxvQkFBb0Isd0JBQXdCLElBQUksRUFBRSxhQUFhLFdBQVcsNEJBQTRCLE1BQU0seUNBQXlDLHNEQUFzRCwwQ0FBMEMsNkJBQTZCLDRHQUE0RyxHQUFHLEdBQUcsY0FBYyxpQkFBaUIsY0FBYyxnREFBZ0Qsb0NBQW9DLGdDQUFnQyxpQ0FBaUMsMEhBQTBILDZCQUE2QixNQUFNLDhGQUE4RixHQUFHLEdBQUcsZUFBZSxpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxzQkFBc0IsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSw2Q0FBNkMsYUFBYSw2RkFBNkYsc0NBQXNDLGdFQUFnRSxzQ0FBc0MsbURBQW1ELHdCQUF3QixrQkFBa0IsbUJBQW1CLG1CQUFtQix3QkFBd0Isc0NBQXNDLHNCQUFzQixzQ0FBc0MsNENBQTRDLDRDQUE0QyxrQkFBa0IsOEJBQThCLGtFQUFrRSxnQ0FBZ0Msb0hBQW9ILEtBQUssNEJBQTRCLDJDQUEyQyxpQ0FBaUMsdURBQXVELEtBQUssK0JBQStCLCtEQUErRCxnQ0FBZ0Msd0JBQXdCLGdDQUFnQyxxQ0FBcUMsS0FBSyxRQUFRLEtBQUssK0JBQStCLDZDQUE2Qyw2QkFBNkIsR0FBRyxHQUFHLGNBQWMsaUJBQWlCLGNBQWMsZ0RBQWdELG9DQUFvQyx1REFBdUQsaUNBQWlDLDBIQUEwSCxnQ0FBZ0MsTUFBTSx5SkFBeUosR0FBRyxHQUFHLGVBQWUsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSx5QkFBeUIsdUNBQXVDLHdDQUF3QyxXQUFXLEtBQUssa0NBQWtDLFNBQVMsNkNBQTZDLDZFQUE2RSxPQUFPLFFBQVEsV0FBVyxLQUFLLFdBQVcsK0RBQStELE9BQU8sK0RBQStELHlCQUF5Qix1Q0FBdUMsWUFBWSxXQUFXLEtBQUssOEJBQThCLFdBQVcsc0ZBQXNGLFNBQVMsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxXQUFXLG1DQUFtQyxPQUFPLDRIQUE0SCxPQUFPLGtPQUFrTyw4QkFBOEIsWUFBWSx1QkFBdUIsOERBQThELHdYQUF3WCwwQkFBMEIsMEJBQTBCLGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLEVBQUUsbUVBQW1FLGdEQUFnRCxjQUFjLE9BQU8sMkNBQTJDLGNBQWMscUJBQXFCLDBCQUEwQixpQ0FBaUMseVBBQXlQLE1BQU0sS0FBSyx3Q0FBd0MsUUFBUSx1REFBdUQsRUFBRSxRQUFRLEtBQUssS0FBSyxvQkFBb0IsUUFBUSw4Q0FBOEMsRUFBRSxTQUFTLEdBQUcsaUJBQWlCLGdCQUFnQix5QkFBeUIsZ0NBQWdDLHFCQUFxQix5QkFBeUIseURBQXlELDZIQUE2SCxrR0FBa0csd0NBQXdDLGlCQUFpQix1OENBQXU4Qyx5Q0FBeUMsOERBQThELDJLQUEySyw0QkFBNEIsMkNBQTJDLHNCQUFzQixnREFBZ0QsbUhBQW1ILEdBQUcsR0FBRyxpQkFBaUIsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsNkJBQTZCLGlEQUFpRCxVQUFVLGlCQUFpQixhQUFhLCtDQUErQyxpQ0FBaUMsYUFBYSxnQ0FBZ0MsY0FBYyxnQkFBZ0IsZ0RBQWdELE9BQU8sZUFBZSxhQUFhLG1CQUFtQiw2RUFBNkUsRUFBRSxzQ0FBc0MsU0FBUyxFQUFFLHVDQUF1QyxrQkFBa0IseUJBQXlCLHVGQUF1RixnREFBZ0QsZUFBZSxpQ0FBaUMsbUJBQW1CLGlDQUFpQyx5QkFBeUIsZ0NBQWdDLGVBQWUseUNBQXlDLG1DQUFtQyxzQ0FBc0MsK0RBQStELEdBQUcsa0JBQWtCLG1CQUFtQixpQkFBaUIsY0FBYyw0R0FBNEcsdURBQXVELE9BQU8sNENBQTRDLDJDQUEyQyxtREFBbUQsWUFBWSxnQ0FBZ0MscUZBQXFGLFNBQVMsNkNBQTZDLDhDQUE4Qyw4Q0FBOEMsNkJBQTZCLGlGQUFpRix1QkFBdUIsbUVBQW1FLGlEQUFpRCx3REFBd0QsV0FBVyxpQkFBaUIsZ0RBQWdELG1FQUFtRSwyRUFBMkUsV0FBVyxpQkFBaUIsU0FBUyxrREFBa0Qsc0VBQXNFLGdDQUFnQyx1REFBdUQsV0FBVywyQkFBMkIsK0NBQStDLHVEQUF1RCx3QkFBd0IsTUFBTSxZQUFZLDJCQUEyQixLQUFLLDJFQUEyRSxVQUFVLHVDQUF1Qyw0QkFBNEIsMkJBQTJCLE1BQU0sb0NBQW9DLDhCQUE4QixpQkFBaUIsV0FBVyxLQUFLLFdBQVcsTUFBTSxzQ0FBc0Msd0VBQXdFLGtCQUFrQixLQUFLLHVDQUF1QyxnREFBZ0QsNENBQTRDLDJDQUEyQyxHQUFHLEdBQUcsNEJBQTRCLGlCQUFpQixhQUFhLGdCQUFnQixnQ0FBZ0MseUNBQXlDLHNDQUFzQyxTQUFTLHVFQUF1RSxNQUFNLGFBQWEscUpBQXFKLGdDQUFnQyxZQUFZLHNCQUFzQixpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLGlCQUFpQixjQUFjLHVCQUF1QixzQ0FBc0Msc0dBQXNHLHFDQUFxQyxXQUFXLHdSQUF3Uix5QkFBeUIsR0FBRyxzQ0FBc0Msa1NBQWtTLEdBQUcsR0FBRyxvQkFBb0IsaUJBQWlCLGFBQWEsK0NBQStDLGlDQUFpQyxhQUFhLGdDQUFnQyxjQUFjLGdCQUFnQixnREFBZ0QsT0FBTyxlQUFlLGFBQWEsbUJBQW1CLDZFQUE2RSxFQUFFLHNDQUFzQyxTQUFTLEVBQUUsa0JBQWtCLGFBQWEsOENBQThDLDREQUE0RCxrREFBa0QsV0FBVyxxRkFBcUYsOEZBQThGLG1CQUFtQixnQ0FBZ0Msb0RBQW9ELG1DQUFtQyw2VkFBNlYsc0NBQXNDLGlPQUFpTyxHQUFHLGtCQUFrQixxQkFBcUIsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsMEJBQTBCLGlEQUFpRCw2QkFBNkIsb0RBQW9ELFVBQVUsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSx5Q0FBeUMsY0FBYyxtRUFBbUUseURBQXlELGVBQWUsK0JBQStCLCtCQUErQixrREFBa0QsZUFBZSw2QkFBNkIsK0JBQStCLHlEQUF5RCxlQUFlLG9DQUFvQywrQkFBK0IsOENBQThDLGVBQWUseUJBQXlCLCtCQUErQixxREFBcUQsZUFBZSxnQ0FBZ0MsK0JBQStCLGdEQUFnRCxlQUFlLDJCQUEyQiwrQkFBK0IsNkNBQTZDLGVBQWUsd0JBQXdCLCtCQUErQixnREFBZ0QsZUFBZSwyQkFBMkIsK0JBQStCLGdEQUFnRCxlQUFlLDJCQUEyQiwrQkFBK0IsK0NBQStDLGVBQWUsMEJBQTBCLCtCQUErQiw4Q0FBOEMsZUFBZSxtRUFBbUUsK0JBQStCLGdEQUFnRCxlQUFlLDJCQUEyQiwrQkFBK0IsNENBQTRDLGVBQWUsdUJBQXVCLCtCQUErQiw0Q0FBNEMsZUFBZSx1QkFBdUIsK0JBQStCLDhDQUE4QyxlQUFlLGdDQUFnQywrQkFBK0IsK0NBQStDLGVBQWUsMEJBQTBCLCtCQUErQiw4QkFBOEIsa0JBQWtCLDhCQUE4QixtQkFBbUIsa0NBQWtDLGlEQUFpRCxpQ0FBaUMsc0JBQXNCLDhCQUE4QixtQkFBbUIscURBQXFELDBDQUEwQyxpREFBaUQsNkNBQTZDLCtDQUErQyxvQ0FBb0MsaURBQWlELDZDQUE2QyxtREFBbUQsd0NBQXdDLG1DQUFtQyx1REFBdUQscUNBQXFDLGlDQUFpQyxvQ0FBb0MscURBQXFELHFDQUFxQyxpQ0FBaUMsNkNBQTZDLHlDQUF5Qyx1Q0FBdUMsNEJBQTRCLGtDQUFrQyx1QkFBdUIsdUNBQXVDLHNEQUFzRCxnQ0FBZ0Msa0RBQWtELHFDQUFxQyxrREFBa0QscUNBQXFDLGtEQUFrRCxvQ0FBb0MseUJBQXlCLHVDQUF1Qyw0QkFBNEIsc0NBQXNDLG1EQUFtRCw4QkFBOEIsbUJBQW1CLCtCQUErQixvQkFBb0IsbUNBQW1DLHdCQUF3QiwrQkFBK0Isb0JBQW9CLG1DQUFtQyw4Q0FBOEMscUNBQXFDLHlDQUF5QyxtQ0FBbUMsa0RBQWtELDhCQUE4QixtQkFBbUIsbUNBQW1DLDRDQUE0QyxvQ0FBb0MsZUFBZSxTQUFTLCtCQUErQix5Q0FBeUMsaUJBQWlCLG1CQUFtQixzQkFBc0Isc0JBQXNCLDZFQUE2RSxFQUFFLEdBQUcsR0FBRyxhQUFhLGlCQUFpQixjQUFjLGVBQWUsb0RBQW9ELGVBQWUsc0JBQXNCLCtCQUErQiwrQ0FBK0MsZUFBZSxzQkFBc0IsK0JBQStCLGlEQUFpRCxlQUFlLDBCQUEwQiwrQkFBK0IsNkNBQTZDLGVBQWUsMEJBQTBCLCtCQUErQiw4Q0FBOEMsZUFBZSxpQ0FBaUMsK0JBQStCLGtDQUFrQyxnQ0FBZ0MscUJBQXFCLEdBQUcsZ0JBQWdCLGNBQWMsYUFBYSxzREFBc0QsZUFBZSw0QkFBNEIsK0JBQStCLGtDQUFrQywyREFBMkQsK0NBQStDLDJDQUEyQyxHQUFHLGdCQUFnQixnQkFBZ0IsdUJBQXVCLGlEQUFpRCxlQUFlLHFDQUFxQywrQkFBK0IsNkNBQTZDLGVBQWUsb0NBQW9DLCtCQUErQixJQUFJLGdCQUFnQixjQUFjLGFBQWEsK0NBQStDLDhDQUE4QyxzQkFBc0IsRUFBRSx5Q0FBeUMsZ0RBQWdELHdCQUF3QixFQUFFLHlDQUF5QyxxQ0FBcUMseUNBQXlDLHFDQUFxQyxHQUFHLEdBQUcsaUJBQWlCLGFBQWEsK0NBQStDLGlDQUFpQyxhQUFhLGdDQUFnQyxjQUFjLGdCQUFnQixnREFBZ0QsT0FBTyxlQUFlLGFBQWEsbUJBQW1CLDZFQUE2RSxFQUFFLHNDQUFzQyxTQUFTLEVBQUUsdVVBQXVVLGNBQWMsaUJBQWlCLEVBQUUseUJBQXlCLDQvQkFBNC9CLDBCQUEwQixzR0FBc0cseUJBQXlCLDRWQUE0ViwyREFBMkQsZUFBZSxtQ0FBbUMsK0JBQStCLDRDQUE0QyxlQUFlLGdDQUFnQywrQkFBK0IsNENBQTRDLGVBQWUsZ0NBQWdDLCtCQUErQixvREFBb0QsZUFBZSxnQ0FBZ0MsK0JBQStCLDhDQUE4QyxlQUFlLDBCQUEwQiwrQkFBK0IsNkNBQTZDLGVBQWUseUJBQXlCLCtCQUErQixrREFBa0QsZUFBZSw4QkFBOEIsK0JBQStCLGdEQUFnRCxlQUFlLDRCQUE0QiwrQkFBK0IsZ0RBQWdELGVBQWUsNEJBQTRCLCtCQUErQixnREFBZ0QsZUFBZSw0QkFBNEIsK0JBQStCLHlEQUF5RCxlQUFlLHFDQUFxQywrQkFBK0IscURBQXFELGVBQWUsaUNBQWlDLCtCQUErQiwrQ0FBK0MsZUFBZSwyQkFBMkIsK0JBQStCLDhDQUE4QyxlQUFlLDBCQUEwQiwrQkFBK0Isa0RBQWtELGVBQWUsb0NBQW9DLCtCQUErQixpREFBaUQsZUFBZSxtQ0FBbUMsK0JBQStCLGlDQUFpQyx1T0FBdU8sMkZBQTJGLCtCQUErQixXQUFXLG91QkFBb3VCLDhCQUE4QiwyQ0FBMkMsNEJBQTRCLGdNQUFnTSw2Q0FBNkMsZUFBZSwyQkFBMkIsK0JBQStCLCtDQUErQyxlQUFlLG1DQUFtQywrQkFBK0IsdUNBQXVDLGtIQUFrSCw4QkFBOEIsb0NBQW9DLGlCQUFpQixFQUFFLGdEQUFnRCxlQUFlLHFEQUFxRCwrQkFBK0IsZ0RBQWdELFdBQVcsK0NBQStDLFVBQVUsNEhBQTRILE1BQU0sd05BQXdOLE1BQU0sa0lBQWtJLE1BQU0seUZBQXlGLE1BQU0sZ1JBQWdSLE1BQU0sNkNBQTZDLE1BQU0sd0RBQXdELE1BQU0sa0VBQWtFLDRCQUE0QixtREFBbUQsNklBQTZJLGdMQUFnTCxFQUFFLDBDQUEwQyx1S0FBdUssNkJBQTZCLDRCQUE0Qix3Q0FBd0MsOExBQThMLG9DQUFvQyxXQUFXLDBGQUEwRix1REFBdUQsR0FBRyxrQkFBa0IsNkVBQTZFLCtOQUErTixvSEFBb0gsbUZBQW1GLHNHQUFzRywyRkFBMkYsMkVBQTJFLEdBQUcsa0NBQWtDLFdBQVcsMkVBQTJFLG1CQUFtQixtRkFBbUYscUJBQXFCLG9GQUFvRixzQkFBc0IsMkZBQTJGLCtDQUErQywwRkFBMEYsaURBQWlELHNGQUFzRiw2Q0FBNkMsMENBQTBDLHdEQUF3RCwyQ0FBMkMsNENBQTRDLEdBQUcsOEJBQThCLFdBQVcscUdBQXFHLDhRQUE4USxpQ0FBaUMsd2dDQUF3Z0MsNkJBQTZCLDRFQUE0RSwyQkFBMkIsd3VCQUF3dUIsNkJBQTZCLG1PQUFtTywyQkFBMkIsNEJBQTRCLDhDQUE4QyxpWUFBaVksMEJBQTBCLGdMQUFnTCx1Q0FBdUMsMENBQTBDLGdEQUFnRCx3Q0FBd0MsaUNBQWlDLHlDQUF5QyxrQ0FBa0MsbUVBQW1FLG1DQUFtQyxxR0FBcUcsMEJBQTBCLHNMQUFzTCxtQ0FBbUMsb0VBQW9FLDZFQUE2RSwwRUFBMEUsMERBQTBELDBDQUEwQywwREFBMEQsc0ZBQXNGLHFDQUFxQyxxTUFBcU0sc0NBQXNDLGlKQUFpSiwwQ0FBMEMsMFZBQTBWLHdDQUF3QyxrQ0FBa0MsaUlBQWlJLDZHQUE2RyxzRkFBc0YsbUNBQW1DLHFOQUFxTixrQ0FBa0MsaUNBQWlDLGNBQWMsVUFBVSxtRkFBbUYsK0JBQStCLHlJQUF5SSxNQUFNLDBDQUEwQyxNQUFNLDRDQUE0QyxNQUFNLGlEQUFpRCxNQUFNLGlCQUFpQiw2RUFBNkUscUZBQXFGLEVBQUUsT0FBTyxzREFBc0QsZUFBZSxnS0FBZ0ssZUFBZSwyQ0FBMkMsZUFBZSxnQkFBZ0IsZUFBZSxpQkFBaUIsb0RBQW9ELDJ5QkFBMnlCLGlKQUFpSixvUEFBb1Asa0VBQWtFLFlBQVksaUNBQWlDLHFDQUFxQyxnQkFBZ0IsZ0hBQWdILGNBQWMsU0FBUyx1Q0FBdUMsa0VBQWtFLDREQUE0RCx1RUFBdUUsZ0VBQWdFLHNFQUFzRSxzRUFBc0UsR0FBRyxtQ0FBbUMsMERBQTBELCtDQUErQyxnREFBZ0QsMkNBQTJDLGdLQUFnSyxtQ0FBbUMsaUZBQWlGLGdDQUFnQyxNQUFNLHFDQUFxQywyQkFBMkIsaUlBQWlJLDJGQUEyRiw4QkFBOEIsK0JBQStCLCtSQUErUixLQUFLLFlBQVksK0VBQStFLHVMQUF1TCx1Q0FBdUMsUUFBUSxnQ0FBZ0MsdUJBQXVCLHNFQUFzRSx3QkFBd0IsNktBQTZLLHFDQUFxQyxrQ0FBa0Msb0NBQW9DLHFDQUFxQyx1Q0FBdUMsc0RBQXNELHNDQUFzQywwQkFBMEIsMkJBQTJCLG1DQUFtQyxXQUFXLDJUQUEyVCxvQkFBb0IsSUFBSSx5Q0FBeUMsV0FBVyw4REFBOEQscUJBQXFCLDhCQUE4QixFQUFFLDhCQUE4QixzUUFBc1Esb0hBQW9ILDRCQUE0Qix3REFBd0QsK0JBQStCLFdBQVcsK1NBQStTLGdCQUFnQixJQUFJLHFDQUFxQyxXQUFXLDBEQUEwRCxxQkFBcUIsMEJBQTBCLEVBQUUsMEJBQTBCLDhQQUE4UCx3R0FBd0csd0JBQXdCLG9EQUFvRCxpQ0FBaUMscUJBQXFCLCtCQUErQixtRUFBbUUscURBQXFELDhCQUE4Qix5Q0FBeUMsNkNBQTZDLHlDQUF5Qyw2Q0FBNkMseUNBQXlDLDZDQUE2Qyx5Q0FBeUMsNkNBQTZDLGlEQUFpRCxnREFBZ0QscUNBQXFDLCtDQUErQyxxRUFBcUUsaURBQWlELHFEQUFxRCxxQ0FBcUMsbURBQW1ELDhFQUE4RSw4Q0FBOEMsZUFBZSwyQkFBMkIsK0JBQStCLG9DQUFvQyxxR0FBcUcscUNBQXFDLG9FQUFvRSxvQ0FBb0MsMkNBQTJDLHFDQUFxQyxzRUFBc0UsNkNBQTZDLDhDQUE4Qyx1TUFBdU0sdUNBQXVDLGdFQUFnRSxrQ0FBa0MsMkRBQTJELHVDQUF1QyxnRUFBZ0Usa0NBQWtDLHFHQUFxRyw4R0FBOEcseUlBQXlJLHFEQUFxRCxrQkFBa0IsMkRBQTJELG1NQUFtTSxxQkFBcUIsZ0tBQWdLLDhDQUE4Qyw2SEFBNkgsMERBQTBELG1DQUFtQyw0Q0FBNEMsdUNBQXVDLHFEQUFxRCxnQ0FBZ0MsK0VBQStFLHNEQUFzRCw2Q0FBNkMsbUNBQW1DLE1BQU0saUNBQWlDLDZFQUE2RSwwQ0FBMEMscURBQXFELEtBQUssd0NBQXdDLFVBQVUscUlBQXFJLGlCQUFpQixpRUFBaUUsNkJBQTZCLFdBQVcsbU5BQW1OLGlEQUFpRCxPQUFPLGtDQUFrQyxvVUFBb1UsY0FBYyxnR0FBZ0csOEJBQThCLDZDQUE2QyxtS0FBbUssWUFBWSxZQUFZLDBFQUEwRSxvRUFBb0UsNEJBQTRCLGlEQUFpRCxxQ0FBcUMsNEJBQTRCLDhCQUE4Qix3REFBd0QsNExBQTRMLDRaQUE0WixrQ0FBa0MsaUZBQWlGLG9DQUFvQyxTQUFTLG1DQUFtQyx1Q0FBdUMsR0FBRyxlQUFlLGFBQWEsaUJBQWlCLGFBQWEsK0NBQStDLG1GQUFtRiw2RkFBNkYsMEJBQTBCLEtBQUssb0RBQW9ELDhDQUE4QyxxQ0FBcUMscUJBQXFCLFdBQVcsc0NBQXNDLFNBQVMsRUFBRSwrQkFBK0Isd0JBQXdCLGdOQUFnTixlQUFlLCtDQUErQyxvS0FBb0ssMkNBQTJDLFdBQVcsZ0dBQWdHLG9EQUFvRCxJQUFJLHVDQUF1Qyw4QkFBOEIsaUNBQWlDLGtEQUFrRCw0QkFBNEIsMkRBQTJELDhCQUE4Qiw4REFBOEQsOENBQThDLFdBQVcsMEdBQTBHLE9BQU8seUVBQXlFLG9EQUFvRCw0QkFBNEIsMkJBQTJCLGFBQWEsd0lBQXdJLElBQUksS0FBSyw4QkFBOEIsb0dBQW9HLDBDQUEwQyxrREFBa0Qsa0NBQWtDLHNCQUFzQixvQkFBb0Isc0NBQXNDLG1EQUFtRCxJQUFJLG1EQUFtRCxXQUFXLHNCQUFzQixrREFBa0Qsa0xBQWtMLHNVQUFzVSxvREFBb0QsaU1BQWlNLHlCQUF5Qix1Q0FBdUMsS0FBSywrQ0FBK0MseURBQXlELG1HQUFtRyxHQUFHLHNCQUFzQixpQkFBaUIsYUFBYSwrQ0FBK0MsaUNBQWlDLGFBQWEsZ0NBQWdDLGNBQWMsZ0JBQWdCLGdEQUFnRCxPQUFPLGVBQWUsYUFBYSxtQkFBbUIsNkVBQTZFLDZDQUE2QyxtRkFBbUYsNkZBQTZGLDBCQUEwQixLQUFLLG9EQUFvRCw4Q0FBOEMscUNBQXFDLHFCQUFxQixXQUFXLHNDQUFzQyxTQUFTLEVBQUUsbURBQW1ELHdCQUF3Qix5QkFBeUIsNmlCQUE2aUIsMEJBQTBCLE1BQU0sb0RBQW9ELDZEQUE2RCxpQ0FBaUMsV0FBVyxrR0FBa0cseUJBQXlCLEdBQUcsc0NBQXNDLG1DQUFtQyxtS0FBbUssdUpBQXVKLHlJQUF5SSw4REFBOEQseUlBQXlJLHVDQUF1QywrS0FBK0ssbUZBQW1GLDhEQUE4RCxrTUFBa00scUJBQXFCLG1DQUFtQyx3SkFBd0osS0FBSyw4RkFBOEYseUJBQXlCLHlDQUF5Qyx1RUFBdUUsZ0lBQWdJLGlDQUFpQyxpQ0FBaUMsMkVBQTJFLDRDQUE0Qyx5QkFBeUIsZUFBZSx5S0FBeUssMENBQTBDLHlCQUF5QixlQUFlLGtTQUFrUyxzQ0FBc0Msb0NBQW9DLHFDQUFxQywwQ0FBMEMsK0dBQStHLDhFQUE4RSxlQUFlLGFBQWEsaUJBQWlCLGFBQWEsY0FBYyxnQ0FBZ0MsZ0JBQWdCLCtCQUErQixvQkFBb0Isa0RBQWtELGtCQUFrQiwyRUFBMkUsb0tBQW9LLG9IQUFvSCxNQUFNLHNDQUFzQyxTQUFTLGlGQUFpRiwwRkFBMEYsc0NBQXNDLG9GQUFvRixvRkFBb0Ysa0dBQWtHLGlCQUFpQixhQUFhLCtDQUErQyxpQ0FBaUMsYUFBYSxnQ0FBZ0MsY0FBYyxnQkFBZ0IsZ0RBQWdELE9BQU8sZUFBZSxhQUFhLG1CQUFtQiw2RUFBNkUsRUFBRSxzQ0FBc0MsU0FBUyxFQUFFLGlIQUFpSCxvQ0FBb0MsY0FBYyxvQkFBb0Isa0hBQWtILG9DQUFvQyw4QkFBOEIsaUNBQWlDLGdEQUFnRCxnQ0FBZ0MsTUFBTSxrQ0FBa0Msd0NBQXdDLHFGQUFxRixzRkFBc0YsdURBQXVELGtEQUFrRCwyRUFBMkUsbUZBQW1GLGdCQUFnQiwwQkFBMEIsMkNBQTJDLGdJQUFnSSx5SEFBeUgsbUNBQW1DLEdBQUcsaUJBQWlCLDRCQUE0QiwyQ0FBMkMseUJBQXlCLDBiQUEwYiwwQ0FBMEMseURBQXlELEVBQUUsOENBQThDLDBDQUEwQyxzQ0FBc0MsRUFBRSxrREFBa0QsOENBQThDLE9BQU8sRUFBRSxrREFBa0QsMENBQTBDLDZCQUE2QixFQUFFLGtEQUFrRCxzRUFBc0UseURBQXlELEVBQUUsNENBQTRDLHNCQUFzQiwyQkFBMkIsVUFBVSxhQUFhLHdCQUF3QiwyQkFBMkIsVUFBVSxhQUFhLHFCQUFxQiwyQkFBMkIsVUFBVSxhQUFhLHVCQUF1QiwyQkFBMkIsVUFBVSxhQUFhLDBCQUEwQiwyQkFBMkIsVUFBVSxhQUFhLDJCQUEyQiwyQkFBMkIsVUFBVSxhQUFhLDJCQUEyQiwyQkFBMkIsVUFBVSxhQUFhLGdDQUFnQywyQkFBMkIsVUFBVSxhQUFhLCtCQUErQiwyQkFBMkIsVUFBVSxhQUFhLDJCQUEyQiwyQkFBMkIsVUFBVSxhQUFhLDZCQUE2QiwyQkFBMkIsVUFBVSxhQUFhLDJCQUEyQiwyQkFBMkIscUJBQXFCLGFBQWEsMkJBQTJCLDJCQUEyQixVQUFVLGFBQWEsd0JBQXdCLDJCQUEyQixxQkFBcUIsYUFBYSx3QkFBd0IsMkJBQTJCLFVBQVUsYUFBYSx3QkFBd0IsMkJBQTJCLFVBQVUsYUFBYSx3QkFBd0IsMkJBQTJCLFVBQVUsYUFBYSx3QkFBd0IsMkJBQTJCLFVBQVUsYUFBYSxxQkFBcUIsMkJBQTJCLFVBQVUsYUFBYSx1QkFBdUIsMkJBQTJCLFVBQVUsYUFBYSx1QkFBdUIsMkJBQTJCLFVBQVUsYUFBYSw4QkFBOEIsMkJBQTJCLFVBQVUsYUFBYSw0QkFBNEIsMkJBQTJCLFVBQVUsYUFBYSw4QkFBOEIsMkJBQTJCLFVBQVUsYUFBYSxxQ0FBcUMsMkJBQTJCLFVBQVUsYUFBYSx3Q0FBd0MsMkJBQTJCLHFCQUFxQixhQUFhLDBDQUEwQywyQkFBMkIsVUFBVSxhQUFhLDRCQUE0QiwyQkFBMkIsVUFBVSxhQUFhLDhCQUE4QiwyQkFBMkIsVUFBVSxhQUFhLHVCQUF1QiwyQkFBMkIsVUFBVSxhQUFhLHFCQUFxQiwyQkFBMkIsVUFBVSxhQUFhLG9CQUFvQiwyQkFBMkIscUJBQXFCLGFBQWEsMkJBQTJCLDJCQUEyQixVQUFVLGFBQWEsc0JBQXNCLDJCQUEyQixxQkFBcUIsYUFBYSw2QkFBNkIsMkJBQTJCLFVBQVUsYUFBYSwyQkFBMkIsMkJBQTJCLFVBQVUsYUFBYSx5QkFBeUIsMkJBQTJCLHFCQUFxQixhQUFhLGdDQUFnQywyQkFBMkIsNEJBQTRCLGFBQWEsc0JBQXNCLDJCQUEyQiw0QkFBNEIsYUFBYSwyQkFBMkIsMkJBQTJCLFVBQVUsYUFBYSw0QkFBNEIsMkJBQTJCLFVBQVUsYUFBYSx1QkFBdUIsMkJBQTJCLFVBQVUsYUFBYSwwQkFBMEIsa0RBQWtELGdCQUFnQixpREFBaUQsb0JBQW9CLGlEQUFpRCxvQkFBb0IsaURBQWlELG9CQUFvQixpREFBaUQsMEJBQTBCLGlEQUFpRCxxQkFBcUIsaURBQWlELGVBQWUsaURBQWlELG9CQUFvQixpREFBaUQsbUJBQW1CLGtEQUFrRCxpQkFBaUIsa0RBQWtELG9CQUFvQixrREFBa0Qsa0JBQWtCLHlEQUF5RCxxQkFBcUIsMERBQTBELHFCQUFxQiw0QkFBNEIsVUFBVSxZQUFZLHNCQUFzQiwyQkFBMkIsVUFBVSxZQUFZLHlCQUF5QiwyQkFBMkIsVUFBVSxZQUFZLGlCQUFpQiwyQkFBMkIsVUFBVSxZQUFZLG9CQUFvQiwyQkFBMkIsVUFBVSxZQUFZLGtCQUFrQiwyQkFBMkIsVUFBVSxZQUFZLHdCQUF3QiwyQkFBMkIsVUFBVSxZQUFZLGlDQUFpQywyQkFBMkIsVUFBVSxZQUFZLDZCQUE2QiwyQkFBMkIsVUFBVSxZQUFZLGlCQUFpQiwyQkFBMkIsVUFBVSxZQUFZLHNCQUFzQiwyQkFBMkIsVUFBVSxZQUFZLHNCQUFzQiwyQkFBMkIsVUFBVSxZQUFZLHNCQUFzQiwyQkFBMkIsUUFBUSxFQUFFLFlBQVksc0JBQXNCLDJCQUEyQixVQUFVLFlBQVksc0JBQXNCLDJCQUEyQiw0QkFBNEIsWUFBWSxnQ0FBZ0MsMkJBQTJCLDRCQUE0QixZQUFZLGdDQUFnQyxFQUFFLGtCQUFrQix5QkFBeUIsMEJBQTBCLFlBQVksOEJBQThCLDJCQUEyQiwwQkFBMEIsWUFBWSw4QkFBOEIsMkJBQTJCLDBCQUEwQixZQUFZLDhCQUE4QiwyQkFBMkIsMEJBQTBCLFlBQVksOEJBQThCLDJCQUEyQiwwQkFBMEIsWUFBWSw4QkFBOEIsMkJBQTJCLDBCQUEwQixZQUFZLDhCQUE4QiwyQkFBMkIsMEJBQTBCLFlBQVksOEJBQThCLEVBQUUsUUFBUSw2QkFBNkIsZ0NBQWdDLDRCQUE0QixZQUFZLGtDQUFrQyx3Q0FBd0Msa0RBQWtELDJCQUEyQiw0QkFBNEIsMkVBQTJFLGdFQUFnRSxlQUFlLGdDQUFnQywrQkFBK0Isa0RBQWtELGVBQWUsOEJBQThCLCtCQUErQixnREFBZ0QsZUFBZSw0QkFBNEIsK0JBQStCLGlDQUFpQywrQkFBK0IsK0JBQStCLDZDQUE2Qyx5UkFBeVIsbUNBQW1DLDZDQUE2Qyx1UkFBdVIsbUNBQW1DLDZQQUE2UCxxQ0FBcUMsWUFBWSxJQUFJLEtBQUssbUNBQW1DLGdDQUFnQyx1QkFBdUIsK0VBQStFLG1OQUFtTiwrQkFBK0IsaU1BQWlNLElBQUksNkNBQTZDLG1GQUFtRixzVUFBc1UseUNBQXlDLHVDQUF1Qyx5Q0FBeUMseURBQXlELHlDQUF5Qyx1Q0FBdUMseUNBQXlDLHlEQUF5RCw2QkFBNkIsc0JBQXNCLGlDQUFpQyxpQ0FBaUMsMk9BQTJPLHVDQUF1QywrQkFBK0Isa0NBQWtDLHNGQUFzRiw0QkFBNEIsOERBQThELG1DQUFtQyx3TEFBd0wsaUNBQWlDLDRCQUE0QixnQ0FBZ0MsNEJBQTRCLHdDQUF3Qyw4V0FBOFcsc0NBQXNDLHNOQUFzTix1Q0FBdUMsc0dBQXNHLGtDQUFrQyx3RUFBd0UsMkZBQTJGLG9DQUFvQywyRUFBMkUsdUZBQXVGLHVDQUF1QyxtQ0FBbUMsd0NBQXdDLHNDQUFzQyx3Q0FBd0Msa0RBQWtELDZDQUE2QyxnREFBZ0QsNENBQTRDLGlFQUFpRSx3Q0FBd0MscUVBQXFFLHlDQUF5QyxpRUFBaUUsMkNBQTJDLG1DQUFtQyx5Q0FBeUMsaUVBQWlFLDJDQUEyQyxtQ0FBbUMsb0NBQW9DLHVCQUF1QixrQ0FBa0Msa0JBQWtCLHFIQUFxSCxFQUFFLDBDQUEwQyxzRkFBc0YsSUFBSSxvRUFBb0UsMkNBQTJDLG1IQUFtSCxJQUFJLGtCQUFrQixrREFBa0QsbUJBQW1CLCtFQUErRSwrR0FBK0csMENBQTBDLCtFQUErRSw4RkFBOEYsd0NBQXdDLE1BQU0sMkNBQTJDLGlNQUFpTSwyQkFBMkIsNkJBQTZCLG1DQUFtQyxNQUFNLCtQQUErUCxJQUFJLDBCQUEwQixtQ0FBbUMsTUFBTSwyRUFBMkUsSUFBSSwwQkFBMEIsbUNBQW1DLE1BQU0sOEVBQThFLDZPQUE2TyxxQ0FBcUMsMkNBQTJDLG1IQUFtSCxNQUFNLDhGQUE4RixNQUFNLHdGQUF3Riw4REFBOEQscUNBQXFDLHVCQUF1QixrREFBa0QsMkNBQTJDLDJHQUEyRyxJQUFJLDBGQUEwRixnRUFBZ0UscUNBQXFDLHVCQUF1QixrREFBa0QsMkNBQTJDLG9CQUFvQix1RkFBdUYsSUFBSSx3RkFBd0YsZ0VBQWdFLHFDQUFxQyx1QkFBdUIsMEdBQTBHLHFNQUFxTSxxQ0FBcUMsdUJBQXVCLDBHQUEwRyxxTUFBcU0sa0NBQWtDLHNEQUFzRCxJQUFJLCtIQUErSCxpRUFBaUUsb0NBQW9DLGVBQWUsc0RBQXNELElBQUksK0hBQStILGtFQUFrRSxvQ0FBb0MsdUJBQXVCLDBHQUEwRyxxT0FBcU8sa0RBQWtELG9DQUFvQyxrREFBa0QsSUFBSSx5Q0FBeUMsMEJBQTBCLHFEQUFxRCw0SkFBNEosc0ZBQXNGLHVEQUF1RCw0RkFBNEYsSUFBSSx5RkFBeUYsR0FBRyxtS0FBbUssTUFBTSxNQUFNLGlDQUFpQyxZQUFZLFdBQVcsd0JBQXdCLHFDQUFxQyx3Q0FBd0MsWUFBWSxXQUFXLHdCQUF3QixrRUFBa0UsTUFBTSx1TUFBdU0sTUFBTSxvSUFBb0ksTUFBTSx5REFBeUQsTUFBTSx3Q0FBd0MsTUFBTSxjQUFjLGtMQUFrTCxNQUFNLG1EQUFtRCxNQUFNLHVEQUF1RCxNQUFNLHVEQUF1RCxNQUFNLHNEQUFzRCxNQUFNLHNDQUFzQyxNQUFNLHVEQUF1RCxNQUFNLHNEQUFzRCxNQUFNLHdEQUF3RCxNQUFNLHVDQUF1QyxNQUFNLDRCQUE0QixNQUFNLDRCQUE0QixtUEFBbVAsTUFBTSxnREFBZ0QsbUNBQW1DLFlBQVksV0FBVyx3QkFBd0IscUNBQXFDLDBDQUEwQyxZQUFZLFdBQVcsd0JBQXdCLGtFQUFrRSxNQUFNLGlNQUFpTSxNQUFNLHlEQUF5RCxNQUFNLHdDQUF3QyxNQUFNLGNBQWMseUtBQXlLLE1BQU0saUZBQWlGLE1BQU0sc0NBQXNDLE1BQU0sOEVBQThFLE1BQU0sdUNBQXVDLE1BQU0sK0JBQStCLE1BQU0sMlFBQTJRLE1BQU0sZ0RBQWdELDJDQUEyQyw2QkFBNkIsR0FBRyw2Q0FBNkMsOEJBQThCLEdBQUcsZ0NBQWdDLHNDQUFzQyxNQUFNLDRDQUE0QyxZQUFZLG9DQUFvQyxRQUFRLFdBQVcsd0JBQXdCLHNVQUFzVSx3Q0FBd0Msd0pBQXdKLHNEQUFzRCxJQUFJLG03QkFBbTdCLHNDQUFzQyxvQkFBb0IsMERBQTBELE1BQU0sNkVBQTZFLG9EQUFvRCxVQUFVLDZDQUE2QyxvQkFBb0IsNkVBQTZFLHFEQUFxRCxVQUFVLG1DQUFtQywya0JBQTJrQix3Q0FBd0MscUJBQXFCLFVBQVUsK0RBQStELE1BQU0sbUVBQW1FLE1BQU0sNkRBQTZELGFBQWEsMkNBQTJDLHlDQUF5Qyx1QkFBdUIsNk1BQTZNLG9DQUFvQyx3WEFBd1gsdUNBQXVDLG1mQUFtZixrQ0FBa0MsOEJBQThCLGlDQUFpQyw0Q0FBNEMsOENBQThDLDBLQUEwSywwQ0FBMEMsaUtBQWlLLDZDQUE2Qyw0RUFBNEUsdUNBQXVDLDZIQUE2SCw4QkFBOEIsdUJBQXVCLGlDQUFpQyw2S0FBNkssK0JBQStCLGlFQUFpRSxxQ0FBcUMsdUJBQXVCLGlDQUFpQyxzQkFBc0IsaUNBQWlDLGdMQUFnTCxrQ0FBa0MsOEJBQThCLDRDQUE0QyxtQ0FBbUMsNEJBQTRCLCtDQUErQyxxQkFBcUIsd0dBQXdHLGlDQUFpQyxxQkFBcUIsWUFBWSwyQkFBMkIsS0FBSyxvQkFBb0IsbURBQW1ELDBEQUEwRCxHQUFHLGVBQWUsaUJBQWlCLGlCQUFpQixhQUFhLCtDQUErQyxpQ0FBaUMsYUFBYSxnQ0FBZ0MsY0FBYyxnQkFBZ0IsZ0RBQWdELE9BQU8sZUFBZSxhQUFhLG1CQUFtQiw2RUFBNkUsRUFBRSxzQ0FBc0MsU0FBUyxFQUFFLHdEQUF3RCxjQUFjLDZCQUE2Qiw0Q0FBNEMsMEJBQTBCLG1DQUFtQywwQkFBMEIsdUNBQXVDLFlBQVksV0FBVyxpQ0FBaUMsR0FBRyxHQUFHLG9CQUFvQixvQ0FBb0MsbUVBQW1FLFNBQVMsa0JBQWtCLG9CQUFvQix1QkFBdUIsb0NBQW9DLGdCQUFnQiwrUEFBK1AsMnlEQUEyeUQsR0FBRyxrQkFBa0IsY0FBYyx5Q0FBeUMseUJBQXlCLDBMQUEwTCxrQ0FBa0MsZ0NBQWdDLDhCQUE4QiwrQkFBK0IsU0FBUyw2UEFBNlAsV0FBVyxhQUFhLElBQUksb0RBQW9ELHlCQUF5QixRQUFRLGFBQWEsMEVBQTBFLGtHQUFrRyxvQkFBb0IsNkZBQTZGLFlBQVkseUJBQXlCLEtBQUssb0NBQW9DLDRFQUE0RSxZQUFZLHFFQUFxRSw0QkFBNEIsOEVBQThFLGtCQUFrQix1Q0FBdUMsYUFBYSxFQUFFLDBDQUEwQyw0QkFBNEIsZ0NBQWdDLDBLQUEwSyx5Q0FBeUMscUJBQXFCLDBDQUEwQyx3Q0FBd0MseUNBQXlDLG1DQUFtQyx5REFBeUQsMkJBQTJCLGtCQUFrQixtQkFBbUIsbUJBQW1CLHdCQUF3Qix5Q0FBeUMsb0RBQW9ELHlDQUF5Qyx3R0FBd0csK0NBQStDLHFCQUFxQiw2Q0FBNkMseUNBQXlDLDZDQUE2QyxzRkFBc0YsbURBQW1ELHlCQUF5Qix5Q0FBeUMsMEJBQTBCLHlEQUF5RCwyQkFBMkIsa0JBQWtCLG1CQUFtQixtQkFBbUIsd0JBQXdCLHlDQUF5QywyQ0FBMkMseUNBQXlDLHNGQUFzRiwrQ0FBK0MscUJBQXFCLHlDQUF5Qyx5REFBeUQseUNBQXlDLGtEQUFrRCx5Q0FBeUMsa0RBQWtELCtDQUErQyxzQ0FBc0MseUNBQXlDLHVDQUF1Qyx5Q0FBeUMsZ0NBQWdDLHlDQUF5QyxnQ0FBZ0MsK0NBQStDLHNDQUFzQyx5Q0FBeUMscUJBQXFCLDBDQUEwQyx3Q0FBd0MsOEJBQThCLDRLQUE0SyxpQ0FBaUMsb0lBQW9JLElBQUksS0FBSyw0Q0FBNEMsc0JBQXNCLEtBQUssb0NBQW9DLGdDQUFnQyxNQUFNLHNDQUFzQyxnQ0FBZ0MsTUFBTSxzQ0FBc0MsZ0NBQWdDLE1BQU0sc0NBQXNDLGdDQUFnQyxPQUFPLE1BQU0sK0dBQStHLE1BQU0sYUFBYSw4QkFBOEIsNkRBQTZELGVBQWUsTUFBTSw2REFBNkQsbUJBQW1CLEtBQUssNERBQTRELE1BQU0sVUFBVSxVQUFVLHNCQUFzQixNQUFNLDBCQUEwQixNQUFNLDBCQUEwQixnQ0FBZ0MsSUFBSSxNQUFNLGtCQUFrQixNQUFNLDhEQUE4RCxrQkFBa0IsS0FBSywwREFBMEQsTUFBTSxvQ0FBb0MsTUFBTSx5QkFBeUIsTUFBTSx1QkFBdUIsMERBQTBELG1CQUFtQixNQUFNLE1BQU0sc0dBQXNHLE1BQU0saUJBQWlCLE1BQU0sc0JBQXNCLHlDQUF5QyxtQkFBbUIsTUFBTSxNQUFNLGtHQUFrRyxPQUFPLG9DQUFvQyxHQUFHLGVBQWUseUJBQXlCLGlCQUFpQixhQUFhLCtDQUErQyxpQ0FBaUMsYUFBYSxnQ0FBZ0MsY0FBYyxnQkFBZ0IsZ0RBQWdELE9BQU8sZUFBZSxhQUFhLG1CQUFtQiw2RUFBNkUsRUFBRSxzQ0FBc0MsU0FBUyxFQUFFLDZFQUE2RSxzQkFBc0IseUJBQXlCLDhGQUE4Riw0Q0FBNEMscWNBQXFjLDBQQUEwUCwwRkFBMEYsNkNBQTZDLHNFQUFzRSxtQkFBbUIsc0NBQXNDLGlEQUFpRCwwSkFBMEosbUNBQW1DLFdBQVcsc0RBQXNELGlDQUFpQyxFQUFFLG9DQUFvQyxXQUFXLGdFQUFnRSw4QkFBOEIsd0pBQXdKLDBDQUEwQyx1REFBdUQsK0JBQStCLCtCQUErQixrQkFBa0IsRUFBRSxnQ0FBZ0MsK0JBQStCLG1CQUFtQixFQUFFLGdEQUFnRCxrREFBa0QsbUNBQW1DLEVBQUUscUNBQXFDLCtCQUErQix3QkFBd0IsRUFBRSx5Q0FBeUMsK0JBQStCLDRCQUE0QixFQUFFLDhCQUE4QiwrQkFBK0IsaUJBQWlCLEVBQUUsdUNBQXVDLHVDQUF1QyxZQUFZLEVBQUUsc0NBQXNDLHVDQUF1Qyw0QkFBNEIsRUFBRSwwQ0FBMEMsd3NDQUF3c0MsaURBQWlELGdFQUFnRSxtREFBbUQsa0VBQWtFLEdBQUcsZUFBZSxhQUFhLGlCQUFpQixhQUFhLCtDQUErQyxpQ0FBaUMsYUFBYSxnQ0FBZ0MsY0FBYyxnQkFBZ0IsZ0RBQWdELE9BQU8sZUFBZSxhQUFhLG1CQUFtQiw2RUFBNkUsRUFBRSxzQ0FBc0MsU0FBUyxFQUFFLCtEQUErRCw0QkFBNEIsOENBQThDLCtHQUErRyxvRkFBb0YsNkNBQTZDLGdDQUFnQywyQkFBMkIsK0pBQStKLDRGQUE0Riw4QkFBOEIscUNBQXFDLDRDQUE0QyxZQUFZLEtBQUssK0hBQStILDJCQUEyQixLQUFLLDZCQUE2Qiw4QkFBOEIscUJBQXFCLDRCQUE0QixLQUFLLGdCQUFnQiw0RkFBNEYseUlBQXlJLDJDQUEyQyxpRUFBaUUsb0RBQW9ELFdBQVcsMmJBQTJiLG1FQUFtRSwyQ0FBMkMsV0FBVyxvRUFBb0UsNERBQTRELDBPQUEwTyxrRUFBa0UscUdBQXFHLEtBQUsscUJBQXFCLHFIQUFxSCw2REFBNkQsRUFBRSx5Q0FBeUMsdUxBQXVMLHlDQUF5QyxzRUFBc0Usd0NBQXdDLDZCQUE2Qiw0QkFBNEIsbUJBQW1CLHVGQUF1RixvREFBb0Qsc0VBQXNFLDhEQUE4RCxHQUFHLG9CQUFvQixvQkFBb0IsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxpQkFBaUIsYUFBYSxjQUFjLHdDQUF3QyxZQUFZLElBQUksS0FBSywwQ0FBMEMsK0JBQStCLElBQUksK0JBQStCLHVCQUF1QixvQkFBb0IsOEJBQThCLFlBQVksb0JBQW9CLGdCQUFnQix1QkFBdUIsNEJBQTRCLEdBQUcsR0FBRyxjQUFjLGlCQUFpQixhQUFhLCtDQUErQyxpQ0FBaUMsYUFBYSxnQ0FBZ0MsY0FBYyxnQkFBZ0IsZ0RBQWdELE9BQU8sZUFBZSxhQUFhLG1CQUFtQiw2RUFBNkUsRUFBRSxzQ0FBc0MsU0FBUyxFQUFFLG9FQUFvRSwrQkFBK0IsY0FBYywyRUFBMkUscUJBQXFCLGtCQUFrQixnQkFBZ0IseUJBQXlCLDRQQUE0UCxTQUFTLEdBQUcsZ0NBQWdDLGtIQUFrSCxrQ0FBa0MsdUdBQXVHLHlCQUF5Qiw2REFBNkQsNkNBQTZDLGtIQUFrSCxtQ0FBbUMseUJBQXlCLG9DQUFvQyx3QkFBd0IsK0JBQStCLG1DQUFtQyxrREFBa0QsK0JBQStCLGFBQWEsOEZBQThGLDZCQUE2QiwrREFBK0QsU0FBUyxtQ0FBbUMsa0JBQWtCLHdDQUF3QyxrREFBa0Qsd0NBQXdDLCtEQUErRCw4Q0FBOEMsZUFBZSxrRUFBa0Usc0xBQXNMLGdEQUFnRCw4RkFBOEYsNkNBQTZDLGlMQUFpTCw2Q0FBNkMsZ0pBQWdKLHdDQUF3Qyw2Q0FBNkMsa0NBQWtDLG9OQUFvTix3RkFBd0Ysa1ZBQWtWLHFHQUFxRyxpREFBaUQsa0VBQWtFLGdCQUFnQix3RUFBd0UsU0FBUyxPQUFPLHNEQUFzRCxtQ0FBbUMsT0FBTywrQkFBK0IsbUNBQW1DLDJDQUEyQyxXQUFXLHdMQUF3TCwyQkFBMkIsUUFBUSx3Q0FBd0MseUNBQXlDLDRGQUE0RixZQUFZLFlBQVksV0FBVyxLQUFLLGtCQUFrQixpQ0FBaUMsR0FBRyxrQkFBa0IscUJBQXFCLGtCQUFrQixnQkFBZ0IsMEJBQTBCLGlEQUFpRCxTQUFTLEdBQUcsa0JBQWtCLGtCQUFrQixpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLGlCQUFpQixhQUFhLG1CQUFtQix1Q0FBdUMsK0JBQStCLHVEQUF1RCxtQ0FBbUMsb0NBQW9DLEdBQUcsR0FBRyxrQkFBa0IsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxpQkFBaUIsY0FBYyw0QkFBNEIsK0RBQStELDJDQUEyQyxzQkFBc0Isd0dBQXdHLHFDQUFxQyxpQkFBaUIseUZBQXlGLGtDQUFrQyw2QkFBNkIsSUFBSSxZQUFZLHdDQUF3QyxFQUFFLDZCQUE2QixtQkFBbUIseUVBQXlFLG1DQUFtQyxtQkFBbUIsK0JBQStCLDZCQUE2QixpQkFBaUIsNkJBQTZCLCtCQUErQixtQkFBbUIsMkRBQTJELDJIQUEySCxLQUFLLHFCQUFxQiw0Q0FBNEMsa0NBQWtDLDRCQUE0QixvQkFBb0IsR0FBRyxHQUFHLFdBQVcsaUJBQWlCLGFBQWEsK0NBQStDLGlDQUFpQyxhQUFhLGdDQUFnQyxjQUFjLGdCQUFnQixnREFBZ0QsT0FBTyxlQUFlLGFBQWEsbUJBQW1CLDZFQUE2RSxFQUFFLHNDQUFzQyxTQUFTLEVBQUUsa0JBQWtCLHdCQUF3QixvREFBb0QsOERBQThELGlEQUFpRCxhQUFhLDhEQUE4RCxnQ0FBZ0MsbURBQW1ELDhCQUE4QiwwRUFBMEUsZ0RBQWdELDBGQUEwRiw2SUFBNkksd0NBQXdDLHFEQUFxRCw0QkFBNEIseUJBQXlCLEtBQUssZUFBZSwwQ0FBMEMsMkJBQTJCLHdCQUF3Qiw0REFBNEQsMENBQTBDLDBCQUEwQiw2SUFBNkksd0JBQXdCLCtDQUErQyw4SkFBOEosZ0RBQWdELDRDQUE0QyxHQUFHLHdCQUF3Qix5QkFBeUIsaUJBQWlCLGFBQWEsK0NBQStDLGlDQUFpQyxhQUFhLGdDQUFnQyxjQUFjLGdCQUFnQixnREFBZ0QsT0FBTyxlQUFlLGFBQWEsbUJBQW1CLDZFQUE2RSxFQUFFLHNDQUFzQyxTQUFTLEVBQUUsaUNBQWlDLDBCQUEwQixpREFBaUQsMkZBQTJGLG1EQUFtRCxxQkFBcUIsNkdBQTZHLEdBQUcsNkNBQTZDLDZDQUE2QyxvREFBb0QsOEJBQThCLHdKQUF3SiwrQkFBK0IsdUpBQXVKLGdDQUFnQyx1SkFBdUoseUNBQXlDLFdBQVcsaUpBQWlKLGNBQWMsbU1BQW1NLHFDQUFxQyxxRkFBcUYseUNBQXlDLDhJQUE4SSxpQ0FBaUMsNkRBQTZELHlHQUF5Ryx3REFBd0QsK0hBQStILHdZQUF3WSxrRkFBa0YsZ0JBQWdCLHFPQUFxTyxvQkFBb0IsZ1ZBQWdWLDBCQUEwQix5QkFBeUIscUNBQXFDLDZGQUE2RixtREFBbUQsRUFBRSw4Q0FBOEMsK0dBQStHLGdEQUFnRCxzTUFBc00sb0RBQW9ELGtIQUFrSCwrQ0FBK0MsOEhBQThILEdBQUcsb0JBQW9CLHNCQUFzQixpQkFBaUIsZ0JBQWdCLDBFQUEwRSxxREFBcUQsZUFBZSxzREFBc0QsK0JBQStCLGlDQUFpQyxtU0FBbVMsOENBQThDLFdBQVcsb0tBQW9LLDJDQUEyQyxJQUFJLDBDQUEwQyxXQUFXLGlJQUFpSSw4QkFBOEIsaURBQWlELHdFQUF3RSwrRUFBK0UsMkNBQTJDLDBDQUEwQyw4QkFBOEIsaURBQWlELGlFQUFpRSwrRkFBK0YsMkNBQTJDLEVBQUUsTUFBTSxJQUFJLDhCQUE4QiwyVEFBMlQsK0JBQStCLHVGQUF1RixHQUFHLEdBQUcsaUJBQWlCLGFBQWEsK0NBQStDLGlDQUFpQyxhQUFhLGdDQUFnQyxjQUFjLGdCQUFnQixnREFBZ0QsT0FBTyxlQUFlLGFBQWEsbUJBQW1CLDZFQUE2RSxFQUFFLHNDQUFzQyxTQUFTLEVBQUUseUNBQXlDLDBCQUEwQiwrQ0FBK0Msc0VBQXNFLHlCQUF5Qiw0QkFBNEIseUJBQXlCLElBQUksNkNBQTZDLG1EQUFtRCw4QkFBOEIseUJBQXlCLDBDQUEwQyxnQkFBZ0Isa0ZBQWtGLHNDQUFzQyxxSUFBcUksc0NBQXNDLHlRQUF5USxLQUFLLG1EQUFtRCxpQkFBaUIsT0FBTyw0Q0FBNEMseUNBQXlDLGNBQWMsc0NBQXNDLHlCQUF5QixHQUFHLG9CQUFvQixvQkFBb0IsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxnQ0FBZ0MsZ0JBQWdCLCtOQUErTix5QkFBeUIsd0RBQXdELGVBQWUsK0JBQStCLCtCQUErQixtREFBbUQsZUFBZSwrQkFBK0IsK0JBQStCLHFEQUFxRCxlQUFlLGlDQUFpQywrQkFBK0Isd0NBQXdDLHlDQUF5Qyx1Q0FBdUMsV0FBVywwWkFBMFosd0JBQXdCLHdCQUF3QixxQ0FBcUMsMkJBQTJCLGlDQUFpQyx5RUFBeUUsd0NBQXdDLHlCQUF5QiwyS0FBMkssWUFBWSx3QkFBd0IsNEJBQTRCLHNFQUFzRSxpRUFBaUUsc0ZBQXNGLGlEQUFpRCxvQkFBb0IsZ0RBQWdELE9BQU8scVBBQXFQLDBDQUEwQywrQ0FBK0Msa0NBQWtDLHNDQUFzQyxLQUFLLGlHQUFpRyxpQ0FBaUMsZ0NBQWdDLCtDQUErQyxZQUFZLDRCQUE0Qiw2RUFBNkUsU0FBUywyQ0FBMkMsd0ZBQXdGLHNEQUFzRCw2RkFBNkYsK0RBQStELDREQUE0RCx3QkFBd0IsOENBQThDLG9CQUFvQix3Q0FBd0Msd0RBQXdELCtFQUErRSw0REFBNEQsUUFBUSxxQkFBcUIsRUFBRSx3QkFBd0IsMENBQTBDLFdBQVcsMENBQTBDLHNMQUFzTCxxR0FBcUcsbUNBQW1DLHdCQUF3QixZQUFZLHlHQUF5RyxhQUFhLDhHQUE4RyxZQUFZLHlKQUF5SixhQUFhLG1EQUFtRCxJQUFJLHVEQUF1RCxPQUFPLHdEQUF3RCw0QkFBNEIsR0FBRyxjQUFjLGtDQUFrQyx1SkFBdUosY0FBYyxpQkFBaUIsYUFBYSwrQ0FBK0MsbUZBQW1GLDZGQUE2RiwwQkFBMEIsS0FBSyxvREFBb0QsOENBQThDLHFDQUFxQyxxQkFBcUIsV0FBVyxzQ0FBc0MsU0FBUyxFQUFFLDRIQUE0SCw0QkFBNEIsV0FBVyxrYkFBa2IseUJBQXlCLG1DQUFtQyx1QkFBdUIsMENBQTBDLG1DQUFtQyx5RUFBeUUsb0JBQW9CLDJEQUEyRCw4QkFBOEIsa0dBQWtHLGtFQUFrRSxlQUFlLHlDQUF5QywrQkFBK0IsdURBQXVELGVBQWUsbUNBQW1DLCtCQUErQix5REFBeUQsZUFBZSxxQ0FBcUMsK0JBQStCLGlDQUFpQyxpQ0FBaUMsOEJBQThCLHNCQUFzQixnQ0FBZ0MsdUNBQXVDLCtCQUErQixpQkFBaUIscURBQXFELGVBQWUsdUNBQXVDLCtCQUErQixvREFBb0QsZUFBZSxxQ0FBcUMsK0JBQStCLG9EQUFvRCxlQUFlLHNFQUFzRSw0Q0FBNEMsK0JBQStCLHFEQUFxRCxlQUFlLHNFQUFzRSxtQkFBbUIsc0NBQXNDLGtDQUFrQyx3QkFBd0IsZUFBZSxRQUFRLEtBQUssb0RBQW9ELFdBQVcsS0FBSyw4QkFBOEIsc0RBQXNELGFBQWEsVUFBVSxLQUFLLHFCQUFxQixzQ0FBc0MsdUNBQXVDLGdCQUFnQixvRUFBb0Usd0NBQXdDLHlCQUF5Qix3QkFBd0IsZ0NBQWdDLCtCQUErQix3Q0FBd0MsNEdBQTRHLGlDQUFpQyxXQUFXLG1HQUFtRyxvQkFBb0Isb0dBQW9HLGlDQUFpQywrREFBK0QsdUhBQXVILEVBQUUsNENBQTRDLHNHQUFzRyxxREFBcUQsbURBQW1ELG9KQUFvSiw0Q0FBNEMsb0NBQW9DLCtFQUErRSxrQ0FBa0MsK0VBQStFLHVDQUF1QywwT0FBME8saUNBQWlDLHNDQUFzQywrQ0FBK0MsK0dBQStHLG1FQUFtRSxvREFBb0Qsd0tBQXdLLHNHQUFzRyw4Q0FBOEMsK0ZBQStGLHFDQUFxQywwRkFBMEYsbUJBQW1CLHdDQUF3QyxvQkFBb0IsK1BBQStQLCtDQUErQyxXQUFXLDZRQUE2USx1QkFBdUIsS0FBSyxrREFBa0QseVNBQXlTLDZDQUE2QyxxRkFBcUYsd0NBQXdDLHFOQUFxTixnQ0FBZ0MsMEVBQTBFLDZIQUE2SCx3Q0FBd0Msb0NBQW9DLDBEQUEwRCx3Q0FBd0Msb0NBQW9DLDBEQUEwRCw0Q0FBNEMsd0ZBQXdGLHNDQUFzQyw0REFBNEQsOEZBQThGLG9GQUFvRiw0ZEFBNGQsaUNBQWlDLCtDQUErQywrQ0FBK0MsOEVBQThFLDRGQUE0Rix1QkFBdUIsb0NBQW9DLGlGQUFpRiw2Q0FBNkMsaUNBQWlDLDhUQUE4VCxvQ0FBb0MsMkNBQTJDLHlFQUF5RSxrRkFBa0YseUdBQXlHLG9DQUFvQyxzSEFBc0gsMkNBQTJDLHVEQUF1RCwyQ0FBMkMsV0FBVyxrSUFBa0ksb0JBQW9CLEVBQUUsK0RBQStELG1CQUFtQixRQUFRLEtBQUsscURBQXFELDBEQUEwRCxTQUFTLDBDQUEwQyxpSkFBaUosMENBQTBDLDRFQUE0RSxxREFBcUQsTUFBTSwwSEFBMEgsc0JBQXNCLEtBQUsseUJBQXlCLEtBQUssS0FBSyxnQ0FBZ0MsS0FBSyxLQUFLLGtCQUFrQiwwREFBMEQsNEJBQTRCLHlCQUF5QixxRUFBcUUsRUFBRSwrQkFBK0IsdUNBQXVDLHFFQUFxRSxLQUFLLHFGQUFxRixFQUFFLCtCQUErQix1Q0FBdUMsc0VBQXNFLElBQUksK0RBQStELGdDQUFnQyxxQ0FBcUMsMEJBQTBCLG9FQUFvRSxvRUFBb0UsTUFBTSx1Q0FBdUMsWUFBWSx1RkFBdUYsMEJBQTBCLDJDQUEyQywyQ0FBMkMsa0JBQWtCLE9BQU8scUJBQXFCLHlDQUF5QywyQkFBMkIsTUFBTSxLQUFLLFVBQVUsMENBQTBDLHFGQUFxRix5Q0FBeUMsNEJBQTRCLE1BQU0sZUFBZSxVQUFVLHVDQUF1QyxrREFBa0QsMENBQTBDLHdDQUF3QyxnR0FBZ0csOENBQThDLDZGQUE2Rix1Q0FBdUMsMkRBQTJELHFJQUFxSSx3SEFBd0gsR0FBRyxxQkFBcUIsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxpQkFBaUIsY0FBYyw0RUFBNEUsNkNBQTZDLDBHQUEwRywwREFBMEQsZUFBZSxvSkFBb0osK0JBQStCLHlEQUF5RCxlQUFlLHVIQUF1SCx3QkFBd0IsMERBQTBELHVEQUF1RCx3SkFBd0osME1BQTBNLCtCQUErQixvREFBb0QsOENBQThDLHFEQUFxRCxnQ0FBZ0MseVBBQXlQLEdBQUcsR0FBRyxtQkFBbUIsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxZQUFZLG9CQUFvQiwwQkFBMEIsdUNBQXVDLHNDQUFzQyxnQkFBZ0IsS0FBSyxvREFBb0Qsb0JBQW9CLFNBQVMscUJBQXFCLGdCQUFnQixxREFBcUQsa0JBQWtCLGdEQUFnRCxTQUFTLHdCQUF3QixNQUFNLHFFQUFxRSxnQkFBZ0IsbUJBQW1CLHdCQUF3QixxQkFBcUIsYUFBYSx5S0FBeUssd0RBQXdELGdCQUFnQixnQkFBZ0Isb0JBQW9CLGdCQUFnQixnQkFBZ0IsaUJBQWlCLElBQUksU0FBUyxTQUFTLHVDQUF1Qyw4QkFBOEIsb0RBQW9ELHFCQUFxQiwrQkFBK0Isb0NBQW9DLGtDQUFrQyxpREFBaUQsK0NBQStDLE1BQU0saUNBQWlDLHlCQUF5Qiw2Q0FBNkMsZUFBZSxpQkFBaUIsYUFBYSwrQ0FBK0MsbUZBQW1GLDZGQUE2RiwwQkFBMEIsS0FBSyxvREFBb0QsOENBQThDLHFDQUFxQyxxQkFBcUIsV0FBVyxzQ0FBc0MsU0FBUyxFQUFFLHdCQUF3QixjQUFjLHVCQUF1QiwrQ0FBK0MsZUFBZSxxQkFBcUIscURBQXFELDJIQUEySCxzQkFBc0IsdUJBQXVCLCtCQUErQix1Q0FBdUMscUJBQXFCLE1BQU0sNkJBQTZCLHNIQUFzSCwrQ0FBK0MsR0FBRyw4Q0FBOEMsNERBQTRELElBQUkseUJBQXlCLGdCQUFnQix5Q0FBeUMsdUJBQXVCLGlDQUFpQyxHQUFHLGlCQUFpQixpQkFBaUIsYUFBYSwrQ0FBK0MsaUNBQWlDLGFBQWEsZ0NBQWdDLGNBQWMsZ0JBQWdCLGdEQUFnRCxPQUFPLGVBQWUsYUFBYSxtQkFBbUIsNkVBQTZFLDZDQUE2QyxtRkFBbUYsNkZBQTZGLDBCQUEwQixLQUFLLG9EQUFvRCw4Q0FBOEMscUNBQXFDLHFCQUFxQixXQUFXLHNDQUFzQyxTQUFTLEVBQUUsOENBQThDLHNCQUFzQix5QkFBeUIsMlFBQTJRLHlCQUF5QixvQ0FBb0MseUJBQXlCLG1DQUFtQywwQkFBMEIsOEJBQThCLHFCQUFxQixHQUFHLDZDQUE2QyxrREFBa0QsNkJBQTZCLDZEQUE2RCxvQ0FBb0MsMkJBQTJCLHlDQUF5QyxZQUFZLHFCQUFxQixLQUFLLHFCQUFxQiw2TEFBNkwsNENBQTRDLGtDQUFrQyxzUEFBc1Asb0NBQW9DLCtQQUErUCxzQ0FBc0MsbUlBQW1JLGtDQUFrQyxzQ0FBc0Msd1FBQXdRLHVCQUF1QixRQUFRLG9DQUFvQyw0QkFBNEIsK0JBQStCLDJDQUEyQyxzQ0FBc0MsaUZBQWlGLCtCQUErQiw2RUFBNkUsdUNBQXVDLHlJQUF5SSxrQ0FBa0MsNERBQTRELDBHQUEwRyw0Q0FBNEMsMkNBQTJDLG9CQUFvQiwwQ0FBMEMsNEdBQTRHLCtCQUErQixxQkFBcUIsS0FBSyxxQkFBcUIsZ0JBQWdCLHNDQUFzQyxzRUFBc0UsOEVBQThFLGVBQWUscUJBQXFCLGlCQUFpQixhQUFhLCtDQUErQyxpQ0FBaUMsYUFBYSxnQ0FBZ0MsY0FBYyxnQkFBZ0IsZ0RBQWdELE9BQU8sZUFBZSxhQUFhLG1CQUFtQiw2RUFBNkUsRUFBRSxzQ0FBc0MsU0FBUyxFQUFFLGdFQUFnRSxnQkFBZ0IseUJBQXlCLG9WQUFvVixZQUFZLG1CQUFtQixzR0FBc0csK0NBQStDLCtCQUErQiw0Q0FBNEMsK0JBQStCLCtxQkFBK3FCLDJCQUEyQiwrQ0FBK0MscUNBQXFDLDhDQUE4Qyx3QkFBd0IsaURBQWlELG9CQUFvQixnREFBZ0QsdUJBQXVCLGdEQUFnRCxtQkFBbUIsNENBQTRDLHVCQUF1Qiw0Q0FBNEMsNEJBQTRCLDZEQUE2RCxrQ0FBa0MseUhBQXlILGtDQUFrQyxtRUFBbUUsa0NBQWtDLEtBQUssNkNBQTZDLDBIQUEwSCw0Q0FBNEMsdUVBQXVFLDZHQUE2RyxRQUFRLHFSQUFxUiwwQ0FBMEMsc0ZBQXNGLEtBQUssc0NBQXNDLDREQUE0RCw4VUFBOFUsbUNBQW1DLDZHQUE2Ryw2Q0FBNkMsc0JBQXNCLGtIQUFrSCxLQUFLLDJCQUEyQix5REFBeUQsd0lBQXdJLHFEQUFxRCxvQ0FBb0MsdUZBQXVGLGdDQUFnQyxZQUFZLElBQUksc0JBQXNCLGlDQUFpQyxXQUFXLGlDQUFpQyw4RkFBOEYsOEJBQThCLDBQQUEwUCxvREFBb0QsS0FBSyx5Q0FBeUMsNEpBQTRKLGdDQUFnQyxxREFBcUQsd0NBQXdDLDJEQUEyRCx1Q0FBdUMsZ0VBQWdFLEtBQUssS0FBSyxvR0FBb0csb0NBQW9DLHNGQUFzRiwyQkFBMkIsK0NBQStDLG9EQUFvRCxvRkFBb0YsWUFBWSxzQkFBc0Isc0RBQXNELCtDQUErQyxvRUFBb0UsNENBQTRDLGlIQUFpSCxHQUFHLGVBQWUseUJBQXlCLGlCQUFpQixhQUFhLCtDQUErQyxpQ0FBaUMsYUFBYSxnQ0FBZ0MsY0FBYyxnQkFBZ0IsZ0RBQWdELE9BQU8sZUFBZSxhQUFhLG1CQUFtQiw2RUFBNkUsRUFBRSxzQ0FBc0MsU0FBUyxFQUFFLDZHQUE2RyxvQkFBb0IseUJBQXlCLHdmQUF3ZiwwUEFBMFAsb1VBQW9VLHlCQUF5QixnREFBZ0QseUJBQXlCLElBQUksNkNBQTZDLHVXQUF1VywwQ0FBMEMsV0FBVyxtaENBQW1oQyw4S0FBOEssc0tBQXNLLDRDQUE0Qyx1QkFBdUIsY0FBYyxxQkFBcUIsOENBQThDLEVBQUUsa1JBQWtSLG1DQUFtQyxpQ0FBaUMsbUNBQW1DLFdBQVcscUpBQXFKLHVDQUF1Qyx3Q0FBd0MsbURBQW1ELG9EQUFvRCxtREFBbUQsRUFBRSx5REFBeUQscURBQXFELGtEQUFrRCx5REFBeUQsb0RBQW9ELHFCQUFxQixtQ0FBbUMsTUFBTSxtQkFBbUIsR0FBRyw4QkFBOEIsS0FBSyxnREFBZ0QsMkNBQTJDLEVBQUUsTUFBTSxzREFBc0QscUNBQXFDLEdBQUcsNEVBQTRFLGdEQUFnRCx1QkFBdUIsaUlBQWlJLG1EQUFtRCwySEFBMkgsOENBQThDLGtHQUFrRywrQ0FBK0MsMkNBQTJDLGdHQUFnRyx3REFBd0Qsc0dBQXNHLHlEQUF5RCxzQ0FBc0Msb0JBQW9CLFFBQVEsU0FBUyxZQUFZLHVCQUF1Qix1Q0FBdUMsb0JBQW9CLG1EQUFtRCwwQ0FBMEMsMENBQTBDLGtCQUFrQixFQUFFLHlDQUF5Qyw2QkFBNkIsRUFBRSxFQUFFLHNFQUFzRSx3Q0FBd0MsRUFBRSxtRUFBbUUsbURBQW1ELEVBQUUsc0NBQXNDLGlEQUFpRCx5QkFBeUIsK0NBQStDLG1DQUFtQyxLQUFLLEtBQUssb0NBQW9DLDREQUE0RCxLQUFLLDJCQUEyQix5REFBeUQsb0NBQW9DLHVEQUF1RCwwQ0FBMEMseUJBQXlCLCtCQUErQixtREFBbUQsZ0NBQWdDLGdEQUFnRCxnREFBZ0QsS0FBSyx5Q0FBeUMsNEVBQTRFLFNBQVMsOEhBQThILG1DQUFtQyx3Q0FBd0Msb0VBQW9FLEtBQUssb0RBQW9ELG1EQUFtRCxZQUFZLG1GQUFtRixxQ0FBcUMsb0RBQW9ELDBDQUEwQyx1REFBdUQsa0JBQWtCLG9DQUFvQyxpT0FBaU8sc0NBQXNDLHlDQUF5QywyRkFBMkYsOEJBQThCLHNDQUFzQyxzQkFBc0IsRUFBRSxzQ0FBc0Msd0hBQXdILEtBQUssS0FBSywyQkFBMkIsZUFBZSx1RUFBdUUsaUdBQWlHLHdEQUF3RCxlQUFlLGdDQUFnQywrQkFBK0Isa0RBQWtELFNBQVMsbURBQW1ELFNBQVMsc0NBQXNDLHNEQUFzRCxzQ0FBc0Msc0RBQXNELHFEQUFxRCxLQUFLLGFBQWEsRUFBRSwyQkFBMkIsYUFBYSxvQkFBb0Isb0VBQW9FLEdBQUcsZUFBZSxnQkFBZ0IsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxnQ0FBZ0MsZ1ZBQWdWLGlCQUFpQixnQkFBZ0Isc0VBQXNFLHFEQUFxRCwrRUFBK0UsS0FBSyw0RUFBNEUsTUFBTSxNQUFNLFFBQVEsSUFBSSxLQUFLLDZCQUE2QixnQ0FBZ0MsVUFBVSwyQ0FBMkMsNkhBQTZILG9EQUFvRCxNQUFNLGdFQUFnRSxNQUFNLG9EQUFvRCx3U0FBd1MsaUNBQWlDLDZCQUE2QixrQ0FBa0MsMEdBQTBHLDRCQUE0QixzQ0FBc0Msa0NBQWtDLCtJQUErSSw4REFBOEQsNkJBQTZCLDhCQUE4QiwwR0FBMEcsNEJBQTRCLGtLQUFrSyxrQkFBa0IsU0FBUyxHQUFHLEdBQUcsMEJBQTBCLGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLEVBQUUsZUFBZSx5SUFBeUksc0dBQXNHLDZCQUE2QixrQkFBa0IsMENBQTBDLE9BQU8sNEJBQTRCLG1FQUFtRSxrQkFBa0IsaVJBQWlSLE1BQU0sc0JBQXNCLGNBQWMsTUFBTSxhQUFhLHdCQUF3QixNQUFNLGVBQWUsTUFBTSxzQkFBc0Isb0JBQW9CLE1BQU0sMEJBQTBCLE1BQU0sa0NBQWtDLE1BQU0sbUNBQW1DLE1BQU0sOEJBQThCLGlDQUFpQyx3Q0FBd0MsMENBQTBDLE1BQU0sOEJBQThCLGlDQUFpQyx3Q0FBd0MsMENBQTBDLE1BQU0sOEJBQThCLGlDQUFpQyx5QkFBeUIsMENBQTBDLE1BQU0sOEJBQThCLGlDQUFpQyx5QkFBeUIsMENBQTBDLE1BQU0sc0RBQXNELE1BQU0sNkJBQTZCLDJCQUEyQixNQUFNLDZCQUE2QiwwQ0FBMEMsTUFBTSw2QkFBNkIsMENBQTBDLE1BQU0saURBQWlELE1BQU0saURBQWlELE1BQU0sOEJBQThCLDBCQUEwQixNQUFNLDhCQUE4QiwwQkFBMEIsTUFBTSw4QkFBOEIsMEJBQTBCLE1BQU0sOEJBQThCLDBCQUEwQixNQUFNLCtCQUErQiw0QkFBNEIsTUFBTSwrQkFBK0IsNEJBQTRCLE1BQU0sK0JBQStCLDRCQUE0QixNQUFNLCtCQUErQiw0QkFBNEIsTUFBTSwrQkFBK0IsNEJBQTRCLE1BQU0sK0JBQStCLDRCQUE0QixNQUFNLCtCQUErQiw0QkFBNEIsTUFBTSwrQkFBK0IsNEJBQTRCLE1BQU0sMFJBQTBSLEtBQUssMENBQTBDLHNCQUFzQixzQ0FBc0MsMENBQTBDLHVDQUF1Qyx5WEFBeVgsVUFBVSxpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLFdBQVcsK0JBQStCLCtCQUErQixvRUFBb0UseUpBQXlKLEdBQUcsaUJBQWlCLGFBQWEsK0NBQStDLGlDQUFpQyxhQUFhLGdDQUFnQyxjQUFjLGdCQUFnQixnREFBZ0QsT0FBTyxlQUFlLGFBQWEsbUJBQW1CLDZFQUE2RSw2Q0FBNkMsbUZBQW1GLDZGQUE2RiwwQkFBMEIsS0FBSyxvREFBb0QsOENBQThDLHFDQUFxQyxxQkFBcUIsV0FBVyxzQ0FBc0MsU0FBUyxFQUFFLHFFQUFxRSxzQkFBc0IseUJBQXlCLHVVQUF1VSwwQkFBMEIsdUhBQXVILG9DQUFvQyx5RUFBeUUsc0NBQXNDLDRDQUE0Qyw2QkFBNkIsb0VBQW9FLG9DQUFvQyxvQ0FBb0MsMkNBQTJDLDhDQUE4QyxFQUFFLFlBQVksRUFBRSx5QkFBeUIsbUJBQW1CLHVCQUF1QixFQUFFLFNBQVMsc0VBQXNFLGVBQWUsc0NBQXNDLCtCQUErQixnREFBZ0QsZUFBZSw0QkFBNEIsK0JBQStCLHdEQUF3RCxlQUFlLG9DQUFvQywrQkFBK0Isa0RBQWtELGVBQWUsaUNBQWlDLCtCQUErQixnREFBZ0QsaUpBQWlKLHVDQUF1QywyRkFBMkYsdUNBQXVDLG9EQUFvRCxjQUFjLEVBQUUsa0NBQWtDLDRDQUE0QyxzQ0FBc0MsNkRBQTZELDRDQUE0QyxpTEFBaUwsZ0NBQWdDLHlCQUF5QixxQ0FBcUMsK0VBQStFLHFDQUFxQyw4RUFBOEUsbUNBQW1DLGdEQUFnRCxpREFBaUQsK0VBQStFLG9DQUFvQyxpREFBaUQsMENBQTBDLG1DQUFtQywrQkFBK0Isd0JBQXdCLGdDQUFnQyx5QkFBeUIsZ0RBQWdELHlDQUF5QyxxQ0FBcUMsOEJBQThCLDhCQUE4Qix1QkFBdUIsaURBQWlELGlEQUFpRCxtREFBbUQsbURBQW1ELHlEQUF5RCxlQUFlLGtCQUFrQixpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLDJCQUEyQixxQ0FBcUMsa2NBQWtjLG9hQUFvYSx5S0FBeUssS0FBSyxFQUFFLG1DQUFtQyxjQUFjLFdBQVcsbUhBQW1ILG1CQUFtQixXQUFXLGdCQUFnQixFQUFFLDJEQUEyRCxlQUFlLGtDQUFrQywrQkFBK0Isc0NBQXNDLDJFQUEyRSwwRkFBMEYsb0lBQW9JLHNEQUFzRCxVQUFVLDJJQUEySSxNQUFNLGtHQUFrRyxNQUFNLHdHQUF3RyxTQUFTLG1DQUFtQywyRUFBMkUsdUJBQXVCLEdBQUcsR0FBRyxtQkFBbUIsaUJBQWlCLGFBQWEsK0NBQStDLG1GQUFtRiw2RkFBNkYsMEJBQTBCLEtBQUssb0RBQW9ELDhDQUE4QyxxQ0FBcUMscUJBQXFCLFdBQVcsc0NBQXNDLFNBQVMsRUFBRSwrQkFBK0Isa0JBQWtCLHVMQUF1TCx5REFBeUQsZUFBZSxtQ0FBbUMsK0JBQStCLHdEQUF3RCxlQUFlLG9DQUFvQywrQkFBK0IsaUNBQWlDLHNDQUFzQyxzSEFBc0gsaUNBQWlDLEdBQUcsb0JBQW9CLGlCQUFpQixrQkFBa0IsNEVBQTRFLGlCQUFpQiwrUUFBK1Esc0NBQXNDLDZKQUE2SixtREFBbUQsb0hBQW9ILEdBQUcsR0FBRyxpQkFBaUIsYUFBYSwrQ0FBK0MsbUZBQW1GLDZGQUE2RiwwQkFBMEIsS0FBSyxvREFBb0QsOENBQThDLHFDQUFxQyxxQkFBcUIsV0FBVyxzQ0FBc0MsU0FBUyxFQUFFLG1CQUFtQixrQ0FBa0MsaUJBQWlCLGNBQWMsZ0tBQWdLLG1EQUFtRCxlQUFlLDJCQUEyQiwrQkFBK0IsbUNBQW1DLHdCQUF3Qiw4QkFBOEIsd0RBQXdELGlDQUFpQyxHQUFHLGtCQUFrQixpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLGdDQUFnQyxnQkFBZ0IsMk9BQTJPLDZEQUE2RCxlQUFlLG9DQUFvQywrQkFBK0IsMkNBQTJDLGVBQWUsaUJBQWlCLCtCQUErQiw4Q0FBOEMsZUFBZSwwQkFBMEIsK0JBQStCLDhDQUE4QyxlQUFlLG9CQUFvQiwrQkFBK0IsOENBQThDLHlLQUF5SyxtREFBbUQsR0FBRywyQ0FBMkMsK0tBQStLLG1EQUFtRCxHQUFHLGtDQUFrQywrQ0FBK0MsdUNBQXVDLHlEQUF5RCxHQUFHLEdBQUcsY0FBYyxpQkFBaUIsYUFBYSxzQ0FBc0MsU0FBUyxFQUFFLDBEQUEwRCw2QkFBNkIsaUJBQWlCLGtCQUFrQiw4cEJBQThwQiwyQ0FBMkMsa0hBQWtILDJDQUEyQyxnSkFBZ0osd0NBQXdDLHdFQUF3RSxvREFBb0QsZUFBZSw0REFBNEQsK0JBQStCLDBEQUEwRCxlQUFlLG1DQUFtQywwQkFBMEIsK0JBQStCLGtEQUFrRCxpQ0FBaUMsZ0RBQWdELCtDQUErQywwQ0FBMEMsMEJBQTBCLG9DQUFvQyxxQkFBcUIsSUFBSSx3Q0FBd0MsOEJBQThCLHlMQUF5TCxrQ0FBa0MsOEVBQThFLHlFQUF5RSw0QkFBNEIsb0JBQW9CLGtDQUFrQyxRQUFRLHFDQUFxQyxJQUFJLGtMQUFrTCxzQkFBc0IsSUFBSSx5SEFBeUgsMkJBQTJCLDBCQUEwQixvS0FBb0ssOEhBQThILHlGQUF5RixvQkFBb0Isa0NBQWtDLDBCQUEwQix1REFBdUQsZUFBZSxzRUFBc0UsK0JBQStCLG9DQUFvQyxnRkFBZ0YseUNBQXlDLHNIQUFzSCxlQUFlLGtEQUFrRCx3R0FBd0cseURBQXlELG9EQUFvRCxPQUFPLHNKQUFzSixzQ0FBc0MsMENBQTBDLCtFQUErRSxLQUFLLEtBQUssd0JBQXdCLGlEQUFpRCxjQUFjLGlCQUFpQixvQ0FBb0Msd0JBQXdCLDBCQUEwQix1SEFBdUgsOElBQThJLGlCQUFpQixJQUFJLEtBQUssZ0RBQWdELFVBQVUscUJBQXFCLDhCQUE4QixpQ0FBaUMsd0JBQXdCLGtCQUFrQiwyQkFBMkIsS0FBSyxFQUFFLG9CQUFvQiw0RUFBNEUsSUFBSSxvQkFBb0IsaURBQWlELFFBQVEsV0FBVyxpQ0FBaUMsY0FBYyxPQUFPLHlNQUF5TSxxREFBcUQsZUFBZSxjQUFjLFFBQVEsb0JBQW9CLDhCQUE4Qix5Q0FBeUMscUVBQXFFLFFBQVEsNkNBQTZDLEtBQUssdUJBQXVCLDhCQUE4QixLQUFLLHNDQUFzQyxZQUFZLG1DQUFtQyxnQ0FBZ0MsOEJBQThCLFFBQVEsaUJBQWlCLEtBQUssdUVBQXVFLDJDQUEyQyx1Q0FBdUMsc0RBQXNELHVCQUF1QixFQUFFLEVBQUUsd0JBQXdCLG9CQUFvQiw4Q0FBOEMsSUFBSSwwR0FBMEcsSUFBSSxZQUFZLDJEQUEyRCxrQkFBa0Isd0JBQXdCLHVDQUF1QyxnREFBZ0QsZ0JBQWdCLGlDQUFpQyxLQUFLLEtBQUsscURBQXFELEtBQUssT0FBTyxnQkFBZ0IsdUNBQXVDLDREQUE0RCxNQUFNLGFBQWEsNkRBQTZELGtDQUFrQyx3QkFBd0IscUJBQXFCLEVBQUUsMENBQTBDLGtDQUFrQyx3QkFBd0IsOEJBQThCLEVBQUUsMENBQTBDLG1DQUFtQyw2QkFBNkIscUVBQXFFLGdDQUFnQyw4Q0FBOEMsb0NBQW9DLDhDQUE4Qyx5RkFBeUYscUNBQXFDLDBCQUEwQixLQUFLLHVDQUF1QywrQ0FBK0MsMENBQTBDLDZCQUE2QixHQUFHLEdBQUcsV0FBVyxpQkFBaUIsd0JBQXdCLGlXQUFpVyxzQ0FBc0Msb0NBQW9DLDZCQUE2Qix5REFBeUQsOFBBQThQLHVCQUF1QixVQUFVLG1FQUFtRSwrQkFBK0IsbUJBQW1CLEdBQUcsR0FBRyx5QkFBeUIsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSx3QkFBd0IsY0FBYyxpTkFBaU4scURBQXFELGVBQWUsa0NBQWtDLCtCQUErQixnREFBZ0QsZUFBZSxrQ0FBa0MsK0JBQStCLDhDQUE4QyxlQUFlLGdDQUFnQywrQkFBK0IsaURBQWlELGVBQWUsdUJBQXVCLGlCQUFpQix3QkFBd0IsMkJBQTJCLDBCQUEwQiw4Q0FBOEMsb0RBQW9ELCtCQUErQiw4Q0FBOEMsZUFBZSxvQkFBb0IsaUJBQWlCLHlDQUF5QyxJQUFJLDBCQUEwQixlQUFlLCtCQUErQiw4QkFBOEIsNENBQTRDLCtCQUErQix1Q0FBdUMsOEJBQThCLGlMQUFpTCxnQ0FBZ0MsOEZBQThGLHdJQUF3SSw2Q0FBNkMsZUFBZSxzQ0FBc0MsK0JBQStCLDZCQUE2QiwyREFBMkQsa0NBQWtDLGlCQUFpQixtQkFBbUIsd0JBQXdCLE1BQU0sWUFBWSxpQkFBaUIsZ0ZBQWdGLGdCQUFnQixxQkFBcUIsS0FBSyx1RkFBdUYsUUFBUSxXQUFXLGdEQUFnRCwwQ0FBMEMsNENBQTRDLDRFQUE0RSw0QkFBNEIsbUNBQW1DLGdHQUFnRywyQ0FBMkMsWUFBWSx1RUFBdUUseUVBQXlFLFFBQVEsY0FBYyxLQUFLLGtDQUFrQyx5QkFBeUIsMkJBQTJCLDZCQUE2Qiw4REFBOEQsYUFBYSxJQUFJLG1DQUFtQyx5Q0FBeUMsMkNBQTJDLEdBQUcsR0FBRyxpQkFBaUIsaUJBQWlCLGFBQWEsa0JBQWtCLGlEQUFpRCw2RUFBNkUsa0JBQWtCLHNDQUFzQyxTQUFTLHFEQUFxRCxpQkFBaUIsYUFBYSxLQUFLLHFCQUFxQixnQkFBZ0IscUJBQXFCLHdCQUF3Qix3QkFBd0IsMkJBQTJCLEtBQUssK0JBQStCLFdBQVcsRUFBRSwyQ0FBMkMsc0xBQXNMLHlCQUF5Qix5QkFBeUIsd0NBQXdDLFFBQVEsc0RBQXNELFNBQVMsNkNBQTZDLGdDQUFnQyxXQUFXLGNBQWMsYUFBYSx3QkFBd0IsbUJBQW1CLHVCQUF1QixlQUFlLE9BQU8seUJBQXlCLDRDQUE0QyxpQkFBaUIsV0FBVyx3QkFBd0IsUUFBUSxXQUFXLGtCQUFrQixrQkFBa0Isa0RBQWtELG1DQUFtQyxnQkFBZ0IsdUJBQXVCLFdBQVcsY0FBYyxJQUFJLEVBQUUsVUFBVSxZQUFZLE1BQU0sS0FBSyxlQUFlLGdCQUFnQiw2QkFBNkIsT0FBTyxjQUFjLGVBQWUsU0FBUyxpQ0FBaUMsaUJBQWlCLGFBQWEsK0NBQStDLGlDQUFpQyxhQUFhLGdDQUFnQyxjQUFjLGdCQUFnQixnREFBZ0QsT0FBTyxlQUFlLGFBQWEsbUJBQW1CLDZFQUE2RSxFQUFFLHNDQUFzQyxTQUFTLEVBQUUseUJBQXlCLGNBQWMseUJBQXlCLG9GQUFvRixzREFBc0QsZUFBZSxnQkFBZ0IsK0JBQStCLGlEQUFpRCxlQUFlLDZCQUE2QiwrQkFBK0IsaUNBQWlDLDZEQUE2RCxlQUFlLGtCQUFrQixXQUFXLGlCQUFpQixhQUFhLCtDQUErQyxtRkFBbUYsNkZBQTZGLDBCQUEwQixLQUFLLG9EQUFvRCw4Q0FBOEMscUNBQXFDLHFCQUFxQixXQUFXLHNDQUFzQyxTQUFTLEVBQUUsZ0NBQWdDLGdCQUFnQiw4Q0FBOEMsaURBQWlELGdLQUFnSyxnREFBZ0QsOEJBQThCLDZCQUE2Qix3REFBd0QsR0FBRyxpQkFBaUIsaUJBQWlCLGFBQWEsK0NBQStDLG1GQUFtRiw2RkFBNkYsMEJBQTBCLEtBQUssb0RBQW9ELDhDQUE4QyxxQ0FBcUMscUJBQXFCLFdBQVcsc0NBQXNDLFNBQVMsRUFBRSwyQ0FBMkMseUJBQXlCLGVBQWUsb0JBQW9CLDRMQUE0TCxtREFBbUQsZUFBZSwwQkFBMEIsK0JBQStCLG1EQUFtRCxlQUFlLCtCQUErQiwrQkFBK0IsK0JBQStCLGdDQUFnQyw0Q0FBNEMsa0VBQWtFLGlDQUFpQyxxSUFBcUksMEVBQTBFLEdBQUcsZ0JBQWdCLGlCQUFpQixhQUFhLCtDQUErQyxtRkFBbUYsNkZBQTZGLDBCQUEwQixLQUFLLG9EQUFvRCw4Q0FBOEMscUNBQXFDLHFCQUFxQixXQUFXLHNDQUFzQyxTQUFTLEVBQUUsYUFBYSxhQUFhLGlHQUFpRyw2QkFBNkIsR0FBRyxPQUFPLDhEQUE4RCxjQUFjLGNBQWMsV0FBVyw4RkFBOEYsb0NBQW9DLEVBQUUsOENBQThDLHdEQUF3RCwrQkFBK0IsbUJBQW1CLG1CQUFtQix3QkFBd0IsMEZBQTBGLDhCQUE4QixtQkFBbUIsbUJBQW1CLHdCQUF3QiwwRkFBMEYsOEJBQThCLG1CQUFtQixtQkFBbUIsd0JBQXdCLDBGQUEwRiwrQkFBK0IsbUJBQW1CLG1CQUFtQix3QkFBd0IsNEZBQTRGLGlDQUFpQyxHQUFHLGVBQWUsaUJBQWlCLGFBQWEsK0NBQStDLG1GQUFtRiw2RkFBNkYsMEJBQTBCLEtBQUssb0RBQW9ELDhDQUE4QyxxQ0FBcUMscUJBQXFCLFdBQVcsc0NBQXNDLFNBQVMsRUFBRSx3QkFBd0IsY0FBYyx3Q0FBd0Msa0RBQWtELGVBQWUsbUJBQW1CLCtCQUErQiwyQ0FBMkMsZUFBZSxpQkFBaUIsK0JBQStCLG9DQUFvQyxnRkFBZ0YsbUNBQW1DLHVEQUF1RCwwQ0FBMEMsUUFBUSxRQUFRLFFBQVEsMERBQTBELHFDQUFxQyxrREFBa0QsZ0NBQWdDLEdBQUcsb0JBQW9CLGlCQUFpQixhQUFhLHNDQUFzQyxTQUFTLEVBQUUsZ0NBQWdDLGFBQWEsaUJBQWlCLG1CQUFtQixzQkFBc0Isc0JBQXNCLGdCQUFnQixXQUFXLEtBQUsseUJBQXlCLGVBQWUscUNBQXFDLDJCQUEyQixnQ0FBZ0MsaUNBQWlDLG9DQUFvQyxjQUFjLEVBQUUsNkJBQTZCLDRCQUE0Qiw2QkFBNkIsNEJBQTRCLEdBQUcsR0FBRyxzQkFBc0IsaUJBQWlCLGFBQWEsc0VBQXNFLDRDQUE0Qyx3QkFBd0Isd0NBQXdDLGlCQUFpQixtQkFBbUIsd0JBQXdCLHlEQUF5RCx1QkFBdUIsZUFBZSxXQUFXLEtBQUssc0NBQXNDLDBGQUEwRixVQUFVLHFDQUFxQyw4SkFBOEoseURBQXlELEdBQUcsR0FBRyx5QkFBeUIsaUJBQWlCLGFBQWEsK0NBQStDLG1GQUFtRiw2RkFBNkYsMEJBQTBCLEtBQUssb0RBQW9ELDhDQUE4QyxxQ0FBcUMscUJBQXFCLFdBQVcsc0NBQXNDLFNBQVMsRUFBRSxxQkFBcUIsTUFBTSw2QkFBNkIsVUFBVSxNQUFNLDhCQUE4Qix1RUFBdUUsUUFBUSwrQkFBK0Isc0JBQXNCLE9BQU8sK0JBQStCLG9DQUFvQyxNQUFNLCtCQUErQixZQUFZLGdCQUFnQiw4Q0FBOEMsK0lBQStJLDZCQUE2QixvQkFBb0IscUNBQXFDLDJCQUEyQixtQkFBbUIsZ0NBQWdDLGtCQUFrQixxQ0FBcUMsMkJBQTJCLGtCQUFrQixnQ0FBZ0MsaUJBQWlCLHlDQUF5QyxzQkFBc0IsVUFBVSxVQUFVLG1CQUFtQiwwQkFBMEIsVUFBVSxhQUFhLGNBQWMsZ0JBQWdCLFdBQVcsNERBQTRELG1CQUFtQixtSkFBbUosNkJBQTZCLHFDQUFxQyw2QkFBNkIsZUFBZSw2Q0FBNkMscUJBQXFCLHVDQUF1QyxxQkFBcUIscURBQXFELGVBQWUsNEJBQTRCLGlCQUFpQixtRUFBbUUsOEVBQThFLCtCQUErQixzREFBc0QsZUFBZSw0QkFBNEIsaUJBQWlCLG1FQUFtRSx1QkFBdUIsK0JBQStCLCtCQUErQiw4RUFBOEUsdURBQXVELGVBQWUsb0NBQW9DLCtCQUErQiw0Q0FBNEMsK0ZBQStGLHdDQUF3Qyx3Q0FBd0MsdURBQXVELG1HQUFtRywrREFBK0QsK0NBQStDLHFFQUFxRSx1Q0FBdUMsT0FBTyxrRUFBa0UsMENBQTBDLDJJQUEySSxvREFBb0QsR0FBRyxxQkFBcUIsaUJBQWlCLGFBQWEsc0NBQXNDLFNBQVMsRUFBRSxpQkFBaUIsYUFBYSxnQkFBZ0Isc0NBQXNDLGdDQUFnQyxLQUFLLHVDQUF1QyxxQ0FBcUMsY0FBYyw0Q0FBNEMsMENBQTBDLGlDQUFpQyxlQUFlLDhDQUE4QyxrQkFBa0IsaUJBQWlCLHNCQUFzQiw0QkFBNEIsSUFBSSxNQUFNLGlGQUFpRixzRUFBc0UsR0FBRyxHQUFHLGlCQUFpQixHQUFHO0FBQ3RobVAsaUM7Ozs7Ozs7Ozs7OztBQ0RhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsYUFBYSxPQUFPO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGFBQWEsZ0JBQWdCO0FBQzdCO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLE9BQU87QUFDcEI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sWUFBWTs7QUFFbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7QUNuRUEsZSIsImZpbGUiOiJ3ZWJzc2gyLmJ1bmRsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7XG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG4gXHRcdH1cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb24gZm9yIGhhcm1vbnkgZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgbmFtZSwgZ2V0dGVyKSB7XG4gXHRcdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgbmFtZSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGdldHRlciB9KTtcbiBcdFx0fVxuIFx0fTtcblxuIFx0Ly8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuIFx0XHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcbiBcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbiBcdFx0fVxuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xuIFx0fTtcblxuIFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4gXHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbiBcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuIFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4gXHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuIFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKHZhbHVlKTtcbiBcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbiBcdFx0aWYoKG1vZGUgJiA0KSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbiBcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG5zLCAnZGVmYXVsdCcsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHZhbHVlIH0pO1xuIFx0XHRpZihtb2RlICYgMiAmJiB0eXBlb2YgdmFsdWUgIT0gJ3N0cmluZycpIGZvcih2YXIga2V5IGluIHZhbHVlKSBfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGtleSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiB2YWx1ZVtrZXldOyB9LmJpbmQobnVsbCwga2V5KSk7XG4gXHRcdHJldHVybiBucztcbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBcIi4vY2xpZW50L3NyYy9qcy9pbmRleC5qc1wiKTtcbiIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luIiwiJ3VzZSBzdHJpY3QnXG5cbmltcG9ydCBpbyBmcm9tICdzb2NrZXQuaW8tY2xpZW50J1xuaW1wb3J0IHsgVGVybWluYWwgfSBmcm9tICd4dGVybSdcbmltcG9ydCB7IEZpdEFkZG9uIH0gZnJvbSAneHRlcm0tYWRkb24tZml0J1xuaW1wb3J0IHsgbGlicmFyeSwgZG9tIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXN2Zy1jb3JlJ1xuaW1wb3J0IHsgZmFCYXJzLCBmYUNsaXBib2FyZCwgZmFEb3dubG9hZCwgZmFLZXksIGZhQ29nIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJ1xubGlicmFyeS5hZGQoZmFCYXJzLCBmYUNsaXBib2FyZCwgZmFEb3dubG9hZCwgZmFLZXksIGZhQ29nKVxuXG5kb20ud2F0Y2goKVxuXG5yZXF1aXJlKCd4dGVybS9jc3MveHRlcm0uY3NzJylcbnJlcXVpcmUoJy4uL2Nzcy9zdHlsZS5jc3MnKVxuXG4vKiBnbG9iYWwgQmxvYiwgbG9nQnRuLCBjcmVkZW50aWFsc0J0biwgcmVhdXRoQnRuLCBkb3dubG9hZExvZ0J0biAqL1xudmFyIHNlc3Npb25Mb2dFbmFibGUgPSBmYWxzZVxudmFyIGxvZ2dlZERhdGEgPSBmYWxzZVxudmFyIGFsbG93cmVwbGF5ID0gZmFsc2VcbnZhciBhbGxvd3JlYXV0aCA9IGZhbHNlXG52YXIgc2Vzc2lvbkxvZywgc2Vzc2lvbkZvb3RlciwgbG9nRGF0ZSwgY3VycmVudERhdGUsIG15RmlsZSwgZXJyb3JFeGlzdHNcbnZhciB0ZXJtaWQgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuLy8gY2hhbmdlIHBhdGggaGVyZSBhbmQgaW4gdGhlIC9hcHAvc2VydmVyL2FwcC5qcyBsaW5lIDExNVxudmFyIHNvY2tldCA9IGlvKHsgcGF0aDogJy9zc2gvc29ja2V0LmlvJyB9KVxudmFyIHRlcm0gPSBuZXcgVGVybWluYWwoKVxuY29uc3QgZml0QWRkb24gPSBuZXcgRml0QWRkb24oKVxuLy8gRE9NIHByb3BlcnRpZXNcbnZhciBzdGF0dXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RhdHVzJylcbnZhciBoZWFkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGVhZGVyJylcbnZhciBkcm9wdXBDb250ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Ryb3B1cENvbnRlbnQnKVxudmFyIGZvb3RlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb290ZXInKVxudmFyIHRlcm1pbmFsQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlcm1pbmFsLWNvbnRhaW5lcicpXG50ZXJtLmxvYWRBZGRvbihmaXRBZGRvbilcbnRlcm0ub3Blbih0ZXJtaW5hbENvbnRhaW5lcilcbnRlcm0uZm9jdXMoKVxuZml0QWRkb24uZml0KClcbndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCByZXNpemVTY3JlZW4sIGZhbHNlKVxuXG5mdW5jdGlvbiByZXNpemVTY3JlZW4gKCkge1xuICBmaXRBZGRvbi5maXQoKVxuICBzb2NrZXQuZW1pdCgncmVzaXplJywgeyBjb2xzOiB0ZXJtLmNvbHMsIHJvd3M6IHRlcm0ucm93cyB9KVxufVxuXG4vLyB0aGlzIGFyZWEgc2VlbXMgdW5uZWNjZXNzYXJ5IG5vdywgdGVzdGVkIG91dCBpbiBDaHJvbWUgNzcgLSBiaWxsXG4vL1xuLyogaWYgKGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lKSB7XG4gIHZhciBwYXJ0cyA9IGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLnNwbGl0KCcvJylcbiAgdmFyIGJhc2UgPSBwYXJ0cy5zbGljZSgwLCBwYXJ0cy5sZW5ndGggLSAxKS5qb2luKCcvJykgKyAnLydcbiAgdmFyIHJlc291cmNlID0gYmFzZS5zdWJzdHJpbmcoMSkgKyAnL3NzaC9zb2NrZXQuaW8nXG4gIHNvY2tldCA9IGlvKG51bGwsIHtcbiAgICBwYXRoOiAnL3NzaC9zb2NrZXQuaW8nLFxuICAgIHJlc291cmNlOiByZXNvdXJjZVxuICB9KVxuICAvLyBzb2NrZXQuY29ubmVjdCgpXG59IGVsc2Uge1xuICBzb2NrZXQgPSBpbygnaHR0cDovL2xvY2FsaG9zdDoyMjIyJywge3BhdGg6ICcvc3NoL3NvY2tldC5pbyd9KVxuICAvLyBzb2NrZXQuY29ubmVjdCgpXG59ICovXG5cbnRlcm0ub25EYXRhKGRhdGEgPT4gc29ja2V0LmVtaXQoJ2RhdGEnLCBkYXRhKSlcblxuc29ja2V0Lm9uKCdkYXRhJywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgdGVybS53cml0ZShkYXRhKVxuICBpZiAoc2Vzc2lvbkxvZ0VuYWJsZSkge1xuICAgIHNlc3Npb25Mb2cgPSBzZXNzaW9uTG9nICsgZGF0YVxuICB9XG59KVxuXG5zb2NrZXQub24oJ2Nvbm5lY3QnLCBmdW5jdGlvbiAoKSB7XG4gIHNvY2tldC5lbWl0KCdnZW9tZXRyeScsIHRlcm0uY29scywgdGVybS5yb3dzKVxufSlcblxuc29ja2V0Lm9uKCdzZXRUZXJtaW5hbE9wdHMnLCBmdW5jdGlvbiAoZGF0YSkge1xuICB0ZXJtLnNldE9wdGlvbignY3Vyc29yQmxpbmsnLCBkYXRhLmN1cnNvckJsaW5rKVxuICB0ZXJtLnNldE9wdGlvbignc2Nyb2xsYmFjaycsIGRhdGEuc2Nyb2xsYmFjaylcbiAgdGVybS5zZXRPcHRpb24oJ3RhYlN0b3BXaWR0aCcsIGRhdGEudGFiU3RvcFdpZHRoKVxuICB0ZXJtLnNldE9wdGlvbignYmVsbFN0eWxlJywgZGF0YS5iZWxsU3R5bGUpXG59KVxuXG5zb2NrZXQub24oJ3RpdGxlJywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgZG9jdW1lbnQudGl0bGUgPSBkYXRhXG59KVxuXG5zb2NrZXQub24oJ21lbnUnLCBmdW5jdGlvbiAoZGF0YSkge1xuICBkcmF3TWVudShkYXRhKVxufSlcblxuc29ja2V0Lm9uKCdzdGF0dXMnLCBmdW5jdGlvbiAoZGF0YSkge1xuICBzdGF0dXMuaW5uZXJIVE1MID0gZGF0YVxufSlcblxuc29ja2V0Lm9uKCdzc2hlcnJvcicsIGZ1bmN0aW9uIChkYXRhKSB7XG4gIHN0YXR1cy5pbm5lckhUTUwgPSBkYXRhXG4gIHN0YXR1cy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmVkJ1xuICBlcnJvckV4aXN0cyA9IHRydWVcbn0pXG5cbnNvY2tldC5vbignaGVhZGVyQmFja2dyb3VuZCcsIGZ1bmN0aW9uIChkYXRhKSB7XG4gIGhlYWRlci5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBkYXRhXG59KVxuXG5zb2NrZXQub24oJ2hlYWRlcicsIGZ1bmN0aW9uIChkYXRhKSB7XG4gIGlmIChkYXRhKSB7XG4gICAgaGVhZGVyLmlubmVySFRNTCA9IGRhdGFcbiAgICBoZWFkZXIuc3R5bGUuZGlzcGxheSA9ICdibG9jaydcbiAgICAvLyBoZWFkZXIgaXMgMTlweCBhbmQgZm9vdGVyIGlzIDE5cHgsIHJlY2FjdWxhdGUgbmV3IHRlcm1pbmFsLWNvbnRhaW5lciBhbmQgcmVzaXplXG4gICAgdGVybWluYWxDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJ2NhbGMoMTAwJSAtIDM4cHgpJ1xuICAgIHJlc2l6ZVNjcmVlbigpXG4gIH1cbn0pXG5cbnNvY2tldC5vbignZm9vdGVyJywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgc2Vzc2lvbkZvb3RlciA9IGRhdGFcbiAgZm9vdGVyLmlubmVySFRNTCA9IGRhdGFcbn0pXG5cbnNvY2tldC5vbignc3RhdHVzQmFja2dyb3VuZCcsIGZ1bmN0aW9uIChkYXRhKSB7XG4gIHN0YXR1cy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBkYXRhXG59KVxuXG5zb2NrZXQub24oJ2FsbG93cmVwbGF5JywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgaWYgKGRhdGEgPT09IHRydWUpIHtcbiAgICBjb25zb2xlLmxvZygnYWxsb3dyZXBsYXk6ICcgKyBkYXRhKVxuICAgIGFsbG93cmVwbGF5ID0gdHJ1ZVxuICAgIGRyYXdNZW51KGRyb3B1cENvbnRlbnQuaW5uZXJIVE1MICsgJzxhIGlkPVwiY3JlZGVudGlhbHNCdG5cIj48aSBjbGFzcz1cImZhcyBmYS1rZXkgZmEtZndcIj48L2k+IENyZWRlbnRpYWxzPC9hPicpXG4gIH0gZWxzZSB7XG4gICAgYWxsb3dyZXBsYXkgPSBmYWxzZVxuICAgIGNvbnNvbGUubG9nKCdhbGxvd3JlcGxheTogJyArIGRhdGEpXG4gIH1cbn0pXG5cbnNvY2tldC5vbignYWxsb3dyZWF1dGgnLCBmdW5jdGlvbiAoZGF0YSkge1xuICBpZiAoZGF0YSA9PT0gdHJ1ZSkge1xuICAgIGNvbnNvbGUubG9nKCdhbGxvd3JlYXV0aDogJyArIGRhdGEpXG4gICAgYWxsb3dyZWF1dGggPSB0cnVlXG4gICAgZHJhd01lbnUoZHJvcHVwQ29udGVudC5pbm5lckhUTUwgKyAnPGEgaWQ9XCJyZWF1dGhCdG5cIj48aSBjbGFzcz1cImZhcyBmYS1rZXkgZmEtZndcIj48L2k+IFN3aXRjaCBVc2VyPC9hPicpXG4gIH0gZWxzZSB7XG4gICAgYWxsb3dyZWF1dGggPSBmYWxzZVxuICAgIGNvbnNvbGUubG9nKCdhbGxvd3JlYXV0aDogJyArIGRhdGEpXG4gIH1cbn0pXG5cbnNvY2tldC5vbignZGlzY29ubmVjdCcsIGZ1bmN0aW9uIChlcnIpIHtcbiAgaWYgKCFlcnJvckV4aXN0cykge1xuICAgIHN0YXR1cy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAncmVkJ1xuICAgIHN0YXR1cy5pbm5lckhUTUwgPVxuICAgICAgJ1dFQlNPQ0tFVCBTRVJWRVIgRElTQ09OTkVDVEVEOiAnICsgZXJyXG4gIH1cbiAgc29ja2V0LmlvLnJlY29ubmVjdGlvbihmYWxzZSlcbn0pXG5cbnNvY2tldC5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG4gIGlmICghZXJyb3JFeGlzdHMpIHtcbiAgICBzdGF0dXMuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gJ3JlZCdcbiAgICBzdGF0dXMuaW5uZXJIVE1MID0gJ0VSUk9SOiAnICsgZXJyXG4gIH1cbn0pXG5cbnNvY2tldC5vbigncmVhdXRoJywgZnVuY3Rpb24gKCkge1xuICAoYWxsb3dyZWF1dGgpICYmIHJlYXV0aFNlc3Npb24oKVxufSlcblxudGVybS5vblRpdGxlQ2hhbmdlKHRpdGxlID0+IChkb2N1bWVudC50aXRsZSA9IHRpdGxlKSlcblxuLy8gZHJhdy9yZS1kcmF3IG1lbnUgYW5kIHJlYXR0YWNoIGxpc3RlbmVyc1xuLy8gd2hlbiBkb20gaXMgY2hhbmdlZCwgbGlzdGVuZXJzIGFyZSBhYmFuZG9uZGVkXG5mdW5jdGlvbiBkcmF3TWVudSAoZGF0YSkge1xuICBkcm9wdXBDb250ZW50LmlubmVySFRNTCA9IGRhdGFcbiAgbG9nQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdG9nZ2xlTG9nKVxuICBhbGxvd3JlYXV0aCAmJiByZWF1dGhCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZWF1dGhTZXNzaW9uKVxuICBhbGxvd3JlcGxheSAmJiBjcmVkZW50aWFsc0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlcGxheUNyZWRlbnRpYWxzKVxuICBsb2dnZWREYXRhICYmIGRvd25sb2FkTG9nQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZG93bmxvYWRMb2cpXG59XG5cbi8vIHJlYXV0aGVudGljYXRlXG5mdW5jdGlvbiByZWF1dGhTZXNzaW9uICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICBjb25zb2xlLmxvZygncmUtYXV0aGVudGljYXRpbmcnKVxuICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvcmVhdXRoJ1xuICByZXR1cm4gZmFsc2Vcbn1cblxuLy8gcmVwbGF5IHBhc3N3b3JkIHRvIHNlcnZlciwgcmVxdWlyZXNcbmZ1bmN0aW9uIHJlcGxheUNyZWRlbnRpYWxzICgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICBzb2NrZXQuZW1pdCgnY29udHJvbCcsICdyZXBsYXlDcmVkZW50aWFscycpXG4gIGNvbnNvbGUubG9nKCdyZXBsYXlpbmcgY3JlZGVudGlhbHMnKVxuICB0ZXJtLmZvY3VzKClcbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8vIFNldCB2YXJpYWJsZSB0byB0b2dnbGUgbG9nIGRhdGEgZnJvbSBjbGllbnQvc2VydmVyIHRvIGEgdmFyaWFsYmxlXG4vLyBmb3IgbGF0ZXIgZG93bmxvYWRcbmZ1bmN0aW9uIHRvZ2dsZUxvZyAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgaWYgKHNlc3Npb25Mb2dFbmFibGUgPT09IHRydWUpIHtcbiAgICBzZXNzaW9uTG9nRW5hYmxlID0gZmFsc2VcbiAgICBsb2dnZWREYXRhID0gdHJ1ZVxuICAgIGxvZ0J0bi5pbm5lckhUTUwgPSAnPGkgY2xhc3M9XCJmYXMgZmEtY2xpcGJvYXJkIGZhLWZ3XCI+PC9pPiBTdGFydCBMb2cnXG4gICAgY29uc29sZS5sb2coJ3N0b3BwaW5nIGxvZywgJyArIHNlc3Npb25Mb2dFbmFibGUpXG4gICAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpXG4gICAgc2Vzc2lvbkxvZyA9IHNlc3Npb25Mb2cgKyAnXFxyXFxuXFxyXFxuTG9nIEVuZCBmb3IgJyArIHNlc3Npb25Gb290ZXIgKyAnOiAnICtcbiAgICAgIGN1cnJlbnREYXRlLmdldEZ1bGxZZWFyKCkgKyAnLycgKyAoY3VycmVudERhdGUuZ2V0TW9udGgoKSArIDEpICsgJy8nICtcbiAgICAgIGN1cnJlbnREYXRlLmdldERhdGUoKSArICcgQCAnICsgY3VycmVudERhdGUuZ2V0SG91cnMoKSArICc6JyArXG4gICAgICBjdXJyZW50RGF0ZS5nZXRNaW51dGVzKCkgKyAnOicgKyBjdXJyZW50RGF0ZS5nZXRTZWNvbmRzKCkgKyAnXFxyXFxuJ1xuICAgIGxvZ0RhdGUgPSBjdXJyZW50RGF0ZVxuICAgIHRlcm0uZm9jdXMoKVxuICAgIHJldHVybiBmYWxzZVxuICB9IGVsc2Uge1xuICAgIHNlc3Npb25Mb2dFbmFibGUgPSB0cnVlXG4gICAgbG9nZ2VkRGF0YSA9IHRydWVcbiAgICBsb2dCdG4uaW5uZXJIVE1MID0gJzxpIGNsYXNzPVwiZmFzIGZhLWNvZyBmYS1zcGluIGZhLWZ3XCI+PC9pPiBTdG9wIExvZydcbiAgICBkb3dubG9hZExvZ0J0bi5zdHlsZS5jb2xvciA9ICcjMDAwJ1xuICAgIGRvd25sb2FkTG9nQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZG93bmxvYWRMb2cpXG4gICAgY29uc29sZS5sb2coJ3N0YXJ0aW5nIGxvZywgJyArIHNlc3Npb25Mb2dFbmFibGUpXG4gICAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpXG4gICAgc2Vzc2lvbkxvZyA9ICdMb2cgU3RhcnQgZm9yICcgKyBzZXNzaW9uRm9vdGVyICsgJzogJyArXG4gICAgICBjdXJyZW50RGF0ZS5nZXRGdWxsWWVhcigpICsgJy8nICsgKGN1cnJlbnREYXRlLmdldE1vbnRoKCkgKyAxKSArICcvJyArXG4gICAgICBjdXJyZW50RGF0ZS5nZXREYXRlKCkgKyAnIEAgJyArIGN1cnJlbnREYXRlLmdldEhvdXJzKCkgKyAnOicgK1xuICAgICAgY3VycmVudERhdGUuZ2V0TWludXRlcygpICsgJzonICsgY3VycmVudERhdGUuZ2V0U2Vjb25kcygpICsgJ1xcclxcblxcclxcbidcbiAgICBsb2dEYXRlID0gY3VycmVudERhdGVcbiAgICB0ZXJtLmZvY3VzKClcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuXG4vLyBjcm9zcyBicm93c2VyIG1ldGhvZCB0byBcImRvd25sb2FkXCIgYW4gZWxlbWVudCB0byB0aGUgbG9jYWwgc3lzdGVtXG4vLyB1c2VkIGZvciBvdXIgY2xpZW50LXNpZGUgbG9nZ2luZyBmZWF0dXJlXG5mdW5jdGlvbiBkb3dubG9hZExvZyAoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgaWYgKGxvZ2dlZERhdGEgPT09IHRydWUpIHtcbiAgICBteUZpbGUgPSAnV2ViU1NIMi0nICsgbG9nRGF0ZS5nZXRGdWxsWWVhcigpICsgKGxvZ0RhdGUuZ2V0TW9udGgoKSArIDEpICtcbiAgICAgIGxvZ0RhdGUuZ2V0RGF0ZSgpICsgJ18nICsgbG9nRGF0ZS5nZXRIb3VycygpICsgbG9nRGF0ZS5nZXRNaW51dGVzKCkgK1xuICAgICAgbG9nRGF0ZS5nZXRTZWNvbmRzKCkgKyAnLmxvZydcbiAgICAvLyByZWdleCBzaG91bGQgZWxpbWluYXRlIGVzY2FwZSBzZXF1ZW5jZXMgZnJvbSBiZWluZyBsb2dnZWQuXG4gICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbc2Vzc2lvbkxvZy5yZXBsYWNlKC9bXFx1MDAxYlxcdTAwOWJdW1tcXF0oKSM7P10qKD86WzAtOV17MSw0fSg/OjtbMC05XXswLDR9KSopP1swLTlBLU9SWmNmLW5xcnk9Pjw7XS9nLCAnJyldLCB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29udHJvbC1yZWdleFxuICAgICAgdHlwZTogJ3RleHQvcGxhaW4nXG4gICAgfSlcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKSB7XG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IoYmxvYiwgbXlGaWxlKVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZWxlbSA9IHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcbiAgICAgIGVsZW0uaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpXG4gICAgICBlbGVtLmRvd25sb2FkID0gbXlGaWxlXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW0pXG4gICAgICBlbGVtLmNsaWNrKClcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbSlcbiAgICB9XG4gIH1cbiAgdGVybS5mb2N1cygpXG59XG4iLCJmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICBpZiAodHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPT09IFwic3ltYm9sXCIpIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gKG9iaikge1xuICAgICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBfdHlwZW9mID0gZnVuY3Rpb24gKG9iaikge1xuICAgICAgcmV0dXJuIG9iaiAmJiB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBfdHlwZW9mKG9iaik7XG59XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn1cblxuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQodGFyZ2V0KSB7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXSAhPSBudWxsID8gYXJndW1lbnRzW2ldIDoge307XG4gICAgdmFyIG93bktleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuXG4gICAgaWYgKHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBvd25LZXlzID0gb3duS2V5cy5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwgc3ltKS5lbnVtZXJhYmxlO1xuICAgICAgfSkpO1xuICAgIH1cblxuICAgIG93bktleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBfZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNvdXJjZVtrZXldKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkge1xuICByZXR1cm4gX2FycmF5V2l0aEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgX25vbkl0ZXJhYmxlUmVzdCgpO1xufVxuXG5mdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gIHJldHVybiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBfaXRlcmFibGVUb0FycmF5KGFycikgfHwgX25vbkl0ZXJhYmxlU3ByZWFkKCk7XG59XG5cbmZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkge1xuICAgIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGFyci5sZW5ndGgpOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSBhcnIyW2ldID0gYXJyW2ldO1xuXG4gICAgcmV0dXJuIGFycjI7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKGFycikge1xuICBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gYXJyO1xufVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHtcbiAgaWYgKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoaXRlcikgfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGl0ZXIpID09PSBcIltvYmplY3QgQXJndW1lbnRzXVwiKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn1cblxuZnVuY3Rpb24gX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkge1xuICB2YXIgX2FyciA9IFtdO1xuICB2YXIgX24gPSB0cnVlO1xuICB2YXIgX2QgPSBmYWxzZTtcbiAgdmFyIF9lID0gdW5kZWZpbmVkO1xuXG4gIHRyeSB7XG4gICAgZm9yICh2YXIgX2kgPSBhcnJbU3ltYm9sLml0ZXJhdG9yXSgpLCBfczsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkge1xuICAgICAgX2Fyci5wdXNoKF9zLnZhbHVlKTtcblxuICAgICAgaWYgKGkgJiYgX2Fyci5sZW5ndGggPT09IGkpIGJyZWFrO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgX2QgPSB0cnVlO1xuICAgIF9lID0gZXJyO1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBpZiAoIV9uICYmIF9pW1wicmV0dXJuXCJdICE9IG51bGwpIF9pW1wicmV0dXJuXCJdKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChfZCkgdGhyb3cgX2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIF9hcnI7XG59XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVNwcmVhZCgpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlXCIpO1xufVxuXG5mdW5jdGlvbiBfbm9uSXRlcmFibGVSZXN0KCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZVwiKTtcbn1cblxudmFyIG5vb3AgPSBmdW5jdGlvbiBub29wKCkge307XG5cbnZhciBfV0lORE9XID0ge307XG52YXIgX0RPQ1VNRU5UID0ge307XG52YXIgX01VVEFUSU9OX09CU0VSVkVSID0gbnVsbDtcbnZhciBfUEVSRk9STUFOQ0UgPSB7XG4gIG1hcms6IG5vb3AsXG4gIG1lYXN1cmU6IG5vb3Bcbn07XG5cbnRyeSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgX1dJTkRPVyA9IHdpbmRvdztcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIF9ET0NVTUVOVCA9IGRvY3VtZW50O1xuICBpZiAodHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnKSBfTVVUQVRJT05fT0JTRVJWRVIgPSBNdXRhdGlvbk9ic2VydmVyO1xuICBpZiAodHlwZW9mIHBlcmZvcm1hbmNlICE9PSAndW5kZWZpbmVkJykgX1BFUkZPUk1BTkNFID0gcGVyZm9ybWFuY2U7XG59IGNhdGNoIChlKSB7fVxuXG52YXIgX3JlZiA9IF9XSU5ET1cubmF2aWdhdG9yIHx8IHt9LFxuICAgIF9yZWYkdXNlckFnZW50ID0gX3JlZi51c2VyQWdlbnQsXG4gICAgdXNlckFnZW50ID0gX3JlZiR1c2VyQWdlbnQgPT09IHZvaWQgMCA/ICcnIDogX3JlZiR1c2VyQWdlbnQ7XG5cbnZhciBXSU5ET1cgPSBfV0lORE9XO1xudmFyIERPQ1VNRU5UID0gX0RPQ1VNRU5UO1xudmFyIE1VVEFUSU9OX09CU0VSVkVSID0gX01VVEFUSU9OX09CU0VSVkVSO1xudmFyIFBFUkZPUk1BTkNFID0gX1BFUkZPUk1BTkNFO1xudmFyIElTX0JST1dTRVIgPSAhIVdJTkRPVy5kb2N1bWVudDtcbnZhciBJU19ET00gPSAhIURPQ1VNRU5ULmRvY3VtZW50RWxlbWVudCAmJiAhIURPQ1VNRU5ULmhlYWQgJiYgdHlwZW9mIERPQ1VNRU5ULmFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIERPQ1VNRU5ULmNyZWF0ZUVsZW1lbnQgPT09ICdmdW5jdGlvbic7XG52YXIgSVNfSUUgPSB+dXNlckFnZW50LmluZGV4T2YoJ01TSUUnKSB8fCB+dXNlckFnZW50LmluZGV4T2YoJ1RyaWRlbnQvJyk7XG5cbnZhciBOQU1FU1BBQ0VfSURFTlRJRklFUiA9ICdfX19GT05UX0FXRVNPTUVfX18nO1xudmFyIFVOSVRTX0lOX0dSSUQgPSAxNjtcbnZhciBERUZBVUxUX0ZBTUlMWV9QUkVGSVggPSAnZmEnO1xudmFyIERFRkFVTFRfUkVQTEFDRU1FTlRfQ0xBU1MgPSAnc3ZnLWlubGluZS0tZmEnO1xudmFyIERBVEFfRkFfSTJTVkcgPSAnZGF0YS1mYS1pMnN2Zyc7XG52YXIgREFUQV9GQV9QU0VVRE9fRUxFTUVOVCA9ICdkYXRhLWZhLXBzZXVkby1lbGVtZW50JztcbnZhciBEQVRBX0ZBX1BTRVVET19FTEVNRU5UX1BFTkRJTkcgPSAnZGF0YS1mYS1wc2V1ZG8tZWxlbWVudC1wZW5kaW5nJztcbnZhciBEQVRBX1BSRUZJWCA9ICdkYXRhLXByZWZpeCc7XG52YXIgREFUQV9JQ09OID0gJ2RhdGEtaWNvbic7XG52YXIgSFRNTF9DTEFTU19JMlNWR19CQVNFX0NMQVNTID0gJ2ZvbnRhd2Vzb21lLWkyc3ZnJztcbnZhciBNVVRBVElPTl9BUFBST0FDSF9BU1lOQyA9ICdhc3luYyc7XG52YXIgVEFHTkFNRVNfVE9fU0tJUF9GT1JfUFNFVURPRUxFTUVOVFMgPSBbJ0hUTUwnLCAnSEVBRCcsICdTVFlMRScsICdTQ1JJUFQnXTtcbnZhciBQUk9EVUNUSU9OID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIHJldHVybiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59KCk7XG52YXIgUFJFRklYX1RPX1NUWUxFID0ge1xuICAnZmFzJzogJ3NvbGlkJyxcbiAgJ2Zhcic6ICdyZWd1bGFyJyxcbiAgJ2ZhbCc6ICdsaWdodCcsXG4gICdmYWQnOiAnZHVvdG9uZScsXG4gICdmYWInOiAnYnJhbmRzJyxcbiAgJ2ZhJzogJ3NvbGlkJ1xufTtcbnZhciBTVFlMRV9UT19QUkVGSVggPSB7XG4gICdzb2xpZCc6ICdmYXMnLFxuICAncmVndWxhcic6ICdmYXInLFxuICAnbGlnaHQnOiAnZmFsJyxcbiAgJ2R1b3RvbmUnOiAnZmFkJyxcbiAgJ2JyYW5kcyc6ICdmYWInXG59O1xudmFyIExBWUVSU19URVhUX0NMQVNTTkFNRSA9ICdmYS1sYXllcnMtdGV4dCc7XG52YXIgRk9OVF9GQU1JTFlfUEFUVEVSTiA9IC9Gb250IEF3ZXNvbWUgNSAoU29saWR8UmVndWxhcnxMaWdodHxEdW90b25lfEJyYW5kc3xGcmVlfFBybykvO1xudmFyIEZPTlRfV0VJR0hUX1RPX1BSRUZJWCA9IHtcbiAgJzkwMCc6ICdmYXMnLFxuICAnNDAwJzogJ2ZhcicsXG4gICdub3JtYWwnOiAnZmFyJyxcbiAgJzMwMCc6ICdmYWwnXG59O1xudmFyIG9uZVRvVGVuID0gWzEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXTtcbnZhciBvbmVUb1R3ZW50eSA9IG9uZVRvVGVuLmNvbmNhdChbMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjBdKTtcbnZhciBBVFRSSUJVVEVTX1dBVENIRURfRk9SX01VVEFUSU9OID0gWydjbGFzcycsICdkYXRhLXByZWZpeCcsICdkYXRhLWljb24nLCAnZGF0YS1mYS10cmFuc2Zvcm0nLCAnZGF0YS1mYS1tYXNrJ107XG52YXIgRFVPVE9ORV9DTEFTU0VTID0ge1xuICBHUk9VUDogJ2dyb3VwJyxcbiAgU1dBUF9PUEFDSVRZOiAnc3dhcC1vcGFjaXR5JyxcbiAgUFJJTUFSWTogJ3ByaW1hcnknLFxuICBTRUNPTkRBUlk6ICdzZWNvbmRhcnknXG59O1xudmFyIFJFU0VSVkVEX0NMQVNTRVMgPSBbJ3hzJywgJ3NtJywgJ2xnJywgJ2Z3JywgJ3VsJywgJ2xpJywgJ2JvcmRlcicsICdwdWxsLWxlZnQnLCAncHVsbC1yaWdodCcsICdzcGluJywgJ3B1bHNlJywgJ3JvdGF0ZS05MCcsICdyb3RhdGUtMTgwJywgJ3JvdGF0ZS0yNzAnLCAnZmxpcC1ob3Jpem9udGFsJywgJ2ZsaXAtdmVydGljYWwnLCAnZmxpcC1ib3RoJywgJ3N0YWNrJywgJ3N0YWNrLTF4JywgJ3N0YWNrLTJ4JywgJ2ludmVyc2UnLCAnbGF5ZXJzJywgJ2xheWVycy10ZXh0JywgJ2xheWVycy1jb3VudGVyJywgRFVPVE9ORV9DTEFTU0VTLkdST1VQLCBEVU9UT05FX0NMQVNTRVMuU1dBUF9PUEFDSVRZLCBEVU9UT05FX0NMQVNTRVMuUFJJTUFSWSwgRFVPVE9ORV9DTEFTU0VTLlNFQ09OREFSWV0uY29uY2F0KG9uZVRvVGVuLm1hcChmdW5jdGlvbiAobikge1xuICByZXR1cm4gXCJcIi5jb25jYXQobiwgXCJ4XCIpO1xufSkpLmNvbmNhdChvbmVUb1R3ZW50eS5tYXAoZnVuY3Rpb24gKG4pIHtcbiAgcmV0dXJuIFwidy1cIi5jb25jYXQobik7XG59KSk7XG5cbnZhciBpbml0aWFsID0gV0lORE9XLkZvbnRBd2Vzb21lQ29uZmlnIHx8IHt9O1xuXG5mdW5jdGlvbiBnZXRBdHRyQ29uZmlnKGF0dHIpIHtcbiAgdmFyIGVsZW1lbnQgPSBET0NVTUVOVC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbJyArIGF0dHIgKyAnXScpO1xuXG4gIGlmIChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvZXJjZSh2YWwpIHtcbiAgLy8gR2V0dGluZyBhbiBlbXB0eSBzdHJpbmcgd2lsbCBvY2N1ciBpZiB0aGUgYXR0cmlidXRlIGlzIHNldCBvbiB0aGUgSFRNTCB0YWcgYnV0IHdpdGhvdXQgYSB2YWx1ZVxuICAvLyBXZSdsbCBhc3N1bWUgdGhhdCB0aGlzIGlzIGFuIGluZGljYXRpb24gdGhhdCBpdCBzaG91bGQgYmUgdG9nZ2xlZCB0byB0cnVlXG4gIC8vIEZvciBleGFtcGxlIDxzY3JpcHQgZGF0YS1zZWFyY2gtcHNldWRvLWVsZW1lbnRzIHNyYz1cIi4uLlwiPjwvc2NyaXB0PlxuICBpZiAodmFsID09PSAnJykgcmV0dXJuIHRydWU7XG4gIGlmICh2YWwgPT09ICdmYWxzZScpIHJldHVybiBmYWxzZTtcbiAgaWYgKHZhbCA9PT0gJ3RydWUnKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIHZhbDtcbn1cblxuaWYgKERPQ1VNRU5UICYmIHR5cGVvZiBET0NVTUVOVC5xdWVyeVNlbGVjdG9yID09PSAnZnVuY3Rpb24nKSB7XG4gIHZhciBhdHRycyA9IFtbJ2RhdGEtZmFtaWx5LXByZWZpeCcsICdmYW1pbHlQcmVmaXgnXSwgWydkYXRhLXJlcGxhY2VtZW50LWNsYXNzJywgJ3JlcGxhY2VtZW50Q2xhc3MnXSwgWydkYXRhLWF1dG8tcmVwbGFjZS1zdmcnLCAnYXV0b1JlcGxhY2VTdmcnXSwgWydkYXRhLWF1dG8tYWRkLWNzcycsICdhdXRvQWRkQ3NzJ10sIFsnZGF0YS1hdXRvLWExMXknLCAnYXV0b0ExMXknXSwgWydkYXRhLXNlYXJjaC1wc2V1ZG8tZWxlbWVudHMnLCAnc2VhcmNoUHNldWRvRWxlbWVudHMnXSwgWydkYXRhLW9ic2VydmUtbXV0YXRpb25zJywgJ29ic2VydmVNdXRhdGlvbnMnXSwgWydkYXRhLW11dGF0ZS1hcHByb2FjaCcsICdtdXRhdGVBcHByb2FjaCddLCBbJ2RhdGEta2VlcC1vcmlnaW5hbC1zb3VyY2UnLCAna2VlcE9yaWdpbmFsU291cmNlJ10sIFsnZGF0YS1tZWFzdXJlLXBlcmZvcm1hbmNlJywgJ21lYXN1cmVQZXJmb3JtYW5jZSddLCBbJ2RhdGEtc2hvdy1taXNzaW5nLWljb25zJywgJ3Nob3dNaXNzaW5nSWNvbnMnXV07XG4gIGF0dHJzLmZvckVhY2goZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIgX3JlZjIgPSBfc2xpY2VkVG9BcnJheShfcmVmLCAyKSxcbiAgICAgICAgYXR0ciA9IF9yZWYyWzBdLFxuICAgICAgICBrZXkgPSBfcmVmMlsxXTtcblxuICAgIHZhciB2YWwgPSBjb2VyY2UoZ2V0QXR0ckNvbmZpZyhhdHRyKSk7XG5cbiAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsKSB7XG4gICAgICBpbml0aWFsW2tleV0gPSB2YWw7XG4gICAgfVxuICB9KTtcbn1cblxudmFyIF9kZWZhdWx0ID0ge1xuICBmYW1pbHlQcmVmaXg6IERFRkFVTFRfRkFNSUxZX1BSRUZJWCxcbiAgcmVwbGFjZW1lbnRDbGFzczogREVGQVVMVF9SRVBMQUNFTUVOVF9DTEFTUyxcbiAgYXV0b1JlcGxhY2VTdmc6IHRydWUsXG4gIGF1dG9BZGRDc3M6IHRydWUsXG4gIGF1dG9BMTF5OiB0cnVlLFxuICBzZWFyY2hQc2V1ZG9FbGVtZW50czogZmFsc2UsXG4gIG9ic2VydmVNdXRhdGlvbnM6IHRydWUsXG4gIG11dGF0ZUFwcHJvYWNoOiAnYXN5bmMnLFxuICBrZWVwT3JpZ2luYWxTb3VyY2U6IHRydWUsXG4gIG1lYXN1cmVQZXJmb3JtYW5jZTogZmFsc2UsXG4gIHNob3dNaXNzaW5nSWNvbnM6IHRydWVcbn07XG5cbnZhciBfY29uZmlnID0gX29iamVjdFNwcmVhZCh7fSwgX2RlZmF1bHQsIGluaXRpYWwpO1xuXG5pZiAoIV9jb25maWcuYXV0b1JlcGxhY2VTdmcpIF9jb25maWcub2JzZXJ2ZU11dGF0aW9ucyA9IGZhbHNlO1xuXG52YXIgY29uZmlnID0gX29iamVjdFNwcmVhZCh7fSwgX2NvbmZpZyk7XG5cbldJTkRPVy5Gb250QXdlc29tZUNvbmZpZyA9IGNvbmZpZztcblxudmFyIHcgPSBXSU5ET1cgfHwge307XG5pZiAoIXdbTkFNRVNQQUNFX0lERU5USUZJRVJdKSB3W05BTUVTUEFDRV9JREVOVElGSUVSXSA9IHt9O1xuaWYgKCF3W05BTUVTUEFDRV9JREVOVElGSUVSXS5zdHlsZXMpIHdbTkFNRVNQQUNFX0lERU5USUZJRVJdLnN0eWxlcyA9IHt9O1xuaWYgKCF3W05BTUVTUEFDRV9JREVOVElGSUVSXS5ob29rcykgd1tOQU1FU1BBQ0VfSURFTlRJRklFUl0uaG9va3MgPSB7fTtcbmlmICghd1tOQU1FU1BBQ0VfSURFTlRJRklFUl0uc2hpbXMpIHdbTkFNRVNQQUNFX0lERU5USUZJRVJdLnNoaW1zID0gW107XG52YXIgbmFtZXNwYWNlID0gd1tOQU1FU1BBQ0VfSURFTlRJRklFUl07XG5cbnZhciBmdW5jdGlvbnMgPSBbXTtcblxudmFyIGxpc3RlbmVyID0gZnVuY3Rpb24gbGlzdGVuZXIoKSB7XG4gIERPQ1VNRU5ULnJlbW92ZUV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBsaXN0ZW5lcik7XG4gIGxvYWRlZCA9IDE7XG4gIGZ1bmN0aW9ucy5tYXAoZnVuY3Rpb24gKGZuKSB7XG4gICAgcmV0dXJuIGZuKCk7XG4gIH0pO1xufTtcblxudmFyIGxvYWRlZCA9IGZhbHNlO1xuXG5pZiAoSVNfRE9NKSB7XG4gIGxvYWRlZCA9IChET0NVTUVOVC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwgPyAvXmxvYWRlZHxeYy8gOiAvXmxvYWRlZHxeaXxeYy8pLnRlc3QoRE9DVU1FTlQucmVhZHlTdGF0ZSk7XG4gIGlmICghbG9hZGVkKSBET0NVTUVOVC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgbGlzdGVuZXIpO1xufVxuXG5mdW5jdGlvbiBkb21yZWFkeSAoZm4pIHtcbiAgaWYgKCFJU19ET00pIHJldHVybjtcbiAgbG9hZGVkID8gc2V0VGltZW91dChmbiwgMCkgOiBmdW5jdGlvbnMucHVzaChmbik7XG59XG5cbnZhciBQRU5ESU5HID0gJ3BlbmRpbmcnO1xudmFyIFNFVFRMRUQgPSAnc2V0dGxlZCc7XG52YXIgRlVMRklMTEVEID0gJ2Z1bGZpbGxlZCc7XG52YXIgUkVKRUNURUQgPSAncmVqZWN0ZWQnO1xuXG52YXIgTk9PUCA9IGZ1bmN0aW9uIE5PT1AoKSB7fTtcblxudmFyIGlzTm9kZSA9IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBnbG9iYWwucHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGdsb2JhbC5wcm9jZXNzLmVtaXQgPT09ICdmdW5jdGlvbic7XG52YXIgYXN5bmNTZXRUaW1lciA9IHR5cGVvZiBzZXRJbW1lZGlhdGUgPT09ICd1bmRlZmluZWQnID8gc2V0VGltZW91dCA6IHNldEltbWVkaWF0ZTtcbnZhciBhc3luY1F1ZXVlID0gW107XG52YXIgYXN5bmNUaW1lcjtcblxuZnVuY3Rpb24gYXN5bmNGbHVzaCgpIHtcbiAgLy8gcnVuIHByb21pc2UgY2FsbGJhY2tzXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXN5bmNRdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgIGFzeW5jUXVldWVbaV1bMF0oYXN5bmNRdWV1ZVtpXVsxXSk7XG4gIH0gLy8gcmVzZXQgYXN5bmMgYXN5bmNRdWV1ZVxuXG5cbiAgYXN5bmNRdWV1ZSA9IFtdO1xuICBhc3luY1RpbWVyID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIGFzeW5jQ2FsbChjYWxsYmFjaywgYXJnKSB7XG4gIGFzeW5jUXVldWUucHVzaChbY2FsbGJhY2ssIGFyZ10pO1xuXG4gIGlmICghYXN5bmNUaW1lcikge1xuICAgIGFzeW5jVGltZXIgPSB0cnVlO1xuICAgIGFzeW5jU2V0VGltZXIoYXN5bmNGbHVzaCwgMCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlUmVzb2x2ZXIocmVzb2x2ZXIsIHByb21pc2UpIHtcbiAgZnVuY3Rpb24gcmVzb2x2ZVByb21pc2UodmFsdWUpIHtcbiAgICByZXNvbHZlKHByb21pc2UsIHZhbHVlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlamVjdFByb21pc2UocmVhc29uKSB7XG4gICAgcmVqZWN0KHByb21pc2UsIHJlYXNvbik7XG4gIH1cblxuICB0cnkge1xuICAgIHJlc29sdmVyKHJlc29sdmVQcm9taXNlLCByZWplY3RQcm9taXNlKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlamVjdFByb21pc2UoZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW52b2tlQ2FsbGJhY2soc3Vic2NyaWJlcikge1xuICB2YXIgb3duZXIgPSBzdWJzY3JpYmVyLm93bmVyO1xuICB2YXIgc2V0dGxlZCA9IG93bmVyLl9zdGF0ZTtcbiAgdmFyIHZhbHVlID0gb3duZXIuX2RhdGE7XG4gIHZhciBjYWxsYmFjayA9IHN1YnNjcmliZXJbc2V0dGxlZF07XG4gIHZhciBwcm9taXNlID0gc3Vic2NyaWJlci50aGVuO1xuXG4gIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICBzZXR0bGVkID0gRlVMRklMTEVEO1xuXG4gICAgdHJ5IHtcbiAgICAgIHZhbHVlID0gY2FsbGJhY2sodmFsdWUpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlamVjdChwcm9taXNlLCBlKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWhhbmRsZVRoZW5hYmxlKHByb21pc2UsIHZhbHVlKSkge1xuICAgIGlmIChzZXR0bGVkID09PSBGVUxGSUxMRUQpIHtcbiAgICAgIHJlc29sdmUocHJvbWlzZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChzZXR0bGVkID09PSBSRUpFQ1RFRCkge1xuICAgICAgcmVqZWN0KHByb21pc2UsIHZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlVGhlbmFibGUocHJvbWlzZSwgdmFsdWUpIHtcbiAgdmFyIHJlc29sdmVkO1xuXG4gIHRyeSB7XG4gICAgaWYgKHByb21pc2UgPT09IHZhbHVlKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBIHByb21pc2VzIGNhbGxiYWNrIGNhbm5vdCByZXR1cm4gdGhhdCBzYW1lIHByb21pc2UuJyk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICYmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicgfHwgX3R5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnKSkge1xuICAgICAgLy8gdGhlbiBzaG91bGQgYmUgcmV0cmlldmVkIG9ubHkgb25jZVxuICAgICAgdmFyIHRoZW4gPSB2YWx1ZS50aGVuO1xuXG4gICAgICBpZiAodHlwZW9mIHRoZW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhlbi5jYWxsKHZhbHVlLCBmdW5jdGlvbiAodmFsKSB7XG4gICAgICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IHZhbCkge1xuICAgICAgICAgICAgICBmdWxmaWxsKHByb21pc2UsIHZhbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXNvbHZlKHByb21pc2UsIHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LCBmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAgICAgcmVzb2x2ZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVqZWN0KHByb21pc2UsIHJlYXNvbik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgcmVqZWN0KHByb21pc2UsIGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlKHByb21pc2UsIHZhbHVlKSB7XG4gIGlmIChwcm9taXNlID09PSB2YWx1ZSB8fCAhaGFuZGxlVGhlbmFibGUocHJvbWlzZSwgdmFsdWUpKSB7XG4gICAgZnVsZmlsbChwcm9taXNlLCB2YWx1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZnVsZmlsbChwcm9taXNlLCB2YWx1ZSkge1xuICBpZiAocHJvbWlzZS5fc3RhdGUgPT09IFBFTkRJTkcpIHtcbiAgICBwcm9taXNlLl9zdGF0ZSA9IFNFVFRMRUQ7XG4gICAgcHJvbWlzZS5fZGF0YSA9IHZhbHVlO1xuICAgIGFzeW5jQ2FsbChwdWJsaXNoRnVsZmlsbG1lbnQsIHByb21pc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlamVjdChwcm9taXNlLCByZWFzb24pIHtcbiAgaWYgKHByb21pc2UuX3N0YXRlID09PSBQRU5ESU5HKSB7XG4gICAgcHJvbWlzZS5fc3RhdGUgPSBTRVRUTEVEO1xuICAgIHByb21pc2UuX2RhdGEgPSByZWFzb247XG4gICAgYXN5bmNDYWxsKHB1Ymxpc2hSZWplY3Rpb24sIHByb21pc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1Ymxpc2gocHJvbWlzZSkge1xuICBwcm9taXNlLl90aGVuID0gcHJvbWlzZS5fdGhlbi5mb3JFYWNoKGludm9rZUNhbGxiYWNrKTtcbn1cblxuZnVuY3Rpb24gcHVibGlzaEZ1bGZpbGxtZW50KHByb21pc2UpIHtcbiAgcHJvbWlzZS5fc3RhdGUgPSBGVUxGSUxMRUQ7XG4gIHB1Ymxpc2gocHJvbWlzZSk7XG59XG5cbmZ1bmN0aW9uIHB1Ymxpc2hSZWplY3Rpb24ocHJvbWlzZSkge1xuICBwcm9taXNlLl9zdGF0ZSA9IFJFSkVDVEVEO1xuICBwdWJsaXNoKHByb21pc2UpO1xuXG4gIGlmICghcHJvbWlzZS5faGFuZGxlZCAmJiBpc05vZGUpIHtcbiAgICBnbG9iYWwucHJvY2Vzcy5lbWl0KCd1bmhhbmRsZWRSZWplY3Rpb24nLCBwcm9taXNlLl9kYXRhLCBwcm9taXNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBub3RpZnlSZWplY3Rpb25IYW5kbGVkKHByb21pc2UpIHtcbiAgZ2xvYmFsLnByb2Nlc3MuZW1pdCgncmVqZWN0aW9uSGFuZGxlZCcsIHByb21pc2UpO1xufVxuLyoqXG4gKiBAY2xhc3NcbiAqL1xuXG5cbmZ1bmN0aW9uIFAocmVzb2x2ZXIpIHtcbiAgaWYgKHR5cGVvZiByZXNvbHZlciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Byb21pc2UgcmVzb2x2ZXIgJyArIHJlc29sdmVyICsgJyBpcyBub3QgYSBmdW5jdGlvbicpO1xuICB9XG5cbiAgaWYgKHRoaXMgaW5zdGFuY2VvZiBQID09PSBmYWxzZSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ZhaWxlZCB0byBjb25zdHJ1Y3QgXFwnUHJvbWlzZVxcJzogUGxlYXNlIHVzZSB0aGUgXFwnbmV3XFwnIG9wZXJhdG9yLCB0aGlzIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uJyk7XG4gIH1cblxuICB0aGlzLl90aGVuID0gW107XG4gIGludm9rZVJlc29sdmVyKHJlc29sdmVyLCB0aGlzKTtcbn1cblxuUC5wcm90b3R5cGUgPSB7XG4gIGNvbnN0cnVjdG9yOiBQLFxuICBfc3RhdGU6IFBFTkRJTkcsXG4gIF90aGVuOiBudWxsLFxuICBfZGF0YTogdW5kZWZpbmVkLFxuICBfaGFuZGxlZDogZmFsc2UsXG4gIHRoZW46IGZ1bmN0aW9uIHRoZW4ob25GdWxmaWxsbWVudCwgb25SZWplY3Rpb24pIHtcbiAgICB2YXIgc3Vic2NyaWJlciA9IHtcbiAgICAgIG93bmVyOiB0aGlzLFxuICAgICAgdGhlbjogbmV3IHRoaXMuY29uc3RydWN0b3IoTk9PUCksXG4gICAgICBmdWxmaWxsZWQ6IG9uRnVsZmlsbG1lbnQsXG4gICAgICByZWplY3RlZDogb25SZWplY3Rpb25cbiAgICB9O1xuXG4gICAgaWYgKChvblJlamVjdGlvbiB8fCBvbkZ1bGZpbGxtZW50KSAmJiAhdGhpcy5faGFuZGxlZCkge1xuICAgICAgdGhpcy5faGFuZGxlZCA9IHRydWU7XG5cbiAgICAgIGlmICh0aGlzLl9zdGF0ZSA9PT0gUkVKRUNURUQgJiYgaXNOb2RlKSB7XG4gICAgICAgIGFzeW5jQ2FsbChub3RpZnlSZWplY3Rpb25IYW5kbGVkLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fc3RhdGUgPT09IEZVTEZJTExFRCB8fCB0aGlzLl9zdGF0ZSA9PT0gUkVKRUNURUQpIHtcbiAgICAgIC8vIGFscmVhZHkgcmVzb2x2ZWQsIGNhbGwgY2FsbGJhY2sgYXN5bmNcbiAgICAgIGFzeW5jQ2FsbChpbnZva2VDYWxsYmFjaywgc3Vic2NyaWJlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHN1YnNjcmliZVxuICAgICAgdGhpcy5fdGhlbi5wdXNoKHN1YnNjcmliZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJzY3JpYmVyLnRoZW47XG4gIH0sXG4gIGNhdGNoOiBmdW5jdGlvbiBfY2F0Y2gob25SZWplY3Rpb24pIHtcbiAgICByZXR1cm4gdGhpcy50aGVuKG51bGwsIG9uUmVqZWN0aW9uKTtcbiAgfVxufTtcblxuUC5hbGwgPSBmdW5jdGlvbiAocHJvbWlzZXMpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHByb21pc2VzKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1lvdSBtdXN0IHBhc3MgYW4gYXJyYXkgdG8gUHJvbWlzZS5hbGwoKS4nKTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdmFyIHJlc3VsdHMgPSBbXTtcbiAgICB2YXIgcmVtYWluaW5nID0gMDtcblxuICAgIGZ1bmN0aW9uIHJlc29sdmVyKGluZGV4KSB7XG4gICAgICByZW1haW5pbmcrKztcbiAgICAgIHJldHVybiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmVzdWx0c1tpbmRleF0gPSB2YWx1ZTtcblxuICAgICAgICBpZiAoISAtLXJlbWFpbmluZykge1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgZm9yICh2YXIgaSA9IDAsIHByb21pc2U7IGkgPCBwcm9taXNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgcHJvbWlzZSA9IHByb21pc2VzW2ldO1xuXG4gICAgICBpZiAocHJvbWlzZSAmJiB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHByb21pc2UudGhlbihyZXNvbHZlcihpKSwgcmVqZWN0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdHNbaV0gPSBwcm9taXNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcmVtYWluaW5nKSB7XG4gICAgICByZXNvbHZlKHJlc3VsdHMpO1xuICAgIH1cbiAgfSk7XG59O1xuXG5QLnJhY2UgPSBmdW5jdGlvbiAocHJvbWlzZXMpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHByb21pc2VzKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1lvdSBtdXN0IHBhc3MgYW4gYXJyYXkgdG8gUHJvbWlzZS5yYWNlKCkuJyk7XG4gIH1cblxuICByZXR1cm4gbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIGZvciAodmFyIGkgPSAwLCBwcm9taXNlOyBpIDwgcHJvbWlzZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHByb21pc2UgPSBwcm9taXNlc1tpXTtcblxuICAgICAgaWYgKHByb21pc2UgJiYgdHlwZW9mIHByb21pc2UudGhlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBwcm9taXNlLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUocHJvbWlzZSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn07XG5cblAucmVzb2x2ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICBpZiAodmFsdWUgJiYgX3R5cGVvZih2YWx1ZSkgPT09ICdvYmplY3QnICYmIHZhbHVlLmNvbnN0cnVjdG9yID09PSBQKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgcmVzb2x2ZSh2YWx1ZSk7XG4gIH0pO1xufTtcblxuUC5yZWplY3QgPSBmdW5jdGlvbiAocmVhc29uKSB7XG4gIHJldHVybiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgcmVqZWN0KHJlYXNvbik7XG4gIH0pO1xufTtcblxudmFyIHBpY2tlZCA9IHR5cGVvZiBQcm9taXNlID09PSAnZnVuY3Rpb24nID8gUHJvbWlzZSA6IFA7XG5cbnZhciBkID0gVU5JVFNfSU5fR1JJRDtcbnZhciBtZWFuaW5nbGVzc1RyYW5zZm9ybSA9IHtcbiAgc2l6ZTogMTYsXG4gIHg6IDAsXG4gIHk6IDAsXG4gIHJvdGF0ZTogMCxcbiAgZmxpcFg6IGZhbHNlLFxuICBmbGlwWTogZmFsc2Vcbn07XG5cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWQobmFtZSkge1xuICByZXR1cm4gflJFU0VSVkVEX0NMQVNTRVMuaW5kZXhPZihuYW1lKTtcbn1cbmZ1bmN0aW9uIGluc2VydENzcyhjc3MpIHtcbiAgaWYgKCFjc3MgfHwgIUlTX0RPTSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBzdHlsZSA9IERPQ1VNRU5ULmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIHN0eWxlLnNldEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0L2NzcycpO1xuICBzdHlsZS5pbm5lckhUTUwgPSBjc3M7XG4gIHZhciBoZWFkQ2hpbGRyZW4gPSBET0NVTUVOVC5oZWFkLmNoaWxkTm9kZXM7XG4gIHZhciBiZWZvcmVDaGlsZCA9IG51bGw7XG5cbiAgZm9yICh2YXIgaSA9IGhlYWRDaGlsZHJlbi5sZW5ndGggLSAxOyBpID4gLTE7IGktLSkge1xuICAgIHZhciBjaGlsZCA9IGhlYWRDaGlsZHJlbltpXTtcbiAgICB2YXIgdGFnTmFtZSA9IChjaGlsZC50YWdOYW1lIHx8ICcnKS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgaWYgKFsnU1RZTEUnLCAnTElOSyddLmluZGV4T2YodGFnTmFtZSkgPiAtMSkge1xuICAgICAgYmVmb3JlQ2hpbGQgPSBjaGlsZDtcbiAgICB9XG4gIH1cblxuICBET0NVTUVOVC5oZWFkLmluc2VydEJlZm9yZShzdHlsZSwgYmVmb3JlQ2hpbGQpO1xuICByZXR1cm4gY3NzO1xufVxudmFyIGlkUG9vbCA9ICcwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWic7XG5mdW5jdGlvbiBuZXh0VW5pcXVlSWQoKSB7XG4gIHZhciBzaXplID0gMTI7XG4gIHZhciBpZCA9ICcnO1xuXG4gIHdoaWxlIChzaXplLS0gPiAwKSB7XG4gICAgaWQgKz0gaWRQb29sW01hdGgucmFuZG9tKCkgKiA2MiB8IDBdO1xuICB9XG5cbiAgcmV0dXJuIGlkO1xufVxuZnVuY3Rpb24gdG9BcnJheShvYmopIHtcbiAgdmFyIGFycmF5ID0gW107XG5cbiAgZm9yICh2YXIgaSA9IChvYmogfHwgW10pLmxlbmd0aCA+Pj4gMDsgaS0tOykge1xuICAgIGFycmF5W2ldID0gb2JqW2ldO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5O1xufVxuZnVuY3Rpb24gY2xhc3NBcnJheShub2RlKSB7XG4gIGlmIChub2RlLmNsYXNzTGlzdCkge1xuICAgIHJldHVybiB0b0FycmF5KG5vZGUuY2xhc3NMaXN0KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKG5vZGUuZ2V0QXR0cmlidXRlKCdjbGFzcycpIHx8ICcnKS5zcGxpdCgnICcpLmZpbHRlcihmdW5jdGlvbiAoaSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfSk7XG4gIH1cbn1cbmZ1bmN0aW9uIGdldEljb25OYW1lKGZhbWlseVByZWZpeCwgY2xzKSB7XG4gIHZhciBwYXJ0cyA9IGNscy5zcGxpdCgnLScpO1xuICB2YXIgcHJlZml4ID0gcGFydHNbMF07XG4gIHZhciBpY29uTmFtZSA9IHBhcnRzLnNsaWNlKDEpLmpvaW4oJy0nKTtcblxuICBpZiAocHJlZml4ID09PSBmYW1pbHlQcmVmaXggJiYgaWNvbk5hbWUgIT09ICcnICYmICFpc1Jlc2VydmVkKGljb25OYW1lKSkge1xuICAgIHJldHVybiBpY29uTmFtZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuZnVuY3Rpb24gaHRtbEVzY2FwZShzdHIpIHtcbiAgcmV0dXJuIFwiXCIuY29uY2F0KHN0cikucmVwbGFjZSgvJi9nLCAnJmFtcDsnKS5yZXBsYWNlKC9cIi9nLCAnJnF1b3Q7JykucmVwbGFjZSgvJy9nLCAnJiMzOTsnKS5yZXBsYWNlKC88L2csICcmbHQ7JykucmVwbGFjZSgvPi9nLCAnJmd0OycpO1xufVxuZnVuY3Rpb24gam9pbkF0dHJpYnV0ZXMoYXR0cmlidXRlcykge1xuICByZXR1cm4gT2JqZWN0LmtleXMoYXR0cmlidXRlcyB8fCB7fSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIGF0dHJpYnV0ZU5hbWUpIHtcbiAgICByZXR1cm4gYWNjICsgXCJcIi5jb25jYXQoYXR0cmlidXRlTmFtZSwgXCI9XFxcIlwiKS5jb25jYXQoaHRtbEVzY2FwZShhdHRyaWJ1dGVzW2F0dHJpYnV0ZU5hbWVdKSwgXCJcXFwiIFwiKTtcbiAgfSwgJycpLnRyaW0oKTtcbn1cbmZ1bmN0aW9uIGpvaW5TdHlsZXMoc3R5bGVzKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhzdHlsZXMgfHwge30pLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBzdHlsZU5hbWUpIHtcbiAgICByZXR1cm4gYWNjICsgXCJcIi5jb25jYXQoc3R5bGVOYW1lLCBcIjogXCIpLmNvbmNhdChzdHlsZXNbc3R5bGVOYW1lXSwgXCI7XCIpO1xuICB9LCAnJyk7XG59XG5mdW5jdGlvbiB0cmFuc2Zvcm1Jc01lYW5pbmdmdWwodHJhbnNmb3JtKSB7XG4gIHJldHVybiB0cmFuc2Zvcm0uc2l6ZSAhPT0gbWVhbmluZ2xlc3NUcmFuc2Zvcm0uc2l6ZSB8fCB0cmFuc2Zvcm0ueCAhPT0gbWVhbmluZ2xlc3NUcmFuc2Zvcm0ueCB8fCB0cmFuc2Zvcm0ueSAhPT0gbWVhbmluZ2xlc3NUcmFuc2Zvcm0ueSB8fCB0cmFuc2Zvcm0ucm90YXRlICE9PSBtZWFuaW5nbGVzc1RyYW5zZm9ybS5yb3RhdGUgfHwgdHJhbnNmb3JtLmZsaXBYIHx8IHRyYW5zZm9ybS5mbGlwWTtcbn1cbmZ1bmN0aW9uIHRyYW5zZm9ybUZvclN2ZyhfcmVmKSB7XG4gIHZhciB0cmFuc2Zvcm0gPSBfcmVmLnRyYW5zZm9ybSxcbiAgICAgIGNvbnRhaW5lcldpZHRoID0gX3JlZi5jb250YWluZXJXaWR0aCxcbiAgICAgIGljb25XaWR0aCA9IF9yZWYuaWNvbldpZHRoO1xuICB2YXIgb3V0ZXIgPSB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIi5jb25jYXQoY29udGFpbmVyV2lkdGggLyAyLCBcIiAyNTYpXCIpXG4gIH07XG4gIHZhciBpbm5lclRyYW5zbGF0ZSA9IFwidHJhbnNsYXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAqIDMyLCBcIiwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAqIDMyLCBcIikgXCIpO1xuICB2YXIgaW5uZXJTY2FsZSA9IFwic2NhbGUoXCIuY29uY2F0KHRyYW5zZm9ybS5zaXplIC8gMTYgKiAodHJhbnNmb3JtLmZsaXBYID8gLTEgOiAxKSwgXCIsIFwiKS5jb25jYXQodHJhbnNmb3JtLnNpemUgLyAxNiAqICh0cmFuc2Zvcm0uZmxpcFkgPyAtMSA6IDEpLCBcIikgXCIpO1xuICB2YXIgaW5uZXJSb3RhdGUgPSBcInJvdGF0ZShcIi5jb25jYXQodHJhbnNmb3JtLnJvdGF0ZSwgXCIgMCAwKVwiKTtcbiAgdmFyIGlubmVyID0ge1xuICAgIHRyYW5zZm9ybTogXCJcIi5jb25jYXQoaW5uZXJUcmFuc2xhdGUsIFwiIFwiKS5jb25jYXQoaW5uZXJTY2FsZSwgXCIgXCIpLmNvbmNhdChpbm5lclJvdGF0ZSlcbiAgfTtcbiAgdmFyIHBhdGggPSB7XG4gICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZShcIi5jb25jYXQoaWNvbldpZHRoIC8gMiAqIC0xLCBcIiAtMjU2KVwiKVxuICB9O1xuICByZXR1cm4ge1xuICAgIG91dGVyOiBvdXRlcixcbiAgICBpbm5lcjogaW5uZXIsXG4gICAgcGF0aDogcGF0aFxuICB9O1xufVxuZnVuY3Rpb24gdHJhbnNmb3JtRm9yQ3NzKF9yZWYyKSB7XG4gIHZhciB0cmFuc2Zvcm0gPSBfcmVmMi50cmFuc2Zvcm0sXG4gICAgICBfcmVmMiR3aWR0aCA9IF9yZWYyLndpZHRoLFxuICAgICAgd2lkdGggPSBfcmVmMiR3aWR0aCA9PT0gdm9pZCAwID8gVU5JVFNfSU5fR1JJRCA6IF9yZWYyJHdpZHRoLFxuICAgICAgX3JlZjIkaGVpZ2h0ID0gX3JlZjIuaGVpZ2h0LFxuICAgICAgaGVpZ2h0ID0gX3JlZjIkaGVpZ2h0ID09PSB2b2lkIDAgPyBVTklUU19JTl9HUklEIDogX3JlZjIkaGVpZ2h0LFxuICAgICAgX3JlZjIkc3RhcnRDZW50ZXJlZCA9IF9yZWYyLnN0YXJ0Q2VudGVyZWQsXG4gICAgICBzdGFydENlbnRlcmVkID0gX3JlZjIkc3RhcnRDZW50ZXJlZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmMiRzdGFydENlbnRlcmVkO1xuICB2YXIgdmFsID0gJyc7XG5cbiAgaWYgKHN0YXJ0Q2VudGVyZWQgJiYgSVNfSUUpIHtcbiAgICB2YWwgKz0gXCJ0cmFuc2xhdGUoXCIuY29uY2F0KHRyYW5zZm9ybS54IC8gZCAtIHdpZHRoIC8gMiwgXCJlbSwgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAvIGQgLSBoZWlnaHQgLyAyLCBcImVtKSBcIik7XG4gIH0gZWxzZSBpZiAoc3RhcnRDZW50ZXJlZCkge1xuICAgIHZhbCArPSBcInRyYW5zbGF0ZShjYWxjKC01MCUgKyBcIi5jb25jYXQodHJhbnNmb3JtLnggLyBkLCBcImVtKSwgY2FsYygtNTAlICsgXCIpLmNvbmNhdCh0cmFuc2Zvcm0ueSAvIGQsIFwiZW0pKSBcIik7XG4gIH0gZWxzZSB7XG4gICAgdmFsICs9IFwidHJhbnNsYXRlKFwiLmNvbmNhdCh0cmFuc2Zvcm0ueCAvIGQsIFwiZW0sIFwiKS5jb25jYXQodHJhbnNmb3JtLnkgLyBkLCBcImVtKSBcIik7XG4gIH1cblxuICB2YWwgKz0gXCJzY2FsZShcIi5jb25jYXQodHJhbnNmb3JtLnNpemUgLyBkICogKHRyYW5zZm9ybS5mbGlwWCA/IC0xIDogMSksIFwiLCBcIikuY29uY2F0KHRyYW5zZm9ybS5zaXplIC8gZCAqICh0cmFuc2Zvcm0uZmxpcFkgPyAtMSA6IDEpLCBcIikgXCIpO1xuICB2YWwgKz0gXCJyb3RhdGUoXCIuY29uY2F0KHRyYW5zZm9ybS5yb3RhdGUsIFwiZGVnKSBcIik7XG4gIHJldHVybiB2YWw7XG59XG5cbnZhciBBTExfU1BBQ0UgPSB7XG4gIHg6IDAsXG4gIHk6IDAsXG4gIHdpZHRoOiAnMTAwJScsXG4gIGhlaWdodDogJzEwMCUnXG59O1xuXG5mdW5jdGlvbiBmaWxsQmxhY2soYWJzdHJhY3QpIHtcbiAgdmFyIGZvcmNlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB0cnVlO1xuXG4gIGlmIChhYnN0cmFjdC5hdHRyaWJ1dGVzICYmIChhYnN0cmFjdC5hdHRyaWJ1dGVzLmZpbGwgfHwgZm9yY2UpKSB7XG4gICAgYWJzdHJhY3QuYXR0cmlidXRlcy5maWxsID0gJ2JsYWNrJztcbiAgfVxuXG4gIHJldHVybiBhYnN0cmFjdDtcbn1cblxuZnVuY3Rpb24gZGVHcm91cChhYnN0cmFjdCkge1xuICBpZiAoYWJzdHJhY3QudGFnID09PSAnZycpIHtcbiAgICByZXR1cm4gYWJzdHJhY3QuY2hpbGRyZW47XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFthYnN0cmFjdF07XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFrZUljb25NYXNraW5nIChfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBhdHRyaWJ1dGVzID0gX3JlZi5hdHRyaWJ1dGVzLFxuICAgICAgbWFpbiA9IF9yZWYubWFpbixcbiAgICAgIG1hc2sgPSBfcmVmLm1hc2ssXG4gICAgICB0cmFuc2Zvcm0gPSBfcmVmLnRyYW5zZm9ybTtcbiAgdmFyIG1haW5XaWR0aCA9IG1haW4ud2lkdGgsXG4gICAgICBtYWluUGF0aCA9IG1haW4uaWNvbjtcbiAgdmFyIG1hc2tXaWR0aCA9IG1hc2sud2lkdGgsXG4gICAgICBtYXNrUGF0aCA9IG1hc2suaWNvbjtcbiAgdmFyIHRyYW5zID0gdHJhbnNmb3JtRm9yU3ZnKHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zZm9ybSxcbiAgICBjb250YWluZXJXaWR0aDogbWFza1dpZHRoLFxuICAgIGljb25XaWR0aDogbWFpbldpZHRoXG4gIH0pO1xuICB2YXIgbWFza1JlY3QgPSB7XG4gICAgdGFnOiAncmVjdCcsXG4gICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZCh7fSwgQUxMX1NQQUNFLCB7XG4gICAgICBmaWxsOiAnd2hpdGUnXG4gICAgfSlcbiAgfTtcbiAgdmFyIG1hc2tJbm5lckdyb3VwQ2hpbGRyZW5NaXhpbiA9IG1haW5QYXRoLmNoaWxkcmVuID8ge1xuICAgIGNoaWxkcmVuOiBtYWluUGF0aC5jaGlsZHJlbi5tYXAoZmlsbEJsYWNrKVxuICB9IDoge307XG4gIHZhciBtYXNrSW5uZXJHcm91cCA9IHtcbiAgICB0YWc6ICdnJyxcbiAgICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkKHt9LCB0cmFucy5pbm5lciksXG4gICAgY2hpbGRyZW46IFtmaWxsQmxhY2soX29iamVjdFNwcmVhZCh7XG4gICAgICB0YWc6IG1haW5QYXRoLnRhZyxcbiAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQoe30sIG1haW5QYXRoLmF0dHJpYnV0ZXMsIHRyYW5zLnBhdGgpXG4gICAgfSwgbWFza0lubmVyR3JvdXBDaGlsZHJlbk1peGluKSldXG4gIH07XG4gIHZhciBtYXNrT3V0ZXJHcm91cCA9IHtcbiAgICB0YWc6ICdnJyxcbiAgICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkKHt9LCB0cmFucy5vdXRlciksXG4gICAgY2hpbGRyZW46IFttYXNrSW5uZXJHcm91cF1cbiAgfTtcbiAgdmFyIG1hc2tJZCA9IFwibWFzay1cIi5jb25jYXQobmV4dFVuaXF1ZUlkKCkpO1xuICB2YXIgY2xpcElkID0gXCJjbGlwLVwiLmNvbmNhdChuZXh0VW5pcXVlSWQoKSk7XG4gIHZhciBtYXNrVGFnID0ge1xuICAgIHRhZzogJ21hc2snLFxuICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQoe30sIEFMTF9TUEFDRSwge1xuICAgICAgaWQ6IG1hc2tJZCxcbiAgICAgIG1hc2tVbml0czogJ3VzZXJTcGFjZU9uVXNlJyxcbiAgICAgIG1hc2tDb250ZW50VW5pdHM6ICd1c2VyU3BhY2VPblVzZSdcbiAgICB9KSxcbiAgICBjaGlsZHJlbjogW21hc2tSZWN0LCBtYXNrT3V0ZXJHcm91cF1cbiAgfTtcbiAgdmFyIGRlZnMgPSB7XG4gICAgdGFnOiAnZGVmcycsXG4gICAgY2hpbGRyZW46IFt7XG4gICAgICB0YWc6ICdjbGlwUGF0aCcsXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGlkOiBjbGlwSWRcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogZGVHcm91cChtYXNrUGF0aClcbiAgICB9LCBtYXNrVGFnXVxuICB9O1xuICBjaGlsZHJlbi5wdXNoKGRlZnMsIHtcbiAgICB0YWc6ICdyZWN0JyxcbiAgICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkKHtcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgJ2NsaXAtcGF0aCc6IFwidXJsKCNcIi5jb25jYXQoY2xpcElkLCBcIilcIiksXG4gICAgICBtYXNrOiBcInVybCgjXCIuY29uY2F0KG1hc2tJZCwgXCIpXCIpXG4gICAgfSwgQUxMX1NQQUNFKVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgYXR0cmlidXRlczogYXR0cmlidXRlc1xuICB9O1xufVxuXG5mdW5jdGlvbiBtYWtlSWNvblN0YW5kYXJkIChfcmVmKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYuY2hpbGRyZW4sXG4gICAgICBhdHRyaWJ1dGVzID0gX3JlZi5hdHRyaWJ1dGVzLFxuICAgICAgbWFpbiA9IF9yZWYubWFpbixcbiAgICAgIHRyYW5zZm9ybSA9IF9yZWYudHJhbnNmb3JtLFxuICAgICAgc3R5bGVzID0gX3JlZi5zdHlsZXM7XG4gIHZhciBzdHlsZVN0cmluZyA9IGpvaW5TdHlsZXMoc3R5bGVzKTtcblxuICBpZiAoc3R5bGVTdHJpbmcubGVuZ3RoID4gMCkge1xuICAgIGF0dHJpYnV0ZXNbJ3N0eWxlJ10gPSBzdHlsZVN0cmluZztcbiAgfVxuXG4gIGlmICh0cmFuc2Zvcm1Jc01lYW5pbmdmdWwodHJhbnNmb3JtKSkge1xuICAgIHZhciB0cmFucyA9IHRyYW5zZm9ybUZvclN2Zyh7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zZm9ybSxcbiAgICAgIGNvbnRhaW5lcldpZHRoOiBtYWluLndpZHRoLFxuICAgICAgaWNvbldpZHRoOiBtYWluLndpZHRoXG4gICAgfSk7XG4gICAgY2hpbGRyZW4ucHVzaCh7XG4gICAgICB0YWc6ICdnJyxcbiAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQoe30sIHRyYW5zLm91dGVyKSxcbiAgICAgIGNoaWxkcmVuOiBbe1xuICAgICAgICB0YWc6ICdnJyxcbiAgICAgICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZCh7fSwgdHJhbnMuaW5uZXIpLFxuICAgICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgICB0YWc6IG1haW4uaWNvbi50YWcsXG4gICAgICAgICAgY2hpbGRyZW46IG1haW4uaWNvbi5jaGlsZHJlbixcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkKHt9LCBtYWluLmljb24uYXR0cmlidXRlcywgdHJhbnMucGF0aClcbiAgICAgICAgfV1cbiAgICAgIH1dXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgY2hpbGRyZW4ucHVzaChtYWluLmljb24pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgYXR0cmlidXRlczogYXR0cmlidXRlc1xuICB9O1xufVxuXG5mdW5jdGlvbiBhc0ljb24gKF9yZWYpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbixcbiAgICAgIG1haW4gPSBfcmVmLm1haW4sXG4gICAgICBtYXNrID0gX3JlZi5tYXNrLFxuICAgICAgYXR0cmlidXRlcyA9IF9yZWYuYXR0cmlidXRlcyxcbiAgICAgIHN0eWxlcyA9IF9yZWYuc3R5bGVzLFxuICAgICAgdHJhbnNmb3JtID0gX3JlZi50cmFuc2Zvcm07XG5cbiAgaWYgKHRyYW5zZm9ybUlzTWVhbmluZ2Z1bCh0cmFuc2Zvcm0pICYmIG1haW4uZm91bmQgJiYgIW1hc2suZm91bmQpIHtcbiAgICB2YXIgd2lkdGggPSBtYWluLndpZHRoLFxuICAgICAgICBoZWlnaHQgPSBtYWluLmhlaWdodDtcbiAgICB2YXIgb2Zmc2V0ID0ge1xuICAgICAgeDogd2lkdGggLyBoZWlnaHQgLyAyLFxuICAgICAgeTogMC41XG4gICAgfTtcbiAgICBhdHRyaWJ1dGVzWydzdHlsZSddID0gam9pblN0eWxlcyhfb2JqZWN0U3ByZWFkKHt9LCBzdHlsZXMsIHtcbiAgICAgICd0cmFuc2Zvcm0tb3JpZ2luJzogXCJcIi5jb25jYXQob2Zmc2V0LnggKyB0cmFuc2Zvcm0ueCAvIDE2LCBcImVtIFwiKS5jb25jYXQob2Zmc2V0LnkgKyB0cmFuc2Zvcm0ueSAvIDE2LCBcImVtXCIpXG4gICAgfSkpO1xuICB9XG5cbiAgcmV0dXJuIFt7XG4gICAgdGFnOiAnc3ZnJyxcbiAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICB9XTtcbn1cblxuZnVuY3Rpb24gYXNTeW1ib2wgKF9yZWYpIHtcbiAgdmFyIHByZWZpeCA9IF9yZWYucHJlZml4LFxuICAgICAgaWNvbk5hbWUgPSBfcmVmLmljb25OYW1lLFxuICAgICAgY2hpbGRyZW4gPSBfcmVmLmNoaWxkcmVuLFxuICAgICAgYXR0cmlidXRlcyA9IF9yZWYuYXR0cmlidXRlcyxcbiAgICAgIHN5bWJvbCA9IF9yZWYuc3ltYm9sO1xuICB2YXIgaWQgPSBzeW1ib2wgPT09IHRydWUgPyBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLVwiKS5jb25jYXQoY29uZmlnLmZhbWlseVByZWZpeCwgXCItXCIpLmNvbmNhdChpY29uTmFtZSkgOiBzeW1ib2w7XG4gIHJldHVybiBbe1xuICAgIHRhZzogJ3N2ZycsXG4gICAgYXR0cmlidXRlczoge1xuICAgICAgc3R5bGU6ICdkaXNwbGF5OiBub25lOydcbiAgICB9LFxuICAgIGNoaWxkcmVuOiBbe1xuICAgICAgdGFnOiAnc3ltYm9sJyxcbiAgICAgIGF0dHJpYnV0ZXM6IF9vYmplY3RTcHJlYWQoe30sIGF0dHJpYnV0ZXMsIHtcbiAgICAgICAgaWQ6IGlkXG4gICAgICB9KSxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH1dXG4gIH1dO1xufVxuXG5mdW5jdGlvbiBtYWtlSW5saW5lU3ZnQWJzdHJhY3QocGFyYW1zKSB7XG4gIHZhciBfcGFyYW1zJGljb25zID0gcGFyYW1zLmljb25zLFxuICAgICAgbWFpbiA9IF9wYXJhbXMkaWNvbnMubWFpbixcbiAgICAgIG1hc2sgPSBfcGFyYW1zJGljb25zLm1hc2ssXG4gICAgICBwcmVmaXggPSBwYXJhbXMucHJlZml4LFxuICAgICAgaWNvbk5hbWUgPSBwYXJhbXMuaWNvbk5hbWUsXG4gICAgICB0cmFuc2Zvcm0gPSBwYXJhbXMudHJhbnNmb3JtLFxuICAgICAgc3ltYm9sID0gcGFyYW1zLnN5bWJvbCxcbiAgICAgIHRpdGxlID0gcGFyYW1zLnRpdGxlLFxuICAgICAgZXh0cmEgPSBwYXJhbXMuZXh0cmEsXG4gICAgICBfcGFyYW1zJHdhdGNoYWJsZSA9IHBhcmFtcy53YXRjaGFibGUsXG4gICAgICB3YXRjaGFibGUgPSBfcGFyYW1zJHdhdGNoYWJsZSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcGFyYW1zJHdhdGNoYWJsZTtcblxuICB2YXIgX3JlZiA9IG1hc2suZm91bmQgPyBtYXNrIDogbWFpbixcbiAgICAgIHdpZHRoID0gX3JlZi53aWR0aCxcbiAgICAgIGhlaWdodCA9IF9yZWYuaGVpZ2h0O1xuXG4gIHZhciB3aWR0aENsYXNzID0gXCJmYS13LVwiLmNvbmNhdChNYXRoLmNlaWwod2lkdGggLyBoZWlnaHQgKiAxNikpO1xuICB2YXIgYXR0ckNsYXNzID0gW2NvbmZpZy5yZXBsYWNlbWVudENsYXNzLCBpY29uTmFtZSA/IFwiXCIuY29uY2F0KGNvbmZpZy5mYW1pbHlQcmVmaXgsIFwiLVwiKS5jb25jYXQoaWNvbk5hbWUpIDogJycsIHdpZHRoQ2xhc3NdLmZpbHRlcihmdW5jdGlvbiAoYykge1xuICAgIHJldHVybiBleHRyYS5jbGFzc2VzLmluZGV4T2YoYykgPT09IC0xO1xuICB9KS5jb25jYXQoZXh0cmEuY2xhc3Nlcykuam9pbignICcpO1xuICB2YXIgY29udGVudCA9IHtcbiAgICBjaGlsZHJlbjogW10sXG4gICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZCh7fSwgZXh0cmEuYXR0cmlidXRlcywge1xuICAgICAgJ2RhdGEtcHJlZml4JzogcHJlZml4LFxuICAgICAgJ2RhdGEtaWNvbic6IGljb25OYW1lLFxuICAgICAgJ2NsYXNzJzogYXR0ckNsYXNzLFxuICAgICAgJ3JvbGUnOiBleHRyYS5hdHRyaWJ1dGVzLnJvbGUgfHwgJ2ltZycsXG4gICAgICAneG1sbnMnOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICAgICAgJ3ZpZXdCb3gnOiBcIjAgMCBcIi5jb25jYXQod2lkdGgsIFwiIFwiKS5jb25jYXQoaGVpZ2h0KVxuICAgIH0pXG4gIH07XG5cbiAgaWYgKHdhdGNoYWJsZSkge1xuICAgIGNvbnRlbnQuYXR0cmlidXRlc1tEQVRBX0ZBX0kyU1ZHXSA9ICcnO1xuICB9XG5cbiAgaWYgKHRpdGxlKSBjb250ZW50LmNoaWxkcmVuLnB1c2goe1xuICAgIHRhZzogJ3RpdGxlJyxcbiAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICBpZDogY29udGVudC5hdHRyaWJ1dGVzWydhcmlhLWxhYmVsbGVkYnknXSB8fCBcInRpdGxlLVwiLmNvbmNhdChuZXh0VW5pcXVlSWQoKSlcbiAgICB9LFxuICAgIGNoaWxkcmVuOiBbdGl0bGVdXG4gIH0pO1xuXG4gIHZhciBhcmdzID0gX29iamVjdFNwcmVhZCh7fSwgY29udGVudCwge1xuICAgIHByZWZpeDogcHJlZml4LFxuICAgIGljb25OYW1lOiBpY29uTmFtZSxcbiAgICBtYWluOiBtYWluLFxuICAgIG1hc2s6IG1hc2ssXG4gICAgdHJhbnNmb3JtOiB0cmFuc2Zvcm0sXG4gICAgc3ltYm9sOiBzeW1ib2wsXG4gICAgc3R5bGVzOiBleHRyYS5zdHlsZXNcbiAgfSk7XG5cbiAgdmFyIF9yZWYyID0gbWFzay5mb3VuZCAmJiBtYWluLmZvdW5kID8gbWFrZUljb25NYXNraW5nKGFyZ3MpIDogbWFrZUljb25TdGFuZGFyZChhcmdzKSxcbiAgICAgIGNoaWxkcmVuID0gX3JlZjIuY2hpbGRyZW4sXG4gICAgICBhdHRyaWJ1dGVzID0gX3JlZjIuYXR0cmlidXRlcztcblxuICBhcmdzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIGFyZ3MuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG5cbiAgaWYgKHN5bWJvbCkge1xuICAgIHJldHVybiBhc1N5bWJvbChhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXNJY29uKGFyZ3MpO1xuICB9XG59XG5mdW5jdGlvbiBtYWtlTGF5ZXJzVGV4dEFic3RyYWN0KHBhcmFtcykge1xuICB2YXIgY29udGVudCA9IHBhcmFtcy5jb250ZW50LFxuICAgICAgd2lkdGggPSBwYXJhbXMud2lkdGgsXG4gICAgICBoZWlnaHQgPSBwYXJhbXMuaGVpZ2h0LFxuICAgICAgdHJhbnNmb3JtID0gcGFyYW1zLnRyYW5zZm9ybSxcbiAgICAgIHRpdGxlID0gcGFyYW1zLnRpdGxlLFxuICAgICAgZXh0cmEgPSBwYXJhbXMuZXh0cmEsXG4gICAgICBfcGFyYW1zJHdhdGNoYWJsZTIgPSBwYXJhbXMud2F0Y2hhYmxlLFxuICAgICAgd2F0Y2hhYmxlID0gX3BhcmFtcyR3YXRjaGFibGUyID09PSB2b2lkIDAgPyBmYWxzZSA6IF9wYXJhbXMkd2F0Y2hhYmxlMjtcblxuICB2YXIgYXR0cmlidXRlcyA9IF9vYmplY3RTcHJlYWQoe30sIGV4dHJhLmF0dHJpYnV0ZXMsIHRpdGxlID8ge1xuICAgICd0aXRsZSc6IHRpdGxlXG4gIH0gOiB7fSwge1xuICAgICdjbGFzcyc6IGV4dHJhLmNsYXNzZXMuam9pbignICcpXG4gIH0pO1xuXG4gIGlmICh3YXRjaGFibGUpIHtcbiAgICBhdHRyaWJ1dGVzW0RBVEFfRkFfSTJTVkddID0gJyc7XG4gIH1cblxuICB2YXIgc3R5bGVzID0gX29iamVjdFNwcmVhZCh7fSwgZXh0cmEuc3R5bGVzKTtcblxuICBpZiAodHJhbnNmb3JtSXNNZWFuaW5nZnVsKHRyYW5zZm9ybSkpIHtcbiAgICBzdHlsZXNbJ3RyYW5zZm9ybSddID0gdHJhbnNmb3JtRm9yQ3NzKHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgICAgc3RhcnRDZW50ZXJlZDogdHJ1ZSxcbiAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgIGhlaWdodDogaGVpZ2h0XG4gICAgfSk7XG4gICAgc3R5bGVzWyctd2Via2l0LXRyYW5zZm9ybSddID0gc3R5bGVzWyd0cmFuc2Zvcm0nXTtcbiAgfVxuXG4gIHZhciBzdHlsZVN0cmluZyA9IGpvaW5TdHlsZXMoc3R5bGVzKTtcblxuICBpZiAoc3R5bGVTdHJpbmcubGVuZ3RoID4gMCkge1xuICAgIGF0dHJpYnV0ZXNbJ3N0eWxlJ10gPSBzdHlsZVN0cmluZztcbiAgfVxuXG4gIHZhciB2YWwgPSBbXTtcbiAgdmFsLnB1c2goe1xuICAgIHRhZzogJ3NwYW4nLFxuICAgIGF0dHJpYnV0ZXM6IGF0dHJpYnV0ZXMsXG4gICAgY2hpbGRyZW46IFtjb250ZW50XVxuICB9KTtcblxuICBpZiAodGl0bGUpIHtcbiAgICB2YWwucHVzaCh7XG4gICAgICB0YWc6ICdzcGFuJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgY2xhc3M6ICdzci1vbmx5J1xuICAgICAgfSxcbiAgICAgIGNoaWxkcmVuOiBbdGl0bGVdXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdmFsO1xufVxuZnVuY3Rpb24gbWFrZUxheWVyc0NvdW50ZXJBYnN0cmFjdChwYXJhbXMpIHtcbiAgdmFyIGNvbnRlbnQgPSBwYXJhbXMuY29udGVudCxcbiAgICAgIHRpdGxlID0gcGFyYW1zLnRpdGxlLFxuICAgICAgZXh0cmEgPSBwYXJhbXMuZXh0cmE7XG5cbiAgdmFyIGF0dHJpYnV0ZXMgPSBfb2JqZWN0U3ByZWFkKHt9LCBleHRyYS5hdHRyaWJ1dGVzLCB0aXRsZSA/IHtcbiAgICAndGl0bGUnOiB0aXRsZVxuICB9IDoge30sIHtcbiAgICAnY2xhc3MnOiBleHRyYS5jbGFzc2VzLmpvaW4oJyAnKVxuICB9KTtcblxuICB2YXIgc3R5bGVTdHJpbmcgPSBqb2luU3R5bGVzKGV4dHJhLnN0eWxlcyk7XG5cbiAgaWYgKHN0eWxlU3RyaW5nLmxlbmd0aCA+IDApIHtcbiAgICBhdHRyaWJ1dGVzWydzdHlsZSddID0gc3R5bGVTdHJpbmc7XG4gIH1cblxuICB2YXIgdmFsID0gW107XG4gIHZhbC5wdXNoKHtcbiAgICB0YWc6ICdzcGFuJyxcbiAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLFxuICAgIGNoaWxkcmVuOiBbY29udGVudF1cbiAgfSk7XG5cbiAgaWYgKHRpdGxlKSB7XG4gICAgdmFsLnB1c2goe1xuICAgICAgdGFnOiAnc3BhbicsXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGNsYXNzOiAnc3Itb25seSdcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogW3RpdGxlXVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHZhbDtcbn1cblxudmFyIG5vb3AkMSA9IGZ1bmN0aW9uIG5vb3AoKSB7fTtcblxudmFyIHAgPSBjb25maWcubWVhc3VyZVBlcmZvcm1hbmNlICYmIFBFUkZPUk1BTkNFICYmIFBFUkZPUk1BTkNFLm1hcmsgJiYgUEVSRk9STUFOQ0UubWVhc3VyZSA/IFBFUkZPUk1BTkNFIDoge1xuICBtYXJrOiBub29wJDEsXG4gIG1lYXN1cmU6IG5vb3AkMVxufTtcbnZhciBwcmVhbWJsZSA9IFwiRkEgXFxcIjUuMTEuMlxcXCJcIjtcblxudmFyIGJlZ2luID0gZnVuY3Rpb24gYmVnaW4obmFtZSkge1xuICBwLm1hcmsoXCJcIi5jb25jYXQocHJlYW1ibGUsIFwiIFwiKS5jb25jYXQobmFtZSwgXCIgYmVnaW5zXCIpKTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gZW5kKG5hbWUpO1xuICB9O1xufTtcblxudmFyIGVuZCA9IGZ1bmN0aW9uIGVuZChuYW1lKSB7XG4gIHAubWFyayhcIlwiLmNvbmNhdChwcmVhbWJsZSwgXCIgXCIpLmNvbmNhdChuYW1lLCBcIiBlbmRzXCIpKTtcbiAgcC5tZWFzdXJlKFwiXCIuY29uY2F0KHByZWFtYmxlLCBcIiBcIikuY29uY2F0KG5hbWUpLCBcIlwiLmNvbmNhdChwcmVhbWJsZSwgXCIgXCIpLmNvbmNhdChuYW1lLCBcIiBiZWdpbnNcIiksIFwiXCIuY29uY2F0KHByZWFtYmxlLCBcIiBcIikuY29uY2F0KG5hbWUsIFwiIGVuZHNcIikpO1xufTtcblxudmFyIHBlcmYgPSB7XG4gIGJlZ2luOiBiZWdpbixcbiAgZW5kOiBlbmRcbn07XG5cbi8qKlxuICogSW50ZXJuYWwgaGVscGVyIHRvIGJpbmQgYSBmdW5jdGlvbiBrbm93biB0byBoYXZlIDQgYXJndW1lbnRzXG4gKiB0byBhIGdpdmVuIGNvbnRleHQuXG4gKi9cblxudmFyIGJpbmRJbnRlcm5hbDQgPSBmdW5jdGlvbiBiaW5kSW50ZXJuYWw0KGZ1bmMsIHRoaXNDb250ZXh0KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgIHJldHVybiBmdW5jLmNhbGwodGhpc0NvbnRleHQsIGEsIGIsIGMsIGQpO1xuICB9O1xufTtcblxuLyoqXG4gKiAjIFJlZHVjZVxuICpcbiAqIEEgZmFzdCBvYmplY3QgYC5yZWR1Y2UoKWAgaW1wbGVtZW50YXRpb24uXG4gKlxuICogQHBhcmFtICB7T2JqZWN0fSAgIHN1YmplY3QgICAgICBUaGUgb2JqZWN0IHRvIHJlZHVjZSBvdmVyLlxuICogQHBhcmFtICB7RnVuY3Rpb259IGZuICAgICAgICAgICBUaGUgcmVkdWNlciBmdW5jdGlvbi5cbiAqIEBwYXJhbSAge21peGVkfSAgICBpbml0aWFsVmFsdWUgVGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSByZWR1Y2VyLCBkZWZhdWx0cyB0byBzdWJqZWN0WzBdLlxuICogQHBhcmFtICB7T2JqZWN0fSAgIHRoaXNDb250ZXh0ICBUaGUgY29udGV4dCBmb3IgdGhlIHJlZHVjZXIuXG4gKiBAcmV0dXJuIHttaXhlZH0gICAgICAgICAgICAgICAgIFRoZSBmaW5hbCByZXN1bHQuXG4gKi9cblxuXG52YXIgcmVkdWNlID0gZnVuY3Rpb24gZmFzdFJlZHVjZU9iamVjdChzdWJqZWN0LCBmbiwgaW5pdGlhbFZhbHVlLCB0aGlzQ29udGV4dCkge1xuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHN1YmplY3QpLFxuICAgICAgbGVuZ3RoID0ga2V5cy5sZW5ndGgsXG4gICAgICBpdGVyYXRvciA9IHRoaXNDb250ZXh0ICE9PSB1bmRlZmluZWQgPyBiaW5kSW50ZXJuYWw0KGZuLCB0aGlzQ29udGV4dCkgOiBmbixcbiAgICAgIGksXG4gICAgICBrZXksXG4gICAgICByZXN1bHQ7XG5cbiAgaWYgKGluaXRpYWxWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgaSA9IDE7XG4gICAgcmVzdWx0ID0gc3ViamVjdFtrZXlzWzBdXTtcbiAgfSBlbHNlIHtcbiAgICBpID0gMDtcbiAgICByZXN1bHQgPSBpbml0aWFsVmFsdWU7XG4gIH1cblxuICBmb3IgKDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0ga2V5c1tpXTtcbiAgICByZXN1bHQgPSBpdGVyYXRvcihyZXN1bHQsIHN1YmplY3Rba2V5XSwga2V5LCBzdWJqZWN0KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5mdW5jdGlvbiB0b0hleCh1bmljb2RlKSB7XG4gIHZhciByZXN1bHQgPSAnJztcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHVuaWNvZGUubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaGV4ID0gdW5pY29kZS5jaGFyQ29kZUF0KGkpLnRvU3RyaW5nKDE2KTtcbiAgICByZXN1bHQgKz0gKCcwMDAnICsgaGV4KS5zbGljZSgtNCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBkZWZpbmVJY29ucyhwcmVmaXgsIGljb25zKSB7XG4gIHZhciBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuICB2YXIgX3BhcmFtcyRza2lwSG9va3MgPSBwYXJhbXMuc2tpcEhvb2tzLFxuICAgICAgc2tpcEhvb2tzID0gX3BhcmFtcyRza2lwSG9va3MgPT09IHZvaWQgMCA/IGZhbHNlIDogX3BhcmFtcyRza2lwSG9va3M7XG4gIHZhciBub3JtYWxpemVkID0gT2JqZWN0LmtleXMoaWNvbnMpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBpY29uTmFtZSkge1xuICAgIHZhciBpY29uID0gaWNvbnNbaWNvbk5hbWVdO1xuICAgIHZhciBleHBhbmRlZCA9ICEhaWNvbi5pY29uO1xuXG4gICAgaWYgKGV4cGFuZGVkKSB7XG4gICAgICBhY2NbaWNvbi5pY29uTmFtZV0gPSBpY29uLmljb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY1tpY29uTmFtZV0gPSBpY29uO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcblxuICBpZiAodHlwZW9mIG5hbWVzcGFjZS5ob29rcy5hZGRQYWNrID09PSAnZnVuY3Rpb24nICYmICFza2lwSG9va3MpIHtcbiAgICBuYW1lc3BhY2UuaG9va3MuYWRkUGFjayhwcmVmaXgsIG5vcm1hbGl6ZWQpO1xuICB9IGVsc2Uge1xuICAgIG5hbWVzcGFjZS5zdHlsZXNbcHJlZml4XSA9IF9vYmplY3RTcHJlYWQoe30sIG5hbWVzcGFjZS5zdHlsZXNbcHJlZml4XSB8fCB7fSwgbm9ybWFsaXplZCk7XG4gIH1cbiAgLyoqXG4gICAqIEZvbnQgQXdlc29tZSA0IHVzZWQgdGhlIHByZWZpeCBvZiBgZmFgIGZvciBhbGwgaWNvbnMuIFdpdGggdGhlIGludHJvZHVjdGlvblxuICAgKiBvZiBuZXcgc3R5bGVzIHdlIG5lZWRlZCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdGhlbS4gUHJlZml4IGBmYWAgaXMgbm93IGFuIGFsaWFzXG4gICAqIGZvciBgZmFzYCBzbyB3ZSdsbCBlYXN5IHRoZSB1cGdyYWRlIHByb2Nlc3MgZm9yIG91ciB1c2VycyBieSBhdXRvbWF0aWNhbGx5IGRlZmluaW5nXG4gICAqIHRoaXMgYXMgd2VsbC5cbiAgICovXG5cblxuICBpZiAocHJlZml4ID09PSAnZmFzJykge1xuICAgIGRlZmluZUljb25zKCdmYScsIGljb25zKTtcbiAgfVxufVxuXG52YXIgc3R5bGVzID0gbmFtZXNwYWNlLnN0eWxlcyxcbiAgICBzaGltcyA9IG5hbWVzcGFjZS5zaGltcztcbnZhciBfYnlVbmljb2RlID0ge307XG52YXIgX2J5TGlnYXR1cmUgPSB7fTtcbnZhciBfYnlPbGROYW1lID0ge307XG52YXIgYnVpbGQgPSBmdW5jdGlvbiBidWlsZCgpIHtcbiAgdmFyIGxvb2t1cCA9IGZ1bmN0aW9uIGxvb2t1cChyZWR1Y2VyKSB7XG4gICAgcmV0dXJuIHJlZHVjZShzdHlsZXMsIGZ1bmN0aW9uIChvLCBzdHlsZSwgcHJlZml4KSB7XG4gICAgICBvW3ByZWZpeF0gPSByZWR1Y2Uoc3R5bGUsIHJlZHVjZXIsIHt9KTtcbiAgICAgIHJldHVybiBvO1xuICAgIH0sIHt9KTtcbiAgfTtcblxuICBfYnlVbmljb2RlID0gbG9va3VwKGZ1bmN0aW9uIChhY2MsIGljb24sIGljb25OYW1lKSB7XG4gICAgaWYgKGljb25bM10pIHtcbiAgICAgIGFjY1tpY29uWzNdXSA9IGljb25OYW1lO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH0pO1xuICBfYnlMaWdhdHVyZSA9IGxvb2t1cChmdW5jdGlvbiAoYWNjLCBpY29uLCBpY29uTmFtZSkge1xuICAgIHZhciBsaWdhdHVyZXMgPSBpY29uWzJdO1xuICAgIGFjY1tpY29uTmFtZV0gPSBpY29uTmFtZTtcbiAgICBsaWdhdHVyZXMuZm9yRWFjaChmdW5jdGlvbiAobGlnYXR1cmUpIHtcbiAgICAgIGFjY1tsaWdhdHVyZV0gPSBpY29uTmFtZTtcbiAgICB9KTtcbiAgICByZXR1cm4gYWNjO1xuICB9KTtcbiAgdmFyIGhhc1JlZ3VsYXIgPSAnZmFyJyBpbiBzdHlsZXM7XG4gIF9ieU9sZE5hbWUgPSByZWR1Y2Uoc2hpbXMsIGZ1bmN0aW9uIChhY2MsIHNoaW0pIHtcbiAgICB2YXIgb2xkTmFtZSA9IHNoaW1bMF07XG4gICAgdmFyIHByZWZpeCA9IHNoaW1bMV07XG4gICAgdmFyIGljb25OYW1lID0gc2hpbVsyXTtcblxuICAgIGlmIChwcmVmaXggPT09ICdmYXInICYmICFoYXNSZWd1bGFyKSB7XG4gICAgICBwcmVmaXggPSAnZmFzJztcbiAgICB9XG5cbiAgICBhY2Nbb2xkTmFtZV0gPSB7XG4gICAgICBwcmVmaXg6IHByZWZpeCxcbiAgICAgIGljb25OYW1lOiBpY29uTmFtZVxuICAgIH07XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufTtcbmJ1aWxkKCk7XG5mdW5jdGlvbiBieVVuaWNvZGUocHJlZml4LCB1bmljb2RlKSB7XG4gIHJldHVybiAoX2J5VW5pY29kZVtwcmVmaXhdIHx8IHt9KVt1bmljb2RlXTtcbn1cbmZ1bmN0aW9uIGJ5TGlnYXR1cmUocHJlZml4LCBsaWdhdHVyZSkge1xuICByZXR1cm4gKF9ieUxpZ2F0dXJlW3ByZWZpeF0gfHwge30pW2xpZ2F0dXJlXTtcbn1cbmZ1bmN0aW9uIGJ5T2xkTmFtZShuYW1lKSB7XG4gIHJldHVybiBfYnlPbGROYW1lW25hbWVdIHx8IHtcbiAgICBwcmVmaXg6IG51bGwsXG4gICAgaWNvbk5hbWU6IG51bGxcbiAgfTtcbn1cblxudmFyIHN0eWxlcyQxID0gbmFtZXNwYWNlLnN0eWxlcztcbnZhciBlbXB0eUNhbm9uaWNhbEljb24gPSBmdW5jdGlvbiBlbXB0eUNhbm9uaWNhbEljb24oKSB7XG4gIHJldHVybiB7XG4gICAgcHJlZml4OiBudWxsLFxuICAgIGljb25OYW1lOiBudWxsLFxuICAgIHJlc3Q6IFtdXG4gIH07XG59O1xuZnVuY3Rpb24gZ2V0Q2Fub25pY2FsSWNvbih2YWx1ZXMpIHtcbiAgcmV0dXJuIHZhbHVlcy5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgY2xzKSB7XG4gICAgdmFyIGljb25OYW1lID0gZ2V0SWNvbk5hbWUoY29uZmlnLmZhbWlseVByZWZpeCwgY2xzKTtcblxuICAgIGlmIChzdHlsZXMkMVtjbHNdKSB7XG4gICAgICBhY2MucHJlZml4ID0gY2xzO1xuICAgIH0gZWxzZSBpZiAoY29uZmlnLmF1dG9GZXRjaFN2ZyAmJiBbJ2ZhcycsICdmYXInLCAnZmFsJywgJ2ZhZCcsICdmYWInLCAnZmEnXS5pbmRleE9mKGNscykgPiAtMSkge1xuICAgICAgYWNjLnByZWZpeCA9IGNscztcbiAgICB9IGVsc2UgaWYgKGljb25OYW1lKSB7XG4gICAgICB2YXIgc2hpbSA9IGFjYy5wcmVmaXggPT09ICdmYScgPyBieU9sZE5hbWUoaWNvbk5hbWUpIDoge307XG4gICAgICBhY2MuaWNvbk5hbWUgPSBzaGltLmljb25OYW1lIHx8IGljb25OYW1lO1xuICAgICAgYWNjLnByZWZpeCA9IHNoaW0ucHJlZml4IHx8IGFjYy5wcmVmaXg7XG4gICAgfSBlbHNlIGlmIChjbHMgIT09IGNvbmZpZy5yZXBsYWNlbWVudENsYXNzICYmIGNscy5pbmRleE9mKCdmYS13LScpICE9PSAwKSB7XG4gICAgICBhY2MucmVzdC5wdXNoKGNscyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwgZW1wdHlDYW5vbmljYWxJY29uKCkpO1xufVxuZnVuY3Rpb24gaWNvbkZyb21NYXBwaW5nKG1hcHBpbmcsIHByZWZpeCwgaWNvbk5hbWUpIHtcbiAgaWYgKG1hcHBpbmcgJiYgbWFwcGluZ1twcmVmaXhdICYmIG1hcHBpbmdbcHJlZml4XVtpY29uTmFtZV0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlZml4OiBwcmVmaXgsXG4gICAgICBpY29uTmFtZTogaWNvbk5hbWUsXG4gICAgICBpY29uOiBtYXBwaW5nW3ByZWZpeF1baWNvbk5hbWVdXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0b0h0bWwoYWJzdHJhY3ROb2Rlcykge1xuICB2YXIgdGFnID0gYWJzdHJhY3ROb2Rlcy50YWcsXG4gICAgICBfYWJzdHJhY3ROb2RlcyRhdHRyaWIgPSBhYnN0cmFjdE5vZGVzLmF0dHJpYnV0ZXMsXG4gICAgICBhdHRyaWJ1dGVzID0gX2Fic3RyYWN0Tm9kZXMkYXR0cmliID09PSB2b2lkIDAgPyB7fSA6IF9hYnN0cmFjdE5vZGVzJGF0dHJpYixcbiAgICAgIF9hYnN0cmFjdE5vZGVzJGNoaWxkciA9IGFic3RyYWN0Tm9kZXMuY2hpbGRyZW4sXG4gICAgICBjaGlsZHJlbiA9IF9hYnN0cmFjdE5vZGVzJGNoaWxkciA9PT0gdm9pZCAwID8gW10gOiBfYWJzdHJhY3ROb2RlcyRjaGlsZHI7XG5cbiAgaWYgKHR5cGVvZiBhYnN0cmFjdE5vZGVzID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBodG1sRXNjYXBlKGFic3RyYWN0Tm9kZXMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBcIjxcIi5jb25jYXQodGFnLCBcIiBcIikuY29uY2F0KGpvaW5BdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpLCBcIj5cIikuY29uY2F0KGNoaWxkcmVuLm1hcCh0b0h0bWwpLmpvaW4oJycpLCBcIjwvXCIpLmNvbmNhdCh0YWcsIFwiPlwiKTtcbiAgfVxufVxuXG52YXIgbm9vcCQyID0gZnVuY3Rpb24gbm9vcCgpIHt9O1xuXG5mdW5jdGlvbiBpc1dhdGNoZWQobm9kZSkge1xuICB2YXIgaTJzdmcgPSBub2RlLmdldEF0dHJpYnV0ZSA/IG5vZGUuZ2V0QXR0cmlidXRlKERBVEFfRkFfSTJTVkcpIDogbnVsbDtcbiAgcmV0dXJuIHR5cGVvZiBpMnN2ZyA9PT0gJ3N0cmluZyc7XG59XG5cbmZ1bmN0aW9uIGdldE11dGF0b3IoKSB7XG4gIGlmIChjb25maWcuYXV0b1JlcGxhY2VTdmcgPT09IHRydWUpIHtcbiAgICByZXR1cm4gbXV0YXRvcnMucmVwbGFjZTtcbiAgfVxuXG4gIHZhciBtdXRhdG9yID0gbXV0YXRvcnNbY29uZmlnLmF1dG9SZXBsYWNlU3ZnXTtcbiAgcmV0dXJuIG11dGF0b3IgfHwgbXV0YXRvcnMucmVwbGFjZTtcbn1cblxudmFyIG11dGF0b3JzID0ge1xuICByZXBsYWNlOiBmdW5jdGlvbiByZXBsYWNlKG11dGF0aW9uKSB7XG4gICAgdmFyIG5vZGUgPSBtdXRhdGlvblswXTtcbiAgICB2YXIgYWJzdHJhY3QgPSBtdXRhdGlvblsxXTtcbiAgICB2YXIgbmV3T3V0ZXJIVE1MID0gYWJzdHJhY3QubWFwKGZ1bmN0aW9uIChhKSB7XG4gICAgICByZXR1cm4gdG9IdG1sKGEpO1xuICAgIH0pLmpvaW4oJ1xcbicpO1xuXG4gICAgaWYgKG5vZGUucGFyZW50Tm9kZSAmJiBub2RlLm91dGVySFRNTCkge1xuICAgICAgbm9kZS5vdXRlckhUTUwgPSBuZXdPdXRlckhUTUwgKyAoY29uZmlnLmtlZXBPcmlnaW5hbFNvdXJjZSAmJiBub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPT0gJ3N2ZycgPyBcIjwhLS0gXCIuY29uY2F0KG5vZGUub3V0ZXJIVE1MLCBcIiAtLT5cIikgOiAnJyk7XG4gICAgfSBlbHNlIGlmIChub2RlLnBhcmVudE5vZGUpIHtcbiAgICAgIHZhciBuZXdOb2RlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgbm9kZS5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuZXdOb2RlLCBub2RlKTtcbiAgICAgIG5ld05vZGUub3V0ZXJIVE1MID0gbmV3T3V0ZXJIVE1MO1xuICAgIH1cbiAgfSxcbiAgbmVzdDogZnVuY3Rpb24gbmVzdChtdXRhdGlvbikge1xuICAgIHZhciBub2RlID0gbXV0YXRpb25bMF07XG4gICAgdmFyIGFic3RyYWN0ID0gbXV0YXRpb25bMV07IC8vIElmIHdlIGFscmVhZHkgaGF2ZSBhIHJlcGxhY2VkIG5vZGUgd2UgZG8gbm90IHdhbnQgdG8gY29udGludWUgbmVzdGluZyB3aXRoaW4gaXQuXG4gICAgLy8gU2hvcnQtY2lyY3VpdCB0byB0aGUgc3RhbmRhcmQgcmVwbGFjZW1lbnRcblxuICAgIGlmICh+Y2xhc3NBcnJheShub2RlKS5pbmRleE9mKGNvbmZpZy5yZXBsYWNlbWVudENsYXNzKSkge1xuICAgICAgcmV0dXJuIG11dGF0b3JzLnJlcGxhY2UobXV0YXRpb24pO1xuICAgIH1cblxuICAgIHZhciBmb3JTdmcgPSBuZXcgUmVnRXhwKFwiXCIuY29uY2F0KGNvbmZpZy5mYW1pbHlQcmVmaXgsIFwiLS4qXCIpKTtcbiAgICBkZWxldGUgYWJzdHJhY3RbMF0uYXR0cmlidXRlcy5zdHlsZTtcbiAgICBkZWxldGUgYWJzdHJhY3RbMF0uYXR0cmlidXRlcy5pZDtcbiAgICB2YXIgc3BsaXRDbGFzc2VzID0gYWJzdHJhY3RbMF0uYXR0cmlidXRlcy5jbGFzcy5zcGxpdCgnICcpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBjbHMpIHtcbiAgICAgIGlmIChjbHMgPT09IGNvbmZpZy5yZXBsYWNlbWVudENsYXNzIHx8IGNscy5tYXRjaChmb3JTdmcpKSB7XG4gICAgICAgIGFjYy50b1N2Zy5wdXNoKGNscyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY2MudG9Ob2RlLnB1c2goY2xzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7XG4gICAgICB0b05vZGU6IFtdLFxuICAgICAgdG9Tdmc6IFtdXG4gICAgfSk7XG4gICAgYWJzdHJhY3RbMF0uYXR0cmlidXRlcy5jbGFzcyA9IHNwbGl0Q2xhc3Nlcy50b1N2Zy5qb2luKCcgJyk7XG4gICAgdmFyIG5ld0lubmVySFRNTCA9IGFic3RyYWN0Lm1hcChmdW5jdGlvbiAoYSkge1xuICAgICAgcmV0dXJuIHRvSHRtbChhKTtcbiAgICB9KS5qb2luKCdcXG4nKTtcbiAgICBub2RlLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBzcGxpdENsYXNzZXMudG9Ob2RlLmpvaW4oJyAnKSk7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoREFUQV9GQV9JMlNWRywgJycpO1xuICAgIG5vZGUuaW5uZXJIVE1MID0gbmV3SW5uZXJIVE1MO1xuICB9XG59O1xuXG5mdW5jdGlvbiBwZXJmb3JtT3BlcmF0aW9uU3luYyhvcCkge1xuICBvcCgpO1xufVxuXG5mdW5jdGlvbiBwZXJmb3JtKG11dGF0aW9ucywgY2FsbGJhY2spIHtcbiAgdmFyIGNhbGxiYWNrRnVuY3Rpb24gPSB0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicgPyBjYWxsYmFjayA6IG5vb3AkMjtcblxuICBpZiAobXV0YXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgIGNhbGxiYWNrRnVuY3Rpb24oKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgZnJhbWUgPSBwZXJmb3JtT3BlcmF0aW9uU3luYztcblxuICAgIGlmIChjb25maWcubXV0YXRlQXBwcm9hY2ggPT09IE1VVEFUSU9OX0FQUFJPQUNIX0FTWU5DKSB7XG4gICAgICBmcmFtZSA9IFdJTkRPVy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHwgcGVyZm9ybU9wZXJhdGlvblN5bmM7XG4gICAgfVxuXG4gICAgZnJhbWUoZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIG11dGF0b3IgPSBnZXRNdXRhdG9yKCk7XG4gICAgICB2YXIgbWFyayA9IHBlcmYuYmVnaW4oJ211dGF0ZScpO1xuICAgICAgbXV0YXRpb25zLm1hcChtdXRhdG9yKTtcbiAgICAgIG1hcmsoKTtcbiAgICAgIGNhbGxiYWNrRnVuY3Rpb24oKTtcbiAgICB9KTtcbiAgfVxufVxudmFyIGRpc2FibGVkID0gZmFsc2U7XG5mdW5jdGlvbiBkaXNhYmxlT2JzZXJ2YXRpb24oKSB7XG4gIGRpc2FibGVkID0gdHJ1ZTtcbn1cbmZ1bmN0aW9uIGVuYWJsZU9ic2VydmF0aW9uKCkge1xuICBkaXNhYmxlZCA9IGZhbHNlO1xufVxudmFyIG1vID0gbnVsbDtcbmZ1bmN0aW9uIG9ic2VydmUob3B0aW9ucykge1xuICBpZiAoIU1VVEFUSU9OX09CU0VSVkVSKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKCFjb25maWcub2JzZXJ2ZU11dGF0aW9ucykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciB0cmVlQ2FsbGJhY2sgPSBvcHRpb25zLnRyZWVDYWxsYmFjayxcbiAgICAgIG5vZGVDYWxsYmFjayA9IG9wdGlvbnMubm9kZUNhbGxiYWNrLFxuICAgICAgcHNldWRvRWxlbWVudHNDYWxsYmFjayA9IG9wdGlvbnMucHNldWRvRWxlbWVudHNDYWxsYmFjayxcbiAgICAgIF9vcHRpb25zJG9ic2VydmVNdXRhdCA9IG9wdGlvbnMub2JzZXJ2ZU11dGF0aW9uc1Jvb3QsXG4gICAgICBvYnNlcnZlTXV0YXRpb25zUm9vdCA9IF9vcHRpb25zJG9ic2VydmVNdXRhdCA9PT0gdm9pZCAwID8gRE9DVU1FTlQgOiBfb3B0aW9ucyRvYnNlcnZlTXV0YXQ7XG4gIG1vID0gbmV3IE1VVEFUSU9OX09CU0VSVkVSKGZ1bmN0aW9uIChvYmplY3RzKSB7XG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm47XG4gICAgdG9BcnJheShvYmplY3RzKS5mb3JFYWNoKGZ1bmN0aW9uIChtdXRhdGlvblJlY29yZCkge1xuICAgICAgaWYgKG11dGF0aW9uUmVjb3JkLnR5cGUgPT09ICdjaGlsZExpc3QnICYmIG11dGF0aW9uUmVjb3JkLmFkZGVkTm9kZXMubGVuZ3RoID4gMCAmJiAhaXNXYXRjaGVkKG11dGF0aW9uUmVjb3JkLmFkZGVkTm9kZXNbMF0pKSB7XG4gICAgICAgIGlmIChjb25maWcuc2VhcmNoUHNldWRvRWxlbWVudHMpIHtcbiAgICAgICAgICBwc2V1ZG9FbGVtZW50c0NhbGxiYWNrKG11dGF0aW9uUmVjb3JkLnRhcmdldCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cmVlQ2FsbGJhY2sobXV0YXRpb25SZWNvcmQudGFyZ2V0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG11dGF0aW9uUmVjb3JkLnR5cGUgPT09ICdhdHRyaWJ1dGVzJyAmJiBtdXRhdGlvblJlY29yZC50YXJnZXQucGFyZW50Tm9kZSAmJiBjb25maWcuc2VhcmNoUHNldWRvRWxlbWVudHMpIHtcbiAgICAgICAgcHNldWRvRWxlbWVudHNDYWxsYmFjayhtdXRhdGlvblJlY29yZC50YXJnZXQucGFyZW50Tm9kZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtdXRhdGlvblJlY29yZC50eXBlID09PSAnYXR0cmlidXRlcycgJiYgaXNXYXRjaGVkKG11dGF0aW9uUmVjb3JkLnRhcmdldCkgJiYgfkFUVFJJQlVURVNfV0FUQ0hFRF9GT1JfTVVUQVRJT04uaW5kZXhPZihtdXRhdGlvblJlY29yZC5hdHRyaWJ1dGVOYW1lKSkge1xuICAgICAgICBpZiAobXV0YXRpb25SZWNvcmQuYXR0cmlidXRlTmFtZSA9PT0gJ2NsYXNzJykge1xuICAgICAgICAgIHZhciBfZ2V0Q2Fub25pY2FsSWNvbiA9IGdldENhbm9uaWNhbEljb24oY2xhc3NBcnJheShtdXRhdGlvblJlY29yZC50YXJnZXQpKSxcbiAgICAgICAgICAgICAgcHJlZml4ID0gX2dldENhbm9uaWNhbEljb24ucHJlZml4LFxuICAgICAgICAgICAgICBpY29uTmFtZSA9IF9nZXRDYW5vbmljYWxJY29uLmljb25OYW1lO1xuXG4gICAgICAgICAgaWYgKHByZWZpeCkgbXV0YXRpb25SZWNvcmQudGFyZ2V0LnNldEF0dHJpYnV0ZSgnZGF0YS1wcmVmaXgnLCBwcmVmaXgpO1xuICAgICAgICAgIGlmIChpY29uTmFtZSkgbXV0YXRpb25SZWNvcmQudGFyZ2V0LnNldEF0dHJpYnV0ZSgnZGF0YS1pY29uJywgaWNvbk5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGVDYWxsYmFjayhtdXRhdGlvblJlY29yZC50YXJnZXQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuICBpZiAoIUlTX0RPTSkgcmV0dXJuO1xuICBtby5vYnNlcnZlKG9ic2VydmVNdXRhdGlvbnNSb290LCB7XG4gICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcbiAgICBzdWJ0cmVlOiB0cnVlXG4gIH0pO1xufVxuZnVuY3Rpb24gZGlzY29ubmVjdCgpIHtcbiAgaWYgKCFtbykgcmV0dXJuO1xuICBtby5kaXNjb25uZWN0KCk7XG59XG5cbmZ1bmN0aW9uIHN0eWxlUGFyc2VyIChub2RlKSB7XG4gIHZhciBzdHlsZSA9IG5vZGUuZ2V0QXR0cmlidXRlKCdzdHlsZScpO1xuICB2YXIgdmFsID0gW107XG5cbiAgaWYgKHN0eWxlKSB7XG4gICAgdmFsID0gc3R5bGUuc3BsaXQoJzsnKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgc3R5bGUpIHtcbiAgICAgIHZhciBzdHlsZXMgPSBzdHlsZS5zcGxpdCgnOicpO1xuICAgICAgdmFyIHByb3AgPSBzdHlsZXNbMF07XG4gICAgICB2YXIgdmFsdWUgPSBzdHlsZXMuc2xpY2UoMSk7XG5cbiAgICAgIGlmIChwcm9wICYmIHZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgYWNjW3Byb3BdID0gdmFsdWUuam9pbignOicpLnRyaW0oKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH1cblxuICByZXR1cm4gdmFsO1xufVxuXG5mdW5jdGlvbiBjbGFzc1BhcnNlciAobm9kZSkge1xuICB2YXIgZXhpc3RpbmdQcmVmaXggPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1wcmVmaXgnKTtcbiAgdmFyIGV4aXN0aW5nSWNvbk5hbWUgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1pY29uJyk7XG4gIHZhciBpbm5lclRleHQgPSBub2RlLmlubmVyVGV4dCAhPT0gdW5kZWZpbmVkID8gbm9kZS5pbm5lclRleHQudHJpbSgpIDogJyc7XG4gIHZhciB2YWwgPSBnZXRDYW5vbmljYWxJY29uKGNsYXNzQXJyYXkobm9kZSkpO1xuXG4gIGlmIChleGlzdGluZ1ByZWZpeCAmJiBleGlzdGluZ0ljb25OYW1lKSB7XG4gICAgdmFsLnByZWZpeCA9IGV4aXN0aW5nUHJlZml4O1xuICAgIHZhbC5pY29uTmFtZSA9IGV4aXN0aW5nSWNvbk5hbWU7XG4gIH1cblxuICBpZiAodmFsLnByZWZpeCAmJiBpbm5lclRleHQubGVuZ3RoID4gMSkge1xuICAgIHZhbC5pY29uTmFtZSA9IGJ5TGlnYXR1cmUodmFsLnByZWZpeCwgbm9kZS5pbm5lclRleHQpO1xuICB9IGVsc2UgaWYgKHZhbC5wcmVmaXggJiYgaW5uZXJUZXh0Lmxlbmd0aCA9PT0gMSkge1xuICAgIHZhbC5pY29uTmFtZSA9IGJ5VW5pY29kZSh2YWwucHJlZml4LCB0b0hleChub2RlLmlubmVyVGV4dCkpO1xuICB9XG5cbiAgcmV0dXJuIHZhbDtcbn1cblxudmFyIHBhcnNlVHJhbnNmb3JtU3RyaW5nID0gZnVuY3Rpb24gcGFyc2VUcmFuc2Zvcm1TdHJpbmcodHJhbnNmb3JtU3RyaW5nKSB7XG4gIHZhciB0cmFuc2Zvcm0gPSB7XG4gICAgc2l6ZTogMTYsXG4gICAgeDogMCxcbiAgICB5OiAwLFxuICAgIGZsaXBYOiBmYWxzZSxcbiAgICBmbGlwWTogZmFsc2UsXG4gICAgcm90YXRlOiAwXG4gIH07XG5cbiAgaWYgKCF0cmFuc2Zvcm1TdHJpbmcpIHtcbiAgICByZXR1cm4gdHJhbnNmb3JtO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0cmFuc2Zvcm1TdHJpbmcudG9Mb3dlckNhc2UoKS5zcGxpdCgnICcpLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBuKSB7XG4gICAgICB2YXIgcGFydHMgPSBuLnRvTG93ZXJDYXNlKCkuc3BsaXQoJy0nKTtcbiAgICAgIHZhciBmaXJzdCA9IHBhcnRzWzBdO1xuICAgICAgdmFyIHJlc3QgPSBwYXJ0cy5zbGljZSgxKS5qb2luKCctJyk7XG5cbiAgICAgIGlmIChmaXJzdCAmJiByZXN0ID09PSAnaCcpIHtcbiAgICAgICAgYWNjLmZsaXBYID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH1cblxuICAgICAgaWYgKGZpcnN0ICYmIHJlc3QgPT09ICd2Jykge1xuICAgICAgICBhY2MuZmxpcFkgPSB0cnVlO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuXG4gICAgICByZXN0ID0gcGFyc2VGbG9hdChyZXN0KTtcblxuICAgICAgaWYgKGlzTmFOKHJlc3QpKSB7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9XG5cbiAgICAgIHN3aXRjaCAoZmlyc3QpIHtcbiAgICAgICAgY2FzZSAnZ3Jvdyc6XG4gICAgICAgICAgYWNjLnNpemUgPSBhY2Muc2l6ZSArIHJlc3Q7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc2hyaW5rJzpcbiAgICAgICAgICBhY2Muc2l6ZSA9IGFjYy5zaXplIC0gcmVzdDtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICBhY2MueCA9IGFjYy54IC0gcmVzdDtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgYWNjLnggPSBhY2MueCArIHJlc3Q7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAndXAnOlxuICAgICAgICAgIGFjYy55ID0gYWNjLnkgLSByZXN0O1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICAgIGFjYy55ID0gYWNjLnkgKyByZXN0O1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JvdGF0ZSc6XG4gICAgICAgICAgYWNjLnJvdGF0ZSA9IGFjYy5yb3RhdGUgKyByZXN0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHRyYW5zZm9ybSk7XG4gIH1cbn07XG5mdW5jdGlvbiB0cmFuc2Zvcm1QYXJzZXIgKG5vZGUpIHtcbiAgcmV0dXJuIHBhcnNlVHJhbnNmb3JtU3RyaW5nKG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLWZhLXRyYW5zZm9ybScpKTtcbn1cblxuZnVuY3Rpb24gc3ltYm9sUGFyc2VyIChub2RlKSB7XG4gIHZhciBzeW1ib2wgPSBub2RlLmdldEF0dHJpYnV0ZSgnZGF0YS1mYS1zeW1ib2wnKTtcbiAgcmV0dXJuIHN5bWJvbCA9PT0gbnVsbCA/IGZhbHNlIDogc3ltYm9sID09PSAnJyA/IHRydWUgOiBzeW1ib2w7XG59XG5cbmZ1bmN0aW9uIGF0dHJpYnV0ZXNQYXJzZXIgKG5vZGUpIHtcbiAgdmFyIGV4dHJhQXR0cmlidXRlcyA9IHRvQXJyYXkobm9kZS5hdHRyaWJ1dGVzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgYXR0cikge1xuICAgIGlmIChhY2MubmFtZSAhPT0gJ2NsYXNzJyAmJiBhY2MubmFtZSAhPT0gJ3N0eWxlJykge1xuICAgICAgYWNjW2F0dHIubmFtZV0gPSBhdHRyLnZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbiAgdmFyIHRpdGxlID0gbm9kZS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyk7XG5cbiAgaWYgKGNvbmZpZy5hdXRvQTExeSkge1xuICAgIGlmICh0aXRsZSkge1xuICAgICAgZXh0cmFBdHRyaWJ1dGVzWydhcmlhLWxhYmVsbGVkYnknXSA9IFwiXCIuY29uY2F0KGNvbmZpZy5yZXBsYWNlbWVudENsYXNzLCBcIi10aXRsZS1cIikuY29uY2F0KG5leHRVbmlxdWVJZCgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZXh0cmFBdHRyaWJ1dGVzWydhcmlhLWhpZGRlbiddID0gJ3RydWUnO1xuICAgICAgZXh0cmFBdHRyaWJ1dGVzWydmb2N1c2FibGUnXSA9ICdmYWxzZSc7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4dHJhQXR0cmlidXRlcztcbn1cblxuZnVuY3Rpb24gbWFza1BhcnNlciAobm9kZSkge1xuICB2YXIgbWFzayA9IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLWZhLW1hc2snKTtcblxuICBpZiAoIW1hc2spIHtcbiAgICByZXR1cm4gZW1wdHlDYW5vbmljYWxJY29uKCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGdldENhbm9uaWNhbEljb24obWFzay5zcGxpdCgnICcpLm1hcChmdW5jdGlvbiAoaSkge1xuICAgICAgcmV0dXJuIGkudHJpbSgpO1xuICAgIH0pKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBibGFua01ldGEoKSB7XG4gIHJldHVybiB7XG4gICAgaWNvbk5hbWU6IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgcHJlZml4OiBudWxsLFxuICAgIHRyYW5zZm9ybTogbWVhbmluZ2xlc3NUcmFuc2Zvcm0sXG4gICAgc3ltYm9sOiBmYWxzZSxcbiAgICBtYXNrOiBudWxsLFxuICAgIGV4dHJhOiB7XG4gICAgICBjbGFzc2VzOiBbXSxcbiAgICAgIHN0eWxlczoge30sXG4gICAgICBhdHRyaWJ1dGVzOiB7fVxuICAgIH1cbiAgfTtcbn1cbmZ1bmN0aW9uIHBhcnNlTWV0YShub2RlKSB7XG4gIHZhciBfY2xhc3NQYXJzZXIgPSBjbGFzc1BhcnNlcihub2RlKSxcbiAgICAgIGljb25OYW1lID0gX2NsYXNzUGFyc2VyLmljb25OYW1lLFxuICAgICAgcHJlZml4ID0gX2NsYXNzUGFyc2VyLnByZWZpeCxcbiAgICAgIGV4dHJhQ2xhc3NlcyA9IF9jbGFzc1BhcnNlci5yZXN0O1xuXG4gIHZhciBleHRyYVN0eWxlcyA9IHN0eWxlUGFyc2VyKG5vZGUpO1xuICB2YXIgdHJhbnNmb3JtID0gdHJhbnNmb3JtUGFyc2VyKG5vZGUpO1xuICB2YXIgc3ltYm9sID0gc3ltYm9sUGFyc2VyKG5vZGUpO1xuICB2YXIgZXh0cmFBdHRyaWJ1dGVzID0gYXR0cmlidXRlc1BhcnNlcihub2RlKTtcbiAgdmFyIG1hc2sgPSBtYXNrUGFyc2VyKG5vZGUpO1xuICByZXR1cm4ge1xuICAgIGljb25OYW1lOiBpY29uTmFtZSxcbiAgICB0aXRsZTogbm9kZS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyksXG4gICAgcHJlZml4OiBwcmVmaXgsXG4gICAgdHJhbnNmb3JtOiB0cmFuc2Zvcm0sXG4gICAgc3ltYm9sOiBzeW1ib2wsXG4gICAgbWFzazogbWFzayxcbiAgICBleHRyYToge1xuICAgICAgY2xhc3NlczogZXh0cmFDbGFzc2VzLFxuICAgICAgc3R5bGVzOiBleHRyYVN0eWxlcyxcbiAgICAgIGF0dHJpYnV0ZXM6IGV4dHJhQXR0cmlidXRlc1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gTWlzc2luZ0ljb24oZXJyb3IpIHtcbiAgdGhpcy5uYW1lID0gJ01pc3NpbmdJY29uJztcbiAgdGhpcy5tZXNzYWdlID0gZXJyb3IgfHwgJ0ljb24gdW5hdmFpbGFibGUnO1xuICB0aGlzLnN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2s7XG59XG5NaXNzaW5nSWNvbi5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7XG5NaXNzaW5nSWNvbi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNaXNzaW5nSWNvbjtcblxudmFyIEZJTEwgPSB7XG4gIGZpbGw6ICdjdXJyZW50Q29sb3InXG59O1xudmFyIEFOSU1BVElPTl9CQVNFID0ge1xuICBhdHRyaWJ1dGVUeXBlOiAnWE1MJyxcbiAgcmVwZWF0Q291bnQ6ICdpbmRlZmluaXRlJyxcbiAgZHVyOiAnMnMnXG59O1xudmFyIFJJTkcgPSB7XG4gIHRhZzogJ3BhdGgnLFxuICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkKHt9LCBGSUxMLCB7XG4gICAgZDogJ00xNTYuNSw0NDcuN2wtMTIuNiwyOS41Yy0xOC43LTkuNS0zNS45LTIxLjItNTEuNS0zNC45bDIyLjctMjIuN0MxMjcuNiw0MzAuNSwxNDEuNSw0NDAsMTU2LjUsNDQ3Ljd6IE00MC42LDI3Mkg4LjUgYzEuNCwyMS4yLDUuNCw0MS43LDExLjcsNjEuMUw1MCwzMjEuMkM0NS4xLDMwNS41LDQxLjgsMjg5LDQwLjYsMjcyeiBNNDAuNiwyNDBjMS40LTE4LjgsNS4yLTM3LDExLjEtNTQuMWwtMjkuNS0xMi42IEMxNC43LDE5NC4zLDEwLDIxNi43LDguNSwyNDBINDAuNnogTTY0LjMsMTU2LjVjNy44LTE0LjksMTcuMi0yOC44LDI4LjEtNDEuNUw2OS43LDkyLjNjLTEzLjcsMTUuNi0yNS41LDMyLjgtMzQuOSw1MS41IEw2NC4zLDE1Ni41eiBNMzk3LDQxOS42Yy0xMy45LDEyLTI5LjQsMjIuMy00Ni4xLDMwLjRsMTEuOSwyOS44YzIwLjctOS45LDM5LjgtMjIuNiw1Ni45LTM3LjZMMzk3LDQxOS42eiBNMTE1LDkyLjQgYzEzLjktMTIsMjkuNC0yMi4zLDQ2LjEtMzAuNGwtMTEuOS0yOS44Yy0yMC43LDkuOS0zOS44LDIyLjYtNTYuOCwzNy42TDExNSw5Mi40eiBNNDQ3LjcsMzU1LjVjLTcuOCwxNC45LTE3LjIsMjguOC0yOC4xLDQxLjUgbDIyLjcsMjIuN2MxMy43LTE1LjYsMjUuNS0zMi45LDM0LjktNTEuNUw0NDcuNywzNTUuNXogTTQ3MS40LDI3MmMtMS40LDE4LjgtNS4yLDM3LTExLjEsNTQuMWwyOS41LDEyLjYgYzcuNS0yMS4xLDEyLjItNDMuNSwxMy42LTY2LjhINDcxLjR6IE0zMjEuMiw0NjJjLTE1LjcsNS0zMi4yLDguMi00OS4yLDkuNHYzMi4xYzIxLjItMS40LDQxLjctNS40LDYxLjEtMTEuN0wzMjEuMiw0NjJ6IE0yNDAsNDcxLjRjLTE4LjgtMS40LTM3LTUuMi01NC4xLTExLjFsLTEyLjYsMjkuNWMyMS4xLDcuNSw0My41LDEyLjIsNjYuOCwxMy42VjQ3MS40eiBNNDYyLDE5MC44YzUsMTUuNyw4LjIsMzIuMiw5LjQsNDkuMmgzMi4xIGMtMS40LTIxLjItNS40LTQxLjctMTEuNy02MS4xTDQ2MiwxOTAuOHogTTkyLjQsMzk3Yy0xMi0xMy45LTIyLjMtMjkuNC0zMC40LTQ2LjFsLTI5LjgsMTEuOWM5LjksMjAuNywyMi42LDM5LjgsMzcuNiw1Ni45IEw5Mi40LDM5N3ogTTI3Miw0MC42YzE4LjgsMS40LDM2LjksNS4yLDU0LjEsMTEuMWwxMi42LTI5LjVDMzE3LjcsMTQuNywyOTUuMywxMCwyNzIsOC41VjQwLjZ6IE0xOTAuOCw1MCBjMTUuNy01LDMyLjItOC4yLDQ5LjItOS40VjguNWMtMjEuMiwxLjQtNDEuNyw1LjQtNjEuMSwxMS43TDE5MC44LDUweiBNNDQyLjMsOTIuM0w0MTkuNiwxMTVjMTIsMTMuOSwyMi4zLDI5LjQsMzAuNSw0Ni4xIGwyOS44LTExLjlDNDcwLDEyOC41LDQ1Ny4zLDEwOS40LDQ0Mi4zLDkyLjN6IE0zOTcsOTIuNGwyMi43LTIyLjdjLTE1LjYtMTMuNy0zMi44LTI1LjUtNTEuNS0zNC45bC0xMi42LDI5LjUgQzM3MC40LDcyLjEsMzg0LjQsODEuNSwzOTcsOTIuNHonXG4gIH0pXG59O1xuXG52YXIgT1BBQ0lUWV9BTklNQVRFID0gX29iamVjdFNwcmVhZCh7fSwgQU5JTUFUSU9OX0JBU0UsIHtcbiAgYXR0cmlidXRlTmFtZTogJ29wYWNpdHknXG59KTtcblxudmFyIERPVCA9IHtcbiAgdGFnOiAnY2lyY2xlJyxcbiAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZCh7fSwgRklMTCwge1xuICAgIGN4OiAnMjU2JyxcbiAgICBjeTogJzM2NCcsXG4gICAgcjogJzI4J1xuICB9KSxcbiAgY2hpbGRyZW46IFt7XG4gICAgdGFnOiAnYW5pbWF0ZScsXG4gICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZCh7fSwgQU5JTUFUSU9OX0JBU0UsIHtcbiAgICAgIGF0dHJpYnV0ZU5hbWU6ICdyJyxcbiAgICAgIHZhbHVlczogJzI4OzE0OzI4OzI4OzE0OzI4OydcbiAgICB9KVxuICB9LCB7XG4gICAgdGFnOiAnYW5pbWF0ZScsXG4gICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZCh7fSwgT1BBQ0lUWV9BTklNQVRFLCB7XG4gICAgICB2YWx1ZXM6ICcxOzA7MTsxOzA7MTsnXG4gICAgfSlcbiAgfV1cbn07XG52YXIgUVVFU1RJT04gPSB7XG4gIHRhZzogJ3BhdGgnLFxuICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkKHt9LCBGSUxMLCB7XG4gICAgb3BhY2l0eTogJzEnLFxuICAgIGQ6ICdNMjYzLjcsMzEyaC0xNmMtNi42LDAtMTItNS40LTEyLTEyYzAtNzEsNzcuNC02My45LDc3LjQtMTA3LjhjMC0yMC0xNy44LTQwLjItNTcuNC00MC4yYy0yOS4xLDAtNDQuMyw5LjYtNTkuMiwyOC43IGMtMy45LDUtMTEuMSw2LTE2LjIsMi40bC0xMy4xLTkuMmMtNS42LTMuOS02LjktMTEuOC0yLjYtMTcuMmMyMS4yLTI3LjIsNDYuNC00NC43LDkxLjItNDQuN2M1Mi4zLDAsOTcuNCwyOS44LDk3LjQsODAuMiBjMCw2Ny42LTc3LjQsNjMuNS03Ny40LDEwNy44QzI3NS43LDMwNi42LDI3MC4zLDMxMiwyNjMuNywzMTJ6J1xuICB9KSxcbiAgY2hpbGRyZW46IFt7XG4gICAgdGFnOiAnYW5pbWF0ZScsXG4gICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZCh7fSwgT1BBQ0lUWV9BTklNQVRFLCB7XG4gICAgICB2YWx1ZXM6ICcxOzA7MDswOzA7MTsnXG4gICAgfSlcbiAgfV1cbn07XG52YXIgRVhDTEFNQVRJT04gPSB7XG4gIHRhZzogJ3BhdGgnLFxuICBhdHRyaWJ1dGVzOiBfb2JqZWN0U3ByZWFkKHt9LCBGSUxMLCB7XG4gICAgb3BhY2l0eTogJzAnLFxuICAgIGQ6ICdNMjMyLjUsMTM0LjVsNywxNjhjMC4zLDYuNCw1LjYsMTEuNSwxMiwxMS41aDljNi40LDAsMTEuNy01LjEsMTItMTEuNWw3LTE2OGMwLjMtNi44LTUuMi0xMi41LTEyLTEyLjVoLTIzIEMyMzcuNywxMjIsMjMyLjIsMTI3LjcsMjMyLjUsMTM0LjV6J1xuICB9KSxcbiAgY2hpbGRyZW46IFt7XG4gICAgdGFnOiAnYW5pbWF0ZScsXG4gICAgYXR0cmlidXRlczogX29iamVjdFNwcmVhZCh7fSwgT1BBQ0lUWV9BTklNQVRFLCB7XG4gICAgICB2YWx1ZXM6ICcwOzA7MTsxOzA7MDsnXG4gICAgfSlcbiAgfV1cbn07XG52YXIgbWlzc2luZyA9IHtcbiAgdGFnOiAnZycsXG4gIGNoaWxkcmVuOiBbUklORywgRE9ULCBRVUVTVElPTiwgRVhDTEFNQVRJT05dXG59O1xuXG52YXIgc3R5bGVzJDIgPSBuYW1lc3BhY2Uuc3R5bGVzO1xuZnVuY3Rpb24gYXNGb3VuZEljb24oaWNvbikge1xuICB2YXIgd2lkdGggPSBpY29uWzBdO1xuICB2YXIgaGVpZ2h0ID0gaWNvblsxXTtcblxuICB2YXIgX2ljb24kc2xpY2UgPSBpY29uLnNsaWNlKDQpLFxuICAgICAgX2ljb24kc2xpY2UyID0gX3NsaWNlZFRvQXJyYXkoX2ljb24kc2xpY2UsIDEpLFxuICAgICAgdmVjdG9yRGF0YSA9IF9pY29uJHNsaWNlMlswXTtcblxuICB2YXIgZWxlbWVudCA9IG51bGw7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodmVjdG9yRGF0YSkpIHtcbiAgICBlbGVtZW50ID0ge1xuICAgICAgdGFnOiAnZycsXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGNsYXNzOiBcIlwiLmNvbmNhdChjb25maWcuZmFtaWx5UHJlZml4LCBcIi1cIikuY29uY2F0KERVT1RPTkVfQ0xBU1NFUy5HUk9VUClcbiAgICAgIH0sXG4gICAgICBjaGlsZHJlbjogW3tcbiAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBjbGFzczogXCJcIi5jb25jYXQoY29uZmlnLmZhbWlseVByZWZpeCwgXCItXCIpLmNvbmNhdChEVU9UT05FX0NMQVNTRVMuU0VDT05EQVJZKSxcbiAgICAgICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgICAgICBkOiB2ZWN0b3JEYXRhWzBdXG4gICAgICAgIH1cbiAgICAgIH0sIHtcbiAgICAgICAgdGFnOiAncGF0aCcsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICBjbGFzczogXCJcIi5jb25jYXQoY29uZmlnLmZhbWlseVByZWZpeCwgXCItXCIpLmNvbmNhdChEVU9UT05FX0NMQVNTRVMuUFJJTUFSWSksXG4gICAgICAgICAgZmlsbDogJ2N1cnJlbnRDb2xvcicsXG4gICAgICAgICAgZDogdmVjdG9yRGF0YVsxXVxuICAgICAgICB9XG4gICAgICB9XVxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudCA9IHtcbiAgICAgIHRhZzogJ3BhdGgnLFxuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICBmaWxsOiAnY3VycmVudENvbG9yJyxcbiAgICAgICAgZDogdmVjdG9yRGF0YVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZvdW5kOiB0cnVlLFxuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICBpY29uOiBlbGVtZW50XG4gIH07XG59XG5mdW5jdGlvbiBmaW5kSWNvbihpY29uTmFtZSwgcHJlZml4KSB7XG4gIHJldHVybiBuZXcgcGlja2VkKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICB2YXIgdmFsID0ge1xuICAgICAgZm91bmQ6IGZhbHNlLFxuICAgICAgd2lkdGg6IDUxMixcbiAgICAgIGhlaWdodDogNTEyLFxuICAgICAgaWNvbjogbWlzc2luZ1xuICAgIH07XG5cbiAgICBpZiAoaWNvbk5hbWUgJiYgcHJlZml4ICYmIHN0eWxlcyQyW3ByZWZpeF0gJiYgc3R5bGVzJDJbcHJlZml4XVtpY29uTmFtZV0pIHtcbiAgICAgIHZhciBpY29uID0gc3R5bGVzJDJbcHJlZml4XVtpY29uTmFtZV07XG4gICAgICByZXR1cm4gcmVzb2x2ZShhc0ZvdW5kSWNvbihpY29uKSk7XG4gICAgfVxuXG4gICAgdmFyIGhlYWRlcnMgPSB7fTtcblxuICAgIGlmIChfdHlwZW9mKFdJTkRPVy5Gb250QXdlc29tZUtpdENvbmZpZykgPT09ICdvYmplY3QnICYmIHR5cGVvZiB3aW5kb3cuRm9udEF3ZXNvbWVLaXRDb25maWcudG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICBoZWFkZXJzWydmYS1raXQtdG9rZW4nXSA9IFdJTkRPVy5Gb250QXdlc29tZUtpdENvbmZpZy50b2tlbjtcbiAgICB9XG5cbiAgICBpZiAoaWNvbk5hbWUgJiYgcHJlZml4ICYmICFjb25maWcuc2hvd01pc3NpbmdJY29ucykge1xuICAgICAgcmVqZWN0KG5ldyBNaXNzaW5nSWNvbihcIkljb24gaXMgbWlzc2luZyBmb3IgcHJlZml4IFwiLmNvbmNhdChwcmVmaXgsIFwiIHdpdGggaWNvbiBuYW1lIFwiKS5jb25jYXQoaWNvbk5hbWUpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc29sdmUodmFsKTtcbiAgICB9XG4gIH0pO1xufVxuXG52YXIgc3R5bGVzJDMgPSBuYW1lc3BhY2Uuc3R5bGVzO1xuXG5mdW5jdGlvbiBnZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb24obm9kZSwgbm9kZU1ldGEpIHtcbiAgdmFyIGljb25OYW1lID0gbm9kZU1ldGEuaWNvbk5hbWUsXG4gICAgICB0aXRsZSA9IG5vZGVNZXRhLnRpdGxlLFxuICAgICAgcHJlZml4ID0gbm9kZU1ldGEucHJlZml4LFxuICAgICAgdHJhbnNmb3JtID0gbm9kZU1ldGEudHJhbnNmb3JtLFxuICAgICAgc3ltYm9sID0gbm9kZU1ldGEuc3ltYm9sLFxuICAgICAgbWFzayA9IG5vZGVNZXRhLm1hc2ssXG4gICAgICBleHRyYSA9IG5vZGVNZXRhLmV4dHJhO1xuICByZXR1cm4gbmV3IHBpY2tlZChmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgcGlja2VkLmFsbChbZmluZEljb24oaWNvbk5hbWUsIHByZWZpeCksIGZpbmRJY29uKG1hc2suaWNvbk5hbWUsIG1hc2sucHJlZml4KV0pLnRoZW4oZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgIHZhciBfcmVmMiA9IF9zbGljZWRUb0FycmF5KF9yZWYsIDIpLFxuICAgICAgICAgIG1haW4gPSBfcmVmMlswXSxcbiAgICAgICAgICBtYXNrID0gX3JlZjJbMV07XG5cbiAgICAgIHJlc29sdmUoW25vZGUsIG1ha2VJbmxpbmVTdmdBYnN0cmFjdCh7XG4gICAgICAgIGljb25zOiB7XG4gICAgICAgICAgbWFpbjogbWFpbixcbiAgICAgICAgICBtYXNrOiBtYXNrXG4gICAgICAgIH0sXG4gICAgICAgIHByZWZpeDogcHJlZml4LFxuICAgICAgICBpY29uTmFtZTogaWNvbk5hbWUsXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgICAgICBzeW1ib2w6IHN5bWJvbCxcbiAgICAgICAgbWFzazogbWFzayxcbiAgICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgICBleHRyYTogZXh0cmEsXG4gICAgICAgIHdhdGNoYWJsZTogdHJ1ZVxuICAgICAgfSldKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlTGF5ZXJzVGV4dChub2RlLCBub2RlTWV0YSkge1xuICB2YXIgdGl0bGUgPSBub2RlTWV0YS50aXRsZSxcbiAgICAgIHRyYW5zZm9ybSA9IG5vZGVNZXRhLnRyYW5zZm9ybSxcbiAgICAgIGV4dHJhID0gbm9kZU1ldGEuZXh0cmE7XG4gIHZhciB3aWR0aCA9IG51bGw7XG4gIHZhciBoZWlnaHQgPSBudWxsO1xuXG4gIGlmIChJU19JRSkge1xuICAgIHZhciBjb21wdXRlZEZvbnRTaXplID0gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShub2RlKS5mb250U2l6ZSwgMTApO1xuICAgIHZhciBib3VuZGluZ0NsaWVudFJlY3QgPSBub2RlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHdpZHRoID0gYm91bmRpbmdDbGllbnRSZWN0LndpZHRoIC8gY29tcHV0ZWRGb250U2l6ZTtcbiAgICBoZWlnaHQgPSBib3VuZGluZ0NsaWVudFJlY3QuaGVpZ2h0IC8gY29tcHV0ZWRGb250U2l6ZTtcbiAgfVxuXG4gIGlmIChjb25maWcuYXV0b0ExMXkgJiYgIXRpdGxlKSB7XG4gICAgZXh0cmEuYXR0cmlidXRlc1snYXJpYS1oaWRkZW4nXSA9ICd0cnVlJztcbiAgfVxuXG4gIHJldHVybiBwaWNrZWQucmVzb2x2ZShbbm9kZSwgbWFrZUxheWVyc1RleHRBYnN0cmFjdCh7XG4gICAgY29udGVudDogbm9kZS5pbm5lckhUTUwsXG4gICAgd2lkdGg6IHdpZHRoLFxuICAgIGhlaWdodDogaGVpZ2h0LFxuICAgIHRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgIHRpdGxlOiB0aXRsZSxcbiAgICBleHRyYTogZXh0cmEsXG4gICAgd2F0Y2hhYmxlOiB0cnVlXG4gIH0pXSk7XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlTXV0YXRpb24obm9kZSkge1xuICB2YXIgbm9kZU1ldGEgPSBwYXJzZU1ldGEobm9kZSk7XG5cbiAgaWYgKH5ub2RlTWV0YS5leHRyYS5jbGFzc2VzLmluZGV4T2YoTEFZRVJTX1RFWFRfQ0xBU1NOQU1FKSkge1xuICAgIHJldHVybiBnZW5lcmF0ZUxheWVyc1RleHQobm9kZSwgbm9kZU1ldGEpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBnZW5lcmF0ZVN2Z1JlcGxhY2VtZW50TXV0YXRpb24obm9kZSwgbm9kZU1ldGEpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG9uVHJlZShyb290KSB7XG4gIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogbnVsbDtcbiAgaWYgKCFJU19ET00pIHJldHVybjtcbiAgdmFyIGh0bWxDbGFzc0xpc3QgPSBET0NVTUVOVC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0O1xuXG4gIHZhciBoY2xBZGQgPSBmdW5jdGlvbiBoY2xBZGQoc3VmZml4KSB7XG4gICAgcmV0dXJuIGh0bWxDbGFzc0xpc3QuYWRkKFwiXCIuY29uY2F0KEhUTUxfQ0xBU1NfSTJTVkdfQkFTRV9DTEFTUywgXCItXCIpLmNvbmNhdChzdWZmaXgpKTtcbiAgfTtcblxuICB2YXIgaGNsUmVtb3ZlID0gZnVuY3Rpb24gaGNsUmVtb3ZlKHN1ZmZpeCkge1xuICAgIHJldHVybiBodG1sQ2xhc3NMaXN0LnJlbW92ZShcIlwiLmNvbmNhdChIVE1MX0NMQVNTX0kyU1ZHX0JBU0VfQ0xBU1MsIFwiLVwiKS5jb25jYXQoc3VmZml4KSk7XG4gIH07XG5cbiAgdmFyIHByZWZpeGVzID0gY29uZmlnLmF1dG9GZXRjaFN2ZyA/IE9iamVjdC5rZXlzKFBSRUZJWF9UT19TVFlMRSkgOiBPYmplY3Qua2V5cyhzdHlsZXMkMyk7XG4gIHZhciBwcmVmaXhlc0RvbVF1ZXJ5ID0gW1wiLlwiLmNvbmNhdChMQVlFUlNfVEVYVF9DTEFTU05BTUUsIFwiOm5vdChbXCIpLmNvbmNhdChEQVRBX0ZBX0kyU1ZHLCBcIl0pXCIpXS5jb25jYXQocHJlZml4ZXMubWFwKGZ1bmN0aW9uIChwKSB7XG4gICAgcmV0dXJuIFwiLlwiLmNvbmNhdChwLCBcIjpub3QoW1wiKS5jb25jYXQoREFUQV9GQV9JMlNWRywgXCJdKVwiKTtcbiAgfSkpLmpvaW4oJywgJyk7XG5cbiAgaWYgKHByZWZpeGVzRG9tUXVlcnkubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGNhbmRpZGF0ZXMgPSBbXTtcblxuICB0cnkge1xuICAgIGNhbmRpZGF0ZXMgPSB0b0FycmF5KHJvb3QucXVlcnlTZWxlY3RvckFsbChwcmVmaXhlc0RvbVF1ZXJ5KSk7XG4gIH0gY2F0Y2ggKGUpIHsvLyBub29wXG4gIH1cblxuICBpZiAoY2FuZGlkYXRlcy5sZW5ndGggPiAwKSB7XG4gICAgaGNsQWRkKCdwZW5kaW5nJyk7XG4gICAgaGNsUmVtb3ZlKCdjb21wbGV0ZScpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBtYXJrID0gcGVyZi5iZWdpbignb25UcmVlJyk7XG4gIHZhciBtdXRhdGlvbnMgPSBjYW5kaWRhdGVzLnJlZHVjZShmdW5jdGlvbiAoYWNjLCBub2RlKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBtdXRhdGlvbiA9IGdlbmVyYXRlTXV0YXRpb24obm9kZSk7XG5cbiAgICAgIGlmIChtdXRhdGlvbikge1xuICAgICAgICBhY2MucHVzaChtdXRhdGlvbik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCFQUk9EVUNUSU9OKSB7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgTWlzc2luZ0ljb24pIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjYztcbiAgfSwgW10pO1xuICByZXR1cm4gbmV3IHBpY2tlZChmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgcGlja2VkLmFsbChtdXRhdGlvbnMpLnRoZW4oZnVuY3Rpb24gKHJlc29sdmVkTXV0YXRpb25zKSB7XG4gICAgICBwZXJmb3JtKHJlc29sdmVkTXV0YXRpb25zLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGhjbEFkZCgnYWN0aXZlJyk7XG4gICAgICAgIGhjbEFkZCgnY29tcGxldGUnKTtcbiAgICAgICAgaGNsUmVtb3ZlKCdwZW5kaW5nJyk7XG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIGNhbGxiYWNrKCk7XG4gICAgICAgIG1hcmsoKTtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge1xuICAgICAgbWFyaygpO1xuICAgICAgcmVqZWN0KCk7XG4gICAgfSk7XG4gIH0pO1xufVxuZnVuY3Rpb24gb25Ob2RlKG5vZGUpIHtcbiAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBudWxsO1xuICBnZW5lcmF0ZU11dGF0aW9uKG5vZGUpLnRoZW4oZnVuY3Rpb24gKG11dGF0aW9uKSB7XG4gICAgaWYgKG11dGF0aW9uKSB7XG4gICAgICBwZXJmb3JtKFttdXRhdGlvbl0sIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlRm9yUG9zaXRpb24obm9kZSwgcG9zaXRpb24pIHtcbiAgdmFyIHBlbmRpbmdBdHRyaWJ1dGUgPSBcIlwiLmNvbmNhdChEQVRBX0ZBX1BTRVVET19FTEVNRU5UX1BFTkRJTkcpLmNvbmNhdChwb3NpdGlvbi5yZXBsYWNlKCc6JywgJy0nKSk7XG4gIHJldHVybiBuZXcgcGlja2VkKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUocGVuZGluZ0F0dHJpYnV0ZSkgIT09IG51bGwpIHtcbiAgICAgIC8vIFRoaXMgbm9kZSBpcyBhbHJlYWR5IGJlaW5nIHByb2Nlc3NlZFxuICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICB9XG5cbiAgICB2YXIgY2hpbGRyZW4gPSB0b0FycmF5KG5vZGUuY2hpbGRyZW4pO1xuICAgIHZhciBhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCA9IGNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbiAoYykge1xuICAgICAgcmV0dXJuIGMuZ2V0QXR0cmlidXRlKERBVEFfRkFfUFNFVURPX0VMRU1FTlQpID09PSBwb3NpdGlvbjtcbiAgICB9KVswXTtcbiAgICB2YXIgc3R5bGVzID0gV0lORE9XLmdldENvbXB1dGVkU3R5bGUobm9kZSwgcG9zaXRpb24pO1xuICAgIHZhciBmb250RmFtaWx5ID0gc3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtZmFtaWx5JykubWF0Y2goRk9OVF9GQU1JTFlfUEFUVEVSTik7XG4gICAgdmFyIGZvbnRXZWlnaHQgPSBzdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC13ZWlnaHQnKTtcblxuICAgIGlmIChhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCAmJiAhZm9udEZhbWlseSkge1xuICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBwcm9jZXNzZWQgaXQgYnV0IHRoZSBjdXJyZW50IGNvbXB1dGVkIHN0eWxlIGRvZXMgbm90IHJlc3VsdCBpbiBhIGZvbnQtZmFtaWx5LFxuICAgICAgLy8gdGhhdCBwcm9iYWJseSBtZWFucyB0aGF0IGEgY2xhc3MgbmFtZSB0aGF0IHdhcyBwcmV2aW91c2x5IHByZXNlbnQgdG8gbWFrZSB0aGUgaWNvbiBoYXMgYmVlblxuICAgICAgLy8gcmVtb3ZlZC4gU28gd2Ugbm93IHNob3VsZCBkZWxldGUgdGhlIGljb24uXG4gICAgICBub2RlLnJlbW92ZUNoaWxkKGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50KTtcbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSBlbHNlIGlmIChmb250RmFtaWx5KSB7XG4gICAgICB2YXIgY29udGVudCA9IHN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdjb250ZW50Jyk7XG4gICAgICB2YXIgcHJlZml4ID0gflsnU29saWQnLCAnUmVndWxhcicsICdMaWdodCcsICdEdW90b25lJywgJ0JyYW5kcyddLmluZGV4T2YoZm9udEZhbWlseVsxXSkgPyBTVFlMRV9UT19QUkVGSVhbZm9udEZhbWlseVsxXS50b0xvd2VyQ2FzZSgpXSA6IEZPTlRfV0VJR0hUX1RPX1BSRUZJWFtmb250V2VpZ2h0XTtcbiAgICAgIHZhciBoZXhWYWx1ZSA9IHRvSGV4KGNvbnRlbnQubGVuZ3RoID09PSAzID8gY29udGVudC5zdWJzdHIoMSwgMSkgOiBjb250ZW50KTtcbiAgICAgIHZhciBpY29uTmFtZSA9IGJ5VW5pY29kZShwcmVmaXgsIGhleFZhbHVlKTtcbiAgICAgIHZhciBpY29uSWRlbnRpZmllciA9IGljb25OYW1lOyAvLyBPbmx5IGNvbnZlcnQgdGhlIHBzZXVkbyBlbGVtZW50IGluIHRoaXMgOmJlZm9yZS86YWZ0ZXIgcG9zaXRpb24gaW50byBhbiBpY29uIGlmIHdlIGhhdmVuJ3RcbiAgICAgIC8vIGFscmVhZHkgZG9uZSBzbyB3aXRoIHRoZSBzYW1lIHByZWZpeCBhbmQgaWNvbk5hbWVcblxuICAgICAgaWYgKGljb25OYW1lICYmICghYWxyZWFkeVByb2Nlc3NlZFBzZXVkb0VsZW1lbnQgfHwgYWxyZWFkeVByb2Nlc3NlZFBzZXVkb0VsZW1lbnQuZ2V0QXR0cmlidXRlKERBVEFfUFJFRklYKSAhPT0gcHJlZml4IHx8IGFscmVhZHlQcm9jZXNzZWRQc2V1ZG9FbGVtZW50LmdldEF0dHJpYnV0ZShEQVRBX0lDT04pICE9PSBpY29uSWRlbnRpZmllcikpIHtcbiAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUocGVuZGluZ0F0dHJpYnV0ZSwgaWNvbklkZW50aWZpZXIpO1xuXG4gICAgICAgIGlmIChhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCkge1xuICAgICAgICAgIC8vIERlbGV0ZSB0aGUgb2xkIG9uZSwgc2luY2Ugd2UncmUgcmVwbGFjaW5nIGl0IHdpdGggYSBuZXcgb25lXG4gICAgICAgICAgbm9kZS5yZW1vdmVDaGlsZChhbHJlYWR5UHJvY2Vzc2VkUHNldWRvRWxlbWVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbWV0YSA9IGJsYW5rTWV0YSgpO1xuICAgICAgICB2YXIgZXh0cmEgPSBtZXRhLmV4dHJhO1xuICAgICAgICBleHRyYS5hdHRyaWJ1dGVzW0RBVEFfRkFfUFNFVURPX0VMRU1FTlRdID0gcG9zaXRpb247XG4gICAgICAgIGZpbmRJY29uKGljb25OYW1lLCBwcmVmaXgpLnRoZW4oZnVuY3Rpb24gKG1haW4pIHtcbiAgICAgICAgICB2YXIgYWJzdHJhY3QgPSBtYWtlSW5saW5lU3ZnQWJzdHJhY3QoX29iamVjdFNwcmVhZCh7fSwgbWV0YSwge1xuICAgICAgICAgICAgaWNvbnM6IHtcbiAgICAgICAgICAgICAgbWFpbjogbWFpbixcbiAgICAgICAgICAgICAgbWFzazogZW1wdHlDYW5vbmljYWxJY29uKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcmVmaXg6IHByZWZpeCxcbiAgICAgICAgICAgIGljb25OYW1lOiBpY29uSWRlbnRpZmllcixcbiAgICAgICAgICAgIGV4dHJhOiBleHRyYSxcbiAgICAgICAgICAgIHdhdGNoYWJsZTogdHJ1ZVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgICB2YXIgZWxlbWVudCA9IERPQ1VNRU5ULmNyZWF0ZUVsZW1lbnQoJ3N2ZycpO1xuXG4gICAgICAgICAgaWYgKHBvc2l0aW9uID09PSAnOmJlZm9yZScpIHtcbiAgICAgICAgICAgIG5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnQsIG5vZGUuZmlyc3RDaGlsZCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5vZGUuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZWxlbWVudC5vdXRlckhUTUwgPSBhYnN0cmFjdC5tYXAoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgICAgIHJldHVybiB0b0h0bWwoYSk7XG4gICAgICAgICAgfSkuam9pbignXFxuJyk7XG4gICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUocGVuZGluZ0F0dHJpYnV0ZSk7XG4gICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICB9KS5jYXRjaChyZWplY3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZShub2RlKSB7XG4gIHJldHVybiBwaWNrZWQuYWxsKFtyZXBsYWNlRm9yUG9zaXRpb24obm9kZSwgJzpiZWZvcmUnKSwgcmVwbGFjZUZvclBvc2l0aW9uKG5vZGUsICc6YWZ0ZXInKV0pO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzYWJsZShub2RlKSB7XG4gIHJldHVybiBub2RlLnBhcmVudE5vZGUgIT09IGRvY3VtZW50LmhlYWQgJiYgIX5UQUdOQU1FU19UT19TS0lQX0ZPUl9QU0VVRE9FTEVNRU5UUy5pbmRleE9mKG5vZGUudGFnTmFtZS50b1VwcGVyQ2FzZSgpKSAmJiAhbm9kZS5nZXRBdHRyaWJ1dGUoREFUQV9GQV9QU0VVRE9fRUxFTUVOVCkgJiYgKCFub2RlLnBhcmVudE5vZGUgfHwgbm9kZS5wYXJlbnROb2RlLnRhZ05hbWUgIT09ICdzdmcnKTtcbn1cblxuZnVuY3Rpb24gc2VhcmNoUHNldWRvRWxlbWVudHMgKHJvb3QpIHtcbiAgaWYgKCFJU19ET00pIHJldHVybjtcbiAgcmV0dXJuIG5ldyBwaWNrZWQoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgIHZhciBvcGVyYXRpb25zID0gdG9BcnJheShyb290LnF1ZXJ5U2VsZWN0b3JBbGwoJyonKSkuZmlsdGVyKHByb2Nlc3NhYmxlKS5tYXAocmVwbGFjZSk7XG4gICAgdmFyIGVuZCA9IHBlcmYuYmVnaW4oJ3NlYXJjaFBzZXVkb0VsZW1lbnRzJyk7XG4gICAgZGlzYWJsZU9ic2VydmF0aW9uKCk7XG4gICAgcGlja2VkLmFsbChvcGVyYXRpb25zKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgIGVuZCgpO1xuICAgICAgZW5hYmxlT2JzZXJ2YXRpb24oKTtcbiAgICAgIHJlc29sdmUoKTtcbiAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7XG4gICAgICBlbmQoKTtcbiAgICAgIGVuYWJsZU9ic2VydmF0aW9uKCk7XG4gICAgICByZWplY3QoKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbnZhciBiYXNlU3R5bGVzID0gXCJzdmc6bm90KDpyb290KS5zdmctaW5saW5lLS1mYSB7XFxuICBvdmVyZmxvdzogdmlzaWJsZTtcXG59XFxuXFxuLnN2Zy1pbmxpbmUtLWZhIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIGhlaWdodDogMWVtO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1sZyB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMjI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS13LTEge1xcbiAgd2lkdGg6IDAuMDYyNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtdy0yIHtcXG4gIHdpZHRoOiAwLjEyNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtdy0zIHtcXG4gIHdpZHRoOiAwLjE4NzVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXctNCB7XFxuICB3aWR0aDogMC4yNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtdy01IHtcXG4gIHdpZHRoOiAwLjMxMjVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXctNiB7XFxuICB3aWR0aDogMC4zNzVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXctNyB7XFxuICB3aWR0aDogMC40Mzc1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS13LTgge1xcbiAgd2lkdGg6IDAuNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtdy05IHtcXG4gIHdpZHRoOiAwLjU2MjVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXctMTAge1xcbiAgd2lkdGg6IDAuNjI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS13LTExIHtcXG4gIHdpZHRoOiAwLjY4NzVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXctMTIge1xcbiAgd2lkdGg6IDAuNzVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXctMTMge1xcbiAgd2lkdGg6IDAuODEyNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtdy0xNCB7XFxuICB3aWR0aDogMC44NzVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXctMTUge1xcbiAgd2lkdGg6IDAuOTM3NWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtdy0xNiB7XFxuICB3aWR0aDogMWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtdy0xNyB7XFxuICB3aWR0aDogMS4wNjI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS13LTE4IHtcXG4gIHdpZHRoOiAxLjEyNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtdy0xOSB7XFxuICB3aWR0aDogMS4xODc1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS13LTIwIHtcXG4gIHdpZHRoOiAxLjI1ZW07XFxufVxcbi5zdmctaW5saW5lLS1mYS5mYS1wdWxsLWxlZnQge1xcbiAgbWFyZ2luLXJpZ2h0OiAwLjNlbTtcXG4gIHdpZHRoOiBhdXRvO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtcHVsbC1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMC4zZW07XFxuICB3aWR0aDogYXV0bztcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLWJvcmRlciB7XFxuICBoZWlnaHQ6IDEuNWVtO1xcbn1cXG4uc3ZnLWlubGluZS0tZmEuZmEtbGkge1xcbiAgd2lkdGg6IDJlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLWZ3IHtcXG4gIHdpZHRoOiAxLjI1ZW07XFxufVxcblxcbi5mYS1sYXllcnMgc3ZnLnN2Zy1pbmxpbmUtLWZhIHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBtYXJnaW46IGF1dG87XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMDtcXG4gIHRvcDogMDtcXG59XFxuXFxuLmZhLWxheWVycyB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBoZWlnaHQ6IDFlbTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4xMjVlbTtcXG4gIHdpZHRoOiAxZW07XFxufVxcbi5mYS1sYXllcnMgc3ZnLnN2Zy1pbmxpbmUtLWZhIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcXG59XFxuXFxuLmZhLWxheWVycy1jb3VudGVyLCAuZmEtbGF5ZXJzLXRleHQge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG5cXG4uZmEtbGF5ZXJzLXRleHQge1xcbiAgbGVmdDogNTAlO1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcXG59XFxuXFxuLmZhLWxheWVycy1jb3VudGVyIHtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjI1M2E7XFxuICBib3JkZXItcmFkaXVzOiAxZW07XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGhlaWdodDogMS41ZW07XFxuICBsaW5lLWhlaWdodDogMTtcXG4gIG1heC13aWR0aDogNWVtO1xcbiAgbWluLXdpZHRoOiAxLjVlbTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBwYWRkaW5nOiAwLjI1ZW07XFxuICByaWdodDogMDtcXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xcbiAgdG9wOiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDtcXG59XFxuXFxuLmZhLWxheWVycy1ib3R0b20tcmlnaHQge1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICB0b3A6IGF1dG87XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4yNSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yNSk7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSByaWdodDtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIHJpZ2h0O1xcbn1cXG5cXG4uZmEtbGF5ZXJzLWJvdHRvbS1sZWZ0IHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogYXV0bztcXG4gIHRvcDogYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjI1KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjI1KTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tIGxlZnQ7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xcbn1cXG5cXG4uZmEtbGF5ZXJzLXRvcC1yaWdodCB7XFxuICByaWdodDogMDtcXG4gIHRvcDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjI1KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjI1KTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIHJpZ2h0O1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgcmlnaHQ7XFxufVxcblxcbi5mYS1sYXllcnMtdG9wLWxlZnQge1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgdG9wOiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMjUpO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XFxufVxcblxcbi5mYS1sZyB7XFxuICBmb250LXNpemU6IDEuMzMzMzMzMzMzM2VtO1xcbiAgbGluZS1oZWlnaHQ6IDAuNzVlbTtcXG4gIHZlcnRpY2FsLWFsaWduOiAtMC4wNjY3ZW07XFxufVxcblxcbi5mYS14cyB7XFxuICBmb250LXNpemU6IDAuNzVlbTtcXG59XFxuXFxuLmZhLXNtIHtcXG4gIGZvbnQtc2l6ZTogMC44NzVlbTtcXG59XFxuXFxuLmZhLTF4IHtcXG4gIGZvbnQtc2l6ZTogMWVtO1xcbn1cXG5cXG4uZmEtMngge1xcbiAgZm9udC1zaXplOiAyZW07XFxufVxcblxcbi5mYS0zeCB7XFxuICBmb250LXNpemU6IDNlbTtcXG59XFxuXFxuLmZhLTR4IHtcXG4gIGZvbnQtc2l6ZTogNGVtO1xcbn1cXG5cXG4uZmEtNXgge1xcbiAgZm9udC1zaXplOiA1ZW07XFxufVxcblxcbi5mYS02eCB7XFxuICBmb250LXNpemU6IDZlbTtcXG59XFxuXFxuLmZhLTd4IHtcXG4gIGZvbnQtc2l6ZTogN2VtO1xcbn1cXG5cXG4uZmEtOHgge1xcbiAgZm9udC1zaXplOiA4ZW07XFxufVxcblxcbi5mYS05eCB7XFxuICBmb250LXNpemU6IDllbTtcXG59XFxuXFxuLmZhLTEweCB7XFxuICBmb250LXNpemU6IDEwZW07XFxufVxcblxcbi5mYS1mdyB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB3aWR0aDogMS4yNWVtO1xcbn1cXG5cXG4uZmEtdWwge1xcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xcbiAgbWFyZ2luLWxlZnQ6IDIuNWVtO1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbn1cXG4uZmEtdWwgPiBsaSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcblxcbi5mYS1saSB7XFxuICBsZWZ0OiAtMmVtO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgd2lkdGg6IDJlbTtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbn1cXG5cXG4uZmEtYm9yZGVyIHtcXG4gIGJvcmRlcjogc29saWQgMC4wOGVtICNlZWU7XFxuICBib3JkZXItcmFkaXVzOiAwLjFlbTtcXG4gIHBhZGRpbmc6IDAuMmVtIDAuMjVlbSAwLjE1ZW07XFxufVxcblxcbi5mYS1wdWxsLWxlZnQge1xcbiAgZmxvYXQ6IGxlZnQ7XFxufVxcblxcbi5mYS1wdWxsLXJpZ2h0IHtcXG4gIGZsb2F0OiByaWdodDtcXG59XFxuXFxuLmZhLmZhLXB1bGwtbGVmdCxcXG4uZmFzLmZhLXB1bGwtbGVmdCxcXG4uZmFyLmZhLXB1bGwtbGVmdCxcXG4uZmFsLmZhLXB1bGwtbGVmdCxcXG4uZmFiLmZhLXB1bGwtbGVmdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuM2VtO1xcbn1cXG4uZmEuZmEtcHVsbC1yaWdodCxcXG4uZmFzLmZhLXB1bGwtcmlnaHQsXFxuLmZhci5mYS1wdWxsLXJpZ2h0LFxcbi5mYWwuZmEtcHVsbC1yaWdodCxcXG4uZmFiLmZhLXB1bGwtcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xcbn1cXG5cXG4uZmEtc3BpbiB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XFxuICAgICAgICAgIGFuaW1hdGlvbjogZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXI7XFxufVxcblxcbi5mYS1wdWxzZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogZmEtc3BpbiAxcyBpbmZpbml0ZSBzdGVwcyg4KTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpO1xcbn1cXG5cXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmEtc3BpbiB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcblxcbkBrZXlmcmFtZXMgZmEtc3BpbiB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcbi5mYS1yb3RhdGUtOTAge1xcbiAgLW1zLWZpbHRlcjogXFxcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTEpXFxcIjtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxufVxcblxcbi5mYS1yb3RhdGUtMTgwIHtcXG4gIC1tcy1maWx0ZXI6IFxcXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yKVxcXCI7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XFxufVxcblxcbi5mYS1yb3RhdGUtMjcwIHtcXG4gIC1tcy1maWx0ZXI6IFxcXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKVxcXCI7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7XFxufVxcblxcbi5mYS1mbGlwLWhvcml6b250YWwge1xcbiAgLW1zLWZpbHRlcjogXFxcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTAsIG1pcnJvcj0xKVxcXCI7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcXG59XFxuXFxuLmZhLWZsaXAtdmVydGljYWwge1xcbiAgLW1zLWZpbHRlcjogXFxcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsIG1pcnJvcj0xKVxcXCI7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcXG59XFxuXFxuLmZhLWZsaXAtYm90aCwgLmZhLWZsaXAtaG9yaXpvbnRhbC5mYS1mbGlwLXZlcnRpY2FsIHtcXG4gIC1tcy1maWx0ZXI6IFxcXCJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yLCBtaXJyb3I9MSlcXFwiO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC0xLCAtMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIC0xKTtcXG59XFxuXFxuOnJvb3QgLmZhLXJvdGF0ZS05MCxcXG46cm9vdCAuZmEtcm90YXRlLTE4MCxcXG46cm9vdCAuZmEtcm90YXRlLTI3MCxcXG46cm9vdCAuZmEtZmxpcC1ob3Jpem9udGFsLFxcbjpyb290IC5mYS1mbGlwLXZlcnRpY2FsLFxcbjpyb290IC5mYS1mbGlwLWJvdGgge1xcbiAgLXdlYmtpdC1maWx0ZXI6IG5vbmU7XFxuICAgICAgICAgIGZpbHRlcjogbm9uZTtcXG59XFxuXFxuLmZhLXN0YWNrIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGhlaWdodDogMmVtO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDIuNWVtO1xcbn1cXG5cXG4uZmEtc3RhY2stMXgsXFxuLmZhLXN0YWNrLTJ4IHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBtYXJnaW46IGF1dG87XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICByaWdodDogMDtcXG4gIHRvcDogMDtcXG59XFxuXFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXN0YWNrLTF4IHtcXG4gIGhlaWdodDogMWVtO1xcbiAgd2lkdGg6IDEuMjVlbTtcXG59XFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXN0YWNrLTJ4IHtcXG4gIGhlaWdodDogMmVtO1xcbiAgd2lkdGg6IDIuNWVtO1xcbn1cXG5cXG4uZmEtaW52ZXJzZSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuXFxuLnNyLW9ubHkge1xcbiAgYm9yZGVyOiAwO1xcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcXG4gIGhlaWdodDogMXB4O1xcbiAgbWFyZ2luOiAtMXB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBhZGRpbmc6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMXB4O1xcbn1cXG5cXG4uc3Itb25seS1mb2N1c2FibGU6YWN0aXZlLCAuc3Itb25seS1mb2N1c2FibGU6Zm9jdXMge1xcbiAgY2xpcDogYXV0bztcXG4gIGhlaWdodDogYXV0bztcXG4gIG1hcmdpbjogMDtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbiAgcG9zaXRpb246IHN0YXRpYztcXG4gIHdpZHRoOiBhdXRvO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEgLmZhLXByaW1hcnkge1xcbiAgZmlsbDogdmFyKC0tZmEtcHJpbWFyeS1jb2xvciwgY3VycmVudENvbG9yKTtcXG4gIG9wYWNpdHk6IDE7XFxuICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEgLmZhLXNlY29uZGFyeSB7XFxuICBmaWxsOiB2YXIoLS1mYS1zZWNvbmRhcnktY29sb3IsIGN1cnJlbnRDb2xvcik7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTtcXG59XFxuXFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtcHJpbWFyeSB7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICBvcGFjaXR5OiB2YXIoLS1mYS1zZWNvbmRhcnktb3BhY2l0eSwgMC40KTtcXG59XFxuXFxuLnN2Zy1pbmxpbmUtLWZhLmZhLXN3YXAtb3BhY2l0eSAuZmEtc2Vjb25kYXJ5IHtcXG4gIG9wYWNpdHk6IDE7XFxuICBvcGFjaXR5OiB2YXIoLS1mYS1wcmltYXJ5LW9wYWNpdHksIDEpO1xcbn1cXG5cXG4uc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtcHJpbWFyeSxcXG4uc3ZnLWlubGluZS0tZmEgbWFzayAuZmEtc2Vjb25kYXJ5IHtcXG4gIGZpbGw6IGJsYWNrO1xcbn1cXG5cXG4uZmFkLmZhLWludmVyc2Uge1xcbiAgY29sb3I6ICNmZmY7XFxufVwiO1xuXG5mdW5jdGlvbiBjc3MgKCkge1xuICB2YXIgZGZwID0gREVGQVVMVF9GQU1JTFlfUFJFRklYO1xuICB2YXIgZHJjID0gREVGQVVMVF9SRVBMQUNFTUVOVF9DTEFTUztcbiAgdmFyIGZwID0gY29uZmlnLmZhbWlseVByZWZpeDtcbiAgdmFyIHJjID0gY29uZmlnLnJlcGxhY2VtZW50Q2xhc3M7XG4gIHZhciBzID0gYmFzZVN0eWxlcztcblxuICBpZiAoZnAgIT09IGRmcCB8fCByYyAhPT0gZHJjKSB7XG4gICAgdmFyIGRQYXR0ID0gbmV3IFJlZ0V4cChcIlxcXFwuXCIuY29uY2F0KGRmcCwgXCJcXFxcLVwiKSwgJ2cnKTtcbiAgICB2YXIgY3VzdG9tUHJvcFBhdHQgPSBuZXcgUmVnRXhwKFwiXFxcXC0tXCIuY29uY2F0KGRmcCwgXCJcXFxcLVwiKSwgJ2cnKTtcbiAgICB2YXIgclBhdHQgPSBuZXcgUmVnRXhwKFwiXFxcXC5cIi5jb25jYXQoZHJjKSwgJ2cnKTtcbiAgICBzID0gcy5yZXBsYWNlKGRQYXR0LCBcIi5cIi5jb25jYXQoZnAsIFwiLVwiKSkucmVwbGFjZShjdXN0b21Qcm9wUGF0dCwgXCItLVwiLmNvbmNhdChmcCwgXCItXCIpKS5yZXBsYWNlKHJQYXR0LCBcIi5cIi5jb25jYXQocmMpKTtcbiAgfVxuXG4gIHJldHVybiBzO1xufVxuXG52YXIgTGlicmFyeSA9XG4vKiNfX1BVUkVfXyovXG5mdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIExpYnJhcnkoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExpYnJhcnkpO1xuXG4gICAgdGhpcy5kZWZpbml0aW9ucyA9IHt9O1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKExpYnJhcnksIFt7XG4gICAga2V5OiBcImFkZFwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGQoKSB7XG4gICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgZGVmaW5pdGlvbnMgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICAgIGRlZmluaXRpb25zW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgICAgfVxuXG4gICAgICB2YXIgYWRkaXRpb25zID0gZGVmaW5pdGlvbnMucmVkdWNlKHRoaXMuX3B1bGxEZWZpbml0aW9ucywge30pO1xuICAgICAgT2JqZWN0LmtleXMoYWRkaXRpb25zKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgX3RoaXMuZGVmaW5pdGlvbnNba2V5XSA9IF9vYmplY3RTcHJlYWQoe30sIF90aGlzLmRlZmluaXRpb25zW2tleV0gfHwge30sIGFkZGl0aW9uc1trZXldKTtcbiAgICAgICAgZGVmaW5lSWNvbnMoa2V5LCBhZGRpdGlvbnNba2V5XSk7XG4gICAgICAgIGJ1aWxkKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVzZXRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVzZXQoKSB7XG4gICAgICB0aGlzLmRlZmluaXRpb25zID0ge307XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiBcIl9wdWxsRGVmaW5pdGlvbnNcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gX3B1bGxEZWZpbml0aW9ucyhhZGRpdGlvbnMsIGRlZmluaXRpb24pIHtcbiAgICAgIHZhciBub3JtYWxpemVkID0gZGVmaW5pdGlvbi5wcmVmaXggJiYgZGVmaW5pdGlvbi5pY29uTmFtZSAmJiBkZWZpbml0aW9uLmljb24gPyB7XG4gICAgICAgIDA6IGRlZmluaXRpb25cbiAgICAgIH0gOiBkZWZpbml0aW9uO1xuICAgICAgT2JqZWN0LmtleXMobm9ybWFsaXplZCkubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdmFyIF9ub3JtYWxpemVkJGtleSA9IG5vcm1hbGl6ZWRba2V5XSxcbiAgICAgICAgICAgIHByZWZpeCA9IF9ub3JtYWxpemVkJGtleS5wcmVmaXgsXG4gICAgICAgICAgICBpY29uTmFtZSA9IF9ub3JtYWxpemVkJGtleS5pY29uTmFtZSxcbiAgICAgICAgICAgIGljb24gPSBfbm9ybWFsaXplZCRrZXkuaWNvbjtcbiAgICAgICAgaWYgKCFhZGRpdGlvbnNbcHJlZml4XSkgYWRkaXRpb25zW3ByZWZpeF0gPSB7fTtcbiAgICAgICAgYWRkaXRpb25zW3ByZWZpeF1baWNvbk5hbWVdID0gaWNvbjtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFkZGl0aW9ucztcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gTGlicmFyeTtcbn0oKTtcblxuZnVuY3Rpb24gZW5zdXJlQ3NzKCkge1xuICBpZiAoY29uZmlnLmF1dG9BZGRDc3MgJiYgIV9jc3NJbnNlcnRlZCkge1xuICAgIGluc2VydENzcyhjc3MoKSk7XG5cbiAgICBfY3NzSW5zZXJ0ZWQgPSB0cnVlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFwaU9iamVjdCh2YWwsIGFic3RyYWN0Q3JlYXRvcikge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodmFsLCAnYWJzdHJhY3QnLCB7XG4gICAgZ2V0OiBhYnN0cmFjdENyZWF0b3JcbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWwsICdodG1sJywge1xuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgcmV0dXJuIHZhbC5hYnN0cmFjdC5tYXAoZnVuY3Rpb24gKGEpIHtcbiAgICAgICAgcmV0dXJuIHRvSHRtbChhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh2YWwsICdub2RlJywge1xuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgaWYgKCFJU19ET00pIHJldHVybjtcbiAgICAgIHZhciBjb250YWluZXIgPSBET0NVTUVOVC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSB2YWwuaHRtbDtcbiAgICAgIHJldHVybiBjb250YWluZXIuY2hpbGRyZW47XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHZhbDtcbn1cblxuZnVuY3Rpb24gZmluZEljb25EZWZpbml0aW9uKGljb25Mb29rdXApIHtcbiAgdmFyIF9pY29uTG9va3VwJHByZWZpeCA9IGljb25Mb29rdXAucHJlZml4LFxuICAgICAgcHJlZml4ID0gX2ljb25Mb29rdXAkcHJlZml4ID09PSB2b2lkIDAgPyAnZmEnIDogX2ljb25Mb29rdXAkcHJlZml4LFxuICAgICAgaWNvbk5hbWUgPSBpY29uTG9va3VwLmljb25OYW1lO1xuICBpZiAoIWljb25OYW1lKSByZXR1cm47XG4gIHJldHVybiBpY29uRnJvbU1hcHBpbmcobGlicmFyeS5kZWZpbml0aW9ucywgcHJlZml4LCBpY29uTmFtZSkgfHwgaWNvbkZyb21NYXBwaW5nKG5hbWVzcGFjZS5zdHlsZXMsIHByZWZpeCwgaWNvbk5hbWUpO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlSWNvbnMobmV4dCkge1xuICByZXR1cm4gZnVuY3Rpb24gKG1heWJlSWNvbkRlZmluaXRpb24pIHtcbiAgICB2YXIgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgICB2YXIgaWNvbkRlZmluaXRpb24gPSAobWF5YmVJY29uRGVmaW5pdGlvbiB8fCB7fSkuaWNvbiA/IG1heWJlSWNvbkRlZmluaXRpb24gOiBmaW5kSWNvbkRlZmluaXRpb24obWF5YmVJY29uRGVmaW5pdGlvbiB8fCB7fSk7XG4gICAgdmFyIG1hc2sgPSBwYXJhbXMubWFzaztcblxuICAgIGlmIChtYXNrKSB7XG4gICAgICBtYXNrID0gKG1hc2sgfHwge30pLmljb24gPyBtYXNrIDogZmluZEljb25EZWZpbml0aW9uKG1hc2sgfHwge30pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXh0KGljb25EZWZpbml0aW9uLCBfb2JqZWN0U3ByZWFkKHt9LCBwYXJhbXMsIHtcbiAgICAgIG1hc2s6IG1hc2tcbiAgICB9KSk7XG4gIH07XG59XG5cbnZhciBsaWJyYXJ5ID0gbmV3IExpYnJhcnkoKTtcbnZhciBub0F1dG8gPSBmdW5jdGlvbiBub0F1dG8oKSB7XG4gIGNvbmZpZy5hdXRvUmVwbGFjZVN2ZyA9IGZhbHNlO1xuICBjb25maWcub2JzZXJ2ZU11dGF0aW9ucyA9IGZhbHNlO1xuICBkaXNjb25uZWN0KCk7XG59O1xudmFyIF9jc3NJbnNlcnRlZCA9IGZhbHNlO1xudmFyIGRvbSA9IHtcbiAgaTJzdmc6IGZ1bmN0aW9uIGkyc3ZnKCkge1xuICAgIHZhciBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuXG4gICAgaWYgKElTX0RPTSkge1xuICAgICAgZW5zdXJlQ3NzKCk7XG4gICAgICB2YXIgX3BhcmFtcyRub2RlID0gcGFyYW1zLm5vZGUsXG4gICAgICAgICAgbm9kZSA9IF9wYXJhbXMkbm9kZSA9PT0gdm9pZCAwID8gRE9DVU1FTlQgOiBfcGFyYW1zJG5vZGUsXG4gICAgICAgICAgX3BhcmFtcyRjYWxsYmFjayA9IHBhcmFtcy5jYWxsYmFjayxcbiAgICAgICAgICBjYWxsYmFjayA9IF9wYXJhbXMkY2FsbGJhY2sgPT09IHZvaWQgMCA/IGZ1bmN0aW9uICgpIHt9IDogX3BhcmFtcyRjYWxsYmFjaztcblxuICAgICAgaWYgKGNvbmZpZy5zZWFyY2hQc2V1ZG9FbGVtZW50cykge1xuICAgICAgICBzZWFyY2hQc2V1ZG9FbGVtZW50cyhub2RlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9uVHJlZShub2RlLCBjYWxsYmFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBwaWNrZWQucmVqZWN0KCdPcGVyYXRpb24gcmVxdWlyZXMgYSBET00gb2Ygc29tZSBraW5kLicpO1xuICAgIH1cbiAgfSxcbiAgY3NzOiBjc3MsXG4gIGluc2VydENzczogZnVuY3Rpb24gaW5zZXJ0Q3NzJCQxKCkge1xuICAgIGlmICghX2Nzc0luc2VydGVkKSB7XG4gICAgICBpbnNlcnRDc3MoY3NzKCkpO1xuXG4gICAgICBfY3NzSW5zZXJ0ZWQgPSB0cnVlO1xuICAgIH1cbiAgfSxcbiAgd2F0Y2g6IGZ1bmN0aW9uIHdhdGNoKCkge1xuICAgIHZhciBwYXJhbXMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9O1xuICAgIHZhciBhdXRvUmVwbGFjZVN2Z1Jvb3QgPSBwYXJhbXMuYXV0b1JlcGxhY2VTdmdSb290LFxuICAgICAgICBvYnNlcnZlTXV0YXRpb25zUm9vdCA9IHBhcmFtcy5vYnNlcnZlTXV0YXRpb25zUm9vdDtcblxuICAgIGlmIChjb25maWcuYXV0b1JlcGxhY2VTdmcgPT09IGZhbHNlKSB7XG4gICAgICBjb25maWcuYXV0b1JlcGxhY2VTdmcgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbmZpZy5vYnNlcnZlTXV0YXRpb25zID0gdHJ1ZTtcbiAgICBkb21yZWFkeShmdW5jdGlvbiAoKSB7XG4gICAgICBhdXRvUmVwbGFjZSh7XG4gICAgICAgIGF1dG9SZXBsYWNlU3ZnUm9vdDogYXV0b1JlcGxhY2VTdmdSb290XG4gICAgICB9KTtcbiAgICAgIG9ic2VydmUoe1xuICAgICAgICB0cmVlQ2FsbGJhY2s6IG9uVHJlZSxcbiAgICAgICAgbm9kZUNhbGxiYWNrOiBvbk5vZGUsXG4gICAgICAgIHBzZXVkb0VsZW1lbnRzQ2FsbGJhY2s6IHNlYXJjaFBzZXVkb0VsZW1lbnRzLFxuICAgICAgICBvYnNlcnZlTXV0YXRpb25zUm9vdDogb2JzZXJ2ZU11dGF0aW9uc1Jvb3RcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59O1xudmFyIHBhcnNlID0ge1xuICB0cmFuc2Zvcm06IGZ1bmN0aW9uIHRyYW5zZm9ybSh0cmFuc2Zvcm1TdHJpbmcpIHtcbiAgICByZXR1cm4gcGFyc2VUcmFuc2Zvcm1TdHJpbmcodHJhbnNmb3JtU3RyaW5nKTtcbiAgfVxufTtcbnZhciBpY29uID0gcmVzb2x2ZUljb25zKGZ1bmN0aW9uIChpY29uRGVmaW5pdGlvbikge1xuICB2YXIgcGFyYW1zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTtcbiAgdmFyIF9wYXJhbXMkdHJhbnNmb3JtID0gcGFyYW1zLnRyYW5zZm9ybSxcbiAgICAgIHRyYW5zZm9ybSA9IF9wYXJhbXMkdHJhbnNmb3JtID09PSB2b2lkIDAgPyBtZWFuaW5nbGVzc1RyYW5zZm9ybSA6IF9wYXJhbXMkdHJhbnNmb3JtLFxuICAgICAgX3BhcmFtcyRzeW1ib2wgPSBwYXJhbXMuc3ltYm9sLFxuICAgICAgc3ltYm9sID0gX3BhcmFtcyRzeW1ib2wgPT09IHZvaWQgMCA/IGZhbHNlIDogX3BhcmFtcyRzeW1ib2wsXG4gICAgICBfcGFyYW1zJG1hc2sgPSBwYXJhbXMubWFzayxcbiAgICAgIG1hc2sgPSBfcGFyYW1zJG1hc2sgPT09IHZvaWQgMCA/IG51bGwgOiBfcGFyYW1zJG1hc2ssXG4gICAgICBfcGFyYW1zJHRpdGxlID0gcGFyYW1zLnRpdGxlLFxuICAgICAgdGl0bGUgPSBfcGFyYW1zJHRpdGxlID09PSB2b2lkIDAgPyBudWxsIDogX3BhcmFtcyR0aXRsZSxcbiAgICAgIF9wYXJhbXMkY2xhc3NlcyA9IHBhcmFtcy5jbGFzc2VzLFxuICAgICAgY2xhc3NlcyA9IF9wYXJhbXMkY2xhc3NlcyA9PT0gdm9pZCAwID8gW10gOiBfcGFyYW1zJGNsYXNzZXMsXG4gICAgICBfcGFyYW1zJGF0dHJpYnV0ZXMgPSBwYXJhbXMuYXR0cmlidXRlcyxcbiAgICAgIGF0dHJpYnV0ZXMgPSBfcGFyYW1zJGF0dHJpYnV0ZXMgPT09IHZvaWQgMCA/IHt9IDogX3BhcmFtcyRhdHRyaWJ1dGVzLFxuICAgICAgX3BhcmFtcyRzdHlsZXMgPSBwYXJhbXMuc3R5bGVzLFxuICAgICAgc3R5bGVzID0gX3BhcmFtcyRzdHlsZXMgPT09IHZvaWQgMCA/IHt9IDogX3BhcmFtcyRzdHlsZXM7XG4gIGlmICghaWNvbkRlZmluaXRpb24pIHJldHVybjtcbiAgdmFyIHByZWZpeCA9IGljb25EZWZpbml0aW9uLnByZWZpeCxcbiAgICAgIGljb25OYW1lID0gaWNvbkRlZmluaXRpb24uaWNvbk5hbWUsXG4gICAgICBpY29uID0gaWNvbkRlZmluaXRpb24uaWNvbjtcbiAgcmV0dXJuIGFwaU9iamVjdChfb2JqZWN0U3ByZWFkKHtcbiAgICB0eXBlOiAnaWNvbidcbiAgfSwgaWNvbkRlZmluaXRpb24pLCBmdW5jdGlvbiAoKSB7XG4gICAgZW5zdXJlQ3NzKCk7XG5cbiAgICBpZiAoY29uZmlnLmF1dG9BMTF5KSB7XG4gICAgICBpZiAodGl0bGUpIHtcbiAgICAgICAgYXR0cmlidXRlc1snYXJpYS1sYWJlbGxlZGJ5J10gPSBcIlwiLmNvbmNhdChjb25maWcucmVwbGFjZW1lbnRDbGFzcywgXCItdGl0bGUtXCIpLmNvbmNhdChuZXh0VW5pcXVlSWQoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhdHRyaWJ1dGVzWydhcmlhLWhpZGRlbiddID0gJ3RydWUnO1xuICAgICAgICBhdHRyaWJ1dGVzWydmb2N1c2FibGUnXSA9ICdmYWxzZSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ha2VJbmxpbmVTdmdBYnN0cmFjdCh7XG4gICAgICBpY29uczoge1xuICAgICAgICBtYWluOiBhc0ZvdW5kSWNvbihpY29uKSxcbiAgICAgICAgbWFzazogbWFzayA/IGFzRm91bmRJY29uKG1hc2suaWNvbikgOiB7XG4gICAgICAgICAgZm91bmQ6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiBudWxsLFxuICAgICAgICAgIGhlaWdodDogbnVsbCxcbiAgICAgICAgICBpY29uOiB7fVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcHJlZml4OiBwcmVmaXgsXG4gICAgICBpY29uTmFtZTogaWNvbk5hbWUsXG4gICAgICB0cmFuc2Zvcm06IF9vYmplY3RTcHJlYWQoe30sIG1lYW5pbmdsZXNzVHJhbnNmb3JtLCB0cmFuc2Zvcm0pLFxuICAgICAgc3ltYm9sOiBzeW1ib2wsXG4gICAgICB0aXRsZTogdGl0bGUsXG4gICAgICBleHRyYToge1xuICAgICAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLFxuICAgICAgICBzdHlsZXM6IHN0eWxlcyxcbiAgICAgICAgY2xhc3NlczogY2xhc3Nlc1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xudmFyIHRleHQgPSBmdW5jdGlvbiB0ZXh0KGNvbnRlbnQpIHtcbiAgdmFyIHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIHZhciBfcGFyYW1zJHRyYW5zZm9ybTIgPSBwYXJhbXMudHJhbnNmb3JtLFxuICAgICAgdHJhbnNmb3JtID0gX3BhcmFtcyR0cmFuc2Zvcm0yID09PSB2b2lkIDAgPyBtZWFuaW5nbGVzc1RyYW5zZm9ybSA6IF9wYXJhbXMkdHJhbnNmb3JtMixcbiAgICAgIF9wYXJhbXMkdGl0bGUyID0gcGFyYW1zLnRpdGxlLFxuICAgICAgdGl0bGUgPSBfcGFyYW1zJHRpdGxlMiA9PT0gdm9pZCAwID8gbnVsbCA6IF9wYXJhbXMkdGl0bGUyLFxuICAgICAgX3BhcmFtcyRjbGFzc2VzMiA9IHBhcmFtcy5jbGFzc2VzLFxuICAgICAgY2xhc3NlcyA9IF9wYXJhbXMkY2xhc3NlczIgPT09IHZvaWQgMCA/IFtdIDogX3BhcmFtcyRjbGFzc2VzMixcbiAgICAgIF9wYXJhbXMkYXR0cmlidXRlczIgPSBwYXJhbXMuYXR0cmlidXRlcyxcbiAgICAgIGF0dHJpYnV0ZXMgPSBfcGFyYW1zJGF0dHJpYnV0ZXMyID09PSB2b2lkIDAgPyB7fSA6IF9wYXJhbXMkYXR0cmlidXRlczIsXG4gICAgICBfcGFyYW1zJHN0eWxlczIgPSBwYXJhbXMuc3R5bGVzLFxuICAgICAgc3R5bGVzID0gX3BhcmFtcyRzdHlsZXMyID09PSB2b2lkIDAgPyB7fSA6IF9wYXJhbXMkc3R5bGVzMjtcbiAgcmV0dXJuIGFwaU9iamVjdCh7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGNvbnRlbnQ6IGNvbnRlbnRcbiAgfSwgZnVuY3Rpb24gKCkge1xuICAgIGVuc3VyZUNzcygpO1xuICAgIHJldHVybiBtYWtlTGF5ZXJzVGV4dEFic3RyYWN0KHtcbiAgICAgIGNvbnRlbnQ6IGNvbnRlbnQsXG4gICAgICB0cmFuc2Zvcm06IF9vYmplY3RTcHJlYWQoe30sIG1lYW5pbmdsZXNzVHJhbnNmb3JtLCB0cmFuc2Zvcm0pLFxuICAgICAgdGl0bGU6IHRpdGxlLFxuICAgICAgZXh0cmE6IHtcbiAgICAgICAgYXR0cmlidXRlczogYXR0cmlidXRlcyxcbiAgICAgICAgc3R5bGVzOiBzdHlsZXMsXG4gICAgICAgIGNsYXNzZXM6IFtcIlwiLmNvbmNhdChjb25maWcuZmFtaWx5UHJlZml4LCBcIi1sYXllcnMtdGV4dFwiKV0uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShjbGFzc2VzKSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xudmFyIGNvdW50ZXIgPSBmdW5jdGlvbiBjb3VudGVyKGNvbnRlbnQpIHtcbiAgdmFyIHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIHZhciBfcGFyYW1zJHRpdGxlMyA9IHBhcmFtcy50aXRsZSxcbiAgICAgIHRpdGxlID0gX3BhcmFtcyR0aXRsZTMgPT09IHZvaWQgMCA/IG51bGwgOiBfcGFyYW1zJHRpdGxlMyxcbiAgICAgIF9wYXJhbXMkY2xhc3NlczMgPSBwYXJhbXMuY2xhc3NlcyxcbiAgICAgIGNsYXNzZXMgPSBfcGFyYW1zJGNsYXNzZXMzID09PSB2b2lkIDAgPyBbXSA6IF9wYXJhbXMkY2xhc3NlczMsXG4gICAgICBfcGFyYW1zJGF0dHJpYnV0ZXMzID0gcGFyYW1zLmF0dHJpYnV0ZXMsXG4gICAgICBhdHRyaWJ1dGVzID0gX3BhcmFtcyRhdHRyaWJ1dGVzMyA9PT0gdm9pZCAwID8ge30gOiBfcGFyYW1zJGF0dHJpYnV0ZXMzLFxuICAgICAgX3BhcmFtcyRzdHlsZXMzID0gcGFyYW1zLnN0eWxlcyxcbiAgICAgIHN0eWxlcyA9IF9wYXJhbXMkc3R5bGVzMyA9PT0gdm9pZCAwID8ge30gOiBfcGFyYW1zJHN0eWxlczM7XG4gIHJldHVybiBhcGlPYmplY3Qoe1xuICAgIHR5cGU6ICdjb3VudGVyJyxcbiAgICBjb250ZW50OiBjb250ZW50XG4gIH0sIGZ1bmN0aW9uICgpIHtcbiAgICBlbnN1cmVDc3MoKTtcbiAgICByZXR1cm4gbWFrZUxheWVyc0NvdW50ZXJBYnN0cmFjdCh7XG4gICAgICBjb250ZW50OiBjb250ZW50LnRvU3RyaW5nKCksXG4gICAgICB0aXRsZTogdGl0bGUsXG4gICAgICBleHRyYToge1xuICAgICAgICBhdHRyaWJ1dGVzOiBhdHRyaWJ1dGVzLFxuICAgICAgICBzdHlsZXM6IHN0eWxlcyxcbiAgICAgICAgY2xhc3NlczogW1wiXCIuY29uY2F0KGNvbmZpZy5mYW1pbHlQcmVmaXgsIFwiLWxheWVycy1jb3VudGVyXCIpXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGNsYXNzZXMpKVxuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG52YXIgbGF5ZXIgPSBmdW5jdGlvbiBsYXllcihhc3NlbWJsZXIpIHtcbiAgdmFyIHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIHZhciBfcGFyYW1zJGNsYXNzZXM0ID0gcGFyYW1zLmNsYXNzZXMsXG4gICAgICBjbGFzc2VzID0gX3BhcmFtcyRjbGFzc2VzNCA9PT0gdm9pZCAwID8gW10gOiBfcGFyYW1zJGNsYXNzZXM0O1xuICByZXR1cm4gYXBpT2JqZWN0KHtcbiAgICB0eXBlOiAnbGF5ZXInXG4gIH0sIGZ1bmN0aW9uICgpIHtcbiAgICBlbnN1cmVDc3MoKTtcbiAgICB2YXIgY2hpbGRyZW4gPSBbXTtcbiAgICBhc3NlbWJsZXIoZnVuY3Rpb24gKGFyZ3MpIHtcbiAgICAgIEFycmF5LmlzQXJyYXkoYXJncykgPyBhcmdzLm1hcChmdW5jdGlvbiAoYSkge1xuICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLmNvbmNhdChhLmFic3RyYWN0KTtcbiAgICAgIH0pIDogY2hpbGRyZW4gPSBjaGlsZHJlbi5jb25jYXQoYXJncy5hYnN0cmFjdCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIFt7XG4gICAgICB0YWc6ICdzcGFuJyxcbiAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgY2xhc3M6IFtcIlwiLmNvbmNhdChjb25maWcuZmFtaWx5UHJlZml4LCBcIi1sYXllcnNcIildLmNvbmNhdChfdG9Db25zdW1hYmxlQXJyYXkoY2xhc3NlcykpLmpvaW4oJyAnKVxuICAgICAgfSxcbiAgICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICAgIH1dO1xuICB9KTtcbn07XG52YXIgYXBpID0ge1xuICBub0F1dG86IG5vQXV0byxcbiAgY29uZmlnOiBjb25maWcsXG4gIGRvbTogZG9tLFxuICBsaWJyYXJ5OiBsaWJyYXJ5LFxuICBwYXJzZTogcGFyc2UsXG4gIGZpbmRJY29uRGVmaW5pdGlvbjogZmluZEljb25EZWZpbml0aW9uLFxuICBpY29uOiBpY29uLFxuICB0ZXh0OiB0ZXh0LFxuICBjb3VudGVyOiBjb3VudGVyLFxuICBsYXllcjogbGF5ZXIsXG4gIHRvSHRtbDogdG9IdG1sXG59O1xuXG52YXIgYXV0b1JlcGxhY2UgPSBmdW5jdGlvbiBhdXRvUmVwbGFjZSgpIHtcbiAgdmFyIHBhcmFtcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge307XG4gIHZhciBfcGFyYW1zJGF1dG9SZXBsYWNlU3YgPSBwYXJhbXMuYXV0b1JlcGxhY2VTdmdSb290LFxuICAgICAgYXV0b1JlcGxhY2VTdmdSb290ID0gX3BhcmFtcyRhdXRvUmVwbGFjZVN2ID09PSB2b2lkIDAgPyBET0NVTUVOVCA6IF9wYXJhbXMkYXV0b1JlcGxhY2VTdjtcbiAgaWYgKChPYmplY3Qua2V5cyhuYW1lc3BhY2Uuc3R5bGVzKS5sZW5ndGggPiAwIHx8IGNvbmZpZy5hdXRvRmV0Y2hTdmcpICYmIElTX0RPTSAmJiBjb25maWcuYXV0b1JlcGxhY2VTdmcpIGFwaS5kb20uaTJzdmcoe1xuICAgIG5vZGU6IGF1dG9SZXBsYWNlU3ZnUm9vdFxuICB9KTtcbn07XG5cbmV4cG9ydCB7IGljb24sIG5vQXV0bywgY29uZmlnLCB0b0h0bWwsIGxheWVyLCB0ZXh0LCBjb3VudGVyLCBsaWJyYXJ5LCBkb20sIHBhcnNlLCBmaW5kSWNvbkRlZmluaXRpb24gfTtcbiIsInZhciBwcmVmaXggPSBcImZhc1wiO1xudmFyIGZhQWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2NDFcIiwgXCJNMTU3LjUyIDI3MmgzNi45NkwxNzYgMjE4Ljc4IDE1Ny41MiAyNzJ6TTM1MiAyNTZjLTEzLjIzIDAtMjQgMTAuNzctMjQgMjRzMTAuNzcgMjQgMjQgMjQgMjQtMTAuNzcgMjQtMjQtMTAuNzctMjQtMjQtMjR6TTQ2NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYyODhjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMjUwLjU4IDM1MmgtMTYuOTRjLTYuODEgMC0xMi44OC00LjMyLTE1LjEyLTEwLjc1TDIxMS4xNSAzMjBoLTcwLjI5bC03LjM4IDIxLjI1QTE2IDE2IDAgMCAxIDExOC4zNiAzNTJoLTE2Ljk0Yy0xMS4wMSAwLTE4LjczLTEwLjg1LTE1LjEyLTIxLjI1TDE0MCAxNzYuMTJBMjMuOTk1IDIzLjk5NSAwIDAgMSAxNjIuNjcgMTYwaDI2LjY2QTIzLjk5IDIzLjk5IDAgMCAxIDIxMiAxNzYuMTNsNTMuNjkgMTU0LjYyYzMuNjEgMTAuNC00LjExIDIxLjI1LTE1LjExIDIxLjI1ek00MjQgMzM2YzAgOC44NC03LjE2IDE2LTE2IDE2aC0xNmMtNC44NSAwLTkuMDQtMi4yNy0xMS45OC01LjY4LTguNjIgMy42Ni0xOC4wOSA1LjY4LTI4LjAyIDUuNjgtMzkuNyAwLTcyLTMyLjMtNzItNzJzMzIuMy03MiA3Mi03MmM4LjQ2IDAgMTYuNDYgMS43MyAyNCA0LjQyVjE3NmMwLTguODQgNy4xNi0xNiAxNi0xNmgxNmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNjB6XCJdXG59O1xudmFyIGZhQWRkcmVzc0Jvb2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWRkcmVzcy1ib29rJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMmI5XCIsIFwiTTQzNiAxNjBjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTIwVjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMzIwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00OGgyMGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMjB2LTY0aDIwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0yMHYtNjRoMjB6bS0yMjgtMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NCAyOC43LTY0IDY0LTY0em0xMTIgMjM2LjhjMCAxMC42LTEwIDE5LjItMjIuNCAxOS4ySDExOC40QzEwNiAzODQgOTYgMzc1LjQgOTYgMzY0Ljh2LTE5LjJjMC0zMS44IDMwLjEtNTcuNiA2Ny4yLTU3LjZoNWMxMi4zIDUuMSAyNS43IDggMzkuOCA4czI3LjYtMi45IDM5LjgtOGg1YzM3LjEgMCA2Ny4yIDI1LjggNjcuMiA1Ny42djE5LjJ6XCJdXG59O1xudmFyIGZhQWRkcmVzc0NhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWRkcmVzcy1jYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMmJiXCIsIFwiTTUyOCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0zNTIgOTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjQtNjQtMjguNy02NC02NCAyOC43LTY0IDY0LTY0em0xMTIgMjM2LjhjMCAxMC42LTEwIDE5LjItMjIuNCAxOS4ySDg2LjRDNzQgMzg0IDY0IDM3NS40IDY0IDM2NC44di0xOS4yYzAtMzEuOCAzMC4xLTU3LjYgNjcuMi01Ny42aDVjMTIuMyA1LjEgMjUuNyA4IDM5LjggOHMyNy42LTIuOSAzOS44LThoNWMzNy4xIDAgNjcuMiAyNS44IDY3LjIgNTcuNnYxOS4yek01MTIgMzEyYzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtNjRjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNnptMC02NGMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2elwiXVxufTtcbnZhciBmYUFkanVzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhZGp1c3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNDJcIiwgXCJNOCAyNTZjMCAxMzYuOTY2IDExMS4wMzMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMzQgMjQ4LTI0OFMzOTIuOTY2IDggMjU2IDggOCAxMTkuMDMzIDggMjU2em0yNDggMTg0VjcyYzEwMS43MDUgMCAxODQgODIuMzExIDE4NCAxODQgMCAxMDEuNzA1LTgyLjMxMSAxODQtMTg0IDE4NHpcIl1cbn07XG52YXIgZmFBaXJGcmVzaGVuZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWlyLWZyZXNoZW5lcicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjVkMFwiLCBcIk0zNzguOTQgMzIxLjQxTDI4NC43IDIyNGg0OS4yMmMxNS4zIDAgMjMuNjYtMTYuNiAxMy44Ni0yNy41M0wyMzQuNDUgNjkuOTZjMy40My02LjYxIDUuNTUtMTQgNS41NS0yMS45NiAwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4cy00OCAyMS40OS00OCA0OGMwIDcuOTYgMi4xMiAxNS4zNSA1LjU1IDIxLjk2TDM2LjIyIDE5Ni40N0MyNi40MiAyMDcuNCAzNC43OCAyMjQgNTAuMDggMjI0SDk5LjNMNS4wNiAzMjEuNDFDLTYuNjkgMzMzLjU2IDMuMzQgMzUyIDIxLjcgMzUySDE2MHYzMkg0OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMjg4YzguODQgMCAxNi03LjE2IDE2LTE2di05NmMwLTguODQtNy4xNi0xNi0xNi0xNkgyMjR2LTMyaDEzOC4zYzE4LjM2IDAgMjguMzktMTguNDQgMTYuNjQtMzAuNTl6TTE5MiAzMS45OGM4Ljg1IDAgMTYuMDIgNy4xNyAxNi4wMiAxNi4wMiAwIDguODQtNy4xNyAxNi4wMi0xNi4wMiAxNi4wMlMxNzUuOTggNTYuODQgMTc1Ljk4IDQ4YzAtOC44NSA3LjE3LTE2LjAyIDE2LjAyLTE2LjAyek0zMDQgNDMydjMySDgwdi0zMmgyMjR6XCJdXG59O1xudmFyIGZhQWxpZ25DZW50ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWxpZ24tY2VudGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDM3XCIsIFwiTTQzMiAxNjBIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMCAyNTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMTA4LjEgOTZoMjMxLjgxQTEyLjA5IDEyLjA5IDAgMCAwIDM1MiA4My45VjQ0LjA5QTEyLjA5IDEyLjA5IDAgMCAwIDMzOS45MSAzMkgxMDguMUExMi4wOSAxMi4wOSAwIDAgMCA5NiA0NC4wOVY4My45QTEyLjEgMTIuMSAwIDAgMCAxMDguMSA5NnptMjMxLjgxIDI1NkExMi4wOSAxMi4wOSAwIDAgMCAzNTIgMzM5Ljl2LTM5LjgxQTEyLjA5IDEyLjA5IDAgMCAwIDMzOS45MSAyODhIMTA4LjFBMTIuMDkgMTIuMDkgMCAwIDAgOTYgMzAwLjA5djM5LjgxYTEyLjEgMTIuMSAwIDAgMCAxMi4xIDEyLjF6XCJdXG59O1xudmFyIGZhQWxpZ25KdXN0aWZ5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FsaWduLWp1c3RpZnknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwMzlcIiwgXCJNNDMyIDQxNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTEyOEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTEyOEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTEyOEgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIl1cbn07XG52YXIgZmFBbGlnbkxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWxpZ24tbGVmdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAzNlwiLCBcIk0xMi44MyAzNTJoMjYyLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDI4OCAzMzkuMTd2LTM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDI3NS4xNyAyODhIMTIuODNBMTIuODIgMTIuODIgMCAwIDAgMCAzMDAuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMTIuODMgMzUyem0wLTI1NmgyNjIuMzRBMTIuODIgMTIuODIgMCAwIDAgMjg4IDgzLjE3VjQ0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDI3NS4xNyAzMkgxMi44M0ExMi44MiAxMi44MiAwIDAgMCAwIDQ0LjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDEyLjgzIDk2ek00MzIgMTYwSDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMjU2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhQWxpZ25SaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbGlnbi1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAzOFwiLCBcIk0xNiAyMjRoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnptNDE2IDE5MkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0zLjE3LTM4NEgxNzIuODNBMTIuODIgMTIuODIgMCAwIDAgMTYwIDQ0LjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDE3Mi44MyA5NmgyNjIuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDgzLjE3VjQ0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDQzNS4xNyAzMnptMCAyNTZIMTcyLjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE2MCAzMDAuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMTcyLjgzIDM1MmgyNjIuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDMzOS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDI4OHpcIl1cbn07XG52YXIgZmFBbGxlcmdpZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYWxsZXJnaWVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNDYxXCIsIFwiTTQxNiAxMTJjLTE3LjYgMC0zMiAxNC40LTMyIDMydjcyYzAgNC40LTMuNiA4LTggOGgtMTZjLTQuNCAwLTgtMy42LTgtOFY2NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnMtMzIgMTQuNC0zMiAzMnYxNTJjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04VjMyYzAtMTcuNi0xNC40LTMyLTMyLTMycy0zMiAxNC40LTMyIDMydjE4NGMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LThWNjRjMC0xNy42LTE0LjQtMzItMzItMzJTOTYgNDYuNCA5NiA2NHYyNDFsLTIzLjYtMzIuNWMtMTMtMTcuOS0zOC0yMS44LTU1LjktOC44cy0yMS44IDM4LTguOCA1NS45bDEyNS42IDE3Mi43YzkgMTIuNCAyMy41IDE5LjggMzguOCAxOS44aDE5Ny42YzIyLjMgMCA0MS42LTE1LjMgNDYuNy0zN2wyNi41LTExMi43YzMuMi0xMy43IDQuOS0yOC4zIDUuMS00Mi4zVjE0NGMwLTE3LjYtMTQuNC0zMi0zMi0zMnpNMTc2IDQxNmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTY0IDEyOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTY0IDMyYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTMyIDY0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTMyLTEyOGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2elwiXVxufTtcbnZhciBmYUFtYnVsYW5jZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbWJ1bGFuY2UnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYwZjlcIiwgXCJNNjI0IDM1MmgtMTZWMjQzLjljMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOUw0OTQgMTEwLjFjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xSDQxNlY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDAgMCAyMS41IDAgNDh2MzIwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDE2YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6TTE2MCA0NjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em0xNDQtMjQ4YzAgNC40LTMuNiA4LTggOGgtNTZ2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NmgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDU2di01NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djU2aDU2YzQuNCAwIDggMy42IDggOHY0OHptMTc2IDI0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTgwLTIwOEg0MTZWMTQ0aDQ0LjFsOTkuOSA5OS45VjI1NnpcIl1cbn07XG52YXIgZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjJhM1wiLCBcIk0yOTAuNTQ3IDE4OS4wMzljLTIwLjI5NS0xMC4xNDktNDQuMTQ3LTExLjE5OS02NC43MzktMy44OSA0Mi42MDYgMCA3MS4yMDggMjAuNDc1IDg1LjU3OCA1MC41NzYgOC41NzYgMTcuODk5LTUuMTQ4IDM4LjA3MS0yMy42MTcgMzguMDcxIDE4LjQyOSAwIDMyLjIxMSAyMC4xMzYgMjMuNjE3IDM4LjA3MS0xNC43MjUgMzAuODQ2LTQ2LjEyMyA1MC44NTQtODAuMjk4IDUwLjg1NC0uNTU3IDAtOTQuNDcxLTguNjE1LTk0LjQ3MS04LjYxNWwtNjYuNDA2IDMzLjM0N2MtOS4zODQgNC42OTMtMTkuODE1LjM3OS0yMy44OTUtNy43ODFMMS44NiAyOTAuNzQ3Yy00LjE2Ny04LjYxNS0xLjExMS0xOC44OTcgNi45NDYtMjMuNjIxbDU4LjA3Mi0zMy4wNjlMMTA4IDE1OS44NjFjNi4zOS01Ny4yNDUgMzQuNzMxLTEwOS43NjcgNzkuNzQzLTE0Ni43MjYgMTEuMzkxLTkuNDQ4IDI4LjM0MS03Ljc4MSAzNy41MSAzLjYxMyA5LjQ0NiAxMS4zOTQgNy43OCAyOC4wNjctMy42MTIgMzcuNTE2LTEyLjUwMyAxMC41NTktMjMuNjE4IDIyLjUwOS0zMi41MDkgMzUuNTcgMjEuNjcyLTE0LjcyOSA0Ni42NzktMjQuNzMyIDc0LjE4Ni0yOC4wNjcgMTQuNzI1LTEuOTQ1IDI4LjA2MyA4LjMzNiAyOS43MyAyMy4wNjUgMS45NDUgMTQuNzI4LTguMzM2IDI4LjA2Ny0yMy4wNjIgMjkuNzM0LTE2LjExNiAxLjk0NS0zMS4xMiA3LjUwMy00NC4xNzggMTUuMjg0IDI2LjExNC01LjcxMyA1OC43MTItMy4xMzggODguMDc5IDExLjExNSAxMy4zMzYgNi42NjkgMTguODkzIDIyLjUwOSAxMi4yMjQgMzUuODQ4LTYuMzg5IDEzLjA2LTIyLjUwNCAxOC42MTctMzUuNTY0IDEyLjIyNnptLTI3LjIyOSA2OS40NzJjLTYuMTEyLTEyLjUwNS0xOC4zMzgtMjAuMjg2LTMyLjIzMS0yMC4yODZhMzUuNDYgMzUuNDYgMCAwIDAtMzUuNTY1IDM1LjU3YzAgMjEuNDI4IDE3LjgwOCAzNS41NyAzNS41NjUgMzUuNTcgMTMuODkzIDAgMjYuMTE5LTcuNzgxIDMyLjIzMS0yMC4yODYgNC40NDYtOS40NDkgMTMuNjE0LTE1LjAwNiAyMy4zMzktMTUuMjg0LTkuNzI1LS4yNzctMTguODkzLTUuODM1LTIzLjMzOS0xNS4yODR6bTM3NC44MjEtMzcuMjM3YzQuMTY4IDguNjE1IDEuMTExIDE4Ljg5Ny02Ljk0NiAyMy42MjFsLTU4LjA3MSAzMy4wNjlMNTMyIDM1Mi4xNmMtNi4zOSA1Ny4yNDUtMzQuNzMxIDEwOS43NjctNzkuNzQzIDE0Ni43MjYtMTAuOTMyIDkuMTEyLTI3Ljc5OSA4LjE0NC0zNy41MS0zLjYxMy05LjQ0Ni0xMS4zOTQtNy43OC0yOC4wNjcgMy42MTMtMzcuNTE2IDEyLjUwMy0xMC41NTkgMjMuNjE3LTIyLjUwOSAzMi41MDgtMzUuNTctMjEuNjcyIDE0LjcyOS00Ni42NzkgMjQuNzMyLTc0LjE4NiAyOC4wNjctMTAuMDIxIDIuNTA2LTI3LjU1Mi01LjY0My0yOS43My0yMy4wNjUtMS45NDUtMTQuNzI4IDguMzM2LTI4LjA2NyAyMy4wNjItMjkuNzM0IDE2LjExNi0xLjk0NiAzMS4xMi03LjUwMyA0NC4xNzgtMTUuMjg0LTI2LjExNCA1LjcxMy01OC43MTIgMy4xMzgtODguMDc5LTExLjExNS0xMy4zMzYtNi42NjktMTguODkzLTIyLjUwOS0xMi4yMjQtMzUuODQ4IDYuMzg5LTEzLjA2MSAyMi41MDUtMTguNjE5IDM1LjU2NS0xMi4yMjcgMjAuMjk1IDEwLjE0OSA0NC4xNDcgMTEuMTk5IDY0LjczOSAzLjg5LTQyLjYwNiAwLTcxLjIwOC0yMC40NzUtODUuNTc4LTUwLjU3Ni04LjU3Ni0xNy44OTkgNS4xNDgtMzguMDcxIDIzLjYxNy0zOC4wNzEtMTguNDI5IDAtMzIuMjExLTIwLjEzNi0yMy42MTctMzguMDcxIDE0LjAzMy0yOS4zOTYgNDQuMDM5LTUwLjg4NyA4MS45NjYtNTAuODU0bDkyLjgwMyA4LjYxNSA2Ni40MDYtMzMuMzQ3YzkuNDA4LTQuNzA0IDE5LjgyOC0uMzU0IDIzLjg5NCA3Ljc4MWw0NC40NTUgODguOTI2em0tMjI5LjIyNy0xOC42MThjLTEzLjg5MyAwLTI2LjExOSA3Ljc4MS0zMi4yMzEgMjAuMjg2LTQuNDQ2IDkuNDQ5LTEzLjYxNCAxNS4wMDYtMjMuMzM5IDE1LjI4NCA5LjcyNS4yNzggMTguODkzIDUuODM2IDIzLjMzOSAxNS4yODQgNi4xMTIgMTIuNTA1IDE4LjMzOCAyMC4yODYgMzIuMjMxIDIwLjI4NmEzNS40NiAzNS40NiAwIDAgMCAzNS41NjUtMzUuNTdjMC0yMS40MjktMTcuODA4LTM1LjU3LTM1LjU2NS0zNS41N3pcIl1cbn07XG52YXIgZmFBbmNob3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5jaG9yJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMTNkXCIsIFwiTTEyLjk3MSAzNTJoMzIuMzk0QzY3LjE3MiA0NTQuNzM1IDE4MS45NDQgNTEyIDI4OCA1MTJjMTA2LjIyOSAwIDIyMC44NTMtNTcuMzggMjQyLjYzNS0xNjBoMzIuMzk0YzEwLjY5MSAwIDE2LjA0NS0xMi45MjYgOC40ODUtMjAuNDg1bC02Ny4wMjktNjcuMDI5Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBsLTY3LjAyOSA2Ny4wMjljLTcuNTYgNy41Ni0yLjIwNiAyMC40ODUgOC40ODUgMjAuNDg1aDM1LjE0NmMtMjAuMjkgNTQuMzE3LTg0Ljk2MyA4Ni41ODgtMTQ0LjExNyA5NC4wMTVWMjU2aDUyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTUydi01LjQ3YzM3LjI4MS0xMy4xNzggNjMuOTk1LTQ4LjcyNSA2NC05MC41MThDMzg0LjAwNSA0My43NzIgMzQxLjYwNS43MzggMjg5LjM3LjAxIDIzNS43MjMtLjczOSAxOTIgNDIuNTI1IDE5MiA5NmMwIDQxLjc5OCAyNi43MTYgNzcuMzUgNjQgOTAuNTNWMTkyaC01MmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDUydjE5MC4wMTVjLTU4LjkzNi03LjM5OS0xMjMuODItMzkuNjc5LTE0NC4xMTctOTQuMDE1aDM1LjE0NmMxMC42OTEgMCAxNi4wNDUtMTIuOTI2IDguNDg1LTIwLjQ4NWwtNjcuMDI5LTY3LjAyOWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDQuNDg1IDMzMS41MTVDLTMuMDc0IDMzOS4wNzQgMi4yOCAzNTIgMTIuOTcxIDM1MnpNMjg4IDY0YzE3LjY0NSAwIDMyIDE0LjM1NSAzMiAzMnMtMTQuMzU1IDMyLTMyIDMyLTMyLTE0LjM1NS0zMi0zMiAxNC4zNTUtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhQW5nbGVEb3VibGVEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlLWRvdWJsZS1kb3duJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMTAzXCIsIFwiTTE0MyAyNTYuM0w3IDEyMC4zYy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwyMi42LTIyLjZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsOTYuNCA5Ni40IDk2LjQtOTYuNGM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEwzMTMgODYuM2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMTM2IDEzNmMtOS40IDkuNS0yNC42IDkuNS0zNCAuMXptMzQgMTkybDEzNi0xMzZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTIyLjYtMjIuNmMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMTYwIDM1Mi4xbC05Ni40LTk2LjRjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDcgMjc4LjNjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDEzNiAxMzZjOS40IDkuNSAyNC42IDkuNSAzNCAuMXpcIl1cbn07XG52YXIgZmFBbmdsZURvdWJsZUxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGUtZG91YmxlLWxlZnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxMDBcIiwgXCJNMjIzLjcgMjM5bDEzNi0xMzZjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMjIuNiAyMi42YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDMxOS45IDI1Nmw5Ni40IDk2LjRjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMzkzLjcgNDA5Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMTM2LTEzNmMtOS41LTkuNC05LjUtMjQuNi0uMS0zNHptLTE5MiAzNGwxMzYgMTM2YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDIyLjYtMjIuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwxMjcuOSAyNTZsOTYuNC05Ni40YzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDIwMS43IDEwM2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTEzNiAxMzZjLTkuNSA5LjQtOS41IDI0LjYtLjEgMzR6XCJdXG59O1xudmFyIGZhQW5nbGVEb3VibGVSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhbmdsZS1kb3VibGUtcmlnaHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxMDFcIiwgXCJNMjI0LjMgMjczbC0xMzYgMTM2Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuNi0yMi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw5Ni40LTk2LjQtOTYuNC05Ni40Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUw1NC4zIDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxMzYgMTM2YzkuNSA5LjQgOS41IDI0LjYuMSAzNHptMTkyLTM0bC0xMzYtMTM2Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMjIuNiAyMi42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWw5Ni40IDk2LjQtOTYuNCA5Ni40Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwyMi42IDIyLjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMTM2LTEzNmM5LjQtOS4yIDkuNC0yNC40IDAtMzMuOHpcIl1cbn07XG52YXIgZmFBbmdsZURvdWJsZVVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlLWRvdWJsZS11cCcsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjEwMlwiLCBcIk0xNzcgMjU1LjdsMTM2IDEzNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMjIuNiAyMi42Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxNjAgMzUxLjlsLTk2LjQgOTYuNGMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMNyA0MjUuN2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlsMTM2LTEzNmM5LjQtOS41IDI0LjYtOS41IDM0LS4xem0tMzQtMTkyTDcgMTk5LjdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDIyLjYgMjIuNmM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw5Ni40LTk2LjQgOTYuNCA5Ni40YzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDIyLjYtMjIuNmM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtMTM2LTEzNmMtOS4yLTkuNC0yNC40LTkuNC0zMy44IDB6XCJdXG59O1xudmFyIGZhQW5nbGVEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlLWRvd24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYxMDdcIiwgXCJNMTQzIDM1Mi4zTDcgMjE2LjNjLTkuNC05LjQtOS40LTI0LjYgMC0zMy45bDIyLjYtMjIuNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGw5Ni40IDk2LjQgOTYuNC05Ni40YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDIyLjYgMjIuNmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMTM2IDEzNmMtOS4yIDkuNC0yNC40IDkuNC0zMy44IDB6XCJdXG59O1xudmFyIGZhQW5nbGVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlLWxlZnQnLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYxMDRcIiwgXCJNMzEuNyAyMzlsMTM2LTEzNmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwyMi42IDIyLjZjOS40IDkuNCA5LjQgMjQuNiAwIDMzLjlMMTI3LjkgMjU2bDk2LjQgOTYuNGM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyMDEuNyA0MDljLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwbC0xMzYtMTM2Yy05LjUtOS40LTkuNS0yNC42LS4xLTM0elwiXVxufTtcbnZhciBmYUFuZ2xlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5nbGUtcmlnaHQnLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYxMDVcIiwgXCJNMjI0LjMgMjczbC0xMzYgMTM2Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuNi0yMi42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWw5Ni40LTk2LjQtOTYuNC05Ni40Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOUw1NC4zIDEwM2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwxMzYgMTM2YzkuNSA5LjQgOS41IDI0LjYuMSAzNHpcIl1cbn07XG52YXIgZmFBbmdsZVVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FuZ2xlLXVwJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMTA2XCIsIFwiTTE3NyAxNTkuN2wxMzYgMTM2YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45bC0yMi42IDIyLjZjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDE2MCAyNTUuOWwtOTYuNCA5Ni40Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEw3IDMyOS43Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwxMzYtMTM2YzkuNC05LjUgMjQuNi05LjUgMzQtLjF6XCJdXG59O1xudmFyIGZhQW5ncnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYW5ncnknLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1NTZcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNMTM2IDI0MGMwLTkuMyA0LjEtMTcuNSAxMC41LTIzLjRsLTMxLTkuM2MtOC41LTIuNS0xMy4zLTExLjUtMTAuNy0xOS45IDIuNS04LjUgMTEuNC0xMy4yIDE5LjktMTAuN2w4MCAyNGM4LjUgMi41IDEzLjMgMTEuNSAxMC43IDE5LjktMi4xIDYuOS04LjQgMTEuNC0xNS4zIDExLjQtLjUgMC0xLjEtLjItMS43LS4yLjcgMi43IDEuNyA1LjMgMS43IDguMiAwIDE3LjctMTQuMyAzMi0zMiAzMlMxMzYgMjU3LjcgMTM2IDI0MHptMTY4IDE1NC4yYy0yNy44LTMzLjQtODQuMi0zMy40LTExMi4xIDAtMTMuNSAxNi4zLTM4LjItNC4yLTI0LjYtMjAuNSAyMC0yNCA0OS40LTM3LjggODAuNi0zNy44czYwLjYgMTMuOCA4MC42IDM3LjhjMTMuOCAxNi41LTExLjEgMzYuNi0yNC41IDIwLjV6bTc2LjYtMTg2LjlsLTMxIDkuM2M2LjMgNS44IDEwLjUgMTQuMSAxMC41IDIzLjQgMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzJjMC0yLjkuOS01LjYgMS43LTguMi0uNi4xLTEuMS4yLTEuNy4yLTYuOSAwLTEzLjItNC41LTE1LjMtMTEuNC0yLjUtOC41IDIuMy0xNy40IDEwLjctMTkuOWw4MC0yNGM4LjQtMi41IDE3LjQgMi4zIDE5LjkgMTAuNyAyLjUgOC41LTIuMyAxNy40LTEwLjggMTkuOXpcIl1cbn07XG52YXIgZmFBbmtoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fua2gnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImY2NDRcIiwgXCJNMjk2IDI1NmgtNDQuNjJDMjcyLjQ2IDIyMi4wMSAyODggMTgxLjY1IDI4OCAxNDQgMjg4IDU1LjYzIDIzMC42OSAwIDE2MCAwUzMyIDU1LjYzIDMyIDE0NGMwIDM3LjY1IDE1LjU0IDc4LjAxIDM2LjYyIDExMkgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHYzMmMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDk2djE1MmMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDMyYzEzLjI1IDAgMjQtMTAuNzUgMjQtMjRWMzM2aDk2YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTMyYzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6TTE2MCA4MGMyOS42MSAwIDQ4IDI0LjUyIDQ4IDY0IDAgMzQuNjYtMjcuMTQgNzguMTQtNDggMTAwLjg3LTIwLjg2LTIyLjcyLTQ4LTY2LjIxLTQ4LTEwMC44NyAwLTM5LjQ4IDE4LjM5LTY0IDQ4LTY0elwiXVxufTtcbnZhciBmYUFwcGxlQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FwcGxlLWFsdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjVkMVwiLCBcIk0zNTAuODUgMTI5YzI1Ljk3IDQuNjcgNDcuMjcgMTguNjcgNjMuOTIgNDIgMTQuNjUgMjAuNjcgMjQuNjQgNDYuNjcgMjkuOTYgNzggNC42NyAyOC42NyA0LjMyIDU3LjMzLTEgODYtNy45OSA0Ny4zMy0yMy45NyA4Ny00Ny45NCAxMTktMjguNjQgMzguNjctNjQuNTkgNTgtMTA3Ljg3IDU4LTEwLjY2IDAtMjIuMy0zLjMzLTM0Ljk2LTEwLTguNjYtNS4zMy0xOC4zMS04LTI4Ljk3LThzLTIwLjMgMi42Ny0yOC45NyA4Yy0xMi42NiA2LjY3LTI0LjMgMTAtMzQuOTYgMTAtNDMuMjggMC03OS4yMy0xOS4zMy0xMDcuODctNTgtMjMuOTctMzItMzkuOTUtNzEuNjctNDcuOTQtMTE5LTUuMzItMjguNjctNS42Ny01Ny4zMy0xLTg2IDUuMzItMzEuMzMgMTUuMzEtNTcuMzMgMjkuOTYtNzggMTYuNjUtMjMuMzMgMzcuOTUtMzcuMzMgNjMuOTItNDIgMTUuOTgtMi42NyAzNy45NS0uMzMgNjUuOTIgNyAyMy45NyA2LjY3IDQ0LjI4IDE0LjY3IDYwLjkzIDI0IDE2LjY1LTkuMzMgMzYuOTYtMTcuMzMgNjAuOTMtMjQgMjcuOTgtNy4zMyA0OS45Ni05LjY3IDY1Ljk0LTd6bS01NC45NC00MWMtOS4zMiA4LjY3LTIxLjY1IDE1LTM2Ljk2IDE5LTEwLjY2IDMuMzMtMjIuMyA1LTM0Ljk2IDVsLTE0Ljk4LTFjLTEuMzMtOS4zMy0xLjMzLTIwIDAtMzIgMi42Ny0yNCAxMC4zMi00Mi4zMyAyMi45Ny01NSA5LjMyLTguNjcgMjEuNjUtMTUgMzYuOTYtMTkgMTAuNjYtMy4zMyAyMi4zLTUgMzQuOTYtNWwxNC45OCAxIDEgMTVjMCAxMi42Ny0xLjY3IDI0LjMzLTQuOTkgMzUtMy45OSAxNS4zMy0xMC4zMSAyNy42Ny0xOC45OCAzN3pcIl1cbn07XG52YXIgZmFBcmNoaXZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FyY2hpdmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxODdcIiwgXCJNMzIgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDM4NGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBIMzJ2Mjg4em0xNjAtMjEyYzAtNi42IDUuNC0xMiAxMi0xMmgxMDRjNi42IDAgMTIgNS40IDEyIDEydjhjMCA2LjYtNS40IDEyLTEyIDEySDIwNGMtNi42IDAtMTItNS40LTEyLTEydi04ek00ODAgMzJIMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoNDgwYzguOCAwIDE2LTcuMiAxNi0xNlY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFBcmNod2F5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2FyY2h3YXknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1NTdcIiwgXCJNNTYwIDQ0OGgtMTZWOTZIMzJ2MzUySDE2LjAyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNkgxNzZjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzIwYzAtNTMuMDIgNDIuOTgtOTYgOTYtOTZzOTYgNDIuOTggOTYgOTZsLjAyIDE2MHYxNmMwIDguODQgNy4xNiAxNiAxNiAxNkg1NjBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0wLTQ0OEgxNkM3LjE2IDAgMCA3LjE2IDAgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNTQ0YzguODQgMCAxNi03LjE2IDE2LTE2VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2elwiXVxufTtcbnZhciBmYUFycm93QWx0Q2lyY2xlRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1hbHQtY2lyY2xlLWRvd24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzNThcIiwgXCJNNTA0IDI1NmMwIDEzNy0xMTEgMjQ4LTI0OCAyNDhTOCAzOTMgOCAyNTYgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4ek0yMTIgMTQwdjExNmgtNzAuOWMtMTAuNyAwLTE2LjEgMTMtOC41IDIwLjVsMTE0LjkgMTE0LjNjNC43IDQuNyAxMi4yIDQuNyAxNi45IDBsMTE0LjktMTE0LjNjNy42LTcuNiAyLjItMjAuNS04LjUtMjAuNUgzMDBWMTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNjRjLTYuNiAwLTEyIDUuNC0xMiAxMnpcIl1cbn07XG52YXIgZmFBcnJvd0FsdENpcmNsZUxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctYWx0LWNpcmNsZS1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzU5XCIsIFwiTTI1NiA1MDRDMTE5IDUwNCA4IDM5MyA4IDI1NlMxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDgtMTExIDI0OC0yNDggMjQ4em0xMTYtMjkySDI1NnYtNzAuOWMwLTEwLjctMTMtMTYuMS0yMC41LTguNUwxMjEuMiAyNDcuNWMtNC43IDQuNy00LjcgMTIuMiAwIDE2LjlsMTE0LjMgMTE0LjljNy42IDcuNiAyMC41IDIuMiAyMC41LTguNVYzMDBoMTE2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNjRjMC02LjYtNS40LTEyLTEyLTEyelwiXVxufTtcbnZhciBmYUFycm93QWx0Q2lyY2xlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctYWx0LWNpcmNsZS1yaWdodCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjM1YVwiLCBcIk0yNTYgOGMxMzcgMCAyNDggMTExIDI0OCAyNDhTMzkzIDUwNCAyNTYgNTA0IDggMzkzIDggMjU2IDExOSA4IDI1NiA4ek0xNDAgMzAwaDExNnY3MC45YzAgMTAuNyAxMyAxNi4xIDIwLjUgOC41bDExNC4zLTExNC45YzQuNy00LjcgNC43LTEyLjIgMC0xNi45bC0xMTQuMy0xMTVjLTcuNi03LjYtMjAuNS0yLjItMjAuNSA4LjVWMjEySDE0MGMtNi42IDAtMTIgNS40LTEyIDEydjY0YzAgNi42IDUuNCAxMiAxMiAxMnpcIl1cbn07XG52YXIgZmFBcnJvd0FsdENpcmNsZVVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWFsdC1jaXJjbGUtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzNWJcIiwgXCJNOCAyNTZDOCAxMTkgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NnptMjkyIDExNlYyNTZoNzAuOWMxMC43IDAgMTYuMS0xMyA4LjUtMjAuNUwyNjQuNSAxMjEuMmMtNC43LTQuNy0xMi4yLTQuNy0xNi45IDBsLTExNSAxMTQuM2MtNy42IDcuNi0yLjIgMjAuNSA4LjUgMjAuNUgyMTJ2MTE2YzAgNi42IDUuNCAxMiAxMiAxMmg2NGM2LjYgMCAxMi01LjQgMTItMTJ6XCJdXG59O1xudmFyIGZhQXJyb3dDaXJjbGVEb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWNpcmNsZS1kb3duJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGFiXCIsIFwiTTUwNCAyNTZjMCAxMzctMTExIDI0OC0yNDggMjQ4UzggMzkzIDggMjU2IDExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OHptLTE0My42LTI4LjlMMjg4IDMwMi42VjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNGgtMTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0djE4Mi42bC03Mi40LTc1LjVjLTkuMy05LjctMjQuOC05LjktMzQuMy0uNGwtMTAuOSAxMWMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlMMjM5IDQwNC4zYzkuNCA5LjQgMjQuNiA5LjQgMzMuOSAwbDEzMi43LTEzMi43YzkuNC05LjQgOS40LTI0LjYgMC0zMy45bC0xMC45LTExYy05LjUtOS41LTI1LTkuMy0zNC4zLjR6XCJdXG59O1xudmFyIGZhQXJyb3dDaXJjbGVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LWNpcmNsZS1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGE4XCIsIFwiTTI1NiA1MDRDMTE5IDUwNCA4IDM5MyA4IDI1NlMxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDgtMTExIDI0OC0yNDggMjQ4em0yOC45LTE0My42TDIwOS40IDI4OEgzOTJjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTE2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDIwOS40bDc1LjUtNzIuNGM5LjctOS4zIDkuOS0yNC44LjQtMzQuM2wtMTEtMTAuOWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMTA3LjcgMjM5Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwxMzIuNyAxMzIuN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwxMS0xMC45YzkuNS05LjUgOS4zLTI1LS40LTM0LjN6XCJdXG59O1xudmFyIGZhQXJyb3dDaXJjbGVSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1jaXJjbGUtcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYTlcIiwgXCJNMjU2IDhjMTM3IDAgMjQ4IDExMSAyNDggMjQ4UzM5MyA1MDQgMjU2IDUwNCA4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHptLTI4LjkgMTQzLjZsNzUuNSA3Mi40SDEyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTgyLjZsLTc1LjUgNzIuNGMtOS43IDkuMy05LjkgMjQuOC0uNCAzNC4zbDExIDEwLjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBMNDA0LjMgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDI3MS42IDEwNi4zYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMTEgMTAuOWMtOS41IDkuNi05LjMgMjUuMS40IDM0LjR6XCJdXG59O1xudmFyIGZhQXJyb3dDaXJjbGVVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1jaXJjbGUtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYWFcIiwgXCJNOCAyNTZDOCAxMTkgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NnptMTQzLjYgMjguOWw3Mi40LTc1LjVWMzkyYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjIwOS40bDcyLjQgNzUuNWM5LjMgOS43IDI0LjggOS45IDM0LjMuNGwxMC45LTExYzkuNC05LjQgOS40LTI0LjYgMC0zMy45TDI3MyAxMDcuN2MtOS40LTkuNC0yNC42LTkuNC0zMy45IDBMMTA2LjMgMjQwLjRjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45bDEwLjkgMTFjOS42IDkuNSAyNS4xIDkuMyAzNC40LS40elwiXVxufTtcbnZhciBmYUFycm93RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1kb3duJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDYzXCIsIFwiTTQxMy4xIDIyMi41bDIyLjIgMjIuMmM5LjQgOS40IDkuNCAyNC42IDAgMzMuOUwyNDEgNDczYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwxMi43IDI3OC42Yy05LjQtOS40LTkuNC0yNC42IDAtMzMuOWwyMi4yLTIyLjJjOS41LTkuNSAyNS05LjMgMzQuMy40TDE4NCAzNDMuNFY1NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgzMmMxMy4zIDAgMjQgMTAuNyAyNCAyNHYyODcuNGwxMTQuOC0xMjAuNWM5LjMtOS44IDI0LjgtMTAgMzQuMy0uNHpcIl1cbn07XG52YXIgZmFBcnJvd0xlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3ctbGVmdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA2MFwiLCBcIk0yNTcuNSA0NDUuMWwtMjIuMiAyMi4yYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEw3IDI3M2MtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjAxLjQgNDQuN2M5LjQtOS40IDI0LjYtOS40IDMzLjkgMGwyMi4yIDIyLjJjOS41IDkuNSA5LjMgMjUtLjQgMzQuM0wxMzYuNiAyMTZINDI0YzEzLjMgMCAyNCAxMC43IDI0IDI0djMyYzAgMTMuMy0xMC43IDI0LTI0IDI0SDEzNi42bDEyMC41IDExNC44YzkuOCA5LjMgMTAgMjQuOC40IDM0LjN6XCJdXG59O1xudmFyIGZhQXJyb3dSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvdy1yaWdodCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA2MVwiLCBcIk0xOTAuNSA2Ni45bDIyLjItMjIuMmM5LjQtOS40IDI0LjYtOS40IDMzLjkgMEw0NDEgMjM5YzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDI0Ni42IDQ2Ny4zYy05LjQgOS40LTI0LjYgOS40LTMzLjkgMGwtMjIuMi0yMi4yYy05LjUtOS41LTkuMy0yNSAuNC0zNC4zTDMxMS40IDI5NkgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjR2LTMyYzAtMTMuMyAxMC43LTI0IDI0LTI0aDI4Ny40TDE5MC45IDEwMS4yYy05LjgtOS4zLTEwLTI0LjgtLjQtMzQuM3pcIl1cbn07XG52YXIgZmFBcnJvd1VwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93LXVwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDYyXCIsIFwiTTM0LjkgMjg5LjVsLTIyLjItMjIuMmMtOS40LTkuNC05LjQtMjQuNiAwLTMzLjlMMjA3IDM5YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDE5NC4zIDE5NC4zYzkuNCA5LjQgOS40IDI0LjYgMCAzMy45TDQxMyAyODkuNGMtOS41IDkuNS0yNSA5LjMtMzQuMy0uNEwyNjQgMTY4LjZWNDU2YzAgMTMuMy0xMC43IDI0LTI0IDI0aC0zMmMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMTY4LjZMNjkuMiAyODkuMWMtOS4zIDkuOC0yNC44IDEwLTM0LjMuNHpcIl1cbn07XG52YXIgZmFBcnJvd3NBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXJyb3dzLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBiMlwiLCBcIk0zNTIuMjAxIDQyNS43NzVsLTc5LjE5NiA3OS4xOTZjLTkuMzczIDkuMzczLTI0LjU2OCA5LjM3My0zMy45NDEgMGwtNzkuMTk2LTc5LjE5NmMtMTUuMTE5LTE1LjExOS00LjQxMS00MC45NzEgMTYuOTcxLTQwLjk3aDUxLjE2MkwyMjggMjg0SDEyNy4xOTZ2NTEuMTYyYzAgMjEuMzgyLTI1Ljg1MSAzMi4wOS00MC45NzEgMTYuOTcxTDcuMDI5IDI3Mi45MzdjLTkuMzczLTkuMzczLTkuMzczLTI0LjU2OSAwLTMzLjk0MUw4Ni4yMjUgMTU5LjhjMTUuMTE5LTE1LjExOSA0MC45NzEtNC40MTEgNDAuOTcxIDE2Ljk3MVYyMjhIMjI4VjEyNy4xOTZoLTUxLjIzYy0yMS4zODIgMC0zMi4wOS0yNS44NTEtMTYuOTcxLTQwLjk3MWw3OS4xOTYtNzkuMTk2YzkuMzczLTkuMzczIDI0LjU2OC05LjM3MyAzMy45NDEgMGw3OS4xOTYgNzkuMTk2YzE1LjExOSAxNS4xMTkgNC40MTEgNDAuOTcxLTE2Ljk3MSA0MC45NzFoLTUxLjE2MlYyMjhoMTAwLjgwNHYtNTEuMTYyYzAtMjEuMzgyIDI1Ljg1MS0zMi4wOSA0MC45Ny0xNi45NzFsNzkuMTk2IDc5LjE5NmM5LjM3MyA5LjM3MyA5LjM3MyAyNC41NjkgMCAzMy45NDFMNDI1Ljc3MyAzNTIuMmMtMTUuMTE5IDE1LjExOS00MC45NzEgNC40MTEtNDAuOTctMTYuOTcxVjI4NEgyODR2MTAwLjgwNGg1MS4yM2MyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MXpcIl1cbn07XG52YXIgZmFBcnJvd3NBbHRIID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fycm93cy1hbHQtaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjMzN1wiLCBcIk0zNzcuOTQxIDE2OS45NDFWMjE2SDEzNC4wNTl2LTQ2LjA1OWMwLTIxLjM4Mi0yNS44NTEtMzIuMDktNDAuOTcxLTE2Ljk3MUw3LjAyOSAyMzkuMDI5Yy05LjM3MyA5LjM3My05LjM3MyAyNC41NjggMCAzMy45NDFsODYuMDU5IDg2LjA1OWMxNS4xMTkgMTUuMTE5IDQwLjk3MSA0LjQxMSA0MC45NzEtMTYuOTcxVjI5NmgyNDMuODgydjQ2LjA1OWMwIDIxLjM4MiAyNS44NTEgMzIuMDkgNDAuOTcxIDE2Ljk3MWw4Ni4wNTktODYuMDU5YzkuMzczLTkuMzczIDkuMzczLTI0LjU2OCAwLTMzLjk0MWwtODYuMDU5LTg2LjA1OWMtMTUuMTE5LTE1LjEyLTQwLjk3MS00LjQxMi00MC45NzEgMTYuOTd6XCJdXG59O1xudmFyIGZhQXJyb3dzQWx0ViA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhcnJvd3MtYWx0LXYnLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYzMzhcIiwgXCJNMjE0LjA1OSAzNzcuOTQxSDE2OFYxMzQuMDU5aDQ2LjA1OWMyMS4zODIgMCAzMi4wOS0yNS44NTEgMTYuOTcxLTQwLjk3MUwxNDQuOTcxIDcuMDI5Yy05LjM3My05LjM3My0yNC41NjgtOS4zNzMtMzMuOTQxIDBMMjQuOTcxIDkzLjA4OGMtMTUuMTE5IDE1LjExOS00LjQxMSA0MC45NzEgMTYuOTcxIDQwLjk3MUg4OHYyNDMuODgySDQxLjk0MWMtMjEuMzgyIDAtMzIuMDkgMjUuODUxLTE2Ljk3MSA0MC45NzFsODYuMDU5IDg2LjA1OWM5LjM3MyA5LjM3MyAyNC41NjggOS4zNzMgMzMuOTQxIDBsODYuMDU5LTg2LjA1OWMxNS4xMi0xNS4xMTkgNC40MTItNDAuOTcxLTE2Ljk3LTQwLjk3MXpcIl1cbn07XG52YXIgZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Fzc2lzdGl2ZS1saXN0ZW5pbmctc3lzdGVtcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJhMlwiLCBcIk0yMTYgMjYwYzAgMTUuNDY0LTEyLjUzNiAyOC0yOCAyOHMtMjgtMTIuNTM2LTI4LTI4YzAtNDQuMTEyIDM1Ljg4OC04MCA4MC04MHM4MCAzNS44ODggODAgODBjMCAxNS40NjQtMTIuNTM2IDI4LTI4IDI4cy0yOC0xMi41MzYtMjgtMjhjMC0xMy4yMzQtMTAuNzY3LTI0LTI0LTI0cy0yNCAxMC43NjYtMjQgMjR6bTI0LTE3NmMtOTcuMDQ3IDAtMTc2IDc4Ljk1My0xNzYgMTc2IDAgMTUuNDY0IDEyLjUzNiAyOCAyOCAyOHMyOC0xMi41MzYgMjgtMjhjMC02Ni4xNjggNTMuODMyLTEyMCAxMjAtMTIwczEyMCA1My44MzIgMTIwIDEyMGMwIDc1LjE2NC03MS4wMDkgNzAuMzExLTcxLjk5NyAxNDMuNjIyTDI4OCA0MDRjMCAyOC42NzMtMjMuMzI3IDUyLTUyIDUyLTE1LjQ2NCAwLTI4IDEyLjUzNi0yOCAyOHMxMi41MzYgMjggMjggMjhjNTkuNDc1IDAgMTA3Ljg3Ni00OC4zMjggMTA4LTEwNy43NzQuNTk1LTM0LjQyOCA3Mi00OC4yNCA3Mi0xNDQuMjI2IDAtOTcuMDQ3LTc4Ljk1My0xNzYtMTc2LTE3NnptLTgwIDIzNmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyek0zMiA0NDhjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptNDgwLTE4Ny45OTNjMC0xLjUxOC0uMDEyLTMuMDI1LS4wNDUtNC41MzFDNTEwLjA3NiAxNDAuNTI1IDQzNi4xNTcgMzguNDcgMzI3Ljk5NCAxLjUxMWMtMTQuNjMzLTQuOTk4LTMwLjU0OSAyLjgwOS0zNS41NSAxNy40NDItNSAxNC42MzMgMi44MSAzMC41NDkgMTcuNDQyIDM1LjU1IDg1LjkwNiAyOS4zNTQgMTQ0LjYxIDExMC41MTMgMTQ2LjA3NyAyMDEuOTUzbC4wMDMuMTg4Yy4wMjYgMS4xMTguMDMzIDIuMjM2LjAzMyAzLjM2MyAwIDE1LjQ2NCAxMi41MzYgMjggMjggMjhzMjguMDAxLTEyLjUzNiAyOC4wMDEtMjh6TTE1Mi45NzEgNDM5LjAyOWwtODAtODBMMzkuMDMgMzkyLjk3bDgwIDgwIDMzLjk0MS0zMy45NDF6XCJdXG59O1xudmFyIGZhQXN0ZXJpc2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXN0ZXJpc2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNjlcIiwgXCJNNDc4LjIxIDMzNC4wOTNMMzM2IDI1NmwxNDIuMjEtNzguMDkzYzExLjc5NS02LjQ3NyAxNS45NjEtMjEuMzg0IDkuMjMyLTMzLjAzN2wtMTkuNDgtMzMuNzQxYy02LjcyOC0xMS42NTMtMjEuNzItMTUuNDk5LTMzLjIyNy04LjUyM0wyOTYgMTg2LjcxOGwzLjQ3NS0xNjIuMjA0QzI5OS43NjMgMTEuMDYxIDI4OC45MzcgMCAyNzUuNDggMGgtMzguOTZjLTEzLjQ1NiAwLTI0LjI4MyAxMS4wNjEtMjMuOTk0IDI0LjUxNEwyMTYgMTg2LjcxOCA3Ny4yNjUgMTAyLjYwN2MtMTEuNTA2LTYuOTc2LTI2LjQ5OS0zLjEzLTMzLjIyNyA4LjUyM2wtMTkuNDggMzMuNzQxYy02LjcyOCAxMS42NTMtMi41NjIgMjYuNTYgOS4yMzMgMzMuMDM3TDE3NiAyNTYgMzMuNzkgMzM0LjA5M2MtMTEuNzk1IDYuNDc3LTE1Ljk2MSAyMS4zODQtOS4yMzIgMzMuMDM3bDE5LjQ4IDMzLjc0MWM2LjcyOCAxMS42NTMgMjEuNzIxIDE1LjQ5OSAzMy4yMjcgOC41MjNMMjE2IDMyNS4yODJsLTMuNDc1IDE2Mi4yMDRDMjEyLjIzNyA1MDAuOTM5IDIyMy4wNjQgNTEyIDIzNi41MiA1MTJoMzguOTYxYzEzLjQ1NiAwIDI0LjI4My0xMS4wNjEgMjMuOTk1LTI0LjUxNEwyOTYgMzI1LjI4MmwxMzguNzM1IDg0LjExMWMxMS41MDYgNi45NzYgMjYuNDk5IDMuMTMgMzMuMjI3LTguNTIzbDE5LjQ4LTMzLjc0MWM2LjcyOC0xMS42NTMgMi41NjMtMjYuNTU5LTkuMjMyLTMzLjAzNnpcIl1cbn07XG52YXIgZmFBdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdhdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFmYVwiLCBcIk0yNTYgOEMxMTguOTQxIDggOCAxMTguOTE5IDggMjU2YzAgMTM3LjA1OSAxMTAuOTE5IDI0OCAyNDggMjQ4IDQ4LjE1NCAwIDk1LjM0Mi0xNC4xNCAxMzUuNDA4LTQwLjIyMyAxMi4wMDUtNy44MTUgMTQuNjI1LTI0LjI4OCA1LjU1Mi0zNS4zNzJsLTEwLjE3Ny0xMi40MzNjLTcuNjcxLTkuMzcxLTIxLjE3OS0xMS42NjctMzEuMzczLTUuMTI5QzMyNS45MiA0MjkuNzU3IDI5MS4zMTQgNDQwIDI1NiA0NDBjLTEwMS40NTggMC0xODQtODIuNTQyLTE4NC0xODRTMTU0LjU0MiA3MiAyNTYgNzJjMTAwLjEzOSAwIDE4NCA1Ny42MTkgMTg0IDE2MCAwIDM4Ljc4Ni0yMS4wOTMgNzkuNzQyLTU4LjE3IDgzLjY5My0xNy4zNDktLjQ1NC0xNi45MS0xMi44NTctMTMuNDc2LTMwLjAyNGwyMy40MzMtMTIxLjExQzM5NC42NTMgMTQ5Ljc1IDM4My4zMDggMTM2IDM2OC4yMjUgMTM2aC00NC45ODFhMTMuNTE4IDEzLjUxOCAwIDAgMC0xMy40MzIgMTEuOTkzbC0uMDEuMDkyYy0xNC42OTctMTcuOTAxLTQwLjQ0OC0yMS43NzUtNTkuOTcxLTIxLjc3NS03NC41OCAwLTEzNy44MzEgNjIuMjM0LTEzNy44MzEgMTUxLjQ2IDAgNjUuMzAzIDM2Ljc4NSAxMDUuODcgOTYgMTA1Ljg3IDI2Ljk4NCAwIDU3LjM2OS0xNS42MzcgNzQuOTkxLTM4LjMzMyA5LjUyMiAzNC4xMDQgNDAuNjEzIDM0LjEwMyA3MC43MSAzNC4xMDNDNDYyLjYwOSAzNzkuNDEgNTA0IDMwNy43OTggNTA0IDIzMiA1MDQgOTUuNjUzIDM5NC4wMjMgOCAyNTYgOHptLTIxLjY4IDMwNC40M2MtMjIuMjQ5IDAtMzYuMDctMTUuNjIzLTM2LjA3LTQwLjc3MSAwLTQ0Ljk5MyAzMC43NzktNzIuNzI5IDU4LjYzLTcyLjcyOSAyMi4yOTIgMCAzNS42MDEgMTUuMjQxIDM1LjYwMSA0MC43NyAwIDQ1LjA2MS0zMy44NzUgNzIuNzMtNTguMTYxIDcyLjczelwiXVxufTtcbnZhciBmYUF0bGFzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2F0bGFzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTU4XCIsIFwiTTMxOC4zOCAyMDhoLTM5LjA5Yy0xLjQ5IDI3LjAzLTYuNTQgNTEuMzUtMTQuMjEgNzAuNDEgMjcuNzEtMTMuMjQgNDguMDItMzkuMTkgNTMuMy03MC40MXptMC0zMmMtNS4yOS0zMS4yMi0yNS41OS01Ny4xNy01My4zLTcwLjQxIDcuNjggMTkuMDYgMTIuNzIgNDMuMzggMTQuMjEgNzAuNDFoMzkuMDl6TTIyNCA5Ny4zMWMtNy42OSA3LjQ1LTIwLjc3IDM0LjQyLTIzLjQzIDc4LjY5aDQ2Ljg3Yy0yLjY3LTQ0LjI2LTE1Ljc1LTcxLjI0LTIzLjQ0LTc4LjY5em0tNDEuMDggOC4yOGMtMjcuNzEgMTMuMjQtNDguMDIgMzkuMTktNTMuMyA3MC40MWgzOS4wOWMxLjQ5LTI3LjAzIDYuNTMtNTEuMzUgMTQuMjEtNzAuNDF6bTAgMTcyLjgyYy03LjY4LTE5LjA2LTEyLjcyLTQzLjM4LTE0LjIxLTcwLjQxaC0zOS4wOWM1LjI4IDMxLjIyIDI1LjU5IDU3LjE3IDUzLjMgNzAuNDF6TTI0Ny40MyAyMDhoLTQ2Ljg3YzIuNjYgNDQuMjYgMTUuNzQgNzEuMjQgMjMuNDMgNzguNjkgNy43LTcuNDUgMjAuNzgtMzQuNDMgMjMuNDQtNzguNjl6TTQ0OCAzNTguNFYyNS42YzAtMTYtOS42LTI1LjYtMjUuNi0yNS42SDk2QzQxLjYgMCAwIDQxLjYgMCA5NnYzMjBjMCA1NC40IDQxLjYgOTYgOTYgOTZoMzI2LjRjMTIuOCAwIDI1LjYtOS42IDI1LjYtMjUuNnYtMTZjMC02LjQtMy4yLTEyLjgtOS42LTE5LjItMy4yLTE2LTMuMi02MC44IDAtNzMuNiA2LjQtMy4yIDkuNi05LjYgOS42LTE5LjJ6TTIyNCA2NGM3MC42OSAwIDEyOCA1Ny4zMSAxMjggMTI4cy01Ny4zMSAxMjgtMTI4IDEyOFM5NiAyNjIuNjkgOTYgMTkyIDE1My4zMSA2NCAyMjQgNjR6bTE2MCAzODRIOTZjLTE5LjIgMC0zMi0xMi44LTMyLTMyczE2LTMyIDMyLTMyaDI4OHY2NHpcIl1cbn07XG52YXIgZmFBdG9tID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2F0b20nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1ZDJcIiwgXCJNNDEzLjAzIDI1NmM0MC4xMy01NC44OSA0MS41MS05OC42MiAyNS4xNC0xMjgtMTAuOTEtMTkuNTItNDAuNTQtNTAuNzMtMTE2LjMzLTQxLjg4QzMwMC4zNiAzNC44OSAyNjcuNjQgMCAyMjQgMHMtNzYuMzYgMzQuODktOTcuODQgODYuMTJDNTAuNDMgNzcuMzQgMjAuNzMgMTA4LjQ4IDkuODMgMTI4Yy0xNi4zOCAyOS40LTE1IDczLjA5IDI1LjE0IDEyOC00MC4xMyA1NC44OS00MS41MSA5OC42Mi0yNS4xNCAxMjggMjkuMjEgNTIuMzQgMTAxLjY4IDQzLjU4IDExNi4zMyA0MS44OEMxNDcuNjMgNDc3LjEgMTgwLjM2IDUxMiAyMjQgNTEyczc2LjM3LTM0LjkgOTcuODQtODYuMTJjMTQuNjQgMS43IDg3LjExIDEwLjQ2IDExNi4zMy00MS44OCAxNi4zOC0yOS40IDE1LTczLjA5LTI1LjE0LTEyOHpNNjMuMzggMzUyYy00LjAzLTcuMjEtLjE5LTI0LjggMTQuOTUtNDguMjkgNi45NiA2LjUzIDE0LjIgMTIuODkgMjEuODcgMTkuMTggMS43MSAxMy43MSA0IDI3LjA4IDYuNzYgNDAuMDgtMjQuNTYuODktMzkuODktNC4zNy00My41OC0xMC45N3ptMzYuODItMTYyLjg4Yy03LjY2IDYuMjktMTQuOSAxMi42NS0yMS44NyAxOS4xOC0xNS4xMy0yMy41LTE4Ljk3LTQxLjA5LTE0Ljk1LTQ4LjMgMy40MS02LjE0IDE2LjM5LTExLjQ3IDM3LjkyLTExLjQ3IDEuNzEgMCAzLjg3LjMgNS42OS4zN2E0NzIuMTkxIDQ3Mi4xOTEgMCAwIDAtNi43OSA0MC4yMnpNMjI0IDY0YzkuNDcgMCAyMi4yIDEzLjUyIDMzLjg2IDM3LjI2LTExLjE5IDMuNy0yMi40NCA4LTMzLjg2IDEyLjg2LTExLjQyLTQuODYtMjIuNjctOS4xNi0zMy44Ni0xMi44NkMyMDEuOCA3Ny41MiAyMTQuNTMgNjQgMjI0IDY0em0wIDM4NGMtOS40NyAwLTIyLjItMTMuNTItMzMuODYtMzcuMjYgMTEuMTktMy43IDIyLjQ0LTggMzMuODYtMTIuODYgMTEuNDIgNC44NiAyMi42NyA5LjE2IDMzLjg2IDEyLjg2QzI0Ni4yIDQzNC40OCAyMzMuNDcgNDQ4IDIyNCA0NDh6bTYyLjUtMTU3LjMzYy0yNi43IDE5LjA4LTQ2LjE0IDI5LjMzLTYyLjUgMzcuNDgtMTYuMzUtOC4xNC0zNS44LTE4LjQxLTYyLjUtMzcuNDgtMS45OS0yNy43OS0xLjk5LTQxLjU0IDAtNjkuMzMgMjYuNjctMTkuMDUgNDYuMTMtMjkuMzIgNjIuNS0zNy40OCAxNi4zOSA4LjE3IDM1Ljg2IDE4LjQ0IDYyLjUgMzcuNDggMS45OCAyNy43OCAxLjk5IDQxLjUzIDAgNjkuMzN6TTM4NC42MiAzNTJjLTMuNjcgNi42Mi0xOSAxMS44Mi00My41OCAxMC45NSAyLjc2LTEzIDUuMDUtMjYuMzcgNi43Ni00MC4wNiA3LjY2LTYuMjkgMTQuOS0xMi42NSAyMS44Ny0xOS4xOCAxNS4xMyAyMy40OSAxOC45NyA0MS4wOCAxNC45NSA0OC4yOXptLTE0Ljk1LTE0My43MWMtNi45Ni02LjUzLTE0LjItMTIuODktMjEuODctMTkuMThhNDczLjUzNSA0NzMuNTM1IDAgMCAwLTYuNzktNDAuMjJjMS44Mi0uMDcgMy45Ny0uMzcgNS42OS0uMzcgMjEuNTIgMCAzNC41MSA1LjM0IDM3LjkyIDExLjQ3IDQuMDIgNy4yMi4xOCAyNC44MS0xNC45NSA0OC4zek0yMjQgMjI0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYUF1ZGlvRGVzY3JpcHRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYXVkaW8tZGVzY3JpcHRpb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyOWVcIiwgXCJNMTYyLjkyNSAyMzguNzA5bDguODIyIDMwLjY1NWgtMjUuNjA2bDkuMDQxLTMwLjY1MmMxLjI3Ny00LjQyMSAyLjY1MS05Ljk5NCAzLjg3Mi0xNS4yNDUgMS4yMiA1LjI1MSAyLjU5NCAxMC44MjMgMy44NzEgMTUuMjQyem0xNjYuNDc0LTMyLjA5OWgtMTQuNTIzdjk4Ljc4MWgxNC41MjNjMjkuNzc2IDAgNDYuMTc1LTE3LjY3OCA0Ni4xNzUtNDkuNzc2IDAtMzIuMjM5LTE3LjQ5LTQ5LjAwNS00Ni4xNzUtNDkuMDA1ek01MTIgMTEydjI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4ek0yNDUuNDU5IDMzNi4xMzlsLTU3LjA5Ny0xNjhBMTIuMDAxIDEyLjAwMSAwIDAgMCAxNzcgMTYwaC0zNS44OTRhMTIuMDAxIDEyLjAwMSAwIDAgMC0xMS4zNjIgOC4xMzlsLTU3LjA5NyAxNjhDNzAuMDAzIDM0My45MjIgNzUuNzg5IDM1MiA4NC4wMDkgMzUyaDI5LjEzM2ExMiAxMiAwIDAgMCAxMS41MzUtOC42OTNsOC41NzQtMjkuOTA2aDUxLjM2N2w4Ljc5MyAyOS45NzdBMTIgMTIgMCAwIDAgMjA0LjkyNiAzNTJoMjkuMTcyYzguMjIgMCAxNC4wMDYtOC4wNzggMTEuMzYxLTE1Ljg2MXptMTg0LjcwMS04MC41MjVjMC01OC45NzctMzcuOTE5LTk1LjYxNC05OC45Ni05NS42MTRoLTU3LjM2NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYxNjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMkgzMzEuMmM2MS4wNDEgMCA5OC45Ni0zNi45MzMgOTguOTYtOTYuMzg2elwiXVxufTtcbnZhciBmYUF3YXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2F3YXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTU5XCIsIFwiTTk3LjEyIDM2Mi42M2MtOC42OS04LjY5LTQuMTYtNi4yNC0yNS4xMi0xMS44NS05LjUxLTIuNTUtMTcuODctNy40NS0yNS40My0xMy4zMkwxLjIgNDQ4LjdjLTQuMzkgMTAuNzcgMy44MSAyMi40NyAxNS40MyAyMi4wM2w1Mi42OS0yLjAxTDEwNS41NiA1MDdjOCA4LjQ0IDIyLjA0IDUuODEgMjYuNDMtNC45Nmw1Mi4wNS0xMjcuNjJjLTEwLjg0IDYuMDQtMjIuODcgOS41OC0zNS4zMSA5LjU4LTE5LjUgMC0zNy44Mi03LjU5LTUxLjYxLTIxLjM3ek0zODIuOCA0NDguN2wtNDUuMzctMTExLjI0Yy03LjU2IDUuODgtMTUuOTIgMTAuNzctMjUuNDMgMTMuMzItMjEuMDcgNS42NC0xNi40NSAzLjE4LTI1LjEyIDExLjg1LTEzLjc5IDEzLjc4LTMyLjEyIDIxLjM3LTUxLjYyIDIxLjM3LTEyLjQ0IDAtMjQuNDctMy41NS0zNS4zMS05LjU4TDI1MiA1MDIuMDRjNC4zOSAxMC43NyAxOC40NCAxMy40IDI2LjQzIDQuOTZsMzYuMjUtMzguMjggNTIuNjkgMi4wMWMxMS42Mi40NCAxOS44Mi0xMS4yNyAxNS40My0yMi4wM3pNMjYzIDM0MGMxNS4yOC0xNS41NSAxNy4wMy0xNC4yMSAzOC43OS0yMC4xNCAxMy44OS0zLjc5IDI0Ljc1LTE0Ljg0IDI4LjQ3LTI4Ljk4IDcuNDgtMjguNCA1LjU0LTI0Ljk3IDI1Ljk1LTQ1Ljc1IDEwLjE3LTEwLjM1IDE0LjE0LTI1LjQ0IDEwLjQyLTM5LjU4LTcuNDctMjguMzgtNy40OC0yNC40MiAwLTUyLjgzIDMuNzItMTQuMTQtLjI1LTI5LjIzLTEwLjQyLTM5LjU4LTIwLjQxLTIwLjc4LTE4LjQ3LTE3LjM2LTI1Ljk1LTQ1Ljc1LTMuNzItMTQuMTQtMTQuNTgtMjUuMTktMjguNDctMjguOTgtMjcuODgtNy42MS0yNC41Mi01LjYyLTQ0Ljk1LTI2LjQxLTEwLjE3LTEwLjM1LTI1LTE0LjQtMzguODktMTAuNjEtMjcuODcgNy42LTIzLjk4IDcuNjEtNTEuOSAwLTEzLjg5LTMuNzktMjguNzIuMjUtMzguODkgMTAuNjEtMjAuNDEgMjAuNzgtMTcuMDUgMTguOC00NC45NCAyNi40MS0xMy44OSAzLjc5LTI0Ljc1IDE0Ljg0LTI4LjQ3IDI4Ljk4LTcuNDcgMjguMzktNS41NCAyNC45Ny0yNS45NSA0NS43NS0xMC4xNyAxMC4zNS0xNC4xNSAyNS40NC0xMC40MiAzOS41OCA3LjQ3IDI4LjM2IDcuNDggMjQuNCAwIDUyLjgyLTMuNzIgMTQuMTQuMjUgMjkuMjMgMTAuNDIgMzkuNTkgMjAuNDEgMjAuNzggMTguNDcgMTcuMzUgMjUuOTUgNDUuNzUgMy43MiAxNC4xNCAxNC41OCAyNS4xOSAyOC40NyAyOC45OEMxMDQuNiAzMjUuOTYgMTA2LjI3IDMyNSAxMjEgMzQwYzEzLjIzIDEzLjQ3IDMzLjg0IDE1Ljg4IDQ5Ljc0IDUuODJhMzkuNjc2IDM5LjY3NiAwIDAgMSA0Mi41MyAwYzE1Ljg5IDEwLjA2IDM2LjUgNy42NSA0OS43My01Ljgyek05Ny42NiAxNzUuOTZjMC01My4wMyA0Mi4yNC05Ni4wMiA5NC4zNC05Ni4wMnM5NC4zNCA0Mi45OSA5NC4zNCA5Ni4wMi00Mi4yNCA5Ni4wMi05NC4zNCA5Ni4wMi05NC4zNC00Mi45OS05NC4zNC05Ni4wMnpcIl1cbn07XG52YXIgZmFCYWJ5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhYnknLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY3N2NcIiwgXCJNMTkyIDE2MGM0NC4yIDAgODAtMzUuOCA4MC04MFMyMzYuMiAwIDE5MiAwcy04MCAzNS44LTgwIDgwIDM1LjggODAgODAgODB6bS01My40IDI0OC44bDI1LjYtMzItNjEuNS01MS4yTDU2LjggMzgzYy0xMS40IDE0LjItMTEuNyAzNC40LS44IDQ5bDQ4IDY0YzcuOSAxMC41IDE5LjkgMTYgMzIgMTYgOC4zIDAgMTYuOC0yLjYgMjQtOCAxNy43LTEzLjIgMjEuMi0zOC4zIDgtNTZsLTI5LjQtMzkuMnptMTQyLjctODMuMmwtNjEuNSA1MS4yIDI1LjYgMzJMMjE2IDQ0OGMtMTMuMiAxNy43LTkuNyA0Mi44IDggNTYgNy4yIDUuNCAxNS42IDggMjQgOCAxMi4yIDAgMjQuMi01LjUgMzItMTZsNDgtNjRjMTAuOS0xNC42IDEwLjYtMzQuOC0uOC00OWwtNDUuOS01Ny40ek0zNzYuNyAxNDVjLTEyLjctMTguMS0zNy42LTIyLjQtNTUuNy05LjhsLTQwLjYgMjguNWMtNTIuNyAzNy0xMjQuMiAzNy0xNzYuOCAwTDYzIDEzNS4zQzQ0LjkgMTIyLjYgMjAgMTI3IDcuMyAxNDUtNS40IDE2My4xLTEgMTg4IDE3IDIwMC43bDQwLjYgMjguNWMxNyAxMS45IDM1LjQgMjAuOSA1NC40IDI3LjlWMjg4aDE2MHYtMzAuOGMxOS03IDM3LjQtMTYgNTQuNC0yNy45bDQwLjYtMjguNWMxOC4xLTEyLjggMjIuNC0zNy43IDkuNy01NS44elwiXVxufTtcbnZhciBmYUJhYnlDYXJyaWFnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWJ5LWNhcnJpYWdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzdkXCIsIFwiTTE0NC44IDE3Yy0xMS4zLTE3LjgtMzcuMi0yMi44LTU0LTkuNEMzNS4zIDUxLjkgMCAxMTggMCAxOTJoMjU2TDE0NC44IDE3ek00OTYgOTZoLTQ4Yy0zNS4zIDAtNjQgMjguNy02NCA2NHY2NEgwYzAgNTAuNiAyMyA5Ni40IDYwLjMgMTMwLjdDMjUuNyAzNjMuNiAwIDM5NC43IDAgNDMyYzAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC04LjktMS44LTE3LjItNC40LTI1LjIgMjEuNiA1LjkgNDQuNiA5LjIgNjguNCA5LjJzNDYuOS0zLjMgNjguNC05LjJjLTIuNyA4LTQuNCAxNi4zLTQuNCAyNS4yIDAgNDQuMiAzNS44IDgwIDgwIDgwczgwLTM1LjggODAtODBjMC0zNy4zLTI1LjctNjguNC02MC4zLTc3LjNDNDI1IDMyMC40IDQ0OCAyNzQuNiA0NDggMjI0di02NGg0OGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpNODAgNDY0Yy0xNy42IDAtMzItMTQuNC0zMi0zMnMxNC40LTMyIDMyLTMyIDMyIDE0LjQgMzIgMzItMTQuNCAzMi0zMiAzMnptMzIwLTMyYzAgMTcuNi0xNC40IDMyLTMyIDMycy0zMi0xNC40LTMyLTMyIDE0LjQtMzIgMzItMzIgMzIgMTQuNCAzMiAzMnpcIl1cbn07XG52YXIgZmFCYWNrc3BhY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFja3NwYWNlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTVhXCIsIFwiTTU3NiA2NEgyMDUuMjZBNjMuOTcgNjMuOTcgMCAwIDAgMTYwIDgyLjc1TDkuMzcgMjMzLjM3Yy0xMi41IDEyLjUtMTIuNSAzMi43NiAwIDQ1LjI1TDE2MCA0MjkuMjVjMTIgMTIgMjguMjggMTguNzUgNDUuMjUgMTguNzVINTc2YzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWMTI4YzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6bS04NC42OSAyNTQuMDZjNi4yNSA2LjI1IDYuMjUgMTYuMzggMCAyMi42M2wtMjIuNjIgMjIuNjJjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBMMzg0IDMwMS4yNWwtNjIuMDYgNjIuMDZjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBsLTIyLjYyLTIyLjYyYy02LjI1LTYuMjUtNi4yNS0xNi4zOCAwLTIyLjYzTDMzOC43NSAyNTZsLTYyLjA2LTYyLjA2Yy02LjI1LTYuMjUtNi4yNS0xNi4zOCAwLTIyLjYzbDIyLjYyLTIyLjYyYzYuMjUtNi4yNSAxNi4zOC02LjI1IDIyLjYzIDBMMzg0IDIxMC43NWw2Mi4wNi02Mi4wNmM2LjI1LTYuMjUgMTYuMzgtNi4yNSAyMi42MyAwbDIyLjYyIDIyLjYyYzYuMjUgNi4yNSA2LjI1IDE2LjM4IDAgMjIuNjNMNDI5LjI1IDI1Nmw2Mi4wNiA2Mi4wNnpcIl1cbn07XG52YXIgZmFCYWNrd2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWNrd2FyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA0YVwiLCBcIk0xMS41IDI4MC42bDE5MiAxNjBjMjAuNiAxNy4yIDUyLjUgMi44IDUyLjUtMjQuNlY5NmMwLTI3LjQtMzEuOS00MS44LTUyLjUtMjQuNmwtMTkyIDE2MGMtMTUuMyAxMi44LTE1LjMgMzYuNCAwIDQ5LjJ6bTI1NiAwbDE5MiAxNjBjMjAuNiAxNy4yIDUyLjUgMi44IDUyLjUtMjQuNlY5NmMwLTI3LjQtMzEuOS00MS44LTUyLjUtMjQuNmwtMTkyIDE2MGMtMTUuMyAxMi44LTE1LjMgMzYuNCAwIDQ5LjJ6XCJdXG59O1xudmFyIGZhQmFjb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFjb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY3ZTVcIiwgXCJNMjE4LjkyIDMzNi4zOWMzNC44OS0zNC44OSA0NC4yLTU5LjcgNTQuMDUtODYgMTAuNjEtMjguMjkgMjEuNTktNTcuNTQgNjEuMzctOTcuMzRzNjkuMDUtNTAuNzcgOTcuMzUtNjEuMzhjMjMuODgtOSA0Ni42NC0xNy42OCA3Ni43OS00NS4zN0w0NzAuODEgOC45MWEzMSAzMSAwIDAgMC00MC4xOC0yLjgzYy0xMy42NCAxMC4xLTI1LjE1IDE0LjM5LTQxIDIwLjNDMjQ3IDc5LjUyIDIwOS4yNiAxOTEuMjkgMjAwLjY1IDIxNC4xYy0yOS43NSA3OC44My04OS41NSA5NC42OC05OC43MiA5OC4wOS0yNC44NiA5LjI2LTU0LjczIDIwLjM4LTkxLjA3IDUwLjM2Qy0zIDM3NC0zLjYzIDM5NSA5LjA3IDQwNy42MWwzNS43NiAzNS41MUM4MCA0MTAuNTIgMTA3IDQwMC4xNSAxMzMgMzkwLjM5YzI2LjI3LTkuODQgNTEuMDYtMTkuMTIgODUuOTItNTR6bTM0OC0yMzJsLTM1Ljc1LTM1LjUxYy0zNS4xOSAzMi42My02Mi4xOCA0My04OC4yNSA1Mi43OS0yNi4yNiA5Ljg1LTUxLjA2IDE5LjE2LTg1Ljk1IDU0cy00NC4xOSA1OS42OS01NCA4NkMyOTIuMzMgMjkwIDI4MS4zNCAzMTkuMjIgMjQxLjU1IDM1OXMtNjkgNTAuNzMtOTcuMyA2MS4zMmMtMjMuODYgOS00Ni42MSAxNy42Ni03Ni43MiA0NS4zM2wzNy42OCAzNy40M2EzMSAzMSAwIDAgMCA0MC4xOCAyLjgyYzEzLjYtMTAuMDYgMjUuMDktMTQuMzQgNDAuOTQtMjAuMjQgMTQyLjItNTMgMTgwLTE2NC4xIDE4OC45NC0xODcuNjlDNDA1IDIxOS4xOCA0NjQuOCAyMDMuMyA0NzQgMTk5Ljg2YzI0Ljg3LTkuMjcgNTQuNzQtMjAuNCA5MS4xMS01MC40MSAxMy44OS0xMS40IDE0LjUyLTMyLjQ1IDEuODItNDUuMDV6XCJdXG59O1xudmFyIGZhQmFsYW5jZVNjYWxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhbGFuY2Utc2NhbGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyNGVcIiwgXCJNMjU2IDMzNmgtLjAyYzAtMTYuMTggMS4zNC04LjczLTg1LjA1LTE4MS41MS0xNy42NS0zNS4yOS02OC4xOS0zNS4zNi04NS44NyAwQy0yLjA2IDMyOC43NS4wMiAzMjAuMzMuMDIgMzM2SDBjMCA0NC4xOCA1Ny4zMSA4MCAxMjggODBzMTI4LTM1LjgyIDEyOC04MHpNMTI4IDE3Nmw3MiAxNDRINTZsNzItMTQ0em01MTEuOTggMTYwYzAtMTYuMTggMS4zNC04LjczLTg1LjA1LTE4MS41MS0xNy42NS0zNS4yOS02OC4xOS0zNS4zNi04NS44NyAwLTg3LjEyIDE3NC4yNi04NS4wNCAxNjUuODQtODUuMDQgMTgxLjUxSDM4NGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJ6TTQ0MCAzMjBsNzItMTQ0IDcyIDE0NEg0NDB6bTg4IDEyOEgzNTJWMTUzLjI1YzIzLjUxLTEwLjI5IDQxLjE2LTMxLjQ4IDQ2LjM5LTU3LjI1SDUyOGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlY0OGMwLTguODQtNy4xNi0xNi0xNi0xNkgzODMuNjRDMzY5LjA0IDEyLjY4IDM0Ni4wOSAwIDMyMCAwcy00OS4wNCAxMi42OC02My42NCAzMkgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDEyOS42MWM1LjIzIDI1Ljc2IDIyLjg3IDQ2Ljk2IDQ2LjM5IDU3LjI1VjQ0OEgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJdXG59O1xudmFyIGZhQmFsYW5jZVNjYWxlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWxhbmNlLXNjYWxlLWxlZnQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1MTVcIiwgXCJNNTI4IDQ0OEgzNTJWMTUzLjI1YzIwLjQyLTguOTQgMzYuMS0yNi4yMiA0My4zOC00Ny40N2wxMzItNDQuMjZjOC4zOC0yLjgxIDEyLjg5LTExLjg4IDEwLjA4LTIwLjI2bC0xMC4xNy0zMC4zNEM1MjQuNDggMi41NCA1MTUuNDEtMS45NyA1MDcuMDMuODRMMzg5LjExIDQwLjM3QzM3NS4zIDE2LjM2IDM0OS42OSAwIDMyMCAwYy00NC4xOCAwLTgwIDM1LjgyLTgwIDgwIDAgMy40My41OSA2LjcxIDEuMDEgMTAuMDNsLTEyOC4zOSA0My4wNWMtOC4zOCAyLjgxLTEyLjg5IDExLjg4LTEwLjA4IDIwLjI2bDEwLjE3IDMwLjM0YzIuODEgOC4zOCAxMS44OCAxMi44OSAyMC4yNiAxMC4wOGwxNDIuMDUtNDcuNjNjNC4wNyAyLjc3IDguNDMgNS4xMiAxMi45OSA3LjEyVjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgyMjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYy0uMDEtOC44NC03LjE3LTE2LTE2LjAxLTE2em0xMTEuOTgtMTQ0YzAtMTYuMTggMS4zNC04LjczLTg1LjA1LTE4MS41MS0xNy42NS0zNS4yOS02OC4xOS0zNS4zNi04NS44NyAwLTg3LjEyIDE3NC4yNi04NS4wNCAxNjUuODQtODUuMDQgMTgxLjUxSDM4NGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJ6TTQ0MCAyODhsNzItMTQ0IDcyIDE0NEg0NDB6bS0yNjkuMDctMzcuNTFjLTE3LjY1LTM1LjI5LTY4LjE5LTM1LjM2LTg1Ljg3IDBDLTIuMDYgNDI0Ljc1LjAyIDQxNi4zMy4wMiA0MzJIMGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJjMC0xNi4xOCAxLjM0LTguNzMtODUuMDUtMTgxLjUxek01NiA0MTZsNzItMTQ0IDcyIDE0NEg1NnpcIl1cbn07XG52YXIgZmFCYWxhbmNlU2NhbGVSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYWxhbmNlLXNjYWxlLXJpZ2h0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTE2XCIsIFwiTTk2IDQ2NHYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgyMjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTUzLjI1YzQuNTYtMiA4LjkyLTQuMzUgMTIuOTktNy4xMmwxNDIuMDUgNDcuNjNjOC4zOCAyLjgxIDE3LjQ1LTEuNzEgMjAuMjYtMTAuMDhsMTAuMTctMzAuMzRjMi44MS04LjM4LTEuNzEtMTcuNDUtMTAuMDgtMjAuMjZsLTEyOC40LTQzLjA1Yy40Mi0zLjMyIDEuMDEtNi42IDEuMDEtMTAuMDMgMC00NC4xOC0zNS44Mi04MC04MC04MC0yOS42OSAwLTU1LjMgMTYuMzYtNjkuMTEgNDAuMzdMMTMyLjk2LjgzYy04LjM4LTIuODEtMTcuNDUgMS43MS0yMC4yNiAxMC4wOGwtMTAuMTcgMzAuMzRjLTIuODEgOC4zOCAxLjcxIDE3LjQ1IDEwLjA4IDIwLjI2bDEzMiA0NC4yNmM3LjI4IDIxLjI1IDIyLjk2IDM4LjU0IDQzLjM4IDQ3LjQ3VjQ0OEgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2ek0wIDMwNGMwIDQ0LjE4IDU3LjMxIDgwIDEyOCA4MHMxMjgtMzUuODIgMTI4LTgwaC0uMDJjMC0xNS42NyAyLjA4LTcuMjUtODUuMDUtMTgxLjUxLTE3LjY4LTM1LjM2LTY4LjIyLTM1LjI5LTg1Ljg3IDBDLTEuMzIgMjk1LjI3LjAyIDI4Ny44Mi4wMiAzMDRIMHptNTYtMTZsNzItMTQ0IDcyIDE0NEg1NnptMzI4LjAyIDE0NEgzODRjMCA0NC4xOCA1Ny4zMSA4MCAxMjggODBzMTI4LTM1LjgyIDEyOC04MGgtLjAyYzAtMTUuNjcgMi4wOC03LjI1LTg1LjA1LTE4MS41MS0xNy42OC0zNS4zNi02OC4yMi0zNS4yOS04NS44NyAwLTg2LjM4IDE3Mi43OC04NS4wNCAxNjUuMzMtODUuMDQgMTgxLjUxek00NDAgNDE2bDcyLTE0NCA3MiAxNDRINDQwelwiXVxufTtcbnZhciBmYUJhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiYW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNWVcIiwgXCJNMjU2IDhDMTE5LjAzNCA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDM0IDI0OCAyNDggMjQ4IDI0OC0xMTEuMDM0IDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em0xMzAuMTA4IDExNy44OTJjNjUuNDQ4IDY1LjQ0OCA3MCAxNjUuNDgxIDIwLjY3NyAyMzUuNjM3TDE1MC40NyAxMDUuMjE2YzcwLjIwNC00OS4zNTYgMTcwLjIyNi00NC43MzUgMjM1LjYzOCAyMC42NzZ6TTEyNS44OTIgMzg2LjEwOGMtNjUuNDQ4LTY1LjQ0OC03MC0xNjUuNDgxLTIwLjY3Ny0yMzUuNjM3TDM2MS41MyA0MDYuNzg0Yy03MC4yMDMgNDkuMzU2LTE3MC4yMjYgNDQuNzM2LTIzNS42MzgtMjAuNjc2elwiXVxufTtcbnZhciBmYUJhbmRBaWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFuZC1haWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0NjJcIiwgXCJNMCAxNjB2MTkyYzAgMzUuMyAyOC43IDY0IDY0IDY0aDk2Vjk2SDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHptNTc2LTY0aC05NnYzMjBoOTZjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTYwYzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xOTIgNDE2aDI1NlY5NkgxOTJ2MzIwem0xNzYtMjMyYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptMCA5NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6bS05Ni05NmMxMy4zIDAgMjQgMTAuNyAyNCAyNHMtMTAuNyAyNC0yNCAyNC0yNC0xMC43LTI0LTI0IDEwLjctMjQgMjQtMjR6bTAgOTZjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0elwiXVxufTtcbnZhciBmYUJhcmNvZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFyY29kZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAyYVwiLCBcIk0wIDQ0OFY2NGgxOHYzODRIMHptMjYuODU3LS4yNzNWNjRIMzZ2MzgzLjcyN2gtOS4xNDN6bTI3LjE0MyAwVjY0aDguODU3djM4My43MjdINTR6bTQ0Ljg1NyAwVjY0aDguODU3djM4My43MjdoLTguODU3em0zNiAwVjY0aDE3LjcxNHYzODMuNzI3aC0xNy43MTR6bTQ0Ljg1NyAwVjY0aDguODU3djM4My43MjdoLTguODU3em0xOCAwVjY0aDguODU3djM4My43MjdoLTguODU3em0xOCAwVjY0aDguODU3djM4My43MjdoLTguODU3em0zNS43MTUgMFY2NGgxOHYzODMuNzI3aC0xOHptNDQuODU3IDBWNjRoMTh2MzgzLjcyN2gtMTh6bTM1Ljk5OSAwVjY0aDE4LjAwMXYzODMuNzI3aC0xOC4wMDF6bTM2LjAwMSAwVjY0aDE4LjAwMXYzODMuNzI3aC0xOC4wMDF6bTI2Ljg1NyAwVjY0aDE4djM4My43MjdoLTE4em00NS4xNDMgMFY2NGgyNi44NTd2MzgzLjcyN2gtMjYuODU3em0zNS43MTQgMFY2NGg5LjE0M3YzODMuNzI3SDQ3NnptMTggLjI3M1Y2NGgxOHYzODRoLTE4elwiXVxufTtcbnZhciBmYUJhcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmFycycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBjOVwiLCBcIk0xNiAxMzJoNDE2YzguODM3IDAgMTYtNy4xNjMgMTYtMTZWNzZjMC04LjgzNy03LjE2My0xNi0xNi0xNkgxNkM3LjE2MyA2MCAwIDY3LjE2MyAwIDc2djQwYzAgOC44MzcgNy4xNjMgMTYgMTYgMTZ6bTAgMTYwaDQxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di00MGMwLTguODM3LTcuMTYzLTE2LTE2LTE2SDE2Yy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2djQwYzAgOC44MzcgNy4xNjMgMTYgMTYgMTZ6bTAgMTYwaDQxNmM4LjgzNyAwIDE2LTcuMTYzIDE2LTE2di00MGMwLTguODM3LTcuMTYzLTE2LTE2LTE2SDE2Yy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2djQwYzAgOC44MzcgNy4xNjMgMTYgMTYgMTZ6XCJdXG59O1xudmFyIGZhQmFzZWJhbGxCYWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jhc2ViYWxsLWJhbGwnLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY0MzNcIiwgXCJNMzY4LjUgMzYzLjlsMjguOC0xMy45YzExLjEgMjIuOSAyNiA0My4yIDQ0LjEgNjAuOSAzNC00Mi41IDU0LjUtOTYuMyA1NC41LTE1NC45IDAtNTguNS0yMC40LTExMi4yLTU0LjItMTU0LjYtMTcuOCAxNy4zLTMyLjYgMzcuMS00My42IDU5LjVsLTI4LjctMTQuMWMxMi44LTI2IDMwLTQ5IDUwLjgtNjlDMzc1LjYgMzQuNyAzMTUgOCAyNDggOCAxODEuMSA4IDEyMC41IDM0LjYgNzUuOSA3Ny43YzIwLjcgMTkuOSAzNy45IDQyLjkgNTAuNyA2OC44bC0yOC43IDE0LjFjLTExLTIyLjMtMjUuNy00Mi4xLTQzLjUtNTkuNEMyMC40IDE0My43IDAgMTk3LjQgMCAyNTZjMCA1OC42IDIwLjQgMTEyLjMgNTQuNCAxNTQuNyAxOC4yLTE3LjcgMzMuMi0zOCA0NC4zLTYxbDI4LjggMTMuOWMtMTIuOSAyNi43LTMwLjMgNTAuMy01MS41IDcwLjcgNDQuNSA0My4xIDEwNS4xIDY5LjcgMTcyIDY5LjcgNjYuOCAwIDEyNy4zLTI2LjUgMTcxLjktNjkuNS0yMS4xLTIwLjQtMzguNS00My45LTUxLjQtNzAuNnptLTIyOC4zLTMybC0zMC41LTkuOGMxNC45LTQ2LjQgMTIuNy05My44LS42LTEzNGwzMC40LTEwYzE1IDQ1LjYgMTggOTkuOS43IDE1My44em0yMTYuMy0xNTMuNGwzMC40IDEwYy0xMy4yIDQwLjEtMTUuNSA4Ny41LS42IDEzNGwtMzAuNSA5LjhjLTE3LjMtNTQtMTQuMy0xMDguMy43LTE1My44elwiXVxufTtcbnZhciBmYUJhc2tldGJhbGxCYWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jhc2tldGJhbGwtYmFsbCcsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjQzNFwiLCBcIk0yMTIuMyAxMC4zYy00My44IDYuMy04Ni4yIDI0LjEtMTIyLjIgNTMuOGw3Ny40IDc3LjRjMjcuOC0zNS44IDQzLjMtODEuMiA0NC44LTEzMS4yek0yNDggMjIyTDQwNS45IDY0LjFjLTQyLjQtMzUtOTMuNi01My41LTE0NS41LTU2LjEtMS4yIDYzLjktMjEuNSAxMjIuMy01OC43IDE2Ny43TDI0OCAyMjJ6TTU2LjEgOTguMWMtMjkuNyAzNi00Ny41IDc4LjQtNTMuOCAxMjIuMiA1MC0xLjUgOTUuNS0xNyAxMzEuMi00NC44TDU2LjEgOTguMXptMjcyLjIgMjA0LjJjNDUuMy0zNy4xIDEwMy43LTU3LjQgMTY3LjctNTguNy0yLjYtNTEuOS0yMS4xLTEwMy4xLTU2LjEtMTQ1LjVMMjgyIDI1Nmw0Ni4zIDQ2LjN6TTI0OCAyOTBMOTAuMSA0NDcuOWM0Mi40IDM0LjkgOTMuNiA1My41IDE0NS41IDU2LjEgMS4zLTY0IDIxLjYtMTIyLjQgNTguNy0xNjcuN0wyNDggMjkwem0xOTEuOSAxMjMuOWMyOS43LTM2IDQ3LjUtNzguNCA1My44LTEyMi4yLTUwLjEgMS42LTk1LjUgMTcuMS0xMzEuMiA0NC44bDc3LjQgNzcuNHpNMTY3LjcgMjA5LjdDMTIyLjMgMjQ2LjkgNjMuOSAyNjcuMyAwIDI2OC40YzIuNiA1MS45IDIxLjEgMTAzLjEgNTYuMSAxNDUuNUwyMTQgMjU2bC00Ni4zLTQ2LjN6bTExNiAyOTJjNDMuOC02LjMgODYuMi0yNC4xIDEyMi4yLTUzLjhsLTc3LjQtNzcuNGMtMjcuNyAzNS43LTQzLjIgODEuMi00NC44IDEzMS4yelwiXVxufTtcbnZhciBmYUJhdGggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0aCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJjZFwiLCBcIk00ODggMjU2SDgwVjExMmMwLTE3LjY0NSAxNC4zNTUtMzIgMzItMzIgMTEuMzUxIDAgMjEuMzMyIDUuOTQ1IDI3LjAxNSAxNC44OC0xNi40OTIgMjUuMjA3LTE0LjY4NyA1OS41NzYgNi44MzggODMuMDM1LTQuMTc2IDQuNzEzLTQuMDIxIDExLjkxNi40OTEgMTYuNDI4bDExLjMxNCAxMS4zMTRjNC42ODYgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3MSAwbDk1LjAzLTk1LjAyOWM0LjY4Ni00LjY4NiA0LjY4Ni0xMi4yODQgMC0xNi45NzFsLTExLjMxNC0xMS4zMTRjLTQuNTEyLTQuNTEyLTExLjcxNS00LjY2Ni0xNi40MjgtLjQ5MS0xNy45NDktMTYuNDY5LTQyLjI5NC0yMS40MjktNjQuMTc4LTE1LjM2NUMxNjMuMjgxIDQ1LjY2NyAxMzkuMjEyIDMyIDExMiAzMmMtNDQuMTEyIDAtODAgMzUuODg4LTgwIDgwdjE0NGgtOGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg4djMyYzAgMjguNDMgMTIuMzYyIDUzLjk2OSAzMiA3MS41NDdWNDU2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LThoMjU2djhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtMzIuNDUzYzE5LjYzOC0xNy41NzggMzItNDMuMTE3IDMyLTcxLjU0N3YtMzJoOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTE2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpcIl1cbn07XG52YXIgZmFCYXR0ZXJ5RW1wdHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS1lbXB0eScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjI0NFwiLCBcIk01NDQgMTYwdjY0aDMydjY0aC0zMnY2NEg2NFYxNjBoNDgwbTE2LTY0SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djIyNGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDUxMmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di0xNmg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxODRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC04di0xNmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4elwiXVxufTtcbnZhciBmYUJhdHRlcnlGdWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JhdHRlcnktZnVsbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjI0MFwiLCBcIk01NDQgMTYwdjY0aDMydjY0aC0zMnY2NEg2NFYxNjBoNDgwbTE2LTY0SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djIyNGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDUxMmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di0xNmg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxODRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC04di0xNmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tNDggOTZIOTZ2MTI4aDQxNlYxOTJ6XCJdXG59O1xudmFyIGZhQmF0dGVyeUhhbGYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS1oYWxmJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMjQyXCIsIFwiTTU0NCAxNjB2NjRoMzJ2NjRoLTMydjY0SDY0VjE2MGg0ODBtMTYtNjRINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNTEyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTE2aDhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTh2LTE2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS0yNDAgOTZIOTZ2MTI4aDIyNFYxOTJ6XCJdXG59O1xudmFyIGZhQmF0dGVyeVF1YXJ0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS1xdWFydGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMjQzXCIsIFwiTTU0NCAxNjB2NjRoMzJ2NjRoLTMydjY0SDY0VjE2MGg0ODBtMTYtNjRINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNTEyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTE2aDhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTh2LTE2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS0zMzYgOTZIOTZ2MTI4aDEyOFYxOTJ6XCJdXG59O1xudmFyIGZhQmF0dGVyeVRocmVlUXVhcnRlcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmF0dGVyeS10aHJlZS1xdWFydGVycycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjI0MVwiLCBcIk01NDQgMTYwdjY0aDMydjY0aC0zMnY2NEg2NFYxNjBoNDgwbTE2LTY0SDQ4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djIyNGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDUxMmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di0xNmg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxODRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC04di0xNmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tMTQ0IDk2SDk2djEyOGgzMjBWMTkyelwiXVxufTtcbnZhciBmYUJlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiZWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyMzZcIiwgXCJNMTc2IDI1NmM0NC4xMSAwIDgwLTM1Ljg5IDgwLTgwcy0zNS44OS04MC04MC04MC04MCAzNS44OS04MCA4MCAzNS44OSA4MCA4MCA4MHptMzUyLTEyOEgzMDRjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NEg2NFY4MGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDY0IDAgNzEuMTYgMCA4MHYzNTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTQ4aDUxMnY0OGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyNDBjMC02MS44Ni01MC4xNC0xMTItMTEyLTExMnpcIl1cbn07XG52YXIgZmFCZWVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JlZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwZmNcIiwgXCJNMzY4IDk2aC00OFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2NDAwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyNzJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di00Mi4xMWw4MC42MDYtMzUuOTc3QzQyOS4zOTYgMzY1LjA2MyA0NDggMzM2LjM4OCA0NDggMzA0Ljg2VjE3NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODB6bTE2IDIwOC44NmExNi4wMTggMTYuMDE4IDAgMCAxLTkuNDc5IDE0LjYxMUwzMjAgMzQzLjgwNVYxNjBoNDhjOC44MjIgMCAxNiA3LjE3OCAxNiAxNnYxMjguODZ6TTIwOCAzODRjLTguODM2IDAtMTYtNy4xNjQtMTYtMTZWMTQ0YzAtOC44MzYgNy4xNjQtMTYgMTYtMTZzMTYgNy4xNjQgMTYgMTZ2MjI0YzAgOC44MzYtNy4xNjQgMTYtMTYgMTZ6bS05NiAwYy04LjgzNiAwLTE2LTcuMTY0LTE2LTE2VjE0NGMwLTguODM2IDcuMTY0LTE2IDE2LTE2czE2IDcuMTY0IDE2IDE2djIyNGMwIDguODM2LTcuMTY0IDE2LTE2IDE2elwiXVxufTtcbnZhciBmYUJlbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmVsbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBmM1wiLCBcIk0yMjQgNTEyYzM1LjMyIDAgNjMuOTctMjguNjUgNjMuOTctNjRIMTYwLjAzYzAgMzUuMzUgMjguNjUgNjQgNjMuOTcgNjR6bTIxNS4zOS0xNDkuNzFjLTE5LjMyLTIwLjc2LTU1LjQ3LTUxLjk5LTU1LjQ3LTE1NC4yOSAwLTc3LjctNTQuNDgtMTM5LjktMTI3Ljk0LTE1NS4xNlYzMmMwLTE3LjY3LTE0LjMyLTMyLTMxLjk4LTMycy0zMS45OCAxNC4zMy0zMS45OCAzMnYyMC44NEMxMTguNTYgNjguMSA2NC4wOCAxMzAuMyA2NC4wOCAyMDhjMCAxMDIuMy0zNi4xNSAxMzMuNTMtNTUuNDcgMTU0LjI5LTYgNi40NS04LjY2IDE0LjE2LTguNjEgMjEuNzEuMTEgMTYuNCAxMi45OCAzMiAzMi4xIDMyaDM4My44YzE5LjEyIDAgMzItMTUuNiAzMi4xLTMyIC4wNS03LjU1LTIuNjEtMTUuMjctOC42MS0yMS43MXpcIl1cbn07XG52YXIgZmFCZWxsU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmVsbC1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjFmNlwiLCBcIk02MzMuODIgNDU4LjFsLTkwLjYyLTcwLjA1Yy4xOS0xLjM4LjgtMi42Ni44LTQuMDYuMDUtNy41NS0yLjYxLTE1LjI3LTguNjEtMjEuNzEtMTkuMzItMjAuNzYtNTUuNDctNTEuOTktNTUuNDctMTU0LjI5IDAtNzcuNy01NC40OC0xMzkuOS0xMjcuOTQtMTU1LjE2VjMyYzAtMTcuNjctMTQuMzItMzItMzEuOTgtMzJzLTMxLjk4IDE0LjMzLTMxLjk4IDMydjIwLjg0Yy00MC4zMyA4LjM4LTc0LjY2IDMxLjA3LTk3LjU5IDYyLjU3TDQ1LjQ3IDMuMzdDMzguNDktMi4wNSAyOC40My0uOCAyMy4wMSA2LjE4TDMuMzcgMzEuNDVDLTIuMDUgMzguNDItLjggNDguNDcgNi4xOCA1My45bDU4OC4zNSA0NTQuNzNjNi45OCA1LjQzIDE3LjAzIDQuMTcgMjIuNDYtMi44MWwxOS42NC0yNS4yN2M1LjQyLTYuOTcgNC4xNy0xNy4wMi0yLjgxLTIyLjQ1ek0xNTcuMjMgMjUxLjU0Yy04LjYxIDY3Ljk2LTM2LjQxIDkzLjMzLTUyLjYyIDExMC43NS02IDYuNDUtOC42NiAxNC4xNi04LjYxIDIxLjcxLjExIDE2LjQgMTIuOTggMzIgMzIuMSAzMmgyNDEuOTJMMTU3LjIzIDI1MS41NHpNMzIwIDUxMmMzNS4zMiAwIDYzLjk3LTI4LjY1IDYzLjk3LTY0SDI1Ni4wM2MwIDM1LjM1IDI4LjY1IDY0IDYzLjk3IDY0elwiXVxufTtcbnZhciBmYUJlemllckN1cnZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jlemllci1jdXJ2ZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjU1YlwiLCBcIk0zNjggMzJoLTk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0yMDggODhoLTg0Ljc1QzExMy43NSA2NC41NiA5MC44NCA0OCA2NCA0OCAyOC42NiA0OCAwIDc2LjY1IDAgMTEyczI4LjY2IDY0IDY0IDY0YzI2Ljg0IDAgNDkuNzUtMTYuNTYgNTkuMjUtNDBoNzkuNzNjLTU1LjM3IDMyLjUyLTk1Ljg2IDg3LjMyLTEwOS41NCAxNTJoNDkuNGMxMS4zLTQxLjYxIDM2Ljc3LTc3LjIxIDcxLjA0LTEwMS41Ni0zLjctOC4wOC01Ljg4LTE2Ljk5LTUuODgtMjYuNDRWODh6bS00OCAyMzJINjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek01NzYgNDhjLTI2Ljg0IDAtNDkuNzUgMTYuNTYtNTkuMjUgNDBINDMydjcyYzAgOS40NS0yLjE5IDE4LjM2LTUuODggMjYuNDQgMzQuMjcgMjQuMzUgNTkuNzQgNTkuOTUgNzEuMDQgMTAxLjU2aDQ5LjRjLTEzLjY4LTY0LjY4LTU0LjE3LTExOS40OC0xMDkuNTQtMTUyaDc5LjczYzkuNSAyMy40NCAzMi40MSA0MCA1OS4yNSA0MCAzNS4zNCAwIDY0LTI4LjY1IDY0LTY0cy0yOC42Ni02NC02NC02NHptMCAyNzJoLTk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFCaWJsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiaWJsZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjY0N1wiLCBcIk00NDggMzU4LjRWMjUuNmMwLTE2LTkuNi0yNS42LTI1LjYtMjUuNkg5NkM0MS42IDAgMCA0MS42IDAgOTZ2MzIwYzAgNTQuNCA0MS42IDk2IDk2IDk2aDMyNi40YzEyLjggMCAyNS42LTkuNiAyNS42LTI1LjZ2LTE2YzAtNi40LTMuMi0xMi44LTkuNi0xOS4yLTMuMi0xNi0zLjItNjAuOCAwLTczLjYgNi40LTMuMiA5LjYtOS42IDkuNi0xOS4yek0xNDQgMTQ0YzAtOC44NCA3LjE2LTE2IDE2LTE2aDQ4VjgwYzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djQ4aDQ4YzguODQgMCAxNiA3LjE2IDE2IDE2djMyYzAgOC44NC03LjE2IDE2LTE2IDE2aC00OHYxMTJjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTMyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNlYxOTJoLTQ4Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMzJ6bTIzNi44IDMwNEg5NmMtMTkuMiAwLTMyLTEyLjgtMzItMzJzMTYtMzIgMzItMzJoMjg0Ljh2NjR6XCJdXG59O1xudmFyIGZhQmljeWNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiaWN5Y2xlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMjA2XCIsIFwiTTUxMi41MDkgMTkyLjAwMWMtMTYuMzczLS4wNjQtMzIuMDMgMi45NTUtNDYuNDM2IDguNDk1bC03Ny42OC0xMjUuMTUzQTI0IDI0IDAgMCAwIDM2OC4wMDEgNjRoLTY0Yy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2djE2YzAgOC44MzcgNy4xNjMgMTYgMTYgMTZoNTAuNjQ5bDE0Ljg5NiAyNEgyNTYuMDAydi0xNmMwLTguODM3LTcuMTYzLTE2LTE2LTE2aC04Ny40NTljLTEzLjQ0MSAwLTI0Ljc3NyAxMC45OTktMjQuNTM2IDI0LjQzNy4yMzIgMTMuMDQ0IDEwLjg3NiAyMy41NjMgMjMuOTk1IDIzLjU2M2g0OC43MjZsLTI5LjQxNyA0Ny41MmMtMTMuNDMzLTQuODMtMjcuOTA0LTcuNDgzLTQyLjk5Mi03LjUyQzU4LjA5NCAxOTEuODMuNDEyIDI0OS4wMTIuMDAyIDMxOS4yMzYtLjQxMyAzOTAuMjc5IDU3LjA1NSA0NDggMTI4LjAwMiA0NDhjNTkuNjQyIDAgMTA5Ljc1OC00MC43OTMgMTIzLjk2Ny05Nmg1Mi4wMzNhMjQgMjQgMCAwIDAgMjAuNDA2LTExLjM2N0w0MTAuMzcgMjAxLjc3bDE0LjkzOCAyNC4wNjdjLTI1LjQ1NSAyMy40NDgtNDEuMzg1IDU3LjA4MS00MS4zMDcgOTQuNDM3LjE0NSA2OC44MzMgNTcuODk5IDEyNy4wNTEgMTI2LjcyOSAxMjcuNzE5IDcwLjYwNi42ODUgMTI4LjE4MS01NS44MDMgMTI5LjI1NS0xMjUuOTk2IDEuMDg2LTcwLjk0MS01Ni41MjYtMTI5LjcyLTEyNy40NzYtMTI5Ljk5NnpNMTg2Ljc1IDI2NS43NzJjOS43MjcgMTAuNTI5IDE2LjY3MyAyMy42NjEgMTkuNjQyIDM4LjIyOGgtNDMuMzA2bDIzLjY2NC0zOC4yMjh6TTEyOC4wMDIgNDAwYy00NC4xMTIgMC04MC0zNS44ODgtODAtODBzMzUuODg4LTgwIDgwLTgwYzUuODY5IDAgMTEuNTg2LjY1MyAxNy4wOTkgMS44NTlsLTQ1LjUwNSA3My41MDlDODkuNzE1IDMzMS4zMjcgMTAxLjIxMyAzNTIgMTIwLjAwMiAzNTJoODEuM2MtMTIuMzcgMjguMjI1LTQwLjU2MiA0OC03My4zIDQ4em0xNjIuNjMtOTZoLTM1LjYyNGMtMy45Ni0zMS43NTYtMTkuNTU2LTU5Ljg5NC00Mi4zODMtODAuMDI2TDIzNy4zNzEgMTg0aDEyNy41NDdsLTc0LjI4NiAxMjB6bTIxNy4wNTcgOTUuODg2Yy00MS4wMzYtMi4xNjUtNzQuMDQ5LTM1LjY5Mi03NS42MjctNzYuNzU1LS44MTItMjEuMTIxIDYuNjMzLTQwLjUxOCAxOS4zMzUtNTUuMjYzbDQ0LjQzMyA3MS41ODZjNC42NiA3LjUwOCAxNC41MjQgOS44MTYgMjIuMDMyIDUuMTU2bDEzLjU5NC04LjQzN2M3LjUwOC00LjY2IDkuODE3LTE0LjUyNCA1LjE1Ni0yMi4wMzJsLTQ0LjQ2OC03MS42NDNhNzkuOTAxIDc5LjkwMSAwIDAgMSAxOS44NTgtMi40OTdjNDQuMTEyIDAgODAgMzUuODg4IDgwIDgwLS4wMDEgNDUuNTQtMzguMjUyIDgyLjMxNi04NC4zMTMgNzkuODg1elwiXVxufTtcbnZhciBmYUJpa2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiaWtpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY4NGFcIiwgXCJNNDAwIDk2YTQ4IDQ4IDAgMSAwLTQ4LTQ4IDQ4IDQ4IDAgMCAwIDQ4IDQ4em0tNCAxMjFhMzEuOSAzMS45IDAgMCAwIDIwIDdoNjRhMzIgMzIgMCAwIDAgMC02NGgtNTIuNzhMMzU2IDEwM2EzMS45NCAzMS45NCAwIDAgMC00MC44MS42OGwtMTEyIDk2YTMyIDMyIDAgMCAwIDMuMDggNTAuOTJMMjg4IDMwNS4xMlY0MTZhMzIgMzIgMCAwIDAgNjQgMFYyODhhMzIgMzIgMCAwIDAtMTQuMjUtMjYuNjJsLTQxLjM2LTI3LjU3IDU4LjI1LTQ5Ljkyem0xMTYgMzlhMTI4IDEyOCAwIDEgMCAxMjggMTI4IDEyOCAxMjggMCAwIDAtMTI4LTEyOHptMCAxOTJhNjQgNjQgMCAxIDEgNjQtNjQgNjQgNjQgMCAwIDEtNjQgNjR6TTEyOCAyNTZhMTI4IDEyOCAwIDEgMCAxMjggMTI4IDEyOCAxMjggMCAwIDAtMTI4LTEyOHptMCAxOTJhNjQgNjQgMCAxIDEgNjQtNjQgNjQgNjQgMCAwIDEtNjQgNjR6XCJdXG59O1xudmFyIGZhQmlub2N1bGFycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdiaW5vY3VsYXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWU1XCIsIFwiTTQxNiA0OGMwLTguODQtNy4xNi0xNi0xNi0xNmgtNjRjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4aDk2VjQ4ek02My45MSAxNTkuOTlDNjEuNCAyNTMuODQgMy40NiAyNzQuMjIgMCA0MDR2NDRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjI4OGgzMlYxMjhIOTUuODRjLTE3LjYzIDAtMzEuNDUgMTQuMzctMzEuOTMgMzEuOTl6bTM4NC4xOCAwYy0uNDgtMTcuNjItMTQuMy0zMS45OS0zMS45My0zMS45OUgzMjB2MTYwaDMydjE2MGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTQ0Yy0zLjQ2LTEyOS43OC02MS40LTE1MC4xNi02My45MS0yNDQuMDF6TTE3NiAzMmgtNjRjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4aDk2VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2em00OCAyNTZoNjRWMTI4aC02NHYxNjB6XCJdXG59O1xudmFyIGZhQmlvaGF6YXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jpb2hhemFyZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjc4MFwiLCBcIk0yODcuOSAxMTJjMTguNiAwIDM2LjIgMy44IDUyLjggOS42IDEzLjMtMTAuMyAyMy42LTI0LjMgMjkuNS00MC43LTI1LjItMTAuOS01My0xNy04Mi4yLTE3LTI5LjEgMC01Ni45IDYtODIuMSAxNi45IDUuOSAxNi40IDE2LjIgMzAuNCAyOS41IDQwLjcgMTYuNS01LjcgMzQtOS41IDUyLjUtOS41ek0xNjMuNiA0MzguN2MxMi0xMS44IDIwLjQtMjYuNCAyNC41LTQyLjQtMzIuOS0yNi40LTU0LjgtNjUuMy01OC45LTEwOS42LTguNS0yLjgtMTcuMi00LjYtMjYuNC00LjYtNy42IDAtMTUuMiAxLTIyLjUgMy4xIDQuMSA2Mi44IDM1LjggMTE4IDgzLjMgMTUzLjV6bTIyNC4yLTQyLjZjNC4xIDE2IDEyLjUgMzAuNyAyNC41IDQyLjUgNDcuNC0zNS41IDc5LjEtOTAuNyA4My0xNTMuNS03LjItMi0xNC43LTMtMjIuMi0zLTkuMiAwLTE4IDEuOS0yNi42IDQuNy00LjEgNDQuMi0yNiA4Mi45LTU4LjcgMTA5LjN6bTExMy41LTIwNWMtMTcuNi0xMC40LTM2LjMtMTYuNi01NS4zLTE5LjkgNi0xNy43IDEwLTM2LjQgMTAtNTYuMiAwLTQxLTE0LjUtODAuOC00MS0xMTIuMi0yLjUtMy02LjYtMy43LTEwLTEuOC0zLjMgMS45LTQuOCA2LTMuNiA5LjcgNC41IDEzLjggNi42IDI2LjMgNi42IDM4LjUgMCA2Ny44LTUzLjggMTIyLjktMTIwIDEyMi45UzE2OCAxMTcgMTY4IDQ5LjJjMC0xMi4xIDIuMi0yNC43IDYuNi0zOC41IDEuMi0zLjctLjMtNy44LTMuNi05LjctMy40LTEuOS03LjUtMS4yLTEwIDEuOEMxMzQuNiAzNC4yIDEyMCA3NCAxMjAgMTE1YzAgMTkuOCAzLjkgMzguNSAxMCA1Ni4yLTE4LjkgMy4zLTM3LjcgOS41LTU1LjMgMTkuOS0zNC42IDIwLjUtNjEgNTMuMy03NC4zIDkyLjQtMS4zIDMuNy4yIDcuNyAzLjUgOS44IDMuMyAyIDcuNSAxLjMgMTAtMS42IDkuNC0xMC44IDE5LTE5LjEgMjkuMi0yNS4xIDU3LjMtMzMuOSAxMzAuOC0xMy43IDE2My45IDQ1IDMzLjEgNTguNyAxMy40IDEzNC00My45IDE2Ny45LTEwLjIgNi4xLTIyIDEwLjQtMzUuOCAxMy40LTMuNy44LTYuNCA0LjItNi40IDguMS4xIDQgMi43IDcuMyA2LjUgOCAzOS43IDcuOCA4MC42LjggMTE1LjItMTkuNyAxOC0xMC42IDMyLjktMjQuNSA0NS4zLTQwLjEgMTIuNCAxNS42IDI3LjMgMjkuNSA0NS4zIDQwLjEgMzQuNiAyMC41IDc1LjUgMjcuNSAxMTUuMiAxOS43IDMuOC0uNyA2LjQtNCA2LjUtOCAwLTMuOS0yLjYtNy4zLTYuNC04LjEtMTMuOS0yLjktMjUuNi03LjMtMzUuOC0xMy40LTU3LjMtMzMuOS03Ny0xMDkuMi00My45LTE2Ny45czEwNi42LTc4LjkgMTYzLjktNDVjMTAuMiA2LjEgMTkuOCAxNC4zIDI5LjIgMjUuMSAyLjUgMi45IDYuNyAzLjYgMTAgMS42czQuOC02LjEgMy41LTkuOGMtMTMuMS0zOS4xLTM5LjUtNzItNzQuMS05Mi40em0tMjEzLjQgMTI5Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHpcIl1cbn07XG52YXIgZmFCaXJ0aGRheUNha2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmlydGhkYXktY2FrZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjFmZFwiLCBcIk00NDggMzg0Yy0yOC4wMiAwLTMxLjI2LTMyLTc0LjUtMzItNDMuNDMgMC00Ni44MjUgMzItNzQuNzUgMzItMjcuNjk1IDAtMzEuNDU0LTMyLTc0Ljc1LTMyLTQyLjg0MiAwLTQ3LjIxOCAzMi03NC41IDMyLTI4LjE0OCAwLTMxLjIwMi0zMi03NC43NS0zMi00My41NDcgMC00Ni42NTMgMzItNzQuNzUgMzJ2LTgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDE2VjExMmg2NHYxNDRoNjRWMTEyaDY0djE0NGg2NFYxMTJoNjR2MTQ0aDE2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4djgwem0wIDEyOEgwdi05NmM0My4zNTYgMCA0Ni43NjctMzIgNzQuNzUtMzIgMjcuOTUxIDAgMzEuMjUzIDMyIDc0Ljc1IDMyIDQyLjg0MyAwIDQ3LjIxNy0zMiA3NC41LTMyIDI4LjE0OCAwIDMxLjIwMSAzMiA3NC43NSAzMiA0My4zNTcgMCA0Ni43NjctMzIgNzQuNzUtMzIgMjcuNDg4IDAgMzEuMjUyIDMyIDc0LjUgMzJ2OTZ6TTk2IDk2Yy0xNy43NSAwLTMyLTE0LjI1LTMyLTMyIDAtMzEgMzItMjMgMzItNjQgMTIgMCAzMiAyOS41IDMyIDU2cy0xNC4yNSA0MC0zMiA0MHptMTI4IDBjLTE3Ljc1IDAtMzItMTQuMjUtMzItMzIgMC0zMSAzMi0yMyAzMi02NCAxMiAwIDMyIDI5LjUgMzIgNTZzLTE0LjI1IDQwLTMyIDQwem0xMjggMGMtMTcuNzUgMC0zMi0xNC4yNS0zMi0zMiAwLTMxIDMyLTIzIDMyLTY0IDEyIDAgMzIgMjkuNSAzMiA1NnMtMTQuMjUgNDAtMzIgNDB6XCJdXG59O1xudmFyIGZhQmxlbmRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdibGVuZGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTE3XCIsIFwiTTQxNiAzODRIMTYwYy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzIwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMzUuMzUtMjguNjUtNjQtNjQtNjR6bS0xMjggOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTQwLTQxNmgxNjYuNTRMNTEyIDBINDhDMjEuNDkgMCAwIDIxLjQ5IDAgNDh2MTYwYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMTAzLjI3bDguNzMgOTZoMjU2bDE3LjQ2LTY0SDMyOGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDExNC4xOGwxNy40Ni02NEgzMjhjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxNDAuMzZsMTcuNDYtNjRIMzI4Yy00LjQyIDAtOC0zLjU4LTgtOFY3MmMwLTQuNDIgMy41OC04IDgtOHpNNjQgMTkyVjY0aDY5LjgybDExLjY0IDEyOEg2NHpcIl1cbn07XG52YXIgZmFCbGVuZGVyUGhvbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmxlbmRlci1waG9uZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjZiNlwiLCBcIk0zOTIgNjRoMTY2LjU0TDU3NiAwSDE5MnYzNTJoMjg4bDE3LjQ2LTY0SDM5MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDExNC4xOGwxNy40Ni02NEgzOTJjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGgxNDAuMzZsMTcuNDYtNjRIMzkyYy00LjQyIDAtOC0zLjU4LTgtOFY3MmMwLTQuNDIgMy41OC04IDgtOHpNMTU4LjggMzM1LjAxbC0yNS43OC02My4yNmMtMi43OC02LjgxLTkuOC0xMC45OS0xNy4yNC0xMC4yNmwtNDUuMDMgNC40MmMtMTcuMjgtNDYuOTQtMTcuNjUtOTkuNzggMC0xNDcuNzJsNDUuMDMgNC40MmM3LjQzLjczIDE0LjQ2LTMuNDYgMTcuMjQtMTAuMjZsMjUuNzgtNjMuMjZjMy4wMi03LjM5LjItMTUuODUtNi42OC0yMC4wN2wtMzkuMjgtMjQuMUM5OC41MS0zLjg3IDgwLjA5LS41IDY4Ljk1IDExLjk3Yy05Mi41NyAxMDMuNi05MiAyNTkuNTUgMi4xIDM2Mi40OSA5Ljg3IDEwLjggMjkuMTIgMTIuNDggNDEuNjUgNC44bDM5LjQxLTI0LjE4YzYuODktNC4yMiA5LjctMTIuNjcgNi42OS0yMC4wN3pNNDgwIDM4NEgxOTJjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzNTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0zNS4zNS0yOC42NS02NC02NC02NHptLTE0NCA5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnpcIl1cbn07XG52YXIgZmFCbGluZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdibGluZCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjI5ZFwiLCBcIk0zODAuMTUgNTEwLjgzN2E4IDggMCAwIDEtMTAuOTg5LTIuNjg3bC0xMjUuMzMtMjA2LjQyN2EzMS45MjMgMzEuOTIzIDAgMCAwIDEyLjk1OC05LjQ4NWwxMjYuMDQ4IDIwNy42MDhhOCA4IDAgMCAxLTIuNjg3IDEwLjk5MXpNMTQyLjgwMyAzMTQuMzM4bC0zMi41NCA4OS40ODUgMzYuMTIgODguMjg1YzYuNjkzIDE2LjM2IDI1LjM3NyAyNC4xOTIgNDEuNzMzIDE3LjUwMSAxNi4zNTctNi42OTIgMjQuMTkzLTI1LjM3NiAxNy41MDEtNDEuNzM0bC02Mi44MTQtMTUzLjUzN3pNOTYgODhjMjQuMzAxIDAgNDQtMTkuNjk5IDQ0LTQ0UzEyMC4zMDEgMCA5NiAwIDUyIDE5LjY5OSA1MiA0NHMxOS42OTkgNDQgNDQgNDR6bTE1NC44MzcgMTY5LjEyOGwtMTIwLTE1MmMtNC43MzMtNS45OTUtMTEuNzUtOS4xMDgtMTguODM3LTkuMTEyVjk2SDgwdi4wMjZjLTcuMTQ2LjAwMy0xNC4yMTcgMy4xNjEtMTguOTQ0IDkuMjRMMCAxODMuNzY2djk1LjY5NGMwIDEzLjQ1NSAxMS4wMTEgMjQuNzkxIDI0LjQ2NCAyNC41MzZDMzcuNTA1IDMwMy43NDggNDggMjkzLjEgNDggMjgwdi03OS43NjZsMTYtMjAuNTcxdjE0MC42OThMOS45MjcgNDY5LjA1NWMtNi4wNCAxNi42MDkgMi41MjggMzQuOTY5IDE5LjEzOCA0MS4wMDkgMTYuNjAyIDYuMDM5IDM0Ljk2OC0yLjUyNCA0MS4wMDktMTkuMTM4TDEzNiAzMDkuNjM4VjIwMi40NDFsLTMxLjQwNi0zOS44MTZhNCA0IDAgMSAxIDYuMjY5LTQuOTcxbDEwMi4zIDEyOS4yMTdjOS4xNDUgMTEuNTg0IDI0LjM2OCAxMS4zMzkgMzMuNzA4IDMuOTY1IDEwLjQxLTguMjE2IDEyLjE1OS0yMy4zMzQgMy45NjYtMzMuNzA4elwiXVxufTtcbnZhciBmYUJsb2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYmxvZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc4MVwiLCBcIk0xNzIuMiAyMjYuOGMtMTQuNi0yLjktMjguMiA4LjktMjguMiAyMy44VjMwMWMwIDEwLjIgNy4xIDE4LjQgMTYuNyAyMiAxOC4yIDYuOCAzMS4zIDI0LjQgMzEuMyA0NSAwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjRIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI0OGMwIDg5LjUgODIuMSAxNjAuMiAxNzUgMTQwLjcgNTQuNC0xMS40IDk4LjMtNTUuNCAxMDkuNy0xMDkuNyAxNy40LTgyLjktMzctMTU3LjItMTEyLjUtMTcyLjJ6TTIwOSAwYy05LjItLjUtMTcgNi44LTE3IDE2djMxLjZjMCA4LjUgNi42IDE1LjUgMTUgMTUuOSAxMjkuNCA3IDIzMy40IDExMiAyNDAuOSAyNDEuNS41IDguNCA3LjUgMTUgMTUuOSAxNWgzMi4xYzkuMiAwIDE2LjUtNy44IDE2LTE3QzUwMy40IDEzOS44IDM3Mi4yIDguNiAyMDkgMHptLjMgOTZjLTkuMy0uNy0xNy4zIDYuNy0xNy4zIDE2LjF2MzIuMWMwIDguNCA2LjUgMTUuMyAxNC44IDE1LjkgNzYuOCA2LjMgMTM4IDY4LjIgMTQ0LjkgMTQ1LjIuOCA4LjMgNy42IDE0LjcgMTUuOSAxNC43aDMyLjJjOS4zIDAgMTYuOC04IDE2LjEtMTcuMy04LjQtMTEwLjEtOTYuNS0xOTguMi0yMDYuNi0yMDYuN3pcIl1cbn07XG52YXIgZmFCb2xkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbGQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYwMzJcIiwgXCJNMzMzLjQ5IDIzOGExMjIgMTIyIDAgMCAwIDI3LTY1LjIxQzM2Ny44NyA5Ni40OSAzMDggMzIgMjMzLjQyIDMySDM0YTE2IDE2IDAgMCAwLTE2IDE2djQ4YTE2IDE2IDAgMCAwIDE2IDE2aDMxLjg3djI4OEgzNGExNiAxNiAwIDAgMC0xNiAxNnY0OGExNiAxNiAwIDAgMCAxNiAxNmgyMDkuMzJjNzAuOCAwIDEzNC4xNC01MS43NSAxNDEtMTIyLjQgNC43NC00OC40NS0xNi4zOS05Mi4wNi01MC44My0xMTkuNnpNMTQ1LjY2IDExMmg4Ny43NmE0OCA0OCAwIDAgMSAwIDk2aC04Ny43NnptODcuNzYgMjg4aC04Ny43NlYyODhoODcuNzZhNTYgNTYgMCAwIDEgMCAxMTJ6XCJdXG59O1xudmFyIGZhQm9sdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib2x0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMGU3XCIsIFwiTTI5NiAxNjBIMTgwLjZsNDIuNi0xMjkuOEMyMjcuMiAxNSAyMTUuNyAwIDIwMCAwSDU2QzQ0IDAgMzMuOCA4LjkgMzIuMiAyMC44bC0zMiAyNDBDLTEuNyAyNzUuMiA5LjUgMjg4IDI0IDI4OGgxMTguN0w5Ni42IDQ4Mi41Yy0zLjYgMTUuMiA4IDI5LjUgMjMuMyAyOS41IDguNCAwIDE2LjQtNC40IDIwLjgtMTJsMTc2LTMwNGM5LjMtMTUuOS0yLjItMzYtMjAuNy0zNnpcIl1cbn07XG52YXIgZmFCb21iID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvbWInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxZTJcIiwgXCJNNDQwLjUgODguNWwtNTIgNTJMNDE1IDE2N2M5LjQgOS40IDkuNCAyNC42IDAgMzMuOWwtMTcuNCAxNy40YzExLjggMjYuMSAxOC40IDU1LjEgMTguNCA4NS42IDAgMTE0LjktOTMuMSAyMDgtMjA4IDIwOFMwIDQxOC45IDAgMzA0IDkzLjEgOTYgMjA4IDk2YzMwLjUgMCA1OS41IDYuNiA4NS42IDE4LjRMMzExIDk3YzkuNC05LjQgMjQuNi05LjQgMzMuOSAwbDI2LjUgMjYuNSA1Mi01MiAxNy4xIDE3ek01MDAgNjBoLTI0Yy02LjYgMC0xMiA1LjQtMTIgMTJzNS40IDEyIDEyIDEyaDI0YzYuNiAwIDEyLTUuNCAxMi0xMnMtNS40LTEyLTEyLTEyek00NDAgMGMtNi42IDAtMTIgNS40LTEyIDEydjI0YzAgNi42IDUuNCAxMiAxMiAxMnMxMi01LjQgMTItMTJWMTJjMC02LjYtNS40LTEyLTEyLTEyem0zMy45IDU1bDE3LTE3YzQuNy00LjcgNC43LTEyLjMgMC0xNy00LjctNC43LTEyLjMtNC43LTE3IDBsLTE3IDE3Yy00LjcgNC43LTQuNyAxMi4zIDAgMTcgNC44IDQuNyAxMi40IDQuNyAxNyAwem0tNjcuOCAwYzQuNyA0LjcgMTIuMyA0LjcgMTcgMCA0LjctNC43IDQuNy0xMi4zIDAtMTdsLTE3LTE3Yy00LjctNC43LTEyLjMtNC43LTE3IDAtNC43IDQuNy00LjcgMTIuMyAwIDE3bDE3IDE3em02Ny44IDM0Yy00LjctNC43LTEyLjMtNC43LTE3IDAtNC43IDQuNy00LjcgMTIuMyAwIDE3bDE3IDE3YzQuNyA0LjcgMTIuMyA0LjcgMTcgMCA0LjctNC43IDQuNy0xMi4zIDAtMTdsLTE3LTE3ek0xMTIgMjcyYzAtMzUuMyAyOC43LTY0IDY0LTY0IDguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2Yy01Mi45IDAtOTYgNDMuMS05NiA5NiAwIDguOCA3LjIgMTYgMTYgMTZzMTYtNy4yIDE2LTE2elwiXVxufTtcbnZhciBmYUJvbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9uZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjVkN1wiLCBcIk01OTguODggMjQ0LjU2YzI1LjItMTIuNiA0MS4xMi0zOC4zNiA0MS4xMi02Ni41M3YtNy42NEM2NDAgMTI5LjMgNjA2LjcgOTYgNTY1LjYxIDk2Yy0zMi4wMiAwLTYwLjQ0IDIwLjQ5LTcwLjU3IDUwLjg2LTcuNjggMjMuMDMtMTEuNiA0NS4xNC0zOC4xMSA0NS4xNEgxODMuMDZjLTI3LjM4IDAtMzEuNTgtMjUuNTQtMzguMTEtNDUuMTRDMTM0LjgzIDExNi40OSAxMDYuNCA5NiA3NC4zOSA5NiAzMy4zIDk2IDAgMTI5LjMgMCAxNzAuMzl2Ny42NGMwIDI4LjE3IDE1LjkyIDUzLjkzIDQxLjEyIDY2LjUzIDkuNDMgNC43MSA5LjQzIDE4LjE3IDAgMjIuODhDMTUuOTIgMjgwLjA0IDAgMzA1LjggMCAzMzMuOTd2Ny42NEMwIDM4Mi43IDMzLjMgNDE2IDc0LjM4IDQxNmMzMi4wMiAwIDYwLjQ0LTIwLjQ5IDcwLjU3LTUwLjg2IDcuNjgtMjMuMDMgMTEuNi00NS4xNCAzOC4xMS00NS4xNGgyNzMuODdjMjcuMzggMCAzMS41OCAyNS41NCAzOC4xMSA0NS4xNEM1MDUuMTcgMzk1LjUxIDUzMy42IDQxNiA1NjUuNjEgNDE2YzQxLjA4IDAgNzQuMzgtMzMuMyA3NC4zOC03NC4zOXYtNy42NGMwLTI4LjE4LTE1LjkyLTUzLjkzLTQxLjEyLTY2LjUzLTkuNDItNC43MS05LjQyLTE4LjE3LjAxLTIyLjg4elwiXVxufTtcbnZhciBmYUJvbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9uZycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjU1Y1wiLCBcIk0zMDIuNSA1MTJjMjMuMTggMCA0NC40My0xMi41OCA1Ni0zMi42NkMzNzQuNjkgNDUxLjI2IDM4NCA0MTguNzUgMzg0IDM4NGMwLTM2LjEyLTEwLjA4LTY5LjgxLTI3LjQ0LTk4LjYyTDQwMCAyNDEuOTRsOS4zOCA5LjM4YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMTEuMy0xMS4zMmM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC01Mi42OS01Mi42OWMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMTEuMzEgMTEuMzFjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsOS4zOCA5LjM4LTM5LjQxIDM5LjQxYy0xMS41Ni0xMS4zNy0yNC41My0yMS4zMy0zOC42NS0yOS41MVY2My43NGwxNS45Ny0uMDJjOC44Mi0uMDEgMTUuOTctNy4xNiAxNS45OC0xNS45OGwuMDQtMzEuNzJDMzIwIDcuMTcgMzEyLjgyLS4wMSAzMDMuOTcgMEw4MC4wMy4yNmMtOC44Mi4wMS0xNS45NyA3LjE2LTE1Ljk4IDE1Ljk4bC0uMDQgMzEuNzNjLS4wMSA4Ljg1IDcuMTcgMTYuMDIgMTYuMDIgMTYuMDFMOTYgNjMuOTZ2MTUzLjkzQzM4LjY3IDI1MS4xIDAgMzEyLjk3IDAgMzg0YzAgMzQuNzUgOS4zMSA2Ny4yNyAyNS41IDk1LjM0QzM3LjA4IDQ5OS40MiA1OC4zMyA1MTIgODEuNSA1MTJoMjIxek0xMjAuMDYgMjU5LjQzTDE0NCAyNDUuNTZWNjMuOTFsOTYtLjExdjE4MS43NmwyMy45NCAxMy44N2MyNC44MSAxNC4zNyA0NC4xMiAzNS43MyA1Ni41NiA2MC41N2gtMjU3YzEyLjQ1LTI0Ljg0IDMxLjc1LTQ2LjIgNTYuNTYtNjAuNTd6XCJdXG59O1xudmFyIGZhQm9vayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDJkXCIsIFwiTTQ0OCAzNjBWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRIOTZDNDMgMCAwIDQzIDAgOTZ2MzIwYzAgNTMgNDMgOTYgOTYgOTZoMzI4YzEzLjMgMCAyNC0xMC43IDI0LTI0di0xNmMwLTcuNS0zLjUtMTQuMy04LjktMTguNy00LjItMTUuNC00LjItNTkuMyAwLTc0LjcgNS40LTQuMyA4LjktMTEuMSA4LjktMTguNnpNMTI4IDEzNGMwLTMuMyAyLjctNiA2LTZoMjEyYzMuMyAwIDYgMi43IDYgNnYyMGMwIDMuMy0yLjcgNi02IDZIMTM0Yy0zLjMgMC02LTIuNy02LTZ2LTIwem0wIDY0YzAtMy4zIDIuNy02IDYtNmgyMTJjMy4zIDAgNiAyLjcgNiA2djIwYzAgMy4zLTIuNyA2LTYgNkgxMzRjLTMuMyAwLTYtMi43LTYtNnYtMjB6bTI1My40IDI1MEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzIgMC0xNy42IDE0LjQtMzIgMzItMzJoMjg1LjRjLTEuOSAxNy4xLTEuOSA0Ni45IDAgNjR6XCJdXG59O1xudmFyIGZhQm9va0RlYWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1kZWFkJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNmI3XCIsIFwiTTI3MiAxMzZjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTYtMTYgNy4yLTE2IDE2IDcuMiAxNiAxNiAxNnptMTc2IDIyMi40VjI1LjZjMC0xNi05LjYtMjUuNi0yNS42LTI1LjZIOTZDNDEuNiAwIDAgNDEuNiAwIDk2djMyMGMwIDU0LjQgNDEuNiA5NiA5NiA5NmgzMjYuNGMxMi44IDAgMjUuNi05LjYgMjUuNi0yNS42di0xNmMwLTYuNC0zLjItMTIuOC05LjYtMTkuMi0zLjItMTYtMy4yLTYwLjggMC03My42IDYuNC0zLjIgOS42LTkuNiA5LjYtMTkuMnpNMjQwIDU2YzQ0LjIgMCA4MCAyOC43IDgwIDY0IDAgMjAuOS0xMi43IDM5LjItMzIgNTAuOVYxODRjMCA4LjgtNy4yIDE2LTE2IDE2aC02NGMtOC44IDAtMTYtNy4yLTE2LTE2di0xMy4xYy0xOS4zLTExLjctMzItMzAtMzItNTAuOSAwLTM1LjMgMzUuOC02NCA4MC02NHpNMTI0LjggMjIzLjNsNi4zLTE0LjdjMS43LTQuMSA2LjQtNS45IDEwLjUtNC4ybDk4LjMgNDIuMSA5OC40LTQyLjFjNC4xLTEuNyA4LjguMSAxMC41IDQuMmw2LjMgMTQuN2MxLjcgNC4xLS4xIDguOC00LjIgMTAuNUwyODAuNiAyNjRsNzAuMyAzMC4xYzQuMSAxLjcgNS45IDYuNCA0LjIgMTAuNWwtNi4zIDE0LjdjLTEuNyA0LjEtNi40IDUuOS0xMC41IDQuMkwyNDAgMjgxLjRsLTk4LjMgNDIuMmMtNC4xIDEuNy04LjgtLjEtMTAuNS00LjJsLTYuMy0xNC43Yy0xLjctNC4xLjEtOC44IDQuMi0xMC41bDcwLjQtMzAuMS03MC41LTMwLjNjLTQuMS0xLjctNS45LTYuNC00LjItMTAuNXptMjU2IDIyNC43SDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODQuOHpNMjA4IDEzNmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNi0xNiA3LjItMTYgMTYgNy4yIDE2IDE2IDE2elwiXVxufTtcbnZhciBmYUJvb2tNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jvb2stbWVkaWNhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdlNlwiLCBcIk00NDggMzU4LjRWMjUuNmMwLTE2LTkuNi0yNS42LTI1LjYtMjUuNkg5NkM0MS42IDAgMCA0MS42IDAgOTZ2MzIwYzAgNTQuNCA0MS42IDk2IDk2IDk2aDMyNi40YzEyLjggMCAyNS42LTkuNiAyNS42LTI1LjZ2LTE2cTAtOS42LTkuNi0xOS4yYy0zLjItMTYtMy4yLTYwLjggMC03My42cTkuNi00LjggOS42LTE5LjJ6TTE0NCAxNjhhOCA4IDAgMCAxIDgtOGg1NnYtNTZhOCA4IDAgMCAxIDgtOGg0OGE4IDggMCAwIDEgOCA4djU2aDU2YTggOCAwIDAgMSA4IDh2NDhhOCA4IDAgMCAxLTggOGgtNTZ2NTZhOCA4IDAgMCAxLTggOGgtNDhhOCA4IDAgMCAxLTgtOHYtNTZoLTU2YTggOCAwIDAgMS04LTh6bTIzNi44IDI4MEg5NmMtMTkuMiAwLTMyLTEyLjgtMzItMzJzMTYtMzIgMzItMzJoMjg0Ljh6XCJdXG59O1xudmFyIGZhQm9va09wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9vay1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTE4XCIsIFwiTTU0Mi4yMiAzMi4wNWMtNTQuOCAzLjExLTE2My43MiAxNC40My0yMzAuOTYgNTUuNTktNC42NCAyLjg0LTcuMjcgNy44OS03LjI3IDEzLjE3djM2My44N2MwIDExLjU1IDEyLjYzIDE4Ljg1IDIzLjI4IDEzLjQ5IDY5LjE4LTM0LjgyIDE2OS4yMy00NC4zMiAyMTguNy00Ni45MiAxNi44OS0uODkgMzAuMDItMTQuNDMgMzAuMDItMzAuNjZWNjIuNzVjLjAxLTE3LjcxLTE1LjM1LTMxLjc0LTMzLjc3LTMwLjd6TTI2NC43MyA4Ny42NEMxOTcuNSA0Ni40OCA4OC41OCAzNS4xNyAzMy43OCAzMi4wNSAxNS4zNiAzMS4wMSAwIDQ1LjA0IDAgNjIuNzVWNDAwLjZjMCAxNi4yNCAxMy4xMyAyOS43OCAzMC4wMiAzMC42NiA0OS40OSAyLjYgMTQ5LjU5IDEyLjExIDIxOC43NyA0Ni45NSAxMC42MiA1LjM1IDIzLjIxLTEuOTQgMjMuMjEtMTMuNDZWMTAwLjYzYzAtNS4yOS0yLjYyLTEwLjE0LTcuMjctMTIuOTl6XCJdXG59O1xudmFyIGZhQm9va1JlYWRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rLXJlYWRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVkYVwiLCBcIk0zNTIgOTZjMC01My4wMi00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTYgNDIuOTggOTYgOTYgOTYgOTYtNDIuOTggOTYtOTZ6TTIzMy41OSAyNDEuMWMtNTkuMzMtMzYuMzItMTU1LjQzLTQ2LjMtMjAzLjc5LTQ5LjA1QzEzLjU1IDE5MS4xMyAwIDIwMy41MSAwIDIxOS4xNHYyMjIuOGMwIDE0LjMzIDExLjU5IDI2LjI4IDI2LjQ5IDI3LjA1IDQzLjY2IDIuMjkgMTMxLjk5IDEwLjY4IDE5My4wNCA0MS40MyA5LjM3IDQuNzIgMjAuNDgtMS43MSAyMC40OC0xMS44N1YyNTIuNTZjLS4wMS00LjY3LTIuMzItOC45NS02LjQyLTExLjQ2em0yNDguNjEtNDkuMDVjLTQ4LjM1IDIuNzQtMTQ0LjQ2IDEyLjczLTIwMy43OCA0OS4wNS00LjEgMi41MS02LjQxIDYuOTYtNi40MSAxMS42M3YyNDUuNzljMCAxMC4xOSAxMS4xNCAxNi42MyAyMC41NCAxMS45IDYxLjA0LTMwLjcyIDE0OS4zMi0zOS4xMSAxOTIuOTctNDEuNCAxNC45LS43OCAyNi40OS0xMi43MyAyNi40OS0yNy4wNlYyMTkuMTRjLS4wMS0xNS42My0xMy41Ni0yOC4wMS0yOS44MS0yNy4wOXpcIl1cbn07XG52YXIgZmFCb29rbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib29rbWFyaycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjAyZVwiLCBcIk0wIDUxMlY0OEMwIDIxLjQ5IDIxLjQ5IDAgNDggMGgyODhjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHY0NjRMMTkyIDQwMCAwIDUxMnpcIl1cbn07XG52YXIgZmFCb3JkZXJBbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm9yZGVyLWFsbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjg0Y1wiLCBcIk00MTYgMzJIMzJBMzIgMzIgMCAwIDAgMCA2NHYzODRhMzIgMzIgMCAwIDAgMzIgMzJoMzg0YTMyIDMyIDAgMCAwIDMyLTMyVjY0YTMyIDMyIDAgMCAwLTMyLTMyem0tMzIgNjR2MTI4SDI1NlY5NnptLTE5MiAwdjEyOEg2NFY5NnpNNjQgNDE2VjI4OGgxMjh2MTI4em0xOTIgMFYyODhoMTI4djEyOHpcIl1cbn07XG52YXIgZmFCb3JkZXJOb25lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvcmRlci1ub25lJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODUwXCIsIFwiTTI0MCAyMjRoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptOTYgMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS0yODggMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAxOTJoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptOTYgMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtOTZoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xOTJoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMjQwIDMyMGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTE5MmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tOTYgMjg4aC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2LTM4NGgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2em05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpNNDggMjI0SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMCAxOTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTk2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0xOTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTk2SDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2IDBoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwiXVxufTtcbnZhciBmYUJvcmRlclN0eWxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JvcmRlci1zdHlsZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjg1M1wiLCBcIk0yNDAgNDE2aC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS05NiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTE5MiAwaC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTk2LTE5MmgtMzJhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wIDk2aC0zMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgOTZoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0yODhoLTMyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC05NkgzMkEzMiAzMiAwIDAgMCAwIDY0djQwMGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY5NmgzNjhhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhQm93bGluZ0JhbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm93bGluZy1iYWxsJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmNDM2XCIsIFwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTEyMCAxOTJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem02NC05NmMwLTE3LjcgMTQuMy0zMiAzMi0zMnMzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMnptNDggMTQ0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIl1cbn07XG52YXIgZmFCb3ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDY2XCIsIFwiTTUwOS41IDE4NC42TDQ1OC45IDMyLjhDNDUyLjQgMTMuMiA0MzQuMSAwIDQxMy40IDBIMjcydjE5MmgyMzguN2MtLjQtMi41LS40LTUtMS4yLTcuNHpNMjQwIDBIOTguNmMtMjAuNyAwLTM5IDEzLjItNDUuNSAzMi44TDIuNSAxODQuNmMtLjggMi40LS44IDQuOS0xLjIgNy40SDI0MFYwek0wIDIyNHYyNDBjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjIyNEgwelwiXVxufTtcbnZhciBmYUJveE9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYm94LW9wZW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OWVcIiwgXCJNNDI1LjcgMjU2Yy0xNi45IDAtMzIuOC05LTQxLjQtMjMuNEwzMjAgMTI2bC02NC4yIDEwNi42Yy04LjcgMTQuNS0yNC42IDIzLjUtNDEuNSAyMy41LTQuNSAwLTktLjYtMTMuMy0xLjlMNjQgMjE1djE3OGMwIDE0LjcgMTAgMjcuNSAyNC4yIDMxbDIxNi4yIDU0LjFjMTAuMiAyLjUgMjAuOSAyLjUgMzEgMEw1NTEuOCA0MjRjMTQuMi0zLjYgMjQuMi0xNi40IDI0LjItMzFWMjE1bC0xMzcgMzkuMWMtNC4zIDEuMy04LjggMS45LTEzLjMgMS45em0yMTIuNi0xMTIuMkw1ODYuOCA0MWMtMy4xLTYuMi05LjgtOS44LTE2LjctOC45TDMyMCA2NGw5MS43IDE1Mi4xYzMuOCA2LjMgMTEuNCA5LjMgMTguNSA3LjNsMTk3LjktNTYuNWM5LjktMi45IDE0LjctMTMuOSAxMC4yLTIzLjF6TTUzLjIgNDFMMS43IDE0My44Yy00LjYgOS4yLjMgMjAuMiAxMC4xIDIzbDE5Ny45IDU2LjVjNy4xIDIgMTQuNy0xIDE4LjUtNy4zTDMyMCA2NCA2OS44IDMyLjFjLTYuOS0uOC0xMy41IDIuNy0xNi42IDguOXpcIl1cbn07XG52YXIgZmFCb3hlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdib3hlcycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjQ2OFwiLCBcIk01NjAgMjg4aC04MHY5NmwtMzItMjEuMy0zMiAyMS4zdi05NmgtODBjLTguOCAwLTE2IDcuMi0xNiAxNnYxOTJjMCA4LjggNy4yIDE2IDE2IDE2aDIyNGM4LjggMCAxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnptLTM4NC02NGgyMjRjOC44IDAgMTYtNy4yIDE2LTE2VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtODB2OTZsLTMyLTIxLjNMMjU2IDk2VjBoLTgwYy04LjggMC0xNiA3LjItMTYgMTZ2MTkyYzAgOC44IDcuMiAxNiAxNiAxNnptNjQgNjRoLTgwdjk2bC0zMi0yMS4zTDk2IDM4NHYtOTZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYxOTJjMCA4LjggNy4yIDE2IDE2IDE2aDIyNGM4LjggMCAxNi03LjIgMTYtMTZWMzA0YzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFCcmFpbGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2JyYWlsbGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyYTFcIiwgXCJNMTI4IDI1NmMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjRTMCAyOTEuMzQ2IDAgMjU2czI4LjY1NC02NCA2NC02NCA2NCAyOC42NTQgNjQgNjR6TTY0IDM4NGMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0wLTM1MkMyOC42NTQgMzIgMCA2MC42NTQgMCA5NnMyOC42NTQgNjQgNjQgNjQgNjQtMjguNjU0IDY0LTY0LTI4LjY1NC02NC02NC02NHptMTYwIDE5MmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0wIDE2MGMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0wLTM1MmMtMzUuMzQ2IDAtNjQgMjguNjU0LTY0IDY0czI4LjY1NCA2NCA2NCA2NCA2NC0yOC42NTQgNjQtNjQtMjguNjU0LTY0LTY0LTY0em0yMjQgMTkyYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTAgMTYwYy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJzMTQuMzI3IDMyIDMyIDMyIDMyLTE0LjMyNyAzMi0zMi0xNC4zMjctMzItMzItMzJ6bTAtMzUyYy0zNS4zNDYgMC02NCAyOC42NTQtNjQgNjRzMjguNjU0IDY0IDY0IDY0IDY0LTI4LjY1NCA2NC02NC0yOC42NTQtNjQtNjQtNjR6bTE2MCAxOTJjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMCAxNjBjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnptMC0zMjBjLTE3LjY3MyAwLTMyIDE0LjMyNy0zMiAzMnMxNC4zMjcgMzIgMzIgMzIgMzItMTQuMzI3IDMyLTMyLTE0LjMyNy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFCcmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicmFpbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjVkY1wiLCBcIk0yMDggMGMtMjkuOSAwLTU0LjcgMjAuNS02MS44IDQ4LjItLjggMC0xLjQtLjItMi4yLS4yLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgNC44LjYgOS41IDEuNyAxNEM1Mi41IDEzOCAzMiAxNjYuNiAzMiAyMDBjMCAxMi42IDMuMiAyNC4zIDguMyAzNC45QzE2LjMgMjQ4LjcgMCAyNzQuMyAwIDMwNGMwIDMzLjMgMjAuNCA2MS45IDQ5LjQgNzMuOS0uOSA0LjYtMS40IDkuMy0xLjQgMTQuMSAwIDM5LjggMzIuMiA3MiA3MiA3MiA0LjEgMCA4LjEtLjUgMTItMS4yIDkuNiAyOC41IDM2LjIgNDkuMiA2OCA0OS4yIDM5LjggMCA3Mi0zMi4yIDcyLTcyVjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0em0zNjggMzA0YzAtMjkuNy0xNi4zLTU1LjMtNDAuMy02OS4xIDUuMi0xMC42IDguMy0yMi4zIDguMy0zNC45IDAtMzMuNC0yMC41LTYyLTQ5LjctNzQgMS00LjUgMS43LTkuMiAxLjctMTQgMC0zNS4zLTI4LjctNjQtNjQtNjQtLjggMC0xLjUuMi0yLjIuMkM0MjIuNyAyMC41IDM5Ny45IDAgMzY4IDBjLTM1LjMgMC02NCAyOC42LTY0IDY0djM3NmMwIDM5LjggMzIuMiA3MiA3MiA3MiAzMS44IDAgNTguNC0yMC43IDY4LTQ5LjIgMy45LjcgNy45IDEuMiAxMiAxLjIgMzkuOCAwIDcyLTMyLjIgNzItNzIgMC00LjgtLjUtOS41LTEuNC0xNC4xIDI5LTEyIDQ5LjQtNDAuNiA0OS40LTczLjl6XCJdXG59O1xudmFyIGZhQnJlYWRTbGljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicmVhZC1zbGljZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjdlY1wiLCBcIk0yODggMEMxMDggMCAwIDkzLjQgMCAxNjkuMTQgMCAxOTkuNDQgMjQuMjQgMjI0IDY0IDIyNHYyNTZjMCAxNy42NyAxNi4xMiAzMiAzNiAzMmgzNzZjMTkuODggMCAzNi0xNC4zMyAzNi0zMlYyMjRjMzkuNzYgMCA2NC0yNC41NiA2NC01NC44NkM1NzYgOTMuNCA0NjggMCAyODggMHpcIl1cbn07XG52YXIgZmFCcmllZmNhc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJpZWZjYXNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGIxXCIsIFwiTTMyMCAzMzZjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTk2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNDhIMHYxNDRjMCAyNS42IDIyLjQgNDggNDggNDhoNDE2YzI1LjYgMCA0OC0yMi40IDQ4LTQ4VjI4OEgzMjB2NDh6bTE0NC0yMDhoLTgwVjgwYzAtMjUuNi0yMi40LTQ4LTQ4LTQ4SDE3NmMtMjUuNiAwLTQ4IDIyLjQtNDggNDh2NDhINDhjLTI1LjYgMC00OCAyMi40LTQ4IDQ4djgwaDUxMnYtODBjMC0yNS42LTIyLjQtNDgtNDgtNDh6bS0xNDQgMEgxOTJWOTZoMTI4djMyelwiXVxufTtcbnZhciBmYUJyaWVmY2FzZU1lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnJpZWZjYXNlLW1lZGljYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0NjlcIiwgXCJNNDY0IDEyOGgtODBWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhIMTc2Yy0yNi41IDAtNDggMjEuNS00OCA0OHY0OEg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2Mjg4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQxNmMyNi41IDAgNDgtMjEuNSA0OC00OFYxNzZjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE5MiA5NmgxMjh2MzJIMTkyVjk2em0xNjAgMjQ4YzAgNC40LTMuNiA4LTggOGgtNTZ2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NmgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDU2di01NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djU2aDU2YzQuNCAwIDggMy42IDggOHY0OHpcIl1cbn07XG52YXIgZmFCcm9hZGNhc3RUb3dlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicm9hZGNhc3QtdG93ZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1MTlcIiwgXCJNMTUwLjk0IDE5MmgzMy43M2MxMS4wMSAwIDE4LjYxLTEwLjgzIDE0Ljg2LTIxLjE4LTQuOTMtMTMuNTgtNy41NS0yNy45OC03LjU1LTQyLjgyczIuNjItMjkuMjQgNy41NS00Mi44MkMyMDMuMjkgNzQuODMgMTk1LjY4IDY0IDE4NC42NyA2NGgtMzMuNzNjLTcuMDEgMC0xMy40NiA0LjQ5LTE1LjQxIDExLjIzQzEzMC42NCA5Mi4yMSAxMjggMTA5Ljg4IDEyOCAxMjhjMCAxOC4xMiAyLjY0IDM1Ljc5IDcuNTQgNTIuNzYgMS45NCA2Ljc0IDguMzkgMTEuMjQgMTUuNCAxMS4yNHpNODkuOTIgMjMuMzRDOTUuNTYgMTIuNzIgODcuOTcgMCA3NS45NiAwSDQwLjYzYy02LjI3IDAtMTIuMTQgMy41OS0xNC43NCA5LjMxQzkuNCA0NS41NCAwIDg1LjY1IDAgMTI4YzAgMjQuNzUgMy4xMiA2OC4zMyAyNi42OSAxMTguODYgMi42MiA1LjYzIDguNDIgOS4xNCAxNC42MSA5LjE0aDM0Ljg0YzEyLjAyIDAgMTkuNjEtMTIuNzQgMTMuOTUtMjMuMzctNDkuNzgtOTMuMzItMTYuNzEtMTc4LjE1LS4xNy0yMDkuMjl6TTYxNC4wNiA5LjI5QzYxMS40NiAzLjU4IDYwNS42IDAgNTk5LjMzIDBoLTM1LjQyYy0xMS45OCAwLTE5LjY2IDEyLjY2LTE0LjAyIDIzLjI1IDE4LjI3IDM0LjI5IDQ4LjQyIDExOS40Mi4yOCAyMDkuMjMtNS43MiAxMC42OCAxLjggMjMuNTIgMTMuOTEgMjMuNTJoMzUuMjNjNi4yNyAwIDEyLjEzLTMuNTggMTQuNzMtOS4yOUM2MzAuNTcgMjEwLjQ4IDY0MCAxNzAuMzYgNjQwIDEyOHMtOS40Mi04Mi40OC0yNS45NC0xMTguNzF6TTQ4OS4wNiA2NGgtMzMuNzNjLTExLjAxIDAtMTguNjEgMTAuODMtMTQuODYgMjEuMTggNC45MyAxMy41OCA3LjU1IDI3Ljk4IDcuNTUgNDIuODJzLTIuNjIgMjkuMjQtNy41NSA0Mi44MmMtMy43NiAxMC4zNSAzLjg1IDIxLjE4IDE0Ljg2IDIxLjE4aDMzLjczYzcuMDIgMCAxMy40Ni00LjQ5IDE1LjQxLTExLjI0IDQuOS0xNi45NyA3LjUzLTM0LjY0IDcuNTMtNTIuNzYgMC0xOC4xMi0yLjY0LTM1Ljc5LTcuNTQtNTIuNzYtMS45NC02Ljc1LTguMzktMTEuMjQtMTUuNC0xMS4yNHptLTExNi4zIDEwMC4xMmM3LjA1LTEwLjI5IDExLjItMjIuNzEgMTEuMi0zNi4xMiAwLTM1LjM1LTI4LjYzLTY0LTYzLjk2LTY0LTM1LjMyIDAtNjMuOTYgMjguNjUtNjMuOTYgNjQgMCAxMy40MSA0LjE1IDI1LjgzIDExLjIgMzYuMTJsLTEzMC41IDMxMy40MWMtMy40IDguMTUuNDYgMTcuNTIgOC42MSAyMC45MmwyOS41MSAxMi4zMWM4LjE1IDMuNCAxNy41Mi0uNDYgMjAuOTEtOC42MUwyNDQuOTYgMzg0aDE1MC4wN2w0OS4yIDExOC4xNWMzLjQgOC4xNiAxMi43NiAxMi4wMSAyMC45MSA4LjYxbDI5LjUxLTEyLjMxYzguMTUtMy40IDEyLTEyLjc3IDguNjEtMjAuOTJsLTEzMC41LTMxMy40MXpNMjcxLjYyIDMyMEwzMjAgMjAzLjgxIDM2OC4zOCAzMjBoLTk2Ljc2elwiXVxufTtcbnZhciBmYUJyb29tID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Jyb29tJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTFhXCIsIFwiTTI1Ni40NyAyMTYuNzdsODYuNzMgMTA5LjE4cy0xNi42IDEwMi4zNi03Ni41NyAxNTAuMTJDMjA2LjY2IDUyMy44NSAwIDUxMC4xOSAwIDUxMC4xOXMzLjgtMjMuMTQgMTEtNTUuNDNsOTQuNjItMTEyLjE3YzMuOTctNC43LS44Ny0xMS42Mi02LjY1LTkuNWwtNjAuNCAyMi4wOWMxNC40NC00MS42NiAzMi43Mi04MC4wNCA1NC42LTk3LjQ3IDU5Ljk3LTQ3Ljc2IDE2My4zLTQwLjk0IDE2My4zLTQwLjk0ek02MzYuNTMgMzEuMDNsLTE5Ljg2LTI1Yy01LjQ5LTYuOS0xNS41Mi04LjA1LTIyLjQxLTIuNTZsLTIzMi40OCAxNzcuOC0zNC4xNC00Mi45N2MtNS4wOS02LjQxLTE1LjE0LTUuMjEtMTguNTkgMi4yMWwtMjUuMzMgNTQuNTUgODYuNzMgMTA5LjE4IDU4LjgtMTIuNDVjOC0xLjY5IDExLjQyLTExLjIgNi4zNC0xNy42bC0zNC4wOS00Mi45MiAyMzIuNDgtMTc3LjhjNi44OS01LjQ4IDguMDQtMTUuNTMgMi41NS0yMi40NHpcIl1cbn07XG52YXIgZmFCcnVzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdicnVzaCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU1ZFwiLCBcIk0zNTIgMEgzMkMxNC4zMyAwIDAgMTQuMzMgMCAzMnYyMjRoMzg0VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTAgMzIwYzAgMzUuMzUgMjguNjYgNjQgNjQgNjRoNjR2NjRjMCAzNS4zNSAyOC42NiA2NCA2NCA2NHM2NC0yOC42NSA2NC02NHYtNjRoNjRjMzUuMzQgMCA2NC0yOC42NSA2NC02NHYtMzJIMHYzMnptMTkyIDEwNGMxMy4yNSAwIDI0IDEwLjc0IDI0IDI0IDAgMTMuMjUtMTAuNzUgMjQtMjQgMjRzLTI0LTEwLjc1LTI0LTI0YzAtMTMuMjYgMTAuNzUtMjQgMjQtMjR6XCJdXG59O1xudmFyIGZhQnVnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1ZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE4OFwiLCBcIk01MTEuOTg4IDI4OC45Yy0uNDc4IDE3LjQzLTE1LjIxNyAzMS4xLTMyLjY1MyAzMS4xSDQyNHYxNmMwIDIxLjg2NC00Ljg4MiA0Mi41ODQtMTMuNiA2MS4xNDVsNjAuMjI4IDYwLjIyOGMxMi40OTYgMTIuNDk3IDEyLjQ5NiAzMi43NTggMCA0NS4yNTUtMTIuNDk4IDEyLjQ5Ny0zMi43NTkgMTIuNDk2LTQ1LjI1NiAwbC01NC43MzYtNTQuNzM2QzM0NS44ODYgNDY3Ljk2NSAzMTQuMzUxIDQ4MCAyODAgNDgwVjIzNmMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0yNGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyNDRjLTM0LjM1MSAwLTY1Ljg4Ni0xMi4wMzUtOTAuNjM2LTMyLjEwOGwtNTQuNzM2IDU0LjczNmMtMTIuNDk4IDEyLjQ5Ny0zMi43NTkgMTIuNDk2LTQ1LjI1NiAwLTEyLjQ5Ni0xMi40OTctMTIuNDk2LTMyLjc1OCAwLTQ1LjI1NWw2MC4yMjgtNjAuMjI4QzkyLjg4MiAzNzguNTg0IDg4IDM1Ny44NjQgODggMzM2di0xNkgzMi42NjZDMTUuMjMgMzIwIC40OTEgMzA2LjMzLjAxMyAyODguOS0uNDg0IDI3MC44MTYgMTQuMDI4IDI1NiAzMiAyNTZoNTZ2LTU4Ljc0NWwtNDYuNjI4LTQ2LjYyOGMtMTIuNDk2LTEyLjQ5Ny0xMi40OTYtMzIuNzU4IDAtNDUuMjU1IDEyLjQ5OC0xMi40OTcgMzIuNzU4LTEyLjQ5NyA0NS4yNTYgMEwxNDEuMjU1IDE2MGgyMjkuNDg5bDU0LjYyNy01NC42MjdjMTIuNDk4LTEyLjQ5NyAzMi43NTgtMTIuNDk3IDQ1LjI1NiAwIDEyLjQ5NiAxMi40OTcgMTIuNDk2IDMyLjc1OCAwIDQ1LjI1NUw0MjQgMTk3LjI1NVYyNTZoNTZjMTcuOTcyIDAgMzIuNDg0IDE0LjgxNiAzMS45ODggMzIuOXpNMjU3IDBjLTYxLjg1NiAwLTExMiA1MC4xNDQtMTEyIDExMmgyMjRDMzY5IDUwLjE0NCAzMTguODU2IDAgMjU3IDB6XCJdXG59O1xudmFyIGZhQnVpbGRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVpbGRpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxYWRcIiwgXCJNNDM2IDQ4MGgtMjBWMjRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDU2QzQyLjc0NSAwIDMyIDEwLjc0NSAzMiAyNHY0NTZIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjBoNDQ4di0yMGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyek0xMjggNzZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwYzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEyVjc2em0wIDk2YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtNDB6bTUyIDE0OGgtNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTQwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoNDBjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyem03NiAxNjBoLTY0di04NGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2ODR6bTY0LTE3MmMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC00MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtNDBjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwem0wLTk2YzAgNi42MjctNS4zNzMgMTItMTIgMTJoLTQwYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi00MGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDB6bTAtOTZjMCA2LjYyNy01LjM3MyAxMi0xMiAxMmgtNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJWNzZjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQwelwiXVxufTtcbnZhciBmYUJ1bGxob3JuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1bGxob3JuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMGExXCIsIFwiTTU3NiAyNDBjMC0yMy42My0xMi45NS00NC4wNC0zMi01NS4xMlYzMi4wMUM1NDQgMjMuMjYgNTM3LjAyIDAgNTEyIDBjLTcuMTIgMC0xNC4xOSAyLjM4LTE5Ljk4IDcuMDJsLTg1LjAzIDY4LjAzQzM2NC4yOCAxMDkuMTkgMzEwLjY2IDEyOCAyNTYgMTI4SDY0Yy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0djk2YzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzMuN2MtMS4zOSAxMC40OC0yLjE4IDIxLjE0LTIuMTggMzIgMCAzOS43NyA5LjI2IDc3LjM1IDI1LjU2IDExMC45NCA1LjE5IDEwLjY5IDE2LjUyIDE3LjA2IDI4LjQgMTcuMDZoNzQuMjhjMjYuMDUgMCA0MS42OS0yOS44NCAyNS45LTUwLjU2LTE2LjQtMjEuNTItMjYuMTUtNDguMzYtMjYuMTUtNzcuNDQgMC0xMS4xMSAxLjYyLTIxLjc5IDQuNDEtMzJIMjU2YzU0LjY2IDAgMTA4LjI4IDE4LjgxIDE1MC45OCA1Mi45NWw4NS4wMyA2OC4wM2EzMi4wMjMgMzIuMDIzIDAgMCAwIDE5Ljk4IDcuMDJjMjQuOTIgMCAzMi0yMi43OCAzMi0zMlYyOTUuMTNDNTYzLjA1IDI4NC4wNCA1NzYgMjYzLjYzIDU3NiAyNDB6bS05NiAxNDEuNDJsLTMzLjA1LTI2LjQ0QzM5Mi45NSAzMTEuNzggMzI1LjEyIDI4OCAyNTYgMjg4di05NmM2OS4xMiAwIDEzNi45NS0yMy43OCAxOTAuOTUtNjYuOThMNDgwIDk4LjU4djI4Mi44NHpcIl1cbn07XG52YXIgZmFCdWxsc2V5ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidWxsc2V5ZScsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjE0MFwiLCBcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em0wIDQzMmMtMTAxLjY5IDAtMTg0LTgyLjI5LTE4NC0xODQgMC0xMDEuNjkgODIuMjktMTg0IDE4NC0xODQgMTAxLjY5IDAgMTg0IDgyLjI5IDE4NCAxODQgMCAxMDEuNjktODIuMjkgMTg0LTE4NCAxODR6bTAtMzEyYy03MC42OSAwLTEyOCA1Ny4zMS0xMjggMTI4czU3LjMxIDEyOCAxMjggMTI4IDEyOC01Ny4zMSAxMjgtMTI4LTU3LjMxLTEyOC0xMjgtMTI4em0wIDE5MmMtMzUuMjkgMC02NC0yOC43MS02NC02NHMyOC43MS02NCA2NC02NCA2NCAyOC43MSA2NCA2NC0yOC43MSA2NC02NCA2NHpcIl1cbn07XG52YXIgZmFCdXJuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2J1cm4nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0NmFcIiwgXCJNMTkyIDBDNzkuNyAxMDEuMyAwIDIyMC45IDAgMzAwLjUgMCA0MjUgNzkgNTEyIDE5MiA1MTJzMTkyLTg3IDE5Mi0yMTEuNWMwLTc5LjktODAuMi0xOTkuNi0xOTItMzAwLjV6bTAgNDQ4Yy01Ni41IDAtOTYtMzktOTYtOTQuOCAwLTEzLjUgNC42LTYxLjUgOTYtMTYxLjIgOTEuNCA5OS43IDk2IDE0Ny43IDk2IDE2MS4yIDAgNTUuOC0zOS41IDk0LjgtOTYgOTQuOHpcIl1cbn07XG52YXIgZmFCdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnYnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjA3XCIsIFwiTTQ4OCAxMjhoLThWODBjMC00NC44LTk5LjItODAtMjI0LTgwUzMyIDM1LjIgMzIgODB2NDhoLThjLTEzLjI1IDAtMjQgMTAuNzQtMjQgMjR2ODBjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGg4djE2MGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoMTkydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoNi40YzE2IDAgMjUuNi0xMi44IDI1LjYtMjUuNlYyNTZoOGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di04MGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0ek0xMTIgNDAwYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xNi0xMTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJWMTI4YzAtMTcuNjcgMTQuMzMtMzIgMzItMzJoMjU2YzE3LjY3IDAgMzIgMTQuMzMgMzIgMzJ2MTI4YzAgMTcuNjctMTQuMzMgMzItMzIgMzJIMTI4em0yNzIgMTEyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYUJ1c0FsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidXMtYWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTVlXCIsIFwiTTQ4OCAxMjhoLThWODBjMC00NC44LTk5LjItODAtMjI0LTgwUzMyIDM1LjIgMzIgODB2NDhoLThjLTEzLjI1IDAtMjQgMTAuNzQtMjQgMjR2ODBjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGg4djE2MGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoMTkydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoNi40YzE2IDAgMjUuNi0xMi44IDI1LjYtMjUuNlYyNTZoOGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di04MGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0ek0xNjAgNzJjMC00LjQyIDMuNTgtOCA4LThoMTc2YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDE2OGMtNC40MiAwLTgtMy41OC04LThWNzJ6bS00OCAzMjhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTEyOC0xMTJIMTI4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMydi05NmMwLTE3LjY3IDE0LjMzLTMyIDMyLTMyaDExMnYxNjB6bTMyIDBWMTI4aDExMmMxNy42NyAwIDMyIDE0LjMzIDMyIDMydjk2YzAgMTcuNjctMTQuMzMgMzItMzIgMzJIMjcyem0xMjggMTEyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYUJ1c2luZXNzVGltZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdidXNpbmVzcy10aW1lJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjRhXCIsIFwiTTQ5NiAyMjRjLTc5LjU5IDAtMTQ0IDY0LjQxLTE0NCAxNDRzNjQuNDEgMTQ0IDE0NCAxNDQgMTQ0LTY0LjQxIDE0NC0xNDQtNjQuNDEtMTQ0LTE0NC0xNDR6bTY0IDE1MC4yOWMwIDUuMzQtNC4zNyA5LjcxLTkuNzEgOS43MWgtNjAuNTdjLTUuMzQgMC05LjcxLTQuMzctOS43MS05Ljcxdi03Ni41N2MwLTUuMzQgNC4zNy05LjcxIDkuNzEtOS43MWgxMi41N2M1LjM0IDAgOS43MSA0LjM3IDkuNzEgOS43MVYzNTJoMzguMjljNS4zNCAwIDkuNzEgNC4zNyA5LjcxIDkuNzF2MTIuNTh6TTQ5NiAxOTJjNS40IDAgMTAuNzIuMzMgMTYgLjgxVjE0NGMwLTI1LjYtMjIuNC00OC00OC00OGgtODBWNDhjMC0yNS42LTIyLjQtNDgtNDgtNDhIMTc2Yy0yNS42IDAtNDggMjIuNC00OCA0OHY0OEg0OGMtMjUuNiAwLTQ4IDIyLjQtNDggNDh2ODBoMzk1LjEyYzI4LjYtMjAuMDkgNjMuMzUtMzIgMTAwLjg4LTMyek0zMjAgOTZIMTkyVjY0aDEyOHYzMnptNi44MiAyMjRIMjA4Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNDhIMHYxNDRjMCAyNS42IDIyLjQgNDggNDggNDhoMjkxLjQzQzMyNy4xIDQyMy45NiAzMjAgMzk2LjgyIDMyMCAzNjhjMC0xNi42NiAyLjQ4LTMyLjcyIDYuODItNDh6XCJdXG59O1xudmFyIGZhQ2FsY3VsYXRvciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxjdWxhdG9yJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMWVjXCIsIFwiTTQwMCAwSDQ4QzIyLjQgMCAwIDIyLjQgMCA0OHY0MTZjMCAyNS42IDIyLjQgNDggNDggNDhoMzUyYzI1LjYgMCA0OC0yMi40IDQ4LTQ4VjQ4YzAtMjUuNi0yMi40LTQ4LTQ4LTQ4ek0xMjggNDM1LjJjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44SDc2LjhjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHptMC0xMjhjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44SDc2LjhjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHptMTI4IDEyOGMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhoLTM4LjRjLTYuNCAwLTEyLjgtNi40LTEyLjgtMTIuOHYtMzguNGMwLTYuNCA2LjQtMTIuOCAxMi44LTEyLjhoMzguNGM2LjQgMCAxMi44IDYuNCAxMi44IDEyLjh2MzguNHptMC0xMjhjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjRjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjR6bTEyOCAxMjhjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjhWMjY4LjhjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djE2Ni40em0wLTI1NmMwIDYuNC02LjQgMTIuOC0xMi44IDEyLjhINzYuOGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44Vjc2LjhDNjQgNzAuNCA3MC40IDY0IDc2LjggNjRoMjk0LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djEwMi40elwiXVxufTtcbnZhciBmYUNhbGVuZGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbGVuZGFyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTMzXCIsIFwiTTEyIDE5Mmg0MjRjNi42IDAgMTIgNS40IDEyIDEydjI2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMjA0YzAtNi42IDUuNC0xMiAxMi0xMnptNDM2LTQ0di0zNmMwLTI2LjUtMjEuNS00OC00OC00OGgtNDhWMTJjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjUySDE2MFYxMmMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NTJINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2MzZjMCA2LjYgNS40IDEyIDEyIDEyaDQyNGM2LjYgMCAxMi01LjQgMTItMTJ6XCJdXG59O1xudmFyIGZhQ2FsZW5kYXJBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXItYWx0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDczXCIsIFwiTTAgNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYxOTJIMHYyNzJ6bTMyMC0xOTZjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwem0wIDEyOGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6TTE5MiAyNjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwem0wIDEyOGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6TTY0IDI2OGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMkg3NmMtNi42IDAtMTItNS40LTEyLTEydi00MHptMCAxMjhjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJINzZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6TTQwMCA2NGgtNDhWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDE2MFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2NDhoNDQ4di00OGMwLTI2LjUtMjEuNS00OC00OC00OHpcIl1cbn07XG52YXIgZmFDYWxlbmRhckNoZWNrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbGVuZGFyLWNoZWNrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjc0XCIsIFwiTTQzNiAxNjBIMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTM2YzAtMjYuNTEgMjEuNDktNDggNDgtNDhoNDhWMTJjMC02LjYyNyA1LjM3My0xMiAxMi0xMmg0MGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjUyaDEyOFYxMmMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDQwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NTJoNDhjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNmMwIDYuNjI3LTUuMzczIDEyLTEyIDEyek0xMiAxOTJoNDI0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjYwYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMjA0YzAtNi42MjcgNS4zNzMtMTIgMTItMTJ6bTMzMy4yOTYgOTUuOTQ3bC0yOC4xNjktMjguMzk4Yy00LjY2Ny00LjcwNS0xMi4yNjUtNC43MzYtMTYuOTctLjA2OEwxOTQuMTIgMzY0LjY2NWwtNDUuOTgtNDYuMzUyYy00LjY2Ny00LjcwNS0xMi4yNjYtNC43MzYtMTYuOTcxLS4wNjhsLTI4LjM5NyAyOC4xN2MtNC43MDUgNC42NjctNC43MzYgMTIuMjY1LS4wNjggMTYuOTdsODIuNjAxIDgzLjI2OWM0LjY2NyA0LjcwNSAxMi4yNjUgNC43MzYgMTYuOTcuMDY4bDE0Mi45NTMtMTQxLjgwNWM0LjcwNS00LjY2NyA0LjczNi0xMi4yNjUuMDY4LTE2Ljk3elwiXVxufTtcbnZhciBmYUNhbGVuZGFyRGF5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbGVuZGFyLWRheScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjc4M1wiLCBcIk0wIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTkySDB2Mjcyem02NC0xOTJjMC04LjggNy4yLTE2IDE2LTE2aDk2YzguOCAwIDE2IDcuMiAxNiAxNnY5NmMwIDguOC03LjIgMTYtMTYgMTZIODBjLTguOCAwLTE2LTcuMi0xNi0xNnYtOTZ6TTQwMCA2NGgtNDhWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDE2MFYxNmMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NDhINDhDMjEuNSA2NCAwIDg1LjUgMCAxMTJ2NDhoNDQ4di00OGMwLTI2LjUtMjEuNS00OC00OC00OHpcIl1cbn07XG52YXIgZmFDYWxlbmRhck1pbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbGVuZGFyLW1pbnVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjcyXCIsIFwiTTQzNiAxNjBIMTJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhoNDhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1MmgxMjhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1Mmg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHYzNmMwIDYuNi01LjQgMTItMTIgMTJ6TTEyIDE5Mmg0MjRjNi42IDAgMTIgNS40IDEyIDEydjI2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMjA0YzAtNi42IDUuNC0xMiAxMi0xMnptMzA0IDE5MmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMkgxMzJjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMTg0elwiXVxufTtcbnZhciBmYUNhbGVuZGFyUGx1cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci1wbHVzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjcxXCIsIFwiTTQzNiAxNjBIMTJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzZjMC0yNi41IDIxLjUtNDggNDgtNDhoNDhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1MmgxMjhWMTJjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY1Mmg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHYzNmMwIDYuNi01LjQgMTItMTIgMTJ6TTEyIDE5Mmg0MjRjNi42IDAgMTIgNS40IDEyIDEydjI2MGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMjA0YzAtNi42IDUuNC0xMiAxMi0xMnptMzE2IDE0MGMwLTYuNi01LjQtMTItMTItMTJoLTYwdi02MGMwLTYuNi01LjQtMTItMTItMTJoLTQwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NjBoLTYwYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDYwdjYwYzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTYwaDYwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDB6XCJdXG59O1xudmFyIGZhQ2FsZW5kYXJUaW1lcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYWxlbmRhci10aW1lcycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI3M1wiLCBcIk00MzYgMTYwSDEyYy02LjYgMC0xMi01LjQtMTItMTJ2LTM2YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoMTI4VjEyYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NTJoNDhjMjYuNSAwIDQ4IDIxLjUgNDggNDh2MzZjMCA2LjYtNS40IDEyLTEyIDEyek0xMiAxOTJoNDI0YzYuNiAwIDEyIDUuNCAxMiAxMnYyNjBjMCAyNi41LTIxLjUgNDgtNDggNDhINDhjLTI2LjUgMC00OC0yMS41LTQ4LTQ4VjIwNGMwLTYuNiA1LjQtMTIgMTItMTJ6bTI1Ny4zIDE2MGw0OC4xLTQ4LjFjNC43LTQuNyA0LjctMTIuMyAwLTE3bC0yOC4zLTI4LjNjLTQuNy00LjctMTIuMy00LjctMTcgMEwyMjQgMzA2LjdsLTQ4LjEtNDguMWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwbC0yOC4zIDI4LjNjLTQuNyA0LjctNC43IDEyLjMgMCAxN2w0OC4xIDQ4LjEtNDguMSA0OC4xYy00LjcgNC43LTQuNyAxMi4zIDAgMTdsMjguMyAyOC4zYzQuNyA0LjcgMTIuMyA0LjcgMTcgMGw0OC4xLTQ4LjEgNDguMSA0OC4xYzQuNyA0LjcgMTIuMyA0LjcgMTcgMGwyOC4zLTI4LjNjNC43LTQuNyA0LjctMTIuMyAwLTE3TDI2OS4zIDM1MnpcIl1cbn07XG52YXIgZmFDYWxlbmRhcldlZWsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FsZW5kYXItd2VlaycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjc4NFwiLCBcIk0wIDQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTkySDB2Mjcyem02NC0xOTJjMC04LjggNy4yLTE2IDE2LTE2aDI4OGM4LjggMCAxNiA3LjIgMTYgMTZ2NjRjMCA4LjgtNy4yIDE2LTE2IDE2SDgwYy04LjggMC0xNi03LjItMTYtMTZ2LTY0ek00MDAgNjRoLTQ4VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgxNjBWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjQ4aDQ0OHYtNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJdXG59O1xudmFyIGZhQ2FtZXJhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbWVyYScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAzMFwiLCBcIk01MTIgMTQ0djI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDg4bDEyLjMtMzIuOWM3LTE4LjcgMjQuOS0zMS4xIDQ0LjktMzEuMWgxMjUuNWMyMCAwIDM3LjkgMTIuNCA0NC45IDMxLjFMMzc2IDk2aDg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek0zNzYgMjg4YzAtNjYuMi01My44LTEyMC0xMjAtMTIwcy0xMjAgNTMuOC0xMjAgMTIwIDUzLjggMTIwIDEyMCAxMjAgMTIwLTUzLjggMTIwLTEyMHptLTMyIDBjMCA0OC41LTM5LjUgODgtODggODhzLTg4LTM5LjUtODgtODggMzkuNS04OCA4OC04OCA4OCAzOS41IDg4IDg4elwiXVxufTtcbnZhciBmYUNhbWVyYVJldHJvID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbWVyYS1yZXRybycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA4M1wiLCBcIk00OCAzMkMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDhINDh6bTAgMzJoMTA2YzMuMyAwIDYgMi43IDYgNnYyMGMwIDMuMy0yLjcgNi02IDZIMzhjLTMuMyAwLTYtMi43LTYtNlY4MGMwLTguOCA3LjItMTYgMTYtMTZ6bTQyNiA5NkgzOGMtMy4zIDAtNi0yLjctNi02di0zNmMwLTMuMyAyLjctNiA2LTZoMTM4bDMwLjItNDUuM2MxLjEtMS43IDMtMi43IDUtMi43SDQ2NGM4LjggMCAxNiA3LjIgMTYgMTZ2NzRjMCAzLjMtMi43IDYtNiA2ek0yNTYgNDI0Yy02Ni4yIDAtMTIwLTUzLjgtMTIwLTEyMHM1My44LTEyMCAxMjAtMTIwIDEyMCA1My44IDEyMCAxMjAtNTMuOCAxMjAtMTIwIDEyMHptMC0yMDhjLTQ4LjUgMC04OCAzOS41LTg4IDg4czM5LjUgODggODggODggODgtMzkuNSA4OC04OC0zOS41LTg4LTg4LTg4em0tNDggMTA0Yy04LjggMC0xNi03LjItMTYtMTYgMC0zNS4zIDI4LjctNjQgNjQtNjQgOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZjLTE3LjYgMC0zMiAxNC40LTMyIDMyIDAgOC44LTcuMiAxNi0xNiAxNnpcIl1cbn07XG52YXIgZmFDYW1wZ3JvdW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhbXBncm91bmQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2YmJcIiwgXCJNNjI0IDQ0OGgtMjQuNjhMMzU5LjU0IDExNy43NWw1My40MS03My41NWM1LjE5LTcuMTUgMy42MS0xNy4xNi0zLjU0LTIyLjM1bC0yNS45LTE4Ljc5Yy03LjE1LTUuMTktMTcuMTUtMy42MS0yMi4zNSAzLjU1TDMyMCA2My4zIDI3OC44MyA2LjZjLTUuMTktNy4xNS0xNS4yLTguNzQtMjIuMzUtMy41NWwtMjUuODggMTguOGMtNy4xNSA1LjE5LTguNzQgMTUuMi0zLjU0IDIyLjM1bDUzLjQxIDczLjU1TDQwLjY4IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjA4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNMzIwIDI4OGwxMTYuMzYgMTYwSDIwMy42NEwzMjAgMjg4elwiXVxufTtcbnZhciBmYUNhbmR5Q2FuZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYW5keS1jYW5lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzg2XCIsIFwiTTQ5Ny41IDkyQzQ2OS42IDMzLjEgNDExLjggMCAzNTIuNCAwYy0yNy45IDAtNTYuMiA3LjMtODEuOCAyMi42TDI0My4xIDM5Yy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOWwzMi44IDU0LjljNiAxMCAxNi42IDE1LjYgMjcuNSAxNS42IDUuNiAwIDExLjItMS41IDE2LjQtNC41bDI3LjUtMTYuNGM1LjEtMy4xIDEwLjgtNC41IDE2LjQtNC41IDEwLjkgMCAyMS41IDUuNiAyNy41IDE1LjYgOS4xIDE1LjEgNC4xIDM0LjgtMTEgNDMuOUwxNS42IDM5Ny42Yy0xNS4yIDkuMS0yMC4xIDI4LjctMTEgNDMuOWwzMi44IDU0LjljNiAxMCAxNi42IDE1LjYgMjcuNSAxNS42IDUuNiAwIDExLjItMS41IDE2LjQtNC41TDQyOC42IDMwMWM3MS43LTQyLjkgMTA0LjYtMTMzLjUgNjguOS0yMDl6bS0xNzcuNyAxM2wtMi41IDEuNUwyOTYuOCA0NWM5LjctNC43IDE5LjgtOC4xIDMwLjMtMTAuMmwyMC42IDYxLjhjLTkuOC44LTE5LjQgMy4zLTI3LjkgOC40ek0xNDUuOSA0MzEuOGwtNjAuNS0zOC41IDMwLjgtMTguMyA2MC41IDM4LjUtMzAuOCAxOC4zem0xMDcuNS02My45bC02MC41LTM4LjUgMzAuOC0xOC4zIDYwLjUgMzguNS0zMC44IDE4LjN6TTM2NC4zIDMwMmwtNjAuNS0zOC41IDMwLjgtMTguMyA2MC41IDM4LjUtMzAuOCAxOC4zem0yMC40LTE5Ny4zbDQ2LTQ2YzguNCA2LjUgMTYgMTQuMSAyMi42IDIyLjZMNDA3LjYgMTI3Yy01LjctOS4zLTEzLjctMTYuOS0yMi45LTIyLjN6bTgyLjEgMTA3LjhsLTU5LjUtMTkuOGMzLjItNS4zIDUuOC0xMC45IDcuNC0xNy4xIDEuMS00LjUgMS43LTkuMSAxLjgtMTMuNmw2MC40IDIwLjFjLTIuMSAxMC40LTUuNSAyMC42LTEwLjEgMzAuNHpcIl1cbn07XG52YXIgZmFDYW5uYWJpcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYW5uYWJpcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU1ZlwiLCBcIk01MDMuNDcgMzYwLjI1Yy0xLjU2LS44Mi0zMi4zOS0xNi44OS03Ni43OC0yNS44MSA2NC4yNS03NS4xMiA4NC4wNS0xNjEuNjcgODQuOTMtMTY1LjY0IDEuMTgtNS4zMy0uNDQtMTAuOS00LjMtMTQuNzctMy4wMy0zLjA0LTcuMTItNC43LTExLjMyLTQuNy0xLjE0IDAtMi4yOS4xMi0zLjQ0LjM4LTMuODguODUtODYuNTQgMTkuNTktMTYwLjU4IDc5Ljc2LjAxLTEuNDYuMDEtMi45My4wMS00LjQgMC0xMTguNzktNTkuOTgtMjEzLjcyLTYyLjUzLTIxNy43QTE1Ljk3MyAxNS45NzMgMCAwIDAgMjU2IDBjLTUuNDUgMC0xMC41MyAyLjc4LTEzLjQ3IDcuMzctMi41NSAzLjk4LTYyLjUzIDk4LjkxLTYyLjUzIDIxNy43IDAgMS40Ny4wMSAyLjk0LjAxIDQuNC03NC4wMy02MC4xNi0xNTYuNjktNzguOS0xNjAuNTgtNzkuNzYtMS4xNC0uMjUtMi4yOS0uMzgtMy40NC0uMzgtNC4yIDAtOC4yOSAxLjY2LTExLjMyIDQuN0ExNS45ODYgMTUuOTg2IDAgMCAwIC4zOCAxNjguOGMuODggMy45NyAyMC42OCA5MC41MiA4NC45MyAxNjUuNjQtNDQuMzkgOC45Mi03NS4yMSAyNC45OS03Ni43OCAyNS44MWExNi4wMDMgMTYuMDAzIDAgMCAwLS4wMiAyOC4yOWMyLjQ1IDEuMjkgNjAuNzYgMzEuNzIgMTMzLjQ5IDMxLjcyIDYuMTQgMCAxMS45Ni0uMSAxNy41LS4zMS0xMS4zNyAyMi4yMy0xNi41MiAzOC4zMS0xNi44MSAzOS4yMi0xLjggNS42OC0uMjkgMTEuODkgMy45MSAxNi4xMWExNi4wMTkgMTYuMDE5IDAgMCAwIDE2LjEgMy45OWMxLjgzLS41NyAzNy43Mi0xMS45OSA3Ny4zLTM5LjI5VjUwNGMwIDQuNDIgMy41OCA4IDggOGgxNmM0LjQyIDAgOC0zLjU4IDgtOHYtNjQuMDFjMzkuNTggMjcuMyA3NS40NyAzOC43MSA3Ny4zIDM5LjI5YTE2LjAxOSAxNi4wMTkgMCAwIDAgMTYuMS0zLjk5YzQuMi00LjIyIDUuNzEtMTAuNDMgMy45MS0xNi4xMS0uMjktLjkxLTUuNDUtMTYuOTktMTYuODEtMzkuMjIgNS41NC4yMSAxMS4zNy4zMSAxNy41LjMxIDcyLjcyIDAgMTMxLjA0LTMwLjQzIDEzMy40OS0zMS43MiA1LjI0LTIuNzggOC41Mi04LjIyIDguNTEtMTQuMTUtLjAxLTUuOTQtMy4yOS0xMS4zOS04LjUzLTE0LjE1elwiXVxufTtcbnZhciBmYUNhcHN1bGVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcHN1bGVzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNDZiXCIsIFwiTTU1NS4zIDMwMC4xTDQyNC4yIDExMi44QzQwMS45IDgxIDM2Ni40IDY0IDMzMC40IDY0Yy0yMi42IDAtNDUuNSA2LjctNjUuNSAyMC43LTE5LjcgMTMuOC0zMy43IDMyLjgtNDEuNSA1My44QzIyMC41IDc5LjIgMTcyIDMyIDExMiAzMiA1MC4xIDMyIDAgODIuMSAwIDE0NHYyMjRjMCA2MS45IDUwLjEgMTEyIDExMiAxMTJzMTEyLTUwLjEgMTEyLTExMlYyMTguOWMzLjMgOC42IDcuMyAxNy4xIDEyLjggMjVMMzY4IDQzMS4yYzIyLjIgMzEuOCA1Ny43IDQ4LjggOTMuOCA0OC44IDIyLjcgMCA0NS41LTYuNyA2NS41LTIwLjcgNTEuNy0zNi4yIDY0LjItMTA3LjUgMjgtMTU5LjJ6TTE2MCAyNTZINjRWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2MTEyem0xOTQuOCA0NC45bC02NS42LTkzLjdjLTcuNy0xMS0xMC43LTI0LjQtOC4zLTM3LjYgMi4zLTEzLjIgOS43LTI0LjggMjAuNy0zMi41IDguNS02IDE4LjUtOS4xIDI4LjgtOS4xIDE2LjUgMCAzMS45IDggNDEuMyAyMS41bDY1LjYgOTMuNy04Mi41IDU3Ljd6XCJdXG59O1xudmFyIGZhQ2FyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFiOVwiLCBcIk00OTkuOTkgMTc2aC01OS44N2wtMTYuNjQtNDEuNkM0MDYuMzggOTEuNjMgMzY1LjU3IDY0IDMxOS41IDY0aC0xMjdjLTQ2LjA2IDAtODYuODggMjcuNjMtMTAzLjk5IDcwLjRMNzEuODcgMTc2SDEyLjAxQzQuMiAxNzYtMS41MyAxODMuMzQuMzcgMTkwLjkxbDYgMjRDNy43IDIyMC4yNSAxMi41IDIyNCAxOC4wMSAyMjRoMjAuMDdDMjQuNjUgMjM1LjczIDE2IDI1Mi43OCAxNiAyNzJ2NDhjMCAxNi4xMiA2LjE2IDMwLjY3IDE2IDQxLjkzVjQxNmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyaDI1NnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTU0LjA3YzkuODQtMTEuMjUgMTYtMjUuOCAxNi00MS45M3YtNDhjMC0xOS4yMi04LjY1LTM2LjI3LTIyLjA3LTQ4SDQ5NGM1LjUxIDAgMTAuMzEtMy43NSAxMS42NC05LjA5bDYtMjRjMS44OS03LjU3LTMuODQtMTQuOTEtMTEuNjUtMTQuOTF6bS0zNTIuMDYtMTcuODNjNy4yOS0xOC4yMiAyNC45NC0zMC4xNyA0NC41Ny0zMC4xN2gxMjdjMTkuNjMgMCAzNy4yOCAxMS45NSA0NC41NyAzMC4xN0wzODQgMjA4SDEyOGwxOS45My00OS44M3pNOTYgMzE5LjhjLTE5LjIgMC0zMi0xMi43Ni0zMi0zMS45Uzc2LjggMjU2IDk2IDI1NnM0OCAyOC43MSA0OCA0Ny44NS0yOC44IDE1Ljk1LTQ4IDE1Ljk1em0zMjAgMGMtMTkuMiAwLTQ4IDMuMTktNDgtMTUuOTVTMzk2LjggMjU2IDQxNiAyNTZzMzIgMTIuNzYgMzIgMzEuOS0xMi44IDMxLjktMzIgMzEuOXpcIl1cbn07XG52YXIgZmFDYXJBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyLWFsdCcsXG4gIGljb246IFs0ODAsIDUxMiwgW10sIFwiZjVkZVwiLCBcIk00MzguNjYgMjEyLjMzbC0xMS4yNC0yOC4xLTE5LjkzLTQ5LjgzQzM5MC4zOCA5MS42MyAzNDkuNTcgNjQgMzAzLjUgNjRoLTEyN2MtNDYuMDYgMC04Ni44OCAyNy42My0xMDMuOTkgNzAuNGwtMTkuOTMgNDkuODMtMTEuMjQgMjguMUMxNy4yMiAyMjEuNSAwIDI0NC42NiAwIDI3MnY0OGMwIDE2LjEyIDYuMTYgMzAuNjcgMTYgNDEuOTNWNDE2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoMjU2djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNTQuMDdjOS44NC0xMS4yNSAxNi0yNS44IDE2LTQxLjkzdi00OGMwLTI3LjM0LTE3LjIyLTUwLjUtNDEuMzQtNTkuNjd6bS0zMDYuNzMtNTQuMTZjNy4yOS0xOC4yMiAyNC45NC0zMC4xNyA0NC41Ny0zMC4xN2gxMjdjMTkuNjMgMCAzNy4yOCAxMS45NSA0NC41NyAzMC4xN0wzNjggMjA4SDExMmwxOS45My00OS44M3pNODAgMzE5LjhjLTE5LjIgMC0zMi0xMi43Ni0zMi0zMS45UzYwLjggMjU2IDgwIDI1NnM0OCAyOC43MSA0OCA0Ny44NS0yOC44IDE1Ljk1LTQ4IDE1Ljk1em0zMjAgMGMtMTkuMiAwLTQ4IDMuMTktNDgtMTUuOTVTMzgwLjggMjU2IDQwMCAyNTZzMzIgMTIuNzYgMzIgMzEuOS0xMi44IDMxLjktMzIgMzEuOXpcIl1cbn07XG52YXIgZmFDYXJCYXR0ZXJ5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nhci1iYXR0ZXJ5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWRmXCIsIFwiTTQ4MCAxMjhoLTMyVjgwYzAtOC44NC03LjE2LTE2LTE2LTE2aC05NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhIMTkyVjgwYzAtOC44NC03LjE2LTE2LTE2LTE2SDgwYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYyNTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxNjBjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMTkyIDI2NGMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDExMmM0LjQyIDAgOCAzLjU4IDggOHYxNnptMjU2IDBjMCA0LjQyLTMuNTggOC04IDhoLTQwdjQwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTQwaC00MGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDQwdi00MGMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHY0MGg0MGM0LjQyIDAgOCAzLjU4IDggOHYxNnpcIl1cbn07XG52YXIgZmFDYXJDcmFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItY3Jhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1ZTFcIiwgXCJNMTQzLjI1IDIyMC44MWwtMTIuNDIgNDYuMzdjLTMuMDEgMTEuMjUtMy42MyAyMi44OS0yLjQxIDM0LjM5bC0zNS4yIDI4Ljk4Yy02LjU3IDUuNDEtMTYuMzEtLjQzLTE0LjYyLTguNzdsMTUuNDQtNzYuNjhjMS4wNi01LjI2LTIuNjYtMTAuMjgtOC0xMC43OWwtNzcuODYtNy41NWMtOC40Ny0uODItMTEuMjMtMTEuODMtNC4xNC0xNi41NGw2NS4xNS00My4zYzQuNDYtMi45NyA1LjM4LTkuMTUgMS45OC0xMy4yOUwyMS40NiA5My4yMmMtNS40MS02LjU3LjQzLTE2LjMgOC43OC0xNC42Mmw3Ni42OCAxNS40NGM1LjI2IDEuMDYgMTAuMjgtMi42NiAxMC44LThsNy41NS03Ny44NmMuODItOC40OCAxMS44My0xMS4yMyAxNi41NS00LjE0bDQzLjMgNjUuMTRjMi45NyA0LjQ2IDkuMTUgNS4zOCAxMy4yOSAxLjk4bDYwLjQtNDkuNzFjNi41Ny01LjQxIDE2LjMuNDMgMTQuNjIgOC43N0wyNjIuMSA4Ni4zOGMtMi43MSAzLjA1LTUuNDMgNi4wOS03LjkxIDkuNGwtMzIuMTUgNDIuOTctMTAuNzEgMTQuMzJjLTMyLjczIDguNzYtNTkuMTggMzQuNTMtNjguMDggNjcuNzR6bTQ5NC41NyAxMzIuNTFsLTEyLjQyIDQ2LjM2Yy0zLjEzIDExLjY4LTkuMzggMjEuNjEtMTcuNTUgMjkuMzZhNjYuODc2IDY2Ljg3NiAwIDAgMS04Ljc2IDdsLTEzLjk5IDUyLjIzYy0xLjE0IDQuMjctMy4xIDguMS01LjY1IDExLjM4LTcuNjcgOS44NC0yMC43NCAxNC42OC0zMy41NCAxMS4yNUw1MTUgNTAyLjYyYy0xNy4wNy00LjU3LTI3LjItMjIuMTItMjIuNjMtMzkuMTlsOC4yOC0zMC45MS0yNDcuMjgtNjYuMjYtOC4yOCAzMC45MWMtNC41NyAxNy4wNy0yMi4xMiAyNy4yLTM5LjE5IDIyLjYzbC0zMC45MS04LjI4Yy0xMi44LTMuNDMtMjEuNy0xNC4xNi0yMy40Mi0yNi41MS0uNTctNC4xMi0uMzUtOC40Mi43OS0xMi42OGwxMy45OS01Mi4yM2E2Ni42MiA2Ni42MiAwIDAgMS00LjA5LTEwLjQ1Yy0zLjItMTAuNzktMy42NS0yMi41Mi0uNTItMzQuMmwxMi40Mi00Ni4zN2M1LjMxLTE5LjggMTkuMzYtMzQuODMgMzYuODktNDIuMjFhNjQuMzM2IDY0LjMzNiAwIDAgMSAxOC40OS00LjcybDE4LjEzLTI0LjIzIDMyLjE1LTQyLjk3YzMuNDUtNC42MSA3LjE5LTguOSAxMS4yLTEyLjg0IDgtNy44OSAxNy4wMy0xNC40NCAyNi43NC0xOS41MSA0Ljg2LTIuNTQgOS44OS00LjcxIDE1LjA1LTYuNDkgMTAuMzMtMy41OCAyMS4xOS01LjYzIDMyLjI0LTYuMDQgMTEuMDUtLjQxIDIyLjMxLjgyIDMzLjQzIDMuOGwxMjIuNjggMzIuODdjMTEuMTIgMi45OCAyMS40OCA3LjU0IDMwLjg1IDEzLjQzYTExMS4xMSAxMTEuMTEgMCAwIDEgMzQuNjkgMzQuNWM4LjgyIDEzLjg4IDE0LjY0IDI5Ljg0IDE2LjY4IDQ2Ljk5bDYuMzYgNTMuMjkgMy41OSAzMC4wNWE2NC40OSA2NC40OSAwIDAgMSAyMi43NCAyOS45M2M0LjM5IDExLjg4IDUuMjkgMjUuMTkgMS43NSAzOC4zOXpNMjU1LjU4IDIzNC4zNGMtMTguNTUtNC45Ny0zNC4yMSA0LjA0LTM5LjE3IDIyLjUzLTQuOTYgMTguNDkgNC4xMSAzNC4xMiAyMi42NSAzOS4wOSAxOC41NSA0Ljk3IDQ1LjU0IDE1LjUxIDUwLjQ5LTIuOTggNC45Ni0xOC40OS0xNS40My01My42Ny0zMy45Ny01OC42NHptMjkwLjYxIDI4LjE3bC02LjM2LTUzLjI5Yy0uNTgtNC44Ny0xLjg5LTkuNTMtMy44Mi0xMy44Ni01LjgtMTIuOTktMTcuMi0yMy4wMS0zMS40Mi0yNi44MmwtMTIyLjY4LTMyLjg3YTQ4LjAwOCA0OC4wMDggMCAwIDAtNTAuODYgMTcuNjFsLTMyLjE1IDQyLjk3IDE3MiA0Ni4wOCA3NS4yOSAyMC4xOHptMTguNDkgNTQuNjVjLTE4LjU1LTQuOTctNTMuOCAxNS4zMS01OC43NSAzMy43OS00Ljk1IDE4LjQ5IDIzLjY5IDIyLjg2IDQyLjI0IDI3LjgzIDE4LjU1IDQuOTcgMzQuMjEtNC4wNCAzOS4xNy0yMi41MyA0Ljk1LTE4LjQ4LTQuMTEtMzQuMTItMjIuNjYtMzkuMDl6XCJdXG59O1xudmFyIGZhQ2FyU2lkZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXItc2lkZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjVlNFwiLCBcIk01NDQgMTkyaC0xNkw0MTkuMjIgNTYuMDJBNjQuMDI1IDY0LjAyNSAwIDAgMCAzNjkuMjQgMzJIMTU1LjMzYy0yNi4xNyAwLTQ5LjcgMTUuOTMtNTkuNDIgNDAuMjNMNDggMTk0LjI2QzIwLjQ0IDIwMS40IDAgMjI2LjIxIDAgMjU2djExMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2czk2LTQyLjk4IDk2LTk2aDEyOGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2czk2LTQyLjk4IDk2LTk2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2di04MGMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2ek0xNjAgNDMyYy0yNi40NyAwLTQ4LTIxLjUzLTQ4LTQ4czIxLjUzLTQ4IDQ4LTQ4IDQ4IDIxLjUzIDQ4IDQ4LTIxLjUzIDQ4LTQ4IDQ4em03Mi0yNDBIMTE2LjkzbDM4LjQtOTZIMjMydjk2em00OCAwVjk2aDg5LjI0bDc2LjggOTZIMjgwem0yMDAgMjQwYy0yNi40NyAwLTQ4LTIxLjUzLTQ4LTQ4czIxLjUzLTQ4IDQ4LTQ4IDQ4IDIxLjUzIDQ4IDQ4LTIxLjUzIDQ4LTQ4IDQ4elwiXVxufTtcbnZhciBmYUNhcmV0RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJldC1kb3duJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMGQ3XCIsIFwiTTMxLjMgMTkyaDI1Ny4zYzE3LjggMCAyNi43IDIxLjUgMTQuMSAzNC4xTDE3NC4xIDM1NC44Yy03LjggNy44LTIwLjUgNy44LTI4LjMgMEwxNy4yIDIyNi4xQzQuNiAyMTMuNSAxMy41IDE5MiAzMS4zIDE5MnpcIl1cbn07XG52YXIgZmFDYXJldExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyZXQtbGVmdCcsXG4gIGljb246IFsxOTIsIDUxMiwgW10sIFwiZjBkOVwiLCBcIk0xOTIgMTI3LjMzOHYyNTcuMzI0YzAgMTcuODE4LTIxLjU0MyAyNi43NDEtMzQuMTQyIDE0LjE0MkwyOS4xOTYgMjcwLjE0MmMtNy44MS03LjgxLTcuODEtMjAuNDc0IDAtMjguMjg0bDEyOC42NjItMTI4LjY2MmMxMi41OTktMTIuNiAzNC4xNDItMy42NzYgMzQuMTQyIDE0LjE0MnpcIl1cbn07XG52YXIgZmFDYXJldFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcmV0LXJpZ2h0JyxcbiAgaWNvbjogWzE5MiwgNTEyLCBbXSwgXCJmMGRhXCIsIFwiTTAgMzg0LjY2MlYxMjcuMzM4YzAtMTcuODE4IDIxLjU0My0yNi43NDEgMzQuMTQyLTE0LjE0MmwxMjguNjYyIDEyOC42NjJjNy44MSA3LjgxIDcuODEgMjAuNDc0IDAgMjguMjg0TDM0LjE0MiAzOTguODA0QzIxLjU0MyA0MTEuNDA0IDAgNDAyLjQ4IDAgMzg0LjY2MnpcIl1cbn07XG52YXIgZmFDYXJldFNxdWFyZURvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyZXQtc3F1YXJlLWRvd24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxNTBcIiwgXCJNNDQ4IDgwdjM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4ek05Mi41IDIyMC41bDEyMyAxMjNjNC43IDQuNyAxMi4zIDQuNyAxNyAwbDEyMy0xMjNjNy42LTcuNiAyLjItMjAuNS04LjUtMjAuNUgxMDFjLTEwLjcgMC0xNi4xIDEyLjktOC41IDIwLjV6XCJdXG59O1xudmFyIGZhQ2FyZXRTcXVhcmVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcmV0LXNxdWFyZS1sZWZ0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTkxXCIsIFwiTTQwMCA0ODBINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGgzNTJjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMjU5LjUxNSAxMjQuNDg1bC0xMjMuMDMgMTIzLjAzYy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NzFsMTIzLjAyOSAxMjMuMDI5YzcuNTYgNy41NiAyMC40ODUgMi4yMDYgMjAuNDg1LTguNDg1VjEzMi45NzFjLjAwMS0xMC42OTEtMTIuOTI1LTE2LjA0NS0yMC40ODQtOC40ODZ6XCJdXG59O1xudmFyIGZhQ2FyZXRTcXVhcmVSaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJldC1zcXVhcmUtcmlnaHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxNTJcIiwgXCJNNDggMzJoMzUyYzI2LjUxIDAgNDggMjEuNDkgNDggNDh2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OHptMTQwLjQ4NSAzNTUuNTE1bDEyMy4wMjktMTIzLjAyOWM0LjY4Ni00LjY4NiA0LjY4Ni0xMi4yODQgMC0xNi45NzFsLTEyMy4wMjktMTIzLjAzYy03LjU2LTcuNTYtMjAuNDg1LTIuMjA2LTIwLjQ4NSA4LjQ4NXYyNDYuMDU5YzAgMTAuNjkxIDEyLjkyNiAxNi4wNDUgMjAuNDg1IDguNDg2elwiXVxufTtcbnZhciBmYUNhcmV0U3F1YXJlVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyZXQtc3F1YXJlLXVwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTUxXCIsIFwiTTAgNDMyVjgwYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMzUyYzI2LjUxIDAgNDggMjEuNDkgNDggNDh2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDh6bTM1NS41MTUtMTQwLjQ4NWwtMTIzLjAzLTEyMy4wM2MtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDkyLjQ4NSAyOTEuNTE1Yy03LjU2IDcuNTYtMi4yMDYgMjAuNDg1IDguNDg1IDIwLjQ4NWgyNDYuMDU5YzEwLjY5MSAwIDE2LjA0NS0xMi45MjYgOC40ODYtMjAuNDg1elwiXVxufTtcbnZhciBmYUNhcmV0VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FyZXQtdXAnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYwZDhcIiwgXCJNMjg4LjY2MiAzNTJIMzEuMzM4Yy0xNy44MTggMC0yNi43NDEtMjEuNTQzLTE0LjE0Mi0zNC4xNDJsMTI4LjY2Mi0xMjguNjYyYzcuODEtNy44MSAyMC40NzQtNy44MSAyOC4yODQgMGwxMjguNjYyIDEyOC42NjJjMTIuNiAxMi41OTkgMy42NzYgMzQuMTQyLTE0LjE0MiAzNC4xNDJ6XCJdXG59O1xudmFyIGZhQ2Fycm90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcnJvdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc4N1wiLCBcIk0yOTguMiAxNTYuNmMtNTIuNy0yNS43LTExNC41LTEwLjUtMTUwLjIgMzIuOGw1NS4yIDU1LjJjNi4zIDYuMyA2LjMgMTYuNCAwIDIyLjYtMy4xIDMuMS03LjIgNC43LTExLjMgNC43cy04LjItMS42LTExLjMtNC43TDEzMC40IDIxNyAyLjMgNDc5LjdjLTIuOSA2LTMuMSAxMy4zIDAgMTkuNyA1LjQgMTEuMSAxOC45IDE1LjcgMzAgMTAuM2wxMzMuNi02NS4yLTQ5LjItNDkuMmMtNi4zLTYuMi02LjMtMTYuNCAwLTIyLjYgNi4zLTYuMiAxNi40LTYuMiAyMi42IDBsNTcgNTcgMTAyLTQ5LjhjMjQtMTEuNyA0NC41LTMxLjMgNTcuMS01Ny4xIDMwLjEtNjEuNyA0LjUtMTM2LjEtNTcuMi0xNjYuMnptOTIuMS0zNC45QzQwOS44IDgxIDM5OS43IDMyLjkgMzYwIDBjLTUwLjMgNDEuNy01Mi41IDEwNy41LTcuOSAxNTEuOWw4IDhjNDQuNCA0NC42IDExMC4zIDQyLjQgMTUxLjktNy45LTMyLjktMzkuNy04MS00OS44LTEyMS43LTMwLjN6XCJdXG59O1xudmFyIGZhQ2FydEFycm93RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjYXJ0LWFycm93LWRvd24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyMThcIiwgXCJNNTA0LjcxNyAzMjBIMjExLjU3Mmw2LjU0NSAzMmgyNjguNDE4YzE1LjQwMSAwIDI2LjgxNiAxNC4zMDEgMjMuNDAzIDI5LjMxOWwtNS41MTcgMjQuMjc2QzUyMy4xMTIgNDE0LjY2OCA1MzYgNDMzLjgyOCA1MzYgNDU2YzAgMzEuMjAyLTI1LjUxOSA1Ni40NDQtNTYuODI0IDU1Ljk5NC0yOS44MjMtLjQyOS01NC4zNS0yNC42MzEtNTUuMTU1LTU0LjQ0Ny0uNDQtMTYuMjg3IDYuMDg1LTMxLjA0OSAxNi44MDMtNDEuNTQ4SDIzMS4xNzZDMjQxLjU1MyA0MjYuMTY1IDI0OCA0NDAuMzI2IDI0OCA0NTZjMCAzMS44MTMtMjYuNTI4IDU3LjQzMS01OC42NyA1NS45MzgtMjguNTQtMS4zMjUtNTEuNzUxLTI0LjM4NS01My4yNTEtNTIuOTE3LTEuMTU4LTIyLjAzNCAxMC40MzYtNDEuNDU1IDI4LjA1MS01MS41ODZMOTMuODgzIDY0SDI0QzEwLjc0NSA2NCAwIDUzLjI1NSAwIDQwVjI0QzAgMTAuNzQ1IDEwLjc0NSAwIDI0IDBoMTAyLjUyOWMxMS40MDEgMCAyMS4yMjggOC4wMjEgMjMuNTEzIDE5LjE5TDE1OS4yMDggNjRINTUxLjk5YzE1LjQwMSAwIDI2LjgxNiAxNC4zMDEgMjMuNDAzIDI5LjMxOWwtNDcuMjczIDIwOEM1MjUuNjM3IDMxMi4yNDYgNTE1LjkyMyAzMjAgNTA0LjcxNyAzMjB6TTQwMy4wMjkgMTkySDM2MHYtNjBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtMjRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NjBoLTQzLjAyOWMtMTAuNjkxIDAtMTYuMDQ1IDEyLjkyNi04LjQ4NSAyMC40ODVsNjcuMDI5IDY3LjAyOWM0LjY4NiA0LjY4NiAxMi4yODQgNC42ODYgMTYuOTcxIDBsNjcuMDI5LTY3LjAyOWM3LjU1OS03LjU1OSAyLjIwNS0yMC40ODUtOC40ODYtMjAuNDg1elwiXVxufTtcbnZhciBmYUNhcnRQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhcnQtcGx1cycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjIxN1wiLCBcIk01MDQuNzE3IDMyMEgyMTEuNTcybDYuNTQ1IDMyaDI2OC40MThjMTUuNDAxIDAgMjYuODE2IDE0LjMwMSAyMy40MDMgMjkuMzE5bC01LjUxNyAyNC4yNzZDNTIzLjExMiA0MTQuNjY4IDUzNiA0MzMuODI4IDUzNiA0NTZjMCAzMS4yMDItMjUuNTE5IDU2LjQ0NC01Ni44MjQgNTUuOTk0LTI5LjgyMy0uNDI5LTU0LjM1LTI0LjYzMS01NS4xNTUtNTQuNDQ3LS40NC0xNi4yODcgNi4wODUtMzEuMDQ5IDE2LjgwMy00MS41NDhIMjMxLjE3NkMyNDEuNTUzIDQyNi4xNjUgMjQ4IDQ0MC4zMjYgMjQ4IDQ1NmMwIDMxLjgxMy0yNi41MjggNTcuNDMxLTU4LjY3IDU1LjkzOC0yOC41NC0xLjMyNS01MS43NTEtMjQuMzg1LTUzLjI1MS01Mi45MTctMS4xNTgtMjIuMDM0IDEwLjQzNi00MS40NTUgMjguMDUxLTUxLjU4Nkw5My44ODMgNjRIMjRDMTAuNzQ1IDY0IDAgNTMuMjU1IDAgNDBWMjRDMCAxMC43NDUgMTAuNzQ1IDAgMjQgMGgxMDIuNTI5YzExLjQwMSAwIDIxLjIyOCA4LjAyMSAyMy41MTMgMTkuMTlMMTU5LjIwOCA2NEg1NTEuOTljMTUuNDAxIDAgMjYuODE2IDE0LjMwMSAyMy40MDMgMjkuMzE5bC00Ny4yNzMgMjA4QzUyNS42MzcgMzEyLjI0NiA1MTUuOTIzIDMyMCA1MDQuNzE3IDMyMHpNNDA4IDE2OGgtNDh2LTQwYzAtOC44MzctNy4xNjMtMTYtMTYtMTZoLTE2Yy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2djQwaC00OGMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnYxNmMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDQ4djQwYzAgOC44MzcgNy4xNjMgMTYgMTYgMTZoMTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtNDBoNDhjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtMTZjMC04LjgzNy03LjE2My0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFDYXNoUmVnaXN0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2FzaC1yZWdpc3RlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc4OFwiLCBcIk01MTEuMSAzNzguOGwtMjYuNy0xNjBjLTIuNi0xNS40LTE1LjktMjYuNy0zMS42LTI2LjdIMjA4di02NGg5NmM4LjggMCAxNi03LjIgMTYtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2SDQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2aDk2djY0SDU5LjFjLTE1LjYgMC0yOSAxMS4zLTMxLjYgMjYuN0wuOCAzNzguN2MtLjYgMy41LS45IDctLjkgMTAuNVY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMydi05MC43Yy4xLTMuNS0uMi03LS44LTEwLjV6TTI4MCAyNDhjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZoLTE2Yy04LjggMC0xNi03LjItMTYtMTZ2LTE2em0tMzIgNjRoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZjMC04LjggNy4yLTE2IDE2LTE2em0tMzItODBjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZjMC04LjggNy4yLTE2IDE2LTE2aDE2ek04MCA4MFY0OGgxOTJ2MzJIODB6bTQwIDIwMGgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnYtMTZjMC04LjggNy4yLTE2IDE2LTE2aDE2YzguOCAwIDE2IDcuMiAxNiAxNnYxNmMwIDguOC03LjIgMTYtMTYgMTZ6bTE2IDY0di0xNmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2YzAgOC44LTcuMiAxNi0xNiAxNmgtMTZjLTguOCAwLTE2LTcuMi0xNi0xNnptMjE2IDExMmMwIDQuNC0zLjYgOC04IDhIMTY4Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNzZjNC40IDAgOCAzLjYgOCA4djE2em0yNC0xMTJjMCA4LjgtNy4yIDE2LTE2IDE2aC0xNmMtOC44IDAtMTYtNy4yLTE2LTE2di0xNmMwLTguOCA3LjItMTYgMTYtMTZoMTZjOC44IDAgMTYgNy4yIDE2IDE2djE2em00OC04MGMwIDguOC03LjIgMTYtMTYgMTZoLTE2Yy04LjggMC0xNi03LjItMTYtMTZ2LTE2YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTZ6XCJdXG59O1xudmFyIGZhQ2F0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NhdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjZiZVwiLCBcIk0yOTAuNTkgMTkyYy0yMC4xOCAwLTEwNi44MiAxLjk4LTE2Mi41OSA4NS45NVYxOTJjMC01Mi45NC00My4wNi05Ni05Ni05Ni0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyYzE3LjY0IDAgMzIgMTQuMzYgMzIgMzJ2MjU2YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE3NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMzJsMTI4LTk2djE0NGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyODkuODZjLTEwLjI5IDIuNjctMjAuODkgNC41NC0zMiA0LjU0LTYxLjgxIDAtMTEzLjUyLTQ0LjA1LTEyNS40MS0xMDIuNHpNNDQ4IDk2aC02NGwtNjQtNjR2MTM0LjRjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05NlYzMmwtNjQgNjR6bS03MiA4MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6bTgwIDBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2elwiXVxufTtcbnZhciBmYUNlcnRpZmljYXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NlcnRpZmljYXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGEzXCIsIFwiTTQ1OC42MjIgMjU1LjkybDQ1Ljk4NS00NS4wMDVjMTMuNzA4LTEyLjk3NyA3LjMxNi0zNi4wMzktMTAuNjY0LTQwLjMzOWwtNjIuNjUtMTUuOTkgMTcuNjYxLTYyLjAxNWM0Ljk5MS0xNy44MzgtMTEuODI5LTM0LjY2My0yOS42NjEtMjkuNjcxbC02MS45OTQgMTcuNjY3LTE1Ljk4NC02Mi42NzFDMzM3LjA4NS4xOTcgMzEzLjc2NS02LjI3NiAzMDAuOTkgNy4yMjhMMjU2IDUzLjU3IDIxMS4wMTEgNy4yMjljLTEyLjYzLTEzLjM1MS0zNi4wNDctNy4yMzQtNDAuMzI1IDEwLjY2OGwtMTUuOTg0IDYyLjY3MS02MS45OTUtMTcuNjY3Qzc0Ljg3IDU3LjkwNyA1OC4wNTYgNzQuNzM4IDYzLjA0NiA5Mi41NzJsMTcuNjYxIDYyLjAxNS02Mi42NSAxNS45OUMuMDY5IDE3NC44NzgtNi4zMSAxOTcuOTQ0IDcuMzkyIDIxMC45MTVsNDUuOTg1IDQ1LjAwNS00NS45ODUgNDUuMDA0Yy0xMy43MDggMTIuOTc3LTcuMzE2IDM2LjAzOSAxMC42NjQgNDAuMzM5bDYyLjY1IDE1Ljk5LTE3LjY2MSA2Mi4wMTVjLTQuOTkxIDE3LjgzOCAxMS44MjkgMzQuNjYzIDI5LjY2MSAyOS42NzFsNjEuOTk0LTE3LjY2NyAxNS45ODQgNjIuNjcxYzQuNDM5IDE4LjU3NSAyNy42OTYgMjQuMDE4IDQwLjMyNSAxMC42NjhMMjU2IDQ1OC42MWw0NC45ODkgNDYuMDAxYzEyLjUgMTMuNDg4IDM1Ljk4NyA3LjQ4NiA0MC4zMjUtMTAuNjY4bDE1Ljk4NC02Mi42NzEgNjEuOTk0IDE3LjY2N2MxNy44MzYgNC45OTQgMzQuNjUxLTExLjgzNyAyOS42NjEtMjkuNjcxbC0xNy42NjEtNjIuMDE1IDYyLjY1LTE1Ljk5YzE3Ljk4Ny00LjMwMiAyNC4zNjYtMjcuMzY3IDEwLjY2NC00MC4zMzlsLTQ1Ljk4NC00NS4wMDR6XCJdXG59O1xudmFyIGZhQ2hhaXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhaXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY2YzBcIiwgXCJNMTEyIDEyOGMwLTI5LjUgMTYuMi01NSA0MC02OC45VjI1Nmg0OFY0OGg0OHYyMDhoNDhWNTkuMWMyMy44IDEzLjkgNDAgMzkuNCA0MCA2OC45djEyOGg0OFYxMjhDMzg0IDU3LjMgMzI2LjcgMCAyNTYgMGgtNjRDMTIxLjMgMCA2NCA1Ny4zIDY0IDEyOHYxMjhoNDh6bTMzNC4zIDIxMy45bC0xMC43LTMyYy00LjQtMTMuMS0xNi42LTIxLjktMzAuNC0yMS45SDQyLjdjLTEzLjggMC0yNiA4LjgtMzAuNCAyMS45bC0xMC43IDMyQy01LjIgMzYyLjYgMTAuMiAzODQgMzIgMzg0djExMmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjM4NGgyNTZ2MTEyYzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzg0YzIxLjggMCAzNy4yLTIxLjQgMzAuMy00Mi4xelwiXVxufTtcbnZhciBmYUNoYWxrYm9hcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhbGtib2FyZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjUxYlwiLCBcIk05NiA2NGg0NDh2MzUyaDY0VjQwYzAtMjIuMDYtMTcuOTQtNDAtNDAtNDBINzJDNDkuOTQgMCAzMiAxNy45NCAzMiA0MHYzNzZoNjRWNjR6bTUyOCAzODRINDgwdi02NEgyODh2NjRIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDYwOGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJdXG59O1xudmFyIGZhQ2hhbGtib2FyZFRlYWNoZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhbGtib2FyZC10ZWFjaGVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTFjXCIsIFwiTTIwOCAzNTJjLTIuMzkgMC00Ljc4LjM1LTcuMDYgMS4wOUMxODcuOTggMzU3LjMgMTc0LjM1IDM2MCAxNjAgMzYwYy0xNC4zNSAwLTI3Ljk4LTIuNy00MC45NS02LjkxLTIuMjgtLjc0LTQuNjYtMS4wOS03LjA1LTEuMDlDNDkuOTQgMzUyLS4zMyA0MDIuNDggMCA0NjQuNjIuMTQgNDkwLjg4IDIxLjczIDUxMiA0OCA1MTJoMjI0YzI2LjI3IDAgNDcuODYtMjEuMTIgNDgtNDcuMzguMzMtNjIuMTQtNDkuOTQtMTEyLjYyLTExMi0xMTIuNjJ6bS00OC0zMmM1My4wMiAwIDk2LTQyLjk4IDk2LTk2cy00Mi45OC05Ni05Ni05Ni05NiA0Mi45OC05NiA5NiA0Mi45OCA5NiA5NiA5NnpNNTkyIDBIMjA4Yy0yNi40NyAwLTQ4IDIyLjI1LTQ4IDQ5LjU5Vjk2YzIzLjQyIDAgNDUuMSA2Ljc4IDY0IDE3LjhWNjRoMzUydjI4OGgtNjR2LTY0SDM4NHY2NGgtNzYuMjRjMTkuMSAxNi42OSAzMy4xMiAzOC43MyAzOS42OSA2NEg1OTJjMjYuNDcgMCA0OC0yMi4yNSA0OC00OS41OVY0OS41OUM2NDAgMjIuMjUgNjE4LjQ3IDAgNTkyIDB6XCJdXG59O1xudmFyIGZhQ2hhcmdpbmdTdGF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJnaW5nLXN0YXRpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1ZTdcIiwgXCJNMzM2IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzIwYzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptMjA4LTMyMFY4MGMwLTguODQtNy4xNi0xNi0xNi0xNnMtMTYgNy4xNi0xNiAxNnY0OGgtMzJWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZzLTE2IDcuMTYtMTYgMTZ2NDhoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDM1Ljc2IDIzLjYyIDY1LjY5IDU2IDc1LjkzdjExOC40OWMwIDEzLjk1LTkuNSAyNi45Mi0yMy4yNiAyOS4xOUM0MzEuMjIgNDAyLjUgNDE2IDM4OC45OSA0MTYgMzcydi0yOGMwLTQ4LjYtMzkuNC04OC04OC04OGgtOFY2NGMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0SDk2QzYwLjY1IDAgMzIgMjguNjUgMzIgNjR2MzUyaDI4OFYzMDRoOGMyMi4wOSAwIDQwIDE3LjkxIDQwIDQwdjI0LjYxYzAgMzkuNjcgMjguOTIgNzUuMTYgNjguNDEgNzkuMDFDNDgxLjcxIDQ1Mi4wNSA1MjAgNDE2LjQxIDUyMCAzNzJWMjUxLjkzYzMyLjM4LTEwLjI0IDU2LTQwLjE3IDU2LTc1Ljkzdi0zMmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMTZ6bS0yODMuOTEgNDcuNzZsLTkzLjcgMTM5Yy0yLjIgMy4zMy02LjIxIDUuMjQtMTAuMzkgNS4yNC03LjY3IDAtMTMuNDctNi4yOC0xMS42Ny0xMi45MkwxNjcuMzUgMjI0SDEwOGMtNy4yNSAwLTEyLjg1LTUuNTktMTEuODktMTEuODlsMTYtMTA3QzExMi45IDk5LjkgMTE3Ljk4IDk2IDEyNCA5Nmg2OGM3Ljg4IDAgMTMuNjIgNi41NCAxMS42IDEzLjIxTDE5MiAxNjBoNTcuN2M5LjI0IDAgMTUuMDEgOC43OCAxMC4zOSAxNS43NnpcIl1cbn07XG52YXIgZmFDaGFydEFyZWEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtYXJlYScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFmZVwiLCBcIk01MDAgMzg0YzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJIMTJjLTYuNiAwLTEyLTUuNC0xMi0xMlY3NmMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjMwOGg0MzZ6TTM3Mi43IDE1OS41TDI4OCAyMTZsLTg1LjMtMTEzLjdjLTUuMS02LjgtMTUuNS02LjMtMTkuOSAxTDk2IDI0OHYxMDRoMzg0bC04OS45LTE4Ny44Yy0zLjItNi41LTExLjQtOC43LTE3LjQtNC43elwiXVxufTtcbnZhciBmYUNoYXJ0QmFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LWJhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA4MFwiLCBcIk0zMzIuOCAzMjBoMzguNGM2LjQgMCAxMi44LTYuNCAxMi44LTEyLjhWMTcyLjhjMC02LjQtNi40LTEyLjgtMTIuOC0xMi44aC0zOC40Yy02LjQgMC0xMi44IDYuNC0xMi44IDEyLjh2MTM0LjRjMCA2LjQgNi40IDEyLjggMTIuOCAxMi44em05NiAwaDM4LjRjNi40IDAgMTIuOC02LjQgMTIuOC0xMi44Vjc2LjhjMC02LjQtNi40LTEyLjgtMTIuOC0xMi44aC0zOC40Yy02LjQgMC0xMi44IDYuNC0xMi44IDEyLjh2MjMwLjRjMCA2LjQgNi40IDEyLjggMTIuOCAxMi44em0tMjg4IDBoMzguNGM2LjQgMCAxMi44LTYuNCAxMi44LTEyLjh2LTcwLjRjMC02LjQtNi40LTEyLjgtMTIuOC0xMi44aC0zOC40Yy02LjQgMC0xMi44IDYuNC0xMi44IDEyLjh2NzAuNGMwIDYuNCA2LjQgMTIuOCAxMi44IDEyLjh6bTk2IDBoMzguNGM2LjQgMCAxMi44LTYuNCAxMi44LTEyLjhWMTA4LjhjMC02LjQtNi40LTEyLjgtMTIuOC0xMi44aC0zOC40Yy02LjQgMC0xMi44IDYuNC0xMi44IDEyLjh2MTk4LjRjMCA2LjQgNi40IDEyLjggMTIuOCAxMi44ek00OTYgMzg0SDY0VjgwYzAtOC44NC03LjE2LTE2LTE2LTE2SDE2QzcuMTYgNjQgMCA3MS4xNiAwIDgwdjMzNmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDQ2NGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJdXG59O1xudmFyIGZhQ2hhcnRMaW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoYXJ0LWxpbmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyMDFcIiwgXCJNNDk2IDM4NEg2NFY4MGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDY0IDAgNzEuMTYgMCA4MHYzMzZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2ek00NjQgOTZIMzQ1Ljk0Yy0yMS4zOCAwLTMyLjA5IDI1Ljg1LTE2Ljk3IDQwLjk3bDMyLjQgMzIuNEwyODggMjQyLjc1bC03My4zNy03My4zN2MtMTIuNS0xMi41LTMyLjc2LTEyLjUtNDUuMjUgMGwtNjguNjkgNjguNjljLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMjIuNjIgMjIuNjJjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMEwxOTIgMjM3LjI1bDczLjM3IDczLjM3YzEyLjUgMTIuNSAzMi43NiAxMi41IDQ1LjI1IDBsOTYtOTYgMzIuNCAzMi40YzE1LjEyIDE1LjEyIDQwLjk3IDQuNDEgNDAuOTctMTYuOTdWMTEyYy4wMS04Ljg0LTcuMTUtMTYtMTUuOTktMTZ6XCJdXG59O1xudmFyIGZhQ2hhcnRQaWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hhcnQtcGllJyxcbiAgaWNvbjogWzU0NCwgNTEyLCBbXSwgXCJmMjAwXCIsIFwiTTUyNy43OSAyODhIMjkwLjVsMTU4LjAzIDE1OC4wM2M2LjA0IDYuMDQgMTUuOTggNi41MyAyMi4xOS42OCAzOC43LTM2LjQ2IDY1LjMyLTg1LjYxIDczLjEzLTE0MC44NiAxLjM0LTkuNDYtNi41MS0xNy44NS0xNi4wNi0xNy44NXptLTE1LjgzLTY0LjhDNTAzLjcyIDEwMy43NCA0MDguMjYgOC4yOCAyODguOC4wNCAyNzkuNjgtLjU5IDI3MiA3LjEgMjcyIDE2LjI0VjI0MGgyMjMuNzdjOS4xNCAwIDE2LjgyLTcuNjggMTYuMTktMTYuOHpNMjI0IDI4OFY1MC43MWMwLTkuNTUtOC4zOS0xNy40LTE3Ljg0LTE2LjA2Qzg2Ljk5IDUxLjQ5LTQuMSAxNTUuNi4xNCAyODAuMzcgNC41IDQwOC41MSAxMTQuODMgNTEzLjU5IDI0My4wMyA1MTEuOThjNTAuNC0uNjMgOTYuOTctMTYuODcgMTM1LjI2LTQ0LjAzIDcuOS01LjYgOC40Mi0xNy4yMyAxLjU3LTI0LjA4TDIyNCAyODh6XCJdXG59O1xudmFyIGZhQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlY2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwMGNcIiwgXCJNMTczLjg5OCA0MzkuNDA0bC0xNjYuNC0xNjYuNGMtOS45OTctOS45OTctOS45OTctMjYuMjA2IDAtMzYuMjA0bDM2LjIwMy0zNi4yMDRjOS45OTctOS45OTggMjYuMjA3LTkuOTk4IDM2LjIwNCAwTDE5MiAzMTIuNjkgNDMyLjA5NSA3Mi41OTZjOS45OTctOS45OTcgMjYuMjA3LTkuOTk3IDM2LjIwNCAwbDM2LjIwMyAzNi4yMDRjOS45OTcgOS45OTcgOS45OTcgMjYuMjA2IDAgMzYuMjA0bC0yOTQuNCAyOTQuNDAxYy05Ljk5OCA5Ljk5Ny0yNi4yMDcgOS45OTctMzYuMjA0LS4wMDF6XCJdXG59O1xudmFyIGZhQ2hlY2tDaXJjbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlY2stY2lyY2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDU4XCIsIFwiTTUwNCAyNTZjMCAxMzYuOTY3LTExMS4wMzMgMjQ4LTI0OCAyNDhTOCAzOTIuOTY3IDggMjU2IDExOS4wMzMgOCAyNTYgOHMyNDggMTExLjAzMyAyNDggMjQ4ek0yMjcuMzE0IDM4Ny4zMTRsMTg0LTE4NGM2LjI0OC02LjI0OCA2LjI0OC0xNi4zNzkgMC0yMi42MjdsLTIyLjYyNy0yMi42MjdjLTYuMjQ4LTYuMjQ5LTE2LjM3OS02LjI0OS0yMi42MjggMEwyMTYgMzA4LjExOGwtNzAuMDU5LTcwLjA1OWMtNi4yNDgtNi4yNDgtMTYuMzc5LTYuMjQ4LTIyLjYyOCAwbC0yMi42MjcgMjIuNjI3Yy02LjI0OCA2LjI0OC02LjI0OCAxNi4zNzkgMCAyMi42MjdsMTA0IDEwNGM2LjI0OSA2LjI0OSAxNi4zNzkgNi4yNDkgMjIuNjI4LjAwMXpcIl1cbn07XG52YXIgZmFDaGVja0RvdWJsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVjay1kb3VibGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NjBcIiwgXCJNNTA1IDE3NC44bC0zOS42LTM5LjZjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDE5MiAzNzQuNyA4MC42IDI2My4yYy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEw3IDMwMi45Yy05LjQgOS40LTkuNCAyNC42IDAgMzRMMTc1IDUwNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwyOTYtMjk2LjJjOS40LTkuNSA5LjQtMjQuNy4xLTM0em0tMzI0LjMgMTA2YzYuMiA2LjMgMTYuNCA2LjMgMjIuNiAwbDIwOC0yMDguMmM2LjItNi4zIDYuMi0xNi40IDAtMjIuNkwzNjYuMSA0LjdjLTYuMi02LjMtMTYuNC02LjMtMjIuNiAwTDE5MiAxNTYuMmwtNTUuNC01NS41Yy02LjItNi4zLTE2LjQtNi4zLTIyLjYgMEw2OC43IDE0NmMtNi4yIDYuMy02LjIgMTYuNCAwIDIyLjZsMTEyIDExMi4yelwiXVxufTtcbnZhciBmYUNoZWNrU3F1YXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZWNrLXNxdWFyZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjE0YVwiLCBcIk00MDAgNDgwSDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjgwYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMzUyYzI2LjUxIDAgNDggMjEuNDkgNDggNDh2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDh6bS0yMDQuNjg2LTk4LjA1OWwxODQtMTg0YzYuMjQ4LTYuMjQ4IDYuMjQ4LTE2LjM3OSAwLTIyLjYyN2wtMjIuNjI3LTIyLjYyN2MtNi4yNDgtNi4yNDgtMTYuMzc5LTYuMjQ5LTIyLjYyOCAwTDE4NCAzMDIuNzQ1bC03MC4wNTktNzAuMDU5Yy02LjI0OC02LjI0OC0xNi4zNzktNi4yNDgtMjIuNjI4IDBsLTIyLjYyNyAyMi42MjdjLTYuMjQ4IDYuMjQ4LTYuMjQ4IDE2LjM3OSAwIDIyLjYyN2wxMDQgMTA0YzYuMjQ5IDYuMjUgMTYuMzc5IDYuMjUgMjIuNjI4LjAwMXpcIl1cbn07XG52YXIgZmFDaGVlc2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlZXNlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2VmXCIsIFwiTTAgMjg4djE2MGEzMiAzMiAwIDAgMCAzMiAzMmg0NDhhMzIgMzIgMCAwIDAgMzItMzJWMjg4ek0yOTkuODMgMzJhMzIgMzIgMCAwIDAtMjEuMTMgN0wwIDI1Nmg1MTJjMC0xMTkuODktOTQtMjE3LjgtMjEyLjE3LTIyNHpcIl1cbn07XG52YXIgZmFDaGVzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQzOVwiLCBcIk03NCAyMDhINjRhMTYgMTYgMCAwIDAtMTYgMTZ2MTZhMTYgMTYgMCAwIDAgMTYgMTZoMTUuOTRBNTM1Ljc4IDUzNS43OCAwIDAgMSA2NCAzODRoMTI4YTUzNS43OCA1MzUuNzggMCAwIDEtMTUuOTQtMTI4SDE5MmExNiAxNiAwIDAgMCAxNi0xNnYtMTZhMTYgMTYgMCAwIDAtMTYtMTZoLTEwbDMzLjg5LTkwLjM4YTE2IDE2IDAgMCAwLTE1LTIxLjYySDE0NFY2NGgyNGE4IDggMCAwIDAgOC04VjQwYTggOCAwIDAgMC04LThoLTI0VjhhOCA4IDAgMCAwLTgtOGgtMTZhOCA4IDAgMCAwLTggOHYyNEg4OGE4IDggMCAwIDAtOCA4djE2YTggOCAwIDAgMCA4IDhoMjR2MzJINTUuMDlhMTYgMTYgMCAwIDAtMTUgMjEuNjJ6bTE3My4xNiAyNTEuNThMMjI0IDQ0OHYtMTZhMTYgMTYgMCAwIDAtMTYtMTZINDhhMTYgMTYgMCAwIDAtMTYgMTZ2MTZMOC44NSA0NTkuNThBMTYgMTYgMCAwIDAgMCA0NzMuODlWNDk2YTE2IDE2IDAgMCAwIDE2IDE2aDIyNGExNiAxNiAwIDAgMCAxNi0xNnYtMjIuMTFhMTYgMTYgMCAwIDAtOC44NC0xNC4zMXptOTIuNzctMTU3Ljc4bC0zLjI5IDgyLjJoMTI2LjcybC0zLjI5LTgyLjIxIDI0LjYtMjAuNzlBMzIgMzIgMCAwIDAgNDk2IDI1Ni41NFYxOThhNiA2IDAgMCAwLTYtNmgtMjYuMzhhNiA2IDAgMCAwLTYgNnYyNmgtMjQuNzF2LTI2YTYgNiAwIDAgMC02LTZIMzczLjFhNiA2IDAgMCAwLTYgNnYyNmgtMjQuNzF2LTI2YTYgNiAwIDAgMC02LTZIMzEwYTYgNiAwIDAgMC02IDZ2NTguNmEzMiAzMiAwIDAgMCAxMS4zNiAyNC40ek0zODQgMzA0YTE2IDE2IDAgMCAxIDMyIDB2MzJoLTMyem0xMTkuMTYgMTU1LjU4TDQ4MCA0NDh2LTE2YTE2IDE2IDAgMCAwLTE2LTE2SDMzNmExNiAxNiAwIDAgMC0xNiAxNnYxNmwtMjMuMTUgMTEuNThhMTYgMTYgMCAwIDAtOC44NSAxNC4zMVY0OTZhMTYgMTYgMCAwIDAgMTYgMTZoMTkyYTE2IDE2IDAgMCAwIDE2LTE2di0yMi4xMWExNiAxNiAwIDAgMC04Ljg0LTE0LjMxelwiXVxufTtcbnZhciBmYUNoZXNzQmlzaG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLWJpc2hvcCcsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjQzYVwiLCBcIk04IDI4Ny44OGMwIDUxLjY0IDIyLjE0IDczLjgzIDU2IDg0LjZWNDE2aDE5MnYtNDMuNTJjMzMuODYtMTAuNzcgNTYtMzMgNTYtODQuNiAwLTMwLjYxLTEwLjczLTY3LjEtMjYuNjktMTAyLjU2TDE4NSAyODUuNjVhOCA4IDAgMCAxLTExLjMxIDBsLTExLjMxLTExLjMxYTggOCAwIDAgMSAwLTExLjMxTDI3MC4yNyAxNTUuMWMtMjAuOC0zNy45MS00Ni40Ny03Mi4xLTcwLjg3LTkyLjU5QzIxMy40IDU5LjA5IDIyNCA0Ny4wNSAyMjQgMzJhMzIgMzIgMCAwIDAtMzItMzJoLTY0YTMyIDMyIDAgMCAwLTMyIDMyYzAgMTUgMTAuNiAyNy4wOSAyNC42IDMwLjUxQzY3LjgxIDEwNi44IDggMjE0LjUgOCAyODcuODh6TTMwNCA0NDhIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjg4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIl1cbn07XG52YXIgZmFDaGVzc0JvYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLWJvYXJkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDNjXCIsIFwiTTI1NS45LjJoLTY0djY0aDY0ek0wIDY0LjE3djY0aDY0di02NHpNMTI4IC4ySDY0djY0aDY0em02NCAyNTUuOXY2NGg2NHYtNjR6TTAgMTkyLjEydjY0aDY0di02NHpNMzgzLjg1LjJoLTY0djY0aDY0em0xMjggMGgtNjR2NjRoNjR6TTEyOCAyNTYuMUg2NHY2NGg2NHpNNTExLjggNDQ4di02NGgtNjR2NjR6bTAtMTI4di02NGgtNjR2NjR6TTM4My44NSA1MTJoNjR2LTY0aC02NHptMTI4LTMxOS44OHYtNjRoLTY0djY0ek0xMjggNTEyaDY0di02NGgtNjR6TTAgNTEyaDY0di02NEgwem0yNTUuOSAwaDY0di02NGgtNjR6TTAgMzIwLjA3djY0aDY0di02NHptMzE5Ljg4LTE5MS45MnYtNjRoLTY0djY0em0tNjQgMTI4aDY0di02NGgtNjR6bS02NCAxMjh2NjRoNjR2LTY0em0xMjgtNjRoNjR2LTY0aC02NHptMC0xMjcuOTVoNjR2LTY0aC02NHptMCAxOTEuOTN2NjRoNjR2LTY0ek02NCAzODQuMDV2NjRoNjR2LTY0em0xMjgtMjU1Ljl2LTY0aC02NHY2NHptMTkxLjkyIDI1NS45aDY0di02NGgtNjR6bS0xMjgtMTkxLjkzdi02NGgtNjR2NjR6bTEyOC0xMjcuOTV2NjRoNjR2LTY0em0tMTI4IDI1NS45djY0aDY0di02NHptLTY0LTEyNy45NUgxMjh2NjRoNjR6bTE5MS45MiA2NGg2NHYtNjRoLTY0ek0xMjggMTI4LjE1SDY0djY0aDY0em0wIDE5MS45MnY2NGg2NHYtNjR6XCJdXG59O1xudmFyIGZhQ2hlc3NLaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLWtpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY0M2ZcIiwgXCJNNDAwIDQ0OEg0OGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzNTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0xNi0yODhIMjU2di00OGg0MGE4IDggMCAwIDAgOC04VjU2YTggOCAwIDAgMC04LThoLTQwVjhhOCA4IDAgMCAwLTgtOGgtNDhhOCA4IDAgMCAwLTggOHY0MGgtNDBhOCA4IDAgMCAwLTggOHY0OGE4IDggMCAwIDAgOCA4aDQwdjQ4SDMyYTMyIDMyIDAgMCAwLTMwLjUyIDQxLjU0TDc0LjU2IDQxNmgyOTguODhsNzMuMDgtMjE0LjQ2QTMyIDMyIDAgMCAwIDQxNiAxNjB6XCJdXG59O1xudmFyIGZhQ2hlc3NLbmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlc3Mta25pZ2h0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDQxXCIsIFwiTTE5IDI3Mi40N2w0MC42MyAxOC4wNmEzMiAzMiAwIDAgMCAyNC44OC40N2wxMi43OC01LjEyYTMyIDMyIDAgMCAwIDE4Ljc2LTIwLjVsOS4yMi0zMC42NWEyNCAyNCAwIDAgMSAxMi41NS0xNS42NUwxNTkuOTQgMjA4djUwLjMzYTQ4IDQ4IDAgMCAxLTI2LjUzIDQyLjk0bC01Ny4yMiAyOC42NUE4MCA4MCAwIDAgMCAzMiA0MDEuNDhWNDE2aDMxOS44NlYyMjRjMC0xMDYtODUuOTItMTkyLTE5MS45Mi0xOTJIMTJBMTIgMTIgMCAwIDAgMCA0NGExNi45IDE2LjkgMCAwIDAgMS43OSA3LjU4TDE2IDgwbC05IDlhMjQgMjQgMCAwIDAtNyAxN3YxMzcuMjFhMzIgMzIgMCAwIDAgMTkgMjkuMjZ6TTUyIDEyOGEyMCAyMCAwIDEgMS0yMCAyMCAyMCAyMCAwIDAgMSAyMC0yMHptMzE2IDMyMEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzNTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwiXVxufTtcbnZhciBmYUNoZXNzUGF3biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGVzcy1wYXduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmNDQzXCIsIFwiTTEwNS4xIDIyNEg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgxNnY1LjQ5YzAgNDQtNC4xNCA4Ni42LTI0IDEyMi41MWgxNzZjLTE5Ljg5LTM1LjkxLTI0LTc4LjUxLTI0LTEyMi41MVYyODhoMTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2aC0yNS4xYzI5LjM5LTE4LjM4IDQ5LjEtNTAuNzggNDkuMS04OGExMDQgMTA0IDAgMCAwLTIwOCAwYzAgMzcuMjIgMTkuNzEgNjkuNjIgNDkuMSA4OHpNMzA0IDQ0OEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyODhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwiXVxufTtcbnZhciBmYUNoZXNzUXVlZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hlc3MtcXVlZW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0NDVcIiwgXCJNMjU2IDExMmE1NiA1NiAwIDEgMC01Ni01NiA1NiA1NiAwIDAgMCA1NiA1NnptMTc2IDMzNkg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzNTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em03Mi44Ny0yNjMuODRsLTI4LjUxLTE1LjkyYy03LjQ0LTUtMTYuOTEtMi40Ni0yMi4yOSA0LjY4YTQ3LjU5IDQ3LjU5IDAgMCAxLTQ3LjIzIDE4LjIzQzM4My43IDE4Ni44NiAzNjggMTY0LjkzIDM2OCAxNDEuNGExMy40IDEzLjQgMCAwIDAtMTMuNC0xMy40aC0zOC43N2MtNiAwLTExLjYxIDQtMTIuODYgOS45MWE0OCA0OCAwIDAgMS05My45NCAwYy0xLjI1LTUuOTItNi44Mi05LjkxLTEyLjg2LTkuOTFIMTU3LjRhMTMuNCAxMy40IDAgMCAwLTEzLjQgMTMuNGMwIDI1LjY5LTE5IDQ4Ljc1LTQ0LjY3IDUwLjQ5YTQ3LjUgNDcuNSAwIDAgMS00MS41NC0xOS4xNWMtNS4yOC03LjA5LTE0LjczLTkuNDUtMjIuMDktNC41NGwtMjguNTcgMTZhMTYgMTYgMCAwIDAtNS40NCAyMC40N0wxMDQuMjQgNDE2aDMwMy41MmwxMDIuNTUtMjExLjM3YTE2IDE2IDAgMCAwLTUuNDQtMjAuNDd6XCJdXG59O1xudmFyIGZhQ2hlc3NSb29rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXNzLXJvb2snLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0NDdcIiwgXCJNMzY4IDMyaC01NmExNiAxNiAwIDAgMC0xNiAxNnY0OGgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTgwYTE2IDE2IDAgMCAwLTE2IDE2djQ4SDg4LjFWNDhhMTYgMTYgMCAwIDAtMTYtMTZIMTZBMTYgMTYgMCAwIDAgMCA0OHYxNzZsNjQgMzJjMCA0OC4zMy0xLjU0IDk1LTEzLjIxIDE2MGgyODIuNDJDMzIxLjU0IDM1MSAzMjAgMzAzLjcyIDMyMCAyNTZsNjQtMzJWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6TTIyNCAzMjBoLTY0di02NGEzMiAzMiAwIDAgMSA2NCAwem0xNDQgMTI4SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDM1MmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhQ2hldnJvbkNpcmNsZURvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi1jaXJjbGUtZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjEzYVwiLCBcIk01MDQgMjU2YzAgMTM3LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHMyNDggMTExIDI0OCAyNDh6TTI3MyAzNjkuOWwxMzUuNS0xMzUuNWM5LjQtOS40IDkuNC0yNC42IDAtMzMuOWwtMTctMTdjLTkuNC05LjQtMjQuNi05LjQtMzMuOSAwTDI1NiAyODUuMSAxNTQuNCAxODMuNWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDBsLTE3IDE3Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOUwyMzkgMzY5LjljOS40IDkuNCAyNC42IDkuNCAzNCAwelwiXVxufTtcbnZhciBmYUNoZXZyb25DaXJjbGVMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NoZXZyb24tY2lyY2xlLWxlZnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMzdcIiwgXCJNMjU2IDUwNEMxMTkgNTA0IDggMzkzIDggMjU2UzExOSA4IDI1NiA4czI0OCAxMTEgMjQ4IDI0OC0xMTEgMjQ4LTI0OCAyNDh6TTE0Mi4xIDI3M2wxMzUuNSAxMzUuNWM5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwxNy0xN2M5LjQtOS40IDkuNC0yNC42IDAtMzMuOUwyMjYuOSAyNTZsMTAxLjYtMTAxLjZjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlsLTE3LTE3Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwxNDIuMSAyMzljLTkuNCA5LjQtOS40IDI0LjYgMCAzNHpcIl1cbn07XG52YXIgZmFDaGV2cm9uQ2lyY2xlUmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi1jaXJjbGUtcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMzhcIiwgXCJNMjU2IDhjMTM3IDAgMjQ4IDExMSAyNDggMjQ4UzM5MyA1MDQgMjU2IDUwNCA4IDM5MyA4IDI1NiAxMTkgOCAyNTYgOHptMTEzLjkgMjMxTDIzNC40IDEwMy41Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMTcgMTdjLTkuNCA5LjQtOS40IDI0LjYgMCAzMy45TDI4NS4xIDI1NiAxODMuNSAzNTcuNmMtOS40IDkuNC05LjQgMjQuNiAwIDMzLjlsMTcgMTdjOS40IDkuNCAyNC42IDkuNCAzMy45IDBMMzY5LjkgMjczYzkuNC05LjQgOS40LTI0LjYgMC0zNHpcIl1cbn07XG52YXIgZmFDaGV2cm9uQ2lyY2xlVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi1jaXJjbGUtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMzlcIiwgXCJNOCAyNTZDOCAxMTkgMTE5IDggMjU2IDhzMjQ4IDExMSAyNDggMjQ4LTExMSAyNDgtMjQ4IDI0OFM4IDM5MyA4IDI1NnptMjMxLTExMy45TDEwMy41IDI3Ny42Yy05LjQgOS40LTkuNCAyNC42IDAgMzMuOWwxNyAxN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMEwyNTYgMjI2LjlsMTAxLjYgMTAxLjZjOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMTctMTdjOS40LTkuNCA5LjQtMjQuNiAwLTMzLjlMMjczIDE0Mi4xYy05LjQtOS40LTI0LjYtOS40LTM0IDB6XCJdXG59O1xudmFyIGZhQ2hldnJvbkRvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi1kb3duJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDc4XCIsIFwiTTIwNy4wMjkgMzgxLjQ3NkwxMi42ODYgMTg3LjEzMmMtOS4zNzMtOS4zNzMtOS4zNzMtMjQuNTY5IDAtMzMuOTQxbDIyLjY2Ny0yMi42NjdjOS4zNTctOS4zNTcgMjQuNTIyLTkuMzc1IDMzLjkwMS0uMDRMMjI0IDI4NC41MDVsMTU0Ljc0NS0xNTQuMDIxYzkuMzc5LTkuMzM1IDI0LjU0NC05LjMxNyAzMy45MDEuMDRsMjIuNjY3IDIyLjY2N2M5LjM3MyA5LjM3MyA5LjM3MyAyNC41NjkgMCAzMy45NDFMMjQwLjk3MSAzODEuNDc2Yy05LjM3MyA5LjM3Mi0yNC41NjkgOS4zNzItMzMuOTQyIDB6XCJdXG59O1xudmFyIGZhQ2hldnJvbkxlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi1sZWZ0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMDUzXCIsIFwiTTM0LjUyIDIzOS4wM0wyMjguODcgNDQuNjljOS4zNy05LjM3IDI0LjU3LTkuMzcgMzMuOTQgMGwyMi42NyAyMi42N2M5LjM2IDkuMzYgOS4zNyAyNC41Mi4wNCAzMy45TDEzMS40OSAyNTZsMTU0LjAyIDE1NC43NWM5LjM0IDkuMzggOS4zMiAyNC41NC0uMDQgMzMuOWwtMjIuNjcgMjIuNjdjLTkuMzcgOS4zNy0yNC41NyA5LjM3LTMzLjk0IDBMMzQuNTIgMjcyLjk3Yy05LjM3LTkuMzctOS4zNy0yNC41NyAwLTMzLjk0elwiXVxufTtcbnZhciBmYUNoZXZyb25SaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaGV2cm9uLXJpZ2h0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMDU0XCIsIFwiTTI4NS40NzYgMjcyLjk3MUw5MS4xMzIgNDY3LjMxNGMtOS4zNzMgOS4zNzMtMjQuNTY5IDkuMzczLTMzLjk0MSAwbC0yMi42NjctMjIuNjY3Yy05LjM1Ny05LjM1Ny05LjM3NS0yNC41MjItLjA0LTMzLjkwMUwxODguNTA1IDI1NiAzNC40ODQgMTAxLjI1NWMtOS4zMzUtOS4zNzktOS4zMTctMjQuNTQ0LjA0LTMzLjkwMWwyMi42NjctMjIuNjY3YzkuMzczLTkuMzczIDI0LjU2OS05LjM3MyAzMy45NDEgMEwyODUuNDc1IDIzOS4wM2M5LjM3MyA5LjM3MiA5LjM3MyAyNC41NjguMDAxIDMzLjk0MXpcIl1cbn07XG52YXIgZmFDaGV2cm9uVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hldnJvbi11cCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA3N1wiLCBcIk0yNDAuOTcxIDEzMC41MjRsMTk0LjM0MyAxOTQuMzQzYzkuMzczIDkuMzczIDkuMzczIDI0LjU2OSAwIDMzLjk0MWwtMjIuNjY3IDIyLjY2N2MtOS4zNTcgOS4zNTctMjQuNTIyIDkuMzc1LTMzLjkwMS4wNEwyMjQgMjI3LjQ5NSA2OS4yNTUgMzgxLjUxNmMtOS4zNzkgOS4zMzUtMjQuNTQ0IDkuMzE3LTMzLjkwMS0uMDRsLTIyLjY2Ny0yMi42NjdjLTkuMzczLTkuMzczLTkuMzczLTI0LjU2OSAwLTMzLjk0MUwyMDcuMDMgMTMwLjUyNWM5LjM3Mi05LjM3MyAyNC41NjgtOS4zNzMgMzMuOTQxLS4wMDF6XCJdXG59O1xudmFyIGZhQ2hpbGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2hpbGQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYWVcIiwgXCJNMTIwIDcyYzAtMzkuNzY1IDMyLjIzNS03MiA3Mi03MnM3MiAzMi4yMzUgNzIgNzJjMCAzOS43NjQtMzIuMjM1IDcyLTcyIDcycy03Mi0zMi4yMzYtNzItNzJ6bTI1NC42MjcgMS4zNzNjLTEyLjQ5Ni0xMi40OTctMzIuNzU4LTEyLjQ5Ny00NS4yNTQgMEwyNDIuNzQ1IDE2MEgxNDEuMjU0TDU0LjYyNyA3My4zNzNjLTEyLjQ5Ni0xMi40OTctMzIuNzU4LTEyLjQ5Ny00NS4yNTQgMC0xMi40OTcgMTIuNDk3LTEyLjQ5NyAzMi43NTggMCA0NS4yNTVMMTA0IDIxMy4yNTRWNDgwYzAgMTcuNjczIDE0LjMyNyAzMiAzMiAzMmgxNmMxNy42NzMgMCAzMi0xNC4zMjcgMzItMzJWMzY4aDE2djExMmMwIDE3LjY3MyAxNC4zMjcgMzIgMzIgMzJoMTZjMTcuNjczIDAgMzItMTQuMzI3IDMyLTMyVjIxMy4yNTRsOTQuNjI3LTk0LjYyN2MxMi40OTctMTIuNDk3IDEyLjQ5Ny0zMi43NTcgMC00NS4yNTR6XCJdXG59O1xudmFyIGZhQ2h1cmNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NodXJjaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjUxZFwiLCBcIk00NjQuNDYgMjQ2LjY4TDM1MiAxNzkuMlYxMjhoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTQ4VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OHY1MS4ybC0xMTIuNDYgNjcuNDhBMzEuOTk3IDMxLjk5NyAwIDAgMCAxNjAgMjc0LjEyVjUxMmg5NnYtOTZjMC0zNS4zNSAyOC42NS02NCA2NC02NHM2NCAyOC42NSA2NCA2NHY5Nmg5NlYyNzQuMTJjMC0xMS4yNC01LjktMjEuNjYtMTUuNTQtMjcuNDR6TTAgMzk1Ljk2VjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmgxMTJWMzIwTDE5LjM5IDM2Ni41NEEzMi4wMjQgMzIuMDI0IDAgMCAwIDAgMzk1Ljk2em02MjAuNjEtMjkuNDJMNTEyIDMyMHYxOTJoMTEyYzguODQgMCAxNi03LjE2IDE2LTE2VjM5NS45NmMwLTEyLjgtNy42My0yNC4zNy0xOS4zOS0yOS40MnpcIl1cbn07XG52YXIgZmFDaXJjbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTExXCIsIFwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6XCJdXG59O1xudmFyIGZhQ2lyY2xlTm90Y2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2lyY2xlLW5vdGNoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWNlXCIsIFwiTTI4OCAzOS4wNTZ2MTYuNjU5YzAgMTAuODA0IDcuMjgxIDIwLjE1OSAxNy42ODYgMjMuMDY2QzM4My4yMDQgMTAwLjQzNCA0NDAgMTcxLjUxOCA0NDAgMjU2YzAgMTAxLjY4OS04Mi4yOTUgMTg0LTE4NCAxODQtMTAxLjY4OSAwLTE4NC04Mi4yOTUtMTg0LTE4NCAwLTg0LjQ3IDU2Ljc4Ni0xNTUuNTY0IDEzNC4zMTItMTc3LjIxOUMyMTYuNzE5IDc1Ljg3NCAyMjQgNjYuNTE3IDIyNCA1NS43MTJWMzkuMDY0YzAtMTUuNzA5LTE0LjgzNC0yNy4xNTMtMzAuMDQ2LTIzLjIzNEM4Ni42MDMgNDMuNDgyIDcuMzk0IDE0MS4yMDYgOC4wMDMgMjU3LjMzMmMuNzIgMTM3LjA1MiAxMTEuNDc3IDI0Ni45NTYgMjQ4LjUzMSAyNDYuNjY3QzM5My4yNTUgNTAzLjcxMSA1MDQgMzkyLjc4OCA1MDQgMjU2YzAtMTE1LjYzMy03OS4xNC0yMTIuNzc5LTE4Ni4yMTEtMjQwLjIzNkMzMDIuNjc4IDExLjg4OSAyODggMjMuNDU2IDI4OCAzOS4wNTZ6XCJdXG59O1xudmFyIGZhQ2l0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjaXR5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjRmXCIsIFwiTTYxNiAxOTJINDgwVjI0YzAtMTMuMjYtMTAuNzQtMjQtMjQtMjRIMzEyYy0xMy4yNiAwLTI0IDEwLjc0LTI0IDI0djcyaC02NFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djgwaC02NFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNkg4MGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2ODBIMjRjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2MzYwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjE2YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6TTEyOCA0MDRjMCA2LjYzLTUuMzcgMTItMTIgMTJINzZjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMkg3NmMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEySDc2Yy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTEyOCAxOTJjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTAtOTZjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTAtOTZjMCA2LjYzLTUuMzcgMTItMTIgMTJoLTQwYy02LjYzIDAtMTItNS4zNy0xMi0xMnYtNDBjMC02LjYzIDUuMzctMTIgMTItMTJoNDBjNi42MyAwIDEyIDUuMzcgMTIgMTJ2NDB6bTE2MCA5NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEydi00MGMwLTYuNjMgNS4zNy0xMiAxMi0xMmg0MGM2LjYzIDAgMTIgNS4zNyAxMiAxMnY0MHptMC05NmMwIDYuNjMtNS4zNyAxMi0xMiAxMmgtNDBjLTYuNjMgMC0xMi01LjM3LTEyLTEyVjc2YzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0xNjAgMjg4YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwem0wLTk2YzAgNi42My01LjM3IDEyLTEyIDEyaC00MGMtNi42MyAwLTEyLTUuMzctMTItMTJ2LTQwYzAtNi42MyA1LjM3LTEyIDEyLTEyaDQwYzYuNjMgMCAxMiA1LjM3IDEyIDEydjQwelwiXVxufTtcbnZhciBmYUNsaW5pY01lZGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xpbmljLW1lZGljYWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY3ZjJcIiwgXCJNMjg4IDExNUw2OS40NyAzMDcuNzFjLTEuNjIgMS40Ni0zLjY5IDIuMTQtNS40NyAzLjM1VjQ5NmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWMzExLjFjLTEuNy0xLjE2LTMuNzItMS44Mi01LjI2LTMuMnptOTYgMjYxYTggOCAwIDAgMS04IDhoLTU2djU2YTggOCAwIDAgMS04IDhoLTQ4YTggOCAwIDAgMS04LTh2LTU2aC01NmE4IDggMCAwIDEtOC04di00OGE4IDggMCAwIDEgOC04aDU2di01NmE4IDggMCAwIDEgOC04aDQ4YTggOCAwIDAgMSA4IDh2NTZoNTZhOCA4IDAgMCAxIDggOHptMTg2LjY5LTEzOS43MmwtMjU1Ljk0LTIyNmEzOS44NSAzOS44NSAwIDAgMC01My40NSAwbC0yNTYgMjI2YTE2IDE2IDAgMCAwLTEuMjEgMjIuNkwyNS41IDI4Mi43YTE2IDE2IDAgMCAwIDIyLjYgMS4yMUwyNzcuNDIgODEuNjNhMTYgMTYgMCAwIDEgMjEuMTcgMEw1MjcuOTEgMjgzLjlhMTYgMTYgMCAwIDAgMjIuNi0xLjIxbDIxLjQtMjMuODJhMTYgMTYgMCAwIDAtMS4yMi0yMi41OXpcIl1cbn07XG52YXIgZmFDbGlwYm9hcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xpcGJvYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMzI4XCIsIFwiTTM4NCAxMTJ2MzUyYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWMTEyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoODBjMC0zNS4yOSAyOC43MS02NCA2NC02NHM2NCAyOC43MSA2NCA2NGg4MGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4ek0xOTIgNDBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNG05NiAxMTR2LTIwYTYgNiAwIDAgMC02LTZIMTAyYTYgNiAwIDAgMC02IDZ2MjBhNiA2IDAgMCAwIDYgNmgxODBhNiA2IDAgMCAwIDYtNnpcIl1cbn07XG52YXIgZmFDbGlwYm9hcmRDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbGlwYm9hcmQtY2hlY2snLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0NmNcIiwgXCJNMzM2IDY0aC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTkyIDQwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptMTIxLjIgMjMxLjhsLTE0MyAxNDEuOGMtNC43IDQuNy0xMi4zIDQuNi0xNy0uMWwtODIuNi04My4zYy00LjctNC43LTQuNi0xMi4zLjEtMTdMOTkuMSAyODVjNC43LTQuNyAxMi4zLTQuNiAxNyAuMWw0NiA0Ni40IDEwNi0xMDUuMmM0LjctNC43IDEyLjMtNC42IDE3IC4xbDI4LjIgMjguNGM0LjcgNC44IDQuNiAxMi4zLS4xIDE3elwiXVxufTtcbnZhciBmYUNsaXBib2FyZExpc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xpcGJvYXJkLWxpc3QnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0NmRcIiwgXCJNMzM2IDY0aC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNOTYgNDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjQtMTAuNyAyNC0yNCAyNHptMC05NmMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6bTAtOTZjLTEzLjMgMC0yNC0xMC43LTI0LTI0czEwLjctMjQgMjQtMjQgMjQgMTAuNyAyNCAyNC0xMC43IDI0LTI0IDI0em05Ni0xOTJjMTMuMyAwIDI0IDEwLjcgMjQgMjRzLTEwLjcgMjQtMjQgMjQtMjQtMTAuNy0yNC0yNCAxMC43LTI0IDI0LTI0em0xMjggMzY4YzAgNC40LTMuNiA4LTggOEgxNjhjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtOTZjMCA0LjQtMy42IDgtOCA4SDE2OGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNnptMC05NmMwIDQuNC0zLjYgOC04IDhIMTY4Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2elwiXVxufTtcbnZhciBmYUNsb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb2NrJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDE3XCIsIFwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTU3LjEgMzUwLjFMMjI0LjkgMjk0Yy0zLjEtMi4zLTQuOS01LjktNC45LTkuN1YxMTZjMC02LjYgNS40LTEyIDEyLTEyaDQ4YzYuNiAwIDEyIDUuNCAxMiAxMnYxMzcuN2w2My41IDQ2LjJjNS40IDMuOSA2LjUgMTEuNCAyLjYgMTYuOGwtMjguMiAzOC44Yy0zLjkgNS4zLTExLjQgNi41LTE2LjggMi42elwiXVxufTtcbnZhciBmYUNsb25lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb25lJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjRkXCIsIFwiTTQ2NCAwYzI2LjUxIDAgNDggMjEuNDkgNDggNDh2Mjg4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhIMTc2Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjQ4YzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMjg4TTE3NiA0MTZjLTQ0LjExMiAwLTgwLTM1Ljg4OC04MC04MFYxMjhINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMjg4YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTQ4SDE3NnpcIl1cbn07XG52YXIgZmFDbG9zZWRDYXB0aW9uaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3NlZC1jYXB0aW9uaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjBhXCIsIFwiTTQ2NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYyODhjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMjE4LjEgMjg3LjdjMi44LTIuNSA3LjEtMi4xIDkuMi45bDE5LjUgMjcuN2MxLjcgMi40IDEuNSA1LjYtLjUgNy43LTUzLjYgNTYuOC0xNzIuOCAzMi4xLTE3Mi44LTY3LjkgMC05Ny4zIDEyMS43LTExOS41IDE3Mi41LTcwLjEgMi4xIDIgMi41IDMuMiAxIDUuN2wtMTcuNSAzMC41Yy0xLjkgMy4xLTYuMiA0LTkuMSAxLjctNDAuOC0zMi05NC42LTE0LjktOTQuNiAzMS4yLjEgNDggNTEuMSA3MC41IDkyLjMgMzIuNnptMTkwLjQgMGMyLjgtMi41IDcuMS0yLjEgOS4yLjlsMTkuNSAyNy43YzEuNyAyLjQgMS41IDUuNi0uNSA3LjctNTMuNSA1Ni45LTE3Mi43IDMyLjEtMTcyLjctNjcuOSAwLTk3LjMgMTIxLjctMTE5LjUgMTcyLjUtNzAuMSAyLjEgMiAyLjUgMy4yIDEgNS43TDQyMCAyMjIuMmMtMS45IDMuMS02LjIgNC05LjEgMS43LTQwLjgtMzItOTQuNi0xNC45LTk0LjYgMzEuMiAwIDQ4IDUxIDcwLjUgOTIuMiAzMi42elwiXVxufTtcbnZhciBmYUNsb3VkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMGMyXCIsIFwiTTUzNy42IDIyNi42YzQuMS0xMC43IDYuNC0yMi40IDYuNC0zNC42IDAtNTMtNDMtOTYtOTYtOTYtMTkuNyAwLTM4LjEgNi01My4zIDE2LjJDMzY3IDY0LjIgMzE1LjMgMzIgMjU2IDMyYy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MCAwIDIuNy4xIDUuNC4yIDguMUM0MC4yIDIxOS44IDAgMjczLjIgMCAzMzZjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRoMzY4YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4IDAtNjEuOS00NC0xMTMuNi0xMDIuNC0xMjUuNHpcIl1cbn07XG52YXIgZmFDbG91ZERvd25sb2FkQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkLWRvd25sb2FkLWFsdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjM4MVwiLCBcIk01MzcuNiAyMjYuNmM0LjEtMTAuNyA2LjQtMjIuNCA2LjQtMzQuNiAwLTUzLTQzLTk2LTk2LTk2LTE5LjcgMC0zOC4xIDYtNTMuMyAxNi4yQzM2NyA2NC4yIDMxNS4zIDMyIDI1NiAzMmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCAyLjcuMSA1LjQuMiA4LjFDNDAuMiAyMTkuOCAwIDI3My4yIDAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0aDM2OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjR6bS0xMzIuOSA4OC43TDI5OS4zIDQyMC43Yy02LjIgNi4yLTE2LjQgNi4yLTIyLjYgMEwxNzEuMyAzMTUuM2MtMTAuMS0xMC4xLTIuOS0yNy4zIDExLjMtMjcuM0gyNDhWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MTEyaDY1LjRjMTQuMiAwIDIxLjQgMTcuMiAxMS4zIDI3LjN6XCJdXG59O1xudmFyIGZhQ2xvdWRNZWF0YmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1tZWF0YmFsbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjczYlwiLCBcIk00OCAzNTJjLTI2LjUgMC00OCAyMS41LTQ4IDQ4czIxLjUgNDggNDggNDggNDgtMjEuNSA0OC00OC0yMS41LTQ4LTQ4LTQ4em00MTYgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OCA0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDh6bS0xMTkgMTEuMWM0LjYtMTQuNSAxLjYtMzAuOC05LjgtNDIuMy0xMS41LTExLjUtMjcuOC0xNC40LTQyLjMtOS45LTctMTMuNS0yMC43LTIzLTM2LjktMjNzLTI5LjkgOS41LTM2LjkgMjNjLTE0LjUtNC42LTMwLjgtMS42LTQyLjMgOS45LTExLjUgMTEuNS0xNC40IDI3LjgtOS45IDQyLjMtMTMuNSA3LTIzIDIwLjctMjMgMzYuOXM5LjUgMjkuOSAyMyAzNi45Yy00LjYgMTQuNS0xLjYgMzAuOCA5LjkgNDIuMyA4LjIgOC4yIDE4LjkgMTIuMyAyOS43IDEyLjMgNC4zIDAgOC41LTEuMSAxMi42LTIuNSA3IDEzLjUgMjAuNyAyMyAzNi45IDIzczI5LjktOS41IDM2LjktMjNjNC4xIDEuMyA4LjMgMi41IDEyLjYgMi41IDEwLjggMCAyMS41LTQuMSAyOS43LTEyLjMgMTEuNS0xMS41IDE0LjQtMjcuOCA5LjgtNDIuMyAxMy41LTcgMjMtMjAuNyAyMy0zNi45cy05LjUtMjkuOS0yMy0zNi45ek01MTIgMjI0YzAtNTMtNDMtOTYtOTYtOTYtLjYgMC0xLjEuMi0xLjYuMiAxLjEtNS4yIDEuNi0xMC42IDEuNi0xNi4yIDAtNDQuMi0zNS44LTgwLTgwLTgwLTI0LjYgMC00Ni4zIDExLjMtNjEgMjguOEMyNTYuNCAyNC44IDIxOS4zIDAgMTc2IDAgMTE0LjEgMCA2NCA1MC4xIDY0IDExMmMwIDcuMy44IDE0LjMgMi4xIDIxLjJDMjcuOCAxNDUuOCAwIDE4MS41IDAgMjI0YzAgNTMgNDMgOTYgOTYgOTZoNDMuNGMzLjYtOCA4LjQtMTUuNCAxNC44LTIxLjggMTMuNS0xMy41IDMxLjUtMjEuMSA1MC44LTIxLjMgMTMuNS0xMy4yIDMxLjctMjAuOSA1MS0yMC45czM3LjUgNy43IDUxIDIwLjljMTkuMy4yIDM3LjMgNy44IDUwLjggMjEuMyA2LjQgNi40IDExLjMgMTMuOCAxNC44IDIxLjhINDE2YzUzIDAgOTYtNDMgOTYtOTZ6XCJdXG59O1xudmFyIGZhQ2xvdWRNb29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nsb3VkLW1vb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY2YzNcIiwgXCJNMzQyLjggMzUyLjdjNS43LTkuNiA5LjItMjAuNyA5LjItMzIuNyAwLTM1LjMtMjguNy02NC02NC02NC0xNy4yIDAtMzIuOCA2LjktNDQuMyAxNy45LTE2LjMtMjkuNi00Ny41LTQ5LjktODMuNy00OS45LTUzIDAtOTYgNDMtOTYgOTYgMCAyIC41IDMuOC42IDUuN0MyNy4xIDMzOC44IDAgMzc0LjEgMCA0MTZjMCA1MyA0MyA5NiA5NiA5NmgyNDBjNDQuMiAwIDgwLTM1LjggODAtODAgMC00MS45LTMyLjMtNzUuOC03My4yLTc5LjN6bTIyMi41LTU0LjNjLTkzLjEgMTcuNy0xNzguNS01My43LTE3OC41LTE0Ny43IDAtNTQuMiAyOS0xMDQgNzYuMS0xMzAuOCA3LjMtNC4xIDUuNC0xNS4xLTIuOC0xNi43QzQ0OC40IDEuMSA0MzYuNyAwIDQyNSAwIDMxOS4xIDAgMjMzLjEgODUuOSAyMzMuMSAxOTJjMCA4LjUuNyAxNi44IDEuOCAyNSA1LjkgNC4zIDExLjYgOC45IDE2LjcgMTQuMiAxMS40LTQuNyAyMy43LTcuMiAzNi40LTcuMiA1Mi45IDAgOTYgNDMuMSA5NiA5NiAwIDMuNi0uMiA3LjItLjYgMTAuNyAyMy42IDEwLjggNDIuNCAyOS41IDUzLjUgNTIuNiA1NC40LTMuNCAxMDMuNy0yOS4zIDEzNy4xLTcwLjQgNS4zLTYuNS0uNS0xNi4xLTguNy0xNC41elwiXVxufTtcbnZhciBmYUNsb3VkTW9vblJhaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtbW9vbi1yYWluJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNzNjXCIsIFwiTTM1MC41IDIyNS41Yy02LjktMzcuMi0zOS4zLTY1LjUtNzguNS02NS41LTEyLjMgMC0yMy45IDMtMzQuMyA4LTE3LjQtMjQuMS00NS42LTQwLTc3LjctNDAtNTMgMC05NiA0My05NiA5NiAwIC41LjIgMS4xLjIgMS42QzI3LjYgMjMyLjkgMCAyNjUuMiAwIDMwNGMwIDQ0LjIgMzUuOCA4MCA4MCA4MGgyNTZjNDQuMiAwIDgwLTM1LjggODAtODAgMC0zOS4yLTI4LjItNzEuNy02NS41LTc4LjV6bTIxNy40LTEuN2MtNzAuNCAxMy4zLTEzNS00MC4zLTEzNS0xMTAuOCAwLTQwLjYgMjEuOS03OCA1Ny41LTk4LjEgNS41LTMuMSA0LjEtMTEuNC0yLjEtMTIuNUM0NzkuNi44IDQ3MC43IDAgNDYxLjggMGMtNzcuOSAwLTE0MS4xIDYxLjItMTQ0LjQgMTM3LjkgMjYuNyAxMS45IDQ4LjIgMzMuOCA1OC45IDYxLjcgMzcuMSAxNC4zIDY0IDQ3LjQgNzAuMiA4Ni44IDUuMS41IDEwIDEuNSAxNS4yIDEuNSA0NC43IDAgODUuNi0yMC4yIDExMi42LTUzLjMgNC4yLTQuOC0uMi0xMi02LjQtMTAuOHpNMzY0LjUgNDE4LjFjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44em0tOTYgMGMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHptLTk2IDBjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44elwiXVxufTtcbnZhciBmYUNsb3VkUmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1yYWluJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzNkXCIsIFwiTTQxNiAxMjhjLS42IDAtMS4xLjItMS42LjIgMS4xLTUuMiAxLjYtMTAuNiAxLjYtMTYuMiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC42IDAtNDYuMyAxMS4zLTYxIDI4LjhDMjU2LjQgMjQuOCAyMTkuMyAwIDE3NiAwIDExNC4xIDAgNjQgNTAuMSA2NCAxMTJjMCA3LjMuOCAxNC4zIDIuMSAyMS4yQzI3LjggMTQ1LjggMCAxODEuNSAwIDIyNGMwIDUzIDQzIDk2IDk2IDk2aDMyMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NnpNODggMzc0LjJjLTEyLjggNDQuNC00MCA1Ni40LTQwIDg3LjcgMCAyNy43IDIxLjUgNTAuMSA0OCA1MC4xczQ4LTIyLjQgNDgtNTAuMWMwLTMxLjQtMjcuMi00My4xLTQwLTg3LjctMi4yLTguMS0xMy41LTguNS0xNiAwem0xNjAgMGMtMTIuOCA0NC40LTQwIDU2LjQtNDAgODcuNyAwIDI3LjcgMjEuNSA1MC4xIDQ4IDUwLjFzNDgtMjIuNCA0OC01MC4xYzAtMzEuNC0yNy4yLTQzLjEtNDAtODcuNy0yLjItOC4xLTEzLjUtOC41LTE2IDB6bTE2MCAwYy0xMi44IDQ0LjQtNDAgNTYuNC00MCA4Ny43IDAgMjcuNyAyMS41IDUwLjEgNDggNTAuMXM0OC0yMi40IDQ4LTUwLjFjMC0zMS40LTI3LjItNDMuMS00MC04Ny43LTIuMi04LjEtMTMuNS04LjUtMTYgMHpcIl1cbn07XG52YXIgZmFDbG91ZFNob3dlcnNIZWF2eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1zaG93ZXJzLWhlYXZ5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzQwXCIsIFwiTTE4My45IDM3MC4xYy03LjYtNC40LTE3LjQtMS44LTIxLjggNmwtNjQgMTEyYy00LjQgNy43LTEuNyAxNy41IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWw2NC0xMTJjNC40LTcuNiAxLjctMTcuNC02LTIxLjh6bTk2IDBjLTcuNi00LjQtMTcuNC0xLjgtMjEuOCA2bC02NCAxMTJjLTQuNCA3LjctMS43IDE3LjUgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDY0LTExMmM0LjQtNy42IDEuNy0xNy40LTYtMjEuOHptLTE5MiAwYy03LjYtNC40LTE3LjQtMS44LTIxLjggNmwtNjQgMTEyYy00LjQgNy43LTEuNyAxNy41IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWw2NC0xMTJjNC40LTcuNiAxLjctMTcuNC02LTIxLjh6bTM4NCAwYy03LjYtNC40LTE3LjQtMS44LTIxLjggNmwtNjQgMTEyYy00LjQgNy43LTEuNyAxNy41IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWw2NC0xMTJjNC40LTcuNiAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC40LTE3LjQtMS44LTIxLjggNmwtNjQgMTEyYy00LjQgNy43LTEuNyAxNy41IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWw2NC0xMTJjNC40LTcuNiAxLjctMTcuNC02LTIxLjh6TTQxNiAxMjhjLS42IDAtMS4xLjItMS42LjIgMS4xLTUuMiAxLjYtMTAuNiAxLjYtMTYuMiAwLTQ0LjItMzUuOC04MC04MC04MC0yNC42IDAtNDYuMyAxMS4zLTYxIDI4LjhDMjU2LjQgMjQuOCAyMTkuMyAwIDE3NiAwIDExNC4yIDAgNjQgNTAuMSA2NCAxMTJjMCA3LjMuOCAxNC4zIDIuMSAyMS4yQzI3LjggMTQ1LjggMCAxODEuNSAwIDIyNGMwIDUzIDQzIDk2IDk2IDk2aDMyMGM1MyAwIDk2LTQzIDk2LTk2cy00My05Ni05Ni05NnpcIl1cbn07XG52YXIgZmFDbG91ZFN1biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1zdW4nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2YzRcIiwgXCJNNTc1LjIgMzI1LjdjLjItMS45LjgtMy43LjgtNS42IDAtMzUuMy0yOC43LTY0LTY0LTY0LTEyLjYgMC0yNC4yIDMuOC0zNC4xIDEwLTE3LjYtMzguOC01Ni41LTY2LTEwMS45LTY2LTYxLjggMC0xMTIgNTAuMS0xMTIgMTEyIDAgMyAuNyA1LjguOSA4LjctNDkuNiAzLjctODguOSA0NC43LTg4LjkgOTUuMyAwIDUzIDQzIDk2IDk2IDk2aDI3MmM1MyAwIDk2LTQzIDk2LTk2IDAtNDIuMS0yNy4yLTc3LjQtNjQuOC05MC40em0tNDMwLjQtMjIuNmMtNDMuNy00My43LTQzLjctMTE0LjcgMC0xNTguMyA0My43LTQzLjcgMTE0LjctNDMuNyAxNTguNCAwIDkuNyA5LjcgMTYuOSAyMC45IDIyLjMgMzIuNyA5LjgtMy43IDIwLjEtNiAzMC43LTcuNUwzODYgODEuMWM0LTExLjktNy4zLTIzLjEtMTkuMi0xOS4yTDI3OSA5MS4yIDIzNy41IDguNEMyMzItMi44IDIxNi0yLjggMjEwLjQgOC40TDE2OSA5MS4yIDgxLjEgNjEuOUM2OS4zIDU4IDU4IDY5LjMgNjEuOSA4MS4xbDI5LjMgODcuOC04Mi44IDQxLjVjLTExLjIgNS42LTExLjIgMjEuNSAwIDI3LjFsODIuOCA0MS40LTI5LjMgODcuOGMtNCAxMS45IDcuMyAyMy4xIDE5LjIgMTkuMmw3Ni4xLTI1LjNjNi4xLTEyLjQgMTQtMjMuNyAyMy42LTMzLjUtMTMuMS01LjQtMjUuNC0xMy40LTM2LTI0em0tNC44LTc5LjJjMCA0MC44IDI5LjMgNzQuOCA2Ny45IDgyLjMgOC00LjcgMTYuMy04LjggMjUuMi0xMS43IDUuNC00NC4zIDMxLTgyLjUgNjcuNC0xMDVDMjg3LjMgMTYwLjQgMjU4IDE0MCAyMjQgMTQwYy00Ni4zIDAtODQgMzcuNi04NCA4My45elwiXVxufTtcbnZhciBmYUNsb3VkU3VuUmFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjbG91ZC1zdW4tcmFpbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjc0M1wiLCBcIk01MTAuNSAyMjUuNWMtNi45LTM3LjItMzkuMy02NS41LTc4LjUtNjUuNS0xMi4zIDAtMjMuOSAzLTM0LjMgOC0xNy40LTI0LjEtNDUuNi00MC03Ny43LTQwLTUzIDAtOTYgNDMtOTYgOTYgMCAuNS4yIDEuMS4yIDEuNkMxODcuNiAyMzMgMTYwIDI2NS4yIDE2MCAzMDRjMCA0NC4yIDM1LjggODAgODAgODBoMjU2YzQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtMzkuMi0yOC4yLTcxLjctNjUuNS03OC41em0tMzg2LjQgMzQuNGMtMzcuNC0zNy40LTM3LjQtOTguMyAwLTEzNS44IDM0LjYtMzQuNiA4OS4xLTM2LjggMTI2LjctNy40IDIwLTEyLjkgNDMuNi0yMC43IDY5LjItMjAuNy43IDAgMS4zLjIgMiAuMmw4LjktMjYuN2MzLjQtMTAuMi02LjMtMTkuOC0xNi41LTE2LjRsLTc1LjMgMjUuMS0zNS41LTcxYy00LjgtOS42LTE4LjUtOS42LTIzLjMgMGwtMzUuNSA3MS03NS4zLTI1LjFjLTEwLjItMy40LTE5LjggNi4zLTE2LjQgMTYuNWwyNS4xIDc1LjMtNzEgMzUuNWMtOS42IDQuOC05LjYgMTguNSAwIDIzLjNsNzEgMzUuNS0yNS4xIDc1LjNjLTMuNCAxMC4yIDYuMyAxOS44IDE2LjUgMTYuNWw1OS4yLTE5LjdjLS4yLTIuNC0uNy00LjctLjctNy4yIDAtMTIuNSAyLjMtMjQuNSA2LjItMzUuOS0zLjYtMi43LTcuMS01LjItMTAuMi04LjN6bTY5LjgtNThjNC4zLTI0LjUgMTUuOC00Ni40IDMxLjktNjQtOS44LTYuMi0yMS40LTkuOS0zMy44LTkuOS0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDE4LjcgOC4yIDM1LjQgMjEuMSA0Ny4xIDExLjMtMTUuOSAyNi42LTI4LjkgNDQuOC0zNy4yem0zMzAuNiAyMTYuMmMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6bS05NiAwYy03LjYtNC4zLTE3LjQtMS44LTIxLjggNmwtMzYuNiA2NGMtNC40IDcuNy0xLjcgMTcuNCA2IDIxLjggMi41IDEuNCA1LjIgMi4xIDcuOSAyLjEgNS41IDAgMTAuOS0yLjkgMTMuOS04LjFsMzYuNi02NGM0LjMtNy43IDEuNy0xNy40LTYtMjEuOHptLTk2IDBjLTcuNi00LjMtMTcuNC0xLjgtMjEuOCA2bC0zNi42IDY0Yy00LjQgNy43LTEuNyAxNy40IDYgMjEuOCAyLjUgMS40IDUuMiAyLjEgNy45IDIuMSA1LjUgMCAxMC45LTIuOSAxMy45LTguMWwzNi42LTY0YzQuMy03LjcgMS43LTE3LjQtNi0yMS44em0tOTYgMGMtNy42LTQuMy0xNy40LTEuOC0yMS44IDZsLTM2LjYgNjRjLTQuNCA3LjctMS43IDE3LjQgNiAyMS44IDIuNSAxLjQgNS4yIDIuMSA3LjkgMi4xIDUuNSAwIDEwLjktMi45IDEzLjktOC4xbDM2LjYtNjRjNC4zLTcuNyAxLjctMTcuNC02LTIxLjh6XCJdXG59O1xudmFyIGZhQ2xvdWRVcGxvYWRBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY2xvdWQtdXBsb2FkLWFsdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjM4MlwiLCBcIk01MzcuNiAyMjYuNmM0LjEtMTAuNyA2LjQtMjIuNCA2LjQtMzQuNiAwLTUzLTQzLTk2LTk2LTk2LTE5LjcgMC0zOC4xIDYtNTMuMyAxNi4yQzM2NyA2NC4yIDMxNS4zIDMyIDI1NiAzMmMtODguNCAwLTE2MCA3MS42LTE2MCAxNjAgMCAyLjcuMSA1LjQuMiA4LjFDNDAuMiAyMTkuOCAwIDI3My4yIDAgMzM2YzAgNzkuNSA2NC41IDE0NCAxNDQgMTQ0aDM2OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOCAwLTYxLjktNDQtMTEzLjYtMTAyLjQtMTI1LjR6TTM5My40IDI4OEgzMjh2MTEyYzAgOC44LTcuMiAxNi0xNiAxNmgtNDhjLTguOCAwLTE2LTcuMi0xNi0xNlYyODhoLTY1LjRjLTE0LjMgMC0yMS40LTE3LjItMTEuMy0yNy4zbDEwNS40LTEwNS40YzYuMi02LjIgMTYuNC02LjIgMjIuNiAwbDEwNS40IDEwNS40YzEwLjEgMTAuMSAyLjkgMjcuMy0xMS4zIDI3LjN6XCJdXG59O1xudmFyIGZhQ29ja3RhaWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29ja3RhaWwnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1NjFcIiwgXCJNMjk2IDQ2NGgtNTZWMzM4Ljc4bDE2OC43NC0xNjguNzNjMTUuNTItMTUuNTIgNC41My00Mi4wNS0xNy40Mi00Mi4wNUgyNC42OGMtMjEuOTUgMC0zMi45NCAyNi41My0xNy40MiA0Mi4wNUwxNzYgMzM4Ljc4VjQ2NGgtNTZjLTIyLjA5IDAtNDAgMTcuOTEtNDAgNDAgMCA0LjQyIDMuNTggOCA4IDhoMjQwYzQuNDIgMCA4LTMuNTggOC04IDAtMjIuMDktMTcuOTEtNDAtNDAtNDB6TTQzMiAwYy02Mi42MSAwLTExNS4zNSA0MC4yLTEzNS4xOCA5Nmg1Mi41NGMxNi42NS0yOC41NSA0Ny4yNy00OCA4Mi42NC00OCA1Mi45MyAwIDk2IDQzLjA2IDk2IDk2cy00My4wNyA5Ni05NiA5NmMtMTQuMDQgMC0yNy4yOS0zLjItMzkuMzItOC42NGwtMzUuMjYgMzUuMjZDMzc5LjIzIDI3OS45MiA0MDQuNTkgMjg4IDQzMiAyODhjNzkuNTMgMCAxNDQtNjQuNDcgMTQ0LTE0NFM1MTEuNTMgMCA0MzIgMHpcIl1cbn07XG52YXIgZmFDb2RlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvZGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYxMjFcIiwgXCJNMjc4LjkgNTExLjVsLTYxLTE3LjdjLTYuNC0xLjgtMTAtOC41LTguMi0xNC45TDM0Ni4yIDguN2MxLjgtNi40IDguNS0xMCAxNC45LTguMmw2MSAxNy43YzYuNCAxLjggMTAgOC41IDguMiAxNC45TDI5My44IDUwMy4zYy0xLjkgNi40LTguNSAxMC4xLTE0LjkgOC4yem0tMTE0LTExMi4ybDQzLjUtNDYuNGM0LjYtNC45IDQuMy0xMi43LS44LTE3LjJMMTE3IDI1Nmw5MC42LTc5LjdjNS4xLTQuNSA1LjUtMTIuMy44LTE3LjJsLTQzLjUtNDYuNGMtNC41LTQuOC0xMi4xLTUuMS0xNy0uNUwzLjggMjQ3LjJjLTUuMSA0LjctNS4xIDEyLjggMCAxNy41bDE0NC4xIDEzNS4xYzQuOSA0LjYgMTIuNSA0LjQgMTctLjV6bTMyNy4yLjZsMTQ0LjEtMTM1LjFjNS4xLTQuNyA1LjEtMTIuOCAwLTE3LjVMNDkyLjEgMTEyLjFjLTQuOC00LjUtMTIuNC00LjMtMTcgLjVMNDMxLjYgMTU5Yy00LjYgNC45LTQuMyAxMi43LjggMTcuMkw1MjMgMjU2bC05MC42IDc5LjdjLTUuMSA0LjUtNS41IDEyLjMtLjggMTcuMmw0My41IDQ2LjRjNC41IDQuOSAxMi4xIDUuMSAxNyAuNnpcIl1cbn07XG52YXIgZmFDb2RlQnJhbmNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvZGUtYnJhbmNoJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMTI2XCIsIFwiTTM4NCAxNDRjMC00NC4yLTM1LjgtODAtODAtODBzLTgwIDM1LjgtODAgODBjMCAzNi40IDI0LjMgNjcuMSA1Ny41IDc2LjgtLjYgMTYuMS00LjIgMjguNS0xMSAzNi45LTE1LjQgMTkuMi00OS4zIDIyLjQtODUuMiAyNS43LTI4LjIgMi42LTU3LjQgNS40LTgxLjMgMTYuOXYtMTQ0YzMyLjUtMTAuMiA1Ni00MC41IDU2LTc2LjMgMC00NC4yLTM1LjgtODAtODAtODBTMCAzNS44IDAgODBjMCAzNS44IDIzLjUgNjYuMSA1NiA3Ni4zdjE5OS4zQzIzLjUgMzY1LjkgMCAzOTYuMiAwIDQzMmMwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtMzQtMjEuMi02My4xLTUxLjItNzQuNiAzLjEtNS4yIDcuOC05LjggMTQuOS0xMy40IDE2LjItOC4yIDQwLjQtMTAuNCA2Ni4xLTEyLjggNDIuMi0zLjkgOTAtOC40IDExOC4yLTQzLjQgMTQtMTcuNCAyMS4xLTM5LjggMjEuNi02Ny45IDMxLjYtMTAuOCA1NC40LTQwLjcgNTQuNC03NS45ek04MCA2NGM4LjggMCAxNiA3LjIgMTYgMTZzLTcuMiAxNi0xNiAxNi0xNi03LjItMTYtMTYgNy4yLTE2IDE2LTE2em0wIDM4NGMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0yMjQtMzIwYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2LTE2LTcuMi0xNi0xNiA3LjItMTYgMTYtMTZ6XCJdXG59O1xudmFyIGZhQ29mZmVlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvZmZlZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjBmNFwiLCBcIk0xOTIgMzg0aDE5MmM1MyAwIDk2LTQzIDk2LTk2aDMyYzcwLjYgMCAxMjgtNTcuNCAxMjgtMTI4UzU4Mi42IDMyIDUxMiAzMkgxMjBjLTEzLjMgMC0yNCAxMC43LTI0IDI0djIzMmMwIDUzIDQzIDk2IDk2IDk2ek01MTIgOTZjMzUuMyAwIDY0IDI4LjcgNjQgNjRzLTI4LjcgNjQtNjQgNjRoLTMyVjk2aDMyem00Ny43IDM4NEg0OC4zYy00Ny42IDAtNjEtNjQtMzYtNjRoNTgzLjNjMjUgMCAxMS44IDY0LTM1LjkgNjR6XCJdXG59O1xudmFyIGZhQ29nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAxM1wiLCBcIk00ODcuNCAzMTUuN2wtNDIuNi0yNC42YzQuMy0yMy4yIDQuMy00NyAwLTcwLjJsNDIuNi0yNC42YzQuOS0yLjggNy4xLTguNiA1LjUtMTQtMTEuMS0zNS42LTMwLTY3LjgtNTQuNy05NC42LTMuOC00LjEtMTAtNS4xLTE0LjgtMi4zTDM4MC44IDExMGMtMTcuOS0xNS40LTM4LjUtMjcuMy02MC44LTM1LjFWMjUuOGMwLTUuNi0zLjktMTAuNS05LjQtMTEuNy0zNi43LTguMi03NC4zLTcuOC0xMDkuMiAwLTUuNSAxLjItOS40IDYuMS05LjQgMTEuN1Y3NWMtMjIuMiA3LjktNDIuOCAxOS44LTYwLjggMzUuMUw4OC43IDg1LjVjLTQuOS0yLjgtMTEtMS45LTE0LjggMi4zLTI0LjcgMjYuNy00My42IDU4LjktNTQuNyA5NC42LTEuNyA1LjQuNiAxMS4yIDUuNSAxNEw2Ny4zIDIyMWMtNC4zIDIzLjItNC4zIDQ3IDAgNzAuMmwtNDIuNiAyNC42Yy00LjkgMi44LTcuMSA4LjYtNS41IDE0IDExLjEgMzUuNiAzMCA2Ny44IDU0LjcgOTQuNiAzLjggNC4xIDEwIDUuMSAxNC44IDIuM2w0Mi42LTI0LjZjMTcuOSAxNS40IDM4LjUgMjcuMyA2MC44IDM1LjF2NDkuMmMwIDUuNiAzLjkgMTAuNSA5LjQgMTEuNyAzNi43IDguMiA3NC4zIDcuOCAxMDkuMiAwIDUuNS0xLjIgOS40LTYuMSA5LjQtMTEuN3YtNDkuMmMyMi4yLTcuOSA0Mi44LTE5LjggNjAuOC0zNS4xbDQyLjYgMjQuNmM0LjkgMi44IDExIDEuOSAxNC44LTIuMyAyNC43LTI2LjcgNDMuNi01OC45IDU0LjctOTQuNiAxLjUtNS41LS43LTExLjMtNS42LTE0LjF6TTI1NiAzMzZjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwiXVxufTtcbnZhciBmYUNvZ3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29ncycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjA4NVwiLCBcIk01MTIuMSAxOTFsLTguMiAxNC4zYy0zIDUuMy05LjQgNy41LTE1LjEgNS40LTExLjgtNC40LTIyLjYtMTAuNy0zMi4xLTE4LjYtNC42LTMuOC01LjgtMTAuNS0yLjgtMTUuN2w4LjItMTQuM2MtNi45LTgtMTIuMy0xNy4zLTE1LjktMjcuNGgtMTYuNWMtNiAwLTExLjItNC4zLTEyLjItMTAuMy0yLTEyLTIuMS0yNC42IDAtMzcuMSAxLTYgNi4yLTEwLjQgMTIuMi0xMC40aDE2LjVjMy42LTEwLjEgOS0xOS40IDE1LjktMjcuNGwtOC4yLTE0LjNjLTMtNS4yLTEuOS0xMS45IDIuOC0xNS43IDkuNS03LjkgMjAuNC0xNC4yIDMyLjEtMTguNiA1LjctMi4xIDEyLjEuMSAxNS4xIDUuNGw4LjIgMTQuM2MxMC41LTEuOSAyMS4yLTEuOSAzMS43IDBMNTUyIDYuM2MzLTUuMyA5LjQtNy41IDE1LjEtNS40IDExLjggNC40IDIyLjYgMTAuNyAzMi4xIDE4LjYgNC42IDMuOCA1LjggMTAuNSAyLjggMTUuN2wtOC4yIDE0LjNjNi45IDggMTIuMyAxNy4zIDE1LjkgMjcuNGgxNi41YzYgMCAxMS4yIDQuMyAxMi4yIDEwLjMgMiAxMiAyLjEgMjQuNiAwIDM3LjEtMSA2LTYuMiAxMC40LTEyLjIgMTAuNGgtMTYuNWMtMy42IDEwLjEtOSAxOS40LTE1LjkgMjcuNGw4LjIgMTQuM2MzIDUuMiAxLjkgMTEuOS0yLjggMTUuNy05LjUgNy45LTIwLjQgMTQuMi0zMi4xIDE4LjYtNS43IDIuMS0xMi4xLS4xLTE1LjEtNS40bC04LjItMTQuM2MtMTAuNCAxLjktMjEuMiAxLjktMzEuNyAwem0tMTAuNS01OC44YzM4LjUgMjkuNiA4Mi40LTE0LjMgNTIuOC01Mi44LTM4LjUtMjkuNy04Mi40IDE0LjMtNTIuOCA1Mi44ek0zODYuMyAyODYuMWwzMy43IDE2LjhjMTAuMSA1LjggMTQuNSAxOC4xIDEwLjUgMjkuMS04LjkgMjQuMi0yNi40IDQ2LjQtNDIuNiA2NS44LTcuNCA4LjktMjAuMiAxMS4xLTMwLjMgNS4zbC0yOS4xLTE2LjhjLTE2IDEzLjctMzQuNiAyNC42LTU0LjkgMzEuN3YzMy42YzAgMTEuNi04LjMgMjEuNi0xOS43IDIzLjYtMjQuNiA0LjItNTAuNCA0LjQtNzUuOSAwLTExLjUtMi0yMC0xMS45LTIwLTIzLjZWNDE4Yy0yMC4zLTcuMi0zOC45LTE4LTU0LjktMzEuN0w3NCA0MDNjLTEwIDUuOC0yMi45IDMuNi0zMC4zLTUuMy0xNi4yLTE5LjQtMzMuMy00MS42LTQyLjItNjUuNy00LTEwLjkuNC0yMy4yIDEwLjUtMjkuMWwzMy4zLTE2LjhjLTMuOS0yMC45LTMuOS00Mi40IDAtNjMuNEwxMiAyMDUuOGMtMTAuMS01LjgtMTQuNi0xOC4xLTEwLjUtMjkgOC45LTI0LjIgMjYtNDYuNCA0Mi4yLTY1LjggNy40LTguOSAyMC4yLTExLjEgMzAuMy01LjNsMjkuMSAxNi44YzE2LTEzLjcgMzQuNi0yNC42IDU0LjktMzEuN1Y1Ny4xYzAtMTEuNSA4LjItMjEuNSAxOS42LTIzLjUgMjQuNi00LjIgNTAuNS00LjQgNzYtLjEgMTEuNSAyIDIwIDExLjkgMjAgMjMuNnYzMy42YzIwLjMgNy4yIDM4LjkgMTggNTQuOSAzMS43bDI5LjEtMTYuOGMxMC01LjggMjIuOS0zLjYgMzAuMyA1LjMgMTYuMiAxOS40IDMzLjIgNDEuNiA0Mi4xIDY1LjggNCAxMC45LjEgMjMuMi0xMCAyOS4xbC0zMy43IDE2LjhjMy45IDIxIDMuOSA0Mi41IDAgNjMuNXptLTExNy42IDIxLjFjNTkuMi03Ny0yOC43LTE2NC45LTEwNS43LTEwNS43LTU5LjIgNzcgMjguNyAxNjQuOSAxMDUuNyAxMDUuN3ptMjQzLjQgMTgyLjdsLTguMiAxNC4zYy0zIDUuMy05LjQgNy41LTE1LjEgNS40LTExLjgtNC40LTIyLjYtMTAuNy0zMi4xLTE4LjYtNC42LTMuOC01LjgtMTAuNS0yLjgtMTUuN2w4LjItMTQuM2MtNi45LTgtMTIuMy0xNy4zLTE1LjktMjcuNGgtMTYuNWMtNiAwLTExLjItNC4zLTEyLjItMTAuMy0yLTEyLTIuMS0yNC42IDAtMzcuMSAxLTYgNi4yLTEwLjQgMTIuMi0xMC40aDE2LjVjMy42LTEwLjEgOS0xOS40IDE1LjktMjcuNGwtOC4yLTE0LjNjLTMtNS4yLTEuOS0xMS45IDIuOC0xNS43IDkuNS03LjkgMjAuNC0xNC4yIDMyLjEtMTguNiA1LjctMi4xIDEyLjEuMSAxNS4xIDUuNGw4LjIgMTQuM2MxMC41LTEuOSAyMS4yLTEuOSAzMS43IDBsOC4yLTE0LjNjMy01LjMgOS40LTcuNSAxNS4xLTUuNCAxMS44IDQuNCAyMi42IDEwLjcgMzIuMSAxOC42IDQuNiAzLjggNS44IDEwLjUgMi44IDE1LjdsLTguMiAxNC4zYzYuOSA4IDEyLjMgMTcuMyAxNS45IDI3LjRoMTYuNWM2IDAgMTEuMiA0LjMgMTIuMiAxMC4zIDIgMTIgMi4xIDI0LjYgMCAzNy4xLTEgNi02LjIgMTAuNC0xMi4yIDEwLjRoLTE2LjVjLTMuNiAxMC4xLTkgMTkuNC0xNS45IDI3LjRsOC4yIDE0LjNjMyA1LjIgMS45IDExLjktMi44IDE1LjctOS41IDcuOS0yMC40IDE0LjItMzIuMSAxOC42LTUuNyAyLjEtMTIuMS0uMS0xNS4xLTUuNGwtOC4yLTE0LjNjLTEwLjQgMS45LTIxLjIgMS45LTMxLjcgMHpNNTAxLjYgNDMxYzM4LjUgMjkuNiA4Mi40LTE0LjMgNTIuOC01Mi44LTM4LjUtMjkuNi04Mi40IDE0LjMtNTIuOCA1Mi44elwiXVxufTtcbnZhciBmYUNvaW5zID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvaW5zJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTFlXCIsIFwiTTAgNDA1LjNWNDQ4YzAgMzUuMyA4NiA2NCAxOTIgNjRzMTkyLTI4LjcgMTkyLTY0di00Mi43QzM0Mi43IDQzNC40IDI2Ny4yIDQ0OCAxOTIgNDQ4UzQxLjMgNDM0LjQgMCA0MDUuM3pNMzIwIDEyOGMxMDYgMCAxOTItMjguNyAxOTItNjRTNDI2IDAgMzIwIDAgMTI4IDI4LjcgMTI4IDY0czg2IDY0IDE5MiA2NHpNMCAzMDAuNFYzNTJjMCAzNS4zIDg2IDY0IDE5MiA2NHMxOTItMjguNyAxOTItNjR2LTUxLjZjLTQxLjMgMzQtMTE2LjkgNTEuNi0xOTIgNTEuNlM0MS4zIDMzNC40IDAgMzAwLjR6bTQxNiAxMWM1Ny4zLTExLjEgOTYtMzEuNyA5Ni01NS40di00Mi43Yy0yMy4yIDE2LjQtNTcuMyAyNy42LTk2IDM0LjV2NjMuNnpNMTkyIDE2MEM4NiAxNjAgMCAxOTUuOCAwIDI0MHM4NiA4MCAxOTIgODAgMTkyLTM1LjggMTkyLTgwLTg2LTgwLTE5Mi04MHptMjE5LjMgNTYuM2M2MC0xMC44IDEwMC43LTMyIDEwMC43LTU2LjN2LTQyLjdjLTM1LjUgMjUuMS05Ni41IDM4LjYtMTYwLjcgNDEuOCAyOS41IDE0LjMgNTEuMiAzMy41IDYwIDU3LjJ6XCJdXG59O1xudmFyIGZhQ29sdW1ucyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb2x1bW5zJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGRiXCIsIFwiTTQ2NCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNMjI0IDQxNkg2NFYxNjBoMTYwdjI1NnptMjI0IDBIMjg4VjE2MGgxNjB2MjU2elwiXVxufTtcbnZhciBmYUNvbW1lbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA3NVwiLCBcIk0yNTYgMzJDMTE0LjYgMzIgMCAxMjUuMSAwIDI0MGMwIDQ5LjYgMjEuNCA5NSA1NyAxMzAuN0M0NC41IDQyMS4xIDIuNyA0NjYgMi4yIDQ2Ni41Yy0yLjIgMi4zLTIuOCA1LjctMS41IDguN1M0LjggNDgwIDggNDgwYzY2LjMgMCAxMTYtMzEuOCAxNDAuNi01MS40IDMyLjcgMTIuMyA2OSAxOS40IDEwNy40IDE5LjQgMTQxLjQgMCAyNTYtOTMuMSAyNTYtMjA4UzM5Ny40IDMyIDI1NiAzMnpcIl1cbn07XG52YXIgZmFDb21tZW50QWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbW1lbnQtYWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjdhXCIsIFwiTTQ0OCAwSDY0QzI4LjcgMCAwIDI4LjcgMCA2NHYyODhjMCAzNS4zIDI4LjcgNjQgNjQgNjRoOTZ2ODRjMCA5LjggMTEuMiAxNS41IDE5LjEgOS43TDMwNCA0MTZoMTQ0YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0elwiXVxufTtcbnZhciBmYUNvbW1lbnREb2xsYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29tbWVudC1kb2xsYXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2NTFcIiwgXCJNMjU2IDMyQzExNC42MiAzMiAwIDEyNS4xMiAwIDI0MGMwIDQ5LjU2IDIxLjQxIDk1LjAxIDU3LjAyIDEzMC43NEM0NC40NiA0MjEuMDUgMi43IDQ2NS45NyAyLjIgNDY2LjVBNy45OTUgNy45OTUgMCAwIDAgOCA0ODBjNjYuMjYgMCAxMTUuOTktMzEuNzUgMTQwLjYtNTEuMzhDMTgxLjI5IDQ0MC45MyAyMTcuNTkgNDQ4IDI1NiA0NDhjMTQxLjM4IDAgMjU2LTkzLjEyIDI1Ni0yMDhTMzk3LjM4IDMyIDI1NiAzMnptMjQgMzAyLjQ0VjM1MmMwIDguODQtNy4xNiAxNi0xNiAxNmgtMTZjLTguODQgMC0xNi03LjE2LTE2LTE2di0xNy43M2MtMTEuNDItMS4zNS0yMi4yOC01LjE5LTMxLjc4LTExLjQ2LTYuMjItNC4xMS02LjgyLTEzLjExLTEuNTUtMTguMzhsMTcuNTItMTcuNTJjMy43NC0zLjc0IDkuMzEtNC4yNCAxNC4xMS0yLjAzIDMuMTggMS40NiA2LjY2IDIuMjIgMTAuMjYgMi4yMmgzMi43OGM0LjY2IDAgOC40NC0zLjc4IDguNDQtOC40MiAwLTMuNzUtMi41Mi03LjA4LTYuMTItOC4xMWwtNTAuMDctMTQuM2MtMjIuMjUtNi4zNS00MC4wMS0yNC43MS00Mi45MS00Ny42Ny00LjA1LTMyLjA3IDE5LjAzLTU5LjQzIDQ5LjMyLTYzLjA1VjEyOGMwLTguODQgNy4xNi0xNiAxNi0xNmgxNmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNy43M2MxMS40MiAxLjM1IDIyLjI4IDUuMTkgMzEuNzggMTEuNDYgNi4yMiA0LjExIDYuODIgMTMuMTEgMS41NSAxOC4zOGwtMTcuNTIgMTcuNTJjLTMuNzQgMy43NC05LjMxIDQuMjQtMTQuMTEgMi4wM2EyNC41MTYgMjQuNTE2IDAgMCAwLTEwLjI2LTIuMjJoLTMyLjc4Yy00LjY2IDAtOC40NCAzLjc4LTguNDQgOC40MiAwIDMuNzUgMi41MiA3LjA4IDYuMTIgOC4xMWw1MC4wNyAxNC4zYzIyLjI1IDYuMzYgNDAuMDEgMjQuNzEgNDIuOTEgNDcuNjcgNC4wNSAzMi4wNi0xOS4wMyA1OS40Mi00OS4zMiA2My4wNHpcIl1cbn07XG52YXIgZmFDb21tZW50RG90cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50LWRvdHMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0YWRcIiwgXCJNMjU2IDMyQzExNC42IDMyIDAgMTI1LjEgMCAyNDBjMCA0OS42IDIxLjQgOTUgNTcgMTMwLjdDNDQuNSA0MjEuMSAyLjcgNDY2IDIuMiA0NjYuNWMtMi4yIDIuMy0yLjggNS43LTEuNSA4LjdTNC44IDQ4MCA4IDQ4MGM2Ni4zIDAgMTE2LTMxLjggMTQwLjYtNTEuNCAzMi43IDEyLjMgNjkgMTkuNCAxMDcuNCAxOS40IDE0MS40IDAgMjU2LTkzLjEgMjU2LTIwOFMzOTcuNCAzMiAyNTYgMzJ6TTEyOCAyNzJjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMjggMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyOCAwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIl1cbn07XG52YXIgZmFDb21tZW50TWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50LW1lZGljYWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ZjVcIiwgXCJNMjU2IDMyQzExNC42MiAzMiAwIDEyNS4xMiAwIDI0MGMwIDQ5LjU2IDIxLjQxIDk1IDU3IDEzMC43NEM0NC40NiA0MjEuMDUgMi43IDQ2NiAyLjIgNDY2LjVBOCA4IDAgMCAwIDggNDgwYzY2LjI2IDAgMTE2LTMxLjc1IDE0MC42LTUxLjM4QTMwNC42NiAzMDQuNjYgMCAwIDAgMjU2IDQ0OGMxNDEuMzkgMCAyNTYtOTMuMTIgMjU2LTIwOFMzOTcuMzkgMzIgMjU2IDMyem05NiAyMzJhOCA4IDAgMCAxLTggOGgtNTZ2NTZhOCA4IDAgMCAxLTggOGgtNDhhOCA4IDAgMCAxLTgtOHYtNTZoLTU2YTggOCAwIDAgMS04LTh2LTQ4YTggOCAwIDAgMSA4LThoNTZ2LTU2YTggOCAwIDAgMSA4LThoNDhhOCA4IDAgMCAxIDggOHY1Nmg1NmE4IDggMCAwIDEgOCA4elwiXVxufTtcbnZhciBmYUNvbW1lbnRTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50LXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGIzXCIsIFwiTTY0IDI0MGMwIDQ5LjYgMjEuNCA5NSA1NyAxMzAuNy0xMi42IDUwLjMtNTQuMyA5NS4yLTU0LjggOTUuOC0yLjIgMi4zLTIuOCA1LjctMS41IDguNyAxLjMgMi45IDQuMSA0LjggNy4zIDQuOCA2Ni4zIDAgMTE2LTMxLjggMTQwLjYtNTEuNCAzMi43IDEyLjMgNjkgMTkuNCAxMDcuNCAxOS40IDI3LjQgMCA1My43LTMuNiA3OC40LTEwTDcyLjkgMTg2LjRjLTUuNiAxNy4xLTguOSAzNS04LjkgNTMuNnptNTY5LjggMjE4LjFsLTExNC40LTg4LjRDNTU0LjYgMzM0LjEgNTc2IDI4OS4yIDU3NiAyNDBjMC0xMTQuOS0xMTQuNi0yMDgtMjU2LTIwOC02NS4xIDAtMTI0LjIgMjAuMS0xNjkuNCA1Mi43TDQ1LjUgMy40QzM4LjUtMiAyOC41LS44IDIzIDYuMkwzLjQgMzEuNGMtNS40IDctNC4yIDE3IDIuOCAyMi40bDU4OC40IDQ1NC43YzcgNS40IDE3IDQuMiAyMi41LTIuOGwxOS42LTI1LjNjNS40LTYuOCA0LjEtMTYuOS0yLjktMjIuM3pcIl1cbn07XG52YXIgZmFDb21tZW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50cycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjA4NlwiLCBcIk00MTYgMTkyYzAtODguNC05My4xLTE2MC0yMDgtMTYwUzAgMTAzLjYgMCAxOTJjMCAzNC4zIDE0LjEgNjUuOSAzOCA5Mi0xMy40IDMwLjItMzUuNSA1NC4yLTM1LjggNTQuNS0yLjIgMi4zLTIuOCA1LjctMS41IDguN1M0LjggMzUyIDggMzUyYzM2LjYgMCA2Ni45LTEyLjMgODguNy0yNSAzMi4yIDE1LjcgNzAuMyAyNSAxMTEuMyAyNSAxMTQuOSAwIDIwOC03MS42IDIwOC0xNjB6bTEyMiAyMjBjMjMuOS0yNiAzOC01Ny43IDM4LTkyIDAtNjYuOS01My41LTEyNC4yLTEyOS4zLTE0OC4xLjkgNi42IDEuMyAxMy4zIDEuMyAyMC4xIDAgMTA1LjktMTA3LjcgMTkyLTI0MCAxOTItMTAuOCAwLTIxLjMtLjgtMzEuNy0xLjlDMjA3LjggNDM5LjYgMjgxLjggNDgwIDM2OCA0ODBjNDEgMCA3OS4xLTkuMiAxMTEuMy0yNSAyMS44IDEyLjcgNTIuMSAyNSA4OC43IDI1IDMuMiAwIDYuMS0xLjkgNy4zLTQuOCAxLjMtMi45LjctNi4zLTEuNS04LjctLjMtLjMtMjIuNC0yNC4yLTM1LjgtNTQuNXpcIl1cbn07XG52YXIgZmFDb21tZW50c0RvbGxhciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21tZW50cy1kb2xsYXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY2NTNcIiwgXCJNNDE2IDE5MmMwLTg4LjM3LTkzLjEyLTE2MC0yMDgtMTYwUzAgMTAzLjYzIDAgMTkyYzAgMzQuMjcgMTQuMTMgNjUuOTUgMzcuOTcgOTEuOThDMjQuNjEgMzE0LjIyIDIuNTIgMzM4LjE2IDIuMiAzMzguNUE3Ljk5NSA3Ljk5NSAwIDAgMCA4IDM1MmMzNi41OCAwIDY2LjkzLTEyLjI1IDg4LjczLTI0Ljk4QzEyOC45MyAzNDIuNzYgMTY3LjAyIDM1MiAyMDggMzUyYzExNC44OCAwIDIwOC03MS42MyAyMDgtMTYwem0tMjI0IDk2di0xNi4yOWMtMTEuMjktLjU4LTIyLjI3LTQuNTItMzEuMzctMTEuMzUtMy45LTIuOTMtNC4xLTguNzctLjU3LTEyLjE0bDExLjc1LTExLjIxYzIuNzctMi42NCA2Ljg5LTIuNzYgMTAuMTMtLjczIDMuODcgMi40MiA4LjI2IDMuNzIgMTIuODIgMy43MmgyOC4xMWM2LjUgMCAxMS44LTUuOTIgMTEuOC0xMy4xOSAwLTUuOTUtMy42MS0xMS4xOS04Ljc3LTEyLjczbC00NS0xMy41Yy0xOC41OS01LjU4LTMxLjU4LTIzLjQyLTMxLjU4LTQzLjM5IDAtMjQuNTIgMTkuMDUtNDQuNDQgNDIuNjctNDUuMDdWOTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTYuMjljMTEuMjkuNTggMjIuMjcgNC41MSAzMS4zNyAxMS4zNSAzLjkgMi45MyA0LjEgOC43Ny41NyAxMi4xNGwtMTEuNzUgMTEuMjFjLTIuNzcgMi42NC02Ljg5IDIuNzYtMTAuMTMuNzMtMy44Ny0yLjQzLTguMjYtMy43Mi0xMi44Mi0zLjcyaC0yOC4xMWMtNi41IDAtMTEuOCA1LjkyLTExLjggMTMuMTkgMCA1Ljk1IDMuNjEgMTEuMTkgOC43NyAxMi43M2w0NSAxMy41YzE4LjU5IDUuNTggMzEuNTggMjMuNDIgMzEuNTggNDMuMzkgMCAyNC41My0xOS4wNSA0NC40NC00Mi42NyA0NS4wN1YyODhjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptMzQ2LjAxIDEyMy45OUM1NjEuODcgMzg1Ljk2IDU3NiAzNTQuMjcgNTc2IDMyMGMwLTY2Ljk0LTUzLjQ5LTEyNC4yLTEyOS4zMy0xNDguMDcuODYgNi42IDEuMzMgMTMuMjkgMS4zMyAyMC4wNyAwIDEwNS44Ny0xMDcuNjYgMTkyLTI0MCAxOTItMTAuNzggMC0yMS4zMi0uNzctMzEuNzMtMS44OEMyMDcuOCA0MzkuNjMgMjgxLjc3IDQ4MCAzNjggNDgwYzQwLjk4IDAgNzkuMDctOS4yNCAxMTEuMjctMjQuOThDNTAxLjA3IDQ2Ny43NSA1MzEuNDIgNDgwIDU2OCA0ODBjMy4yIDAgNi4wOS0xLjkxIDcuMzQtNC44NCAxLjI3LTIuOTQuNjYtNi4zNC0xLjU1LTguNjctLjMxLS4zMy0yMi40Mi0yNC4yNC0zNS43OC01NC41elwiXVxufTtcbnZhciBmYUNvbXBhY3REaXNjID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbXBhY3QtZGlzYycsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjUxZlwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek04OCAyNTZINTZjMC0xMDUuOSA4Ni4xLTE5MiAxOTItMTkydjMyYy04OC4yIDAtMTYwIDcxLjgtMTYwIDE2MHptMTYwIDk2Yy01MyAwLTk2LTQzLTk2LTk2czQzLTk2IDk2LTk2IDk2IDQzIDk2IDk2LTQzIDk2LTk2IDk2em0wLTEyOGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJzMTQuMyAzMiAzMiAzMiAzMi0xNC4zIDMyLTMyLTE0LjMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhQ29tcGFzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb21wYXNzJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmMTRlXCIsIFwiTTIyNS4zOCAyMzMuMzdjLTEyLjUgMTIuNS0xMi41IDMyLjc2IDAgNDUuMjUgMTIuNDkgMTIuNSAzMi43NiAxMi41IDQ1LjI1IDAgMTIuNS0xMi41IDEyLjUtMzIuNzYgMC00NS4yNS0xMi41LTEyLjQ5LTMyLjc2LTEyLjQ5LTQ1LjI1IDB6TTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTEyNi4xNCAxNDguMDVMMzA4LjE3IDMwMC40YTMxLjkzOCAzMS45MzggMCAwIDEtMTUuNzcgMTUuNzdsLTE0NC4zNCA2NS45N2MtMTYuNjUgNy42MS0zMy44MS05LjU1LTI2LjItMjYuMmw2NS45OC0xNDQuMzVhMzEuOTM4IDMxLjkzOCAwIDAgMSAxNS43Ny0xNS43N2wxNDQuMzQtNjUuOTdjMTYuNjUtNy42IDMzLjggOS41NSAyNi4xOSAyNi4yelwiXVxufTtcbnZhciBmYUNvbXByZXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbXByZXNzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDY2XCIsIFwiTTQzNiAxOTJIMzEyYy0xMy4zIDAtMjQtMTAuNy0yNC0yNFY0NGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjg0aDg0YzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJ6bS0yNzYtMjRWNDRjMC02LjYtNS40LTEyLTEyLTEyaC00MGMtNi42IDAtMTIgNS40LTEyIDEydjg0SDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDEyNGMxMy4zIDAgMjQtMTAuNyAyNC0yNHptMCAzMDBWMzQ0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDg0djg0YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ6bTE5MiAwdi04NGg4NGM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMkgzMTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0djEyNGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyelwiXVxufTtcbnZhciBmYUNvbXByZXNzQXJyb3dzQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NvbXByZXNzLWFycm93cy1hbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3OGNcIiwgXCJNMjAwIDI4OEg4OGMtMjEuNCAwLTMyLjEgMjUuOC0xNyA0MWwzMi45IDMxLTk5LjIgOTkuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZsMjUuNCAyNS40YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwTDE1MiA0MDhsMzEuMSAzM2MxNS4xIDE1LjEgNDAuOSA0LjQgNDAuOS0xN1YzMTJjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTExMi02NGgxMTJjMjEuNCAwIDMyLjEtMjUuOSAxNy00MWwtMzMtMzEgOTkuMy05OS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDQ4MS45IDQuN2MtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBMMzYwIDEwNGwtMzEuMS0zM0MzMTMuOCA1NS45IDI4OCA2Ni42IDI4OCA4OHYxMTJjMCAxMy4zIDEwLjcgMjQgMjQgMjR6bTk2IDEzNmwzMy0zMS4xYzE1LjEtMTUuMSA0LjQtNDAuOS0xNy00MC45SDMxMmMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTEyYzAgMjEuNCAyNS45IDMyLjEgNDEgMTdsMzEtMzIuOSA5OS4zIDk5LjNjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMjUuNC0yNS40YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDQwOCAzNjB6TTE4MyA3MS4xTDE1MiAxMDQgNTIuNyA0LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDQuNyAzMC4xYy02LjIgNi4yLTYuMiAxNi40IDAgMjIuNkwxMDQgMTUybC0zMyAzMS4xQzU1LjkgMTk4LjIgNjYuNiAyMjQgODggMjI0aDExMmMxMy4zIDAgMjQtMTAuNyAyNC0yNFY4OGMwLTIxLjMtMjUuOS0zMi00MS0xNi45elwiXVxufTtcbnZhciBmYUNvbmNpZXJnZUJlbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29uY2llcmdlLWJlbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NjJcIiwgXCJNMjg4IDEzMC41NFYxMTJoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWODBjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTk2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNnYxOC41NEMxMTUuNDkgMTQ2LjExIDMyIDIzOS4xOCAzMiAzNTJoNDQ4YzAtMTEyLjgyLTgzLjQ5LTIwNS44OS0xOTItMjIxLjQ2ek00OTYgMzg0SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0ODBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwiXVxufTtcbnZhciBmYUNvb2tpZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb29raWUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NjNcIiwgXCJNNTEwLjM3IDI1NC43OWwtMTIuMDgtNzYuMjZhMTMyLjQ5MyAxMzIuNDkzIDAgMCAwLTM3LjE2LTcyLjk1bC01NC43Ni01NC43NWMtMTkuNzMtMTkuNzItNDUuMTgtMzIuNy03Mi43MS0zNy4wNWwtNzYuNy0xMi4xNWMtMjcuNTEtNC4zNi01NS42OS4xMS04MC41MiAxMi43NkwxMDcuMzIgNDkuNmExMzIuMjUgMTMyLjI1IDAgMCAwLTU3Ljc5IDU3LjhsLTM1LjEgNjguODhhMTMyLjYwMiAxMzIuNjAyIDAgMCAwLTEyLjgyIDgwLjk0bDEyLjA4IDc2LjI3YTEzMi40OTMgMTMyLjQ5MyAwIDAgMCAzNy4xNiA3Mi45NWw1NC43NiA1NC43NWExMzIuMDg3IDEzMi4wODcgMCAwIDAgNzIuNzEgMzcuMDVsNzYuNyAxMi4xNGMyNy41MSA0LjM2IDU1LjY5LS4xMSA4MC41Mi0xMi43NWw2OS4xMi0zNS4yMWExMzIuMzAyIDEzMi4zMDIgMCAwIDAgNTcuNzktNTcuOGwzNS4xLTY4Ljg3YzEyLjcxLTI0Ljk2IDE3LjItNTMuMyAxMi44Mi04MC45NnpNMTc2IDM2OGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMzItMTYwYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xNjAgMTI4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYUNvb2tpZUJpdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29va2llLWJpdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NjRcIiwgXCJNNTEwLjUyIDI1NS44MmMtNjkuOTctLjg1LTEyNi40Ny01Ny42OS0xMjYuNDctMTI3Ljg2LTcwLjE3IDAtMTI3LTU2LjQ5LTEyNy44Ni0xMjYuNDUtMjcuMjYtNC4xNC01NS4xMy4zLTc5LjcyIDEyLjgybC02OS4xMyAzNS4yMmExMzIuMjIxIDEzMi4yMjEgMCAwIDAtNTcuNzkgNTcuODFsLTM1LjEgNjguODhhMTMyLjY0NSAxMzIuNjQ1IDAgMCAwLTEyLjgyIDgwLjk1bDEyLjA4IDc2LjI3YTEzMi41MjEgMTMyLjUyMSAwIDAgMCAzNy4xNiA3Mi45Nmw1NC43NyA1NC43NmExMzIuMDM2IDEzMi4wMzYgMCAwIDAgNzIuNzEgMzcuMDZsNzYuNzEgMTIuMTVjMjcuNTEgNC4zNiA1NS43LS4xMSA4MC41My0xMi43Nmw2OS4xMy0zNS4yMWExMzIuMjczIDEzMi4yNzMgMCAwIDAgNTcuNzktNTcuODFsMzUuMS02OC44OGMxMi41Ni0yNC42NCAxNy4wMS01Mi41OCAxMi45MS03OS45MXpNMTc2IDM2OGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMzItMTYwYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xNjAgMTI4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYUNvcHkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY29weScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBjNVwiLCBcIk0zMjAgNDQ4djQwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjEyMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoNzJ2Mjk2YzAgMzAuODc5IDI1LjEyMSA1NiA1NiA1NmgxNjh6bTAtMzQ0VjBIMTUyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MzY4YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyNzJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjEyOEgzNDRjLTEzLjIgMC0yNC0xMC44LTI0LTI0em0xMjAuOTcxLTMxLjAyOUwzNzUuMDI5IDcuMDI5QTI0IDI0IDAgMCAwIDM1OC4wNTkgMEgzNTJ2OTZoOTZ2LTYuMDU5YTI0IDI0IDAgMCAwLTcuMDI5LTE2Ljk3elwiXVxufTtcbnZhciBmYUNvcHlyaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb3B5cmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxZjlcIiwgXCJNMjU2IDhDMTE5LjAzMyA4IDggMTE5LjAzMyA4IDI1NnMxMTEuMDMzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMzIDI0OC0yNDhTMzkyLjk2NyA4IDI1NiA4em0xMTcuMTM0IDM0Ni43NTNjLTEuNTkyIDEuODY3LTM5Ljc3NiA0NS43MzEtMTA5Ljg1MSA0NS43MzEtODQuNjkyIDAtMTQ0LjQ4NC02My4yNi0xNDQuNDg0LTE0NS41NjcgMC04MS4zMDMgNjIuMDA0LTE0My40MDEgMTQzLjc2Mi0xNDMuNDAxIDY2Ljk1NyAwIDEwMS45NjUgMzcuMzE1IDEwMy40MjIgMzguOTA0YTEyIDEyIDAgMCAxIDEuMjM4IDE0LjYyM2wtMjIuMzggMzQuNjU1Yy00LjA0OSA2LjI2Ny0xMi43NzQgNy4zNTEtMTguMjM0IDIuMjk1LS4yMzMtLjIxNC0yNi41MjktMjMuODgtNjEuODgtMjMuODgtNDYuMTE2IDAtNzMuOTE2IDMzLjU3NS03My45MTYgNzYuMDgyIDAgMzkuNjAyIDI1LjUxNCA3OS42OTIgNzQuMjc3IDc5LjY5MiAzOC42OTcgMCA2NS4yOC0yOC4zMzggNjUuNTQ0LTI4LjYyNSA1LjEzMi01LjU2NSAxNC4wNTktNS4wMzMgMTguNTA4IDEuMDUzbDI0LjU0NyAzMy41NzJhMTIuMDAxIDEyLjAwMSAwIDAgMS0uNTUzIDE0Ljg2NnpcIl1cbn07XG52YXIgZmFDb3VjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjb3VjaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRiOFwiLCBcIk0xNjAgMjI0djY0aDMyMHYtNjRjMC0zNS4zIDI4LjctNjQgNjQtNjRoMzJjMC01My00My05Ni05Ni05NkgxNjBjLTUzIDAtOTYgNDMtOTYgOTZoMzJjMzUuMyAwIDY0IDI4LjcgNjQgNjR6bTQxNi0zMmgtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2SDEyOHYtOTZjMC0xNy43LTE0LjMtMzItMzItMzJINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0IDAgMjMuNiAxMyA0NCAzMiA1NS4xVjQzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2di0xNmgzODR2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNlYzMTEuMWMxOS0xMS4xIDMyLTMxLjUgMzItNTUuMSAwLTM1LjMtMjguNy02NC02NC02NHpcIl1cbn07XG52YXIgZmFDcmVkaXRDYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2NyZWRpdC1jYXJkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMDlkXCIsIFwiTTAgNDMyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDQ4MGMyNi41IDAgNDgtMjEuNSA0OC00OFYyNTZIMHYxNzZ6bTE5Mi02OGMwLTYuNiA1LjQtMTIgMTItMTJoMTM2YzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJIMjA0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwem0tMTI4IDBjMC02LjYgNS40LTEyIDEyLTEyaDcyYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJINzZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDB6TTU3NiA4MHY0OEgwVjgwYzAtMjYuNSAyMS41LTQ4IDQ4LTQ4aDQ4MGMyNi41IDAgNDggMjEuNSA0OCA0OHpcIl1cbn07XG52YXIgZmFDcm9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nyb3AnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMjVcIiwgXCJNNDg4IDM1MmgtNDBWMTA5LjI1bDU5LjMxLTU5LjMxYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNMNDg0LjY5IDQuNjljLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBMNDAyLjc1IDY0SDE5MnY5NmgxMTQuNzVMMTYwIDMwNi43NVYyNGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0SDg4Qzc0Ljc1IDAgNjQgMTAuNzQgNjQgMjR2NDBIMjRDMTAuNzUgNjQgMCA3NC43NCAwIDg4djQ4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDB2MjY0YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoMjMydi05NkgyMDUuMjVMMzUyIDIwNS4yNVY0ODhjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGg0OGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00MGg0MGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00OGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYUNyb3BBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3JvcC1hbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NjVcIiwgXCJNNDg4IDM1MmgtNDBWOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgxOTJ2OTZoMTYwdjMyOGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQ4YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTQwaDQwYzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTQ4YzAtMTMuMjYtMTAuNzUtMjQtMjQtMjR6TTE2MCAyNGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0SDg4Qzc0Ljc1IDAgNjQgMTAuNzQgNjQgMjR2NDBIMjRDMTAuNzUgNjQgMCA3NC43NCAwIDg4djQ4YzAgMTMuMjUgMTAuNzUgMjQgMjQgMjRoNDB2MjU2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMjI0di05NkgxNjBWMjR6XCJdXG59O1xudmFyIGZhQ3Jvc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3Jvc3MnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY2NTRcIiwgXCJNMzUyIDEyOGgtOTZWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtNjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NnYyMjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjI1Nmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYUNyb3NzaGFpcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3Jvc3NoYWlycycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA1YlwiLCBcIk01MDAgMjI0aC0zMC4zNjRDNDU1LjcyNCAxMzAuMzI1IDM4MS42NzUgNTYuMjc2IDI4OCA0Mi4zNjRWMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzAuMzY0QzEzMC4zMjUgNTYuMjc2IDU2LjI3NiAxMzAuMzI1IDQyLjM2NCAyMjRIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgzMC4zNjRDNTYuMjc2IDM4MS42NzUgMTMwLjMyNSA0NTUuNzI0IDIyNCA0NjkuNjM2VjUwMGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTMwLjM2NEMzODEuNjc1IDQ1NS43MjQgNDU1LjcyNCAzODEuNjc1IDQ2OS42MzYgMjg4SDUwMGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyek0yODggNDA0LjYzNFYzNjRjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDAuNjM0QzE2NS44MjYgMzkyLjIzMiAxMTkuNzgzIDM0Ni4yNDMgMTA3LjM2NiAyODhIMTQ4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwLjYzNEMxMTkuNzY4IDE2NS44MjYgMTY1Ljc1NyAxMTkuNzgzIDIyNCAxMDcuMzY2VjE0OGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwLjYzNEMzNDYuMTc0IDExOS43NjggMzkyLjIxNyAxNjUuNzU3IDQwNC42MzQgMjI0SDM2NGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwLjYzNEMzOTIuMjMyIDM0Ni4xNzQgMzQ2LjI0MyAzOTIuMjE3IDI4OCA0MDQuNjM0ek0yODggMjU2YzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMnMtMzItMTQuMzI3LTMyLTMyYzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMnMzMiAxNC4zMjcgMzIgMzJ6XCJdXG59O1xudmFyIGZhQ3JvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjcm93JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTIwXCIsIFwiTTU0NCAzMmgtMTYuMzZDNTEzLjA0IDEyLjY4IDQ5MC4wOSAwIDQ2NCAwYy00NC4xOCAwLTgwIDM1LjgyLTgwIDgwdjIwLjk4TDEyLjA5IDM5My41N0EzMC4yMTYgMzAuMjE2IDAgMCAwIDAgNDE3Ljc0YzAgMjIuNDYgMjMuNjQgMzcuMDcgNDMuNzMgMjcuMDNMMTY1LjI3IDM4NGg5Ni40OWw0NC40MSAxMjAuMWMyLjI3IDYuMjMgOS4xNSA5LjQ0IDE1LjM4IDcuMTdsMjIuNTUtOC4yMWM2LjIzLTIuMjcgOS40NC05LjE1IDcuMTctMTUuMzhMMzEyLjk0IDM4NEgzNTJjMS45MSAwIDMuNzYtLjIzIDUuNjYtLjI5bDQ0LjUxIDEyMC4zOGMyLjI3IDYuMjMgOS4xNSA5LjQ0IDE1LjM4IDcuMTdsMjIuNTUtOC4yMWM2LjIzLTIuMjcgOS40NC05LjE1IDcuMTctMTUuMzhsLTQxLjI0LTExMS41M0M0ODUuNzQgMzUyLjggNTQ0IDI3OS4yNiA1NDQgMTkydi04MGw5Ni0xNmMwLTM1LjM1LTQyLjk4LTY0LTk2LTY0em0tODAgNzJjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwiXVxufTtcbnZhciBmYUNyb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Nyb3duJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTIxXCIsIFwiTTUyOCA0NDhIMTEyYy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQxNmM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptNjQtMzIwYy0yNi41IDAtNDggMjEuNS00OCA0OCAwIDcuMSAxLjYgMTMuNyA0LjQgMTkuOEw0NzYgMjM5LjJjLTE1LjQgOS4yLTM1LjMgNC00NC4yLTExLjZMMzUwLjMgODVDMzYxIDc2LjIgMzY4IDYzIDM2OCA0OGMwLTI2LjUtMjEuNS00OC00OC00OHMtNDggMjEuNS00OCA0OGMwIDE1IDcgMjguMiAxNy43IDM3bC04MS41IDE0Mi42Yy04LjkgMTUuNi0yOC45IDIwLjgtNDQuMiAxMS42bC03Mi4zLTQzLjRjMi43LTYgNC40LTEyLjcgNC40LTE5LjggMC0yNi41LTIxLjUtNDgtNDgtNDhTMCAxNDkuNSAwIDE3NnMyMS41IDQ4IDQ4IDQ4YzIuNiAwIDUuMi0uNCA3LjctLjhMMTI4IDQxNmgzODRsNzIuMy0xOTIuOGMyLjUuNCA1LjEuOCA3LjcuOCAyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OHpcIl1cbn07XG52YXIgZmFDcnV0Y2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3J1dGNoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2Y3XCIsIFwiTTUwNy4zMSAxODUuNzFsLTE4MS0xODFhMTYgMTYgMCAwIDAtMjIuNjIgMEwyODEgMjcuMzFhMTYgMTYgMCAwIDAgMCAyMi42M2wxODEgMTgxYTE2IDE2IDAgMCAwIDIyLjYzIDBsMjIuNjItMjIuNjNhMTYgMTYgMCAwIDAgLjA2LTIyLjZ6bS0xNzkuNTQgNjYuNDFsLTY3Ljg5LTY3Ljg5IDU1LjEtNTUuMS00NS4yNS00NS4yNS0xMDkuNjcgMTA5LjY3YTk2LjA4IDk2LjA4IDAgMCAwLTI1LjY3IDQ2LjI5TDEwNi42NSAzNjAuMWwtMTAyIDEwMmExNiAxNiAwIDAgMCAwIDIyLjYzbDIyLjYyIDIyLjYyYTE2IDE2IDAgMCAwIDIyLjYzIDBsMTAyLTEwMiAxMjAuMjUtMjcuNzVhOTUuODggOTUuODggMCAwIDAgNDYuMjktMjUuNjVsMTA5LjY4LTEwOS42OEwzODIuODcgMTk3em0tNTQuNTcgNTQuNTdhMzIgMzIgMCAwIDEtMTUuNDUgOC41NGwtNzkuMyAxOC4zMiAxOC4zLTc5LjNhMzIuMjIgMzIuMjIgMCAwIDEgOC41Ni0xNS40NWw5LjMxLTkuMzEgNjcuODkgNjcuODl6XCJdXG59O1xudmFyIGZhQ3ViZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdjdWJlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWIyXCIsIFwiTTIzOS4xIDYuM2wtMjA4IDc4Yy0xOC43IDctMzEuMSAyNS0zMS4xIDQ1djIyNS4xYzAgMTguMiAxMC4zIDM0LjggMjYuNSA0Mi45bDIwOCAxMDRjMTMuNSA2LjggMjkuNCA2LjggNDIuOSAwbDIwOC0xMDRjMTYuMy04LjEgMjYuNS0yNC44IDI2LjUtNDIuOVYxMjkuM2MwLTIwLTEyLjQtMzcuOS0zMS4xLTQ0LjlsLTIwOC03OEMyNjIgMi4yIDI1MCAyLjIgMjM5LjEgNi4zek0yNTYgNjguNGwxOTIgNzJ2MS4xbC0xOTIgNzgtMTkyLTc4di0xLjFsMTkyLTcyem0zMiAzNTZWMjc1LjVsMTYwLTY1djEzMy45bC0xNjAgODB6XCJdXG59O1xudmFyIGZhQ3ViZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnY3ViZXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxYjNcIiwgXCJNNDg4LjYgMjUwLjJMMzkyIDIxNFYxMDUuNWMwLTE1LTkuMy0yOC40LTIzLjQtMzMuN2wtMTAwLTM3LjVjLTguMS0zLjEtMTcuMS0zLjEtMjUuMyAwbC0xMDAgMzcuNWMtMTQuMSA1LjMtMjMuNCAxOC43LTIzLjQgMzMuN1YyMTRsLTk2LjYgMzYuMkM5LjMgMjU1LjUgMCAyNjguOSAwIDI4My45VjM5NGMwIDEzLjYgNy43IDI2LjEgMTkuOSAzMi4ybDEwMCA1MGMxMC4xIDUuMSAyMi4xIDUuMSAzMi4yIDBsMTAzLjktNTIgMTAzLjkgNTJjMTAuMSA1LjEgMjIuMSA1LjEgMzIuMiAwbDEwMC01MGMxMi4yLTYuMSAxOS45LTE4LjYgMTkuOS0zMi4yVjI4My45YzAtMTUtOS4zLTI4LjQtMjMuNC0zMy43ek0zNTggMjE0LjhsLTg1IDMxLjl2LTY4LjJsODUtMzd2NzMuM3pNMTU0IDEwNC4xbDEwMi0zOC4yIDEwMiAzOC4ydi42bC0xMDIgNDEuNC0xMDItNDEuNHYtLjZ6bTg0IDI5MS4xbC04NSA0Mi41di03OS4xbDg1LTM4Ljh2NzUuNHptMC0xMTJsLTEwMiA0MS40LTEwMi00MS40di0uNmwxMDItMzguMiAxMDIgMzguMnYuNnptMjQwIDExMmwtODUgNDIuNXYtNzkuMWw4NS0zOC44djc1LjR6bTAtMTEybC0xMDIgNDEuNC0xMDItNDEuNHYtLjZsMTAyLTM4LjIgMTAyIDM4LjJ2LjZ6XCJdXG59O1xudmFyIGZhQ3V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2N1dCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBjNFwiLCBcIk0yNzguMDYgMjU2TDQ0NC40OCA4OS41N2M0LjY5LTQuNjkgNC42OS0xMi4yOSAwLTE2Ljk3LTMyLjgtMzIuOC04NS45OS0zMi44LTExOC43OSAwTDIxMC4xOCAxODguMTJsLTI0Ljg2LTI0Ljg2YzQuMzEtMTAuOTIgNi42OC0yMi44MSA2LjY4LTM1LjI2IDAtNTMuMDItNDIuOTgtOTYtOTYtOTZTMCA3NC45OCAwIDEyOHM0Mi45OCA5NiA5NiA5NmM0LjU0IDAgOC45OS0uMzIgMTMuMzYtLjkzTDE0Mi4yOSAyNTZsLTMyLjkzIDMyLjkzYy00LjM3LS42MS04LjgzLS45My0xMy4zNi0uOTMtNTMuMDIgMC05NiA0Mi45OC05NiA5NnM0Mi45OCA5NiA5NiA5NiA5Ni00Mi45OCA5Ni05NmMwLTEyLjQ1LTIuMzctMjQuMzQtNi42OC0zNS4yNmwyNC44Ni0yNC44NkwzMjUuNjkgNDM5LjRjMzIuOCAzMi44IDg1Ljk5IDMyLjggMTE4Ljc5IDAgNC42OS00LjY4IDQuNjktMTIuMjggMC0xNi45N0wyNzguMDYgMjU2ek05NiAxNjBjLTE3LjY0IDAtMzItMTQuMzYtMzItMzJzMTQuMzYtMzIgMzItMzIgMzIgMTQuMzYgMzIgMzItMTQuMzYgMzItMzIgMzJ6bTAgMjU2Yy0xNy42NCAwLTMyLTE0LjM2LTMyLTMyczE0LjM2LTMyIDMyLTMyIDMyIDE0LjM2IDMyIDMyLTE0LjM2IDMyLTMyIDMyelwiXVxufTtcbnZhciBmYURhdGFiYXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RhdGFiYXNlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMWMwXCIsIFwiTTQ0OCA3My4xNDN2NDUuNzE0QzQ0OCAxNTkuMTQzIDM0Ny42NjcgMTkyIDIyNCAxOTJTMCAxNTkuMTQzIDAgMTE4Ljg1N1Y3My4xNDNDMCAzMi44NTcgMTAwLjMzMyAwIDIyNCAwczIyNCAzMi44NTcgMjI0IDczLjE0M3pNNDQ4IDE3NnYxMDIuODU3QzQ0OCAzMTkuMTQzIDM0Ny42NjcgMzUyIDIyNCAzNTJTMCAzMTkuMTQzIDAgMjc4Ljg1N1YxNzZjNDguMTI1IDMzLjE0MyAxMzYuMjA4IDQ4LjU3MiAyMjQgNDguNTcyUzM5OS44NzQgMjA5LjE0MyA0NDggMTc2em0wIDE2MHYxMDIuODU3QzQ0OCA0NzkuMTQzIDM0Ny42NjcgNTEyIDIyNCA1MTJTMCA0NzkuMTQzIDAgNDM4Ljg1N1YzMzZjNDguMTI1IDMzLjE0MyAxMzYuMjA4IDQ4LjU3MiAyMjQgNDguNTcyUzM5OS44NzQgMzY5LjE0MyA0NDggMzM2elwiXVxufTtcbnZhciBmYURlYWYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGVhZicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJhNFwiLCBcIk0yMTYgMjYwYzAgMTUuNDY0LTEyLjUzNiAyOC0yOCAyOHMtMjgtMTIuNTM2LTI4LTI4YzAtNDQuMTEyIDM1Ljg4OC04MCA4MC04MHM4MCAzNS44ODggODAgODBjMCAxNS40NjQtMTIuNTM2IDI4LTI4IDI4cy0yOC0xMi41MzYtMjgtMjhjMC0xMy4yMzQtMTAuNzY3LTI0LTI0LTI0cy0yNCAxMC43NjYtMjQgMjR6bTI0LTE3NmMtOTcuMDQ3IDAtMTc2IDc4Ljk1My0xNzYgMTc2IDAgMTUuNDY0IDEyLjUzNiAyOCAyOCAyOHMyOC0xMi41MzYgMjgtMjhjMC02Ni4xNjggNTMuODMyLTEyMCAxMjAtMTIwczEyMCA1My44MzIgMTIwIDEyMGMwIDc1LjE2NC03MS4wMDkgNzAuMzExLTcxLjk5NyAxNDMuNjIyTDI4OCA0MDRjMCAyOC42NzMtMjMuMzI3IDUyLTUyIDUyLTE1LjQ2NCAwLTI4IDEyLjUzNi0yOCAyOHMxMi41MzYgMjggMjggMjhjNTkuNDc1IDAgMTA3Ljg3Ni00OC4zMjggMTA4LTEwNy43NzQuNTk1LTM0LjQyOCA3Mi00OC4yNCA3Mi0xNDQuMjI2IDAtOTcuMDQ3LTc4Ljk1My0xNzYtMTc2LTE3NnptMjY4LjQ4NS01Mi4yMDFMNDgwLjIgMy41MTVjLTQuNjg3LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEwzNzYuMiA5MC41NDRjLTQuNjg2IDQuNjg2LTQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwyOC4yODUgMjguMjg1YzQuNjg2IDQuNjg2IDEyLjI4NCA0LjY4NiAxNi45NyAwbDg3LjAzLTg3LjAyOWM0LjY4Ny00LjY4OCA0LjY4Ny0xMi4yODYgMC0xNi45NzJ6TTE2OC45NyAzMTQuNzQ1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcgMEwzLjUxNSA0NjMuMjNjLTQuNjg2IDQuNjg2LTQuNjg2IDEyLjI4NCAwIDE2Ljk3MUwzMS44IDUwOC40ODVjNC42ODcgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3MSAwTDE5Ny4yNTYgMzYwYzQuNjg2LTQuNjg2IDQuNjg2LTEyLjI4NCAwLTE2Ljk3MWwtMjguMjg2LTI4LjI4NHpcIl1cbn07XG52YXIgZmFEZW1vY3JhdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkZW1vY3JhdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjc0N1wiLCBcIk02MzcuMyAyNTYuOWwtMTkuNi0yOS40Yy0yOC4yLTQyLjMtNzUuMy02Ny41LTEyNi4xLTY3LjVIMjU2bC04MS4yLTgxLjJjMjAuMS0yMC4xIDIyLjYtNTEuMSA3LjUtNzMuOS0zLjQtNS4yLTEwLjgtNS45LTE1LjItMS41bC00MS44IDQxLjhMODIuNCAyLjRjLTMuNi0zLjYtOS42LTMtMTIuNCAxLjItMTIuMyAxOC42LTEwLjMgNDQgNi4xIDYwLjQgMy4zIDMuMyA3LjMgNS4zIDExLjMgNy41LTIuMiAxLjctNC43IDMuMS02LjQgNS40TDYuNCAxNzYuMmMtNy4zIDkuNy04LjQgMjIuNy0zIDMzLjVsMTQuMyAyOC42YzUuNCAxMC44IDE2LjUgMTcuNyAyOC42IDE3LjdoMzFjOC41IDAgMTYuNi0zLjQgMjIuNi05LjRMMTM4IDIxMmw1NCAxMDhoMzUydi03Ny44YzE2LjIgMTIuMiAxOC4zIDE3LjYgNDAuMSA1MC4zIDQuOSA3LjQgMTQuOCA5LjMgMjIuMiA0LjRsMjYuNi0xNy43YzcuMy01IDkuMy0xNC45IDQuNC0yMi4zem0tMzQxLjEtMTMuNmwtMTYuNSAxNi4xIDMuOSAyMi43Yy43IDQuMS0zLjYgNy4yLTcuMiA1LjNMMjU2IDI3Ni43bC0yMC40IDEwLjdjLTMuNiAxLjktNy45LTEuMi03LjItNS4zbDMuOS0yMi43LTE2LjUtMTYuMWMtMy0yLjktMS4zLTcuOSAyLjgtOC41bDIyLjgtMy4zIDEwLjItMjAuN2MxLjgtMy43IDcuMS0zLjcgOSAwbDEwLjIgMjAuNyAyMi44IDMuM2M0IC42IDUuNiA1LjYgMi42IDguNXptMTEyIDBsLTE2LjUgMTYuMSAzLjkgMjIuN2MuNyA0LjEtMy42IDcuMi03LjIgNS4zTDM2OCAyNzYuN2wtMjAuNCAxMC43Yy0zLjYgMS45LTcuOS0xLjItNy4yLTUuM2wzLjktMjIuNy0xNi41LTE2LjFjLTMtMi45LTEuMy03LjkgMi44LTguNWwyMi44LTMuMyAxMC4yLTIwLjdjMS44LTMuNyA3LjEtMy43IDkgMGwxMC4yIDIwLjcgMjIuOCAzLjNjNCAuNiA1LjYgNS42IDIuNiA4LjV6bTExMiAwbC0xNi41IDE2LjEgMy45IDIyLjdjLjcgNC4xLTMuNiA3LjItNy4yIDUuM0w0ODAgMjc2LjdsLTIwLjQgMTAuN2MtMy42IDEuOS03LjktMS4yLTcuMi01LjNsMy45LTIyLjctMTYuNS0xNi4xYy0zLTIuOS0xLjMtNy45IDIuOC04LjVsMjIuOC0zLjMgMTAuMi0yMC43YzEuOC0zLjcgNy4xLTMuNyA5IDBsMTAuMiAyMC43IDIyLjggMy4zYzQgLjYgNS42IDUuNiAyLjYgOC41ek0xOTIgNDk2YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZ2LTgwaDE2MHY4MGMwIDguOCA3LjIgMTYgMTYgMTZoNjRjOC44IDAgMTYtNy4yIDE2LTE2VjM1MkgxOTJ2MTQ0elwiXVxufTtcbnZhciBmYURlc2t0b3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGVza3RvcCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjEwOFwiLCBcIk01MjggMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2MzIwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDE5MmwtMTYgNDhoLTcyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0aDI3MmMxMy4zIDAgMjQtMTAuNyAyNC0yNHMtMTAuNy0yNC0yNC0yNGgtNzJsLTE2LTQ4aDE5MmMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHptLTE2IDM1Mkg2NFY2NGg0NDh2Mjg4elwiXVxufTtcbnZhciBmYURoYXJtYWNoYWtyYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaGFybWFjaGFrcmEnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2NTVcIiwgXCJNNDk1IDIyNS4wNmwtMTcuMjIgMS4wOGMtNS4yNy0zOS40OS0yMC43OS03NS42NC00My44Ni0xMDUuODRsMTIuOTUtMTEuNDNjNi45Mi02LjExIDcuMjUtMTYuNzkuNzMtMjMuMzFMNDI2LjQ0IDY0LjRjLTYuNTMtNi41My0xNy4yMS02LjE5LTIzLjMxLjczTDM5MS43IDc4LjA3Yy0zMC4yLTIzLjA2LTY2LjM1LTM4LjU4LTEwNS44My00My44NkwyODYuOTQgMTdjLjU4LTkuMjEtNi43NC0xNy0xNS45Ny0xN2gtMjkuOTRjLTkuMjMgMC0xNi41NCA3Ljc5LTE1Ljk3IDE3bDEuMDggMTcuMjJjLTM5LjQ5IDUuMjctNzUuNjQgMjAuNzktMTA1LjgzIDQzLjg2bC0xMS40My0xMi45NWMtNi4xMS02LjkyLTE2Ljc5LTcuMjUtMjMuMzEtLjczTDY0LjQgODUuNTZjLTYuNTMgNi41My02LjE5IDE3LjIxLjczIDIzLjMxbDEyLjk1IDExLjQzYy0yMy4wNiAzMC4yLTM4LjU4IDY2LjM1LTQzLjg2IDEwNS44NEwxNyAyMjUuMDZjLTkuMjEtLjU4LTE3IDYuNzQtMTcgMTUuOTd2MjkuOTRjMCA5LjIzIDcuNzkgMTYuNTQgMTcgMTUuOTdsMTcuMjItMS4wOGM1LjI3IDM5LjQ5IDIwLjc5IDc1LjY0IDQzLjg2IDEwNS44M2wtMTIuOTUgMTEuNDNjLTYuOTIgNi4xMS03LjI1IDE2Ljc5LS43MyAyMy4zMWwyMS4xNyAyMS4xN2M2LjUzIDYuNTMgMTcuMjEgNi4xOSAyMy4zMS0uNzNsMTEuNDMtMTIuOTVjMzAuMiAyMy4wNiA2Ni4zNSAzOC41OCAxMDUuODQgNDMuODZMMjI1LjA2IDQ5NWMtLjU4IDkuMjEgNi43NCAxNyAxNS45NyAxN2gyOS45NGM5LjIzIDAgMTYuNTQtNy43OSAxNS45Ny0xN2wtMS4wOC0xNy4yMmMzOS40OS01LjI3IDc1LjY0LTIwLjc5IDEwNS44NC00My44NmwxMS40MyAxMi45NWM2LjExIDYuOTIgMTYuNzkgNy4yNSAyMy4zMS43M2wyMS4xNy0yMS4xN2M2LjUzLTYuNTMgNi4xOS0xNy4yMS0uNzMtMjMuMzFsLTEyLjk1LTExLjQzYzIzLjA2LTMwLjIgMzguNTgtNjYuMzUgNDMuODYtMTA1LjgzbDE3LjIyIDEuMDhjOS4yMS41OCAxNy02Ljc0IDE3LTE1Ljk3di0yOS45NGMtLjAxLTkuMjMtNy44LTE2LjU0LTE3LjAxLTE1Ljk3ek0yODEuODQgOTguNjFjMjQuODEgNC4wNyA0Ny42MyAxMy42NiA2Ny4yMyAyNy43OGwtNDIuNjIgNDguMjljLTguNzMtNS40NC0xOC4zMi05LjU0LTI4LjYyLTExLjk1bDQuMDEtNjQuMTJ6bS01MS42OCAwbDQuMDEgNjQuMTJjLTEwLjI5IDIuNDEtMTkuODkgNi41Mi0yOC42MiAxMS45NWwtNDIuNjItNDguMjljMTkuNi0xNC4xMiA0Mi40Mi0yMy43MSA2Ny4yMy0yNy43OHptLTEwMy43NyA2NC4zM2w0OC4zIDQyLjYxYy01LjQ0IDguNzMtOS41NCAxOC4zMy0xMS45NiAyOC42MmwtNjQuMTItNC4wMWM0LjA3LTI0LjgxIDEzLjY2LTQ3LjYyIDI3Ljc4LTY3LjIyem0tMjcuNzggMTE4LjlsNjQuMTItNC4wMWMyLjQxIDEwLjI5IDYuNTIgMTkuODkgMTEuOTUgMjguNjJsLTQ4LjI5IDQyLjYyYy0xNC4xMi0xOS42LTIzLjcxLTQyLjQyLTI3Ljc4LTY3LjIzem0xMzEuNTUgMTMxLjU1Yy0yNC44MS00LjA3LTQ3LjYzLTEzLjY2LTY3LjIzLTI3Ljc4bDQyLjYxLTQ4LjNjOC43MyA1LjQ0IDE4LjMzIDkuNTQgMjguNjIgMTEuOTZsLTQgNjQuMTJ6TTI1NiAyODhjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTI1Ljg0IDEyNS4zOWwtNC4wMS02NC4xMmMxMC4yOS0yLjQxIDE5Ljg5LTYuNTIgMjguNjItMTEuOTZsNDIuNjEgNDguM2MtMTkuNiAxNC4xMi00Mi40MSAyMy43MS02Ny4yMiAyNy43OHptMTAzLjc3LTY0LjMzbC00OC4yOS00Mi42MmM1LjQ0LTguNzMgOS41NC0xOC4zMiAxMS45NS0yOC42Mmw2NC4xMiA0LjAxYy00LjA3IDI0LjgyLTEzLjY2IDQ3LjY0LTI3Ljc4IDY3LjIzem0tMzYuMzQtMTE0Ljg5Yy0yLjQxLTEwLjI5LTYuNTItMTkuODktMTEuOTYtMjguNjJsNDguMy00Mi42MWMxNC4xMiAxOS42IDIzLjcxIDQyLjQyIDI3Ljc4IDY3LjIzbC02NC4xMiA0elwiXVxufTtcbnZhciBmYURpYWdub3NlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWFnbm9zZXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0NzBcIiwgXCJNNDk2IDI1NmM4LjggMCAxNi03LjIgMTYtMTZzLTcuMi0xNi0xNi0xNi0xNiA3LjItMTYgMTYgNy4yIDE2IDE2IDE2em0tMTc2LTgwYzQ4LjUgMCA4OC0zOS41IDg4LTg4UzM2OC41IDAgMzIwIDBzLTg4IDM5LjUtODggODggMzkuNSA4OCA4OCA4OHpNNTkuOCAzNjRjMTAuMiAxNS4zIDI5LjMgMTcuOCA0Mi45IDkuOCAxNi4yLTkuNiA1Ni4yLTMxLjcgMTA1LjMtNDguNlY0MTZoMjI0di05MC43YzQ5LjEgMTYuOCA4OS4xIDM5IDEwNS4zIDQ4LjYgMTMuNiA4IDMyLjcgNS4zIDQyLjktOS44bDE3LjgtMjYuN2M4LjgtMTMuMiA3LjYtMzQuNi0xMC00NS4xLTExLjktNy4xLTI5LjctMTctNTEuMS0yNy40LTI4LjEgNDYuMS05OS40IDE3LjgtODcuNy0zNS4xQzQwOS4zIDIxNy4yIDM2NS4xIDIwOCAzMjAgMjA4Yy01NyAwLTExMi45IDE0LjUtMTYwIDMyLjItLjIgNDAuMi00Ny42IDYzLjMtNzkuMiAzNi0xMS4yIDYtMjEuMyAxMS42LTI4LjcgMTYtMTcuNiAxMC41LTE4LjggMzEuOC0xMCA0NS4xTDU5LjggMzY0ek0zNjggMzQ0YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptLTk2LTk2YzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptLTE2MCA4YzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2LTE2IDcuMi0xNiAxNiA3LjIgMTYgMTYgMTZ6bTUxMiAxOTJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjA4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2elwiXVxufTtcbnZhciBmYURpY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjUyMlwiLCBcIk01OTIgMTkySDQ3My4yNmMxMi42OSAyOS41OSA3LjEyIDY1LjItMTcgODkuMzJMMzIwIDQxNy41OFY0NjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGgyMjRjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYyNDBjMC0yNi41MS0yMS40OS00OC00OC00OHpNNDgwIDM3NmMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6bS00Ni4zNy0xODYuN0wyNTguNyAxNC4zN2MtMTkuMTYtMTkuMTYtNTAuMjMtMTkuMTYtNjkuMzkgMEwxNC4zNyAxODkuM2MtMTkuMTYgMTkuMTYtMTkuMTYgNTAuMjMgMCA2OS4zOUwxODkuMyA0MzMuNjNjMTkuMTYgMTkuMTYgNTAuMjMgMTkuMTYgNjkuMzkgMEw0MzMuNjMgMjU4LjdjMTkuMTYtMTkuMTcgMTkuMTYtNTAuMjQgMC02OS40ek05NiAyNDhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0em0xMjggMTI4Yy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjRzMjQgMTAuNzQgMjQgMjRjMCAxMy4yNS0xMC43NSAyNC0yNCAyNHptMC0xMjhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0em0wLTEyOGMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6bTEyOCAxMjhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwiXVxufTtcbnZhciBmYURpY2VEMjAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1kMjAnLFxuICBpY29uOiBbNDgwLCA1MTIsIFtdLCBcImY2Y2ZcIiwgXCJNMTA2Ljc1IDIxNS4wNkwxLjIgMzcwLjk1Yy0zLjA4IDUgLjEgMTEuNSA1LjkzIDEyLjE0bDIwOC4yNiAyMi4wNy0xMDguNjQtMTkwLjF6TTcuNDEgMzE1LjQzTDgyLjcgMTkzLjA4IDYuMDYgMTQ3LjFjLTIuNjctMS42LTYuMDYuMzItNi4wNiAzLjQzdjE2Mi44MWMwIDQuMDMgNS4yOSA1LjUzIDcuNDEgMi4wOXpNMTguMjUgNDIzLjZsMTk0LjQgODcuNjZjNS4zIDIuNDUgMTEuMzUtMS40MyAxMS4zNS03LjI2di02NS42N2wtMjAzLjU1LTIyLjNjLTQuNDUtLjUtNi4yMyA1LjU5LTIuMiA3LjU3em04MS4yMi0yNTcuNzhMMTc5LjQgMjIuODhjNC4zNC03LjA2LTMuNTktMTUuMjUtMTAuNzgtMTEuMTRMMTcuODEgMTEwLjM1Yy0yLjQ3IDEuNjItMi4zOSA1LjI2LjEzIDYuNzhsODEuNTMgNDguNjl6TTI0MCAxNzZoMTA5LjIxTDI1My42MyA3LjYyQzI1MC41IDIuNTQgMjQ1LjI1IDAgMjQwIDBzLTEwLjUgMi41NC0xMy42MyA3LjYyTDEzMC43OSAxNzZIMjQwem0yMzMuOTQtMjguOWwtNzYuNjQgNDUuOTkgNzUuMjkgMTIyLjM1YzIuMTEgMy40NCA3LjQxIDEuOTQgNy40MS0yLjFWMTUwLjUzYzAtMy4xMS0zLjM5LTUuMDMtNi4wNi0zLjQzem0tOTMuNDEgMTguNzJsODEuNTMtNDguN2MyLjUzLTEuNTIgMi42LTUuMTYuMTMtNi43OGwtMTUwLjgxLTk4LjZjLTcuMTktNC4xMS0xNS4xMiA0LjA4LTEwLjc4IDExLjE0bDc5LjkzIDE0Mi45NHptNzkuMDIgMjUwLjIxTDI1NiA0MzguMzJ2NjUuNjdjMCA1Ljg0IDYuMDUgOS43MSAxMS4zNSA3LjI2bDE5NC40LTg3LjY2YzQuMDMtMS45NyAyLjI1LTguMDYtMi4yLTcuNTZ6bS04Ni4zLTIwMC45N2wtMTA4LjYzIDE5MC4xIDIwOC4yNi0yMi4wN2M1LjgzLS42NSA5LjAxLTcuMTQgNS45My0xMi4xNEwzNzMuMjUgMjE1LjA2ek0yNDAgMjA4SDEzOS41N0wyNDAgMzgzLjc1IDM0MC40MyAyMDhIMjQwelwiXVxufTtcbnZhciBmYURpY2VENiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWNlLWQ2JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNmQxXCIsIFwiTTQyMi4xOSAxMDkuOTVMMjU2LjIxIDkuMDdjLTE5LjkxLTEyLjEtNDQuNTItMTIuMS02NC40MyAwTDI1LjgxIDEwOS45NWMtNS4zMiAzLjIzLTUuMjkgMTEuMjcuMDYgMTQuNDZMMjI0IDI0Mi41NWwxOTguMTQtMTE4LjE0YzUuMzUtMy4xOSA1LjM4LTExLjIyLjA1LTE0LjQ2em0xMy44NCA0NC42M0wyNDAgMjcxLjQ2djIyMy44MmMwIDEyLjg4IDEzLjM5IDIwLjkxIDI0LjA1IDE0LjQzbDE1Mi4xNi05Mi40OGMxOS42OC0xMS45NiAzMS43OS0zMy45NCAzMS43OS01Ny43di0xOTcuN2MwLTYuNDEtNi42NC0xMC40My0xMS45Ny03LjI1ek0wIDE2MS44M3YxOTcuN2MwIDIzLjc3IDEyLjExIDQ1Ljc0IDMxLjc5IDU3LjdsMTUyLjE2IDkyLjQ3YzEwLjY3IDYuNDggMjQuMDUtMS41NCAyNC4wNS0xNC40M1YyNzEuNDZMMTEuOTcgMTU0LjU4QzYuNjQgMTUxLjQgMCAxNTUuNDIgMCAxNjEuODN6XCJdXG59O1xudmFyIGZhRGljZUZpdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1maXZlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTIzXCIsIFwiTTM4NCAzMkg2NEMyOC42NSAzMiAwIDYwLjY1IDAgOTZ2MzIwYzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzIwYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWOTZjMC0zNS4zNS0yOC42NS02NC02NC02NHpNMTI4IDM4NGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC0xOTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTk2IDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem05NiA5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC0xOTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhRGljZUZvdXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1mb3VyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTI0XCIsIFwiTTM4NCAzMkg2NEMyOC42NSAzMiAwIDYwLjY1IDAgOTZ2MzIwYzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzIwYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWOTZjMC0zNS4zNS0yOC42NS02NC02NC02NHpNMTI4IDM4NGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC0xOTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTE5MiAxOTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTAtMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYURpY2VPbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1vbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1MjVcIiwgXCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0yMjQgMjg4Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYURpY2VTaXggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS1zaXgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1MjZcIiwgXCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0xMjggMzg0Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xOTIgMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0wLTk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYURpY2VUaHJlZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkaWNlLXRocmVlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTI3XCIsIFwiTTM4NCAzMkg2NEMyOC42NSAzMiAwIDYwLjY1IDAgOTZ2MzIwYzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzIwYzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWOTZjMC0zNS4zNS0yOC42NS02NC02NC02NHpNMTI4IDE5MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptOTYgOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6bTk2IDk2Yy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYURpY2VUd28gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGljZS10d28nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1MjhcIiwgXCJNMzg0IDMySDY0QzI4LjY1IDMyIDAgNjAuNjUgMCA5NnYzMjBjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMjBjMzUuMzUgMCA2NC0yOC42NSA2NC02NFY5NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0ek0xMjggMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0xOTIgMTkyYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYURpZ2l0YWxUYWNob2dyYXBoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpZ2l0YWwtdGFjaG9ncmFwaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjU2NlwiLCBcIk02MDggOTZIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MjU2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMTI4YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTMwNCAzNTJjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04di04YzAtNC40MiAzLjU4LTggOC04aDIyNGM0LjQyIDAgOCAzLjU4IDggOHY4ek03MiAyODh2LTE2YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDgwYy00LjQyIDAtOC0zLjU4LTgtOHptNjQgMHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptNjQgMHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptNjQgMHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHptNDAtNjRjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIODBjLTguODQgMC0xNi03LjE2LTE2LTE2di00OGMwLTguODQgNy4xNi0xNiAxNi0xNmgyMDhjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NDh6bTI3MiAxMjhjMCA0LjQyLTMuNTggOC04IDhIMzQ0Yy00LjQyIDAtOC0zLjU4LTgtOHYtOGMwLTQuNDIgMy41OC04IDgtOGgyMjRjNC40MiAwIDggMy41OCA4IDh2OHpcIl1cbn07XG52YXIgZmFEaXJlY3Rpb25zID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpcmVjdGlvbnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1ZWJcIiwgXCJNNTAyLjYxIDIzMy4zMkwyNzguNjggOS4zOWMtMTIuNTItMTIuNTItMzIuODMtMTIuNTItNDUuMzYgMEw5LjM5IDIzMy4zMmMtMTIuNTIgMTIuNTMtMTIuNTIgMzIuODMgMCA0NS4zNmwyMjMuOTMgMjIzLjkzYzEyLjUyIDEyLjUzIDMyLjgzIDEyLjUzIDQ1LjM2IDBsMjIzLjkzLTIyMy45M2MxMi41Mi0xMi41MyAxMi41Mi0zMi44MyAwLTQ1LjM2em0tMTAwLjk4IDEyLjU2bC04NC4yMSA3Ny43M2MtNS4xMiA0LjczLTEzLjQzIDEuMS0xMy40My01Ljg4VjI2NGgtOTZ2NjRjMCA0LjQyLTMuNTggOC04IDhoLTMyYy00LjQyIDAtOC0zLjU4LTgtOHYtODBjMC0xNy42NyAxNC4zMy0zMiAzMi0zMmgxMTJ2LTUzLjczYzAtNi45NyA4LjMtMTAuNjEgMTMuNDMtNS44OGw4NC4yMSA3Ny43M2MzLjQzIDMuMTcgMy40MyA4LjU5IDAgMTEuNzZ6XCJdXG59O1xudmFyIGZhRGl2aWRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RpdmlkZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUyOVwiLCBcIk0yMjQgMzUyYy0zNS4zNSAwLTY0IDI4LjY1LTY0IDY0czI4LjY1IDY0IDY0IDY0IDY0LTI4LjY1IDY0LTY0LTI4LjY1LTY0LTY0LTY0em0wLTE5MmMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0cy0yOC42NS02NC02NC02NC02NCAyOC42NS02NCA2NCAyOC42NSA2NCA2NCA2NHptMTkyIDQ4SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzg0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhRGl6enkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZGl6enknLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1NjdcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptLTk2IDIwNi42bC0yOC43IDI4LjdjLTE0LjggMTQuOC0zNy44LTcuNS0yMi42LTIyLjZsMjguNy0yOC43LTI4LjctMjguN2MtMTUtMTUgNy43LTM3LjYgMjIuNi0yMi42bDI4LjcgMjguNyAyOC43LTI4LjdjMTUtMTUgMzcuNiA3LjcgMjIuNiAyMi42TDE3NC42IDE5MmwyOC43IDI4LjdjMTUuMiAxNS4yLTcuOSAzNy40LTIyLjYgMjIuNkwxNTIgMjE0LjZ6TTI0OCA0MTZjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0em0xNDcuMy0xOTUuM2MxNS4yIDE1LjItNy45IDM3LjQtMjIuNiAyMi42TDM0NCAyMTQuNmwtMjguNyAyOC43Yy0xNC44IDE0LjgtMzcuOC03LjUtMjIuNi0yMi42bDI4LjctMjguNy0yOC43LTI4LjdjLTE1LTE1IDcuNy0zNy42IDIyLjYtMjIuNmwyOC43IDI4LjcgMjguNy0yOC43YzE1LTE1IDM3LjYgNy43IDIyLjYgMjIuNkwzNjYuNiAxOTJsMjguNyAyOC43elwiXVxufTtcbnZhciBmYURuYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkbmEnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY0NzFcIiwgXCJNLjEgNDk0LjFjLTEuMSA5LjUgNi4zIDE3LjggMTUuOSAxNy44bDMyLjMuMWM4LjEgMCAxNC45LTUuOSAxNi0xMy45LjctNC45IDEuOC0xMS4xIDMuNC0xOC4xSDM4MGMxLjYgNi45IDIuOSAxMy4yIDMuNSAxOC4xIDEuMSA4IDcuOSAxNCAxNiAxMy45bDMyLjMtLjFjOS42IDAgMTcuMS04LjMgMTUuOS0xNy44LTQuNi0zNy45LTI1LjYtMTI5LTExOC45LTIwNy43LTE3LjYgMTIuNC0zNy4xIDI0LjItNTguNSAzNS40IDYuMiA0LjYgMTEuNCA5LjQgMTcgMTQuMkgxNTkuN2MyMS4zLTE4LjEgNDctMzUuNiA3OC43LTUxLjRDNDEwLjUgMTk5LjEgNDQyLjEgNjUuOCA0NDcuOSAxNy45IDQ0OSA4LjQgNDQxLjYuMSA0MzIgLjFMMzk5LjYgMGMtOC4xIDAtMTQuOSA1LjktMTYgMTMuOS0uNyA0LjktMS44IDExLjEtMy40IDE4LjFINjcuOGMtMS42LTctMi43LTEzLjEtMy40LTE4LjEtMS4xLTgtNy45LTE0LTE2LTEzLjlMMTYuMS4xQzYuNS4xLTEgOC40LjEgMTcuOSA1LjMgNjAuOCAzMS40IDE3MS44IDE2MCAyNTYgMzEuNSAzNDAuMiA1LjMgNDUxLjIuMSA0OTQuMXpNMjI0IDIxOS42Yy0yNS4xLTEzLjctNDYuNC0yOC40LTY0LjMtNDMuNmgxMjguNWMtMTcuOCAxNS4yLTM5LjEgMzAtNjQuMiA0My42ek0zNTUuMSA5NmMtNS44IDEwLjQtMTIuOCAyMS4xLTIxIDMySDExNGMtOC4zLTEwLjktMTUuMy0yMS42LTIxLTMyaDI2Mi4xek05Mi45IDQxNmM1LjgtMTAuNCAxMi44LTIxLjEgMjEtMzJoMjE5LjRjOC4zIDEwLjkgMTUuNCAyMS42IDIxLjIgMzJIOTIuOXpcIl1cbn07XG52YXIgZmFEb2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG9nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNmQzXCIsIFwiTTQ5NiA5NmgtNjRsLTcuMTYtMTQuMzFBMzIgMzIgMCAwIDAgMzk2LjIyIDY0SDM0Mi42bC0yNy4yOC0yNy4yOEMzMDUuMjMgMjYuNjQgMjg4IDMzLjc4IDI4OCA0OC4wM3YxNDkuODRsMTI4IDQ1LjcxVjIwOGgzMmMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnptLTExMiA0OGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6TTk2IDIyNGMtMTcuNjQgMC0zMi0xNC4zNi0zMi0zMiAwLTE3LjY3LTE0LjMzLTMyLTMyLTMyUzAgMTc0LjMzIDAgMTkyYzAgNDEuNjYgMjYuODMgNzYuODUgNjQgOTAuMVY0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzg0aDE2MHYxMTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjc3LjU1TDI2Ni4wNSAyMjRIOTZ6XCJdXG59O1xudmFyIGZhRG9sbGFyU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb2xsYXItc2lnbicsXG4gIGljb246IFsyODgsIDUxMiwgW10sIFwiZjE1NVwiLCBcIk0yMDkuMiAyMzMuNGwtMTA4LTMxLjZDODguNyAxOTguMiA4MCAxODYuNSA4MCAxNzMuNWMwLTE2LjMgMTMuMi0yOS41IDI5LjUtMjkuNWg2Ni4zYzEyLjIgMCAyNC4yIDMuNyAzNC4yIDEwLjUgNi4xIDQuMSAxNC4zIDMuMSAxOS41LTJsMzQuOC0zNGM3LjEtNi45IDYuMS0xOC40LTEuOC0yNC41QzIzOCA3NC44IDIwNy40IDY0LjEgMTc2IDY0VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0OGgtMi41QzQ1LjggNjQtNS40IDExOC43LjUgMTgzLjZjNC4yIDQ2LjEgMzkuNCA4My42IDgzLjggOTYuNmwxMDIuNSAzMGMxMi41IDMuNyAyMS4yIDE1LjMgMjEuMiAyOC4zIDAgMTYuMy0xMy4yIDI5LjUtMjkuNSAyOS41aC02Ni4zQzEwMCAzNjggODggMzY0LjMgNzggMzU3LjVjLTYuMS00LjEtMTQuMy0zLjEtMTkuNSAybC0zNC44IDM0Yy03LjEgNi45LTYuMSAxOC40IDEuOCAyNC41IDI0LjUgMTkuMiA1NS4xIDI5LjkgODYuNSAzMHY0OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di00OC4yYzQ2LjYtLjkgOTAuMy0yOC42IDEwNS43LTcyLjcgMjEuNS02MS42LTE0LjYtMTI0LjgtNzIuNS0xNDEuN3pcIl1cbn07XG52YXIgZmFEb2xseSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkb2xseScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjQ3MlwiLCBcIk0yOTQuMiAyNzcuN2MxOCA1IDM0LjcgMTMuNCA0OS41IDI0LjdsMTYxLjUtNTMuOGM4LjQtMi44IDEyLjktMTEuOSAxMC4xLTIwLjJMNDU0LjkgNDcuMmMtMi44LTguNC0xMS45LTEyLjktMjAuMi0xMC4xbC02MS4xIDIwLjQgMzMuMSA5OS40TDM0NiAxNzdsLTMzLjEtOTkuNC02MS42IDIwLjVjLTguNCAyLjgtMTIuOSAxMS45LTEwLjEgMjAuMmw1MyAxNTkuNHptMjgxIDQ4LjdMNTY1IDI5NmMtMi44LTguNC0xMS45LTEyLjktMjAuMi0xMC4xbC0yMTMuNSA3MS4yYy0xNy4yLTIyLTQzLjYtMzYuNC03My41LTM3TDE1OC40IDIxLjlDMTU0IDguOCAxNDEuOCAwIDEyOCAwSDE2QzcuMiAwIDAgNy4yIDAgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDg4LjlsOTIuMiAyNzYuN2MtMjYuMSAyMC40LTQxLjcgNTMuNi0zNiA5MC41IDYuMSAzOS40IDM3LjkgNzIuMyA3Ny4zIDc5LjIgNjAuMiAxMC43IDExMi4zLTM0LjggMTEzLjQtOTIuNmwyMTMuMy03MS4yYzguMy0yLjggMTIuOS0xMS44IDEwLjEtMjAuMnpNMjU2IDQ2NGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6XCJdXG59O1xudmFyIGZhRG9sbHlGbGF0YmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RvbGx5LWZsYXRiZWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0NzRcIiwgXCJNMjA4IDMyMGgzODRjOC44IDAgMTYtNy4yIDE2LTE2VjQ4YzAtOC44LTcuMi0xNi0xNi0xNkg0NDh2MTI4bC00OC0zMi00OCAzMlYzMkgyMDhjLTguOCAwLTE2IDcuMi0xNiAxNnYyNTZjMCA4LjggNy4yIDE2IDE2IDE2em00MTYgNjRIMTI4VjE2YzAtOC44LTcuMi0xNi0xNi0xNkgxNkM3LjIgMCAwIDcuMiAwIDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHYzNjhjMCA4LjggNy4yIDE2IDE2IDE2aDgyLjljLTEuOCA1LTIuOSAxMC40LTIuOSAxNiAwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4YzAtNS42LTEuMi0xMS0yLjktMTZINDUxYy0xLjggNS0yLjkgMTAuNC0yLjkgMTYgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTUuNi0xLjItMTEtMi45LTE2SDYyNGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFEb25hdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG9uYXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGI5XCIsIFwiTTI1NiA0MTZjMTE0LjkgMCAyMDgtOTMuMSAyMDgtMjA4UzM3MC45IDAgMjU2IDAgNDggOTMuMSA0OCAyMDhzOTMuMSAyMDggMjA4IDIwOHpNMjMzLjggOTcuNFY4MC42YzAtOS4yIDcuNC0xNi42IDE2LjYtMTYuNmgxMS4xYzkuMiAwIDE2LjYgNy40IDE2LjYgMTYuNnYxN2MxNS41LjggMzAuNSA2LjEgNDMgMTUuNCA1LjYgNC4xIDYuMiAxMi4zIDEuMiAxNy4xTDMwNiAxNDUuNmMtMy44IDMuNy05LjUgMy44LTE0IDEtNS40LTMuNC0xMS40LTUuMS0xNy44LTUuMWgtMzguOWMtOSAwLTE2LjMgOC4yLTE2LjMgMTguMyAwIDguMiA1IDE1LjUgMTIuMSAxNy42bDYyLjMgMTguN2MyNS43IDcuNyA0My43IDMyLjQgNDMuNyA2MC4xIDAgMzQtMjYuNCA2MS41LTU5LjEgNjIuNHYxNi44YzAgOS4yLTcuNCAxNi42LTE2LjYgMTYuNmgtMTEuMWMtOS4yIDAtMTYuNi03LjQtMTYuNi0xNi42di0xN2MtMTUuNS0uOC0zMC41LTYuMS00My0xNS40LTUuNi00LjEtNi4yLTEyLjMtMS4yLTE3LjFsMTYuMy0xNS41YzMuOC0zLjcgOS41LTMuOCAxNC0xIDUuNCAzLjQgMTEuNCA1LjEgMTcuOCA1LjFoMzguOWM5IDAgMTYuMy04LjIgMTYuMy0xOC4zIDAtOC4yLTUtMTUuNS0xMi4xLTE3LjZsLTYyLjMtMTguN2MtMjUuNy03LjctNDMuNy0zMi40LTQzLjctNjAuMS4xLTM0IDI2LjQtNjEuNSA1OS4xLTYyLjR6TTQ4MCAzNTJoLTMyLjVjLTE5LjYgMjYtNDQuNiA0Ny43LTczIDY0aDYzLjhjNS4zIDAgOS42IDMuNiA5LjYgOHYxNmMwIDQuNC00LjMgOC05LjYgOEg3My42Yy01LjMgMC05LjYtMy42LTkuNi04di0xNmMwLTQuNCA0LjMtOCA5LjYtOGg2My44Yy0yOC40LTE2LjMtNTMuMy0zOC03My02NEgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2OTZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNDQ4YzE3LjcgMCAzMi0xNC4zIDMyLTMydi05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFEb29yQ2xvc2VkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Rvb3ItY2xvc2VkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTJhXCIsIFwiTTYyNCA0NDhINTEyVjUwLjhDNTEyIDIyLjc4IDQ5MC40NyAwIDQ2NCAwSDE3NS45OWMtMjYuNDcgMC00OCAyMi43OC00OCA1MC44VjQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjA4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNNDE1Ljk5IDI4OGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMmMuMDEgMTcuNjctMTQuMzIgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhRG9vck9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG9vci1vcGVuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTJiXCIsIFwiTTYyNCA0NDhoLTgwVjExMy40NUM1NDQgODYuMTkgNTIyLjQ3IDY0IDQ5NiA2NEgzODR2NjRoOTZ2Mzg0aDE0NGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTMxMi4yNCAxLjAxbC0xOTIgNDkuNzRDMTA1Ljk5IDU0LjQ0IDk2IDY3LjcgOTYgODIuOTJWNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMzZWMzMuMThjMC0yMS41OC0xOS41Ni0zNy40MS0zOS43Ni0zMi4xN3pNMjY0IDI4OGMtMTMuMjUgMC0yNC0xNC4zMy0yNC0zMnMxMC43NS0zMiAyNC0zMiAyNCAxNC4zMyAyNCAzMi0xMC43NSAzMi0yNCAzMnpcIl1cbn07XG52YXIgZmFEb3RDaXJjbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG90LWNpcmNsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE5MlwiLCBcIk0yNTYgOEMxMTkuMDMzIDggOCAxMTkuMDMzIDggMjU2czExMS4wMzMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMzMgMjQ4LTI0OFMzOTIuOTY3IDggMjU2IDh6bTgwIDI0OGMwIDQ0LjExMi0zNS44ODggODAtODAgODBzLTgwLTM1Ljg4OC04MC04MCAzNS44ODgtODAgODAtODAgODAgMzUuODg4IDgwIDgwelwiXVxufTtcbnZhciBmYURvdmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG92ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjRiYVwiLCBcIk0yODggMTY3LjJ2LTI4LjFjLTI4LjItMzYuMy00Ny4xLTc5LjMtNTQuMS0xMjUuMi0yLjEtMTMuNS0xOS0xOC44LTI3LjgtOC4zLTIxLjEgMjQuOS0zNy43IDU0LjEtNDguOSA4Ni41IDM0LjIgMzguMyA4MCA2NC42IDEzMC44IDc1LjF6TTQwMCA2NGMtNDQuMiAwLTgwIDM1LjktODAgODAuMXY1OS40QzIxNS42IDE5Ny4zIDEyNyAxMzMgODcgNDEuOGMtNS41LTEyLjUtMjMuMi0xMy4yLTI5LS45QzQxLjQgNzYgMzIgMTE1LjIgMzIgMTU2LjZjMCA3MC44IDM0LjEgMTM2LjkgODUuMSAxODUuOSAxMy4yIDEyLjcgMjYuMSAyMy4yIDM4LjkgMzIuOGwtMTQzLjkgMzZDMS40IDQxNC0zLjQgNDI2LjQgMi42IDQzNS43IDIwIDQ2Mi42IDYzIDUwOC4yIDE1NS44IDUxMmM4IC4zIDE2LTIuNiAyMi4xLTcuOWw2NS4yLTU2LjFIMzIwYzg4LjQgMCAxNjAtNzEuNSAxNjAtMTU5LjlWMTI4bDMyLTY0SDQwMHptMCA5Ni4xYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6XCJdXG59O1xudmFyIGZhRG93bmxvYWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZG93bmxvYWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwMTlcIiwgXCJNMjE2IDBoODBjMTMuMyAwIDI0IDEwLjcgMjQgMjR2MTY4aDg3LjdjMTcuOCAwIDI2LjcgMjEuNSAxNC4xIDM0LjFMMjY5LjcgMzc4LjNjLTcuNSA3LjUtMTkuOCA3LjUtMjcuMyAwTDkwLjEgMjI2LjFjLTEyLjYtMTIuNi0zLjctMzQuMSAxNC4xLTM0LjFIMTkyVjI0YzAtMTMuMyAxMC43LTI0IDI0LTI0em0yOTYgMzc2djExMmMwIDEzLjMtMTAuNyAyNC0yNCAyNEgyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRWMzc2YzAtMTMuMyAxMC43LTI0IDI0LTI0aDE0Ni43bDQ5IDQ5YzIwLjEgMjAuMSA1Mi41IDIwLjEgNzIuNiAwbDQ5LTQ5SDQ4OGMxMy4zIDAgMjQgMTAuNyAyNCAyNHptLTEyNCA4OGMwLTExLTktMjAtMjAtMjBzLTIwIDktMjAgMjAgOSAyMCAyMCAyMCAyMC05IDIwLTIwem02NCAwYzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMCA5IDIwIDIwIDIwIDIwLTkgMjAtMjB6XCJdXG59O1xudmFyIGZhRHJhZnRpbmdDb21wYXNzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RyYWZ0aW5nLWNvbXBhc3MnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NjhcIiwgXCJNNDU3LjAxIDM0NC40MmMtMjUuMDUgMjAuMzMtNTIuNjMgMzcuMTgtODIuNTQgNDkuMDVsNTQuMzggOTQuMTkgNTMuOTUgMjMuMDRjOS44MSA0LjE5IDIwLjg5LTIuMjEgMjIuMTctMTIuOGw3LjAyLTU4LjI1LTU0Ljk4LTk1LjIzem00Mi40OS05NC41NmM0Ljg2LTcuNjcgMS44OS0xNy45OS02LjA1LTIyLjM5bC0yOC4wNy0xNS41N2MtNy40OC00LjE1LTE2LjYxLTEuNDYtMjEuMjYgNS43MkM0MDMuMDEgMjgxLjE1IDMzMi4yNSAzMjAgMjU2IDMyMGMtMjMuOTMgMC00Ny4yMy00LjI1LTY5LjQxLTExLjUzbDY3LjM2LTExNi42OGMuNy4wMiAxLjM0LjIxIDIuMDQuMjFzMS4zNS0uMTkgMi4wNC0uMjFsNTEuMDkgODguNWMzMS4yMy04Ljk2IDU5LjU2LTI1Ljc1IDgyLjYxLTQ4LjkybC01MS43OS04OS43MUMzNDcuMzkgMTI4LjAzIDM1MiAxMTIuNjMgMzUyIDk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZzLTk2IDQyLjk4LTk2IDk2YzAgMTYuNjMgNC42MSAzMi4wMyAxMi4wNSA0NS42NmwtNjguMyAxMTguMzFjLTEyLjU1LTExLjYxLTIzLjk2LTI0LjU5LTMzLjY4LTM5LTQuNzktNy4xLTEzLjk3LTkuNjItMjEuMzgtNS4zM2wtMjcuNzUgMTYuMDdjLTcuODUgNC41NC0xMC42MyAxNC45LTUuNjQgMjIuNDcgMTUuNTcgMjMuNjQgMzQuNjkgNDQuMjEgNTUuOTggNjIuMDJMMCA0MzkuNjZsNy4wMiA1OC4yNWMxLjI4IDEwLjU5IDEyLjM2IDE2Ljk5IDIyLjE3IDEyLjhsNTMuOTUtMjMuMDQgNzAuOC0xMjIuNjNDMTg2LjEzIDM3Ny4yOCAyMjAuNjIgMzg0IDI1NiAzODRjOTkuMDUgMCAxOTAuODgtNTEuMDEgMjQzLjUtMTM0LjE0ek0yNTYgNjRjMTcuNjcgMCAzMiAxNC4zMyAzMiAzMnMtMTQuMzMgMzItMzIgMzItMzItMTQuMzMtMzItMzIgMTQuMzMtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhRHJhZ29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RyYWdvbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjZkNVwiLCBcIk0xOC4zMiAyNTUuNzhMMTkyIDIyMy45NmwtOTEuMjggNjguNjljLTEwLjA4IDEwLjA4LTIuOTQgMjcuMzEgMTEuMzEgMjcuMzFoMjIyLjdjLTkuNDQtMjYuNC0xNC43My01NC40Ny0xNC43My04My4zOHYtNDIuMjdsLTExOS43My04Ny42Yy0yMy44Mi0xNS44OC01NS4yOS0xNC4wMS03Ny4wNiA0LjU5TDUuODEgMjI3LjY0Yy0xMi4zOCAxMC4zMy0zLjQ1IDMwLjQyIDEyLjUxIDI4LjE0em01NTYuODcgMzQuMWwtMTAwLjY2LTUwLjMxQTQ3Ljk5MiA0Ny45OTIgMCAwIDEgNDQ4IDE5Ni42NXYtMzYuNjloNjRsMjguMDkgMjIuNjNjNiA2IDE0LjE0IDkuMzcgMjIuNjMgOS4zN2gzMC45N2EzMiAzMiAwIDAgMCAyOC42Mi0xNy42OWwxNC4zMS0yOC42MmEzMi4wMDUgMzIuMDA1IDAgMCAwLTMuMDItMzMuNTFsLTc0LjUzLTk5LjM4QzU1My4wMiA0LjcgNTQzLjU0IDAgNTMzLjQ3IDBIMjk2LjAyYy03LjEzIDAtMTAuNyA4LjU3LTUuNjYgMTMuNjFMMzUyIDYzLjk2IDI5Mi40MiA4OC44Yy01LjkgMi45NS01LjkgMTEuMzYgMCAxNC4zMUwzNTIgMTI3Ljk2djEwOC42MmMwIDcyLjA4IDM2LjAzIDEzOS4zOSA5NiAxNzkuMzgtMTk1LjU5IDYuODEtMzQ0LjU2IDQxLjAxLTQzNC4xIDYwLjkxQzUuNzggNDc4LjY3IDAgNDg1Ljg4IDAgNDk0LjIgMCA1MDQgNy45NSA1MTIgMTcuNzYgNTEyaDQ5OS4wOGM2My4yOS4wMSAxMTkuNjEtNDcuNTYgMTIyLjk5LTExMC43NiAyLjUyLTQ3LjI4LTIyLjczLTkwLjQtNjQuNjQtMTExLjM2ek00ODkuMTggNjYuMjVsNDUuNjUgMTEuNDFjLTIuNzUgMTAuOTEtMTIuNDcgMTguODktMjQuMTMgMTguMjYtMTIuOTYtLjcxLTI1Ljg1LTEyLjUzLTIxLjUyLTI5LjY3elwiXVxufTtcbnZhciBmYURyYXdQb2x5Z29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2RyYXctcG9seWdvbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjVlZVwiLCBcIk0zODQgMzUyYy0uMzUgMC0uNjcuMS0xLjAyLjFsLTM5LjItNjUuMzJjNS4wNy05LjE3IDguMjItMTkuNTYgOC4yMi0zMC43OHMtMy4xNC0yMS42MS04LjIyLTMwLjc4bDM5LjItNjUuMzJjLjM1LjAxLjY3LjEgMS4wMi4xIDM1LjM1IDAgNjQtMjguNjUgNjQtNjRzLTI4LjY1LTY0LTY0LTY0Yy0yMy42MyAwLTQ0LjA0IDEyLjk1LTU1LjEyIDMySDExOS4xMkMxMDguMDQgNDQuOTUgODcuNjMgMzIgNjQgMzIgMjguNjUgMzIgMCA2MC42NSAwIDk2YzAgMjMuNjMgMTIuOTUgNDQuMDQgMzIgNTUuMTJ2MjA5Ljc1QzEyLjk1IDM3MS45NiAwIDM5Mi4zNyAwIDQxNmMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0IDIzLjYzIDAgNDQuMDQtMTIuOTUgNTUuMTItMzJoMjA5Ljc1YzExLjA5IDE5LjA1IDMxLjQ5IDMyIDU1LjEyIDMyIDM1LjM1IDAgNjQtMjguNjUgNjQtNjQgLjAxLTM1LjM1LTI4LjY0LTY0LTYzLjk5LTY0em0tMjg4IDguODhWMTUxLjEyQTYzLjgyNSA2My44MjUgMCAwIDAgMTE5LjEyIDEyOGgyMDguMzZsLTM4LjQ2IDY0LjFjLS4zNS0uMDEtLjY3LS4xLTEuMDItLjEtMzUuMzUgMC02NCAyOC42NS02NCA2NHMyOC42NSA2NCA2NCA2NGMuMzUgMCAuNjctLjEgMS4wMi0uMWwzOC40NiA2NC4xSDExOS4xMkE2My43NDggNjMuNzQ4IDAgMCAwIDk2IDM2MC44OHpNMjcyIDI1NmMwLTguODIgNy4xOC0xNiAxNi0xNnMxNiA3LjE4IDE2IDE2LTcuMTggMTYtMTYgMTYtMTYtNy4xOC0xNi0xNnpNNDAwIDk2YzAgOC44Mi03LjE4IDE2LTE2IDE2cy0xNi03LjE4LTE2LTE2IDcuMTgtMTYgMTYtMTYgMTYgNy4xOCAxNiAxNnpNNjQgODBjOC44MiAwIDE2IDcuMTggMTYgMTZzLTcuMTggMTYtMTYgMTYtMTYtNy4xOC0xNi0xNiA3LjE4LTE2IDE2LTE2ek00OCA0MTZjMC04LjgyIDcuMTgtMTYgMTYtMTZzMTYgNy4xOCAxNiAxNi03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTZ6bTMzNiAxNmMtOC44MiAwLTE2LTcuMTgtMTYtMTZzNy4xOC0xNiAxNi0xNiAxNiA3LjE4IDE2IDE2LTcuMTggMTYtMTYgMTZ6XCJdXG59O1xudmFyIGZhRHJ1bSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkcnVtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTY5XCIsIFwiTTQzMS4zNCAxMjIuMDVsNzMuNTMtNDcuNDJhMTYgMTYgMCAwIDAgNC40NC0yMi4xOWwtOC44Ny0xMy4zMWExNiAxNiAwIDAgMC0yMi4xOS00LjQ0bC0xMTAuMDYgNzFDMzE4LjQzIDk2LjkxIDI3MS4yMiA5NiAyNTYgOTYgMjE5LjU1IDk2IDAgMTAwLjU1IDAgMjA4LjE1djE2MC4yM2MwIDMwLjI3IDI3LjUgNTcuNjggNzIgNzcuODZ2LTEwMS45YTI0IDI0IDAgMSAxIDQ4IDB2MTE4LjkzYzMzLjA1IDkuMTEgNzEuMDcgMTUuMDYgMTEyIDE2LjczVjM3Ni4zOWEyNCAyNCAwIDEgMSA0OCAwVjQ4MGM0MC45My0xLjY3IDc4Ljk1LTcuNjIgMTEyLTE2LjczVjM0NC4zNGEyNCAyNCAwIDEgMSA0OCAwdjEwMS45YzQ0LjUtMjAuMTggNzItNDcuNTkgNzItNzcuODZWMjA4LjE1YzAtNDMuMzItMzUuNzYtNjkuNzYtODAuNjYtODYuMXpNMjU2IDI3Mi4yNGMtMTE0Ljg4IDAtMjA4LTI4LjY5LTIwOC02NC4wOXM5My4xMi02NC4wOCAyMDgtNjQuMDhjMTcuMTUgMCAzMy43My43MSA0OS42OCAxLjkxbC03Mi44MSA0N2ExNiAxNiAwIDAgMC00LjQzIDIyLjE5bDguODcgMTMuMzFhMTYgMTYgMCAwIDAgMjIuMTkgNC40NGwxMTguNjQtNzYuNTJDNDMwLjA5IDE2OCA0NjQgMTg2Ljg0IDQ2NCAyMDguMTVjMCAzNS40LTkzLjEzIDY0LjA5LTIwOCA2NC4wOXpcIl1cbn07XG52YXIgZmFEcnVtU3RlZWxwYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHJ1bS1zdGVlbHBhbicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjU2YVwiLCBcIk0yODggMzJDMTI4Ljk0IDMyIDAgODkuMzEgMCAxNjB2MTkyYzAgNzAuNjkgMTI4Ljk0IDEyOCAyODggMTI4czI4OC01Ny4zMSAyODgtMTI4VjE2MGMwLTcwLjY5LTEyOC45NC0xMjgtMjg4LTEyOHptLTgyLjk5IDE1OC4zNmMtNC40NSAxNi42MS0xNC41NCAzMC41Ny0yOC4zMSA0MC40OEMxMDAuMjMgMjE3LjQ2IDQ4IDE5MC43OCA0OCAxNjBjMC0zMC4xNiA1MC4xMS01Ni4zOSAxMjQuMDQtNzAuMDNsMjUuNiA0NC4zNGM5Ljg2IDE3LjA5IDEyLjQ4IDM2Ljk5IDcuMzcgNTYuMDV6TTI4OCAyNDBjLTIxLjA4IDAtNDEuNDEtMS02MC44OS0yLjcgOC4wNi0yNi4xMyAzMi4xNS00NS4zIDYwLjg5LTQ1LjNzNTIuODMgMTkuMTcgNjAuODkgNDUuM0MzMjkuNDEgMjM5IDMwOS4wOCAyNDAgMjg4IDI0MHptNjQtMTQ0YzAgMzUuMjktMjguNzEgNjQtNjQgNjRzLTY0LTI4LjcxLTY0LTY0VjgyLjk2YzIwLjQtMS44OCA0MS44LTIuOTYgNjQtMi45NnM0My42IDEuMDggNjQgMi45NlY5NnptNDYuOTMgMTM0LjljLTEzLjgxLTkuOTEtMjMuOTQtMjMuOS0yOC40LTQwLjU0LTUuMTEtMTkuMDYtMi40OS0zOC45NiA3LjM4LTU2LjA0bDI1LjY1LTQ0LjQyQzQ3Ny43MiAxMDMuNSA1MjggMTI5Ljc5IDUyOCAxNjBjMCAzMC44My01Mi40IDU3LjU0LTEyOS4wNyA3MC45elwiXVxufTtcbnZhciBmYURydW1zdGlja0JpdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHJ1bXN0aWNrLWJpdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2ZDdcIiwgXCJNNDYyLjggNDkuNTdhMTY5LjQ0IDE2OS40NCAwIDAgMC0yMzkuNSAwQzE4Ny44MiA4NSAxNjAuMTMgMTI4IDE2MC4xMyAxOTJ2ODUuODNsLTQwLjYyIDQwLjU5Yy05LjcgOS42OS0yNCAxMS4wNy0zNi43OCA2YTYwLjMzIDYwLjMzIDAgMCAwLTY1IDk4LjcyQzMzIDQzOC4zOSA1NC4yNCA0NDIuNyA3My44NSA0MzguMjFjLTQuNSAxOS42LS4xOCA0MC44MyAxNS4xIDU2LjFhNjAuMzUgNjAuMzUgMCAwIDAgOTguOC02NWMtNS4wOS0xMi43My0zLjcyLTI3IDYtMzYuNzVMMjM0LjM2IDM1Mmg4NS44OWExODcuODcgMTg3Ljg3IDAgMCAwIDYxLjg5LTEwYy0zOS42NC00My44OS0zOS44My0xMTAuMjMgMS4wNS0xNTEuMDcgMzQuMzgtMzQuMzYgODYuNzYtMzkuNDYgMTI4Ljc0LTE2LjggMS4zLTQ0Ljk2LTE0LjgxLTkwLjI4LTQ5LjEzLTEyNC41NnpcIl1cbn07XG52YXIgZmFEdW1iYmVsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdkdW1iYmVsbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQ0YlwiLCBcIk0xMDQgOTZINTZjLTEzLjMgMC0yNCAxMC43LTI0IDI0djEwNEg4Yy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDI0djEwNGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxMjBjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTUyOCAxMjhoLTI0VjEyMGMwLTEzLjMtMTAuNy0yNC0yNC0yNGgtNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djI3MmMwIDEzLjMgMTAuNyAyNCAyNCAyNGg0OGMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyODhoMjRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6TTQ1NiAzMmgtNDhjLTEzLjMgMC0yNCAxMC43LTI0IDI0djE2OEgyNTZWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTQ4Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0MDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMjg4aDEyOHYxNjhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWNTZjMC0xMy4zLTEwLjctMjQtMjQtMjR6XCJdXG59O1xudmFyIGZhRHVtcHN0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHVtcHN0ZXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY3OTNcIiwgXCJNNTYwIDE2MGMxMC40IDAgMTgtOS44IDE1LjUtMTkuOWwtMjQtOTZDNTQ5LjcgMzcgNTQzLjMgMzIgNTM2IDMyaC05OC45bDI1LjYgMTI4SDU2MHpNMjcyIDMySDE3MS41bC0yNS42IDEyOEgyNzJWMzJ6bTEzMi41IDBIMzA0djEyOGgxMjYuMUw0MDQuNSAzMnpNMTYgMTYwaDk3LjNsMjUuNi0xMjhINDBjLTcuMyAwLTEzLjcgNS0xNS41IDEyLjFsLTI0IDk2Qy0yIDE1MC4yIDUuNiAxNjAgMTYgMTYwem01NDQgNjRoLTIwbDQtMzJIMzJsNCAzMkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgyOGwyMCAxNjB2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtMTZoMzIwdjE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2bDIwLTE2MGgyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFEdW1wc3RlckZpcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZHVtcHN0ZXItZmlyZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjc5NFwiLCBcIk00MTguNyAxMDQuMWwuMi0uMi0xNC40LTcySDMwNHYxMjhoNjAuOGMxNi4yLTE5LjMgMzQuMi0zOC4yIDUzLjktNTUuOHpNMjcyIDMySDE3MS41bC0yNS42IDEyOEgyNzJWMzJ6bTE4OS4zIDcyLjFjMTguMiAxNi4zIDM1LjUgMzMuNyA1MS4xIDUxLjUgNS43LTUuNiAxMS40LTExLjEgMTcuMy0xNi4zbDIxLjMtMTkgMjEuMyAxOWMxLjEuOSAyLjEgMi4xIDMuMSAzLjEtLjEtLjguMi0xLjUgMC0yLjNsLTI0LTk2QzU0OS43IDM3IDU0My4zIDMyIDUzNiAzMmgtOTguOWwxMi4zIDYxLjUgMTEuOSAxMC42ek0xNiAxNjBoOTcuM2wyNS42LTEyOEg0MGMtNy4zIDAtMTMuNyA1LTE1LjUgMTIuMWwtMjQgOTZDLTIgMTUwLjIgNS42IDE2MCAxNiAxNjB6bTMyNC42IDMySDMybDQgMzJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMjhsMjAgMTYwdjE2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2aDIwOC44Yy0zMC4yLTMzLjctNDguOC03Ny45LTQ4LjgtMTI2LjQgMC0zNS45IDE5LjktODIuOSA1Mi42LTEyOS42em0yMTAuNS0yOC44Yy0xNC45IDEzLjMtMjguMyAyNy4yLTQwLjIgNDEuMi0xOS41LTI1LjgtNDMuNi01Mi03MS03Ni40LTcwLjIgNjIuNy0xMjAgMTQ0LjMtMTIwIDE5My42IDAgODcuNSA3MS42IDE1OC40IDE2MCAxNTguNHMxNjAtNzAuOSAxNjAtMTU4LjRjLjEtMzYuNi0zNy0xMTIuMi04OC44LTE1OC40em0tMTguNiAyMjkuNGMtMTQuNyAxMC43LTMyLjkgMTctNTIuNSAxNy00OSAwLTg4LjktMzMuNS04OC45LTg4IDAtMjcuMSAxNi41LTUxIDQ5LjQtOTEuOSA0LjcgNS42IDY3LjEgODguMSA2Ny4xIDg4LjFsMzkuOC00N2MyLjggNC44IDUuNCA5LjUgNy43IDE0IDE4LjYgMzYuNyAxMC44IDgzLjYtMjIuNiAxMDcuOHpcIl1cbn07XG52YXIgZmFEdW5nZW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2R1bmdlb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2ZDlcIiwgXCJNMTI4LjczIDE5NS4zMmwtODIuODEtNTEuNzZjLTguMDQtNS4wMi0xOC45OS0yLjE3LTIyLjkzIDYuNDVBMjU0LjE5IDI1NC4xOSAwIDAgMCAuNTQgMjM5LjI4Qy0uMDUgMjQ4LjM3IDcuNTkgMjU2IDE2LjY5IDI1Nmg5Ny4xM2M3Ljk2IDAgMTQuMDgtNi4yNSAxNS4wMS0xNC4xNiAxLjA5LTkuMzMgMy4yNC0xOC4zMyA2LjI0LTI2Ljk0IDIuNTYtNy4zNC4yNS0xNS40Ni02LjM0LTE5LjU4ek0zMTkuMDMgOEMyOTguODYgMi44MiAyNzcuNzcgMCAyNTYgMHMtNDIuODYgMi44Mi02My4wMyA4Yy05LjE3IDIuMzUtMTMuOTEgMTIuNi0xMC4zOSAyMS4zOWwzNy40NyAxMDQuMDNBMTYuMDAzIDE2LjAwMyAwIDAgMCAyMzUuMSAxNDRoNDEuOGM2Ljc1IDAgMTIuNzctNC4yMyAxNS4wNS0xMC41OGwzNy40Ny0xMDQuMDNjMy41Mi04Ljc5LTEuMjItMTkuMDMtMTAuMzktMjEuMzl6TTExMiAyODhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDk2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnptMCAxMjhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDk2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnptNzcuMzEtMjgzLjY3bC0zNi4zMi05MC44Yy0zLjUzLTguODMtMTQuMTMtMTIuOTktMjIuNDItOC4zMWEyNTcuMzA4IDI1Ny4zMDggMCAwIDAtNzEuNjEgNTkuODljLTYuMDYgNy4zMi0zLjg1IDE4LjQ4IDQuMjIgMjMuNTJsODIuOTMgNTEuODNjNi41MSA0LjA3IDE0LjY2IDIuNjIgMjAuMTEtMi43OSA1LjE4LTUuMTUgMTAuNzktOS44NSAxNi43OS0xNC4wNSA2LjI4LTQuNDEgOS4xNS0xMi4xNyA2LjMtMTkuMjl6TTM5OC4xOCAyNTZoOTcuMTNjOS4xIDAgMTYuNzQtNy42MyAxNi4xNS0xNi43MmEyNTQuMTM1IDI1NC4xMzUgMCAwIDAtMjIuNDUtODkuMjdjLTMuOTQtOC42Mi0xNC44OS0xMS40Ny0yMi45My02LjQ1bC04Mi44MSA1MS43NmMtNi41OSA0LjEyLTguOSAxMi4yNC02LjM0IDE5LjU4IDMuMDEgOC42MSA1LjE1IDE3LjYyIDYuMjQgMjYuOTQuOTMgNy45MSA3LjA1IDE0LjE2IDE1LjAxIDE0LjE2em01NC44NS0xNjIuODlhMjU3LjMwOCAyNTcuMzA4IDAgMCAwLTcxLjYxLTU5Ljg5Yy04LjI4LTQuNjgtMTguODgtLjUyLTIyLjQyIDguMzFsLTM2LjMyIDkwLjhjLTIuODUgNy4xMi4wMiAxNC44OCA2LjMgMTkuMjggNiA0LjIgMTEuNjEgOC45IDE2Ljc5IDE0LjA1IDUuNDQgNS40MSAxMy42IDYuODYgMjAuMTEgMi43OWw4Mi45My01MS44M2M4LjA3LTUuMDMgMTAuMjktMTYuMTkgNC4yMi0yMy41MXpNNDk2IDI4OGgtOTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDk2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnptMCAxMjhoLTk2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY2NGMwIDguODQgNy4xNiAxNiAxNiAxNmg5NmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNjRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTI0MCAxNzcuNjJWNDcyYzAgNC40MiAzLjU4IDggOCA4aDE2YzQuNDIgMCA4LTMuNTggOC04VjE3Ny42MmMtNS4yMy0uODktMTAuNTItMS42Mi0xNi0xLjYycy0xMC43Ny43My0xNiAxLjYyem0tNjQgNDEuNTFWNDcyYzAgNC40MiAzLjU4IDggOCA4aDE2YzQuNDIgMCA4LTMuNTggOC04VjE4OS4zNmMtMTIuNzggNy40NS0yMy44NCAxNy40Ny0zMiAyOS43N3ptMTI4LTI5Ljc3VjQ3MmMwIDQuNDIgMy41OCA4IDggOGgxNmM0LjQyIDAgOC0zLjU4IDgtOFYyMTkuMTNjLTguMTYtMTIuMy0xOS4yMi0yMi4zMi0zMi0yOS43N3pcIl1cbn07XG52YXIgZmFFZGl0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VkaXQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwNDRcIiwgXCJNNDAyLjYgODMuMmw5MC4yIDkwLjJjMy44IDMuOCAzLjggMTAgMCAxMy44TDI3NC40IDQwNS42bC05Mi44IDEwLjNjLTEyLjQgMS40LTIyLjktOS4xLTIxLjUtMjEuNWwxMC4zLTkyLjhMMzg4LjggODMuMmMzLjgtMy44IDEwLTMuOCAxMy44IDB6bTE2Mi0yMi45bC00OC44LTQ4LjhjLTE1LjItMTUuMi0zOS45LTE1LjItNTUuMiAwbC0zNS40IDM1LjRjLTMuOCAzLjgtMy44IDEwIDAgMTMuOGw5MC4yIDkwLjJjMy44IDMuOCAxMCAzLjggMTMuOCAwbDM1LjQtMzUuNGMxNS4yLTE1LjMgMTUuMi00MCAwLTU1LjJ6TTM4NCAzNDYuMlY0NDhINjRWMTI4aDIyOS44YzMuMiAwIDYuMi0xLjMgOC41LTMuNWw0MC00MGM3LjYtNy42IDIuMi0yMC41LTguNS0yMC41SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA2LjJjMC0xMC43LTEyLjktMTYtMjAuNS04LjVsLTQwIDQwYy0yLjIgMi4zLTMuNSA1LjMtMy41IDguNXpcIl1cbn07XG52YXIgZmFFZ2cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWdnJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2ZiXCIsIFwiTTE5MiAwQzg2IDAgMCAyMTQgMCAzMjBzODYgMTkyIDE5MiAxOTIgMTkyLTg2IDE5Mi0xOTJTMjk4IDAgMTkyIDB6XCJdXG59O1xudmFyIGZhRWplY3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWplY3QnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwNTJcIiwgXCJNNDQ4IDM4NHY2NGMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJIMzJjLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMnYtNjRjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyaDM4NGMxNy42NzMgMCAzMiAxNC4zMjcgMzIgMzJ6TTQ4LjA1MyAzMjBoMzUxLjg4NmM0MS42NTEgMCA2My41ODEtNDkuNjc0IDM1LjM4My04MC40MzVMMjU5LjM4MyA0Ny41NThjLTE5LjAxNC0yMC43NDMtNTEuNzUxLTIwLjc0NC03MC43NjcgMEwxMi42NyAyMzkuNTY1Qy0xNS40NzUgMjcwLjI2OCA2LjMyNCAzMjAgNDguMDUzIDMyMHpcIl1cbn07XG52YXIgZmFFbGxpcHNpc0ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWxsaXBzaXMtaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE0MVwiLCBcIk0zMjggMjU2YzAgMzkuOC0zMi4yIDcyLTcyIDcycy03Mi0zMi4yLTcyLTcyIDMyLjItNzIgNzItNzIgNzIgMzIuMiA3MiA3MnptMTA0LTcyYy0zOS44IDAtNzIgMzIuMi03MiA3MnMzMi4yIDcyIDcyIDcyIDcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03MnptLTM1MiAwYy0zOS44IDAtNzIgMzIuMi03MiA3MnMzMi4yIDcyIDcyIDcyIDcyLTMyLjIgNzItNzItMzIuMi03Mi03Mi03MnpcIl1cbn07XG52YXIgZmFFbGxpcHNpc1YgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZWxsaXBzaXMtdicsXG4gIGljb246IFsxOTIsIDUxMiwgW10sIFwiZjE0MlwiLCBcIk05NiAxODRjMzkuOCAwIDcyIDMyLjIgNzIgNzJzLTMyLjIgNzItNzIgNzItNzItMzIuMi03Mi03MiAzMi4yLTcyIDcyLTcyek0yNCA4MGMwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcyUzEzNS44IDggOTYgOCAyNCA0MC4yIDI0IDgwem0wIDM1MmMwIDM5LjggMzIuMiA3MiA3MiA3MnM3Mi0zMi4yIDcyLTcyLTMyLjItNzItNzItNzItNzIgMzIuMi03MiA3MnpcIl1cbn07XG52YXIgZmFFbnZlbG9wZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdlbnZlbG9wZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBlMFwiLCBcIk01MDIuMyAxOTAuOGMzLjktMy4xIDkuNy0uMiA5LjcgNC43VjQwMGMwIDI2LjUtMjEuNSA0OC00OCA0OEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWMTk1LjZjMC01IDUuNy03LjggOS43LTQuNyAyMi40IDE3LjQgNTIuMSAzOS41IDE1NC4xIDExMy42IDIxLjEgMTUuNCA1Ni43IDQ3LjggOTIuMiA0Ny42IDM1LjcuMyA3Mi0zMi44IDkyLjMtNDcuNiAxMDItNzQuMSAxMzEuNi05Ni4zIDE1NC0xMTMuN3pNMjU2IDMyMGMyMy4yLjQgNTYuNi0yOS4yIDczLjQtNDEuNCAxMzIuNy05Ni4zIDE0Mi44LTEwNC43IDE3My40LTEyOC43IDUuOC00LjUgOS4yLTExLjUgOS4yLTE4Ljl2LTE5YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjE5YzAgNy40IDMuNCAxNC4zIDkuMiAxOC45IDMwLjYgMjMuOSA0MC43IDMyLjQgMTczLjQgMTI4LjcgMTYuOCAxMi4yIDUwLjIgNDEuOCA3My40IDQxLjR6XCJdXG59O1xudmFyIGZhRW52ZWxvcGVPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2VudmVsb3BlLW9wZW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyYjZcIiwgXCJNNTEyIDQ2NGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjIwMC43MjRhNDggNDggMCAwIDEgMTguMzg3LTM3Ljc3NmMyNC45MTMtMTkuNTI5IDQ1LjUwMS0zNS4zNjUgMTY0LjItMTIxLjUxMUMxOTkuNDEyIDI5LjE3IDIzMi43OTctLjM0NyAyNTYgLjAwM2MyMy4xOTgtLjM1NCA1Ni41OTYgMjkuMTcyIDczLjQxMyA0MS40MzMgMTE4LjY4NyA4Ni4xMzcgMTM5LjMwMyAxMDEuOTk1IDE2NC4yIDEyMS41MTJBNDggNDggMCAwIDEgNTEyIDIwMC43MjRWNDY0em0tNjUuNjY2LTE5Ni42MDVjLTIuNTYzLTMuNzI4LTcuNy00LjU5NS0xMS4zMzktMS45MDctMjIuODQ1IDE2Ljg3My01NS40NjIgNDAuNzA1LTEwNS41ODIgNzcuMDc5LTE2LjgyNSAxMi4yNjYtNTAuMjEgNDEuNzgxLTczLjQxMyA0MS40My0yMy4yMTEuMzQ0LTU2LjU1OS0yOS4xNDMtNzMuNDEzLTQxLjQzLTUwLjExNC0zNi4zNy04Mi43MzQtNjAuMjA0LTEwNS41ODItNzcuMDc5LTMuNjM5LTIuNjg4LTguNzc2LTEuODIxLTExLjMzOSAxLjkwN2wtOS4wNzIgMTMuMTk2YTcuOTk4IDcuOTk4IDAgMCAwIDEuODM5IDEwLjk2N2MyMi44ODcgMTYuODk5IDU1LjQ1NCA0MC42OSAxMDUuMzAzIDc2Ljg2OCAyMC4yNzQgMTQuNzgxIDU2LjUyNCA0Ny44MTMgOTIuMjY0IDQ3LjU3MyAzNS43MjQuMjQyIDcxLjk2MS0zMi43NzEgOTIuMjYzLTQ3LjU3MyA0OS44NS0zNi4xNzkgODIuNDE4LTU5Ljk3IDEwNS4zMDMtNzYuODY4YTcuOTk4IDcuOTk4IDAgMCAwIDEuODM5LTEwLjk2N2wtOS4wNzEtMTMuMTk2elwiXVxufTtcbnZhciBmYUVudmVsb3BlT3BlblRleHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZW52ZWxvcGUtb3Blbi10ZXh0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjU4XCIsIFwiTTE3NiAyMTZoMTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNkgxNzZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE2YzAgOC44NCA3LjE2IDE2IDE2IDE2em0tMTYgODBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNkgxNzZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE2em05NiAxMjEuMTNjLTE2LjQyIDAtMzIuODQtNS4wNi00Ni44Ni0xNS4xOUwwIDI1MC44NlY0NjRjMCAyNi41MSAyMS40OSA0OCA0OCA0OGg0MTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYyNTAuODZMMzAyLjg2IDQwMS45NGMtMTQuMDIgMTAuMTItMzAuNDQgMTUuMTktNDYuODYgMTUuMTl6bTIzNy42MS0yNTQuMThjLTguODUtNi45NC0xNy4yNC0xMy40Ny0yOS42MS0yMi44MVY5NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4aC03Ny41NWMtMy4wNC0yLjItNS44Ny00LjI2LTkuMDQtNi41NkMzMTIuNiAyOS4xNyAyNzkuMi0uMzUgMjU2IDBjLTIzLjItLjM1LTU2LjU5IDI5LjE3LTczLjQxIDQxLjQ0LTMuMTcgMi4zLTYgNC4zNi05LjA0IDYuNTZIOTZjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2NDQuMTRjLTEyLjM3IDkuMzMtMjAuNzYgMTUuODctMjkuNjEgMjIuODFBNDcuOTk1IDQ3Ljk5NSAwIDAgMCAwIDIwMC43MnYxMC42NWw5NiA2OS4zNVY5NmgzMjB2MTg0LjcybDk2LTY5LjM1di0xMC42NWMwLTE0Ljc0LTYuNzgtMjguNjctMTguMzktMzcuNzd6XCJdXG59O1xudmFyIGZhRW52ZWxvcGVTcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZW52ZWxvcGUtc3F1YXJlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTk5XCIsIFwiTTQwMCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNMTc4LjExNyAyNjIuMTA0Qzg3LjQyOSAxOTYuMjg3IDg4LjM1MyAxOTYuMTIxIDY0IDE3Ny4xNjdWMTUyYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgyNzJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djI1LjE2N2MtMjQuMzcxIDE4Ljk2OS0yMy40MzQgMTkuMTI0LTExNC4xMTcgODQuOTM4LTEwLjUgNy42NTUtMzEuMzkyIDI2LjEyLTQ1Ljg4MyAyNS44OTQtMTQuNTAzLjIxOC0zNS4zNjctMTguMjI3LTQ1Ljg4My0yNS44OTV6TTM4NCAyMTcuNzc1VjM2MGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIODhjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFYyMTcuNzc1YzEzLjk1OCAxMC43OTQgMzMuMzI5IDI1LjIzNiA5NS4zMDMgNzAuMjE0IDE0LjE2MiAxMC4zNDEgMzcuOTc1IDMyLjE0NSA2NC42OTQgMzIuMDEgMjYuODg3LjEzNCA1MS4wMzctMjIuMDQxIDY0LjcyLTMyLjAyNSA2MS45NTgtNDQuOTY1IDgxLjMyNS01OS40MDYgOTUuMjgzLTcwLjE5OXpcIl1cbn07XG52YXIgZmFFcXVhbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXF1YWxzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTJjXCIsIFwiTTQxNiAzMDRIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzODRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMC0xOTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzODRjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFFcmFzZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXJhc2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTJkXCIsIFwiTTQ5Ny45NDEgMjczLjk0MWMxOC43NDUtMTguNzQ1IDE4Ljc0NS00OS4xMzcgMC02Ny44ODJsLTE2MC0xNjBjLTE4Ljc0NS0xOC43NDUtNDkuMTM2LTE4Ljc0Ni02Ny44ODMgMGwtMjU2IDI1NmMtMTguNzQ1IDE4Ljc0NS0xOC43NDUgNDkuMTM3IDAgNjcuODgybDk2IDk2QTQ4LjAwNCA0OC4wMDQgMCAwIDAgMTQ0IDQ4MGgzNTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkgzNTUuODgzbDE0Mi4wNTgtMTQyLjA1OXptLTMwMi42MjctNjIuNjI3bDEzNy4zNzMgMTM3LjM3M0wyNjUuMzczIDQxNkgxNTAuNjI4bC04MC04MCAxMjQuNjg2LTEyNC42ODZ6XCJdXG59O1xudmFyIGZhRXRoZXJuZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXRoZXJuZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3OTZcIiwgXCJNNDk2IDE5MmgtNDh2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNmgtNDhWODBjMC04LjgtNy4yLTE2LTE2LTE2SDE0NGMtOC44IDAtMTYgNy4yLTE2IDE2djQ4SDgwYy04LjggMC0xNiA3LjItMTYgMTZ2NDhIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYyMjRjMCA4LjggNy4yIDE2IDE2IDE2aDgwVjMyMGgzMnYxMjhoNjRWMzIwaDMydjEyOGg2NFYzMjBoMzJ2MTI4aDY0VjMyMGgzMnYxMjhoODBjOC44IDAgMTYtNy4yIDE2LTE2VjIwOGMwLTguOC03LjItMTYtMTYtMTZ6XCJdXG59O1xudmFyIGZhRXVyb1NpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXVyby1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMTUzXCIsIFwiTTMxMC43MDYgNDEzLjc2NWMtMS4zMTQtNi42My03LjgzNS0xMC44NzItMTQuNDI0LTkuMzY5LTEwLjY5MiAyLjQzOS0yNy40MjIgNS40MTMtNDUuNDI2IDUuNDEzLTU2Ljc2MyAwLTEwMS45MjktMzQuNzktMTIxLjQ2MS04NS40NDloMTEzLjY4OWExMiAxMiAwIDAgMCAxMS43MDgtOS4zNjlsNi4zNzMtMjguMzZjMS42ODYtNy41MDItNC4wMTktMTQuNjMxLTExLjcwOC0xNC42MzFIMTE1LjIyYy0xLjIxLTE0LjMyOC0xLjQxNC0yOC4yODcuMTM3LTQyLjI0NUgyNjEuOTVhMTIgMTIgMCAwIDAgMTEuNzIzLTkuNDM0bDYuNTEyLTI5Ljc1NWMxLjYzOC03LjQ4NC00LjA2MS0xNC41NjYtMTEuNzIzLTE0LjU2NkgxMzAuMTg0YzIwLjYzMy00NC45OTEgNjIuNjktNzUuMDMgMTE3LjYxOS03NS4wMyAxNC40ODYgMCAyOC41NjQgMi4yNSAzNy44NTEgNC4xNDUgNi4yMTYgMS4yNjggMTIuMzQ3LTIuNDk4IDE0LjAwMi04LjYyM2wxMS45OTEtNDQuMzY4YzEuODIyLTYuNzQxLTIuNDY1LTEzLjYxNi05LjMyNi0xNC45MTdDMjkwLjIxNyAzNC45MTIgMjcwLjcxIDMyIDI0OS42MzUgMzIgMTUyLjQ1MSAzMiA3NC4wMyA5Mi4yNTIgNDUuMDc1IDE3NkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyOS43NTVjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMS41NjljLTEuMDA5IDEzLjYwNy0xLjE4MSAyOS4yODctLjE4MSA0Mi4yNDVIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjguMzZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgzMC4xMTRDNjcuMTM5IDQxNC42OTIgMTQ1LjI2NCA0ODAgMjQ5LjYzNSA0ODBjMjYuMzAxIDAgNDguNTYyLTQuNTQ0IDYxLjEwMS03Ljc4OCA2LjE2Ny0xLjU5NSAxMC4wMjctNy43MDggOC43ODgtMTMuOTU3bC04LjgxOC00NC40OXpcIl1cbn07XG52YXIgZmFFeGNoYW5nZUFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdleGNoYW5nZS1hbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYzNjJcIiwgXCJNMCAxNjh2LTE2YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgzNjBWODBjMC0yMS4zNjcgMjUuODk5LTMyLjA0MiA0MC45NzEtMTYuOTcxbDgwIDgwYzkuMzcyIDkuMzczIDkuMzcyIDI0LjU2OSAwIDMzLjk0MWwtODAgODBDNDA5Ljk1NiAyNzEuOTgyIDM4NCAyNjEuNDU2IDM4NCAyNDB2LTQ4SDI0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR6bTQ4OCAxNTJIMTI4di00OGMwLTIxLjMxNC0yNS44NjItMzIuMDgtNDAuOTcxLTE2Ljk3MWwtODAgODBjLTkuMzcyIDkuMzczLTkuMzcyIDI0LjU2OSAwIDMzLjk0MWw4MCA4MEMxMDIuMDU3IDQ2My45OTcgMTI4IDQ1My40MzcgMTI4IDQzMnYtNDhoMzYwYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtMTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYUV4Y2xhbWF0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V4Y2xhbWF0aW9uJyxcbiAgaWNvbjogWzE5MiwgNTEyLCBbXSwgXCJmMTJhXCIsIFwiTTE3NiA0MzJjMCA0NC4xMTItMzUuODg4IDgwLTgwIDgwcy04MC0zNS44ODgtODAtODAgMzUuODg4LTgwIDgwLTgwIDgwIDM1Ljg4OCA4MCA4MHpNMjUuMjYgMjUuMTk5bDEzLjYgMjcyQzM5LjQ5OSAzMDkuOTcyIDUwLjA0MSAzMjAgNjIuODMgMzIwaDY2LjM0YzEyLjc4OSAwIDIzLjMzMS0xMC4wMjggMjMuOTctMjIuODAxbDEzLjYtMjcyQzE2Ny40MjUgMTEuNDkgMTU2LjQ5NiAwIDE0Mi43NyAwSDQ5LjIzQzM1LjUwNCAwIDI0LjU3NSAxMS40OSAyNS4yNiAyNS4xOTl6XCJdXG59O1xudmFyIGZhRXhjbGFtYXRpb25DaXJjbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXhjbGFtYXRpb24tY2lyY2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDZhXCIsIFwiTTUwNCAyNTZjMCAxMzYuOTk3LTExMS4wNDMgMjQ4LTI0OCAyNDhTOCAzOTIuOTk3IDggMjU2QzggMTE5LjA4MyAxMTkuMDQzIDggMjU2IDhzMjQ4IDExMS4wODMgMjQ4IDI0OHptLTI0OCA1MGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0elwiXVxufTtcbnZhciBmYUV4Y2xhbWF0aW9uVHJpYW5nbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXhjbGFtYXRpb24tdHJpYW5nbGUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwNzFcIiwgXCJNNTY5LjUxNyA0NDAuMDEzQzU4Ny45NzUgNDcyLjAwNyA1NjQuODA2IDUxMiA1MjcuOTQgNTEySDQ4LjA1NGMtMzYuOTM3IDAtNTkuOTk5LTQwLjA1NS00MS41NzctNzEuOTg3TDI0Ni40MjMgMjMuOTg1YzE4LjQ2Ny0zMi4wMDkgNjQuNzItMzEuOTUxIDgzLjE1NCAwbDIzOS45NCA0MTYuMDI4ek0yODggMzU0Yy0yNS40MDUgMC00NiAyMC41OTUtNDYgNDZzMjAuNTk1IDQ2IDQ2IDQ2IDQ2LTIwLjU5NSA0Ni00Ni0yMC41OTUtNDYtNDYtNDZ6bS00My42NzMtMTY1LjM0Nmw3LjQxOCAxMzZjLjM0NyA2LjM2NCA1LjYwOSAxMS4zNDYgMTEuOTgyIDExLjM0Nmg0OC41NDZjNi4zNzMgMCAxMS42MzUtNC45ODIgMTEuOTgyLTExLjM0Nmw3LjQxOC0xMzZjLjM3NS02Ljg3NC01LjA5OC0xMi42NTQtMTEuOTgyLTEyLjY1NGgtNjMuMzgzYy02Ljg4NCAwLTEyLjM1NiA1Ljc4LTExLjk4MSAxMi42NTR6XCJdXG59O1xudmFyIGZhRXhwYW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V4cGFuZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA2NVwiLCBcIk0wIDE4MFY1NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxMjRjNi42IDAgMTIgNS40IDEyIDEydjQwYzAgNi42LTUuNCAxMi0xMiAxMkg2NHY4NGMwIDYuNi01LjQgMTItMTIgMTJIMTJjLTYuNiAwLTEyLTUuNC0xMi0xMnpNMjg4IDQ0djQwYzAgNi42IDUuNCAxMiAxMiAxMmg4NHY4NGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyVjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0SDMwMGMtNi42IDAtMTIgNS40LTEyIDEyem0xNDggMjc2aC00MGMtNi42IDAtMTIgNS40LTEyIDEydjg0aC04NGMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgxMjRjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzMyYzAtNi42LTUuNC0xMi0xMi0xMnpNMTYwIDQ2OHYtNDBjMC02LjYtNS40LTEyLTEyLTEySDY0di04NGMwLTYuNi01LjQtMTItMTItMTJIMTJjLTYuNiAwLTEyIDUuNC0xMiAxMnYxMjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTI0YzYuNiAwIDEyLTUuNCAxMi0xMnpcIl1cbn07XG52YXIgZmFFeHBhbmRBcnJvd3NBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXhwYW5kLWFycm93cy1hbHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzMWVcIiwgXCJNNDQ4IDM0NHYxMTJhMjMuOTQgMjMuOTQgMCAwIDEtMjQgMjRIMzEyYy0yMS4zOSAwLTMyLjA5LTI1LjktMTctNDFsMzYuMi0zNi4yTDIyNCAyOTUuNiAxMTYuNzcgNDAyLjkgMTUzIDQzOWMxNS4wOSAxNS4xIDQuMzkgNDEtMTcgNDFIMjRhMjMuOTQgMjMuOTQgMCAwIDEtMjQtMjRWMzQ0YzAtMjEuNCAyNS44OS0zMi4xIDQxLTE3bDM2LjE5IDM2LjJMMTg0LjQ2IDI1NiA3Ny4xOCAxNDguNyA0MSAxODVjLTE1LjEgMTUuMS00MSA0LjQtNDEtMTdWNTZhMjMuOTQgMjMuOTQgMCAwIDEgMjQtMjRoMTEyYzIxLjM5IDAgMzIuMDkgMjUuOSAxNyA0MWwtMzYuMiAzNi4yTDIyNCAyMTYuNGwxMDcuMjMtMTA3LjNMMjk1IDczYy0xNS4wOS0xNS4xLTQuMzktNDEgMTctNDFoMTEyYTIzLjk0IDIzLjk0IDAgMCAxIDI0IDI0djExMmMwIDIxLjQtMjUuODkgMzIuMS00MSAxN2wtMzYuMTktMzYuMkwyNjMuNTQgMjU2bDEwNy4yOCAxMDcuM0w0MDcgMzI3LjFjMTUuMS0xNS4yIDQxLTQuNSA0MSAxNi45elwiXVxufTtcbnZhciBmYUV4dGVybmFsTGlua0FsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdleHRlcm5hbC1saW5rLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjM1ZFwiLCBcIk00MzIsMzIwSDQwMGExNiwxNiwwLDAsMC0xNiwxNlY0NDhINjRWMTI4SDIwOGExNiwxNiwwLDAsMCwxNi0xNlY4MGExNiwxNiwwLDAsMC0xNi0xNkg0OEE0OCw0OCwwLDAsMCwwLDExMlY0NjRhNDgsNDgsMCwwLDAsNDgsNDhINDAwYTQ4LDQ4LDAsMCwwLDQ4LTQ4VjMzNkExNiwxNiwwLDAsMCw0MzIsMzIwWk00ODgsMGgtMTI4Yy0yMS4zNywwLTMyLjA1LDI1LjkxLTE3LDQxbDM1LjczLDM1LjczTDEzNSwzMjAuMzdhMjQsMjQsMCwwLDAsMCwzNEwxNTcuNjcsMzc3YTI0LDI0LDAsMCwwLDM0LDBMNDM1LjI4LDEzMy4zMiw0NzEsMTY5YzE1LDE1LDQxLDQuNSw0MS0xN1YyNEEyNCwyNCwwLDAsMCw0ODgsMFpcIl1cbn07XG52YXIgZmFFeHRlcm5hbExpbmtTcXVhcmVBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZXh0ZXJuYWwtbGluay1zcXVhcmUtYWx0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMzYwXCIsIFwiTTQ0OCA4MHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM1MmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4em0tODggMTZIMjQ4LjAyOWMtMjEuMzEzIDAtMzIuMDggMjUuODYxLTE2Ljk3MSA0MC45NzFsMzEuOTg0IDMxLjk4N0w2Ny41MTUgMzY0LjQ4NWMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxbDMxLjAyOSAzMS4wMjljNC42ODcgNC42ODYgMTIuMjg1IDQuNjg2IDE2Ljk3MSAwbDE5NS41MjYtMTk1LjUyNiAzMS45ODggMzEuOTkxQzM1OC4wNTggMjYzLjk3NyAzODQgMjUzLjQyNSAzODQgMjMxLjk3OVYxMjBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYUV5ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdleWUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwNmVcIiwgXCJNNTcyLjUyIDI0MS40QzUxOC4yOSAxMzUuNTkgNDEwLjkzIDY0IDI4OCA2NFM1Ny42OCAxMzUuNjQgMy40OCAyNDEuNDFhMzIuMzUgMzIuMzUgMCAwIDAgMCAyOS4xOUM1Ny43MSAzNzYuNDEgMTY1LjA3IDQ0OCAyODggNDQ4czIzMC4zMi03MS42NCAyODQuNTItMTc3LjQxYTMyLjM1IDMyLjM1IDAgMCAwIDAtMjkuMTl6TTI4OCA0MDBhMTQ0IDE0NCAwIDEgMSAxNDQtMTQ0IDE0My45MyAxNDMuOTMgMCAwIDEtMTQ0IDE0NHptMC0yNDBhOTUuMzEgOTUuMzEgMCAwIDAtMjUuMzEgMy43OSA0Ny44NSA0Ny44NSAwIDAgMS02Ni45IDY2LjlBOTUuNzggOTUuNzggMCAxIDAgMjg4IDE2MHpcIl1cbn07XG52YXIgZmFFeWVEcm9wcGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V5ZS1kcm9wcGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWZiXCIsIFwiTTUwLjc1IDMzMy4yNWMtMTIgMTItMTguNzUgMjguMjgtMTguNzUgNDUuMjZWNDI0TDAgNDgwbDMyIDMyIDU2LTMyaDQ1LjQ5YzE2Ljk3IDAgMzMuMjUtNi43NCA0NS4yNS0xOC43NGwxMjYuNjQtMTI2LjYyLTEyOC0xMjhMNTAuNzUgMzMzLjI1ek00ODMuODggMjguMTJjLTM3LjQ3LTM3LjUtOTguMjgtMzcuNS0xMzUuNzUgMGwtNzcuMDkgNzcuMDktMTMuMS0xMy4xYy05LjQ0LTkuNDQtMjQuNjUtOS4zMS0zMy45NCAwbC00MC45NyA0MC45N2MtOS4zNyA5LjM3LTkuMzcgMjQuNTcgMCAzMy45NGwxNjEuOTQgMTYxLjk0YzkuNDQgOS40NCAyNC42NSA5LjMxIDMzLjk0IDBMNDE5Ljg4IDI4OGM5LjM3LTkuMzcgOS4zNy0yNC41NyAwLTMzLjk0bC0xMy4xLTEzLjEgNzcuMDktNzcuMDljMzcuNTEtMzcuNDggMzcuNTEtOTguMjYuMDEtMTM1Ljc1elwiXVxufTtcbnZhciBmYUV5ZVNsYXNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2V5ZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjA3MFwiLCBcIk0zMjAgNDAwYy03NS44NSAwLTEzNy4yNS01OC43MS0xNDIuOS0xMzMuMTFMNzIuMiAxODUuODJjLTEzLjc5IDE3LjMtMjYuNDggMzUuNTktMzYuNzIgNTUuNTlhMzIuMzUgMzIuMzUgMCAwIDAgMCAyOS4xOUM4OS43MSAzNzYuNDEgMTk3LjA3IDQ0OCAzMjAgNDQ4YzI2LjkxIDAgNTIuODctNCA3Ny44OS0xMC40NkwzNDYgMzk3LjM5YTE0NC4xMyAxNDQuMTMgMCAwIDEtMjYgMi42MXptMzEzLjgyIDU4LjFsLTExMC41NS04NS40NGEzMzEuMjUgMzMxLjI1IDAgMCAwIDgxLjI1LTEwMi4wNyAzMi4zNSAzMi4zNSAwIDAgMCAwLTI5LjE5QzU1MC4yOSAxMzUuNTkgNDQyLjkzIDY0IDMyMCA2NGEzMDguMTUgMzA4LjE1IDAgMCAwLTE0Ny4zMiAzNy43TDQ1LjQ2IDMuMzdBMTYgMTYgMCAwIDAgMjMgNi4xOEwzLjM3IDMxLjQ1QTE2IDE2IDAgMCAwIDYuMTggNTMuOWw1ODguMzYgNDU0LjczYTE2IDE2IDAgMCAwIDIyLjQ2LTIuODFsMTkuNjQtMjUuMjdhMTYgMTYgMCAwIDAtMi44Mi0yMi40NXptLTE4My43Mi0xNDJsLTM5LjMtMzAuMzhBOTQuNzUgOTQuNzUgMCAwIDAgNDE2IDI1NmE5NC43NiA5NC43NiAwIDAgMC0xMjEuMzEtOTIuMjFBNDcuNjUgNDcuNjUgMCAwIDEgMzA0IDE5MmE0Ni42NCA0Ni42NCAwIDAgMS0xLjU0IDEwbC03My42MS01Ni44OUExNDIuMzEgMTQyLjMxIDAgMCAxIDMyMCAxMTJhMTQzLjkyIDE0My45MiAwIDAgMSAxNDQgMTQ0YzAgMjEuNjMtNS4yOSA0MS43OS0xMy45IDYwLjExelwiXVxufTtcbnZhciBmYUZhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmYW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4NjNcIiwgXCJNMzUyLjU3IDEyOGMtMjguMDkgMC01NC4wOSA0LjUyLTc3LjA2IDEyLjg2bDEyLjQxLTEyMy4xMUMyODkgNy4zMSAyNzkuODEtMS4xOCAyNjkuMzMuMTMgMTg5LjYzIDEwLjEzIDEyOCA3Ny42NCAxMjggMTU5LjQzYzAgMjguMDkgNC41MiA1NC4wOSAxMi44NiA3Ny4wNkwxNy43NSAyMjQuMDhDNy4zMSAyMjMtMS4xOCAyMzIuMTkuMTMgMjQyLjY3YzEwIDc5LjcgNzcuNTEgMTQxLjMzIDE1OS4zIDE0MS4zMyAyOC4wOSAwIDU0LjA5LTQuNTIgNzcuMDYtMTIuODZsLTEyLjQxIDEyMy4xMWMtMS4wNSAxMC40MyA4LjExIDE4LjkzIDE4LjU5IDE3LjYyIDc5LjctMTAgMTQxLjMzLTc3LjUxIDE0MS4zMy0xNTkuMyAwLTI4LjA5LTQuNTItNTQuMDktMTIuODYtNzcuMDZsMTIzLjExIDEyLjQxYzEwLjQ0IDEuMDUgMTguOTMtOC4xMSAxNy42Mi0xOC41OS0xMC03OS43LTc3LjUxLTE0MS4zMy0xNTkuMy0xNDEuMzN6TTI1NiAyODhhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6XCJdXG59O1xudmFyIGZhRmFzdEJhY2t3YXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Zhc3QtYmFja3dhcmQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNDlcIiwgXCJNMCA0MzZWNzZjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnYxNTEuOUwyMzUuNSA3MS40QzI1Ni4xIDU0LjMgMjg4IDY4LjYgMjg4IDk2djEzMS45TDQ1OS41IDcxLjRDNDgwLjEgNTQuMyA1MTIgNjguNiA1MTIgOTZ2MzIwYzAgMjcuNC0zMS45IDQxLjctNTIuNSAyNC42TDI4OCAyODUuM1Y0MTZjMCAyNy40LTMxLjkgNDEuNy01Mi41IDI0LjZMNjQgMjg1LjNWNDM2YzAgNi42LTUuNCAxMi0xMiAxMkgxMmMtNi42IDAtMTItNS40LTEyLTEyelwiXVxufTtcbnZhciBmYUZhc3RGb3J3YXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Zhc3QtZm9yd2FyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA1MFwiLCBcIk01MTIgNzZ2MzYwYzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMlYyODQuMUwyNzYuNSA0NDAuNmMtMjAuNiAxNy4yLTUyLjUgMi44LTUyLjUtMjQuNlYyODQuMUw1Mi41IDQ0MC42QzMxLjkgNDU3LjggMCA0NDMuNCAwIDQxNlY5NmMwLTI3LjQgMzEuOS00MS43IDUyLjUtMjQuNkwyMjQgMjI2LjhWOTZjMC0yNy40IDMxLjktNDEuNyA1Mi41LTI0LjZMNDQ4IDIyNi44Vjc2YzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ6XCJdXG59O1xudmFyIGZhRmF4ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZheCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFhY1wiLCBcIk00ODAgMTYwVjc3LjI1YTMyIDMyIDAgMCAwLTkuMzgtMjIuNjNMNDI1LjM3IDkuMzdBMzIgMzIgMCAwIDAgNDAyLjc1IDBIMTYwYTMyIDMyIDAgMCAwLTMyIDMydjQ0OGEzMiAzMiAwIDAgMCAzMiAzMmgzMjBhMzIgMzIgMCAwIDAgMzItMzJWMTkyYTMyIDMyIDAgMCAwLTMyLTMyek0yODggNDMyYTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJhMTYgMTYgMCAwIDEgMTYgMTZ6bTAtMTI4YTE2IDE2IDAgMCAxLTE2IDE2aC0zMmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJhMTYgMTYgMCAwIDEgMTYgMTZ6bTEyOCAxMjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgzMmExNiAxNiAwIDAgMSAxNiAxNnptMC0xMjhhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmgzMmExNiAxNiAwIDAgMSAxNiAxNnptMC0xMTJIMTkyVjY0aDE2MHY0OGExNiAxNiAwIDAgMCAxNiAxNmg0OHpNNjQgMTI4SDMyYTMyIDMyIDAgMCAwLTMyIDMydjMyMGEzMiAzMiAwIDAgMCAzMiAzMmgzMmEzMiAzMiAwIDAgMCAzMi0zMlYxNjBhMzIgMzIgMCAwIDAtMzItMzJ6XCJdXG59O1xudmFyIGZhRmVhdGhlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmZWF0aGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTJkXCIsIFwiTTQ2Ny4xNCA0NC44NGMtNjIuNTUtNjIuNDgtMTYxLjY3LTY0Ljc4LTI1Mi4yOCAyNS43My03OC42MSA3OC41Mi02MC45OCA2MC45Mi04NS43NSA4NS42Ni02MC40NiA2MC4zOS03MC4zOSAxNTAuODMtNjMuNjQgMjExLjE3bDE3OC40NC0xNzguMjVjNi4yNi02LjI1IDE2LjQtNi4yNSAyMi42NSAwczYuMjUgMTYuMzggMCAyMi42M0w3LjA0IDQ3MS4wM2MtOS4zOCA5LjM3LTkuMzggMjQuNTcgMCAzMy45NCA5LjM4IDkuMzcgMjQuNiA5LjM3IDMzLjk4IDBsNjYuMS02Ni4wM0MxNTkuNDIgNDU0LjY1IDI3OSA0NTcuMTEgMzUzLjk1IDM4NGgtOTguMTlsMTQ3LjU3LTQ5LjE0YzQ5Ljk5LTQ5LjkzIDM2LjM4LTM2LjE4IDQ2LjMxLTQ2Ljg2aC05Ny43OGwxMzEuNTQtNDMuOGM0NS40NC03NC40NiAzNC4zMS0xNDguODQtMTYuMjYtMTk5LjM2elwiXVxufTtcbnZhciBmYUZlYXRoZXJBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmVhdGhlci1hbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NmJcIiwgXCJNNTEyIDBDNDYwLjIyIDMuNTYgOTYuNDQgMzguMiA3MS4wMSAyODcuNjFjLTMuMDkgMjYuNjYtNC44NCA1My40NC01Ljk5IDgwLjI0bDE3OC44Ny0xNzguNjljNi4yNS02LjI1IDE2LjQtNi4yNSAyMi42NSAwczYuMjUgMTYuMzggMCAyMi42M0w3LjA0IDQ3MS4wM2MtOS4zOCA5LjM3LTkuMzggMjQuNTcgMCAzMy45NCA5LjM4IDkuMzcgMjQuNTkgOS4zNyAzMy45OCAwbDU3LjEzLTU3LjA3YzQyLjA5LS4xNCA4NC4xNS0yLjUzIDEyNS45Ni03LjM2IDUzLjQ4LTUuNDQgOTcuMDItMjYuNDcgMTMyLjU4LTU2LjU0SDI1NS43NGwxNDYuNzktNDguODhjMTEuMjUtMTQuODkgMjEuMzctMzAuNzEgMzAuNDUtNDcuMTJoLTgxLjE0bDEwNi41NC01My4yMUM1MDAuMjkgMTMyLjg2IDUxMC4xOSAyNi4yNiA1MTIgMHpcIl1cbn07XG52YXIgZmFGZW1hbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmVtYWxlJyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbXSwgXCJmMTgyXCIsIFwiTTEyOCAwYzM1LjM0NiAwIDY0IDI4LjY1NCA2NCA2NHMtMjguNjU0IDY0LTY0IDY0Yy0zNS4zNDYgMC02NC0yOC42NTQtNjQtNjRTOTIuNjU0IDAgMTI4IDBtMTE5LjI4MyAzNTQuMTc5bC00OC0xOTJBMjQgMjQgMCAwIDAgMTc2IDE0NGgtMTEuMzZjLTIyLjcxMSAxMC40NDMtNDkuNTkgMTAuODk0LTczLjI4IDBIODBhMjQgMjQgMCAwIDAtMjMuMjgzIDE4LjE3OWwtNDggMTkyQzQuOTM1IDM2OS4zMDUgMTYuMzgzIDM4NCAzMiAzODRoNTZ2MTA0YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMzg0aDU2YzE1LjU5MSAwIDI3LjA3MS0xNC42NzEgMjMuMjgzLTI5LjgyMXpcIl1cbn07XG52YXIgZmFGaWdodGVySmV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpZ2h0ZXItamV0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMGZiXCIsIFwiTTU0NCAyMjRsLTEyOC0xNi00OC0xNmgtMjRMMjI3LjE1OCA0NGgzOS41MDlDMjc4LjMzMyA0NCAyODggNDEuMzc1IDI4OCAzOHMtOS42NjctNi0yMS4zMzMtNkgxNTJ2MTJoMTZ2MTY0aC00OGwtNjYuNjY3LTgwSDE4LjY2N0w4IDEzOC42NjdWMjA4aDh2MTZoNDh2Mi42NjZsLTY0IDh2NDIuNjY3bDY0IDhWMjg4SDE2djE2SDh2NjkuMzMzTDE4LjY2NyAzODRoMzQuNjY3TDEyMCAzMDRoNDh2MTY0aC0xNnYxMmgxMTQuNjY3YzExLjY2NyAwIDIxLjMzMy0yLjYyNSAyMS4zMzMtNnMtOS42NjctNi0yMS4zMzMtNmgtMzkuNTA5TDM0NCAzMjBoMjRsNDgtMTYgMTI4LTE2Yzk2LTIxLjMzMyA5Ni0yNi41ODMgOTYtMzIgMC01LjQxNyAwLTEwLjY2Ny05Ni0zMnpcIl1cbn07XG52YXIgZmFGaWxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxNWJcIiwgXCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em0xNjAtMTQuMXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJdXG59O1xudmFyIGZhRmlsZUFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWFsdCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjE1Y1wiLCBcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTY0IDIzNmMwIDYuNi01LjQgMTItMTIgMTJIMTA4Yy02LjYgMC0xMi01LjQtMTItMTJ2LThjMC02LjYgNS40LTEyIDEyLTEyaDE2OGM2LjYgMCAxMiA1LjQgMTIgMTJ2OHptMC02NGMwIDYuNi01LjQgMTItMTIgMTJIMTA4Yy02LjYgMC0xMi01LjQtMTItMTJ2LThjMC02LjYgNS40LTEyIDEyLTEyaDE2OGM2LjYgMCAxMiA1LjQgMTIgMTJ2OHptMC03MnY4YzAgNi42LTUuNCAxMi0xMiAxMkgxMDhjLTYuNiAwLTEyLTUuNC0xMi0xMnYtOGMwLTYuNiA1LjQtMTIgMTItMTJoMTY4YzYuNiAwIDEyIDUuNCAxMiAxMnptOTYtMTE0LjF2Ni4xSDI1NlYwaDYuMWM2LjQgMCAxMi41IDIuNSAxNyA3bDk3LjkgOThjNC41IDQuNSA3IDEwLjYgNyAxNi45elwiXVxufTtcbnZhciBmYUZpbGVBcmNoaXZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbGUtYXJjaGl2ZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjNlwiLCBcIk0zNzcgMTA1TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6TTEyOC40IDMzNmMtMTcuOSAwLTMyLjQgMTIuMS0zMi40IDI3IDAgMTUgMTQuNiAyNyAzMi41IDI3czMyLjQtMTIuMSAzMi40LTI3LTE0LjYtMjctMzIuNS0yN3pNMjI0IDEzNlYwaC02My42djMyaC0zMlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0ek05NS45IDMyaDMydjMyaC0zMnptMzIuMyAzODRjLTMzLjIgMC01OC0zMC40LTUxLjQtNjIuOUw5Ni40IDI1NnYtMzJoMzJ2LTMyaC0zMnYtMzJoMzJ2LTMyaC0zMlY5NmgzMlY2NGgzMnYzMmgtMzJ2MzJoMzJ2MzJoLTMydjMyaDMydjMyaC0zMnYzMmgyMi4xYzUuNyAwIDEwLjcgNC4xIDExLjggOS43bDE3LjMgODcuN2M2LjQgMzIuNC0xOC40IDYyLjYtNTEuNCA2Mi42elwiXVxufTtcbnZhciBmYUZpbGVBdWRpbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWF1ZGlvJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWM3XCIsIFwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptLTY0IDI2OGMwIDEwLjctMTIuOSAxNi0yMC41IDguNUwxMDQgMzc2SDc2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmgyOGwzNS41LTM2LjVjNy42LTcuNiAyMC41LTIuMiAyMC41IDguNXYxMzZ6bTMzLjItNDcuNmM5LjEtOS4zIDkuMS0yNC4xIDAtMzMuNC0yMi4xLTIyLjggMTIuMi01Ni4yIDM0LjQtMzMuNSAyNy4yIDI3LjkgMjcuMiA3Mi40IDAgMTAwLjQtMjEuOCAyMi4zLTU2LjktMTAuNC0zNC40LTMzLjV6bTg2LTExNy4xYzU0LjQgNTUuOSA1NC40IDE0NC44IDAgMjAwLjgtMjEuOCAyMi40LTU3LTEwLjMtMzQuNC0zMy41IDM2LjItMzcuMiAzNi4zLTk2LjUgMC0xMzMuOC0yMi4xLTIyLjggMTIuMy01Ni4zIDM0LjQtMzMuNXpNMzg0IDEyMS45djYuMUgyNTZWMGg2LjFjNi40IDAgMTIuNSAyLjUgMTcgN2w5Ny45IDk4YzQuNSA0LjUgNyAxMC42IDcgMTYuOXpcIl1cbn07XG52YXIgZmFGaWxlQ29kZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWNvZGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzlcIiwgXCJNMzg0IDEyMS45NDFWMTI4SDI1NlYwaDYuMDU5YzYuMzY1IDAgMTIuNDcgMi41MjkgMTYuOTcxIDcuMDI5bDk3Ljk0MSA5Ny45NDFBMjQuMDA1IDI0LjAwNSAwIDAgMSAzODQgMTIxLjk0MXpNMjQ4IDE2MGMtMTMuMiAwLTI0LTEwLjgtMjQtMjRWMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djQ2NGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYxNjBIMjQ4ek0xMjMuMjA2IDQwMC41MDVhNS40IDUuNCAwIDAgMS03LjYzMy4yNDZsLTY0Ljg2Ni02MC44MTJhNS40IDUuNCAwIDAgMSAwLTcuODc5bDY0Ljg2Ni02MC44MTJhNS40IDUuNCAwIDAgMSA3LjYzMy4yNDZsMTkuNTc5IDIwLjg4NWE1LjQgNS40IDAgMCAxLS4zNzIgNy43NDdMMTAxLjY1IDMzNmw0MC43NjMgMzUuODc0YTUuNCA1LjQgMCAwIDEgLjM3MiA3Ljc0N2wtMTkuNTc5IDIwLjg4NHptNTEuMjk1IDUwLjQ3OWwtMjcuNDUzLTcuOTdhNS40MDIgNS40MDIgMCAwIDEtMy42ODEtNi42OTJsNjEuNDQtMjExLjYyNmE1LjQwMiA1LjQwMiAwIDAgMSA2LjY5Mi0zLjY4MWwyNy40NTIgNy45N2E1LjQgNS40IDAgMCAxIDMuNjggNi42OTJsLTYxLjQ0IDIxMS42MjZhNS4zOTcgNS4zOTcgMCAwIDEtNi42OSAzLjY4MXptMTYwLjc5Mi0xMTEuMDQ1bC02NC44NjYgNjAuODEyYTUuNCA1LjQgMCAwIDEtNy42MzMtLjI0NmwtMTkuNTgtMjAuODg1YTUuNCA1LjQgMCAwIDEgLjM3Mi03Ljc0N0wyODQuMzUgMzM2bC00MC43NjMtMzUuODc0YTUuNCA1LjQgMCAwIDEtLjM3Mi03Ljc0N2wxOS41OC0yMC44ODVhNS40IDUuNCAwIDAgMSA3LjYzMy0uMjQ2bDY0Ljg2NiA2MC44MTJhNS40IDUuNCAwIDAgMS0uMDAxIDcuODc5elwiXVxufTtcbnZhciBmYUZpbGVDb250cmFjdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWNvbnRyYWN0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTZjXCIsIFwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpNNjQgNzJjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04Vjcyem0wIDY0YzAtNC40MiAzLjU4LTggOC04aDgwYzQuNDIgMCA4IDMuNTggOCA4djE2YzAgNC40Mi0zLjU4IDgtOCA4SDcyYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZ6bTE5Mi44MSAyNDhIMzA0YzguODQgMCAxNiA3LjE2IDE2IDE2cy03LjE2IDE2LTE2IDE2aC00Ny4xOWMtMTYuNDUgMC0zMS4yNy05LjE0LTM4LjY0LTIzLjg2LTIuOTUtNS45Mi04LjA5LTYuNTItMTAuMTctNi41MnMtNy4yMi41OS0xMC4wMiA2LjE5bC03LjY3IDE1LjM0YTE1Ljk4NiAxNS45ODYgMCAwIDEtMTQuMzEgOC44NGMtLjM4IDAtLjc1LS4wMi0xLjE0LS4wNS02LjQ1LS40NS0xMi00Ljc1LTE0LjAzLTEwLjg5TDE0NCAzNTQuNTlsLTEwLjYxIDMxLjg4Yy01Ljg5IDE3LjY2LTIyLjM4IDI5LjUzLTQxIDI5LjUzSDgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2aDEyLjM5YzQuODMgMCA5LjExLTMuMDggMTAuNjQtNy42NmwxOC4xOS01NC42NGMzLjMtOS44MSAxMi40NC0xNi40MSAyMi43OC0xNi40MXMxOS40OCA2LjU5IDIyLjc3IDE2LjQxbDEzLjg4IDQxLjY0YzE5Ljc3LTE2LjE5IDU0LjA1LTkuNyA2NiAxNC4xNiAyLjAyIDQuMDYgNS45NiA2LjUgMTAuMTYgNi41ek0zNzcgMTA1TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6XCJdXG59O1xudmFyIGZhRmlsZUNzdiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWNzdicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjZkZFwiLCBcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bS05NiAxNDRjMCA0LjQyLTMuNTggOC04IDhoLThjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDhjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhoLThjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDh2LTMyYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoOGM0LjQyIDAgOCAzLjU4IDggOHYxNnptNDQuMjcgMTA0SDE2MGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDEyLjI3YzUuOTUgMCAxMC40MS0zLjUgMTAuNDEtNi42MiAwLTEuMy0uNzUtMi42Ni0yLjEyLTMuODRsLTIxLjg5LTE4Ljc3Yy04LjQ3LTcuMjItMTMuMzMtMTcuNDgtMTMuMzMtMjguMTQgMC0yMS4zIDE5LjAyLTM4LjYyIDQyLjQxLTM4LjYySDIwMGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOGgtMTIuMjdjLTUuOTUgMC0xMC40MSAzLjUtMTAuNDEgNi42MiAwIDEuMy43NSAyLjY2IDIuMTIgMy44NGwyMS44OSAxOC43N2M4LjQ3IDcuMjIgMTMuMzMgMTcuNDggMTMuMzMgMjguMTQuMDEgMjEuMjktMTkgMzguNjItNDIuMzkgMzguNjJ6TTI1NiAyNjR2MjAuOGMwIDIwLjI3IDUuNyA0MC4xNyAxNiA1Ni44OCAxMC4zLTE2LjcgMTYtMzYuNjEgMTYtNTYuODhWMjY0YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djIwLjhjMCAzNS40OC0xMi44OCA2OC44OS0zNi4yOCA5NC4wOS0zLjAyIDMuMjUtNy4yNyA1LjExLTExLjcyIDUuMTFzLTguNy0xLjg2LTExLjcyLTUuMTFjLTIzLjQtMjUuMi0zNi4yOC01OC42MS0zNi4yOC05NC4wOVYyNjRjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh6bTEyMS0xNTlMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXpcIl1cbn07XG52YXIgZmFGaWxlRG93bmxvYWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1kb3dubG9hZCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU2ZFwiLCBcIk0yMjQgMTM2VjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTc2LjQ1IDIxMS4zNmwtOTYuNDIgOTUuN2MtNi42NSA2LjYxLTE3LjM5IDYuNjEtMjQuMDQgMGwtOTYuNDItOTUuN0M3My40MiAzMzcuMjkgODAuNTQgMzIwIDk0LjgyIDMyMEgxNjB2LTgwYzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djgwaDY1LjE4YzE0LjI4IDAgMjEuNCAxNy4yOSAxMS4yNyAyNy4zNnpNMzc3IDEwNUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45elwiXVxufTtcbnZhciBmYUZpbGVFeGNlbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWV4Y2VsJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWMzXCIsIFwiTTIyNCAxMzZWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNjAuMSAxMDYuNUwyMjQgMzM2bDYwLjEgOTMuNWM1LjEgOC0uNiAxOC41LTEwLjEgMTguNWgtMzQuOWMtNC40IDAtOC41LTIuNC0xMC42LTYuM0MyMDguOSA0MDUuNSAxOTIgMzczIDE5MiAzNzNjLTYuNCAxNC44LTEwIDIwLTM2LjYgNjguOC0yLjEgMy45LTYuMSA2LjMtMTAuNSA2LjNIMTEwYy05LjUgMC0xNS4yLTEwLjUtMTAuMS0xOC41bDYwLjMtOTMuNS02MC4zLTkzLjVjLTUuMi04IC42LTE4LjUgMTAuMS0xOC41aDM0LjhjNC40IDAgOC41IDIuNCAxMC42IDYuMyAyNi4xIDQ4LjggMjAgMzMuNiAzNi42IDY4LjUgMCAwIDYuMS0xMS43IDM2LjYtNjguNSAyLjEtMy45IDYuMi02LjMgMTAuNi02LjNIMjc0YzkuNS0uMSAxNS4yIDEwLjQgMTAuMSAxOC40ek0zODQgMTIxLjl2Ni4xSDI1NlYwaDYuMWM2LjQgMCAxMi41IDIuNSAxNyA3bDk3LjkgOThjNC41IDQuNSA3IDEwLjYgNyAxNi45elwiXVxufTtcbnZhciBmYUZpbGVFeHBvcnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1leHBvcnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1NmVcIiwgXCJNMzg0IDEyMS45YzAtNi4zLTIuNS0xMi40LTctMTYuOUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4ek01NzEgMzA4bC05NS43LTk2LjRjLTEwLjEtMTAuMS0yNy40LTMtMjcuNCAxMS4zVjI4OGgtNjR2NjRoNjR2NjUuMmMwIDE0LjMgMTcuMyAyMS40IDI3LjQgMTEuM0w1NzEgMzMyYzYuNi02LjYgNi42LTE3LjQgMC0yNHptLTM3OSAyOHYtMzJjMC04LjggNy4yLTE2IDE2LTE2aDE3NlYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNFYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjM1MkgyMDhjLTguOCAwLTE2LTcuMi0xNi0xNnpcIl1cbn07XG52YXIgZmFGaWxlSW1hZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1pbWFnZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjNVwiLCBcIk0zODQgMTIxLjk0MVYxMjhIMjU2VjBoNi4wNTlhMjQgMjQgMCAwIDEgMTYuOTcgNy4wMjlsOTcuOTQxIDk3Ljk0MWEyNC4wMDIgMjQuMDAyIDAgMCAxIDcuMDMgMTYuOTcxek0yNDggMTYwYy0xMy4yIDAtMjQtMTAuOC0yNC0yNFYwSDI0QzEwLjc0NSAwIDAgMTAuNzQ1IDAgMjR2NDY0YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE2MEgyNDh6bS0xMzUuNDU1IDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDhzLTIxLjQ5IDQ4LTQ4IDQ4LTQ4LTIxLjQ5LTQ4LTQ4IDIxLjQ5MS00OCA0OC00OHptMjA4IDI0MGgtMjU2bC40ODUtNDguNDg1TDEwNC41NDUgMzI4YzQuNjg2LTQuNjg2IDExLjc5OS00LjIwMSAxNi40ODUuNDg1TDE2MC41NDUgMzY4IDI2NC4wNiAyNjQuNDg1YzQuNjg2LTQuNjg2IDEyLjI4NC00LjY4NiAxNi45NzEgMEwzMjAuNTQ1IDMwNHYxMTJ6XCJdXG59O1xudmFyIGZhRmlsZUltcG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWltcG9ydCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU2ZlwiLCBcIk0xNiAyODhjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoMTEydi02NHptNDg5LTE4M0w0MDcuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDM4NHYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45em0tMTUzIDMxVjBIMTUyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNjRoMTI4di02NS4yYzAtMTQuMyAxNy4zLTIxLjQgMjcuNC0xMS4zTDM3OSAzMDhjNi42IDYuNyA2LjYgMTcuNCAwIDI0bC05NS43IDk2LjRjLTEwLjEgMTAuMS0yNy40IDMtMjcuNC0xMS4zVjM1MkgxMjh2MTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMzc2Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpcIl1cbn07XG52YXIgZmFGaWxlSW52b2ljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLWludm9pY2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1NzBcIiwgXCJNMjg4IDI1Nkg5NnY2NGgxOTJ2LTY0em04OS0xNTFMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXptLTE1MyAzMVYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0ek02NCA3MmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LThWNzJ6bTAgNjRjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04di0xNnptMjU2IDMwNGMwIDQuNDItMy41OCA4LTggOGgtODBjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNnptMC0yMDB2OTZjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIODBjLTguODQgMC0xNi03LjE2LTE2LTE2di05NmMwLTguODQgNy4xNi0xNiAxNi0xNmgyMjRjOC44NCAwIDE2IDcuMTYgMTYgMTZ6XCJdXG59O1xudmFyIGZhRmlsZUludm9pY2VEb2xsYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1pbnZvaWNlLWRvbGxhcicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjU3MVwiLCBcIk0zNzcgMTA1TDI3OS4xIDdjLTQuNS00LjUtMTAuNi03LTE3LTdIMjU2djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6bS0xNTMgMzFWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHpNNjQgNzJjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZjMCA0LjQyLTMuNTggOC04IDhINzJjLTQuNDIgMC04LTMuNTgtOC04Vjcyem0wIDgwdi0xNmMwLTQuNDIgMy41OC04IDgtOGg4MGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh6bTE0NCAyNjMuODhWNDQwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTI0LjI5Yy0xMS4yOS0uNTgtMjIuMjctNC41Mi0zMS4zNy0xMS4zNS0zLjktMi45My00LjEtOC43Ny0uNTctMTIuMTRsMTEuNzUtMTEuMjFjMi43Ny0yLjY0IDYuODktMi43NiAxMC4xMy0uNzMgMy44NyAyLjQyIDguMjYgMy43MiAxMi44MiAzLjcyaDI4LjExYzYuNSAwIDExLjgtNS45MiAxMS44LTEzLjE5IDAtNS45NS0zLjYxLTExLjE5LTguNzctMTIuNzNsLTQ1LTEzLjVjLTE4LjU5LTUuNTgtMzEuNTgtMjMuNDItMzEuNTgtNDMuMzkgMC0yNC41MiAxOS4wNS00NC40NCA0Mi42Ny00NS4wN1YyMzJjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MjQuMjljMTEuMjkuNTggMjIuMjcgNC41MSAzMS4zNyAxMS4zNSAzLjkgMi45MyA0LjEgOC43Ny41NyAxMi4xNGwtMTEuNzUgMTEuMjFjLTIuNzcgMi42NC02Ljg5IDIuNzYtMTAuMTMuNzMtMy44Ny0yLjQzLTguMjYtMy43Mi0xMi44Mi0zLjcyaC0yOC4xMWMtNi41IDAtMTEuOCA1LjkyLTExLjggMTMuMTkgMCA1Ljk1IDMuNjEgMTEuMTkgOC43NyAxMi43M2w0NSAxMy41YzE4LjU5IDUuNTggMzEuNTggMjMuNDIgMzEuNTggNDMuMzkgMCAyNC41My0xOS4wNSA0NC40NC00Mi42NyA0NS4wN3pcIl1cbn07XG52YXIgZmFGaWxlTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLW1lZGljYWwnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0NzdcIiwgXCJNMzc3IDEwNUwyNzkuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDI1NnYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45em0tMTUzIDMxVjBIMjRDMTAuNyAwIDAgMTAuNyAwIDI0djQ2NGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTY0IDE2MHY0OGMwIDQuNC0zLjYgOC04IDhoLTU2djU2YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtNTZoLTU2Yy00LjQgMC04LTMuNi04LTh2LTQ4YzAtNC40IDMuNi04IDgtOGg1NnYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1Nmg1NmM0LjQgMCA4IDMuNiA4IDh6XCJdXG59O1xudmFyIGZhRmlsZU1lZGljYWxBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1tZWRpY2FsLWFsdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjQ3OFwiLCBcIk0yODggMTM2VjBIODhDNzQuNyAwIDY0IDEwLjcgNjQgMjR2MjMySDhjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDhoMTQwLjljMyAwIDUuOCAxLjcgNy4yIDQuNGwxOS45IDM5LjggNTYuOC0xMTMuN2MyLjktNS45IDExLjQtNS45IDE0LjMgMGwzNC43IDY5LjVIMzUyYzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2aC04OS45TDI0MCAyNzUuOGwtNTYuOCAxMTMuN2MtMi45IDUuOS0xMS40IDUuOS0xNC4zIDBMMTM0LjEgMzIwSDY0djE2OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMzZjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTYwSDMxMmMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTE1My0zMUwzNDMuMSA3Yy00LjUtNC41LTEwLjYtNy0xNy03SDMyMHYxMjhoMTI4di02LjFjMC02LjMtMi41LTEyLjQtNy0xNi45elwiXVxufTtcbnZhciBmYUZpbGVQZGYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1wZGYnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzFcIiwgXCJNMTgxLjkgMjU2LjFjLTUtMTYtNC45LTQ2LjktMi00Ni45IDguNCAwIDcuNiAzNi45IDIgNDYuOXptLTEuNyA0Ny4yYy03LjcgMjAuMi0xNy4zIDQzLjMtMjguNCA2Mi43IDE4LjMtNyAzOS0xNy4yIDYyLjktMjEuOS0xMi43LTkuNi0yNC45LTIzLjQtMzQuNS00MC44ek04Ni4xIDQyOC4xYzAgLjggMTMuMi01LjQgMzQuOS00MC4yLTYuNyA2LjMtMjkuMSAyNC41LTM0LjkgNDAuMnpNMjQ4IDE2MGgxMzZ2MzI4YzAgMTMuMy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYyNEMwIDEwLjcgMTAuNyAwIDI0IDBoMjAwdjEzNmMwIDEzLjIgMTAuOCAyNCAyNCAyNHptLTggMTcxLjhjLTIwLTEyLjItMzMuMy0yOS00Mi43LTUzLjggNC41LTE4LjUgMTEuNi00Ni42IDYuMi02NC4yLTQuNy0yOS40LTQyLjQtMjYuNS00Ny44LTYuOC01IDE4LjMtLjQgNDQuMSA4LjEgNzctMTEuNiAyNy42LTI4LjcgNjQuNi00MC44IDg1LjgtLjEgMC0uMS4xLS4yLjEtMjcuMSAxMy45LTczLjYgNDQuNS01NC41IDY4IDUuNiA2LjkgMTYgMTAgMjEuNSAxMCAxNy45IDAgMzUuNy0xOCA2MS4xLTYxLjggMjUuOC04LjUgNTQuMS0xOS4xIDc5LTIzLjIgMjEuNyAxMS44IDQ3LjEgMTkuNSA2NCAxOS41IDI5LjIgMCAzMS4yLTMyIDE5LjctNDMuNC0xMy45LTEzLjYtNTQuMy05LjctNzMuNi03LjJ6TTM3NyAxMDVMMjc5IDdjLTQuNS00LjUtMTAuNi03LTE3LTdoLTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXptLTc0LjEgMjU1LjNjNC4xLTIuNy0yLjUtMTEuOS00Mi44LTkgMzcuMSAxNS44IDQyLjggOSA0Mi44IDl6XCJdXG59O1xudmFyIGZhRmlsZVBvd2VycG9pbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1wb3dlcnBvaW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWM0XCIsIFwiTTE5My43IDI3MS4yYzguOCAwIDE1LjUgMi43IDIwLjMgOC4xIDkuNiAxMC45IDkuOCAzMi43LS4yIDQ0LjEtNC45IDUuNi0xMS45IDguNS0yMS4xIDguNWgtMjYuOXYtNjAuN2gyNy45ek0zNzcgMTA1TDI3OSA3Yy00LjUtNC41LTEwLjYtNy0xNy03aC02djEyOGgxMjh2LTYuMWMwLTYuMy0yLjUtMTIuNC03LTE2Ljl6bS0xNTMgMzFWMEgyNEMxMC43IDAgMCAxMC43IDAgMjR2NDY0YzAgMTMuMyAxMC43IDI0IDI0IDI0aDMzNmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNHptNTMgMTY1LjJjMCA5MC4zLTg4LjggNzcuNi0xMTEuMSA3Ny42VjQzNmMwIDYuNi01LjQgMTItMTIgMTJoLTMwLjhjLTYuNiAwLTEyLTUuNC0xMi0xMlYyMzYuMmMwLTYuNiA1LjQtMTIgMTItMTJoODFjNDQuNSAwIDcyLjkgMzIuOCA3Mi45IDc3elwiXVxufTtcbnZhciBmYUZpbGVQcmVzY3JpcHRpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS1wcmVzY3JpcHRpb24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1NzJcIiwgXCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em02OC41MyAxNzkuNDhsMTEuMzEgMTEuMzFjNi4yNSA2LjI1IDYuMjUgMTYuMzggMCAyMi42M2wtMjkuOSAyOS45TDMwNCA0MDkuMzhjNi4yNSA2LjI1IDYuMjUgMTYuMzggMCAyMi42M2wtMTEuMzEgMTEuMzFjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBMMjQwIDQxMy4yNWwtMzAuMDYgMzAuMDZjLTYuMjUgNi4yNS0xNi4zOCA2LjI1LTIyLjYzIDBMMTc2IDQzMmMtNi4yNS02LjI1LTYuMjUtMTYuMzggMC0yMi42M2wzMC4wNi0zMC4wNkwxNDYuNzQgMzIwSDEyOHY0OGMwIDguODQtNy4xNiAxNi0xNiAxNkg5NmMtOC44NCAwLTE2LTcuMTYtMTYtMTZWMjA4YzAtOC44NCA3LjE2LTE2IDE2LTE2aDgwYzM1LjM1IDAgNjQgMjguNjUgNjQgNjQgMCAyNC4yMi0xMy42MiA0NS4wNS0zMy40NiA1NS45MkwyNDAgMzQ1LjM4bDI5LjktMjkuOWM2LjI1LTYuMjUgMTYuMzgtNi4yNSAyMi42MyAwek0xNzYgMjcyaC00OHYtMzJoNDhjOC44MiAwIDE2IDcuMTggMTYgMTZzLTcuMTggMTYtMTYgMTZ6bTIwOC0xNTAuMXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJdXG59O1xudmFyIGZhRmlsZVNpZ25hdHVyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXNpZ25hdHVyZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjU3M1wiLCBcIk0yMTguMTcgNDI0LjE0Yy0yLjk1LTUuOTItOC4wOS02LjUyLTEwLjE3LTYuNTJzLTcuMjIuNTktMTAuMDIgNi4xOWwtNy42NyAxNS4zNGMtNi4zNyAxMi43OC0yNS4wMyAxMS4zNy0yOS40OC0yLjA5TDE0NCAzODYuNTlsLTEwLjYxIDMxLjg4Yy01Ljg5IDE3LjY2LTIyLjM4IDI5LjUzLTQxIDI5LjUzSDgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2aDEyLjM5YzQuODMgMCA5LjExLTMuMDggMTAuNjQtNy42NmwxOC4xOS01NC42NGMzLjMtOS44MSAxMi40NC0xNi40MSAyMi43OC0xNi40MXMxOS40OCA2LjU5IDIyLjc3IDE2LjQxbDEzLjg4IDQxLjY0YzE5Ljc1LTE2LjE5IDU0LjA2LTkuNyA2NiAxNC4xNiAxLjg5IDMuNzggNS40OSA1Ljk1IDkuMzYgNi4yNnYtODIuMTJsMTI4LTEyNy4wOVYxNjBIMjQ4Yy0xMy4yIDAtMjQtMTAuOC0yNC0yNFYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0di00MGwtMTI4LS4xMWMtMTYuMTItLjMxLTMwLjU4LTkuMjgtMzcuODMtMjMuNzV6TTM4NCAxMjEuOWMwLTYuMy0yLjUtMTIuNC03LTE2LjlMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xem0tOTYgMjI1LjA2VjQxNmg2OC45OWwxNjEuNjgtMTYyLjc4LTY3Ljg4LTY3Ljg4TDI4OCAzNDYuOTZ6bTI4MC41NC0xNzkuNjNsLTMxLjg3LTMxLjg3Yy05Ljk0LTkuOTQtMjYuMDctOS45NC0zNi4wMSAwbC0yNy4yNSAyNy4yNSA2Ny44OCA2Ny44OCAyNy4yNS0yNy4yNWM5Ljk1LTkuOTQgOS45NS0yNi4wNyAwLTM2LjAxelwiXVxufTtcbnZhciBmYUZpbGVVcGxvYWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS11cGxvYWQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1NzRcIiwgXCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em02NS4xOCAyMTYuMDFIMjI0djgwYzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTgwSDk0LjgyYy0xNC4yOCAwLTIxLjQxLTE3LjI5LTExLjI3LTI3LjM2bDk2LjQyLTk1LjdjNi42NS02LjYxIDE3LjM5LTYuNjEgMjQuMDQgMGw5Ni40MiA5NS43YzEwLjE1IDEwLjA3IDMuMDMgMjcuMzYtMTEuMjUgMjcuMzZ6TTM3NyAxMDVMMjc5LjEgN2MtNC41LTQuNS0xMC42LTctMTctN0gyNTZ2MTI4aDEyOHYtNi4xYzAtNi4zLTIuNS0xMi40LTctMTYuOXpcIl1cbn07XG52YXIgZmFGaWxlVmlkZW8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlsZS12aWRlbycsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjFjOFwiLCBcIk0zODQgMTIxLjk0MVYxMjhIMjU2VjBoNi4wNTljNi4zNjUgMCAxMi40NyAyLjUyOSAxNi45NzEgNy4wMjlsOTcuOTQxIDk3Ljk0MUEyNC4wMDUgMjQuMDA1IDAgMCAxIDM4NCAxMjEuOTQxek0yMjQgMTM2VjBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHY0NjRjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTYwSDI0OGMtMTMuMiAwLTI0LTEwLjgtMjQtMjR6bTk2IDE0NC4wMTZ2MTExLjk2M2MwIDIxLjQ0NS0yNS45NDMgMzEuOTk4LTQwLjk3MSAxNi45NzFMMjI0IDM1My45NDFWMzkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEg4OGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjI4MGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTEyYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHYzOC4wNTlsNTUuMDI5LTU1LjAxM2MxNS4wMTEtMTUuMDEgNDAuOTcxLTQuNDkxIDQwLjk3MSAxNi45N3pcIl1cbn07XG52YXIgZmFGaWxlV29yZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxlLXdvcmQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxYzJcIiwgXCJNMjI0IDEzNlYwSDI0QzEwLjcgMCAwIDEwLjcgMCAyNHY0NjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzM2YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE2MEgyNDhjLTEzLjIgMC0yNC0xMC44LTI0LTI0em01Ny4xIDEyMEgzMDVjNy43IDAgMTMuNCA3LjEgMTEuNyAxNC43bC0zOCAxNjhjLTEuMiA1LjUtNi4xIDkuMy0xMS43IDkuM2gtMzhjLTUuNSAwLTEwLjMtMy44LTExLjYtOS4xLTI1LjgtMTAzLjUtMjAuOC04MS4yLTI1LjYtMTEwLjVoLS41Yy0xLjEgMTQuMy0yLjQgMTcuNC0yNS42IDExMC41LTEuMyA1LjMtNi4xIDkuMS0xMS42IDkuMUgxMTdjLTUuNiAwLTEwLjUtMy45LTExLjctOS40bC0zNy44LTE2OGMtMS43LTcuNSA0LTE0LjYgMTEuNy0xNC42aDI0LjVjNS43IDAgMTAuNyA0IDExLjggOS43IDE1LjYgNzggMjAuMSAxMDkuNSAyMSAxMjIuMiAxLjYtMTAuMiA3LjMtMzIuNyAyOS40LTEyMi43IDEuMy01LjQgNi4xLTkuMSAxMS43LTkuMWgyOS4xYzUuNiAwIDEwLjQgMy44IDExLjcgOS4yIDI0IDEwMC40IDI4LjggMTI0IDI5LjYgMTI5LjQtLjItMTEuMi0yLjYtMTcuOCAyMS42LTEyOS4yIDEtNS42IDUuOS05LjUgMTEuNS05LjV6TTM4NCAxMjEuOXY2LjFIMjU2VjBoNi4xYzYuNCAwIDEyLjUgMi41IDE3IDdsOTcuOSA5OGM0LjUgNC41IDcgMTAuNiA3IDE2Ljl6XCJdXG59O1xudmFyIGZhRmlsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTc1XCIsIFwiTTUwMi42MyAyMTcuMDZMMjk0Ljk0IDkuMzdDMjg4LjY5IDMuMTIgMjgwLjUgMCAyNzIuMzEgMHMtMTYuMzggMy4xMi0yMi42MiA5LjM3bC04MS41OCA4MS41OEw4MS45MyA0Ljc3Yy02LjI0LTYuMjUtMTYuMzgtNi4yNS0yMi42MiAwTDM2LjY5IDI3LjM4Yy02LjI0IDYuMjUtNi4yNCAxNi4zOCAwIDIyLjYzbDg2LjE5IDg2LjE4LTk0Ljc2IDk0Ljc2Yy0zNy40OSAzNy40OS0zNy40OSA5OC4yNiAwIDEzNS43NWwxMTcuMTkgMTE3LjE5YzE4Ljc1IDE4Ljc0IDQzLjMxIDI4LjEyIDY3Ljg3IDI4LjEyIDI0LjU3IDAgNDkuMTMtOS4zNyA2Ny44OC0yOC4xMmwyMjEuNTctMjIxLjU3YzEyLjQ5LTEyLjUgMTIuNDktMzIuNzYgMC00NS4yNnptLTExNi4yMiA3MC45N0g2NS45M2MxLjM2LTMuODQgMy41Ny03Ljk4IDcuNDMtMTEuODNsMTMuMTUtMTMuMTUgODEuNjEtODEuNjEgNTguNjEgNTguNmMxMi40OSAxMi40OSAzMi43NSAxMi40OSA0NS4yNCAwIDEyLjQ5LTEyLjQ5IDEyLjQ5LTMyLjc1IDAtNDUuMjRsLTU4LjYxLTU4LjYgNTguOTUtNTguOTUgMTYyLjQ1IDE2Mi40NC00OC4zNSA0OC4zNHpcIl1cbn07XG52YXIgZmFGaWxsRHJpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxsLWRyaXAnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1NzZcIiwgXCJNNTEyIDMyMHMtNjQgOTIuNjUtNjQgMTI4YzAgMzUuMzUgMjguNjYgNjQgNjQgNjRzNjQtMjguNjUgNjQtNjQtNjQtMTI4LTY0LTEyOHptLTkuMzctMTAyLjk0TDI5NC45NCA5LjM3QzI4OC42OSAzLjEyIDI4MC41IDAgMjcyLjMxIDBzLTE2LjM4IDMuMTItMjIuNjIgOS4zN2wtODEuNTggODEuNThMODEuOTMgNC43NmMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjIgMEwzNi42OSAyNy4zOGMtNi4yNCA2LjI1LTYuMjQgMTYuMzggMCAyMi42Mmw4Ni4xOSA4Ni4xOC05NC43NiA5NC43NmMtMzcuNDkgMzcuNDgtMzcuNDkgOTguMjYgMCAxMzUuNzVsMTE3LjE5IDExNy4xOWMxOC43NCAxOC43NCA0My4zMSAyOC4xMiA2Ny44NyAyOC4xMiAyNC41NyAwIDQ5LjEzLTkuMzcgNjcuODctMjguMTJsMjIxLjU3LTIyMS41N2MxMi41LTEyLjUgMTIuNS0zMi43NS4wMS00NS4yNXptLTExNi4yMiA3MC45N0g2NS45M2MxLjM2LTMuODQgMy41Ny03Ljk4IDcuNDMtMTEuODNsMTMuMTUtMTMuMTUgODEuNjEtODEuNjEgNTguNiA1OC42YzEyLjQ5IDEyLjQ5IDMyLjc1IDEyLjQ5IDQ1LjI0IDBzMTIuNDktMzIuNzUgMC00NS4yNGwtNTguNi01OC42IDU4Ljk1LTU4Ljk1IDE2Mi40NCAxNjIuNDQtNDguMzQgNDguMzR6XCJdXG59O1xudmFyIGZhRmlsbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaWxtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDA4XCIsIFwiTTQ4OCA2NGgtOHYyMGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJWNjRIOTZ2MjBjMCA2LjYtNS40IDEyLTEyIDEySDQ0Yy02LjYgMC0xMi01LjQtMTItMTJWNjRoLThDMTAuNyA2NCAwIDc0LjcgMCA4OHYzMzZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoOHYtMjBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnYyMGgzMjB2LTIwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2MjBoOGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY4OGMwLTEzLjMtMTAuNy0yNC0yNC0yNHpNOTYgMzcyYzAgNi42LTUuNCAxMi0xMiAxMkg0NGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0wLTk2YzAgNi42LTUuNCAxMi0xMiAxMkg0NGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0wLTk2YzAgNi42LTUuNCAxMi0xMiAxMkg0NGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0yNzIgMjA4YzAgNi42LTUuNCAxMi0xMiAxMkgxNTZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtOTZjMC02LjYgNS40LTEyIDEyLTEyaDIwMGM2LjYgMCAxMiA1LjQgMTIgMTJ2OTZ6bTAtMTY4YzAgNi42LTUuNCAxMi0xMiAxMkgxNTZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtOTZjMC02LjYgNS40LTEyIDEyLTEyaDIwMGM2LjYgMCAxMiA1LjQgMTIgMTJ2OTZ6bTExMiAxNTJjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0wLTk2YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC05NmMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6XCJdXG59O1xudmFyIGZhRmlsdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpbHRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBiMFwiLCBcIk00ODcuOTc2IDBIMjQuMDI4QzIuNzEgMC04LjA0NyAyNS44NjYgNy4wNTggNDAuOTcxTDE5MiAyMjUuOTQxVjQzMmMwIDcuODMxIDMuODIxIDE1LjE3IDEwLjIzNyAxOS42NjJsODAgNTUuOThDMjk4LjAyIDUxOC42OSAzMjAgNTA3LjQ5MyAzMjAgNDg3Ljk4VjIyNS45NDFsMTg0Ljk0Ny0xODQuOTdDNTIwLjAyMSAyNS44OTYgNTA5LjMzOCAwIDQ4Ny45NzYgMHpcIl1cbn07XG52YXIgZmFGaW5nZXJwcmludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaW5nZXJwcmludCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU3N1wiLCBcIk0yNTYuMTIgMjQ1Ljk2Yy0xMy4yNSAwLTI0IDEwLjc0LTI0IDI0IDEuMTQgNzIuMjUtOC4xNCAxNDEuOS0yNy43IDIxMS41NS0yLjczIDkuNzIgMi4xNSAzMC40OSAyMy4xMiAzMC40OSAxMC40OCAwIDIwLjExLTYuOTIgMjMuMDktMTcuNTIgMTMuNTMtNDcuOTEgMzEuMDQtMTI1LjQxIDI5LjQ4LTIyNC41Mi4wMS0xMy4yNS0xMC43My0yNC0yMy45OS0yNHptLS44Ni04MS43M0MxOTQgMTY0LjE2IDE1MS4yNSAyMTEuMyAxNTIuMSAyNjUuMzJjLjc1IDQ3Ljk0LTMuNzUgOTUuOTEtMTMuMzcgMTQyLjU1LTIuNjkgMTIuOTggNS42NyAyNS42OSAxOC42NCAyOC4zNiAxMy4wNSAyLjY3IDI1LjY3LTUuNjYgMjguMzYtMTguNjQgMTAuMzQtNTAuMDkgMTUuMTctMTAxLjU4IDE0LjM3LTE1My4wMi0uNDEtMjUuOTUgMTkuOTItNTIuNDkgNTQuNDUtNTIuMzQgMzEuMzEuNDcgNTcuMTUgMjUuMzQgNTcuNjIgNTUuNDcuNzcgNDguMDUtMi44MSA5Ni4zMy0xMC42MSAxNDMuNTUtMi4xNyAxMy4wNiA2LjY5IDI1LjQyIDE5Ljc2IDI3LjU4IDE5Ljk3IDMuMzMgMjYuODEtMTUuMSAyNy41OC0xOS43NyA4LjI4LTUwLjAzIDEyLjA2LTEwMS4yMSAxMS4yNy0xNTIuMTEtLjg4LTU1LjgtNDcuOTQtMTAxLjg4LTEwNC45MS0xMDIuNzJ6bS0xMTAuNjktMTkuNzhjLTEwLjMtOC4zNC0yNS4zNy02LjgtMzMuNzYgMy40OC0yNS42MiAzMS41LTM5LjM5IDcxLjI4LTM4Ljc1IDExMiAuNTkgMzcuNTgtMi40NyA3NS4yNy05LjExIDExMi4wNS0yLjM0IDEzLjA1IDYuMzEgMjUuNTMgMTkuMzYgMjcuODkgMjAuMTEgMy41IDI3LjA3LTE0LjgxIDI3Ljg5LTE5LjM2IDcuMTktMzkuODQgMTAuNS04MC42NiA5Ljg2LTEyMS4zMy0uNDctMjkuODggOS4yLTU3Ljg4IDI4LTgwLjk3IDguMzUtMTAuMjggNi43OS0yNS4zOS0zLjQ5LTMzLjc2em0xMDkuNDctNjIuMzNjLTE1LjQxLS40MS0zMC44NyAxLjQ0LTQ1Ljc4IDQuOTctMTIuODkgMy4wNi0yMC44NyAxNS45OC0xNy44MyAyOC44OSAzLjA2IDEyLjg5IDE2IDIwLjgzIDI4Ljg5IDE3LjgzIDExLjA1LTIuNjEgMjIuNDctMy43NyAzNC0zLjY5IDc1LjQzIDEuMTMgMTM3LjczIDYxLjUgMTM4Ljg4IDEzNC41OC41OSAzNy44OC0xLjI4IDc2LjExLTUuNTggMTEzLjYzLTEuNSAxMy4xNyA3Ljk1IDI1LjA4IDIxLjExIDI2LjU4IDE2LjcyIDEuOTUgMjUuNTEtMTEuODggMjYuNTgtMjEuMTFhOTI5LjA2IDkyOS4wNiAwIDAgMCA1Ljg5LTExOS44NWMtMS41Ni05OC43NS04NS4wNy0xODAuMzMtMTg2LjE2LTE4MS44M3ptMjUyLjA3IDEyMS40NWMtMi44Ni0xMi45Mi0xNS41MS0yMS4yLTI4LjYxLTE4LjI3LTEyLjk0IDIuODYtMjEuMTIgMTUuNjYtMTguMjYgMjguNjEgNC43MSAyMS40MSA0LjkxIDM3LjQxIDQuNyA2MS42LS4xMSAxMy4yNyAxMC41NSAyNC4wOSAyMy44IDI0LjJoLjJjMTMuMTcgMCAyMy44OS0xMC42MSAyNC0yMy44LjE4LTIyLjE4LjQtNDQuMTEtNS44My03Mi4zNHptLTQwLjEyLTkwLjcyQzQxNy4yOSA0My40NiAzMzcuNiAxLjI5IDI1Mi44MS4wMiAxODMuMDItLjgyIDExOC40NyAyNC45MSA3MC40NiA3Mi45NCAyNC4wOSAxMTkuMzctLjkgMTgxLjA0LjE0IDI0Ni42NWwtLjEyIDIxLjQ3Yy0uMzkgMTMuMjUgMTAuMDMgMjQuMzEgMjMuMjggMjQuNjkuMjMuMDIuNDguMDIuNzIuMDIgMTIuOTIgMCAyMy41OS0xMC4zIDIzLjk3LTIzLjNsLjE2LTIzLjY0Yy0uODMtNTIuNSAxOS4xNi0xMDEuODYgNTYuMjgtMTM5IDM4Ljc2LTM4LjggOTEuMzQtNTkuNjcgMTQ3LjY4LTU4Ljg2IDY5LjQ1IDEuMDMgMTM0LjczIDM1LjU2IDE3NC42MiA5Mi4zOSA3LjYxIDEwLjg2IDIyLjU2IDEzLjQ1IDMzLjQyIDUuODYgMTAuODQtNy42MiAxMy40Ni0yMi41OSA1Ljg0LTMzLjQzelwiXVxufTtcbnZhciBmYUZpcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlyZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjA2ZFwiLCBcIk0yMTYgMjMuODZjMC0yMy44LTMwLjY1LTMyLjc3LTQ0LjE1LTEzLjA0QzQ4IDE5MS44NSAyMjQgMjAwIDIyNCAyODhjMCAzNS42My0yOS4xMSA2NC40Ni02NC44NSA2My45OS0zNS4xNy0uNDUtNjMuMTUtMjkuNzctNjMuMTUtNjQuOTR2LTg1LjUxYzAtMjEuNy0yNi40Ny0zMi4yMy00MS40My0xNi41QzI3LjggMjEzLjE2IDAgMjYxLjMzIDAgMzIwYzAgMTA1Ljg3IDg2LjEzIDE5MiAxOTIgMTkyczE5Mi04Ni4xMyAxOTItMTkyYzAtMTcwLjI5LTE2OC0xOTMtMTY4LTI5Ni4xNHpcIl1cbn07XG52YXIgZmFGaXJlQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZpcmUtYWx0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmN2U0XCIsIFwiTTMyMy41NiA1MS4yYy0yMC44IDE5LjMtMzkuNTggMzkuNTktNTYuMjIgNTkuOTdDMjQwLjA4IDczLjYyIDIwNi4yOCAzNS41MyAxNjggMCA2OS43NCA5MS4xNyAwIDIwOS45NiAwIDI4MS42IDAgNDA4Ljg1IDEwMC4yOSA1MTIgMjI0IDUxMnMyMjQtMTAzLjE1IDIyNC0yMzAuNGMwLTUzLjI3LTUxLjk4LTE2My4xNC0xMjQuNDQtMjMwLjR6bS0xOS40NyAzNDAuNjVDMjgyLjQzIDQwNy4wMSAyNTUuNzIgNDE2IDIyNi44NiA0MTYgMTU0LjcxIDQxNiA5NiAzNjguMjYgOTYgMjkwLjc1YzAtMzguNjEgMjQuMzEtNzIuNjMgNzIuNzktMTMwLjc1IDYuOTMgNy45OCA5OC44MyAxMjUuMzQgOTguODMgMTI1LjM0bDU4LjYzLTY2Ljg4YzQuMTQgNi44NSA3LjkxIDEzLjU1IDExLjI3IDE5Ljk3IDI3LjM1IDUyLjE5IDE1LjgxIDExOC45Ny0zMy40MyAxNTMuNDJ6XCJdXG59O1xudmFyIGZhRmlyZUV4dGluZ3Vpc2hlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaXJlLWV4dGluZ3Vpc2hlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjEzNFwiLCBcIk00MzQuMDI3IDI2LjMyOWwtMTY4IDI4QzI1NC42OTMgNTYuMjE4IDI1NiA2Ny44IDI1NiA3MmgtNTguMzMyQzIwOC4zNTMgMzYuMTA4IDE4MS40NDYgMCAxNDQgMGMtMzkuNDM1IDAtNjYuMzY4IDM5LjY3Ni01Mi4yMjggNzYuMjAzLTUyLjAzOSAxMy4wNTEtNzUuMzgxIDU0LjIxMy05MC4wNDkgOTAuODg0LTQuOTIzIDEyLjMwNyAxLjA2MyAyNi4yNzQgMTMuMzcgMzEuMTk3IDEyLjMxNyA0LjkyNiAyNi4yNzktMS4wNzUgMzEuMTk2LTEzLjM3Qzc1LjA1OCAxMTIuOTkgMTA2Ljk2NCAxMjAgMTY4IDEyMHYyNy4wNzZjLTQxLjU0MyAxMC44NjItNzIgNDkuMjM1LTcyIDk0LjEyOVY0ODhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE0NGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjQwYzAtNDQuNzMxLTMwLjU5Ni04Mi4zMTItNzItOTIuOTdWMTIwaDQwYzAgMi45NzQtMS43MDMgMTUuNzE2IDEwLjAyNyAxNy42NzFsMTY4IDI4QzQ0MS4zNDIgMTY2Ljg5IDQ0OCAxNjEuMjUgNDQ4IDE1My44MzRWMzguMTY2YzAtNy40MTYtNi42NTgtMTMuMDU2LTEzLjk3My0xMS44Mzd6TTE0NCA3MmMtOC44MjIgMC0xNi03LjE3OC0xNi0xNnM3LjE3OC0xNiAxNi0xNiAxNiA3LjE3OCAxNiAxNi03LjE3OCAxNi0xNiAxNnpcIl1cbn07XG52YXIgZmFGaXJzdEFpZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaXJzdC1haWQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0NzlcIiwgXCJNMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDhWMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHptMTI4IDQwMGgzMjBWMzJIMTI4djQ0OHptNjQtMjQ4YzAtNC40IDMuNi04IDgtOGg1NnYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1Nmg1NmM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OHpNNTI4IDMyaC00OHY0NDhoNDhjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJdXG59O1xudmFyIGZhRmlzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmaXNoJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTc4XCIsIFwiTTMyNy4xIDk2Yy04OS45NyAwLTE2OC41NCA1NC43Ny0yMTIuMjcgMTAxLjYzTDI3LjUgMTMxLjU4Yy0xMi4xMy05LjE4LTMwLjI0LjYtMjcuMTQgMTQuNjZMMjQuNTQgMjU2IC4zNSAzNjUuNzdjLTMuMSAxNC4wNiAxNS4wMSAyMy44MyAyNy4xNCAxNC42Nmw4Ny4zMy02Ni4wNUMxNTguNTUgMzYxLjIzIDIzNy4xMyA0MTYgMzI3LjEgNDE2IDQ2NC41NiA0MTYgNTc2IDI4OCA1NzYgMjU2UzQ2NC41NiA5NiAzMjcuMSA5NnptODcuNDMgMTg0Yy0xMy4yNSAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzUtMjQgMjQtMjQgMTMuMjYgMCAyNCAxMC43NCAyNCAyNCAwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwiXVxufTtcbnZhciBmYUZpc3RSYWlzZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmlzdC1yYWlzZWQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY2ZGVcIiwgXCJNMjU1Ljk4IDE2MFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0Ni45M2M1LjAyLTEuNzggMTAuMzQtMi45MyAxNS45Ny0yLjkzaDQ4LjAzem0xMjggOTUuOTljLS4wMS0zNS4zNC0yOC42Ni02My45OS02My45OS02My45OUgyMDcuODVjLTguNzggMC0xNS45IDcuMDctMTUuOSAxNS44NXYuNTZjMCAyNi4yNyAyMS4zIDQ3LjU5IDQ3LjU3IDQ3LjU5aDM1LjI2YzkuNjggMCAxMy4yIDMuNTggMTMuMiA4djE2LjJjMCA0LjI5LTMuNTkgNy43OC03Ljg4IDgtNDQuNTIgMi4yOC02NC4xNiAyNC43MS05Ni4wNSA3Mi41NWwtNi4zMSA5LjQ3YTcuOTk0IDcuOTk0IDAgMCAxLTExLjA5IDIuMjJsLTEzLjMxLTguODhhNy45OTQgNy45OTQgMCAwIDEtMi4yMi0xMS4wOWw2LjMxLTkuNDdjMTUuNzMtMjMuNiAzMC4yLTQzLjI2IDQ3LjMxLTU4LjA4LTE3LjI3LTUuNTEtMzEuNC0xOC4xMi0zOC44Ny0zNC40NS02LjU5IDMuNDEtMTMuOTYgNS41Mi0yMS44NyA1LjUyaC0zMmMtMTIuMzQgMC0yMy40OS00LjgxLTMyLTEyLjQ4QzcxLjQ4IDI1MS4xOSA2MC4zMyAyNTYgNDggMjU2SDE2Yy01LjY0IDAtMTAuOTctMS4xNS0xNi0yLjk1djc3LjkzYzAgMzMuOTUgMTMuNDggNjYuNSAzNy40OSA5MC41MUw2My45OSA0NDh2NjRoMjU1Ljk4di02My45NmwzNS45MS0zNS45MkE5Ni4wMzUgOTYuMDM1IDAgMCAwIDM4NCAzNDQuMjFsLS4wMi04OC4yMnptLTMyLjAxLTkwLjA5VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTEyaDMyYzExLjI4IDAgMjEuOTQgMi4zMSAzMiA1Ljl6TTE2IDIyNGgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNlY4MGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDY0IDAgNzEuMTYgMCA4MHYxMjhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZ6bTk1Ljk5IDBoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNjBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZ6XCJdXG59O1xudmFyIGZhRmxhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbGFnJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDI0XCIsIFwiTTM0OS41NjUgOTguNzgzQzI5NS45NzggOTguNzgzIDI1MS43MjEgNjQgMTg0LjM0OCA2NGMtMjQuOTU1IDAtNDcuMzA5IDQuMzg0LTY4LjA0NSAxMi4wMTNhNTUuOTQ3IDU1Ljk0NyAwIDAgMCAzLjU4Ni0yMy41NjJDMTE4LjExNyAyNC4wMTUgOTQuODA2IDEuMjA2IDY2LjMzOC4wNDggMzQuMzQ1LTEuMjU0IDggMjQuMjk2IDggNTZjMCAxOS4wMjYgOS40OTcgMzUuODI1IDI0IDQ1Ljk0NVY0ODhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtOTQuNGMyOC4zMTEtMTIuMDY0IDYzLjU4Mi0yMi4xMjIgMTE0LjQzNS0yMi4xMjIgNTMuNTg4IDAgOTcuODQ0IDM0Ljc4MyAxNjUuMjE3IDM0Ljc4MyA0OC4xNjkgMCA4Ni42NjctMTYuMjk0IDEyMi41MDUtNDAuODU4QzUwNi44NCAzNTkuNDUyIDUxMiAzNDkuNTcxIDUxMiAzMzkuMDQ1di0yNDMuMWMwLTIzLjM5My0yNC4yNjktMzguODctNDUuNDg1LTI5LjAxNi0zNC4zMzggMTUuOTQ4LTc2LjQ1NCAzMS44NTQtMTE2Ljk1IDMxLjg1NHpcIl1cbn07XG52YXIgZmFGbGFnQ2hlY2tlcmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZsYWctY2hlY2tlcmVkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTFlXCIsIFwiTTI0My4yIDE4OS45VjI1OGMyNi4xIDUuOSA0OS4zIDE1LjYgNzMuNiAyMi4zdi02OC4yYy0yNi01LjgtNDkuNC0xNS41LTczLjYtMjIuMnptMjIzLjMtMTIzYy0zNC4zIDE1LjktNzYuNSAzMS45LTExNyAzMS45QzI5NiA5OC44IDI1MS43IDY0IDE4NC4zIDY0Yy0yNSAwLTQ3LjMgNC40LTY4IDEyIDIuOC03LjMgNC4xLTE1LjIgMy42LTIzLjZDMTE4LjEgMjQgOTQuOCAxLjIgNjYuMyAwIDM0LjMtMS4zIDggMjQuMyA4IDU2YzAgMTkgOS41IDM1LjggMjQgNDUuOVY0ODhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMTZjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTk0LjRjMjguMy0xMi4xIDYzLjYtMjIuMSAxMTQuNC0yMi4xIDUzLjYgMCA5Ny44IDM0LjggMTY1LjIgMzQuOCA0OC4yIDAgODYuNy0xNi4zIDEyMi41LTQwLjkgOC43LTYgMTMuOC0xNS44IDEzLjgtMjYuNFY5NS45Yy4xLTIzLjMtMjQuMi0zOC44LTQ1LjQtMjl6TTE2OS42IDMyNS41Yy0yNS44IDIuNy01MCA4LjItNzMuNiAxNi42di03MC41YzI2LjItOS4zIDQ3LjUtMTUgNzMuNi0xNy40ek00NjQgMTkxYy0yMy42IDkuOC00Ni4zIDE5LjUtNzMuNiAyMy45VjI4NmMyNC44LTMuNCA1MS40LTExLjggNzMuNi0yNnY3MC41Yy0yNS4xIDE2LjEtNDguNSAyNC43LTczLjYgMjcuMVYyODZjLTI3IDMuNy00Ny45IDEuNS03My42LTUuNnY2Ny40Yy0yMy45LTcuNC00Ny4zLTE2LjctNzMuNi0yMS4zVjI1OGMtMTkuNy00LjQtNDAuOC02LjgtNzMuNi0zLjh2LTcwYy0yMi40IDMuMS00NC42IDEwLjItNzMuNiAyMC45di03MC41YzMzLjItMTIuMiA1MC4xLTE5LjggNzMuNi0yMnY3MS42YzI3LTMuNyA0OC40LTEuMyA3My42IDUuN3YtNjcuNGMyMy43IDcuNCA0Ny4yIDE2LjcgNzMuNiAyMS4zdjY4LjRjMjMuNyA1LjMgNDcuNiA2LjkgNzMuNiAyLjdWMTQzYzI3LTQuOCA1Mi4zLTEzLjYgNzMuNi0yMi41elwiXVxufTtcbnZhciBmYUZsYWdVc2EgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmxhZy11c2EnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3NGRcIiwgXCJNMzIgMEMxNC4zIDAgMCAxNC4zIDAgMzJ2NDY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzJDNjQgMTQuMyA0OS43IDAgMzIgMHptMjY3LjkgMzAzLjZjLTU3LjItMTUuMS0xMTEuNy0yOC44LTIwMy45IDExLjFWMzg0YzE4NS43LTkyLjIgMjIxLjcgNTMuMyAzOTcuNS0yMy4xIDExLjQtNSAxOC41LTE2LjUgMTguNS0yOC44di0zNmMtNDMuNiAxNy4zLTgwLjIgMjQuMS0xMTIuMSAyNC4xLTM3LjQtLjEtNjguOS04LjQtMTAwLTE2LjZ6bTAtOTZjLTU3LjItMTUuMS0xMTEuNy0yOC44LTIwMy45IDExLjF2NjEuNWM5NC44LTM3LjYgMTU0LjYtMjIuNyAyMTIuMS03LjYgNTcuMiAxNS4xIDExMS43IDI4LjggMjAzLjktMTEuMVYyMDBjLTQzLjYgMTcuMy04MC4yIDI0LjEtMTEyLjEgMjQuMS0zNy40IDAtNjguOS04LjMtMTAwLTE2LjV6bTkuNS0xMjUuOWM1MS44IDE1LjYgOTcuNCAyOSAyMDIuNi0yMC4xVjMwLjhjMC0yNS4xLTI2LjgtMzguMS00OS40LTI2LjZDMjkxLjMgOTEuNSAzMDUuNC02Mi4yIDk2IDMyLjR2MTUxLjljOTQuOC0zNy41IDE1NC42LTIyLjcgMjEyLjEtNy42IDU3LjIgMTUgMTExLjcgMjguNyAyMDMuOS0xMS4xVjk2LjdjLTUzLjYgMjMuNS05My4zIDMxLjQtMTI2LjEgMzEuNHMtNTktNy44LTg1LjctMTUuOWMtNC0xLjItOC4xLTIuNC0xMi4xLTMuNVY3NS41YzcuMiAyIDE0LjMgNC4xIDIxLjMgNi4yek0xNjAgMTI4LjFjLTguOCAwLTE2LTcuMS0xNi0xNiAwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4xIDE2IDE2LTcuMiAxNi0xNiAxNnptMC01NS44Yy04LjggMC0xNi03LjEtMTYtMTYgMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMSAxNiAxNmMwIDguOC03LjIgMTYtMTYgMTZ6bTY0IDQ3LjljLTguOCAwLTE2LTcuMS0xNi0xNiAwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4xIDE2IDE2YzAgOC44LTcuMiAxNi0xNiAxNnptMC01NS45Yy04LjggMC0xNi03LjEtMTYtMTYgMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMSAxNiAxNmMwIDguOC03LjIgMTYtMTYgMTZ6XCJdXG59O1xudmFyIGZhRmxhc2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZmxhc2snLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwYzNcIiwgXCJNNDM3LjIgNDAzLjVMMzIwIDIxNVY2NGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjI0YzAtMTMuMy0xMC43LTI0LTI0LTI0SDEyMGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoOHYxNTFMMTAuOCA0MDMuNUMtMTguNSA0NTAuNiAxNS4zIDUxMiA3MC45IDUxMmgzMDYuMmM1NS43IDAgODkuNC02MS41IDYwLjEtMTA4LjV6TTEzNy45IDMyMGw0OC4yLTc3LjZjMy43LTUuMiA1LjgtMTEuNiA1LjgtMTguNFY2NGg2NHYxNjBjMCA2LjkgMi4yIDEzLjIgNS44IDE4LjRsNDguMiA3Ny42aC0xNzJ6XCJdXG59O1xudmFyIGZhRmx1c2hlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmbHVzaGVkJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmNTc5XCIsIFwiTTM0NCAyMDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em0tMTkyIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0ek0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek04MCAyMjRjMC0zOS44IDMyLjItNzIgNzItNzJzNzIgMzIuMiA3MiA3Mi0zMi4yIDcyLTcyIDcyLTcyLTMyLjItNzItNzJ6bTIzMiAxNzZIMTg0Yy0yMS4yIDAtMjEuMi0zMiAwLTMyaDEyOGMyMS4yIDAgMjEuMiAzMiAwIDMyem0zMi0xMDRjLTM5LjggMC03Mi0zMi4yLTcyLTcyczMyLjItNzIgNzItNzIgNzIgMzIuMiA3MiA3Mi0zMi4yIDcyLTcyIDcyelwiXVxufTtcbnZhciBmYUZvbGRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb2xkZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwN2JcIiwgXCJNNDY0IDEyOEgyNzJsLTY0LTY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTc2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6XCJdXG59O1xudmFyIGZhRm9sZGVyTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9sZGVyLW1pbnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjVkXCIsIFwiTTQ2NCAxMjhIMjcybC02NC02NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI4OGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQxNmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjE3NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4em0tOTYgMTY4YzAgOC44NC03LjE2IDE2LTE2IDE2SDE2MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTE2YzAtOC44NCA3LjE2LTE2IDE2LTE2aDE5MmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNnpcIl1cbn07XG52YXIgZmFGb2xkZXJPcGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbGRlci1vcGVuJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMDdjXCIsIFwiTTU3Mi42OTQgMjkyLjA5M0w1MDAuMjcgNDE2LjI0OEE2My45OTcgNjMuOTk3IDAgMCAxIDQ0NC45ODkgNDQ4SDQ1LjAyNWMtMTguNTIzIDAtMzAuMDY0LTIwLjA5My0yMC43MzEtMzYuMDkzbDcyLjQyNC0xMjQuMTU1QTY0IDY0IDAgMCAxIDE1MiAyNTZoMzk5Ljk2NGMxOC41MjMgMCAzMC4wNjQgMjAuMDkzIDIwLjczIDM2LjA5M3pNMTUyIDIyNGgzMjh2LTQ4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDhIMjcybC02NC02NEg0OEMyMS40OSA2NCAwIDg1LjQ5IDAgMTEydjI3OC4wNDZsNjkuMDc3LTExOC40MThDODYuMjE0IDI0Mi4yNSAxMTcuOTg5IDIyNCAxNTIgMjI0elwiXVxufTtcbnZhciBmYUZvbGRlclBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9sZGVyLXBsdXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2NWVcIiwgXCJNNDY0IDEyOEgyNzJsLTY0LTY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2Mjg4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWMTc2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6bS05NiAxNjhjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTcydjcyYzAgOC44NC03LjE2IDE2LTE2IDE2aC0xNmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTcyaC03MmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTE2YzAtOC44NCA3LjE2LTE2IDE2LTE2aDcydi03MmMwLTguODQgNy4xNi0xNiAxNi0xNmgxNmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnY3Mmg3MmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNnpcIl1cbn07XG52YXIgZmFGb250ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ZvbnQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwMzFcIiwgXCJNNDMyIDQxNmgtMjMuNDFMMjc3Ljg4IDUzLjY5QTMyIDMyIDAgMCAwIDI0Ny41OCAzMmgtNDcuMTZhMzIgMzIgMCAwIDAtMzAuMyAyMS42OUwzOS40MSA0MTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtMTkuNThsMjMuMy02NGgxNTIuNTZsMjMuMyA2NEgzMDRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMTc2Ljg1IDI3MkwyMjQgMTQyLjUxIDI3MS4xNSAyNzJ6XCJdXG59O1xudmFyIGZhRm9udEF3ZXNvbWVMb2dvRnVsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdmb250LWF3ZXNvbWUtbG9nby1mdWxsJyxcbiAgaWNvbjogWzM5OTIsIDUxMiwgW1wiRm9udCBBd2Vzb21lXCJdLCBcImY0ZTZcIiwgXCJNNDU0LjYgMEg1Ny40QzI1LjkgMCAwIDI1LjkgMCA1Ny40djM5Ny4zQzAgNDg2LjEgMjUuOSA1MTIgNTcuNCA1MTJoMzk3LjNjMzEuNCAwIDU3LjQtMjUuOSA1Ny40LTU3LjRWNTcuNEM1MTIgMjUuOSA0ODYuMSAwIDQ1NC42IDB6bS01OC45IDMyNC45YzAgNC44LTQuMSA2LjktOC45IDguOS0xOS4yIDguMS0zOS43IDE1LjctNjEuNSAxNS43LTQwLjUgMC02OC43LTQ0LjgtMTYzLjIgMi41djUxLjhjMCAzMC4zLTQ1LjcgMzAuMi00NS43IDB2LTI1MGMtOS03LTE1LTE3LjktMTUtMzAuMyAwLTIxIDE3LjEtMzguMiAzOC4yLTM4LjIgMjEgMCAzOC4yIDE3LjEgMzguMiAzOC4yIDAgMTIuMi01LjggMjMuMi0xNC45IDMwLjJ2MjFjMzcuMS0xMiA2NS41LTM0LjQgMTQ2LjEtMy40IDI2LjYgMTEuNCA2OC43LTE1LjcgNzYuNS0xNS43IDUuNSAwIDEwLjMgNC4xIDEwLjMgOC45djE2MC40em00MzIuOS0xNzQuMmgtMTM3djcwLjFIODI1YzM5LjggMCA0MC40IDYyLjIgMCA2Mi4ySDY5MS42djEwNS42YzAgNDUuNS03MC43IDQ2LjQtNzAuNyAwVjEyOC4zYzAtMjIgMTgtMzkuOCAzOS44LTM5LjhoMTY3LjhjMzkuNiAwIDQwLjUgNjIuMi4xIDYyLjJ6bTE5MS4xIDIzLjRjLTE2OS4zIDAtMTY5LjEgMjUyLjQgMCAyNTIuNCAxNjkuOSAwIDE2OS45LTI1Mi40IDAtMjUyLjR6bTAgMTk2LjFjLTgxLjYgMC04Mi4xLTEzOS44IDAtMTM5LjggODIuNSAwIDgyLjQgMTM5LjggMCAxMzkuOHptMzcyLjQgNTMuNGMtMTcuNSAwLTMxLjQtMTMuOS0zMS40LTMxLjR2LTExN2MwLTYyLjQtNzIuNi01Mi41LTk5LjEtMTYuNHYxMzMuNGMwIDQxLjUtNjMuMyA0MS44LTYzLjMgMFYyMDhjMC00MCA2My4xLTQxLjYgNjMuMSAwdjMuNGM0My4zLTUxLjYgMTYyLjQtNjAuNCAxNjIuNCAzOS4zdjE0MS41Yy4zIDMwLjQtMzEuNSAzMS40LTMxLjcgMzEuNHptMTc5LjcgMi45Yy00NC4zIDAtNjguMy0yMi45LTY4LjMtNjUuOFYyMzUuMkgxNDg4Yy0zNS42IDAtMzYuNy01NS4zIDAtNTUuM2gxNS41di0zNy4zYzAtNDEuMyA2My44LTQyLjEgNjMuOCAwdjM3LjVoMjQuOWMzNS40IDAgMzUuNyA1NS4zIDAgNTUuM2gtMjQuOXYxMDguNWMwIDI5LjYgMjYuMSAyNi4zIDI3LjQgMjYuMyAzMS40IDAgNTIuNiA1Ni4zLTIyLjkgNTYuM3pNMTk5MiAxMjNjLTE5LjUtNTAuMi05NS41LTUwLTExNC41IDAtMTA3LjMgMjc1LjctOTkuNSAyNTIuNy05OS41IDI2Mi44IDAgNDIuOCA1OC4zIDUxLjIgNzIuMSAxNC40bDEzLjUtMzUuOUgyMDA2bDEzIDM1LjljMTQuMiAzNy43IDcyLjEgMjcuMiA3Mi4xLTE0LjQgMC0xMC4xIDUuMyA2LjgtOTkuMS0yNjIuOHptLTEwOC45IDE3OS4xbDUxLjctMTQyLjkgNTEuOCAxNDIuOWgtMTAzLjV6bTU5MS4zLTg1LjZsLTUzLjcgMTc2LjNjLTEyLjQgNDEuMi03MiA0MS04NCAwbC00Mi4zLTEzNS45LTQyLjMgMTM1LjljLTEyLjQgNDAuOS03MiA0MS4yLTg0LjUgMGwtNTQuMi0xNzYuM2MtMTIuNS0zOS40IDQ5LjgtNTYuMSA2MC4yLTE2LjlMMjIxMyAzNDJsNDUuMy0xMzkuNWMxMC45LTMyLjcgNTkuNi0zNC43IDcxLjIgMGw0NS4zIDEzOS41IDM5LjMtMTQyLjRjMTAuMy0zOC4zIDcyLjYtMjMuOCA2MC4zIDE2Ljl6bTI3NS40IDc1LjFjMC00Mi40LTMzLjktMTE3LjUtMTE5LjUtMTE3LjUtNzMuMiAwLTEyNC40IDU2LjMtMTI0LjQgMTI2IDAgNzcuMiA1NS4zIDEyNi40IDEyOC41IDEyNi40IDMxLjcgMCA5My0xMS41IDkzLTM5LjggMC0xOC4zLTIxLjEtMzEuNS0zOS4zLTIyLjQtNDkuNCAyNi4yLTEwOSA4LjQtMTE1LjktNDMuOGgxNDguM2MxNi4zIDAgMjkuMy0xMy40IDI5LjMtMjguOXpNMjU3MSAyNzcuN2M5LjUtNzMuNCAxMTMuOS02OC42IDExOC42IDBIMjU3MXptMzE2LjcgMTQ4LjhjLTMxLjQgMC04MS42LTEwLjUtOTYuNi0zMS45LTEyLjQtMTcgMi41LTM5LjggMjEuOC0zOS44IDE2LjMgMCAzNi44IDIyLjkgNzcuNyAyMi45IDI3LjQgMCA0MC40LTExIDQwLjQtMjUuOCAwLTM5LjgtMTQyLjktNy40LTE0Mi45LTEwMiAwLTQwLjQgMzUuMy03NS43IDk4LjYtNzUuNyAzMS40IDAgNzQuMSA5LjkgODcuNiAyOS40IDEwLjggMTQuOC0xLjQgMzYuMi0yMC45IDM2LjItMTUuMSAwLTI2LjctMTcuMy02Ni4yLTE3LjMtMjIuOSAwLTM3LjggMTAuNS0zNy44IDIzLjggMCAzNS45IDE0Mi40IDYgMTQyLjQgMTAzLjEtLjEgNDMuNy0zNy40IDc3LjEtMTA0LjEgNzcuMXptMjY2LjgtMjUyLjRjLTE2OS4zIDAtMTY5LjEgMjUyLjQgMCAyNTIuNCAxNzAuMSAwIDE2OS42LTI1Mi40IDAtMjUyLjR6bTAgMTk2LjFjLTgxLjggMC04Mi0xMzkuOCAwLTEzOS44IDgyLjUgMCA4Mi40IDEzOS44IDAgMTM5Ljh6bTQ3Ni45IDIyVjI2OC43YzAtNTMuOC02MS40LTQ1LjgtODUuNy0xMC41djEzNGMwIDQxLjMtNjMuOCA0Mi4xLTYzLjggMFYyNjguN2MwLTUyLjEtNTkuNS00Ny40LTg1LjctMTAuMXYxMzMuNmMwIDQxLjUtNjMuMyA0MS44LTYzLjMgMFYyMDhjMC00MCA2My4xLTQxLjYgNjMuMSAwdjMuNGM5LjktMTQuNCA0MS44LTM3LjMgNzguNi0zNy4zIDM1LjMgMCA1Ny43IDE2LjQgNjYuNyA0My44IDEzLjktMjEuOCA0NS44LTQzLjggODIuNi00My44IDQ0LjMgMCA3MC43IDIzLjQgNzAuNyA3Mi43djE0NS4zYy41IDE3LjMtMTMuNSAzMS40LTMxLjkgMzEuNCAzLjUuMS0zMS4zIDEuMS0zMS4zLTMxLjN6TTM5OTIgMjkxLjZjMC00Mi40LTMyLjQtMTE3LjUtMTE3LjktMTE3LjUtNzMuMiAwLTEyNy41IDU2LjMtMTI3LjUgMTI2IDAgNzcuMiA1OC4zIDEyNi40IDEzMS42IDEyNi40IDMxLjcgMCA5MS41LTExLjUgOTEuNS0zOS44IDAtMTguMy0yMS4xLTMxLjUtMzkuMy0yMi40LTQ5LjQgMjYuMi0xMTAuNSA4LjQtMTE3LjUtNDMuOGgxNDkuOGMxNi4zIDAgMjkuMS0xMy40IDI5LjMtMjguOXptLTE4MC41LTEzLjljOS43LTc0LjQgMTE1LjktNjguMyAxMjAuMSAwaC0xMjAuMXpcIl1cbn07XG52YXIgZmFGb290YmFsbEJhbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9vdGJhbGwtYmFsbCcsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjQ0ZVwiLCBcIk00ODEuNSA2MC4zYy00LjgtMTguMi0xOS4xLTMyLjUtMzcuMy0zNy40QzQyMC4zIDE2LjUgMzgzIDguOSAzMzkuNCA4TDQ5NiAxNjQuOGMtLjgtNDMuNS04LjItODAuNi0xNC41LTEwNC41em0tNDY3IDM5MS40YzQuOCAxOC4yIDE5LjEgMzIuNSAzNy4zIDM3LjQgMjMuOSA2LjQgNjEuMiAxNCAxMDQuOCAxNC45TDAgMzQ3LjJjLjggNDMuNSA4LjIgODAuNiAxNC41IDEwNC41ek00LjIgMjgzLjRMMjIwLjQgNTAwYzEzMi41LTE5LjQgMjQ4LjgtMTE4LjcgMjcxLjUtMjcxLjRMMjc1LjYgMTJDMTQzLjEgMzEuNCAyNi44IDEzMC43IDQuMiAyODMuNHptMzE3LjMtMTIzLjZjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwxMS4zIDExLjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMjguMyAyOC4zIDI4LjMgMjguM2MzLjEgMy4xIDMuMSA4LjIgMCAxMS4zbC0xMS4zIDExLjNjLTMuMSAzLjEtOC4yIDMuMS0xMS4zIDBsLTI4LjMtMjguMy0yMi42IDIyLjcgMjguMyAyOC4zYzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMEwyNDggMjc4LjZsLTIyLjYgMjIuNiAyOC4zIDI4LjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwbC0yOC4zLTI4LjMtMjguMyAyOC4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwbC0xMS4zLTExLjNjLTMuMS0zLjEtMy4xLTguMiAwLTExLjNsMjguMy0yOC4zLTI4LjMtMjguMmMtMy4xLTMuMS0zLjEtOC4yIDAtMTEuM2wxMS4zLTExLjNjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwyOC4zIDI4LjMgMjIuNi0yMi42LTI4LjMtMjguM2MtMy4xLTMuMS0zLjEtOC4yIDAtMTEuM2wxMS4zLTExLjNjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwyOC4zIDI4LjMgMjIuNi0yMi42LTI4LjMtMjguM2MtMy4xLTMuMS0zLjEtOC4yIDAtMTEuM2wxMS4zLTExLjNjMy4xLTMuMSA4LjItMy4xIDExLjMgMGwyOC4zIDI4LjMgMjguMy0yOC41elwiXVxufTtcbnZhciBmYUZvcndhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZm9yd2FyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA0ZVwiLCBcIk01MDAuNSAyMzEuNGwtMTkyLTE2MEMyODcuOSA1NC4zIDI1NiA2OC42IDI1NiA5NnYzMjBjMCAyNy40IDMxLjkgNDEuOCA1Mi41IDI0LjZsMTkyLTE2MGMxNS4zLTEyLjggMTUuMy0zNi40IDAtNDkuMnptLTI1NiAwbC0xOTItMTYwQzMxLjkgNTQuMyAwIDY4LjYgMCA5NnYzMjBjMCAyNy40IDMxLjkgNDEuOCA1Mi41IDI0LjZsMTkyLTE2MGMxNS4zLTEyLjggMTUuMy0zNi40IDAtNDkuMnpcIl1cbn07XG52YXIgZmFGcm9nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Zyb2cnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1MmVcIiwgXCJNNDQ2LjUzIDk3LjQzQzQzOS42NyA2MC4yMyA0MDcuMTkgMzIgMzY4IDMyYy0zOS4yMyAwLTcxLjcyIDI4LjI5LTc4LjU0IDY1LjU0QzEyNi43NSAxMTIuOTYtLjUgMjUwLjEyIDAgNDE2Ljk4LjExIDQ1MS45IDI5LjA4IDQ4MCA2NCA0ODBoMzA0YzguODQgMCAxNi03LjE2IDE2LTE2IDAtMTcuNjctMTQuMzMtMzItMzItMzJoLTc5LjQ5bDM1LjgtNDguMzNjMjQuMTQtMzYuMjMgMTAuMzUtODguMjgtMzMuNzEtMTA2LjYtMjMuODktOS45My01MS41NS00LjY1LTcyLjI0IDEwLjg4bC0zMi43NiAyNC41OWMtNy4wNiA1LjMxLTE3LjA5IDMuOTEtMjIuNDEtMy4xOS01LjMtNy4wOC0zLjg4LTE3LjExIDMuMTktMjIuNDFsMzQuNzgtMjYuMDljMzYuODQtMjcuNjYgODguMjgtMjcuNjIgMTI1LjEzIDAgMTAuODcgOC4xNSA0NS44NyAzOS4wNiA0MC44IDkzLjIxTDQ2OS42MiA0ODBINTYwYzguODQgMCAxNi03LjE2IDE2LTE2IDAtMTcuNjctMTQuMzMtMzItMzItMzJoLTUzLjYzbC05OC41Mi0xMDQuNjggMTU0LjQ0LTg2LjY1QTU4LjE2IDU4LjE2IDAgMCAwIDU3NiAxODkuOTRjMC0yMS40LTExLjcyLTQwLjk1LTMwLjQ4LTUxLjIzLTQwLjU2LTIyLjIyLTk4Ljk5LTQxLjI4LTk4Ljk5LTQxLjI4ek0zNjggMTM2Yy0xMy4yNiAwLTI0LTEwLjc1LTI0LTI0IDAtMTMuMjYgMTAuNzQtMjQgMjQtMjQgMTMuMjUgMCAyNCAxMC43NCAyNCAyNCAwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwiXVxufTtcbnZhciBmYUZyb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Zyb3duJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmMTE5XCIsIFwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTgwIDE2OGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bS0xNjAgMGMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6bTE3MC4yIDIxOC4yQzMxNS44IDM2Ny40IDI4Mi45IDM1MiAyNDggMzUycy02Ny44IDE1LjQtOTAuMiA0Mi4yYy0xMy41IDE2LjMtMzguMS00LjItMjQuNi0yMC41QzE2MS43IDMzOS42IDIwMy42IDMyMCAyNDggMzIwczg2LjMgMTkuNiAxMTQuNyA1My44YzEzLjYgMTYuMi0xMSAzNi43LTI0LjUgMjAuNHpcIl1cbn07XG52YXIgZmFGcm93bk9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZnJvd24tb3BlbicsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU3YVwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek0xMzYgMjA4YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyem0xODcuMyAxODMuM2MtMzEuMi05LjYtNTkuNC0xNS4zLTc1LjMtMTUuM3MtNDQuMSA1LjctNzUuMyAxNS4zYy0xMS41IDMuNS0yMi41LTYuMy0yMC41LTE4LjEgNy00MCA2MC4xLTYxLjIgOTUuOC02MS4yczg4LjggMjEuMyA5NS44IDYxLjJjMiAxMS45LTkuMSAyMS42LTIwLjUgMTguMXpNMzI4IDI0MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhRnVubmVsRG9sbGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Z1bm5lbC1kb2xsYXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2NjJcIiwgXCJNNDMzLjQ2IDE2NS45NGwxMDEuMi0xMTEuODdDNTU0LjYxIDM0LjEyIDU0MC40OCAwIDUxMi4yNiAwSDMxLjc0QzMuNTIgMC0xMC42MSAzNC4xMiA5LjM0IDU0LjA3TDE5MiAyNTZ2MTU1LjkyYzAgMTIuNTkgNS45MyAyNC40NCAxNiAzMmw3OS45OSA2MGMyMC44NiAxNS42NCA0OC40NyA2Ljk3IDU5LjIyLTEzLjU3QzMxMC44IDQ1NS4zOCAyODggNDA2LjM1IDI4OCAzNTJjMC04OS43OSA2Mi4wNS0xNjUuMTcgMTQ1LjQ2LTE4Ni4wNnpNNDgwIDE5MmMtODguMzcgMC0xNjAgNzEuNjMtMTYwIDE2MHM3MS42MyAxNjAgMTYwIDE2MCAxNjAtNzEuNjMgMTYwLTE2MC03MS42My0xNjAtMTYwLTE2MHptMTYgMjM5Ljg4VjQ0OGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di0xNi4yOWMtMTEuMjktLjU4LTIyLjI3LTQuNTItMzEuMzctMTEuMzUtMy45LTIuOTMtNC4xLTguNzctLjU3LTEyLjE0bDExLjc1LTExLjIxYzIuNzctMi42NCA2Ljg5LTIuNzYgMTAuMTMtLjczIDMuODcgMi40MiA4LjI2IDMuNzIgMTIuODIgMy43MmgyOC4xMWM2LjUgMCAxMS44LTUuOTIgMTEuOC0xMy4xOSAwLTUuOTUtMy42MS0xMS4xOS04Ljc3LTEyLjczbC00NS0xMy41Yy0xOC41OS01LjU4LTMxLjU4LTIzLjQyLTMxLjU4LTQzLjM5IDAtMjQuNTIgMTkuMDUtNDQuNDQgNDIuNjctNDUuMDdWMjU2YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djE2LjI5YzExLjI5LjU4IDIyLjI3IDQuNTEgMzEuMzcgMTEuMzUgMy45IDIuOTMgNC4xIDguNzcuNTcgMTIuMTRsLTExLjc1IDExLjIxYy0yLjc3IDIuNjQtNi44OSAyLjc2LTEwLjEzLjczLTMuODctMi40My04LjI2LTMuNzItMTIuODItMy43MmgtMjguMTFjLTYuNSAwLTExLjggNS45Mi0xMS44IDEzLjE5IDAgNS45NSAzLjYxIDExLjE5IDguNzcgMTIuNzNsNDUgMTMuNWMxOC41OSA1LjU4IDMxLjU4IDIzLjQyIDMxLjU4IDQzLjM5IDAgMjQuNTMtMTkuMDQgNDQuNDQtNDIuNjcgNDUuMDd6XCJdXG59O1xudmFyIGZhRnV0Ym9sID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2Z1dGJvbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFlM1wiLCBcIk01MDQgMjU2YzAgMTM2Ljk2Ny0xMTEuMDMzIDI0OC0yNDggMjQ4UzggMzkyLjk2NyA4IDI1NiAxMTkuMDMzIDggMjU2IDhzMjQ4IDExMS4wMzMgMjQ4IDI0OHptLTQ4IDBsLS4wMDMtLjI4Mi0yNi4wNjQgMjIuNzQxLTYyLjY3OS01OC41IDE2LjQ1NC04NC4zNTUgMzQuMzAzIDMuMDcyYy0yNC44ODktMzQuMjE2LTYwLjAwNC02MC4wODktMTAwLjcwOS03My4xNDFsMTMuNjUxIDMxLjkzOUwyNTYgMTM5bC03NC45NTMtNDEuNTI1IDEzLjY1MS0zMS45MzljLTQwLjYzMSAxMy4wMjgtNzUuNzggMzguODctMTAwLjcwOSA3My4xNDFsMzQuNTY1LTMuMDczIDE2LjE5MiA4NC4zNTUtNjIuNjc4IDU4LjUtMjYuMDY0LTIyLjc0MS0uMDAzLjI4MmMwIDQzLjAxNSAxMy40OTcgODMuOTUyIDM4LjQ3MiAxMTcuOTkxbDcuNzA0LTMzLjg5NyA4NS4xMzggMTAuNDQ3IDM2LjMwMSA3Ny44MjYtMjkuOTAyIDE3Ljc4NmM0MC4yMDIgMTMuMTIyIDg0LjI5IDEzLjE0OCAxMjQuNTcyIDBsLTI5LjkwMi0xNy43ODYgMzYuMzAxLTc3LjgyNiA4NS4xMzgtMTAuNDQ3IDcuNzA0IDMzLjg5N0M0NDIuNTAzIDMzOS45NTIgNDU2IDI5OS4wMTUgNDU2IDI1NnptLTI0OC4xMDIgNjkuNTcxbC0yOS44OTQtOTEuMzEyTDI1NiAxNzcuNzMybDc3Ljk5NiA1Ni41MjctMjkuNjIyIDkxLjMxMmgtOTYuNDc2elwiXVxufTtcbnZhciBmYUdhbWVwYWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2FtZXBhZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjExYlwiLCBcIk00ODAuMDcgOTZIMTYwYTE2MCAxNjAgMCAxIDAgMTE0LjI0IDI3Mmg5MS41MkExNjAgMTYwIDAgMSAwIDQ4MC4wNyA5NnpNMjQ4IDI2OGExMiAxMiAwIDAgMS0xMiAxMmgtNTJ2NTJhMTIgMTIgMCAwIDEtMTIgMTJoLTI0YTEyIDEyIDAgMCAxLTEyLTEydi01Mkg4NGExMiAxMiAwIDAgMS0xMi0xMnYtMjRhMTIgMTIgMCAwIDEgMTItMTJoNTJ2LTUyYTEyIDEyIDAgMCAxIDEyLTEyaDI0YTEyIDEyIDAgMCAxIDEyIDEydjUyaDUyYTEyIDEyIDAgMCAxIDEyIDEyem0yMTYgNzZhNDAgNDAgMCAxIDEgNDAtNDAgNDAgNDAgMCAwIDEtNDAgNDB6bTY0LTk2YTQwIDQwIDAgMSAxIDQwLTQwIDQwIDQwIDAgMCAxLTQwIDQwelwiXVxufTtcbnZhciBmYUdhc1B1bXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2FzLXB1bXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1MmZcIiwgXCJNMzM2IDQ0OEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgzMjBjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTE1Ny4yLTM0MC43bC04MS04MWMtNi4yLTYuMi0xNi40LTYuMi0yMi42IDBsLTExLjMgMTEuM2MtNi4yIDYuMi02LjIgMTYuNCAwIDIyLjZMNDE2IDk3LjlWMTYwYzAgMjguMSAyMC45IDUxLjMgNDggNTUuMlYzNzZjMCAxMy4yLTEwLjggMjQtMjQgMjRzLTI0LTEwLjgtMjQtMjR2LTMyYzAtNDguNi0zOS40LTg4LTg4LTg4aC04VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0SDk2QzYwLjcgMCAzMiAyOC43IDMyIDY0djM1MmgyODhWMzA0aDhjMjIuMSAwIDQwIDE3LjkgNDAgNDB2MjcuOGMwIDM3LjcgMjcgNzIgNjQuNSA3NS45IDQzIDQuMyA3OS41LTI5LjUgNzkuNS03MS43VjE1Mi42YzAtMTctNi44LTMzLjMtMTguOC00NS4zek0yNTYgMTkySDk2VjY0aDE2MHYxMjh6XCJdXG59O1xudmFyIGZhR2F2ZWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2F2ZWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwZTNcIiwgXCJNNTA0Ljk3MSAxOTkuMzYybC0yMi42MjctMjIuNjI3Yy05LjM3My05LjM3My0yNC41NjktOS4zNzMtMzMuOTQxIDBsLTUuNjU3IDUuNjU3TDMyOS42MDggNjkuMjU1bDUuNjU3LTUuNjU3YzkuMzczLTkuMzczIDkuMzczLTI0LjU2OSAwLTMzLjk0MUwzMTIuNjM4IDcuMDI5Yy05LjM3My05LjM3My0yNC41NjktOS4zNzMtMzMuOTQxIDBMMTU0LjI0NiAxMzEuNDhjLTkuMzczIDkuMzczLTkuMzczIDI0LjU2OSAwIDMzLjk0MWwyMi42MjcgMjIuNjI3YzkuMzczIDkuMzczIDI0LjU2OSA5LjM3MyAzMy45NDEgMGw1LjY1Ny01LjY1NyAzOS41OTggMzkuNTk4LTgxLjA0IDgxLjA0LTUuNjU3LTUuNjU3Yy0xMi40OTctMTIuNDk3LTMyLjc1OC0xMi40OTctNDUuMjU1IDBMOS4zNzMgNDEyLjExOGMtMTIuNDk3IDEyLjQ5Ny0xMi40OTcgMzIuNzU4IDAgNDUuMjU1bDQ1LjI1NSA0NS4yNTVjMTIuNDk3IDEyLjQ5NyAzMi43NTggMTIuNDk3IDQ1LjI1NSAwbDExNC43NDUtMTE0Ljc0NWMxMi40OTctMTIuNDk3IDEyLjQ5Ny0zMi43NTggMC00NS4yNTVsLTUuNjU3LTUuNjU3IDgxLjA0LTgxLjA0IDM5LjU5OCAzOS41OTgtNS42NTcgNS42NTdjLTkuMzczIDkuMzczLTkuMzczIDI0LjU2OSAwIDMzLjk0MWwyMi42MjcgMjIuNjI3YzkuMzczIDkuMzczIDI0LjU2OSA5LjM3MyAzMy45NDEgMGwxMjQuNDUxLTEyNC40NTFjOS4zNzItOS4zNzIgOS4zNzItMjQuNTY4IDAtMzMuOTQxelwiXVxufTtcbnZhciBmYUdlbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnZW0nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzYTVcIiwgXCJNNDg1LjUgMEw1NzYgMTYwSDQ3NC45TDQwNS43IDBoNzkuOHptLTEyOCAwbDY5LjIgMTYwSDE0OS4zTDIxOC41IDBoMTM5em0tMjY3IDBoNzkuOGwtNjkuMiAxNjBIMEw5MC41IDB6TTAgMTkyaDEwMC43bDEyMyAyNTEuN2MxLjUgMy4xLTIuNyA1LjktNSAzLjNMMCAxOTJ6bTE0OC4yIDBoMjc5LjZsLTEzNyAzMTguMmMtMSAyLjQtNC41IDIuNC01LjUgMEwxNDguMiAxOTJ6bTIwNC4xIDI1MS43bDEyMy0yNTEuN0g1NzZMMzU3LjMgNDQ2LjljLTIuMyAyLjctNi41LS4xLTUtMy4yelwiXVxufTtcbnZhciBmYUdlbmRlcmxlc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2VuZGVybGVzcycsXG4gIGljb246IFsyODgsIDUxMiwgW10sIFwiZjIyZFwiLCBcIk0xNDQgMTc2YzQ0LjEgMCA4MCAzNS45IDgwIDgwcy0zNS45IDgwLTgwIDgwLTgwLTM1LjktODAtODAgMzUuOS04MCA4MC04MG0wLTY0QzY0LjUgMTEyIDAgMTc2LjUgMCAyNTZzNjQuNSAxNDQgMTQ0IDE0NCAxNDQtNjQuNSAxNDQtMTQ0LTY0LjUtMTQ0LTE0NC0xNDR6XCJdXG59O1xudmFyIGZhR2hvc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2hvc3QnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY2ZTJcIiwgXCJNMTg2LjEuMDlDODEuMDEgMy4yNCAwIDk0LjkyIDAgMjAwLjA1djI2My45MmMwIDE0LjI2IDE3LjIzIDIxLjM5IDI3LjMxIDExLjMxbDI0LjkyLTE4LjUzYzYuNjYtNC45NSAxNi0zLjk5IDIxLjUxIDIuMjFsNDIuOTUgNDguMzVjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGw0MC43Mi00NS44NWM2LjM3LTcuMTcgMTcuNTYtNy4xNyAyMy45MiAwbDQwLjcyIDQ1Ljg1YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsNDIuOTUtNDguMzVjNS41MS02LjIgMTQuODUtNy4xNyAyMS41MS0yLjIxbDI0LjkyIDE4LjUzYzEwLjA4IDEwLjA4IDI3LjMxIDIuOTQgMjcuMzEtMTEuMzFWMTkyQzM4NCA4NCAyOTQuODMtMy4xNyAxODYuMS4wOXpNMTI4IDIyNGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMTI4IDBjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhR2lmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnaWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDZiXCIsIFwiTTMyIDQ0OGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgxNjBWMzIwSDMydjEyOHptMjU2IDMyaDE2MGMxNy43IDAgMzItMTQuMyAzMi0zMlYzMjBIMjg4djE2MHptMTkyLTMyMGgtNDIuMWM2LjItMTIuMSAxMC4xLTI1LjUgMTAuMS00MCAwLTQ4LjUtMzkuNS04OC04OC04OC00MS42IDAtNjguNSAyMS4zLTEwMyA2OC4zLTM0LjUtNDctNjEuNC02OC4zLTEwMy02OC4zLTQ4LjUgMC04OCAzOS41LTg4IDg4IDAgMTQuNSAzLjggMjcuOSAxMC4xIDQwSDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MGMwIDguOCA3LjIgMTYgMTYgMTZoNDgwYzguOCAwIDE2LTcuMiAxNi0xNnYtODBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS0zMjYuMSAwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwYzE5LjkgMCAzNC42IDMuMyA4Ni4xIDgwaC04Ni4xem0yMDYuMSAwaC04Ni4xYzUxLjQtNzYuNSA2NS43LTgwIDg2LjEtODAgMjIuMSAwIDQwIDE3LjkgNDAgNDBzLTE3LjkgNDAtNDAgNDB6XCJdXG59O1xudmFyIGZhR2lmdHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2lmdHMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3OWNcIiwgXCJNMjQwLjYgMTk0LjFjMS45LTMwLjggMTcuMy02MS4yIDQ0LTc5LjhDMjc5LjQgMTAzLjUgMjY4LjcgOTYgMjU2IDk2aC0yOS40bDMwLjctMjJjNy4yLTUuMSA4LjktMTUuMSAzLjctMjIuM2wtOS4zLTEzYy01LjEtNy4yLTE1LjEtOC45LTIyLjMtMy43bC0zMiAyMi45IDExLjUtMzAuNmMzLjEtOC4zLTEuMS0xNy41LTkuNC0yMC42bC0xNS01LjZjLTguMy0zLjEtMTcuNSAxLjEtMjAuNiA5LjRsLTE5LjkgNTMtMTkuOS01My4xQzEyMSAyLjEgMTExLjgtMi4xIDEwMy41IDFsLTE1IDUuNkM4MC4yIDkuNyA3NiAxOSA3OS4yIDI3LjJsMTEuNSAzMC42TDU4LjYgMzVjLTcuMi01LjEtMTcuMi0zLjUtMjIuMyAzLjdsLTkuMyAxM2MtNS4xIDcuMi0zLjUgMTcuMiAzLjcgMjIuM2wzMC43IDIySDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTY4LjljLTUuNS05LjUtOC45LTIwLjMtOC45LTMyVjI1NmMwLTI5LjkgMjAuOC01NSA0OC42LTYxLjl6TTIyNCA0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTYwVjM4NEgyMjR2OTZ6bTIyNCAzMmgxNjBjMTcuNyAwIDMyLTE0LjMgMzItMzJ2LTk2SDQ0OHYxMjh6bTE2MC0yODhoLTIwLjRjMi42LTcuNiA0LjQtMTUuNSA0LjQtMjMuOCAwLTM1LjUtMjctNzIuMi03Mi4xLTcyLjItNDguMSAwLTc1LjkgNDcuNy04Ny45IDc1LjMtMTIuMS0yNy42LTM5LjktNzUuMy04Ny45LTc1LjMtNDUuMSAwLTcyLjEgMzYuNy03Mi4xIDcyLjIgMCA4LjMgMS43IDE2LjIgNC40IDIzLjhIMjU2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY5NmgxOTJWMjI0aDE1LjNsLjctLjIuNy4ySDQ0OHYxMjhoMTkydi05NmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTI3MiAwYy0yLjctMS40LTUuMS0zLTcuMi00LjgtNy4zLTYuNC04LjgtMTMuOC04LjgtMTkgMC05LjcgNi40LTI0LjIgMjQuMS0yNC4yIDE4LjcgMCAzNS42IDI3LjQgNDQuNSA0OEgzMzZ6bTE5OS4yLTQuOGMtMi4xIDEuOC00LjUgMy40LTcuMiA0LjhoLTUyLjZjOC44LTIwLjMgMjUuOC00OCA0NC41LTQ4IDE3LjcgMCAyNC4xIDE0LjUgMjQuMSAyNC4yIDAgNS4yLTEuNSAxMi42LTguOCAxOXpcIl1cbn07XG52YXIgZmFHbGFzc0NoZWVycyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbGFzcy1jaGVlcnMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3OWZcIiwgXCJNNjM5LjQgNDMzLjZjLTguNC0yMC40LTMxLjgtMzAuMS01Mi4yLTIxLjZsLTIyLjEgOS4yLTM4LjctMTAxLjljNDcuOS0zNSA2NC44LTEwMC4zIDM0LjUtMTUyLjhMNDc0LjMgMTZjLTgtMTMuOS0yNS4xLTE5LjctNDAtMTMuNkwzMjAgNDkuOCAyMDUuNyAyLjRjLTE0LjktNi4yLTMyLS4zLTQwIDEzLjZMNzkuMSAxNjYuNUM0OC45IDIxOSA2NS43IDI4NC4zIDExMy42IDMxOS4yTDc0LjkgNDIxLjFsLTIyLjEtOS4yYy0yMC40LTguNS00My43IDEuMi01Mi4yIDIxLjYtMS43IDQuMS4yIDguOCA0LjMgMTAuNWwxNjIuMyA2Ny40YzQuMSAxLjcgOC43LS4yIDEwLjQtNC4zIDguNC0yMC40LTEuMi00My44LTIxLjYtNTIuM2wtMjIuMS05LjJMMTczLjMgMzQyYzQuNC41IDguOCAxLjMgMTMuMSAxLjMgNTEuNyAwIDk5LjQtMzMuMSAxMTMuNC04NS4zbDIwLjItNzUuNCAyMC4yIDc1LjRjMTQgNTIuMiA2MS43IDg1LjMgMTEzLjQgODUuMyA0LjMgMCA4LjctLjggMTMuMS0xLjNMNTA2IDQ0NS42bC0yMi4xIDkuMmMtMjAuNCA4LjUtMzAuMSAzMS45LTIxLjYgNTIuMyAxLjcgNC4xIDYuNCA2IDEwLjQgNC4zTDYzNS4xIDQ0NGM0LTEuNyA2LTYuMyA0LjMtMTAuNHpNMjc1LjkgMTYyLjFsLTExMi4xLTQ2LjUgMzYuNS02My40IDk0LjUgMzkuMi0xOC45IDcwLjd6bTg4LjIgMGwtMTguOS03MC43IDk0LjUtMzkuMiAzNi41IDYzLjQtMTEyLjEgNDYuNXpcIl1cbn07XG52YXIgZmFHbGFzc01hcnRpbmkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2xhc3MtbWFydGluaScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAwMFwiLCBcIk01MDIuMDUgNTcuNkM1MjMuMyAzNi4zNCA1MDguMjUgMCA0NzguMiAwSDMzLjhDMy43NSAwLTExLjMgMzYuMzQgOS45NSA1Ny42TDIyNCAyNzEuNjRWNDY0aC01NmMtMjIuMDkgMC00MCAxNy45MS00MCA0MCAwIDQuNDIgMy41OCA4IDggOGgyNDBjNC40MiAwIDgtMy41OCA4LTggMC0yMi4wOS0xNy45MS00MC00MC00MGgtNTZWMjcxLjY0TDUwMi4wNSA1Ny42elwiXVxufTtcbnZhciBmYUdsYXNzTWFydGluaUFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbGFzcy1tYXJ0aW5pLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU3YlwiLCBcIk01MDIuMDUgNTcuNkM1MjMuMyAzNi4zNCA1MDguMjUgMCA0NzguMiAwSDMzLjhDMy43NSAwLTExLjMgMzYuMzQgOS45NSA1Ny42TDIyNCAyNzEuNjRWNDY0aC01NmMtMjIuMDkgMC00MCAxNy45MS00MCA0MCAwIDQuNDIgMy41OCA4IDggOGgyNDBjNC40MiAwIDgtMy41OCA4LTggMC0yMi4wOS0xNy45MS00MC00MC00MGgtNTZWMjcxLjY0TDUwMi4wNSA1Ny42ek00NDMuNzcgNDhsLTQ4IDQ4SDExNi4yNGwtNDgtNDhoMzc1LjUzelwiXVxufTtcbnZhciBmYUdsYXNzV2hpc2tleSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbGFzcy13aGlza2V5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2EwXCIsIFwiTTQ4MCAzMkgzMkMxMi41IDMyLTIuNCA0OS4yLjMgNjguNWw1NiAzNTYuNWM0LjUgMzEuNSAzMS41IDU0LjkgNjMuNCA1NC45aDI3M2MzMS44IDAgNTguOS0yMy40IDYzLjQtNTQuOWw1NS42LTM1Ni41QzUxNC40IDQ5LjIgNDk5LjUgMzIgNDgwIDMyem0tMzcuNCA2NGwtMzAgMTkyaC0zMTNMNjkuNCA5NmgzNzMuMnpcIl1cbn07XG52YXIgZmFHbGFzc2VzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dsYXNzZXMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1MzBcIiwgXCJNNTc0LjEgMjgwLjM3TDUyOC43NSA5OC42NmMtNS45MS0yMy43LTIxLjU5LTQ0LjA1LTQzLTU1LjgxLTIxLjQ0LTExLjczLTQ2Ljk3LTE0LjExLTcwLjE5LTYuMzNsLTE1LjI1IDUuMDhjLTguMzkgMi43OS0xMi45MiAxMS44Ni0xMC4xMiAyMC4yNGw1LjA2IDE1LjE4YzIuNzkgOC4zOCAxMS44NSAxMi45MSAyMC4yMyAxMC4xMmwxMy4xOC00LjM5YzEwLjg3LTMuNjIgMjMtMy41NyAzMy4xNiAxLjczIDEwLjI5IDUuMzcgMTcuNTcgMTQuNTYgMjAuMzcgMjUuODJsMzguNDYgMTUzLjgyYy0yMi4xOS02LjgxLTQ5Ljc5LTEyLjQ2LTgxLjItMTIuNDYtMzQuNzcgMC03My45OCA3LjAyLTExNC44NSAyNi43NGgtNzMuMThjLTQwLjg3LTE5Ljc0LTgwLjA4LTI2Ljc1LTExNC44Ni0yNi43NS0zMS40MiAwLTU5LjAyIDUuNjUtODEuMjEgMTIuNDZsMzguNDYtMTUzLjgzYzIuNzktMTEuMjUgMTAuMDktMjAuNDUgMjAuMzgtMjUuODEgMTAuMTYtNS4zIDIyLjI4LTUuMzUgMzMuMTUtMS43M2wxMy4xNyA0LjM5YzguMzggMi43OSAxNy40NC0xLjc0IDIwLjIzLTEwLjEybDUuMDYtMTUuMThjMi44LTguMzgtMS43My0xNy40NS0xMC4xMi0yMC4yNGwtMTUuMjUtNS4wOGMtMjMuMjItNy43OC00OC43NS01LjQxLTcwLjE5IDYuMzMtMjEuNDEgMTEuNzctMzcuMDkgMzIuMTEtNDMgNTUuOEwxLjkgMjgwLjM3QTY0LjIxOCA2NC4yMTggMCAwIDAgMCAyOTUuODZ2NzAuMjVDMCA0MjkuMDEgNTEuNTggNDgwIDExNS4yIDQ4MGgzNy4xMmM2MC4yOCAwIDExMC4zNy00NS45NCAxMTQuODgtMTA1LjM3bDIuOTMtMzguNjNoMzUuNzVsMi45MyAzOC42M0MzMTMuMzEgNDM0LjA2IDM2My40IDQ4MCA0MjMuNjggNDgwaDM3LjEyYzYzLjYyIDAgMTE1LjItNTAuOTkgMTE1LjItMTEzLjg4di03MC4yNWMwLTUuMjMtLjY0LTEwLjQzLTEuOS0xNS41em0tMzcwLjcyIDg5LjQyYy0xLjk3IDI1LjkxLTI0LjQgNDYuMjEtNTEuMDYgNDYuMjFIMTE1LjJDODYuOTcgNDE2IDY0IDM5My42MiA2NCAzNjYuMTF2LTM3LjU0YzE4LjEyLTYuNDkgNDMuNDItMTIuOTIgNzIuNTgtMTIuOTIgMjMuODYgMCA0Ny4yNiA0LjMzIDY5LjkzIDEyLjkybC0zLjEzIDQxLjIyek01MTIgMzY2LjEyYzAgMjcuNTEtMjIuOTcgNDkuODgtNTEuMiA0OS44OGgtMzcuMTJjLTI2LjY3IDAtNDkuMS0yMC4zLTUxLjA2LTQ2LjIxbC0zLjEzLTQxLjIyYzIyLjY3LTguNTkgNDYuMDgtMTIuOTIgNjkuOTUtMTIuOTIgMjkuMTIgMCA1NC40MyA2LjQ0IDcyLjU1IDEyLjkzdjM3LjU0elwiXVxufTtcbnZhciBmYUdsb2JlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dsb2JlJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmMGFjXCIsIFwiTTMzNi41IDE2MEMzMjIgNzAuNyAyODcuOCA4IDI0OCA4cy03NCA2Mi43LTg4LjUgMTUyaDE3N3pNMTUyIDI1NmMwIDIyLjIgMS4yIDQzLjUgMy4zIDY0aDE4NS4zYzIuMS0yMC41IDMuMy00MS44IDMuMy02NHMtMS4yLTQzLjUtMy4zLTY0SDE1NS4zYy0yLjEgMjAuNS0zLjMgNDEuOC0zLjMgNjR6bTMyNC43LTk2Yy0yOC42LTY3LjktODYuNS0xMjAuNC0xNTgtMTQxLjYgMjQuNCAzMy44IDQxLjIgODQuNyA1MCAxNDEuNmgxMDh6TTE3Ny4yIDE4LjRDMTA1LjggMzkuNiA0Ny44IDkyLjEgMTkuMyAxNjBoMTA4YzguNy01Ni45IDI1LjUtMTA3LjggNDkuOS0xNDEuNnpNNDg3LjQgMTkySDM3Mi43YzIuMSAyMSAzLjMgNDIuNSAzLjMgNjRzLTEuMiA0My0zLjMgNjRoMTE0LjZjNS41LTIwLjUgOC42LTQxLjggOC42LTY0cy0zLjEtNDMuNS04LjUtNjR6TTEyMCAyNTZjMC0yMS41IDEuMi00MyAzLjMtNjRIOC42QzMuMiAyMTIuNSAwIDIzMy44IDAgMjU2czMuMiA0My41IDguNiA2NGgxMTQuNmMtMi0yMS0zLjItNDIuNS0zLjItNjR6bTM5LjUgOTZjMTQuNSA4OS4zIDQ4LjcgMTUyIDg4LjUgMTUyczc0LTYyLjcgODguNS0xNTJoLTE3N3ptMTU5LjMgMTQxLjZjNzEuNC0yMS4yIDEyOS40LTczLjcgMTU4LTE0MS42aC0xMDhjLTguOCA1Ni45LTI1LjYgMTA3LjgtNTAgMTQxLjZ6TTE5LjMgMzUyYzI4LjYgNjcuOSA4Ni41IDEyMC40IDE1OCAxNDEuNi0yNC40LTMzLjgtNDEuMi04NC43LTUwLTE0MS42aC0xMDh6XCJdXG59O1xudmFyIGZhR2xvYmVBZnJpY2EgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ2xvYmUtYWZyaWNhJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmNTdjXCIsIFwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bTE2MCAyMTUuNXY2LjkzYzAgNS44Ny0zLjMyIDExLjI0LTguNTcgMTMuODZsLTE1LjM5IDcuN2ExNS40ODUgMTUuNDg1IDAgMCAxLTE1LjUzLS45N2wtMTguMjEtMTIuMTRhMTUuNTIgMTUuNTIgMCAwIDAtMTMuNS0xLjgxbC0yLjY1Ljg4Yy05LjcgMy4yMy0xMy42NiAxNC43OS03Ljk5IDIzLjNsMTMuMjQgMTkuODZjMi44NyA0LjMxIDcuNzEgNi45IDEyLjg5IDYuOWg4LjIxYzguNTYgMCAxNS41IDYuOTQgMTUuNSAxNS41djExLjM0YzAgMy4zNS0xLjA5IDYuNjItMy4xIDkuM2wtMTguNzQgMjQuOThjLTEuNDIgMS45LTIuMzkgNC4xLTIuODMgNi40M2wtNC4zIDIyLjgzYy0uNjIgMy4yOS0yLjI5IDYuMjktNC43NiA4LjU2YTE1OS42MDggMTU5LjYwOCAwIDAgMC0yNSAyOS4xNmwtMTMuMDMgMTkuNTVhMjcuNzU2IDI3Ljc1NiAwIDAgMS0yMy4wOSAxMi4zNmMtMTAuNTEgMC0yMC4xMi01Ljk0LTI0LjgyLTE1LjM0YTc4LjkwMiA3OC45MDIgMCAwIDEtOC4zMy0zNS4yOVYzNjcuNWMwLTguNTYtNi45NC0xNS41LTE1LjUtMTUuNWgtMjUuODhjLTE0LjQ5IDAtMjguMzgtNS43Ni0zOC42My0xNmE1NC42NTkgNTQuNjU5IDAgMCAxLTE2LTM4LjYzdi0xNC4wNmMwLTE3LjE5IDguMS0zMy4zOCAyMS44NS00My43bDI3LjU4LTIwLjY5YTU0LjY2MyA1NC42NjMgMCAwIDEgMzIuNzgtMTAuOTNoLjg5YzguNDggMCAxNi44NSAxLjk3IDI0LjQzIDUuNzdsMTQuNzIgNy4zNmMzLjY4IDEuODQgNy45MyAyLjE0IDExLjgzLjg0bDQ3LjMxLTE1Ljc3YzYuMzMtMi4xMSAxMC42LTguMDMgMTAuNi0xNC43IDAtOC41Ni02Ljk0LTE1LjUtMTUuNS0xNS41aC0xMC4wOWMtNC4xMSAwLTguMDUtMS42My0xMC45Ni00LjU0bC02LjkyLTYuOTJhMTUuNDkzIDE1LjQ5MyAwIDAgMC0xMC45Ni00LjU0SDE5OS41Yy04LjU2IDAtMTUuNS02Ljk0LTE1LjUtMTUuNXYtNC40YzAtNy4xMSA0Ljg0LTEzLjMxIDExLjc0LTE1LjA0bDE0LjQ1LTMuNjFjMy43NC0uOTQgNy0zLjIzIDkuMTQtNi40NGw4LjA4LTEyLjExYzIuODctNC4zMSA3LjcxLTYuOSAxMi44OS02LjloMjQuMjFjOC41NiAwIDE1LjUtNi45NCAxNS41LTE1LjV2LTIxLjdDMzU5LjIzIDcxLjYzIDQyMi44NiAxMzEuMDIgNDQxLjkzIDIwOEg0MjMuNWMtOC41NiAwLTE1LjUgNi45NC0xNS41IDE1LjV6XCJdXG59O1xudmFyIGZhR2xvYmVBbWVyaWNhcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbG9iZS1hbWVyaWNhcycsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU3ZFwiLCBcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em04Mi4yOSAzNTcuNmMtMy45IDMuODgtNy45OSA3Ljk1LTExLjMxIDExLjI4LTIuOTkgMy01LjEgNi43LTYuMTcgMTAuNzEtMS41MSA1LjY2LTIuNzMgMTEuMzgtNC43NyAxNi44N2wtMTcuMzkgNDYuODVjLTEzLjc2IDMtMjggNC42OS00Mi42NSA0LjY5di0yNy4zOGMxLjY5LTEyLjYyLTcuNjQtMzYuMjYtMjIuNjMtNTEuMjUtNi02LTkuMzctMTQuMTQtOS4zNy0yMi42M3YtMzIuMDFjMC0xMS42NC02LjI3LTIyLjM0LTE2LjQ2LTI3Ljk3LTE0LjM3LTcuOTUtMzQuODEtMTkuMDYtNDguODEtMjYuMTEtMTEuNDgtNS43OC0yMi4xLTEzLjE0LTMxLjY1LTIxLjc1bC0uOC0uNzJhMTE0Ljc5MiAxMTQuNzkyIDAgMCAxLTE4LjA2LTIwLjc0Yy05LjM4LTEzLjc3LTI0LjY2LTM2LjQyLTM0LjU5LTUxLjE0IDIwLjQ3LTQ1LjUgNTcuMzYtODIuMDQgMTAzLjItMTAxLjg5bDI0LjAxIDEyLjAxQzIwMy40OCA4OS43NCAyMTYgODIuMDEgMjE2IDcwLjExdi0xMS4zYzcuOTktMS4yOSAxNi4xMi0yLjExIDI0LjM5LTIuNDJsMjguMyAyOC4zYzYuMjUgNi4yNSA2LjI1IDE2LjM4IDAgMjIuNjNMMjY0IDExMmwtMTAuMzQgMTAuMzRjLTMuMTIgMy4xMi0zLjEyIDguMTkgMCAxMS4zMWw0LjY5IDQuNjljMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC04IDhhOC4wMDggOC4wMDggMCAwIDEtNS42NiAyLjM0aC04Ljk5Yy0yLjA4IDAtNC4wOC44MS01LjU4IDIuMjdsLTkuOTIgOS42NWE4LjAwOCA4LjAwOCAwIDAgMC0xLjU4IDkuMzFsMTUuNTkgMzEuMTljMi42NiA1LjMyLTEuMjEgMTEuNTgtNy4xNSAxMS41OGgtNS42NGMtMS45MyAwLTMuNzktLjctNS4yNC0xLjk2bC05LjI4LTguMDZhMTYuMDE3IDE2LjAxNyAwIDAgMC0xNS41NS0zLjFsLTMxLjE3IDEwLjM5YTExLjk1IDExLjk1IDAgMCAwLTguMTcgMTEuMzRjMCA0LjUzIDIuNTYgOC42NiA2LjYxIDEwLjY5bDExLjA4IDUuNTRjOS40MSA0LjcxIDE5Ljc5IDcuMTYgMzAuMzEgNy4xNnMyMi41OSAyNy4yOSAzMiAzMmg2Ni43NWM4LjQ5IDAgMTYuNjIgMy4zNyAyMi42MyA5LjM3bDEzLjY5IDEzLjY5YTMwLjUwMyAzMC41MDMgMCAwIDEgOC45MyAyMS41NyA0Ni41MzYgNDYuNTM2IDAgMCAxLTEzLjcyIDMyLjk4ek00MTcgMjc0LjI1Yy01Ljc5LTEuNDUtMTAuODQtNS0xNC4xNS05Ljk3bC0xNy45OC0yNi45N2EyMy45NyAyMy45NyAwIDAgMSAwLTI2LjYybDE5LjU5LTI5LjM4YzIuMzItMy40NyA1LjUtNi4yOSA5LjI0LTguMTVsMTIuOTgtNi40OUM0NDAuMiAxOTMuNTkgNDQ4IDIyMy44NyA0NDggMjU2YzAgOC42Ny0uNzQgMTcuMTYtMS44MiAyNS41NEw0MTcgMjc0LjI1elwiXVxufTtcbnZhciBmYUdsb2JlQXNpYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbG9iZS1hc2lhJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmNTdlXCIsIFwiTTI0OCA4QzExMS4wMyA4IDAgMTE5LjAzIDAgMjU2czExMS4wMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzIDI0OC0yNDhTMzg0Ljk3IDggMjQ4IDh6bS0xMS4zNCAyNDAuMjNjLTIuODkgNC44Mi04LjEgNy43Ny0xMy43MiA3Ljc3aC0uMzFjLTQuMjQgMC04LjMxIDEuNjktMTEuMzEgNC42OWwtNS42NiA1LjY2Yy0zLjEyIDMuMTItMy4xMiA4LjE5IDAgMTEuMzFsNS42NiA1LjY2YzMgMyA0LjY5IDcuMDcgNC42OSAxMS4zMVYzMDRjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTYuMTFjLTYuMDYgMC0xMS42LTMuNDItMTQuMzEtOC44NWwtMjIuNjItNDUuMjNjLTIuNDQtNC44OC04Ljk1LTUuOTQtMTIuODEtMi4wOGwtMTkuNDcgMTkuNDZjLTMgMy03LjA3IDQuNjktMTEuMzEgNC42OUg1MC44MUM0OS4xMiAyNzcuNTUgNDggMjY2LjkyIDQ4IDI1NmMwLTExMC4yOCA4OS43Mi0yMDAgMjAwLTIwMCAyMS41MSAwIDQyLjIgMy41MSA2MS42MyA5LjgybC01MC4xNiAzOC41M2MtNS4xMSAzLjQxLTQuNjMgMTEuMDYuODYgMTMuODFsMTAuODMgNS40MWM1LjQyIDIuNzEgOC44NCA4LjI1IDguODQgMTQuMzFWMjE2YzAgNC40Mi0zLjU4IDgtOCA4aC0zLjA2Yy0zLjAzIDAtNS44LTEuNzEtNy4xNS00LjQyLTEuNTYtMy4xMi01Ljk2LTMuMjktNy43Ni0uM2wtMTcuMzcgMjguOTV6TTQwOCAzNTguNDNjMCA0LjI0LTEuNjkgOC4zMS00LjY5IDExLjMxbC05LjU3IDkuNTdjLTMgMy03LjA3IDQuNjktMTEuMzEgNC42OWgtMTUuMTZjLTQuMjQgMC04LjMxLTEuNjktMTEuMzEtNC42OWwtMTMuMDEtMTMuMDFhMjYuNzY3IDI2Ljc2NyAwIDAgMC0yNS40Mi03LjA0bC0yMS4yNyA1LjMyYy0xLjI3LjMyLTIuNTcuNDgtMy44OC40OGgtMTAuMzRjLTQuMjQgMC04LjMxLTEuNjktMTEuMzEtNC42OWwtMTEuOTEtMTEuOTFhOC4wMDggOC4wMDggMCAwIDEtMi4zNC01LjY2di0xMC4yYzAtMy4yNyAxLjk5LTYuMjEgNS4wMy03LjQzbDM5LjM0LTE1Ljc0YzEuOTgtLjc5IDMuODYtMS44MiA1LjU5LTMuMDVsMjMuNzEtMTYuODlhNy45NzggNy45NzggMCAwIDEgNC42NC0xLjQ4aDEyLjA5YzMuMjMgMCA2LjE1IDEuOTQgNy4zOSA0LjkzbDUuMzUgMTIuODVhNCA0IDAgMCAwIDMuNjkgMi40NmgzLjhjMS43OCAwIDMuMzUtMS4xOCAzLjg0LTIuODhsNC4yLTE0LjQ3Yy41LTEuNzEgMi4wNi0yLjg4IDMuODQtMi44OGg2LjA2YzIuMjEgMCA0IDEuNzkgNCA0djEyLjkzYzAgMi4xMi44NCA0LjE2IDIuMzQgNS42NmwxMS45MSAxMS45MWMzIDMgNC42OSA3LjA3IDQuNjkgMTEuMzF2MjQuNnpcIl1cbn07XG52YXIgZmFHbG9iZUV1cm9wZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdnbG9iZS1ldXJvcGUnLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY3YTJcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMjAwIDI0OGMwIDIyLjUtMy45IDQ0LjItMTAuOCA2NC40aC0yMC4zYy00LjMgMC04LjQtMS43LTExLjQtNC44bC0zMi0zMi42Yy00LjUtNC42LTQuNS0xMi4xLjEtMTYuN2wxMi41LTEyLjV2LTguN2MwLTMtMS4yLTUuOS0zLjMtOGwtOS40LTkuNGMtMi4xLTIuMS01LTMuMy04LTMuM2gtMTZjLTYuMiAwLTExLjMtNS4xLTExLjMtMTEuMyAwLTMgMS4yLTUuOSAzLjMtOGw5LjQtOS40YzIuMS0yLjEgNS0zLjMgOC0zLjNoMzJjNi4yIDAgMTEuMy01LjEgMTEuMy0xMS4zdi05LjRjMC02LjItNS4xLTExLjMtMTEuMy0xMS4zaC0zNi43Yy04LjggMC0xNiA3LjItMTYgMTZ2NC41YzAgNi45LTQuNCAxMy0xMC45IDE1LjJsLTMxLjYgMTAuNWMtMy4zIDEuMS01LjUgNC4xLTUuNSA3LjZ2Mi4yYzAgNC40LTMuNiA4LTggOGgtMTZjLTQuNCAwLTgtMy42LTgtOHMtMy42LTgtOC04SDI0N2MtMyAwLTUuOCAxLjctNy4yIDQuNGwtOS40IDE4LjdjLTIuNyA1LjQtOC4yIDguOC0xNC4zIDguOEgxOTRjLTguOCAwLTE2LTcuMi0xNi0xNlYxOTljMC00LjIgMS43LTguMyA0LjctMTEuM2wyMC4xLTIwLjFjNC42LTQuNiA3LjItMTAuOSA3LjItMTcuNSAwLTMuNCAyLjItNi41IDUuNS03LjZsNDAtMTMuM2MxLjctLjYgMy4yLTEuNSA0LjQtMi43bDI2LjgtMjYuOGMyLjEtMi4xIDMuMy01IDMuMy04IDAtNi4yLTUuMS0xMS4zLTExLjMtMTEuM0gyNThsLTE2IDE2djhjMCA0LjQtMy42IDgtOCA4aC0xNmMtNC40IDAtOC0zLjYtOC04di0yMGMwLTIuNSAxLjItNC45IDMuMi02LjRsMjguOS0yMS43YzEuOS0uMSAzLjgtLjMgNS43LS4zQzM1OC4zIDU2IDQ0OCAxNDUuNyA0NDggMjU2ek0xMzAuMSAxNDkuMWMwLTMgMS4yLTUuOSAzLjMtOGwyNS40LTI1LjRjMi4xLTIuMSA1LTMuMyA4LTMuMyA2LjIgMCAxMS4zIDUuMSAxMS4zIDExLjN2MTZjMCAzLTEuMiA1LjktMy4zIDhsLTkuNCA5LjRjLTIuMSAyLjEtNSAzLjMtOCAzLjNoLTE2Yy02LjIgMC0xMS4zLTUuMS0xMS4zLTExLjN6bTEyOCAzMDYuNHYtNy4xYzAtOC44LTcuMi0xNi0xNi0xNmgtMjAuMmMtMTAuOCAwLTI2LjctNS4zLTM1LjQtMTEuOGwtMjIuMi0xNi43Yy0xMS41LTguNi0xOC4yLTIyLjEtMTguMi0zNi40di0yMy45YzAtMTYgOC40LTMwLjggMjIuMS0zOWw0Mi45LTI1LjdjNy4xLTQuMiAxNS4yLTYuNSAyMy40LTYuNWgzMS4yYzEwLjkgMCAyMS40IDMuOSAyOS42IDEwLjlsNDMuMiAzNy4xaDE4LjNjOC41IDAgMTYuNiAzLjQgMjIuNiA5LjRsMTcuMyAxNy4zYzMuNCAzLjQgOC4xIDUuMyAxMi45IDUuM0g0MjNjLTMyLjQgNTguOS05My44IDk5LjUtMTY0LjkgMTAzLjF6XCJdXG59O1xudmFyIGZhR29sZkJhbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ29sZi1iYWxsJyxcbiAgaWNvbjogWzQxNiwgNTEyLCBbXSwgXCJmNDUwXCIsIFwiTTk2IDQxNmgyMjRjMCAxNy43LTE0LjMgMzItMzIgMzJoLTE2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTIwYzAtMTcuNy0xNC4zLTMyLTMyLTMyaC0xNmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ6bTMyMC0yMDhjMCA3NC4yLTM5IDEzOS4yLTk3LjUgMTc2aC0yMjFDMzkgMzQ3LjIgMCAyODIuMiAwIDIwOCAwIDkzLjEgOTMuMSAwIDIwOCAwczIwOCA5My4xIDIwOCAyMDh6bS0xODAuMSA0My45YzE4LjMgMCAzMy4xLTE0LjggMzMuMS0zMy4xIDAtMTQuNC05LjMtMjYuMy0yMi4xLTMwLjkgOS42IDI2LjgtMTUuNiA1MS4zLTQxLjkgNDEuOSA0LjYgMTIuOCAxNi41IDIyLjEgMzAuOSAyMi4xem00OS4xIDQ2LjljMC0xNC40LTkuMy0yNi4zLTIyLjEtMzAuOSA5LjYgMjYuOC0xNS42IDUxLjMtNDEuOSA0MS45IDQuNiAxMi44IDE2LjUgMjIuMSAzMC45IDIyLjEgMTguMyAwIDMzLjEtMTQuOSAzMy4xLTMzLjF6bTY0LTY0YzAtMTQuNC05LjMtMjYuMy0yMi4xLTMwLjkgOS42IDI2LjgtMTUuNiA1MS4zLTQxLjkgNDEuOSA0LjYgMTIuOCAxNi41IDIyLjEgMzAuOSAyMi4xIDE4LjMgMCAzMy4xLTE0LjkgMzMuMS0zMy4xelwiXVxufTtcbnZhciBmYUdvcHVyYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ29wdXJhbScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY2NFwiLCBcIk00OTYgMzUyaC0xNlYyNDBjMC04LjgtNy4yLTE2LTE2LTE2aC0xNnYtODBjMC04LjgtNy4yLTE2LTE2LTE2aC0xNlYxNmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnYxNmgtNjRWMTZjMC04LjgtNy4yLTE2LTE2LTE2cy0xNiA3LjItMTYgMTZ2MTZoLTY0VjE2YzAtOC44LTcuMi0xNi0xNi0xNnMtMTYgNy4yLTE2IDE2djE2aC02NFYxNmMwLTguOC03LjItMTYtMTYtMTZTOTYgNy4yIDk2IDE2djExMkg4MGMtOC44IDAtMTYgNy4yLTE2IDE2djgwSDQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2MTEySDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTI4YzAgOC44IDcuMiAxNiAxNiAxNmg4MFYzNTJoMzJWMjI0aDMydi05NmgzMnY5NmgtMzJ2MTI4aC0zMnYxNjBoODB2LTgwYzAtOC44IDcuMi0xNiAxNi0xNmg2NGM4LjggMCAxNiA3LjIgMTYgMTZ2ODBoODBWMzUyaC0zMlYyMjRoLTMydi05NmgzMnY5NmgzMnYxMjhoMzJ2MTYwaDgwYzguOCAwIDE2LTcuMiAxNi0xNlYzNjhjMC04LjgtNy4yLTE2LTE2LTE2ek0yMzIgMTc2YzAtOC44IDcuMi0xNiAxNi0xNmgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2NDhoLTQ4em01NiAxNzZoLTY0di02NGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2elwiXVxufTtcbnZhciBmYUdyYWR1YXRpb25DYXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JhZHVhdGlvbi1jYXAnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYxOWRcIiwgXCJNNjIyLjM0IDE1My4yTDM0My40IDY3LjVjLTE1LjItNC42Ny0zMS42LTQuNjctNDYuNzkgMEwxNy42NiAxNTMuMmMtMjMuNTQgNy4yMy0yMy41NCAzOC4zNiAwIDQ1LjU5bDQ4LjYzIDE0Ljk0Yy0xMC42NyAxMy4xOS0xNy4yMyAyOS4yOC0xNy44OCA0Ni45QzM4Ljc4IDI2Ni4xNSAzMiAyNzYuMTEgMzIgMjg4YzAgMTAuNzggNS42OCAxOS44NSAxMy44NiAyNS42NUwyMC4zMyA0MjguNTNDMTguMTEgNDM4LjUyIDI1LjcxIDQ0OCAzNS45NCA0NDhoNTYuMTFjMTAuMjQgMCAxNy44NC05LjQ4IDE1LjYyLTE5LjQ3TDgyLjE0IDMxMy42NUM5MC4zMiAzMDcuODUgOTYgMjk4Ljc4IDk2IDI4OGMwLTExLjU3LTYuNDctMjEuMjUtMTUuNjYtMjYuODcuNzYtMTUuMDIgOC40NC0yOC4zIDIwLjY5LTM2LjcyTDI5Ni42IDI4NC41YzkuMDYgMi43OCAyNi40NCA2LjI1IDQ2Ljc5IDBsMjc4Ljk1LTg1LjdjMjMuNTUtNy4yNCAyMy41NS0zOC4zNiAwLTQ1LjZ6TTM1Mi43OSAzMTUuMDljLTI4LjUzIDguNzYtNTIuODQgMy45Mi02NS41OSAwbC0xNDUuMDItNDQuNTVMMTI4IDM4NGMwIDM1LjM1IDg1Ljk2IDY0IDE5MiA2NHMxOTItMjguNjUgMTkyLTY0bC0xNC4xOC0xMTMuNDctMTQ1LjAzIDQ0LjU2elwiXVxufTtcbnZhciBmYUdyZWF0ZXJUaGFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyZWF0ZXItdGhhbicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjUzMVwiLCBcIk0zNjUuNTIgMjA5Ljg1TDU5LjIyIDY3LjAxYy0xNi4wNi03LjQ5LTM1LjE1LS41NC00Mi42NCAxNS41MkwzLjAxIDExMS42MWMtNy40OSAxNi4wNi0uNTQgMzUuMTUgMTUuNTIgNDIuNjRMMjM2Ljk2IDI1Ni4xIDE4LjQ5IDM1Ny45OUMyLjQ3IDM2NS40Ni00LjQ2IDM4NC41IDMuMDEgNDAwLjUybDEzLjUyIDI5QzI0IDQ0NS41NCA0My4wNCA0NTIuNDcgNTkuMDYgNDQ1bDMwNi40Ny0xNDIuOTFhMzIuMDAzIDMyLjAwMyAwIDAgMCAxOC40OC0yOXYtMzQuMjNjLS4wMS0xMi40NS03LjIxLTIzLjc2LTE4LjQ5LTI5LjAxelwiXVxufTtcbnZhciBmYUdyZWF0ZXJUaGFuRXF1YWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JlYXRlci10aGFuLWVxdWFsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTMyXCIsIFwiTTU1LjIyIDEwNy42OWwxNzUuNTYgNjguMDktMTc1LjQ0IDY4LjA1Yy0xOC4zOSA2LjAzLTI3Ljg4IDI0LjM5LTIxLjIgNDFsMTIuMDkgMzAuMDhjNi42OCAxNi42MSAyNi45OSAyNS4xOSA0NS4zOCAxOS4xNUwzOTMuMDIgMjE0LjJjMTMuNzctNC41MiAyMi45OC0xNi42MSAyMi45OC0zMC4xN3YtMTUuOTZjMC0xMy41Ni05LjIxLTI1LjY1LTIyLjk4LTMwLjE3TDkxLjMgMTcuOTJjLTE4LjI5LTYtMzguNTEgMi41My00NS4xNSAxOS4wNkwzNC4xMiA2Ni45Yy02LjY0IDE2LjUzIDIuODEgMzQuNzkgMjEuMSA0MC43OXpNNDI0IDQwMEgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQwMGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00OGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYUdyaW1hY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JpbWFjZScsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU3ZlwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek0xNDQgNDAwaC04Yy0xNy43IDAtMzItMTQuMy0zMi0zMnYtOGg0MHY0MHptMC01NmgtNDB2LThjMC0xNy43IDE0LjMtMzIgMzItMzJoOHY0MHptLTgtMTM2YzAtMTcuNyAxNC4zLTMyIDMyLTMyczMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyem03MiAxOTJoLTQ4di00MGg0OHY0MHptMC01NmgtNDh2LTQwaDQ4djQwem02NCA1NmgtNDh2LTQwaDQ4djQwem0wLTU2aC00OHYtNDBoNDh2NDB6bTY0IDU2aC00OHYtNDBoNDh2NDB6bTAtNTZoLTQ4di00MGg0OHY0MHptLTgtMTA0Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptNjQgMTI4YzAgMTcuNy0xNC4zIDMyLTMyIDMyaC04di00MGg0MHY4em0wLTI0aC00MHYtNDBoOGMxNy43IDAgMzIgMTQuMyAzMiAzMnY4elwiXVxufTtcbnZhciBmYUdyaW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3JpbicsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU4MFwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em04MCAxNjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0tMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem04MCAyNTZjLTYwLjYgMC0xMzQuNS0zOC4zLTE0My44LTkzLjMtMi0xMS44IDkuMy0yMS42IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS4zLTMuNyAyMi42IDYuMSAyMC43IDE3LjktOS4zIDU1LTgzLjIgOTMuMy0xNDMuOCA5My4zelwiXVxufTtcbnZhciBmYUdyaW5BbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3Jpbi1hbHQnLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1ODFcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptNjMuNyAxMjguN2M3LjYtMTEuNCAyNC43LTExLjcgMzIuNyAwIDEyLjQgMTguNCAxNS4xIDM2LjkgMTUuNyA1NS4zLS41IDE4LjQtMy4zIDM2LjktMTUuNyA1NS4zLTcuNiAxMS40LTI0LjcgMTEuNy0zMi43IDAtMTIuNC0xOC40LTE1LjEtMzYuOS0xNS43LTU1LjMuNS0xOC40IDMuMy0zNi45IDE1LjctNTUuM3ptLTE2MCAwYzcuNi0xMS40IDI0LjctMTEuNyAzMi43IDAgMTIuNCAxOC40IDE1LjEgMzYuOSAxNS43IDU1LjMtLjUgMTguNC0zLjMgMzYuOS0xNS43IDU1LjMtNy42IDExLjQtMjQuNyAxMS43LTMyLjcgMC0xMi40LTE4LjQtMTUuMS0zNi45LTE1LjctNTUuMy41LTE4LjQgMy4zLTM2LjkgMTUuNy01NS4zek0yNDggNDMyYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuOCA5LjMtMjEuNiAyMC43LTE3LjlDMTU1LjEgMzMwLjUgMjAwIDMzNiAyNDggMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNC0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3pcIl1cbn07XG52YXIgZmFHcmluQmVhbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdncmluLWJlYW0nLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1ODJcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptODAgMTQ0YzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDExLjktMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMSA3LjMtMTUuNiA0LTE0LjktNC41IDMuMS00Mi4xIDMyLTcxLjQgNTUuOC03MS40em0tMTYwIDBjMjMuOCAwIDUyLjcgMjkuMyA1NiA3MS40LjcgOC42LTEwLjggMTEuOS0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4yIDcuNC0xNS42IDQtMTQuOS00LjUgMy4xLTQyLjEgMzItNzEuNCA1NS44LTcxLjR6bTgwIDI4MGMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjkgOS40LTIxLjYgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjQtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6XCJdXG59O1xudmFyIGZhR3JpbkJlYW1Td2VhdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdncmluLWJlYW0tc3dlYXQnLFxuICBpY29uOiBbNTA0LCA1MTIsIFtdLCBcImY1ODNcIiwgXCJNNDU2IDEyOGMyNi41IDAgNDgtMjEgNDgtNDcgMC0yMC0yOC41LTYwLjQtNDEuNi03Ny44LTMuMi00LjMtOS42LTQuMy0xMi44IDBDNDM2LjUgMjAuNiA0MDggNjEgNDA4IDgxYzAgMjYgMjEuNSA0NyA0OCA0N3ptMCAzMmMtNDQuMSAwLTgwLTM1LjQtODAtNzkgMC00LjQuMy0xNC4yIDguMS0zMi4yQzM0NSAyMy4xIDI5OC4zIDggMjQ4IDggMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OGMwLTM1LjEtNy40LTY4LjQtMjAuNS05OC42LTYuMyAxLjUtMTIuNyAyLjYtMTkuNSAyLjZ6bS0xMjgtOGMyMy44IDAgNTIuNyAyOS4zIDU2IDcxLjQuNyA4LjYtMTAuOCAxMi0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4xIDcuNC0xNS42IDQtMTQuOS00LjUgMy4xLTQyLjEgMzItNzEuNCA1NS44LTcxLjR6bS0xNjAgMGMyMy44IDAgNTIuNyAyOS4zIDU2IDcxLjQuNyA4LjYtMTAuOCAxMi0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4yIDcuNC0xNS42IDQtMTQuOS00LjUgMy4xLTQyLjEgMzItNzEuNCA1NS44LTcxLjR6bTgwIDI4MGMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjggOS4zLTIxLjYgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjUtMy43IDIyLjYgNi4yIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6XCJdXG59O1xudmFyIGZhR3JpbkhlYXJ0cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdncmluLWhlYXJ0cycsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU4NFwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek05MC40IDE4My42YzYuNy0xNy42IDI2LjctMjYuNyA0NC45LTIxLjlsNy4xIDEuOSAyLTcuMWM1LTE4LjEgMjIuOC0zMC45IDQxLjUtMjcuOSAyMS40IDMuNCAzNC40IDI0LjIgMjguOCA0NC41TDE5NS4zIDI0M2MtMS4yIDQuNS01LjkgNy4yLTEwLjUgNmwtNzAuMi0xOC4yYy0yMC40LTUuNC0zMS45LTI3LTI0LjItNDcuMnpNMjQ4IDQzMmMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjggOS4yLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjQtMy42IDIyLjYgNi4xIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6bTEzMy40LTIwMS4zbC03MC4yIDE4LjJjLTQuNSAxLjItOS4yLTEuNS0xMC41LTZMMjgxLjMgMTczYy01LjYtMjAuMyA3LjQtNDEuMSAyOC44LTQ0LjUgMTguNi0zIDM2LjQgOS44IDQxLjUgMjcuOWwyIDcuMSA3LjEtMS45YzE4LjItNC43IDM4LjIgNC4zIDQ0LjkgMjEuOSA3LjcgMjAuMy0zLjggNDEuOS0yNC4yIDQ3LjJ6XCJdXG59O1xudmFyIGZhR3JpblNxdWludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdncmluLXNxdWludCcsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU4NVwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0zMy44IDE4OS43bDgwLTQ4YzExLjYtNi45IDI0IDcuNyAxNS40IDE4TDM0My42IDIwOGwzMy42IDQwLjNjOC43IDEwLjQtMy45IDI0LjgtMTUuNCAxOGwtODAtNDhjLTcuNy00LjctNy43LTE1LjkgMC0yMC42em0tMTYzLTMwYy04LjYtMTAuMyAzLjgtMjQuOSAxNS40LTE4bDgwIDQ4YzcuOCA0LjcgNy44IDE1LjkgMCAyMC42bC04MCA0OGMtMTEuNSA2LjgtMjQtNy42LTE1LjQtMThsMzMuNi00MC4zLTMzLjYtNDAuM3pNMjQ4IDQzMmMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjkgOS40LTIxLjYgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjUtMy43IDIyLjYgNi4yIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6XCJdXG59O1xudmFyIGZhR3JpblNxdWludFRlYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaW4tc3F1aW50LXRlYXJzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTg2XCIsIFwiTTQwOS42IDExMS45YzIyLjYtMy4yIDczLjUtMTIgODguMy0yNi44IDE5LjItMTkuMiAxOC45LTUwLjYtLjctNzAuMlM0NDYtNSA0MjYuOSAxNC4yYy0xNC44IDE0LjgtMjMuNSA2NS43LTI2LjggODguMy0uOCA1LjUgMy45IDEwLjIgOS41IDkuNHpNMTAyLjQgNDAwLjFjLTIyLjYgMy4yLTczLjUgMTItODguMyAyNi44LTE5LjEgMTkuMS0xOC44IDUwLjYuOCA3MC4yczUxIDE5LjkgNzAuMi43YzE0LjgtMTQuOCAyMy41LTY1LjcgMjYuOC04OC4zLjgtNS41LTMuOS0xMC4yLTkuNS05LjR6bTMxMS43LTI1Ni41Yy0zMyAzLjktNDguNi0yNS4xLTQ1LjctNDUuNyAzLjQtMjQgNy40LTQyLjEgMTEuNS01Ni41QzI4NS4xLTEzLjQgMTYxLjgtLjUgODAuNiA4MC42LS41IDE2MS43LTEzLjQgMjg1IDQxLjQgMzc5LjljMTQuNC00LjEgMzIuNC04IDU2LjUtMTEuNSAzMy4yLTMuOSA0OC42IDI1LjIgNDUuNyA0NS43LTMuNCAyNC03LjQgNDIuMS0xMS41IDU2LjUgOTQuOCA1NC44IDIxOC4xIDQxLjkgMjk5LjMtMzkuMnM5NC0yMDQuNCAzOS4yLTI5OS4zYy0xNC40IDQuMS0zMi41IDgtNTYuNSAxMS41ek0yNTUuNyAxMDZjMy4zLTEzLjIgMjIuNC0xMS41IDIzLjYgMS44bDQuOCA1Mi4zIDUyLjMgNC44YzEzLjQgMS4yIDE0LjkgMjAuMyAxLjggMjMuNmwtOTAuNSAyMi42Yy04LjkgMi4yLTE2LjctNS45LTE0LjUtMTQuNWwyMi41LTkwLjZ6bS05MC45IDIzMC4zTDE2MCAyODRsLTUyLjMtNC44Yy0xMy40LTEuMi0xNC45LTIwLjMtMS44LTIzLjZsOTAuNS0yMi42YzguOC0yLjIgMTYuNyA1LjggMTQuNSAxNC41TDE4OC4zIDMzOGMtMy4xIDEzLjItMjIuMiAxMS43LTIzLjUtMS43em0yMTUuNyA0NC4yYy0yOS4zIDI5LjMtNzUuNyA1MC40LTExNi43IDUwLjQtMTguOSAwLTM2LjYtNC41LTUxLTE0LjctOS44LTYuOS04LjctMjEuOCAyLTI3LjIgMjguMy0xNC42IDYzLjktNDIuNCA5Ny44LTc2LjNzNjEuNy02OS42IDc2LjMtOTcuOGM1LjQtMTAuNSAyMC4yLTExLjkgMjcuMy0yIDMyLjMgNDUuMyA3LjEgMTI0LjctMzUuNyAxNjcuNnpcIl1cbn07XG52YXIgZmFHcmluU3RhcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3Jpbi1zdGFycycsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU4N1wiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4ek05NC42IDE2OC45bDM0LjktNSAxNS41LTMxLjZjMi45LTUuOCAxMS01LjggMTMuOSAwbDE1LjUgMzEuNiAzNC45IDVjNi4yIDEgOC45IDguNiA0LjMgMTMuMmwtMjUuNCAyNC42IDYgMzQuOWMxIDYuMi01LjMgMTEtMTEgNy45TDE1MiAyMzMuM2wtMzEuMyAxNi4zYy01LjcgMy4xLTEyLTEuNy0xMS03LjlsNi0zNC45LTI1LjQtMjQuNmMtNC42LTQuNy0xLjktMTIuMyA0LjMtMTMuM3pNMjQ4IDQzMmMtNjAuNiAwLTEzNC41LTM4LjMtMTQzLjgtOTMuMy0yLTExLjggOS4zLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjUtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS05LjMgNTUtODMuMiA5My4zLTE0My44IDkzLjN6bTE1Ny43LTI0OS45bC0yNS40IDI0LjYgNiAzNC45YzEgNi4yLTUuMyAxMS0xMSA3LjlMMzQ0IDIzMy4zbC0zMS4zIDE2LjNjLTUuNyAzLjEtMTItMS43LTExLTcuOWw2LTM0LjktMjUuNC0yNC42Yy00LjUtNC42LTEuOS0xMi4yIDQuMy0xMy4ybDM0LjktNSAxNS41LTMxLjZjMi45LTUuOCAxMS01LjggMTMuOSAwbDE1LjUgMzEuNiAzNC45IDVjNi4zLjkgOSA4LjUgNC40IDEzLjF6XCJdXG59O1xudmFyIGZhR3JpblRlYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaW4tdGVhcnMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1ODhcIiwgXCJNMTAyLjQgMjU2LjFjLTIyLjYgMy4yLTczLjUgMTItODguMyAyNi44LTE5LjEgMTkuMS0xOC44IDUwLjYuOCA3MC4yczUxIDE5LjkgNzAuMi43YzE0LjgtMTQuOCAyMy41LTY1LjcgMjYuOC04OC4zLjgtNS41LTMuOS0xMC4yLTkuNS05LjR6bTUyMy40IDI2LjhjLTE0LjgtMTQuOC02NS43LTIzLjUtODguMy0yNi44LTUuNS0uOC0xMC4zIDMuOS05LjUgOS41IDMuMiAyMi42IDEyIDczLjUgMjYuOCA4OC4zIDE5LjIgMTkuMiA1MC42IDE4LjkgNzAuMi0uN3MyMC01MS4yLjgtNzAuM3ptLTEyOS40LTEyLjhjLTMuOC0yNi42IDE5LjEtNDkuNSA0NS43LTQ1LjcgOC45IDEuMyAxNi44IDIuNyAyNC4zIDQuMUM1NTIuNyAxMDQuNSA0NDcuNyA4IDMyMCA4Uzg3LjMgMTA0LjUgNzMuNiAyMjguNWM3LjUtMS40IDE1LjQtMi44IDI0LjMtNC4xIDMzLjItMy45IDQ4LjYgMjUuMyA0NS43IDQ1LjctMTEuOCA4Mi4zLTI5LjkgMTAwLjQtMzUuOCAxMDYuNC0uOS45LTIgMS42LTMgMi41IDQyLjcgNzQuNiAxMjMgMTI1IDIxNS4yIDEyNXMxNzIuNS01MC40IDIxNS4yLTEyNS4xYy0xLS45LTIuMS0xLjUtMy0yLjUtNS45LTUuOS0yNC0yNC0zNS44LTEwNi4zek00MDAgMTUyYzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDEyLTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptLTE2MCAwYzIzLjggMCA1Mi43IDI5LjMgNTYgNzEuNC43IDguNi0xMC44IDEyLTE0LjkgNC41bC05LjUtMTdjLTcuNy0xMy43LTE5LjItMjEuNi0zMS41LTIxLjZzLTIzLjggNy45LTMxLjUgMjEuNmwtOS41IDE3Yy00LjIgNy40LTE1LjYgNC0xNC45LTQuNSAzLjEtNDIuMSAzMi03MS40IDU1LjgtNzEuNHptODAgMjgwYy02MC42IDAtMTM0LjUtMzguMy0xNDMuOC05My4zLTItMTEuNyA5LjItMjEuNiAyMC43LTE3LjlDMjI3LjEgMzMwLjUgMjcyIDMzNiAzMjAgMzM2czkyLjktNS41IDEyMy4xLTE1LjJjMTEuNC0zLjcgMjIuNiA2LjEgMjAuNyAxNy45LTkuMyA1NS04My4yIDkzLjMtMTQzLjggOTMuM3pcIl1cbn07XG52YXIgZmFHcmluVG9uZ3VlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaW4tdG9uZ3VlJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmNTg5XCIsIFwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2YzAgMTA2LjMgNjcgMTk2LjcgMTYxIDIzMi01LjYtMTIuMi05LTI1LjctOS00MHYtNDUuNWMtMjQuNy0xNi4yLTQzLjUtMzguMS00Ny44LTYzLjgtMi0xMS44IDkuMy0yMS41IDIwLjctMTcuOUMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS40LTMuNiAyMi42IDYuMSAyMC43IDE3LjktNC4zIDI1LjctMjMuMSA0Ny42LTQ3LjggNjMuOFY0NDhjMCAxNC4zLTMuNCAyNy44LTkgNDAgOTQtMzUuMyAxNjEtMTI1LjcgMTYxLTIzMkM0OTYgMTE5IDM4NSA4IDI0OCA4em0tODAgMjMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0tMzQuOSAxMzQuNmMtMTQuNC02LjUtMzEuMSAyLjItMzQuNiAxNy42bC0xLjggNy44Yy0yLjEgOS4yLTE1LjIgOS4yLTE3LjMgMGwtMS44LTcuOGMtMy41LTE1LjQtMjAuMi0yNC4xLTM0LjYtMTcuNi0uOS40LjMtLjItMTguOSA5LjR2NjNjMCAzNS4yIDI4IDY0LjUgNjMuMSA2NC45IDM1LjcuNSA2NC45LTI4LjQgNjQuOS02NHYtNjRjLTE5LjUtOS42LTE4LjItOC45LTE5LTkuM3pcIl1cbn07XG52YXIgZmFHcmluVG9uZ3VlU3F1aW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaW4tdG9uZ3VlLXNxdWludCcsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU4YVwiLCBcIk0yOTMuMSAzNzQuNmMtMTQuNC02LjUtMzEuMSAyLjItMzQuNiAxNy42bC0xLjggNy44Yy0yLjEgOS4yLTE1LjIgOS4yLTE3LjMgMGwtMS44LTcuOGMtMy41LTE1LjQtMjAuMi0yNC4xLTM0LjYtMTcuNi0uOS40LjMtLjItMTguOSA5LjR2NjNjMCAzNS4yIDI4IDY0LjUgNjMuMSA2NC45IDM1LjcuNSA2NC45LTI4LjQgNjQuOS02NHYtNjRjLTE5LjUtOS42LTE4LjItOC45LTE5LTkuM3pNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZjMCAxMDYuMyA2NyAxOTYuNyAxNjEgMjMyLTUuNi0xMi4yLTktMjUuNy05LTQwdi00NS41Yy0yNC43LTE2LjItNDMuNS0zOC4xLTQ3LjgtNjMuOC0yLTExLjggOS4yLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjQtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS00LjMgMjUuNy0yMy4xIDQ3LjYtNDcuOCA2My44VjQ0OGMwIDE0LjMtMy40IDI3LjgtOSA0MCA5NC0zNS4zIDE2MS0xMjUuNyAxNjEtMjMyQzQ5NiAxMTkgMzg1IDggMjQ4IDh6bS0zMy44IDIxMC4zbC04MCA0OGMtMTEuNSA2LjgtMjQtNy42LTE1LjQtMThsMzMuNi00MC4zLTMzLjYtNDAuM2MtOC42LTEwLjMgMy44LTI0LjkgMTUuNC0xOGw4MCA0OGM3LjcgNC43IDcuNyAxNS45IDAgMjAuNnptMTYzIDMwYzguNyAxMC40LTMuOSAyNC44LTE1LjQgMThsLTgwLTQ4Yy03LjgtNC43LTcuOC0xNS45IDAtMjAuNmw4MC00OGMxMS43LTYuOSAyMy45IDcuNyAxNS40IDE4TDM0My42IDIwOGwzMy42IDQwLjN6XCJdXG59O1xudmFyIGZhR3JpblRvbmd1ZVdpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnZ3Jpbi10b25ndWUtd2luaycsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU4YlwiLCBcIk0zNDQgMTg0Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHpNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZjMCAxMDYuMyA2NyAxOTYuNyAxNjEgMjMyLTUuNi0xMi4yLTktMjUuNy05LTQwdi00NS41Yy0yNC43LTE2LjItNDMuNS0zOC4xLTQ3LjgtNjMuOC0yLTExLjggOS4zLTIxLjUgMjAuNy0xNy45QzE1NS4xIDMzMC41IDIwMCAzMzYgMjQ4IDMzNnM5Mi45LTUuNSAxMjMuMS0xNS4yYzExLjUtMy43IDIyLjYgNi4xIDIwLjcgMTcuOS00LjMgMjUuNy0yMy4xIDQ3LjYtNDcuOCA2My44VjQ0OGMwIDE0LjMtMy40IDI3LjgtOSA0MCA5NC0zNS4zIDE2MS0xMjUuNyAxNjEtMjMyQzQ5NiAxMTkgMzg1IDggMjQ4IDh6bS01NiAyMjVsLTkuNS04LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwxMTIgMjMzYy04LjUgNy40LTIxLjYuMy0xOS44LTEwLjggNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFTMjA4IDE5NyAyMTIgMjIyLjJjMS42IDExLjEtMTEuNiAxOC4yLTIwIDEwLjh6bTE1MiAzOWMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjR6bS01MC45IDEwMi42Yy0xNC40LTYuNS0zMS4xIDIuMi0zNC42IDE3LjZsLTEuOCA3LjhjLTIuMSA5LjItMTUuMiA5LjItMTcuMyAwbC0xLjgtNy44Yy0zLjUtMTUuNC0yMC4yLTI0LjEtMzQuNi0xNy42LS45LjQuMy0uMi0xOC45IDkuNHY2M2MwIDM1LjIgMjggNjQuNSA2My4xIDY0LjkgMzUuNy41IDY0LjktMjguNCA2NC45LTY0di02NGMtMTkuNS05LjYtMTguMi04LjktMTktOS4zelwiXVxufTtcbnZhciBmYUdyaW5XaW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaW4td2luaycsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU4Y1wiLCBcIk0wIDI1NmMwIDEzNyAxMTEgMjQ4IDI0OCAyNDhzMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4IDAgMTE5IDAgMjU2em0yMDAtNDhjMCAxNy43LTE0LjMgMzItMzIgMzJzLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyem0xNjggMjVsLTkuNS04LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwyODggMjMzYy04LjMgNy40LTIxLjYuNC0xOS44LTEwLjggNC0yNS4yIDM0LjItNDIuMSA1OS45LTQyLjFTMzg0IDE5NyAzODggMjIyLjJjMS42IDExLTExLjUgMTguMi0yMCAxMC44em0tMjQzLjEgODcuOEMxNTUuMSAzMzAuNSAyMDAgMzM2IDI0OCAzMzZzOTIuOS01LjUgMTIzLjEtMTUuMmMxMS4zLTMuNyAyMi42IDYgMjAuNyAxNy45LTkuMiA1NS04My4yIDkzLjMtMTQzLjggOTMuM3MtMTM0LjUtMzguMy0xNDMuOC05My4zYy0yLTExLjkgOS4zLTIxLjYgMjAuNy0xNy45elwiXVxufTtcbnZhciBmYUdyaXBIb3Jpem9udGFsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAtaG9yaXpvbnRhbCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjU4ZFwiLCBcIk05NiAyODhIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0xNjAgMGgtNjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0xNjAgMGgtNjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek05NiA5NkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTE2MCAwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTE2MCAwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhR3JpcExpbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2dyaXAtbGluZXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3YTRcIiwgXCJNNDk2IDI4OEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0ODBjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTAtMTI4SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4MGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFHcmlwTGluZXNWZXJ0aWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdncmlwLWxpbmVzLXZlcnRpY2FsJyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbXSwgXCJmN2E1XCIsIFwiTTk2IDQ5NlYxNmMwLTguOC03LjItMTYtMTYtMTZINDhjLTguOCAwLTE2IDcuMi0xNiAxNnY0ODBjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnptMTI4IDBWMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4MGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2elwiXVxufTtcbnZhciBmYUdyaXBWZXJ0aWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdncmlwLXZlcnRpY2FsJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmNThlXCIsIFwiTTk2IDMySDMyQzE0LjMzIDMyIDAgNDYuMzMgMCA2NHY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMCAxNjBIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0wIDE2MEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTI4OCAzMmgtNjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2NjRjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTAgMTYwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6bTAgMTYwaC02NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhR3VpdGFyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2d1aXRhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdhNlwiLCBcIk01MDIuNjMgMzlMNDczIDkuMzdhMzIgMzIgMCAwIDAtNDUuMjYgMEwzODEuNDYgNTUuN2EzNS4xNCAzNS4xNCAwIDAgMC04LjUzIDEzLjc5TDM2MC43NyAxMDZsLTc2LjI2IDc2LjI2Yy0xMi4xNi04Ljc2LTI1LjUtMTUuNzQtNDAuMS0xOS4xNC0zMy40NS03Ljc4LTY3LS44OC04OS44OCAyMmE4Mi40NSA4Mi40NSAwIDAgMC0yMC4yNCAzMy40N2MtNiAxOC41Ni0yMy4yMSAzMi42OS00Mi4xNSAzNC40Ni0yMy43IDIuMjctNDUuNzMgMTEuNDUtNjIuNjEgMjguNDRDLTE2LjExIDMyNy03LjkgNDA5IDQ3LjU4IDQ2NC40NVMxODUgNTI4IDIzMC41NiA0ODIuNTJjMTctMTYuODggMjYuMTYtMzguOSAyOC40NS02Mi43MSAxLjc2LTE4Ljg1IDE1Ljg5LTM2LjEzIDM0LjQzLTQyLjE0YTgyLjYgODIuNiAwIDAgMCAzMy40OC0yMC4yNWMyMi44Ny0yMi44OCAyOS43NC01Ni4zNiAyMi04OS43NS0zLjM5LTE0LjY0LTEwLjM3LTI4LTE5LjE2LTQwLjJMNDA2IDE1MS4yM2wzNi40OC0xMi4xNmEzNS4xNCAzNS4xNCAwIDAgMCAxMy43OS04LjUzbDQ2LjMzLTQ2LjMyYTMyIDMyIDAgMCAwIC4wMy00NS4yMnpNMjA4IDM1MmE0OCA0OCAwIDEgMSA0OC00OCA0OCA0OCAwIDAgMS00OCA0OHpcIl1cbn07XG52YXIgZmFIU3F1YXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2gtc3F1YXJlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMGZkXCIsIFwiTTQ0OCA4MHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFY4MGMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDM1MmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4em0tMTEyIDQ4aC0zMmMtOC44MzcgMC0xNiA3LjE2My0xNiAxNnY4MEgxNjB2LTgwYzAtOC44MzctNy4xNjMtMTYtMTYtMTZoLTMyYy04LjgzNyAwLTE2IDcuMTYzLTE2IDE2djIyNGMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDMyYzguODM3IDAgMTYtNy4xNjMgMTYtMTZ2LTgwaDEyOHY4MGMwIDguODM3IDcuMTYzIDE2IDE2IDE2aDMyYzguODM3IDAgMTYtNy4xNjMgMTYtMTZWMTQ0YzAtOC44MzctNy4xNjMtMTYtMTYtMTZ6XCJdXG59O1xudmFyIGZhSGFtYnVyZ2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbWJ1cmdlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjgwNVwiLCBcIk00NjQgMjU2SDQ4YTQ4IDQ4IDAgMCAwIDAgOTZoNDE2YTQ4IDQ4IDAgMCAwIDAtOTZ6bTE2IDEyOEgzMmExNiAxNiAwIDAgMC0xNiAxNnYxNmE2NCA2NCAwIDAgMCA2NCA2NGgzNTJhNjQgNjQgMCAwIDAgNjQtNjR2LTE2YTE2IDE2IDAgMCAwLTE2LTE2ek01OC42NCAyMjRoMzk0LjcyYzM0LjU3IDAgNTQuNjItNDMuOSAzNC44Mi03NS44OEM0NDggODMuMiAzNTkuNTUgMzIuMSAyNTYgMzJjLTEwMy41NC4xLTE5MiA1MS4yLTIzMi4xOCAxMTYuMTFDNCAxODAuMDkgMjQuMDcgMjI0IDU4LjY0IDIyNHpNMzg0IDExMmExNiAxNiAwIDEgMS0xNiAxNiAxNiAxNiAwIDAgMSAxNi0xNnpNMjU2IDgwYTE2IDE2IDAgMSAxLTE2IDE2IDE2IDE2IDAgMCAxIDE2LTE2em0tMTI4IDMyYTE2IDE2IDAgMSAxLTE2IDE2IDE2IDE2IDAgMCAxIDE2LTE2elwiXVxufTtcbnZhciBmYUhhbW1lciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW1tZXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY2ZTNcIiwgXCJNNTcxLjMxIDE5My45NGwtMjIuNjMtMjIuNjNjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTExLjMxIDExLjMxLTI4LjktMjguOWM1LjYzLTIxLjMxLjM2LTQ0LjktMTYuMzUtNjEuNjFsLTQ1LjI1LTQ1LjI1Yy02Mi40OC02Mi40OC0xNjMuNzktNjIuNDgtMjI2LjI4IDBsOTAuNTEgNDUuMjV2MTguNzVjMCAxNi45NyA2Ljc0IDMzLjI1IDE4Ljc1IDQ1LjI1bDQ5LjE0IDQ5LjE0YzE2LjcxIDE2LjcxIDQwLjMgMjEuOTggNjEuNjEgMTYuMzVsMjguOSAyOC45LTExLjMxIDExLjMxYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYzIDIyLjYzYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsOTAuNTEtOTAuNTFjNi4yMy02LjI0IDYuMjMtMTYuMzctLjAyLTIyLjYyem0tMjg2LjcyLTE1LjJjLTMuNy0zLjctNi44NC03Ljc5LTkuODUtMTEuOTVMMTkuNjQgNDA0Ljk2Yy0yNS41NyAyMy44OC0yNi4yNiA2NC4xOS0xLjUzIDg4LjkzczY1LjA1IDI0LjA1IDg4LjkzLTEuNTNsMjM4LjEzLTI1NS4wN2MtMy45Ni0yLjkxLTcuOS01Ljg3LTExLjQ0LTkuNDFsLTQ5LjE0LTQ5LjE0elwiXVxufTtcbnZhciBmYUhhbXNhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbXNhJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjY1XCIsIFwiTTUwOS4zNCAzMDcuMjVDNTA0LjI4IDI5NS41NiA0OTIuNzUgMjg4IDQ4MCAyODhoLTY0VjgwYzAtMjItMTgtNDAtNDAtNDBzLTQwIDE4LTQwIDQwdjEzNGMwIDUuNTItNC40OCAxMC0xMCAxMGgtMjBjLTUuNTIgMC0xMC00LjQ4LTEwLTEwVjQwYzAtMjItMTgtNDAtNDAtNDBzLTQwIDE4LTQwIDQwdjE3NGMwIDUuNTItNC40OCAxMC0xMCAxMGgtMjBjLTUuNTIgMC0xMC00LjQ4LTEwLTEwVjgwYzAtMjItMTgtNDAtNDAtNDBTOTYgNTggOTYgODB2MjA4SDMyYy0xMi43NSAwLTI0LjI4IDcuNTYtMjkuMzQgMTkuMjVhMzEuOTY2IDMxLjk2NiAwIDAgMCA1Ljk0IDM0LjU4bDEwMi42OSAxMTAuMDNDMTQ2Ljk3IDQ5MC4wOCAxOTkuNjkgNTEyIDI1NiA1MTJzMTA5LjAzLTIxLjkyIDE0NC43Mi02MC4xNEw1MDMuNCAzNDEuODNhMzEuOTY2IDMxLjk2NiAwIDAgMCA1Ljk0LTM0LjU4ek0yNTYgNDE2Yy01My4wMiAwLTk2LTY0LTk2LTY0czQyLjk4LTY0IDk2LTY0IDk2IDY0IDk2IDY0LTQyLjk4IDY0LTk2IDY0em0wLTk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYUhhbmRIb2xkaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtaG9sZGluZycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjRiZFwiLCBcIk01NjUuMyAzMjguMWMtMTEuOC0xMC43LTMwLjItMTAtNDIuNiAwTDQzMC4zIDQwMmMtMTEuMyA5LjEtMjUuNCAxNC00MCAxNEgyNzJjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTZoNzguM2MxNS45IDAgMzAuNy0xMC45IDMzLjMtMjYuNiAzLjMtMjAtMTIuMS0zNy40LTMxLjYtMzcuNEgxOTJjLTI3IDAtNTMuMSA5LjMtNzQuMSAyNi4zTDcxLjQgMzg0SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2OTZjMCA4LjggNy4yIDE2IDE2IDE2aDM1Ni44YzE0LjUgMCAyOC42LTQuOSA0MC0xNEw1NjQgMzc3YzE1LjItMTIuMSAxNi40LTM1LjMgMS4zLTQ4Ljl6XCJdXG59O1xudmFyIGZhSGFuZEhvbGRpbmdIZWFydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctaGVhcnQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0YmVcIiwgXCJNMjc1LjMgMjUwLjVjNyA3LjQgMTguNCA3LjQgMjUuNSAwbDEwOC45LTExNC4yYzMxLjYtMzMuMiAyOS44LTg4LjItNS42LTExOC44LTMwLjgtMjYuNy03Ni43LTIxLjktMTA0LjkgNy43TDI4OCAzNi45bC0xMS4xLTExLjZDMjQ4LjctNC40IDIwMi44LTkuMiAxNzIgMTcuNWMtMzUuMyAzMC42LTM3LjIgODUuNi01LjYgMTE4LjhsMTA4LjkgMTE0LjJ6bTI5MCA3Ny42Yy0xMS44LTEwLjctMzAuMi0xMC00Mi42IDBMNDMwLjMgNDAyYy0xMS4zIDkuMS0yNS40IDE0LTQwIDE0SDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmg3OC4zYzE1LjkgMCAzMC43LTEwLjkgMzMuMy0yNi42IDMuMy0yMC0xMi4xLTM3LjQtMzEuNi0zNy40SDE5MmMtMjcgMC01My4xIDkuMy03NC4xIDI2LjNMNzEuNCAzODRIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZoMzU2LjhjMTQuNSAwIDI4LjYtNC45IDQwLTE0TDU2NCAzNzdjMTUuMi0xMi4xIDE2LjQtMzUuMyAxLjMtNDguOXpcIl1cbn07XG52YXIgZmFIYW5kSG9sZGluZ1VzZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLWhvbGRpbmctdXNkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNGMwXCIsIFwiTTI3MS4wNiwxNDQuM2w1NC4yNywxNC4zYTguNTksOC41OSwwLDAsMSw2LjYzLDguMWMwLDQuNi00LjA5LDguNC05LjEyLDguNGgtMzUuNmEzMCwzMCwwLDAsMS0xMS4xOS0yLjJjLTUuMjQtMi4yLTExLjI4LTEuNy0xNS4zLDJsLTE5LDE3LjVhMTEuNjgsMTEuNjgsMCwwLDAtMi4yNSwyLjY2LDExLjQyLDExLjQyLDAsMCwwLDMuODgsMTUuNzQsODMuNzcsODMuNzcsMCwwLDAsMzQuNTEsMTEuNVYyNDBjMCw4LjgsNy44MywxNiwxNy4zNywxNmgxNy4zN2M5LjU1LDAsMTcuMzgtNy4yLDE3LjM4LTE2VjIyMi40YzMyLjkzLTMuNiw1Ny44NC0zMSw1My41LTYzLTMuMTUtMjMtMjIuNDYtNDEuMy00Ni41Ni00Ny43TDI4Mi42OCw5Ny40YTguNTksOC41OSwwLDAsMS02LjYzLTguMWMwLTQuNiw0LjA5LTguNCw5LjEyLTguNGgzNS42QTMwLDMwLDAsMCwxLDMzMiw4My4xYzUuMjMsMi4yLDExLjI4LDEuNywxNS4zLTJsMTktMTcuNUExMS4zMSwxMS4zMSwwLDAsMCwzNjguNDcsNjFhMTEuNDMsMTEuNDMsMCwwLDAtMy44NC0xNS43OCw4My44Miw4My44MiwwLDAsMC0zNC41Mi0xMS41VjE2YzAtOC44LTcuODItMTYtMTcuMzctMTZIMjk1LjM3QzI4NS44MiwwLDI3OCw3LjIsMjc4LDE2VjMzLjZjLTMyLjg5LDMuNi01Ny44NSwzMS01My41MSw2M0MyMjcuNjMsMTE5LjYsMjQ3LDEzNy45LDI3MS4wNiwxNDQuM1pNNTY1LjI3LDMyOC4xYy0xMS44LTEwLjctMzAuMi0xMC00Mi42LDBMNDMwLjI3LDQwMmE2My42NCw2My42NCwwLDAsMS00MCwxNEgyNzJhMTYsMTYsMCwwLDEsMC0zMmg3OC4yOWMxNS45LDAsMzAuNzEtMTAuOSwzMy4yNS0yNi42YTMxLjIsMzEuMiwwLDAsMCwuNDYtNS40NkEzMiwzMiwwLDAsMCwzNTIsMzIwSDE5MmExMTcuNjYsMTE3LjY2LDAsMCwwLTc0LjEsMjYuMjlMNzEuNCwzODRIMTZBMTYsMTYsMCwwLDAsMCw0MDB2OTZhMTYsMTYsMCwwLDAsMTYsMTZIMzcyLjc3YTY0LDY0LDAsMCwwLDQwLTE0TDU2NCwzNzdhMzIsMzIsMCwwLDAsMS4yOC00OC45WlwiXVxufTtcbnZhciBmYUhhbmRMaXphcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1saXphcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyNThcIiwgXCJNMzg0IDQ4MGgxOTJWMzYzLjc3OGE5NS45OTggOTUuOTk4IDAgMCAwLTE0LjgzMy01MS4yNjNMMzk4LjEyNyA1NC4zNjhBNDggNDggMCAwIDAgMzU3LjU0NCAzMkgyNEMxMC43NDUgMzIgMCA0Mi43NDUgMCA1NnYxNmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZoMjI5Ljk4MWMxMi44NDQgMCAyMS41NTYgMTMuMDY3IDE2LjYxNSAyNC45MjNsLTIxLjQxIDUxLjM4NUEzMiAzMiAwIDAgMSAyNTEuNjQ4IDIyNEgxMjhjLTM1LjM0NiAwLTY0IDI4LjY1NC02NCA2NHY4YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxNDcuNDA2YTQ3Ljk5NSA0Ny45OTUgMCAwIDEgMjUuNjkyIDcuNDU1bDExMS43NDggNzAuODExQTI0LjAwMSAyNC4wMDEgMCAwIDEgMzg0IDQxOC41MzlWNDgwelwiXVxufTtcbnZhciBmYUhhbmRNaWRkbGVGaW5nZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1taWRkbGUtZmluZ2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmODA2XCIsIFwiTTQ3OS45MyAzMTcuMTJhMzcuMzMgMzcuMzMgMCAwIDAtMjguMjgtMzYuMTlMNDE2IDI3MnYtNDkuNTljMC0xMS40NC05LjY5LTIxLjI5LTIzLjE1LTIzLjU0bC0zOC40LTYuNEMzMzYuNjMgMTg5LjUgMzIwIDIwMC44NiAzMjAgMjE2djMyYTggOCAwIDAgMS0xNiAwVjUwYzAtMjYuMjgtMjAuMjUtNDkuMi00Ni41Mi01MEE0OCA0OCAwIDAgMCAyMDggNDh2MjAwYTggOCAwIDAgMS0xNiAwdi0zMmMwLTE1LjE1LTE2LjYzLTI2LjUxLTM0LjQ1LTIzLjU0bC0zMC42OCA1LjEyYy0xOCAzLTMwLjg3IDE2LjEyLTMwLjg3IDMxLjM4VjM3NmE4IDggMCAwIDEtMTYgMHYtNzZsLTI3LjM2IDE1QTM3LjM0IDM3LjM0IDAgMCAwIDMyIDM0OC40djczLjQ3YTM3LjMxIDM3LjMxIDAgMCAwIDEwLjkzIDI2LjM5bDMwLjkzIDMwLjkzQTExMiAxMTIgMCAwIDAgMTUzLjA1IDUxMmgyMTVBMTEyIDExMiAwIDAgMCA0ODAgNDAwelwiXVxufTtcbnZhciBmYUhhbmRQYXBlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBhcGVyJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjU2XCIsIFwiTTQwOC43ODEgMTI4LjAwN0MzODYuMzU2IDEyNy41NzggMzY4IDE0Ni4zNiAzNjggMTY4Ljc5VjI1NmgtOFY3OS43OWMwLTIyLjQzLTE4LjM1Ni00MS4yMTItNDAuNzgxLTQwLjc4M0MyOTcuNDg4IDM5LjQyMyAyODAgNTcuMTY5IDI4MCA3OXYxNzdoLThWNDAuNzlDMjcyIDE4LjM2IDI1My42NDQtLjQyMiAyMzEuMjE5LjAwNyAyMDkuNDg4LjQyMyAxOTIgMTguMTY5IDE5MiA0MHYyMTZoLThWODAuNzljMC0yMi40My0xOC4zNTYtNDEuMjEyLTQwLjc4MS00MC43ODNDMTIxLjQ4OCA0MC40MjMgMTA0IDU4LjE2OSAxMDQgODB2MjM1Ljk5MmwtMzEuNjQ4LTQzLjUxOWMtMTIuOTkzLTE3Ljg2Ni0zOC4wMDktMjEuODE3LTU1Ljg3Ny04LjgyMy0xNy44NjUgMTIuOTk0LTIxLjgxNSAzOC4wMS04LjgyMiA1NS44NzdsMTI1LjYwMSAxNzIuNzA1QTQ4IDQ4IDAgMCAwIDE3Mi4wNzMgNTEyaDE5Ny41OWMyMi4yNzQgMCA0MS42MjItMTUuMzI0IDQ2LjcyNC0zNy4wMDZsMjYuNTA4LTExMi42NmExOTIuMDExIDE5Mi4wMTEgMCAwIDAgNS4xMDQtNDMuOTc1VjE2OGMuMDAxLTIxLjgzMS0xNy40ODctMzkuNTc3LTM5LjIxOC0zOS45OTN6XCJdXG59O1xudmFyIGZhSGFuZFBlYWNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcGVhY2UnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyNWJcIiwgXCJNNDA4IDIxNmMtMjIuMDkyIDAtNDAgMTcuOTA5LTQwIDQwaC04di0zMmMwLTIyLjA5MS0xNy45MDgtNDAtNDAtNDBzLTQwIDE3LjkwOS00MCA0MHYzMmgtOFY0OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4cy00OCAyMS40OS00OCA0OHYyMDhoLTEzLjU3Mkw5Mi42ODggNzguNDQ5QzgyLjk5NCA1My43NzQgNTUuMTM0IDQxLjYzIDMwLjQ2MSA1MS4zMjQgNS43ODcgNjEuMDE3LTYuMzU2IDg4Ljg3NyAzLjMzNyAxMTMuNTUxbDc0Ljc2NSAxOTAuMzQyLTMxLjA5IDI0Ljg3MmMtMTUuMzgxIDEyLjMwNi0xOS41MTUgMzMuOTc4LTkuNzQxIDUxLjA4MWw2NCAxMTJBMzkuOTk4IDM5Ljk5OCAwIDAgMCAxMzYgNTEyaDI0MGMxOC41NjIgMCAzNC42ODYtMTIuNzcgMzguOTM3LTMwLjgzOGwzMi0xMzZBMzkuOTcgMzkuOTcgMCAwIDAgNDQ4IDMzNnYtODBjMC0yMi4wOTEtMTcuOTA4LTQwLTQwLTQwelwiXVxufTtcbnZhciBmYUhhbmRQb2ludERvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1wb2ludC1kb3duJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMGE3XCIsIFwiTTkxLjgyNiA0NjcuMlYzMTcuOTY2Yy04LjI0OCA1Ljg0MS0xNi41NTggMTAuNTctMjQuOTE4IDE0LjE1M0MzNS4wOTggMzQ1Ljc1Mi0uMDE0IDMyMi4yMjIgMCAyODhjLjAwOC0xOC42MTYgMTAuODk3LTMyLjIwMyAyOS4wOTItNDAgMjguMjg2LTEyLjEyMiA2NC4zMjktNzguNjQ4IDc3LjMyMy0xMDcuNTM0IDcuOTU2LTE3Ljg1NyAyNS40NzktMjguNDUzIDQzLjg0NS0yOC40NjRsLjAwMS0uMDAyaDE3MS41MjZjMTEuODEyIDAgMjEuODk3IDguNTk2IDIzLjcwMyAyMC4yNjkgNy4yNSA0Ni44MzcgMzguNDgzIDYxLjc2IDM4LjMxNSAxMjMuNzMxLS4wMDcgMi43MjQuMTk1IDEzLjI1NC4xOTUgMTYgMCA1MC42NTQtMjIuMTIyIDgxLjU3NC03MS4yNjMgNzIuNi05LjI5NyAxOC41OTctMzkuNDg2IDMwLjczOC02Mi4zMTUgMTYuNDUtMjEuMTc3IDI0LjY0NS01My44OTYgMjIuNjM5LTcwLjk0NCA2LjI5OVY0NjcuMmMwIDI0LjE1LTIwLjIwMSA0NC44LTQzLjgyNiA0NC44LTIzLjI4MyAwLTQzLjgyNi0yMS4zNS00My44MjYtNDQuOHpNMTEyIDcyVjI0YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxOTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djQ4YzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgxMzZjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHptMjEyLTI0YzAtMTEuMDQ2LTguOTU0LTIwLTIwLTIwcy0yMCA4Ljk1NC0yMCAyMCA4Ljk1NCAyMCAyMCAyMCAyMC04Ljk1NCAyMC0yMHpcIl1cbn07XG52YXIgZmFIYW5kUG9pbnRMZWZ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcG9pbnQtbGVmdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBhNVwiLCBcIk00NC44IDE1NS44MjZoMTQ5LjIzNGMtNS44NDEtOC4yNDgtMTAuNTctMTYuNTU4LTE0LjE1My0yNC45MThDMTY2LjI0OCA5OS4wOTggMTg5Ljc3OCA2My45ODYgMjI0IDY0YzE4LjYxNi4wMDggMzIuMjAzIDEwLjg5NyA0MCAyOS4wOTIgMTIuMTIyIDI4LjI4NiA3OC42NDggNjQuMzI5IDEwNy41MzQgNzcuMzIzIDE3Ljg1NyA3Ljk1NiAyOC40NTMgMjUuNDc5IDI4LjQ2NCA0My44NDVsLjAwMi4wMDF2MTcxLjUyNmMwIDExLjgxMi04LjU5NiAyMS44OTctMjAuMjY5IDIzLjcwMy00Ni44MzcgNy4yNS02MS43NiAzOC40ODMtMTIzLjczMSAzOC4zMTUtMi43MjQtLjAwNy0xMy4yNTQuMTk1LTE2IC4xOTUtNTAuNjU0IDAtODEuNTc0LTIyLjEyMi03Mi42LTcxLjI2My0xOC41OTctOS4yOTctMzAuNzM4LTM5LjQ4Ni0xNi40NS02Mi4zMTUtMjQuNjQ1LTIxLjE3Ny0yMi42MzktNTMuODk2LTYuMjk5LTcwLjk0NEg0NC44Yy0yNC4xNSAwLTQ0LjgtMjAuMjAxLTQ0LjgtNDMuODI2IDAtMjMuMjgzIDIxLjM1LTQzLjgyNiA0NC44LTQzLjgyNnpNNDQwIDE3Nmg0OGMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2MTkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNGgtNDhjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFYyMDBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0em0yNCAyMTJjMTEuMDQ2IDAgMjAtOC45NTQgMjAtMjBzLTguOTU0LTIwLTIwLTIwLTIwIDguOTU0LTIwIDIwIDguOTU0IDIwIDIwIDIwelwiXVxufTtcbnZhciBmYUhhbmRQb2ludFJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcG9pbnQtcmlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYTRcIiwgXCJNNTEyIDE5OS42NTJjMCAyMy42MjUtMjAuNjUgNDMuODI2LTQ0LjggNDMuODI2aC05OS44NTFjMTYuMzQgMTcuMDQ4IDE4LjM0NiA0OS43NjYtNi4yOTkgNzAuOTQ0IDE0LjI4OCAyMi44MjkgMi4xNDcgNTMuMDE3LTE2LjQ1IDYyLjMxNUMzNTMuNTc0IDQyNS44NzggMzIyLjY1NCA0NDggMjcyIDQ0OGMtMi43NDYgMC0xMy4yNzYtLjIwMy0xNi0uMTk1LTYxLjk3MS4xNjgtNzYuODk0LTMxLjA2NS0xMjMuNzMxLTM4LjMxNUMxMjAuNTk2IDQwNy42ODMgMTEyIDM5Ny41OTkgMTEyIDM4NS43ODZWMjE0LjI2MWwuMDAyLS4wMDFjLjAxMS0xOC4zNjYgMTAuNjA3LTM1Ljg4OSAyOC40NjQtNDMuODQ1IDI4Ljg4Ni0xMi45OTQgOTUuNDEzLTQ5LjAzOCAxMDcuNTM0LTc3LjMyMyA3Ljc5Ny0xOC4xOTQgMjEuMzg0LTI5LjA4NCA0MC0yOS4wOTIgMzQuMjIyLS4wMTQgNTcuNzUyIDM1LjA5OCA0NC4xMTkgNjYuOTA4LTMuNTgzIDguMzU5LTguMzEyIDE2LjY3LTE0LjE1MyAyNC45MThINDY3LjJjMjMuNDUgMCA0NC44IDIwLjU0MyA0NC44IDQzLjgyNnpNOTYgMjAwdjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMjRjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNFYyMDBjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDQ4YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHpNNjggMzY4YzAtMTEuMDQ2LTguOTU0LTIwLTIwLTIwcy0yMCA4Ljk1NC0yMCAyMCA4Ljk1NCAyMCAyMCAyMCAyMC04Ljk1NCAyMC0yMHpcIl1cbn07XG52YXIgZmFIYW5kUG9pbnRVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kLXBvaW50LXVwJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMGE2XCIsIFwiTTEzNS42NTIgMGMyMy42MjUgMCA0My44MjYgMjAuNjUgNDMuODI2IDQ0Ljh2OTkuODUxYzE3LjA0OC0xNi4zNCA0OS43NjYtMTguMzQ2IDcwLjk0NCA2LjI5OSAyMi44MjktMTQuMjg4IDUzLjAxNy0yLjE0NyA2Mi4zMTUgMTYuNDVDMzYxLjg3OCAxNTguNDI2IDM4NCAxODkuMzQ2IDM4NCAyNDBjMCAyLjc0Ni0uMjAzIDEzLjI3Ni0uMTk1IDE2IC4xNjggNjEuOTcxLTMxLjA2NSA3Ni44OTQtMzguMzE1IDEyMy43MzFDMzQzLjY4MyAzOTEuNDA0IDMzMy41OTkgNDAwIDMyMS43ODYgNDAwSDE1MC4yNjFsLS4wMDEtLjAwMmMtMTguMzY2LS4wMTEtMzUuODg5LTEwLjYwNy00My44NDUtMjguNDY0QzkzLjQyMSAzNDIuNjQ4IDU3LjM3NyAyNzYuMTIyIDI5LjA5MiAyNjQgMTAuODk3IDI1Ni4yMDMuMDA4IDI0Mi42MTYgMCAyMjRjLS4wMTQtMzQuMjIyIDM1LjA5OC01Ny43NTIgNjYuOTA4LTQ0LjExOSA4LjM1OSAzLjU4MyAxNi42NyA4LjMxMiAyNC45MTggMTQuMTUzVjQ0LjhjMC0yMy40NSAyMC41NDMtNDQuOCA0My44MjYtNDQuOHpNMTM2IDQxNmgxOTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djQ4YzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgxMzZjLTEzLjI1NSAwLTI0LTEwLjc0NS0yNC0yNHYtNDhjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0em0xNjggMjhjLTExLjA0NiAwLTIwIDguOTU0LTIwIDIwczguOTU0IDIwIDIwIDIwIDIwLTguOTU0IDIwLTIwLTguOTU0LTIwLTIwLTIwelwiXVxufTtcbnZhciBmYUhhbmRQb2ludGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcG9pbnRlcicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI1YVwiLCBcIk00NDggMjQwdjk2YzAgMy4wODQtLjM1NiA2LjE1OS0xLjA2MyA5LjE2MmwtMzIgMTM2QzQxMC42ODYgNDk5LjIzIDM5NC41NjIgNTEyIDM3NiA1MTJIMTY4YTQwLjAwNCA0MC4wMDQgMCAwIDEtMzIuMzUtMTYuNDczbC0xMjcuOTk3LTE3NmMtMTIuOTkzLTE3Ljg2Ni05LjA0My00Mi44ODMgOC44MjItNTUuODc2IDE3Ljg2Ny0xMi45OTQgNDIuODg0LTkuMDQzIDU1Ljg3NyA4LjgyM0wxMDQgMzE1Ljk5MlY0MGMwLTIyLjA5MSAxNy45MDgtNDAgNDAtNDBzNDAgMTcuOTA5IDQwIDQwdjIwMGg4di00MGMwLTIyLjA5MSAxNy45MDgtNDAgNDAtNDBzNDAgMTcuOTA5IDQwIDQwdjQwaDh2LTI0YzAtMjIuMDkxIDE3LjkwOC00MCA0MC00MHM0MCAxNy45MDkgNDAgNDB2MjRoOGMwLTIyLjA5MSAxNy45MDgtNDAgNDAtNDBzNDAgMTcuOTA5IDQwIDQwem0tMjU2IDgwaC04djk2aDh2LTk2em04OCAwaC04djk2aDh2LTk2em04OCAwaC04djk2aDh2LTk2elwiXVxufTtcbnZhciBmYUhhbmRSb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmQtcm9jaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI1NVwiLCBcIk00NjQuOCA4MGMtMjYuOS0uNC00OC44IDIxLjItNDguOCA0OGgtOFY5Ni44YzAtMjYuMy0yMC45LTQ4LjMtNDcuMi00OC44LTI2LjktLjQtNDguOCAyMS4yLTQ4LjggNDh2MzJoLThWODAuOGMwLTI2LjMtMjAuOS00OC4zLTQ3LjItNDguOC0yNi45LS40LTQ4LjggMjEuMi00OC44IDQ4djQ4aC04Vjk2LjhjMC0yNi4zLTIwLjktNDguMy00Ny4yLTQ4LjgtMjYuOS0uNC00OC44IDIxLjItNDguOCA0OHYxMzZsLTgtNy4xdi00OC4xYzAtMjYuMy0yMC45LTQ4LjMtNDcuMi00OC44QzIxLjkgMTI3LjYgMCAxNDkuMiAwIDE3NnY2Ni40YzAgMjcuNCAxMS43IDUzLjUgMzIuMiA3MS44bDExMS43IDk5LjNjMTAuMiA5LjEgMTYuMSAyMi4yIDE2LjEgMzUuOXY2LjdjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMjQwYzEzLjMgMCAyNC0xMC43IDI0LTI0di0yLjljMC0xMi44IDIuNi0yNS41IDcuNS0zNy4zbDQ5LTExNi4zYzUtMTEuOCA3LjUtMjQuNSA3LjUtMzcuM1YxMjguOGMwLTI2LjMtMjAuOS00OC40LTQ3LjItNDguOHpcIl1cbn07XG52YXIgZmFIYW5kU2Npc3NvcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1zY2lzc29ycycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI1N1wiLCBcIk0yMTYgNDQwYzAtMjIuMDkyIDE3LjkwOS00MCA0MC00MHYtOGgtMzJjLTIyLjA5MSAwLTQwLTE3LjkwOC00MC00MHMxNy45MDktNDAgNDAtNDBoMzJ2LThINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDhoMjA4di0xMy41NzJsLTE3Ny41NTEtNjkuNzRjLTI0LjY3NC05LjY5NC0zNi44MTgtMzcuNTU1LTI3LjEyNS02Mi4yMjggOS42OTMtMjQuNjc0IDM3LjU1NC0zNi44MTcgNjIuMjI4LTI3LjEyNGwxOTAuMzQyIDc0Ljc2NSAyNC44NzItMzEuMDljMTIuMzA2LTE1LjM4MSAzMy45NzgtMTkuNTE1IDUxLjA4MS05Ljc0MWwxMTIgNjRBNDAuMDAyIDQwLjAwMiAwIDAgMSA1MTIgMTY4djI0MGMwIDE4LjU2Mi0xMi43NyAzNC42ODYtMzAuODM4IDM4LjkzN2wtMTM2IDMyQTM5Ljk4MiAzOS45ODIgMCAwIDEgMzM2IDQ4MGgtODBjLTIyLjA5MSAwLTQwLTE3LjkwOC00MC00MHpcIl1cbn07XG52YXIgZmFIYW5kU3BvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZC1zcG9jaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI1OVwiLCBcIk00ODEuMyA5Ny4xYy0yMS41LTUuMS00My4xIDguMi00OC4yIDI5LjZMNDAyLjMgMjU2aC0xMS4xbDQzLjYtMTc0LjNjNS40LTIxLjQtNy43LTQzLjEtMjkuMS00OC41cy00My4xIDcuNy00OC41IDI5LjFMMzA4LjggMjU2aC0xNS4xTDI0MiAzMS4xYy01LTIxLjYtMjYuNC0zNS00OC0zMC4xLTIxLjUgNC45LTM1IDI2LjQtMzAgNDcuOWw0Ny42IDIwN2gtOS44TDE2NyAxMDMuMWMtNC45LTIxLjUtMjYuMy0zNS00Ny45LTMwLjEtMjEuNSA0LjktMzUgMjYuMy0zMC4xIDQ3LjlsMzkgMTcxLjZ2NzkuNGwtNjAuNi01N2MtMTYuMS0xNS4xLTQxLjQtMTQuNC01Ni41IDEuN3MtMTQuNCA0MS40IDEuNyA1Ni41TDE0Ni4zIDQ5OWM4LjkgOC40IDIwLjcgMTMgMzIuOSAxM2gyMTYuN2MyMS4zIDAgNDAtMTQgNDYtMzQuNGwyNi4yLTg4LjNjMi42LTguOSA0LTE4IDQtMjcuM3YtNDJjMC03LjUuOS0xNSAyLjYtMjIuMkw1MTEgMTQ1LjNjNS0yMS41LTguMy00My4xLTI5LjctNDguMnpcIl1cbn07XG52YXIgZmFIYW5kcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYW5kcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRjMlwiLCBcIk0yMDQuOCAyMzAuNGMtMTAuNi0xNC4xLTMwLjctMTctNDQuOC02LjQtMTQuMSAxMC42LTE3IDMwLjctNi40IDQ0LjhsMzguMSA1MC44YzQuOCA2LjQgNC4xIDE1LjMtMS41IDIwLjlsLTEyLjggMTIuOGMtNi43IDYuNy0xNy42IDYuMi0yMy42LTEuMUw2NCAyNDQuNFY5NmMwLTE3LjctMTQuMy0zMi0zMi0zMlMwIDc4LjMgMCA5NnYyMTguNGMwIDEwLjkgMy43IDIxLjUgMTAuNSAzMGwxMDQuMSAxMzQuM2M1IDYuNSA4LjQgMTMuOSAxMC40IDIxLjcgMS44IDYuOSA4LjEgMTEuNiAxNS4zIDExLjZIMjcyYzguOCAwIDE2LTcuMiAxNi0xNlYzODRjMC0yNy43LTktNTQuNi0yNS42LTc2LjhsLTU3LjYtNzYuOHpNNjA4IDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxNDguNGwtODkuOCAxMDcuOGMtNiA3LjItMTcgNy43LTIzLjYgMS4xbC0xMi44LTEyLjhjLTUuNi01LjYtNi4zLTE0LjUtMS41LTIwLjlsMzguMS01MC44YzEwLjYtMTQuMSA3LjctMzQuMi02LjQtNDQuOC0xNC4xLTEwLjYtMzQuMi03LjctNDQuOCA2LjRsLTU3LjYgNzYuOEMzNjEgMzI5LjQgMzUyIDM1Ni4zIDM1MiAzODR2MTEyYzAgOC44IDcuMiAxNiAxNiAxNmgxMzEuN2M3LjEgMCAxMy41LTQuNyAxNS4zLTExLjYgMi03LjggNS40LTE1LjIgMTAuNC0yMS43bDEwNC4xLTEzNC4zYzYuOC04LjUgMTAuNS0xOS4xIDEwLjUtMzBWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhSGFuZHNIZWxwaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbmRzLWhlbHBpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0YzRcIiwgXCJNNDg4IDE5MkgzMzZ2NTZjMCAzOS43LTMyLjMgNzItNzIgNzJzLTcyLTMyLjMtNzItNzJWMTI2LjRsLTY0LjkgMzlDMTA3LjggMTc2LjkgOTYgMTk3LjggOTYgMjIwLjJ2NDcuM2wtODAgNDYuMkMuNyAzMjIuNS00LjYgMzQyLjEgNC4zIDM1Ny40bDgwIDEzOC42YzguOCAxNS4zIDI4LjQgMjAuNSA0My43IDExLjdMMjMxLjQgNDQ4SDM2OGMzNS4zIDAgNjQtMjguNyA2NC02NGgxNmMxNy43IDAgMzItMTQuMyAzMi0zMnYtNjRoOGMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtNDhjMC0xMy4zLTEwLjctMjQtMjQtMjR6bTE0Ny43LTM3LjRMNTU1LjcgMTZDNTQ2LjkuNyA1MjcuMy00LjUgNTEyIDQuM0w0MDguNiA2NEgzMDYuNGMtMTIgMC0yMy43IDMuNC0zMy45IDkuN0wyMzkgOTQuNmMtOS40IDUuOC0xNSAxNi4xLTE1IDI3LjFWMjQ4YzAgMjIuMSAxNy45IDQwIDQwIDQwczQwLTE3LjkgNDAtNDB2LTg4aDE4NGMzMC45IDAgNTYgMjUuMSA1NiA1NnYyOC41bDgwLTQ2LjJjMTUuMy04LjkgMjAuNS0yOC40IDExLjctNDMuN3pcIl1cbn07XG52YXIgZmFIYW5kc2hha2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGFuZHNoYWtlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMmI1XCIsIFwiTTQzNC43IDY0aC04NS45Yy04IDAtMTUuNyAzLTIxLjYgOC40bC05OC4zIDkwYy0uMS4xLS4yLjMtLjMuNC0xNi42IDE1LjYtMTYuMyA0MC41LTIuMSA1NiAxMi43IDEzLjkgMzkuNCAxNy42IDU2LjEgMi43LjEtLjEuMy0uMS40LS4ybDc5LjktNzMuMmM2LjUtNS45IDE2LjctNS41IDIyLjYgMSA2IDYuNSA1LjUgMTYuNi0xIDIyLjZsLTI2LjEgMjMuOUw1MDQgMzEzLjhjMi45IDIuNCA1LjUgNSA3LjkgNy43VjEyOGwtNTQuNi01NC42Yy01LjktNi0xNC4xLTkuNC0yMi42LTkuNHpNNTQ0IDEyOC4ydjIyMy45YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY0VjEyOC4yaC05NnptNDggMjIzLjljLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnpNMCAzODRoNjRjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTI4LjJIMFYzODR6bTQ4LTYzLjljOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTYtMTYtNy4yLTE2LTE2YzAtOC45IDcuMi0xNiAxNi0xNnptNDM1LjkgMTguNkwzMzQuNiAyMTcuNWwtMzAgMjcuNWMtMjkuNyAyNy4xLTc1LjIgMjQuNS0xMDEuNy00LjQtMjYuOS0yOS40LTI0LjgtNzQuOSA0LjQtMTAxLjdMMjg5LjEgNjRoLTgzLjhjLTguNSAwLTE2LjYgMy40LTIyLjYgOS40TDEyOCAxMjh2MjIzLjloMTguM2w5MC41IDgxLjljMjcuNCAyMi4zIDY3LjcgMTguMSA5MC05LjNsLjItLjIgMTcuOSAxNS41YzE1LjkgMTMgMzkuNCAxMC41IDUyLjMtNS40bDMxLjQtMzguNiA1LjQgNC40YzEzLjcgMTEuMSAzMy45IDkuMSA0NS00LjdsOS41LTExLjdjMTEuMi0xMy44IDkuMS0zMy45LTQuNi00NS4xelwiXVxufTtcbnZhciBmYUhhbnVraWFoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhbnVraWFoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNmU2XCIsIFwiTTIzMiAxNjBjLTQuNDIgMC04IDMuNTgtOCA4djEyMGgzMlYxNjhjMC00LjQyLTMuNTgtOC04LThoLTE2em0tNjQgMGMtNC40MiAwLTggMy41OC04IDh2MTIwaDMyVjE2OGMwLTQuNDItMy41OC04LTgtOGgtMTZ6bTIyNCAwYy00LjQyIDAtOCAzLjU4LTggOHYxMjBoMzJWMTY4YzAtNC40Mi0zLjU4LTgtOC04aC0xNnptNjQgMGMtNC40MiAwLTggMy41OC04IDh2MTIwaDMyVjE2OGMwLTQuNDItMy41OC04LTgtOGgtMTZ6bTg4IDhjMC00LjQyLTMuNTgtOC04LThoLTE2Yy00LjQyIDAtOCAzLjU4LTggOHYxMjBoMzJWMTY4em0tNDQwLThjLTQuNDIgMC04IDMuNTgtOCA4djEyMGgzMlYxNjhjMC00LjQyLTMuNTgtOC04LThoLTE2em01MjAgMGgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djExMmMwIDE3LjY3LTE0LjMzIDMyLTMyIDMySDM1MlYxMjhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxOTJIOTZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJWMTc2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxMTJjMCA1My4wMiA0Mi45OCA5NiA5NiA5NmgxOTJ2NjRIMTEyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0MTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2SDM1MnYtNjRoMTkyYzUzLjAyIDAgOTYtNDIuOTggOTYtOTZWMTc2YzAtOC44NC03LjE2LTE2LTE2LTE2em0tMTYtMzJjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1M2MDggNDggNjA4IDQ4cy0yNCAzOC42MS0yNCA1My4zM1M1OTQuNzUgMTI4IDYwOCAxMjh6bS01NzYgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzMyIDQ4IDMyIDQ4IDggODYuNjEgOCAxMDEuMzMgMTguNzUgMTI4IDMyIDEyOHptMjg4LTQ4YzEzLjI1IDAgMjQtMTEuOTQgMjQtMjYuNjdTMzIwIDAgMzIwIDBzLTI0IDM4LjYxLTI0IDUzLjMzUzMwNi43NSA4MCAzMjAgODB6bS0yMDggNDhjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1MxMTIgNDggMTEyIDQ4cy0yNCAzOC42MS0yNCA1My4zM1M5OC43NSAxMjggMTEyIDEyOHptNjQgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzE3NiA0OCAxNzYgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzE2Mi43NSAxMjggMTc2IDEyOHptNjQgMGMxMy4yNSAwIDI0LTExLjk0IDI0LTI2LjY3UzI0MCA0OCAyNDAgNDhzLTI0IDM4LjYxLTI0IDUzLjMzUzIyNi43NSAxMjggMjQwIDEyOHptMTYwIDBjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1M0MDAgNDggNDAwIDQ4cy0yNCAzOC42MS0yNCA1My4zM1MzODYuNzUgMTI4IDQwMCAxMjh6bTY0IDBjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1M0NjQgNDggNDY0IDQ4cy0yNCAzOC42MS0yNCA1My4zM1M0NTAuNzUgMTI4IDQ2NCAxMjh6bTY0IDBjMTMuMjUgMCAyNC0xMS45NCAyNC0yNi42N1M1MjggNDggNTI4IDQ4cy0yNCAzOC42MS0yNCA1My4zM1M1MTQuNzUgMTI4IDUyOCAxMjh6XCJdXG59O1xudmFyIGZhSGFyZEhhdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYXJkLWhhdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjgwN1wiLCBcIk00ODAgMjg4YzAtODAuMjUtNDkuMjgtMTQ4LjkyLTExOS4xOS0xNzcuNjJMMzIwIDE5MlY4MGExNiAxNiAwIDAgMC0xNi0xNmgtOTZhMTYgMTYgMCAwIDAtMTYgMTZ2MTEybC00MC44MS04MS42MkM4MS4yOCAxMzkuMDggMzIgMjA3Ljc1IDMyIDI4OHY2NGg0NDh6bTE2IDk2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQ4MGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhSGFzaHRhZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoYXNodGFnJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjkyXCIsIFwiTTQ0MC42NjcgMTgyLjEwOWw3LjE0My00MGMxLjMxMy03LjM1NS00LjM0Mi0xNC4xMDktMTEuODEzLTE0LjEwOWgtNzQuODFsMTQuNjIzLTgxLjg5MUMzNzcuMTIzIDM4Ljc1NCAzNzEuNDY4IDMyIDM2My45OTcgMzJoLTQwLjYzMmExMiAxMiAwIDAgMC0xMS44MTMgOS44OTFMMjk2LjE3NSAxMjhIMTk3LjU0bDE0LjYyMy04MS44OTFDMjEzLjQ3NyAzOC43NTQgMjA3LjgyMiAzMiAyMDAuMzUgMzJoLTQwLjYzMmExMiAxMiAwIDAgMC0xMS44MTMgOS44OTFMMTMyLjUyOCAxMjhINTMuNDMyYTEyIDEyIDAgMCAwLTExLjgxMyA5Ljg5MWwtNy4xNDMgNDBDMzMuMTYzIDE4NS4yNDYgMzguODE4IDE5MiA0Ni4yODkgMTkyaDc0LjgxTDk4LjI0MiAzMjBIMTkuMTQ2YTEyIDEyIDAgMCAwLTExLjgxMyA5Ljg5MWwtNy4xNDMgNDBDLTEuMTIzIDM3Ny4yNDYgNC41MzIgMzg0IDEyLjAwMyAzODRoNzQuODFMNzIuMTkgNDY1Ljg5MUM3MC44NzcgNDczLjI0NiA3Ni41MzIgNDgwIDg0LjAwMyA0ODBoNDAuNjMyYTEyIDEyIDAgMCAwIDExLjgxMy05Ljg5MUwxNTEuODI2IDM4NGg5OC42MzRsLTE0LjYyMyA4MS44OTFDMjM0LjUyMyA0NzMuMjQ2IDI0MC4xNzggNDgwIDI0Ny42NSA0ODBoNDAuNjMyYTEyIDEyIDAgMCAwIDExLjgxMy05Ljg5MUwzMTUuNDcyIDM4NGg3OS4wOTZhMTIgMTIgMCAwIDAgMTEuODEzLTkuODkxbDcuMTQzLTQwYzEuMzEzLTcuMzU1LTQuMzQyLTE0LjEwOS0xMS44MTMtMTQuMTA5aC03NC44MWwyMi44NTctMTI4aDc5LjA5NmExMiAxMiAwIDAgMCAxMS44MTMtOS44OTF6TTI2MS44ODkgMzIwaC05OC42MzRsMjIuODU3LTEyOGg5OC42MzRsLTIyLjg1NyAxMjh6XCJdXG59O1xudmFyIGZhSGF0Q293Ym95ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhdC1jb3dib3knLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY4YzBcIiwgXCJNNDkwIDI5Ni45QzQ4MC41MSAyMzkuNTEgNDUwLjUxIDY0IDM5Mi4zIDY0Yy0xNCAwLTI2LjQ5IDUuOTMtMzcgMTRhNTguMjEgNTguMjEgMCAwIDEtNzAuNTggMGMtMTAuNTEtOC0yMy0xNC0zNy0xNC01OC4yIDAtODguMiAxNzUuNDctOTcuNzEgMjMyLjg4QzE4OC44MSAzMDkuNDcgMjQzLjczIDMyMCAzMjAgMzIwczEzMS4yMy0xMC41MSAxNzAtMjMuMXptMTQyLjktMzcuMThhMTYgMTYgMCAwIDAtMTkuNzUgMS41Yy0xIC45LTEwMS4yNyA5MC43OC0yOTMuMTYgOTAuNzgtMTkwLjgyIDAtMjkyLjIyLTg5Ljk0LTI5My4yNC05MC44NEExNiAxNiAwIDAgMCAxIDI3OC41M0MxLjczIDI4MC41NSA3OC4zMiA0ODAgMzIwIDQ4MHMzMTguMjctMTk5LjQ1IDMxOS0yMDEuNDdhMTYgMTYgMCAwIDAtNi4wOS0xOC44MXpcIl1cbn07XG52YXIgZmFIYXRDb3dib3lTaWRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hhdC1jb3dib3ktc2lkZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjhjMVwiLCBcIk0yNjAuOCAyOTEuMDZjLTI4LjYzLTIyLjk0LTYyLTM1LjA2LTk2LjQtMzUuMDZDODcgMjU2IDIxLjQ3IDMxOC43MiAxLjQzIDQxMi4wNmMtMy41NSAxNi42LS40MyAzMy44MyA4LjU3IDQ3LjNDMTguNzUgNDcyLjQ3IDMxLjgzIDQ4MCA0NS44OCA0ODBINTkyYy0xMDMuMjEgMC0xNTUtMzcuMDctMjMzLjE5LTEwNC40NnptMjM0LjY1LTE4LjI5TDQ2OC40IDExNi4yQTY0IDY0IDAgMCAwIDM5MiA2NC40MUwyMDAuODUgMTA1YTY0IDY0IDAgMCAwLTUwLjM1IDU1Ljc5TDE0My42MSAyMjZjNi45LS44MyAxMy43LTIgMjAuNzktMiA0MS43OSAwIDgyIDE0LjU1IDExNy4yOSA0Mi44Mmw5OCA4NC40OEM0NTAuNzYgNDEyLjU0IDQ5NC45IDQ0OCA1OTIgNDQ4YTQ4IDQ4IDAgMCAwIDQ4LTQ4YzAtMjUuMzktMjkuNi0xMTkuMzMtMTQ0LjU1LTEyNy4yM3pcIl1cbn07XG52YXIgZmFIYXRXaXphcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGF0LXdpemFyZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjZlOFwiLCBcIk00OTYgNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0ODBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0tMzA0LTY0bC02NC0zMiA2NC0zMiAzMi02NCAzMiA2NCA2NCAzMi02NCAzMi0xNiAzMmgyMDhsLTg2LjQxLTIwMS42M2E2My45NTUgNjMuOTU1IDAgMCAxLTEuODktNDUuNDVMNDE2IDAgMjI4LjQyIDEwNy4xOWExMjcuOTg5IDEyNy45ODkgMCAwIDAtNTMuNDYgNTkuMTVMNjQgNDE2aDE0NGwtMTYtMzJ6bTY0LTIyNGwxNi0zMiAxNiAzMiAzMiAxNi0zMiAxNi0xNiAzMi0xNi0zMi0zMi0xNiAzMi0xNnpcIl1cbn07XG52YXIgZmFIYXlrYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGF5a2FsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjY2XCIsIFwiTTQ5Ni4yNSAyMDIuNTJsLTExMC0xNS40NCA0MS44Mi0xMDQuMzRjNi42Ny0xNi42NC0xMS42LTMyLjE4LTI2LjU5LTIyLjYzTDMwNy40NCAxMjAgMjczLjM1IDEyLjgyQzI3MC42NCA0LjI3IDI2My4zMiAwIDI1NiAwYy03LjMyIDAtMTQuNjQgNC4yNy0xNy4zNSAxMi44MmwtMzQuMDkgMTA3LjE5LTk0LjA0LTU5Ljg5Yy0xNC45OS05LjU1LTMzLjI1IDUuOTktMjYuNTkgMjIuNjNsNDEuODIgMTA0LjM0LTExMCAxNS40M2MtMTcuNTQgMi40Ni0yMS42OCAyNi4yNy02LjAzIDM0LjY3bDk4LjE2IDUyLjY2LTc0LjQ4IDgzLjU0Yy0xMC45MiAxMi4yNS0xLjcyIDMwLjkzIDEzLjI5IDMwLjkzIDEuMzEgMCAyLjY3LS4xNCA0LjA3LS40NWwxMDguNTctMjMuNjUtNC4xMSAxMTIuNTVjLS40MyAxMS42NSA4Ljg3IDE5LjIyIDE4LjQxIDE5LjIyIDUuMTUgMCAxMC4zOS0yLjIxIDE0LjItNy4xOGw2OC4xOC04OC45IDY4LjE4IDg4LjljMy44MSA0Ljk3IDkuMDQgNy4xOCAxNC4yIDcuMTggOS41NCAwIDE4Ljg0LTcuNTcgMTguNDEtMTkuMjJsLTQuMTEtMTEyLjU1IDEwOC41NyAyMy42NWMxNy4zNiAzLjc2IDI5LjIxLTE3LjIgMTcuMzUtMzAuNDlsLTc0LjQ4LTgzLjU0IDk4LjE2LTUyLjY2YzE1LjY0LTguMzkgMTEuNS0zMi4yLTYuMDQtMzQuNjZ6TTMzOC41MSAzMTEuNjhsLTUxLjg5LTExLjMgMS45NyA1My43OUwyNTYgMzExLjY4bC0zMi41OSA0Mi40OSAxLjk2LTUzLjc5LTUxLjg5IDExLjMgMzUuNi0zOS45My00Ni45Mi0yNS4xNyA1Mi41Ny03LjM4LTE5Ljk5LTQ5Ljg3IDQ0Ljk1IDI4LjYyTDI1NiAxNjYuNzJsMTYuMjkgNTEuMjMgNDQuOTUtMjguNjItMTkuOTkgNDkuODcgNTIuNTcgNy4zOC00Ni45MiAyNS4xNyAzNS42MSAzOS45M3pcIl1cbn07XG52YXIgZmFIZGQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGRkJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMGEwXCIsIFwiTTU3NiAzMDR2OTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OHYtOTZjMC0yNi41MSAyMS40OS00OCA0OC00OGg0ODBjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHptLTQ4LTgwYTc5LjU1NyA3OS41NTcgMCAwIDEgMzAuNzc3IDYuMTY1TDQ2Mi4yNSA4NS4zNzRBNDguMDAzIDQ4LjAwMyAwIDAgMCA0MjIuMzExIDY0SDE1My42ODlhNDggNDggMCAwIDAtMzkuOTM4IDIxLjM3NEwxNy4yMjMgMjMwLjE2NUE3OS41NTcgNzkuNTU3IDAgMCAxIDQ4IDIyNGg0ODB6bS00OCA5NmMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyem0tOTYgMGMtMTcuNjczIDAtMzIgMTQuMzI3LTMyIDMyczE0LjMyNyAzMiAzMiAzMiAzMi0xNC4zMjcgMzItMzItMTQuMzI3LTMyLTMyLTMyelwiXVxufTtcbnZhciBmYUhlYWRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZGluZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFkY1wiLCBcIk00NDggOTZ2MzIwaDMyYTE2IDE2IDAgMCAxIDE2IDE2djMyYTE2IDE2IDAgMCAxLTE2IDE2SDMyMGExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMzJWMjg4SDE2MHYxMjhoMzJhMTYgMTYgMCAwIDEgMTYgMTZ2MzJhMTYgMTYgMCAwIDEtMTYgMTZIMzJhMTYgMTYgMCAwIDEtMTYtMTZ2LTMyYTE2IDE2IDAgMCAxIDE2LTE2aDMyVjk2SDMyYTE2IDE2IDAgMCAxLTE2LTE2VjQ4YTE2IDE2IDAgMCAxIDE2LTE2aDE2MGExNiAxNiAwIDAgMSAxNiAxNnYzMmExNiAxNiAwIDAgMS0xNiAxNmgtMzJ2MTI4aDE5MlY5NmgtMzJhMTYgMTYgMCAwIDEtMTYtMTZWNDhhMTYgMTYgMCAwIDEgMTYtMTZoMTYwYTE2IDE2IDAgMCAxIDE2IDE2djMyYTE2IDE2IDAgMCAxLTE2IDE2elwiXVxufTtcbnZhciBmYUhlYWRwaG9uZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZHBob25lcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAyNVwiLCBcIk0yNTYgMzJDMTE0LjUyIDMyIDAgMTQ2LjQ5NiAwIDI4OHY0OGEzMiAzMiAwIDAgMCAxNy42ODkgMjguNjIybDE0LjM4MyA3LjE5MUMzNC4wODMgNDMxLjkwMyA4My40MjEgNDgwIDE0NCA0ODBoMjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI4MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRoLTI0Yy0zMS4zNDIgMC01OS42NzEgMTIuODc5LTgwIDMzLjYyN1YyODhjMC0xMDUuODY5IDg2LjEzMS0xOTIgMTkyLTE5MnMxOTIgODYuMTMxIDE5MiAxOTJ2MS42MjdDNDI3LjY3MSAyNjguODc5IDM5OS4zNDIgMjU2IDM2OCAyNTZoLTI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTc2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyNGM2MC41NzkgMCAxMDkuOTE3LTQ4LjA5OCAxMTEuOTI4LTEwOC4xODdsMTQuMzgyLTcuMTkxQTMyIDMyIDAgMCAwIDUxMiAzMzZ2LTQ4YzAtMTQxLjQ3OS0xMTQuNDk2LTI1Ni0yNTYtMjU2elwiXVxufTtcbnZhciBmYUhlYWRwaG9uZXNBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhZHBob25lcy1hbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1OGZcIiwgXCJNMTYwIDI4OGgtMTZjLTM1LjM1IDAtNjQgMjguNy02NCA2NC4xMnY2My43NmMwIDM1LjQxIDI4LjY1IDY0LjEyIDY0IDY0LjEyaDE2YzE3LjY3IDAgMzItMTQuMzYgMzItMzIuMDZWMzIwLjA2YzAtMTcuNzEtMTQuMzMtMzIuMDYtMzItMzIuMDZ6bTIwOCAwaC0xNmMtMTcuNjcgMC0zMiAxNC4zNS0zMiAzMi4wNnYxMjcuODhjMCAxNy43IDE0LjMzIDMyLjA2IDMyIDMyLjA2aDE2YzM1LjM1IDAgNjQtMjguNzEgNjQtNjQuMTJ2LTYzLjc2YzAtMzUuNDEtMjguNjUtNjQuMTItNjQtNjQuMTJ6TTI1NiAzMkMxMTIuOTEgMzIgNC41NyAxNTEuMTMgMCAyODh2MTEyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2VjI4OGMwLTExNC42NyA5My4zMy0yMDcuOCAyMDgtMjA3LjgyIDExNC42Ny4wMiAyMDggOTMuMTUgMjA4IDIwNy44MnYxMTJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjg4QzUwNy40MyAxNTEuMTMgMzk5LjA5IDMyIDI1NiAzMnpcIl1cbn07XG52YXIgZmFIZWFkc2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYWRzZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1OTBcIiwgXCJNMTkyIDIwOGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC0xNmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHY0OGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDE2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMjA4em0xNzYgMTQ0YzM1LjM1IDAgNjQtMjguNjUgNjQtNjR2LTQ4YzAtMzUuMzUtMjguNjUtNjQtNjQtNjRoLTE2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjExMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDE2ek0yNTYgMEMxMTMuMTggMCA0LjU4IDExOC44MyAwIDI1NnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC0xMTQuNjkgOTMuMzEtMjA4IDIwOC0yMDhzMjA4IDkzLjMxIDIwOCAyMDhoLS4xMmMuMDggMi40My4xMiAxNjUuNzIuMTIgMTY1LjcyIDAgMjMuMzUtMTguOTMgNDIuMjgtNDIuMjggNDIuMjhIMzIwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDhoLTMyYy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4aDE4MS43MmM0OS44NiAwIDkwLjI4LTQwLjQyIDkwLjI4LTkwLjI4VjI1NkM1MDcuNDIgMTE4LjgzIDM5OC44MiAwIDI1NiAwelwiXVxufTtcbnZhciBmYUhlYXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYXJ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDA0XCIsIFwiTTQ2Mi4zIDYyLjZDNDA3LjUgMTUuOSAzMjYgMjQuMyAyNzUuNyA3Ni4yTDI1NiA5Ni41bC0xOS43LTIwLjNDMTg2LjEgMjQuMyAxMDQuNSAxNS45IDQ5LjcgNjIuNmMtNjIuOCA1My42LTY2LjEgMTQ5LjgtOS45IDIwNy45bDE5My41IDE5OS44YzEyLjUgMTIuOSAzMi44IDEyLjkgNDUuMyAwbDE5My41LTE5OS44YzU2LjMtNTguMSA1My0xNTQuMy05LjgtMjA3Ljl6XCJdXG59O1xudmFyIGZhSGVhcnRCcm9rZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGVhcnQtYnJva2VuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2E5XCIsIFwiTTQ3My43IDczLjhsLTIuNC0yLjVjLTQ2LTQ3LTExOC01MS43LTE2OS42LTE0LjhMMzM2IDE1OS45bC05NiA2NCA0OCAxMjgtMTQ0LTE0NCA5Ni02NC0yOC42LTg2LjVDMTU5LjcgMTkuNiA4NyAyNCA0MC43IDcxLjRsLTIuNCAyLjRDLTEwLjQgMTIzLjYtMTIuNSAyMDIuOSAzMSAyNTZsMjEyLjEgMjE4LjZjNy4xIDcuMyAxOC42IDcuMyAyNS43IDBMNDgxIDI1NS45YzQzLjUtNTMgNDEuNC0xMzIuMy03LjMtMTgyLjF6XCJdXG59O1xudmFyIGZhSGVhcnRiZWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlYXJ0YmVhdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjIxZVwiLCBcIk0zMjAuMiAyNDMuOGwtNDkuNyA5OS40Yy02IDEyLjEtMjMuNCAxMS43LTI4LjktLjZsLTU2LjktMTI2LjMtMzAgNzEuN0g2MC42bDE4Mi41IDE4Ni41YzcuMSA3LjMgMTguNiA3LjMgMjUuNyAwTDQ1MS40IDI4OEgzNDIuM2wtMjIuMS00NC4yek00NzMuNyA3My45bC0yLjQtMi41Yy01MS41LTUyLjYtMTM1LjgtNTIuNi0xODcuNCAwTDI1NiAxMDBsLTI3LjktMjguNWMtNTEuNS01Mi43LTEzNS45LTUyLjctMTg3LjQgMGwtMi40IDIuNEMtMTAuNCAxMjMuNy0xMi41IDIwMyAzMSAyNTZoMTAyLjRsMzUuOS04Ni4yYzUuNC0xMi45IDIzLjYtMTMuMiAyOS40LS40bDU4LjIgMTI5LjMgNDktOTcuOWM1LjktMTEuOCAyMi43LTExLjggMjguNiAwbDI3LjYgNTUuMkg0ODFjNDMuNS01MyA0MS40LTEzMi4zLTcuMy0xODIuMXpcIl1cbn07XG52YXIgZmFIZWxpY29wdGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hlbGljb3B0ZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1MzNcIiwgXCJNMzA0IDM4NGgyNzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMiAwLTEyMy43MS0xMDAuMjktMjI0LTIyNC0yMjRWNjRoMTc2YzguODQgMCAxNi03LjE2IDE2LTE2VjE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE0NGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTc2djY0SDExMkw2OC44IDcwLjRDNjUuNzggNjYuMzcgNjEuMDMgNjQgNTYgNjRIMTYuMDFDNS42IDY0LTIuMDQgNzMuNzguNDkgODMuODhMMzIgMTkybDE2MCA2NCA4Ni40IDExNS4yQTMxLjk5MiAzMS45OTIgMCAwIDAgMzA0IDM4NHptMTEyLTE4OC40OUM0NzguNTUgMjA4LjMgNTI4LjAzIDI1Ny40NCA1NDAuNzkgMzIwSDQxNlYxOTUuNTF6bTIxOS4zNyAyNjMuM2wtMjIuMTUtMjIuMmMtNi4yNS02LjI2LTE2LjI0LTYuMS0yMi42NC4wMS03LjA5IDYuNzctMTMuODQgMTEuMjUtMjQuNjQgMTEuMjVIMjQwYy04Ljg0IDAtMTYgNy4xOC0xNiAxNi4wM3YzMi4wNmMwIDguODUgNy4xNiAxNi4wMyAxNiAxNi4wM2gzMjUuOTRjMTQuODggMCAzNS4zLS40NyA2OC40NS0yOS41MiA3LjAyLTYuMTQgNy41Ny0xNy4wNS45OC0yMy42NnpcIl1cbn07XG52YXIgZmFIaWdobGlnaHRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoaWdobGlnaHRlcicsXG4gIGljb246IFs1NDQsIDUxMiwgW10sIFwiZjU5MVwiLCBcIk0wIDQ3OS45OEw5OS45MiA1MTJsMzUuNDUtMzUuNDUtNjcuMDQtNjcuMDRMMCA0NzkuOTh6bTEyNC42MS0yNDAuMDFhMzYuNTkyIDM2LjU5MiAwIDAgMC0xMC43OSAzOC4xbDEzLjA1IDQyLjgzLTUwLjkzIDUwLjk0IDk2LjIzIDk2LjIzIDUwLjg2LTUwLjg2IDQyLjc0IDEzLjA4YzEzLjczIDQuMiAyOC42NS0uMDEgMzguMTUtMTAuNzhsMzUuNTUtNDEuNjQtMTczLjM0LTE3My4zNC00MS41MiAzNS40NHptNDAzLjMxLTE2MC43bC02My4yLTYzLjJjLTIwLjQ5LTIwLjQ5LTUzLjM4LTIxLjUyLTc1LjEyLTIuMzVMMTkwLjU1IDE4My42OGwxNjkuNzcgMTY5Ljc4TDUzMC4yNyAxNTQuNGMxOS4xOC0yMS43NCAxOC4xNS01NC42My0yLjM1LTc1LjEzelwiXVxufTtcbnZhciBmYUhpa2luZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoaWtpbmcnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY2ZWNcIiwgXCJNODAuOTUgNDcyLjIzYy00LjI4IDE3LjE2IDYuMTQgMzQuNTMgMjMuMjggMzguODEgMi42MS42NiA1LjIyLjk1IDcuOC45NSAxNC4zMyAwIDI3LjM3LTkuNyAzMS4wMi0yNC4yM2wyNS4yNC0xMDAuOTctNTIuNzgtNTIuNzgtMzQuNTYgMTM4LjIyem0xNC44OS0xOTYuMTJMMTM3IDExN2MyLjE5LTguNDItMy4xNC0xNi45NS0xMS45Mi0xOS4wNi00My44OC0xMC41Mi04OC4zNSAxNS4wNy05OS4zMiA1Ny4xN0wuNDkgMjUzLjI0Yy0yLjE5IDguNDIgMy4xNCAxNi45NSAxMS45MiAxOS4wNmw2My41NiAxNS4yNWM4Ljc5IDIuMSAxNy42OC0zLjAyIDE5Ljg3LTExLjQ0ek0zNjggMTYwaC0xNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZoLTM0Ljc1bC00Ni43OC00Ni43OEMyNDMuMzggMTM0LjExIDIyOC42MSAxMjggMjEyLjkxIDEyOGMtMjcuMDIgMC01MC40NyAxOC4zLTU3LjAzIDQ0LjUybC0yNi45MiAxMDcuNzJhMzIuMDEyIDMyLjAxMiAwIDAgMCA4LjQyIDMwLjM5TDIyNCAzOTcuMjVWNDgwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJzMzItMTQuMzMgMzItMzJ2LTgyLjc1YzAtMTcuMDktNi42Ni0zMy4xNi0xOC43NS00NS4yNWwtNDYuODItNDYuODJjLjE1LS41LjQ5LS44OS42Mi0xLjQxbDE5Ljg5LTc5LjU3IDIyLjQzIDIyLjQzYzYgNiAxNC4xNCA5LjM4IDIyLjYyIDkuMzhoNDh2MjQwYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2VjE3NmMuMDEtOC44NC03LjE1LTE2LTE1Ljk5LTE2ek0yNDAgOTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFMyNjYuNTEgMCAyNDAgMHMtNDggMjEuNDktNDggNDggMjEuNDkgNDggNDggNDh6XCJdXG59O1xudmFyIGZhSGlwcG8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaGlwcG8nLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2ZWRcIiwgXCJNNTgxLjEyIDk2LjJjLTI3LjY3LS4xNS01Mi41IDE3LjU4LTc2LjYgMjYuNjJDNDg5Ljk4IDg4LjI3IDQ1NS44MyA2NCA0MTYgNjRjLTExLjI4IDAtMjEuOTUgMi4zLTMyIDUuODhWNTZjMC0xMy4yNi0xMC43NS0yNC0yNC0yNGgtMTZjLTEzLjI1IDAtMjQgMTAuNzQtMjQgMjR2NDguOThDMjg2LjAxIDc5LjU4IDI0MS4yNCA2NCAxOTIgNjQgODUuOTYgNjQgMCAxMzUuNjQgMCAyMjR2MjQwYzAgOC44NCA3LjE2IDE2IDE2IDE2aDY0YzguODQgMCAxNi03LjE2IDE2LTE2di03MC43OUMxMjguMzUgNDA3LjU3IDE2Ni43MiA0MTYgMjA4IDQxNnM3OS42NS04LjQzIDExMi0yMi43OVY0NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjg4aDEyOHYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTIuMDJjMC0zNC4wOS0yNC43OS02Ny41OS01OC44OC02Ny43OHpNNDQ4IDE3NmMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6XCJdXG59O1xudmFyIGZhSGlzdG9yeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdoaXN0b3J5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWRhXCIsIFwiTTUwNCAyNTUuNTMxYy4yNTMgMTM2LjY0LTExMS4xOCAyNDguMzcyLTI0Ny44MiAyNDguNDY4LTU5LjAxNS4wNDItMTEzLjIyMy0yMC41My0xNTUuODIyLTU0LjkxMS0xMS4wNzctOC45NC0xMS45MDUtMjUuNTQxLTEuODM5LTM1LjYwN2wxMS4yNjctMTEuMjY3YzguNjA5LTguNjA5IDIyLjM1My05LjU1MSAzMS44OTEtMS45ODRDMTczLjA2MiA0MjUuMTM1IDIxMi43ODEgNDQwIDI1NiA0NDBjMTAxLjcwNSAwIDE4NC04Mi4zMTEgMTg0LTE4NCAwLTEwMS43MDUtODIuMzExLTE4NC0xODQtMTg0LTQ4LjgxNCAwLTkzLjE0OSAxOC45NjktMTI2LjA2OCA0OS45MzJsNTAuNzU0IDUwLjc1NGMxMC4wOCAxMC4wOCAyLjk0MSAyNy4zMTQtMTEuMzEzIDI3LjMxNEgyNGMtOC44MzcgMC0xNi03LjE2My0xNi0xNlYzOC42MjdjMC0xNC4yNTQgMTcuMjM0LTIxLjM5MyAyNy4zMTQtMTEuMzE0bDQ5LjM3MiA0OS4zNzJDMTI5LjIwOSAzNC4xMzYgMTg5LjU1MiA4IDI1NiA4YzEzNi44MSAwIDI0Ny43NDcgMTEwLjc4IDI0OCAyNDcuNTMxem0tMTgwLjkxMiA3OC43ODRsOS44MjMtMTIuNjNjOC4xMzgtMTAuNDYzIDYuMjUzLTI1LjU0Mi00LjIxLTMzLjY3OUwyODggMjU2LjM0OVYxNTJjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC0xNmMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djEzNS42NTFsNjUuNDA5IDUwLjg3NGMxMC40NjMgOC4xMzcgMjUuNTQxIDYuMjUzIDMzLjY3OS00LjIxelwiXVxufTtcbnZhciBmYUhvY2tleVB1Y2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9ja2V5LXB1Y2snLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0NTNcIiwgXCJNMCAxNjBjMC01MyAxMTQuNi05NiAyNTYtOTZzMjU2IDQzIDI1NiA5Ni0xMTQuNiA5Ni0yNTYgOTZTMCAyMTMgMCAxNjB6bTAgODIuMlYzNTJjMCA1MyAxMTQuNiA5NiAyNTYgOTZzMjU2LTQzIDI1Ni05NlYyNDIuMmMtMTEzLjQgODIuMy0zOTguNSA4Mi40LTUxMiAwelwiXVxufTtcbnZhciBmYUhvbGx5QmVycnkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9sbHktYmVycnknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY3YWFcIiwgXCJNMTQ0IDE5MmMyNi41IDAgNDgtMjEuNSA0OC00OHMtMjEuNS00OC00OC00OC00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bTExMi00OGMwIDI2LjUgMjEuNSA0OCA0OCA0OHM0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDgtNDggMjEuNS00OCA0OHptLTMyLTQ4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzI1MC41IDAgMjI0IDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptLTE2LjIgMTM5LjFjLjEtMTIuNC0xMy4xLTIwLjEtMjMuOC0xMy43LTM0LjMgMjAuMy03MS40IDMyLjctMTA4LjcgMzYuMi05LjcuOS0xNS42IDExLjMtMTEuNiAyMC4yIDYuMiAxMy45IDExLjEgMjguNiAxNC43IDQzLjggMy42IDE1LjItNS4zIDMwLjYtMjAuMiAzNS4xLTE0LjkgNC41LTMwLjEgNy42LTQ1LjMgOS4xLTkuNyAxLTE1LjcgMTEuMy0xMS43IDIwLjIgMTUgMzIuOCAyMi45IDY5LjUgMjMgMTA3LjcuMSAxNC40IDE1LjIgMjMuMSAyNy42IDE2IDMzLjItMTkgNjguOS0zMC41IDEwNC44LTMzLjkgOS43LS45IDE1LjYtMTEuMyAxMS42LTIwLjItNi4yLTEzLjktMTEuMS0yOC42LTE0LjctNDMuOC0zLjYtMTUuMiA1LjMtMzAuNiAyMC4yLTM1LjEgMTQuOS00LjUgMzAuMS03LjYgNDUuMy05LjEgOS43LTEgMTUuNy0xMS4zIDExLjctMjAuMi0xNS41LTM0LjItMjMuMy03Mi41LTIyLjktMTEyLjN6TTQzNSAzNjUuNmMtMTUuMi0xLjYtMzAuMy00LjctNDUuMy05LjEtMTQuOS00LjUtMjMuOC0xOS45LTIwLjItMzUuMSAzLjYtMTUuMiA4LjUtMjkuOCAxNC43LTQzLjggNC04LjktMS45LTE5LjMtMTEuNi0yMC4yLTM3LjMtMy41LTc0LjQtMTUuOS0xMDguNy0zNi4yLTEwLjctNi4zLTIzLjkgMS40LTIzLjggMTMuNyAwIDEuNi0uMiAzLjItLjIgNC45LjIgMzMuMyA3IDY1LjcgMTkuOSA5NCA1LjcgMTIuNCA1LjIgMjYuNi0uNiAzOC45IDQuOSAxLjIgOS45IDIuMiAxNC44IDMuNyAxNC45IDQuNSAyMy44IDE5LjkgMjAuMiAzNS4xLTMuNiAxNS4yLTguNSAyOS44LTE0LjcgNDMuOC00IDguOSAxLjkgMTkuMyAxMS42IDIwLjIgMzUuOSAzLjQgNzEuNiAxNC45IDEwNC44IDMzLjkgMTIuNSA3LjEgMjcuNi0xLjYgMjcuNi0xNiAuMi0zOC4yIDgtNzUgMjMtMTA3LjcgNC4zLTguNy0xLjgtMTkuMS0xMS41LTIwLjF6XCJdXG59O1xudmFyIGZhSG9tZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob21lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMDE1XCIsIFwiTTI4MC4zNyAxNDguMjZMOTYgMzAwLjExVjQ2NGExNiAxNiAwIDAgMCAxNiAxNmwxMTIuMDYtLjI5YTE2IDE2IDAgMCAwIDE1LjkyLTE2VjM2OGExNiAxNiAwIDAgMSAxNi0xNmg2NGExNiAxNiAwIDAgMSAxNiAxNnY5NS42NGExNiAxNiAwIDAgMCAxNiAxNi4wNUw0NjQgNDgwYTE2IDE2IDAgMCAwIDE2LTE2VjMwMEwyOTUuNjcgMTQ4LjI2YTEyLjE5IDEyLjE5IDAgMCAwLTE1LjMgMHpNNTcxLjYgMjUxLjQ3TDQ4OCAxODIuNTZWNDQuMDVhMTIgMTIgMCAwIDAtMTItMTJoLTU2YTEyIDEyIDAgMCAwLTEyIDEydjcyLjYxTDMxOC40NyA0M2E0OCA0OCAwIDAgMC02MSAwTDQuMzQgMjUxLjQ3YTEyIDEyIDAgMCAwLTEuNiAxNi45bDI1LjUgMzFBMTIgMTIgMCAwIDAgNDUuMTUgMzAxbDIzNS4yMi0xOTMuNzRhMTIuMTkgMTIuMTkgMCAwIDEgMTUuMyAwTDUzMC45IDMwMWExMiAxMiAwIDAgMCAxNi45LTEuNmwyNS41LTMxYTEyIDEyIDAgMCAwLTEuNy0xNi45M3pcIl1cbn07XG52YXIgZmFIb3JzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3JzZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjZmMFwiLCBcIk01NzUuOTIgNzYuNmMtLjAxLTguMTMtMy4wMi0xNS44Ny04LjU4LTIxLjgtMy43OC00LjAzLTguNTgtOS4xMi0xMy42OS0xNC41IDExLjA2LTYuODQgMTkuNS0xNy40OSAyMi4xOC0zMC42NkM1NzYuODUgNC42OCA1NzIuOTYgMCA1NjcuOSAwSDQ0Ny45MmMtNzAuNjkgMC0xMjggNTcuMzEtMTI4IDEyOEgxNjBjLTI4Ljg0IDAtNTQuNCAxMi45OC03MiAzMy4xMVYxNjBjLTQ4LjUzIDAtODggMzkuNDctODggODh2NTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTU2YzAtMTMuMjIgNi44Ny0yNC4zOSAxNi43OC0zMS42OC0uMjEgMi41OC0uNzggNS4wNS0uNzggNy42OCAwIDI3LjY0IDExLjg0IDUyLjM2IDMwLjU0IDY5Ljg4bC0yNS43MiA2OC42YTYzLjk0NSA2My45NDUgMCAwIDAtMi4xNiAzNy45OWwyNC44NSA5OS40MUExNS45ODIgMTUuOTgyIDAgMCAwIDEwNy4wMiA1MTJoNjUuOTZjMTAuNDEgMCAxOC4wNS05Ljc4IDE1LjUyLTE5Ljg4bC0yNi4zMS0xMDUuMjYgMjMuODQtNjMuNTlMMzIwIDM0NS42VjQ5NmMwIDguODQgNy4xNiAxNiAxNiAxNmg2NGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYzMTguMjJjMTkuNzQtMjAuMTkgMzItNDcuNzUgMzItNzguMjIgMC0uMjItLjA3LS40Mi0uMDgtLjY0VjEzNi44OWwxNiA3LjExIDE4LjkgMzcuN2M3LjQ1IDE0Ljg3IDI1LjA1IDIxLjU1IDQwLjQ5IDE1LjM3bDMyLjU1LTEzLjAyYTMxLjk5NyAzMS45OTcgMCAwIDAgMjAuMTItMjkuNzRsLS4wNi03Ny43MXptLTY0IDE5LjRjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2elwiXVxufTtcbnZhciBmYUhvcnNlSGVhZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3JzZS1oZWFkJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2FiXCIsIFwiTTUwOS44IDMzMi41bC02OS45LTE2NC4zYy0xNC45LTQxLjItNTAuNC03MS05My03OS4yIDE4LTEwLjYgNDYuMy0zNS45IDM0LjItODIuMy0xLjMtNS03LjEtNy45LTEyLTYuMUwxNjYuOSA3Ni4zQzM1LjkgMTIzLjQgMCAyMzguOSAwIDM5OC44VjQ4MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyMzYuMmMyMy44IDAgMzkuMy0yNSAyOC42LTQ2LjNMMjU2IDM4NHYtLjdjLTQ1LjYtMy41LTg0LjYtMzAuNy0xMDQuMy02OS42LTEuNi0zLjEtLjktNi45IDEuNi05LjNsMTIuMS0xMi4xYzMuOS0zLjkgMTAuNi0yLjcgMTIuOSAyLjQgMTQuOCAzMy43IDQ4LjIgNTcuNCA4Ny40IDU3LjQgMTcuMiAwIDMzLTUuMSA0Ni44LTEzLjJsNDYgNjMuOWM2IDguNCAxNS43IDEzLjMgMjYgMTMuM2g1MC4zYzguNSAwIDE2LjYtMy40IDIyLjYtOS40bDQ1LjMtMzkuOGM4LjktOS4xIDExLjctMjIuNiA3LjEtMzQuNHpNMzI4IDIyNGMtMTMuMyAwLTI0LTEwLjctMjQtMjRzMTAuNy0yNCAyNC0yNCAyNCAxMC43IDI0IDI0LTEwLjcgMjQtMjQgMjR6XCJdXG59O1xudmFyIGZhSG9zcGl0YWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9zcGl0YWwnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwZjhcIiwgXCJNNDQ4IDQ5MnYyMEgwdi0yMGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDIwVjEyMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoODhWMjRjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0aDExMmMxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR2NzJoODhjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djM2MGgyMGM2LjYyNyAwIDEyIDUuMzczIDEyIDEyek0zMDggMTkyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJ6bS0xNjggNjRoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMnptMTA0IDEyOGgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2ODRoNjR2LTg0YzAtNi42MjctNS4zNzMtMTItMTItMTJ6bTY0LTk2aC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJ6bS0xMTYgMTJjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MHpNMTgyIDk2aDI2djI2YTYgNiAwIDAgMCA2IDZoMjBhNiA2IDAgMCAwIDYtNlY5NmgyNmE2IDYgMCAwIDAgNi02VjcwYTYgNiAwIDAgMC02LTZoLTI2VjM4YTYgNiAwIDAgMC02LTZoLTIwYTYgNiAwIDAgMC02IDZ2MjZoLTI2YTYgNiAwIDAgMC02IDZ2MjBhNiA2IDAgMCAwIDYgNnpcIl1cbn07XG52YXIgZmFIb3NwaXRhbEFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3NwaXRhbC1hbHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY0N2RcIiwgXCJNNTQ0IDk2SDQxNlYzMmMwLTE3LjctMTQuMy0zMi0zMi0zMkgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0SDMyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnYzNjhjMCA4LjggNy4yIDE2IDE2IDE2aDU0NGM4LjggMCAxNi03LjIgMTYtMTZWMTI4YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0xNjAgNDM2YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC0xMjhjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0xNjAgMTI4YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtNDBjMC02LjYgNS40LTEyIDEyLTEyaDQwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MHptMC0xMjhjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0xNi0xNzBjMCAzLjMtMi43IDYtNiA2aC0yNnYyNmMwIDMuMy0yLjcgNi02IDZoLTIwYy0zLjMgMC02LTIuNy02LTZ2LTI2aC0yNmMtMy4zIDAtNi0yLjctNi02di0yMGMwLTMuMyAyLjctNiA2LTZoMjZWODZjMC0zLjMgMi43LTYgNi02aDIwYzMuMyAwIDYgMi43IDYgNnYyNmgyNmMzLjMgMCA2IDIuNyA2IDZ2MjB6bTE0NCAyOThjMCA2LjYtNS40IDEyLTEyIDEyaC00MGMtNi42IDAtMTItNS40LTEyLTEydi00MGMwLTYuNiA1LjQtMTIgMTItMTJoNDBjNi42IDAgMTIgNS40IDEyIDEydjQwem0wLTEyOGMwIDYuNi01LjQgMTItMTIgMTJoLTQwYy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg0MGM2LjYgMCAxMiA1LjQgMTIgMTJ2NDB6XCJdXG59O1xudmFyIGZhSG9zcGl0YWxTeW1ib2wgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaG9zcGl0YWwtc3ltYm9sJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNDdlXCIsIFwiTTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NnMxMTQuNiAyNTYgMjU2IDI1NiAyNTYtMTE0LjYgMjU2LTI1NlMzOTcuNCAwIDI1NiAwem0xMTIgMzc2YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOHYtODhoLTk2djg4YzAgNC40LTMuNiA4LTggOGgtNDhjLTQuNCAwLTgtMy42LTgtOFYxMzZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY4OGg5NnYtODhjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHYyNDB6XCJdXG59O1xudmFyIGZhSG90VHViID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdC10dWInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1OTNcIiwgXCJNNDE0LjIxIDE3Ny42NWMxLjAyIDguMjEgNy43NSAxNC4zNSAxNS43NSAxNC4zNWgxNi4xMmM5LjUxIDAgMTcuMDgtOC41NyAxNi0xOC4zNS00LjM0LTM5LjExLTIyLjQtNzQuNTMtNTAuMTMtOTcuMTYtMTcuMzctMTQuMTctMjguODItMzYuNzUtMzEuOTgtNjIuMTVDMzc4Ljk2IDYuMTQgMzcyLjIyIDAgMzY0LjIzIDBoLTE2LjEyYy05LjUxIDAtMTcuMDkgOC41Ny0xNiAxOC4zNSA0LjM0IDM5LjExIDIyLjQgNzQuNTMgNTAuMTMgOTcuMTYgMTcuMzYgMTQuMTcgMjguODIgMzYuNzUgMzEuOTcgNjIuMTR6bS0xMDggMGMxLjAyIDguMjEgNy43NSAxNC4zNSAxNS43NSAxNC4zNWgxNi4xMmM5LjUxIDAgMTcuMDgtOC41NyAxNi0xOC4zNS00LjM0LTM5LjExLTIyLjQtNzQuNTMtNTAuMTMtOTcuMTYtMTcuMzctMTQuMTctMjguODItMzYuNzUtMzEuOTgtNjIuMTVDMjcwLjk2IDYuMTQgMjY0LjIyIDAgMjU2LjIzIDBoLTE2LjEyYy05LjUxIDAtMTcuMDkgOC41Ny0xNiAxOC4zNSA0LjM0IDM5LjExIDIyLjQgNzQuNTMgNTAuMTMgOTcuMTYgMTcuMzYgMTQuMTcgMjguODIgMzYuNzUgMzEuOTcgNjIuMTR6TTQ4MCAyNTZIMjU2bC0xMTAuOTMtODMuMmE2My45OSA2My45OSAwIDAgMC0zOC40LTEyLjhINjRjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2MjI0YzAgMzUuMzUgMjguNjUgNjQgNjQgNjRoMzg0YzM1LjM1IDAgNjQtMjguNjUgNjQtNjRWMjg4YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTEyOCA0NDBjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOFYzMjhjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTEyem05NiAwYzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LThWMzI4YzAtNC40MiAzLjU4LTggOC04aDE2YzQuNDIgMCA4IDMuNTggOCA4djExMnptOTYgMGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04VjMyOGMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxMTJ6bTk2IDBjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOFYzMjhjMC00LjQyIDMuNTgtOCA4LThoMTZjNC40MiAwIDggMy41OCA4IDh2MTEyek02NCAxMjhjMzUuMzUgMCA2NC0yOC42NSA2NC02NFM5OS4zNSAwIDY0IDAgMCAyOC42NSAwIDY0czI4LjY1IDY0IDY0IDY0elwiXVxufTtcbnZhciBmYUhvdGRvZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3Rkb2cnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4MGZcIiwgXCJNNDg4LjU2IDIzLjQ0YTgwIDgwIDAgMCAwLTExMy4xMiAwbC0zNTIgMzUyYTgwIDgwIDAgMSAwIDExMy4xMiAxMTMuMTJsMzUyLTM1MmE4MCA4MCAwIDAgMCAwLTExMy4xMnptLTQ5LjkzIDk1LjE5Yy0xOS42IDE5LjU5LTM3LjUyIDIyLjY3LTUxLjkzIDI1LjE0QzM3My43NiAxNDYgMzY0LjQgMTQ3LjYgMzUyIDE2MHMtMTQgMjEuNzYtMTYuMjMgMzQuNzFjLTIuNDggMTQuNC01LjU1IDMyLjMzLTI1LjE1IDUxLjkycy0zNy41MiAyMi42Ny01MS45MiAyNS4xNUMyNDUuNzUgMjc0IDIzNi40IDI3NS42IDIyNCAyODhzLTE0IDIxLjc1LTE2LjIzIDM0LjdjLTIuNDcgMTQuNC01LjU0IDMyLjMzLTI1LjE0IDUxLjkycy0zNy41MyAyMi42OC01MS45MyAyNS4xNUMxMTcuNzYgNDAyIDEwOC40IDQwMy42IDk2IDQxNmExNiAxNiAwIDAgMS0yMi42My0yMi42M2MxOS42LTE5LjU5IDM3LjUyLTIyLjY3IDUxLjkyLTI1LjE0IDEzLTIuMjIgMjIuMy0zLjgyIDM0LjcxLTE2LjIzczE0LTIxLjc1IDE2LjIyLTM0LjdjMi40OC0xNC40IDUuNTUtMzIuMzMgMjUuMTUtNTEuOTJzMzcuNTItMjIuNjcgNTEuOTItMjUuMTRjMTMtMi4yMiAyMi4zLTMuODMgMzQuNy0xNi4yM3MxNC0yMS43NiAxNi4yNC0zNC43MWMyLjQ3LTE0LjQgNS41NC0zMi4zMyAyNS4xNC01MS45MnMzNy41Mi0yMi42OCA1MS45Mi0yNS4xNUMzOTQuMjQgMTEwIDQwMy41OSAxMDguNDEgNDE2IDk2YTE2IDE2IDAgMCAxIDIyLjYzIDIyLjYzek0zMS40NCAzMjIuMThMMzIyLjE4IDMxLjQ0bC0xMS41NC0xMS41NWMtMjUtMjUtNjMuODUtMjYuNjYtODYuNzktMy43MkwxNi4xNyAyMjMuODVjLTIyLjk0IDIyLjk0LTIxLjI3IDYxLjc5IDMuNzIgODYuNzh6bTQ0OS4xMi0xMzIuMzZMMTg5LjgyIDQ4MC41NmwxMS41NCAxMS41NWMyNSAyNSA2My44NSAyNi42NiA4Ni43OSAzLjcybDIwNy42OC0yMDcuNjhjMjIuOTQtMjIuOTQgMjEuMjctNjEuNzktMy43Mi04Ni43OXpcIl1cbn07XG52YXIgZmFIb3RlbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3RlbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjU5NFwiLCBcIk01NjAgNjRjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiAwIDAgNy4xNiAwIDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE1Ljk4djM4NEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMjQwdi04MGMwLTguOCA3LjItMTYgMTYtMTZoMzJjOC44IDAgMTYgNy4yIDE2IDE2djgwaDI0MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTE2VjY0aDE2em0tMzA0IDQ0LjhjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjRjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjR6bTAgOTZjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjRjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjR6bS0xMjgtOTZjMC02LjQgNi40LTEyLjggMTIuOC0xMi44aDM4LjRjNi40IDAgMTIuOCA2LjQgMTIuOCAxMi44djM4LjRjMCA2LjQtNi40IDEyLjgtMTIuOCAxMi44aC0zOC40Yy02LjQgMC0xMi44LTYuNC0xMi44LTEyLjh2LTM4LjR6TTE3OS4yIDI1NmgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOHpNMTkyIDM4NGMwLTUzLjAyIDQyLjk4LTk2IDk2LTk2czk2IDQyLjk4IDk2IDk2SDE5MnptMjU2LTE0MC44YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40em0wLTk2YzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtMzguNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGgzOC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40elwiXVxufTtcbnZhciBmYUhvdXJnbGFzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VyZ2xhc3MnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYyNTRcIiwgXCJNMzYwIDY0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjQgMCA5MC45NjUgNTEuMDE2IDE2Ny43MzQgMTIwLjg0MiAxOTJDNzUuMDE2IDI4MC4yNjYgMjQgMzU3LjAzNSAyNCA0NDhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtMTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0IDAtOTAuOTY1LTUxLjAxNi0xNjcuNzM0LTEyMC44NDItMTkyQzMwOC45ODQgMjMxLjczNCAzNjAgMTU0Ljk2NSAzNjAgNjR6XCJdXG59O1xudmFyIGZhSG91cmdsYXNzRW5kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXJnbGFzcy1lbmQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYyNTNcIiwgXCJNMzYwIDY0YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjQgMCA5MC45NjUgNTEuMDE2IDE2Ny43MzQgMTIwLjg0MiAxOTJDNzUuMDE2IDI4MC4yNjYgMjQgMzU3LjAzNSAyNCA0NDhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtMTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0IDAtOTAuOTY1LTUxLjAxNi0xNjcuNzM0LTEyMC44NDItMTkyQzMwOC45ODQgMjMxLjczNCAzNjAgMTU0Ljk2NSAzNjAgNjR6TTE5MiAyMDhjLTU3Ljc4NyAwLTEwNC02Ni41MTgtMTA0LTE0NGgyMDhjMCA3Ny45NDUtNDYuNTEgMTQ0LTEwNCAxNDR6XCJdXG59O1xudmFyIGZhSG91cmdsYXNzSGFsZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VyZ2xhc3MtaGFsZicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjI1MlwiLCBcIk0zNjAgMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNCAwIDkwLjk2NSA1MS4wMTYgMTY3LjczNCAxMjAuODQyIDE5MkM3NS4wMTYgMjgwLjI2NiAyNCAzNTcuMDM1IDI0IDQ0OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgzMzZjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjQgMC05MC45NjUtNTEuMDE2LTE2Ny43MzQtMTIwLjg0Mi0xOTJDMzA4Ljk4NCAyMzEuNzM0IDM2MCAxNTQuOTY1IDM2MCA2NGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjRjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0em0tNzUuMDc4IDM4NEg5OS4wOGMxNy4wNTktNDYuNzk3IDUyLjA5Ni04MCA5Mi45Mi04MCA0MC44MjEgMCA3NS44NjIgMzMuMTk2IDkyLjkyMiA4MHptLjAxOS0yNTZIOTkuMDc4QzkxLjk4OCAxMDguNTQ4IDg4IDg2Ljc0OCA4OCA2NGgyMDhjMCAyMi44MDUtMy45ODcgNDQuNTg3LTExLjA1OSA2NHpcIl1cbn07XG52YXIgZmFIb3VyZ2xhc3NTdGFydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdob3VyZ2xhc3Mtc3RhcnQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYyNTFcIiwgXCJNMzYwIDBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjQgMCA5MC45NjUgNTEuMDE2IDE2Ny43MzQgMTIwLjg0MiAxOTJDNzUuMDE2IDI4MC4yNjYgMjQgMzU3LjAzNSAyNCA0NDhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMzM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtMTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0IDAtOTAuOTY1LTUxLjAxNi0xNjcuNzM0LTEyMC44NDItMTkyQzMwOC45ODQgMjMxLjczNCAzNjAgMTU0Ljk2NSAzNjAgNjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHptLTY0IDQ0OEg4OGMwLTc3LjQ1OCA0Ni4yMDQtMTQ0IDEwNC0xNDQgNTcuNzg2IDAgMTA0IDY2LjUxNyAxMDQgMTQ0elwiXVxufTtcbnZhciBmYUhvdXNlRGFtYWdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hvdXNlLWRhbWFnZScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjZmMVwiLCBcIk0yODggMTE0Ljk2TDY5LjQ3IDMwNy43MWMtMS42MiAxLjQ2LTMuNjkgMi4xNC01LjQ3IDMuMzVWNDk2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE0OS4yM0wxOTIgNDM5LjE5bDEwNC4xMS02NC02MC4xNi0xMTkuMjJMMzg0IDM5Mi43NWwtMTA0LjExIDY0TDMxOS44MSA1MTJINDk2YzguODQgMCAxNi03LjE2IDE2LTE2VjMxMS4xYy0xLjctMS4xNi0zLjcyLTEuODItNS4yNi0zLjJMMjg4IDExNC45NnptMjgyLjY5IDEyMS4zMkw1MTIgMTg0LjQ1VjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC02NGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NTEuNjlMMzE0Ljc1IDEwLjMxQzMwNy4xMiAzLjQ1IDI5Ny41Ni4wMSAyODggMHMtMTkuMSAzLjQxLTI2LjcgMTAuMjdMNS4zMSAyMzYuMjhjLTYuNTcgNS45MS03LjEyIDE2LjAyLTEuMjEgMjIuNmwyMS40IDIzLjgyYzUuOSA2LjU3IDE2LjAyIDcuMTIgMjIuNiAxLjIxTDI3Ny40MiA4MS42M2M2LjA1LTUuMzMgMTUuMTItNS4zMyAyMS4xNyAwTDUyNy45MSAyODMuOWM2LjU3IDUuOSAxNi42OSA1LjM2IDIyLjYtMS4yMWwyMS40LTIzLjgyYzUuOS02LjU3IDUuMzYtMTYuNjktMS4yMi0yMi41OXpcIl1cbn07XG52YXIgZmFIcnl2bmlhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2hyeXZuaWEnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY2ZjJcIiwgXCJNMzY4IDI0MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTQxLjg2YzEzLjQxLTI4LjYzIDEzLjc0LTYzLjMzLTQuMTMtOTQuMDVDMzAzLjM0IDQ5Ljg0IDI2Ny4xIDMyIDIyOS45NiAzMmgtNzguODJjLTI0LjMyIDAtNDcuODYgOC41My02Ni41NCAyNC4wOUw3Mi44MyA2NS45Yy0xMC4xOCA4LjQ5LTExLjU2IDIzLjYyLTMuMDcgMzMuOGwyMC40OSAyNC41OWM4LjQ5IDEwLjE5IDIzLjYyIDExLjU2IDMzLjgxIDMuMDdsMTEuNzMtOS43OGM0LjMyLTMuNiA5Ljc3LTUuNTcgMTUuMzktNS41N2g4My42MmMxMS42OSAwIDIxLjIgOS41MiAyMS4yIDIxLjIgMCA1LjkxLTIuNDggMTEuNTgtNi44MSAxNS41OEwyMTkuNyAxNzZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDEzNC4zN2wtMzQuNjcgMzJIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxLjg2Yy0xMy40MSAyOC42My0xMy43NCA2My4zMyA0LjEzIDk0LjA1QzgwLjY2IDQ2Mi4xNSAxMTYuOSA0ODAgMTU0LjA0IDQ4MGg3OC44MmMyNC4zMiAwIDQ3Ljg2LTguNTMgNjYuNTQtMjQuMDlsMTEuNzctOS44MWMxMC4xOC04LjQ5IDExLjU2LTIzLjYyIDMuMDctMzMuOGwtMjAuNDktMjQuNTljLTguNDktMTAuMTktMjMuNjItMTEuNTYtMzMuODEtMy4wN2wtMTEuNzUgOS44YTIzLjk5MiAyMy45OTIgMCAwIDEtMTUuMzYgNS41NkgxNDkuMmMtMTEuNjkgMC0yMS4yLTkuNTItMjEuMi0yMS4yIDAtNS45MSAyLjQ4LTExLjU4IDYuODEtMTUuNThMMTY0LjMgMzM2SDM2OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMjMzLjYzbDM0LjY3LTMySDM2OHpcIl1cbn07XG52YXIgZmFJQ3Vyc29yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2ktY3Vyc29yJyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbXSwgXCJmMjQ2XCIsIFwiTTI1NiA1Mi4wNDhWMTIuMDY1QzI1NiA1LjQ5NiAyNTAuNzI2LjE0OCAyNDQuMTU4LjA2NiAyMTEuNjIxLS4zNDQgMTY2LjQ2OS4wMTEgMTI4IDM3Ljk1OSA5MC4yNjYuNzM2IDQ2Ljk3OS0uMTE0IDExLjkxMy4xMTQgNS4zMTguMTU3IDAgNS41MTkgMCAxMi4xMTR2MzkuNjQ1YzAgNi42ODcgNS40NTggMTIuMDc4IDEyLjE0NSAxMS45OThDMzguMTExIDYzLjQ0NyA5NiA2Ny4yNDMgOTYgMTEyLjE4MlYyMjRINjBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgzNnYxMTJjMCA0NC45MzItNTYuMDc1IDQ4LjAzMS04My45NSA0Ny45NTlDNS40MDQgNDQ3Ljk0MiAwIDQ1My4zMDYgMCA0NTkuOTUydjM5Ljk4M2MwIDYuNTY5IDUuMjc0IDExLjkxNyAxMS44NDIgMTEuOTk5IDMyLjUzNy40MDkgNzcuNjg5LjA1NCAxMTYuMTU4LTM3Ljg5NCAzNy43MzQgMzcuMjIzIDgxLjAyMSAzOC4wNzMgMTE2LjA4NyAzNy44NDUgNi41OTUtLjA0MyAxMS45MTMtNS40MDUgMTEuOTEzLTEyVjQ2MC4yNGMwLTYuNjg3LTUuNDU4LTEyLjA3OC0xMi4xNDUtMTEuOTk4QzIxNy44ODkgNDQ4LjU1MyAxNjAgNDQ0LjkzOSAxNjAgNDAwVjI4OGgzNmM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC0zNlYxMTIuMTgyYzAtNDQuOTMyIDU2LjA3NS00OC4yMTMgODMuOTUtNDguMTQyIDYuNjQ2LjAxOCAxMi4wNS01LjM0NiAxMi4wNS0xMS45OTJ6XCJdXG59O1xudmFyIGZhSWNlQ3JlYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWNlLWNyZWFtJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODEwXCIsIFwiTTM2OCAxNjBoLS45NGExNDQgMTQ0IDAgMSAwLTI4Ni4xMiAwSDgwYTQ4IDQ4IDAgMCAwIDAgOTZoMjg4YTQ4IDQ4IDAgMCAwIDAtOTZ6TTE5NS4zOCA0OTMuNjlhMzEuNTIgMzEuNTIgMCAwIDAgNTcuMjQgMEwzNTIgMjg4SDk2elwiXVxufTtcbnZhciBmYUljaWNsZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWNpY2xlcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdhZFwiLCBcIk01MTEuNCAzNy45QzUxNS4xIDE4LjIgNTAwIDAgNDgwIDBIMzJDMTAuNiAwLTQuOCAyMC43IDEuNCA0MS4ybDg3LjEgMjczLjRjMi41IDcuMiAxMi43IDcuMiAxNS4xIDBMMTQwIDE5MC41bDQ0LjIgMTg3LjNjMS45IDguMyAxMy43IDguMyAxNS42IDBsNDYuNS0xOTYuOSAzNC4xIDEzMy40YzIuMyA3LjYgMTMgNy42IDE1LjMgMGw0NS44LTE3Mi41IDY2LjcgMzYzLjhjMS43IDguNiAxNCA4LjYgMTUuNyAwbDg3LjUtNDY3Ljd6XCJdXG59O1xudmFyIGZhSWNvbnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaWNvbnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4NmRcIiwgXCJNMTE2LjY1IDIxOS4zNWExNS42OCAxNS42OCAwIDAgMCAyMi42NSAwbDk2Ljc1LTk5LjgzYzI4LjE1LTI5IDI2LjUtNzcuMS00LjkxLTEwMy44OEMyMDMuNzUtNy43IDE2My0zLjUgMTM3Ljg2IDIyLjQ0TDEyOCAzMi41OGwtOS44NS0xMC4xNEM5My4wNS0zLjUgNTIuMjUtNy43IDI0Ljg2IDE1LjY0Yy0zMS40MSAyNi43OC0zMyA3NC44NS01IDEwMy44OHptMTQzLjkyIDEwMC40OWgtNDhsLTcuMDgtMTQuMjRhMjcuMzkgMjcuMzkgMCAwIDAtMjUuNjYtMTcuNzhoLTcxLjcxYTI3LjM5IDI3LjM5IDAgMCAwLTI1LjY2IDE3Ljc4bC03IDE0LjI0aC00OEEyNy40NSAyNy40NSAwIDAgMCAwIDM0Ny4zdjEzNy4yNUEyNy40NCAyNy40NCAwIDAgMCAyNy40MyA1MTJoMjMzLjE0QTI3LjQ1IDI3LjQ1IDAgMCAwIDI4OCA0ODQuNTVWMzQ3LjNhMjcuNDUgMjcuNDUgMCAwIDAtMjcuNDMtMjcuNDZ6TTE0NCA0NjhhNTIgNTIgMCAxIDEgNTItNTIgNTIgNTIgMCAwIDEtNTIgNTJ6bTM1NS40LTExNS45aC02MC41OGwyMi4zNi01MC43NWMyLjEtNi42NS0zLjkzLTEzLjIxLTEyLjE4LTEzLjIxaC03NS41OWMtNi4zIDAtMTEuNjYgMy45LTEyLjUgOS4xbC0xNi44IDEwNi45M2MtMSA2LjMgNC44OCAxMS44OSAxMi41IDExLjg5aDYyLjMxbC0yNC4yIDgzYy0xLjg5IDYuNjUgNC4yIDEyLjkgMTIuMjMgMTIuOWExMy4yNiAxMy4yNiAwIDAgMCAxMC45Mi01LjI1bDkyLjQtMTM4LjkxYzQuODgtNi45MS0xLjE2LTE1LjctMTAuODctMTUuN3pNNDc4LjA4LjMzTDMyOS41MSAyMy4xN0MzMTQuODcgMjUuNDIgMzA0IDM4LjkyIDMwNCA1NC44M1YxNjEuNmE4My4yNSA4My4yNSAwIDAgMC0xNi0xLjdjLTM1LjM1IDAtNjQgMjEuNDgtNjQgNDhzMjguNjUgNDggNjQgNDhjMzUuMiAwIDYzLjczLTIxLjMyIDY0LTQ3LjY2Vjk5LjY2bDExMi0xNy4yMnY0Ny4xOGE4My4yNSA4My4yNSAwIDAgMC0xNi0xLjdjLTM1LjM1IDAtNjQgMjEuNDgtNjQgNDhzMjguNjUgNDggNjQgNDhjMzUuMiAwIDYzLjczLTIxLjMyIDY0LTQ3LjY2VjMyYzAtMTkuNDgtMTYtMzQuNDItMzMuOTItMzEuNjd6XCJdXG59O1xudmFyIGZhSWRCYWRnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpZC1iYWRnZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjJjMVwiLCBcIk0zMzYgMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTQ0IDMyaDk2YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2aC05NmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNnptNDggMTI4YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptMTEyIDIzNi44YzAgMTAuNi0xMCAxOS4yLTIyLjQgMTkuMkgxMDIuNEM5MCA0MTYgODAgNDA3LjQgODAgMzk2Ljh2LTE5LjJjMC0zMS44IDMwLjEtNTcuNiA2Ny4yLTU3LjZoNWMxMi4zIDUuMSAyNS43IDggMzkuOCA4czI3LjYtMi45IDM5LjgtOGg1YzM3LjEgMCA2Ny4yIDI1LjggNjcuMiA1Ny42djE5LjJ6XCJdXG59O1xudmFyIGZhSWRDYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2lkLWNhcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyYzJcIiwgXCJNNTI4IDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MTZoNTc2VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0wIDQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTI4SDB2MzA0em0zNTItMjMyYzAtNC40IDMuNi04IDgtOGgxNDRjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEgzNjBjLTQuNCAwLTgtMy42LTgtOHYtMTZ6bTAgNjRjMC00LjQgMy42LTggOC04aDE0NGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDM2MGMtNC40IDAtOC0zLjYtOC04di0xNnptMCA2NGMwLTQuNCAzLjYtOCA4LThoMTQ0YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIMzYwYy00LjQgMC04LTMuNi04LTh2LTE2ek0xNzYgMTkyYzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHpNNjcuMSAzOTYuMkM3NS41IDM3MC41IDk5LjYgMzUyIDEyOCAzNTJoOC4yYzEyLjMgNS4xIDI1LjcgOCAzOS44IDhzMjcuNi0yLjkgMzkuOC04aDguMmMyOC40IDAgNTIuNSAxOC41IDYwLjkgNDQuMiAzLjIgOS45LTUuMiAxOS44LTE1LjYgMTkuOEg4Mi43Yy0xMC40IDAtMTguOC0xMC0xNS42LTE5Ljh6XCJdXG59O1xudmFyIGZhSWRDYXJkQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2lkLWNhcmQtYWx0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNDdmXCIsIFwiTTUyOCA2NEgzODR2OTZIMTkyVjY0SDQ4QzIxLjUgNjQgMCA4NS41IDAgMTEydjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0ODBjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMTEyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yODggMjI0YzM1LjMgMCA2NCAyOC43IDY0IDY0cy0yOC43IDY0LTY0IDY0LTY0LTI4LjctNjQtNjQgMjguNy02NCA2NC02NHptOTMuMyAyMjRIMTk0LjdjLTEwLjQgMC0xOC44LTEwLTE1LjYtMTkuOCA4LjMtMjUuNiAzMi40LTQ0LjIgNjAuOS00NC4yaDguMmMxMi4zIDUuMSAyNS43IDggMzkuOCA4czI3LjYtMi45IDM5LjgtOGg4LjJjMjguNCAwIDUyLjUgMTguNSA2MC45IDQ0LjIgMy4yIDkuOC01LjIgMTkuOC0xNS42IDE5Ljh6TTM1MiAzMmMwLTE3LjctMTQuMy0zMi0zMi0zMmgtNjRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2aDEyOFYzMnpcIl1cbn07XG52YXIgZmFJZ2xvbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpZ2xvbycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjdhZVwiLCBcIk0zMjAgMzMuOWMtMTAuNS0xLjItMjEuMi0xLjktMzItMS45LTk5LjggMC0xODcuOCA1MC44LTIzOS40IDEyOEgzMjBWMzMuOXpNOTYgMTkySDMwLjNDMTEuMSAyMzAuNiAwIDI3NCAwIDMyMGg5NlYxOTJ6TTM1MiAzOS40VjE2MGgxNzUuNEM0ODcuMiA5OS45IDQyNC44IDU1LjkgMzUyIDM5LjR6TTQ4MCAzMjBoOTZjMC00Ni0xMS4xLTg5LjQtMzAuMy0xMjhINDgwdjEyOHptLTY0IDY0djk2aDEyOGMxNy43IDAgMzItMTQuMyAzMi0zMnYtOTZINDExLjVjMi42IDEwLjMgNC41IDIwLjkgNC41IDMyem0zMi0xOTJIMTI4djEyOGg0OS44YzIyLjItMzguMSA2My02NCAxMTAuMi02NHM4OCAyNS45IDExMC4yIDY0SDQ0OFYxOTJ6TTAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDEyOHYtOTZjMC0xMS4xIDEuOS0yMS43IDQuNS0zMkgwdjk2em0yODgtMTYwYy01MyAwLTk2IDQzLTk2IDk2djk2aDE5MnYtOTZjMC01My00My05Ni05Ni05NnpcIl1cbn07XG52YXIgZmFJbWFnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpbWFnZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAzZVwiLCBcIk00NjQgNDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjExMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQxNmMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djI4OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4ek0xMTIgMTIwYy0zMC45MjggMC01NiAyNS4wNzItNTYgNTZzMjUuMDcyIDU2IDU2IDU2IDU2LTI1LjA3MiA1Ni01Ni0yNS4wNzItNTYtNTYtNTZ6TTY0IDM4NGgzODRWMjcybC04Ny41MTUtODcuNTE1Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcxIDBMMjA4IDMyMGwtNTUuNTE1LTU1LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDY0IDMzNnY0OHpcIl1cbn07XG52YXIgZmFJbWFnZXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW1hZ2VzJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMzAyXCIsIFwiTTQ4MCA0MTZ2MTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxNzZjMC0yNi41MSAyMS40OS00OCA0OC00OGgxNnYyMDhjMCA0NC4xMTIgMzUuODg4IDgwIDgwIDgwaDMzNnptOTYtODBWODBjMC0yNi41MS0yMS40OS00OC00OC00OEgxNDRjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjU2YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzg0YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh6TTI1NiAxMjhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDggMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDh6bS05NiAxNDRsNTUuNTE1LTU1LjUxNWM0LjY4Ni00LjY4NiAxMi4yODQtNC42ODYgMTYuOTcxIDBMMjcyIDI1NmwxMzUuNTE1LTEzNS41MTVjNC42ODYtNC42ODYgMTIuMjg0LTQuNjg2IDE2Ljk3MSAwTDUxMiAyMDh2MTEySDE2MHYtNDh6XCJdXG59O1xudmFyIGZhSW5ib3ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnaW5ib3gnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwMWNcIiwgXCJNNTY3LjkzOCAyNDMuOTA4TDQ2Mi4yNSA4NS4zNzRBNDguMDAzIDQ4LjAwMyAwIDAgMCA0MjIuMzExIDY0SDE1My42ODlhNDggNDggMCAwIDAtMzkuOTM4IDIxLjM3NEw4LjA2MiAyNDMuOTA4QTQ3Ljk5NCA0Ny45OTQgMCAwIDAgMCAyNzAuNTMzVjQwMGMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDQ4MGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjI3MC41MzNhNDcuOTk0IDQ3Ljk5NCAwIDAgMC04LjA2Mi0yNi42MjV6TTE2Mi4yNTIgMTI4aDI1MS40OTdsODUuMzMzIDEyOEgzNzZsLTMyIDY0SDIzMmwtMzItNjRINzYuOTE4bDg1LjMzNC0xMjh6XCJdXG59O1xudmFyIGZhSW5kZW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2luZGVudCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAzY1wiLCBcIk0yNy4zMSAzNjMuM2w5Ni05NmExNiAxNiAwIDAgMCAwLTIyLjYybC05Ni05NkMxNy4yNyAxMzguNjYgMCAxNDUuNzggMCAxNjB2MTkyYzAgMTQuMzEgMTcuMzMgMjEuMyAyNy4zMSAxMS4zek00MzIgNDE2SDE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTMuMTctMTI4SDIwNC44M0ExMi44MiAxMi44MiAwIDAgMCAxOTIgMzAwLjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDIwNC44MyAzNTJoMjMwLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQ0OCAzMzkuMTd2LTM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQzNS4xNyAyODh6bTAtMTI4SDIwNC44M0ExMi44MiAxMi44MiAwIDAgMCAxOTIgMTcyLjgzdjM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDIwNC44MyAyMjRoMjMwLjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQ0OCAyMTEuMTd2LTM4LjM0QTEyLjgyIDEyLjgyIDAgMCAwIDQzNS4xNyAxNjB6TTQzMiAzMkgxNkExNiAxNiAwIDAgMCAwIDQ4djMyYTE2IDE2IDAgMCAwIDE2IDE2aDQxNmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnpcIl1cbn07XG52YXIgZmFJbmR1c3RyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpbmR1c3RyeScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI3NVwiLCBcIk00NzUuMTE1IDE2My43ODFMMzM2IDI1Mi4zMDl2LTY4LjI4YzAtMTguOTE2LTIwLjkzMS0zMC4zOTktMzYuODg1LTIwLjI0OEwxNjAgMjUyLjMwOVY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2NDAwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg0NjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjE4NC4wMjljMC0xOC45MTctMjAuOTMxLTMwLjM5OS0zNi44ODUtMjAuMjQ4elwiXVxufTtcbnZhciBmYUluZmluaXR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2luZmluaXR5JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTM0XCIsIFwiTTQ3MS4xIDk2QzQwNSA5NiAzNTMuMyAxMzcuMyAzMjAgMTc0LjYgMjg2LjcgMTM3LjMgMjM1IDk2IDE2OC45IDk2IDc1LjggOTYgMCAxNjcuOCAwIDI1NnM3NS44IDE2MCAxNjguOSAxNjBjNjYuMSAwIDExNy44LTQxLjMgMTUxLjEtNzguNiAzMy4zIDM3LjMgODUgNzguNiAxNTEuMSA3OC42IDkzLjEgMCAxNjguOS03MS44IDE2OC45LTE2MFM1NjQuMiA5NiA0NzEuMSA5NnpNMTY4LjkgMzIwYy00MC4yIDAtNzIuOS0yOC43LTcyLjktNjRzMzIuNy02NCA3Mi45LTY0YzM4LjIgMCA3My40IDM2LjEgOTQgNjQtMjAuNCAyNy42LTU1LjkgNjQtOTQgNjR6bTMwMi4yIDBjLTM4LjIgMC03My40LTM2LjEtOTQtNjQgMjAuNC0yNy42IDU1LjktNjQgOTQtNjQgNDAuMiAwIDcyLjkgMjguNyA3Mi45IDY0cy0zMi43IDY0LTcyLjkgNjR6XCJdXG59O1xudmFyIGZhSW5mbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdpbmZvJyxcbiAgaWNvbjogWzE5MiwgNTEyLCBbXSwgXCJmMTI5XCIsIFwiTTIwIDQyNC4yMjloMjBWMjc5Ljc3MUgyMGMtMTEuMDQ2IDAtMjAtOC45NTQtMjAtMjBWMjEyYzAtMTEuMDQ2IDguOTU0LTIwIDIwLTIwaDExMmMxMS4wNDYgMCAyMCA4Ljk1NCAyMCAyMHYyMTIuMjI5aDIwYzExLjA0NiAwIDIwIDguOTU0IDIwIDIwVjQ5MmMwIDExLjA0Ni04Ljk1NCAyMC0yMCAyMEgyMGMtMTEuMDQ2IDAtMjAtOC45NTQtMjAtMjB2LTQ3Ljc3MWMwLTExLjA0NiA4Ljk1NC0yMCAyMC0yMHpNOTYgMEM1Ni4yMzUgMCAyNCAzMi4yMzUgMjQgNzJzMzIuMjM1IDcyIDcyIDcyIDcyLTMyLjIzNSA3Mi03MlMxMzUuNzY0IDAgOTYgMHpcIl1cbn07XG52YXIgZmFJbmZvQ2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2luZm8tY2lyY2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDVhXCIsIFwiTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6XCJdXG59O1xudmFyIGZhSXRhbGljID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2l0YWxpYycsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjAzM1wiLCBcIk0zMjAgNDh2MzJhMTYgMTYgMCAwIDEtMTYgMTZoLTYyLjc2bC04MCAzMjBIMjA4YTE2IDE2IDAgMCAxIDE2IDE2djMyYTE2IDE2IDAgMCAxLTE2IDE2SDE2YTE2IDE2IDAgMCAxLTE2LTE2di0zMmExNiAxNiAwIDAgMSAxNi0xNmg2Mi43Nmw4MC0zMjBIMTEyYTE2IDE2IDAgMCAxLTE2LTE2VjQ4YTE2IDE2IDAgMCAxIDE2LTE2aDE5MmExNiAxNiAwIDAgMSAxNiAxNnpcIl1cbn07XG52YXIgZmFKZWRpID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2plZGknLFxuICBpY29uOiBbNTQ0LCA1MTIsIFtdLCBcImY2NjlcIiwgXCJNNDc5Ljk5IDM1Mmw1OC44OC01OC44N2MzLjI5LTE2LjggNS4xMy0zNC4xMiA1LjEzLTUxLjg2IDAtNS44MS0uNjgtMTEuNTEtMS4wNS0xNy4yN0g0OTZsNDEuMjUtNDEuMjRjLTE0LjUtNjQuNzktNTIuNDMtMTIzLjA1LTEwNy45MS0xNjIuMjctMi43Ny0xLjk2LTUuOTctMi45OS05LjI1LTIuOTktNS4zNyAwLTEwLjQxIDIuNzEtMTMuNDkgNy4yNC0zLjA1IDQuNDktMy42NCA5Ljk5LTEuNjEgMTUuMDkgNi41NSAxNi40NiA5Ljg2IDMzLjczIDkuODYgNTEuMzEgMCA0NS4xMi0yMS4wMyA4Ni41Ny01Ny42OSAxMTMuNzMtNC4wMiAyLjk4LTYuNDYgNy41LTYuNyAxMi40LS4yNCA0LjkyIDEuNzYgOS42NiA1LjQ5IDEzLjAzIDMyLjkzIDI5Ljc1IDQ3LjM1IDczLjUxIDM4LjU3IDExNy4wNy05Ljc0IDQ4LjM1LTQ4Ljg0IDg3LjEtOTcuMzEgOTYuNWwtMi41LTY1LjM0TDMyMS44OCAzOTdjMi45OCAyLjA2IDcuMzkgMS42OSAxMC4wMi0uOGE4LjAwMiA4LjAwMiAwIDAgMCAxLjM0LTkuOTJsLTIwLjExLTMzLjczIDQyLjA3LTguNzJjMy43LS43NSA2LjM4LTQuMDUgNi4zOC03LjgzIDAtMy43Ny0yLjY5LTcuMDYtNi4zOC03LjgzbC00Mi4wNy04LjczIDIwLjEzLTMzLjc3YzEuOTItMy4yMyAxLjM0LTcuMzEtMS4zOC05LjkxLTIuNy0yLjU1LTYuOTctMi44OS0xMC0uOGwtMzAuMzkgMjAuNjdMMjc5Ljk2IDcuN2E3Ljk2NCA3Ljk2NCAwIDAgMC04LTcuN2MtNC4zMyAwLTcuODQgMy4zOC04IDcuNjdsLTExLjUyIDI4Ny45Ny0zMC4zOS0yMC42NmMtMy4xNC0yLjEyLTcuMjctMS44My0xMCAuNzgtMi43MiAyLjU5LTMuMyA2LjY3LTEuMzYgOS45NGwyMC4xMSAzMy43My00Mi4wNyA4LjczYy0zLjcuNzUtNi4zOCA0LjA1LTYuMzggNy44M3MyLjY3IDcuMDggNi4zOCA3LjgzbDQyLjA3IDguNzItMjAuMTMgMzMuNzdjLTEuOTIgMy4yMy0xLjM0IDcuMzMgMS4zOSA5Ljk0IDIuNTkgMi40NSA3LjAzIDIuNzUgMTAgLjc1bDI3LjE2LTE4LjQ4LTIuNSA2NS4yNmMtNTYuOTQtMTEuNjQtOTkuODktNjEuODktOTkuODktMTIxLjkyIDAtMzUuMDggMTQuNjItNjcuNiA0MS4xNy05MS41OCAzLjcyLTMuMzYgNS43Mi04LjExIDUuNDgtMTMuMDEtLjI0LTQuOS0yLjY4LTkuNDEtNi42OS0xMi4zOC0zNi42Ny0yNy4xNi01Ny43MS02OC42Mi01Ny43MS0xMTMuNzQgMC0xNy41NiAzLjMxLTM0LjgxIDkuODQtNTEuMjYgMi4wMi01LjA5IDEuNDMtMTAuNTktMS42Mi0xNS4wOS0zLjA4LTQuNTQtOC4xMy03LjI1LTEzLjUxLTcuMjUtMy4zIDAtNi41IDEuMDQtOS4yNyAzLTU1Ljg3IDM5LjUyLTkzLjYgOTcuMzctMTA3Ljk3IDE2Mi4wN0w0Ny45MyAyMjRILjcyYy0uNjMgOS45Mi0uOTcgMTkuOTEtLjUgMjkuOTkuNjIgMTMuNDMgMi41NCAyNi41MyA1LjExIDM5LjQxbDU4LjYgNTguNkgyNC4wMmM0MS4yNSA5MC4yMyAxMzEuMTMgMTU0Ljk0IDIzNS4xIDE1OS43MSA0LjMuMiA4LjU5LjI5IDEyLjg1LjI5IDExMC4zNCAwIDIwNS4zNS02NS44MyAyNDcuOTgtMTYwaC0zOS45NnpcIl1cbn07XG52YXIgZmFKb2ludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdqb2ludCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjU5NVwiLCBcIk00NDQuMzQgMTgxLjFjMjIuMzggMTUuNjggMzUuNjYgNDEuMTYgMzUuNjYgNjguNTlWMjgwYzAgNC40MiAzLjU4IDggOCA4aDQ4YzQuNDIgMCA4LTMuNTggOC04di0zMC4zMWMwLTQzLjI0LTIxLjAxLTgzLjQxLTU2LjM0LTEwOC4wNkM0NjMuODUgMTI1LjAyIDQ0OCA5OS4zNCA0NDggNzAuMzFWOGMwLTQuNDItMy41OC04LTgtOGgtNDhjLTQuNDIgMC04IDMuNTgtOCA4djY2LjRjMCA0My42OSAyNC41NiA4MS42MyA2MC4zNCAxMDYuN3pNMTk0Ljk3IDM1OC45OEMxMjYuMDMgMzcwLjA3IDU5LjY5IDM5NC42OSAwIDQzMmM4My42NSA1Mi4yOCAxODAuMyA4MCAyNzguOTQgODBoODguNTdMMjU0Ljc5IDM4MC40OWMtMTQuNzQtMTcuMi0zNy40NS0yNS4xMS01OS44Mi0yMS41MXpNNTUzLjI4IDg3LjA5Yy01LjY3LTMuOC05LjI4LTkuOTYtOS4yOC0xNi43OFY4YzAtNC40Mi0zLjU4LTgtOC04aC00OGMtNC40MiAwLTggMy41OC04IDh2NjIuMzFjMCAyMi4wMiAxMC4xNyA0My40MSAyOC42NCA1NS4zOUM1NTAuNzkgMTUzLjA0IDU3NiAxOTkuNTQgNTc2IDI0OS42OVYyODBjMCA0LjQyIDMuNTggOCA4IDhoNDhjNC40MiAwIDgtMy41OCA4LTh2LTMwLjMxYzAtNjUuNDQtMzIuNDEtMTI2LjE5LTg2LjcyLTE2Mi42ek0zNjAuODkgMzUyLjA1Yy0zNC40LjA2LTg2LjgxLjE1LTg4LjIxLjE3bDExNy44IDEzNy40M0E2My45ODcgNjMuOTg3IDAgMCAwIDQzOS4wNyA1MTJoODguNDVMNDA5LjU3IDM3NC40YTYzLjk1NSA2My45NTUgMCAwIDAtNDguNjgtMjIuMzV6TTYxNiAzNTJINDMybDExNy45OSAxMzcuNjVBNjMuOTg3IDYzLjk4NyAwIDAgMCA1OTguNTggNTEySDYxNmMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0VjM3NmMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYUpvdXJuYWxXaGlsbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnam91cm5hbC13aGlsbHMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY2NmFcIiwgXCJNNDQ4IDM1OC40VjI1LjZjMC0xNi05LjYtMjUuNi0yNS42LTI1LjZIOTZDNDEuNiAwIDAgNDEuNiAwIDk2djMyMGMwIDU0LjQgNDEuNiA5NiA5NiA5NmgzMjYuNGMxMi44IDAgMjUuNi05LjYgMjUuNi0yNS42di0xNmMwLTYuNC0zLjItMTIuOC05LjYtMTkuMi0zLjItMTYtMy4yLTYwLjggMC03My42IDYuNC0zLjIgOS42LTkuNiA5LjYtMTkuMnpNMTMzLjA4IDE0NC4zOWwyMS4yNiAyMS4yNmMxLjU2IDEuNTYgMy42MSAyLjM0IDUuNjYgMi4zNHM0LjA5LS43OCA1LjY2LTIuMzRjMy4xMi0zLjEyIDMuMTItOC4xOSAwLTExLjMxbC0yNi40Mi0yNi40MmMxMC0yMC45IDI2LjI0LTM3Ljk3IDQ2LjM3LTQ5LjI2QzE3OS42MiA4OC40IDE3NiA5OS43NCAxNzYgMTEyYzAgMTkuOTYgOS4zMyAzNy41NyAyMy42NiA0OS4zMUMxOTAuMDEgMTcxLjM3IDE4NCAxODQuOTYgMTg0IDIwMGMwIDI2Ljk0IDE5LjA0IDQ5LjQgNDQuMzggNTQuNzZsMS4zNi0zMi43MS0xMC4zNyA3LjA0Yy0uNjkuNDUtMS40Ny42OS0yLjI1LjY5LTEgMC0xLjk4LS4zOC0yLjc1LTEuMDlhNC4wMDYgNC4wMDYgMCAwIDEtLjY5LTQuOTVsOC41NC0xNC4zMS0xNy45MS0zLjcyYy0xLjg2LS4zOS0zLjE5LTIuMDMtMy4xOS0zLjkyczEuMzMtMy41MyAzLjE5LTMuOTJsMTcuOTEtMy43Mi04LjU0LTE0LjMxYy0uOTUtMS42MS0uNjctMy42Ny42OS00Ljk1IDEuMzYtMS4zIDMuNDQtMS40NCA1LS40MWwxMi4wMSA4LjE2TDIzNiA3MS44M2MuMDktMi4xNCAxLjg2LTMuODMgNC0zLjgzczMuOTEgMS42OSA0IDMuODNsNC42OCAxMTIuMjkgMTQuMi05LjY1YTQuMDY3IDQuMDY3IDAgMCAxIDUgLjQxIDQuMDA2IDQuMDA2IDAgMCAxIC42OSA0Ljk1bC04LjU0IDE0LjMxIDE3LjkxIDMuNzJjMS44Ni4zOSAzLjE5IDIuMDMgMy4xOSAzLjkycy0xLjMzIDMuNTMtMy4xOSAzLjkybC0xNy45MSAzLjcyIDguNTQgMTQuMzFjLjk1IDEuNjEuNjcgMy42Ny0uNjkgNC45NS0uNzcuNzItMS43NyAxLjA5LTIuNzUgMS4wOS0uNzggMC0xLjU2LS4yMy0yLjI1LS42OWwtMTIuNjgtOC42MiAxLjQzIDM0LjI4QzI3Ni45NiAyNDkuNCAyOTYgMjI2Ljk0IDI5NiAyMDBjMC0xNS4wNC02LjAxLTI4LjYzLTE1LjY2LTM4LjY5QzI5NC42NyAxNDkuNTcgMzA0IDEzMS45NiAzMDQgMTEyYzAtMTIuMjYtMy42Mi0yMy42LTkuNi0zMy4zMyAyMC4xMyAxMS4yOCAzNi4zNyAyOC4zNiA0Ni4zNyA0OS4yNmwtMjYuNDIgMjYuNDJjLTMuMTIgMy4xMi0zLjEyIDguMTkgMCAxMS4zMSAxLjU2IDEuNTYgMy42MSAyLjM0IDUuNjYgMi4zNHM0LjA5LS43OCA1LjY2LTIuMzRsMjEuMjYtMjEuMjZjMi45NyAxMC4wOCA1LjA3IDIwLjU1IDUuMDcgMzEuNiAwIC41Mi0uMTQuOTktLjE1IDEuNTFsLTM3LjExIDMyLjQ3YTcuOTc1IDcuOTc1IDAgMCAwLS43NSAxMS4yOCA3Ljk3IDcuOTcgMCAwIDAgNi4wMiAyLjczYzEuODggMCAzLjc1LS42NiA1LjI3LTEuOThsMjMuNTktMjAuNjRDMzM3LjMyIDI1MC45NiAyOTMuMDkgMjg4IDI0MCAyODhzLTk3LjMyLTM3LjA0LTEwOC44Ni04Ni42MmwyMy41OSAyMC42NEE3Ljk1NyA3Ljk1NyAwIDAgMCAxNjAgMjI0YzIuMjIgMCA0LjQ0LS45MiA2LjAyLTIuNzMgMi45Mi0zLjMzIDIuNTgtOC4zOC0uNzUtMTEuMjhsLTM3LjExLTMyLjQ3Yy0uMDEtLjUyLS4xNS0uOTktLjE1LTEuNTEtLjAxLTExLjA2IDIuMDktMjEuNTMgNS4wNy0zMS42MnpNMzgwLjggNDQ4SDk2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnMxNi0zMiAzMi0zMmgyODQuOHY2NHpcIl1cbn07XG52YXIgZmFLYWFiYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdrYWFiYScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjY2YlwiLCBcIk01NTQuMTIgODMuNTFMMzE4LjM2IDQuOTNhOTUuOTYyIDk1Ljk2MiAwIDAgMC02MC43MSAwTDIxLjg4IDgzLjUxQTMyLjAwNiAzMi4wMDYgMCAwIDAgMCAxMTMuODd2NDkuMDFsMjY1LjAyLTc5LjUxYzE1LjAzLTQuNSAzMC45Mi00LjUgNDUuOTggMGwyNjUgNzkuNTF2LTQ5LjAxYzAtMTMuNzctOC44MS0yNi0yMS44OC0zMC4zNnptLTI3OS45IDMwLjUyTDAgMTk2LjN2MjI4LjM4YzAgMTUgMTAuNDIgMjcuOTggMjUuMDYgMzEuMjRsMjQyLjEyIDUzLjhhOTUuOTM3IDk1LjkzNyAwIDAgMCA0MS42NSAwbDI0Mi4xMi01My44YzE0LjY0LTMuMjUgMjUuMDYtMTYuMjQgMjUuMDYtMzEuMjRWMTk2LjI5bC0yNzQuMi04Mi4yNmMtOS4wNC0yLjcyLTE4LjU5LTIuNzItMjcuNTkgMHpNMTI4IDIzMC4xMWMwIDMuNjEtMi40MSA2Ljc3LTUuODkgNy43MmwtODAgMjEuODJDMzcuMDIgMjYxLjAzIDMyIDI1Ny4yIDMyIDI1MS45M3YtMTYuNThjMC0zLjYxIDIuNDEtNi43NyA1Ljg5LTcuNzJsODAtMjEuODJjNS4wOS0xLjM5IDEwLjExIDIuNDQgMTAuMTEgNy43MnYxNi41OHptMTQ0LTM5LjI4YzAgMy42MS0yLjQxIDYuNzctNS44OSA3LjcybC05NiAyNi4xOGMtNS4wOSAxLjM5LTEwLjExLTIuNDQtMTAuMTEtNy43MnYtMTYuNThjMC0zLjYxIDIuNDEtNi43NyA1Ljg5LTcuNzJsOTYtMjYuMThjNS4wOS0xLjM5IDEwLjExIDIuNDQgMTAuMTEgNy43MnYxNi41OHptMTc2IDIyLjdjMC01LjI4IDUuMDItOS4xMSAxMC4xMS03LjcybDgwIDIxLjgyYzMuNDguOTUgNS44OSA0LjExIDUuODkgNy43MnYxNi41OGMwIDUuMjgtNS4wMiA5LjExLTEwLjExIDcuNzJsLTgwLTIxLjgyYTcuOTk3IDcuOTk3IDAgMCAxLTUuODktNy43MnYtMTYuNTh6bS0xNDQtMzkuMjdjMC01LjI4IDUuMDItOS4xMSAxMC4xMS03LjcybDk2IDI2LjE4YzMuNDguOTUgNS44OSA0LjExIDUuODkgNy43MnYxNi41OGMwIDUuMjgtNS4wMiA5LjExLTEwLjExIDcuNzJsLTk2LTI2LjE4YTcuOTk3IDcuOTk3IDAgMCAxLTUuODktNy43MnYtMTYuNTh6XCJdXG59O1xudmFyIGZhS2V5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2tleScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA4NFwiLCBcIk01MTIgMTc2LjAwMUM1MTIgMjczLjIwMyA0MzMuMjAyIDM1MiAzMzYgMzUyYy0xMS4yMiAwLTIyLjE5LTEuMDYyLTMyLjgyNy0zLjA2OWwtMjQuMDEyIDI3LjAxNEEyMy45OTkgMjMuOTk5IDAgMCAxIDI2MS4yMjMgMzg0SDIyNHY0MGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRoLTQwdjQwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0di03OC4wNTljMC02LjM2NSAyLjUyOS0xMi40NyA3LjAyOS0xNi45NzFsMTYxLjgwMi0xNjEuODAyQzE2My4xMDggMjEzLjgxNCAxNjAgMTk1LjI3MSAxNjAgMTc2IDE2MCA3OC43OTggMjM4Ljc5Ny4wMDEgMzM1Ljk5OSAwIDQzMy40ODgtLjAwMSA1MTIgNzguNTExIDUxMiAxNzYuMDAxek0zMzYgMTI4YzAgMjYuNTEgMjEuNDkgNDggNDggNDhzNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDgtNDggMjEuNDktNDggNDh6XCJdXG59O1xudmFyIGZhS2V5Ym9hcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAna2V5Ym9hcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxMWNcIiwgXCJNNTI4IDQ0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxMTJjMC0yNi41MSAyMS40OS00OCA0OC00OGg0ODBjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYyODhjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMTI4IDE4MHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkg3NmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptLTMzNiA5NnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem0tMzM2IDk2di00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDc2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMjg4IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJIMTcyYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoMjMyYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpcIl1cbn07XG52YXIgZmFLaGFuZGEgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAna2hhbmRhJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjZkXCIsIFwiTTQxNS44MSA2NmMtNi4zNy0zLjUtMTQuMzctMi4zMy0xOS4zNiAzLjAyYTE1Ljk3NCAxNS45NzQgMCAwIDAtMS45MSAxOS41MmMxNi40OSAyNi4xNiAyNS4yIDU2LjM5IDI1LjIgODcuNDEtLjE5IDUzLjI1LTI2Ljc3IDEwMi42OS03MS4yNyAxMzIuNDFsLTc2LjYzIDUzLjM1di0yMC4xbDQ0LjA1LTM2LjA5YzMuOTItNC4yIDUtMTAuMDkgMi44MS0xNS4yOEwzMTAuODUgMjczYzMzLjg0LTE5LjI2IDU2Ljk0LTU1LjI1IDU2Ljk0LTk2Ljk5IDAtNDAuNzktMjIuMDItNzYuMTMtNTQuNTktOTUuNzFsNS4yMi0xMS40NGMyLjM0LTUuNTMuOTMtMTEuODMtMy41Ny0xNi4wNEwyNTUuODYgMGwtNTguOTkgNTIuODFjLTQuNSA0LjIxLTUuOSAxMC41MS0zLjU3IDE2LjA0bDUuMjIgMTEuNDRjLTMyLjU3IDE5LjU4LTU0LjU5IDU0LjkzLTU0LjU5IDk1LjcyIDAgNDEuNzUgMjMuMDkgNzcuNzMgNTYuOTQgOTYuOTlsLTcuODUgMTcuMjRjLTIuMTkgNS4xOC0xLjEgMTEuMDcgMi44MSAxNS4yOGw0NC4wNSAzNi4wOXYxOS45bC03Ni41OS01My4zM0MxMTkuMDIgMjc4LjYyIDkyLjQ0IDIyOS4xOSA5Mi4yNiAxNzZjMC0zMS4wOCA4LjcxLTYxLjMxIDI1LjItODcuNDcgMy44Ny02LjE2IDIuNC0xMy43Ny0yLjU5LTE5LjA4LTUtNS4zNC0xMy42OC02LjItMjAuMDItMi43QzE2LjMyIDEwOS42LTIyLjMgMjA1LjMgMTMuMzYgMjk1Ljk5YzcuMDcgMTcuOTkgMTcuODkgMzQuMzggMzAuNDYgNDkuMDZsNTUuOTcgNjUuMzZjNC44NyA1LjY5IDEzLjA0IDcuMjQgMTkuNjUgMy43Mmw3OS4zNS00Mi4yM0wyMjggMzkyLjIzbC00Ny4wOCAzMi43OGMtMS42Ny0uMzctMy4yMy0xLjAxLTUuMDEtMS4wMS0xMy4yNSAwLTIzLjk5IDEwLjc0LTIzLjk5IDI0IDAgMTMuMjUgMTAuNzQgMjQgMjMuOTkgMjQgMTIuMSAwIDIxLjY5LTkuMTEgMjMuMzMtMjAuNzZsNDAuNjMtMjguMjh2MjkuOTVjLTkuMzkgNS41Ny0xNS45OSAxNS4zOC0xNS45OSAyNy4xIDAgMTcuNjcgMTQuMzIgMzIgMzEuOTggMzJzMzEuOTgtMTQuMzMgMzEuOTgtMzJjMC0xMS43MS02LjYxLTIxLjUyLTE1Ljk5LTI3LjF2LTMwLjE1bDQwLjkxIDI4LjQ4QzMxNC40MSA0NjIuODkgMzI0IDQ3MiAzMzYuMDkgNDcyYzEzLjI1IDAgMjMuOTktMTAuNzUgMjMuOTktMjQgMC0xMy4yNi0xMC43NC0yNC0yMy45OS0yNC0xLjc4IDAtMy4zNC42NC01LjAxIDEuMDFMMjg0IDM5Mi4yM2wyOS4yMS0yMC4zNCA3OS4zNSA0Mi4yM2M2LjYxIDMuNTIgMTQuNzggMS45NyAxOS42NS0zLjcxbDUyLjUxLTYxLjMxYzE4Ljg3LTIyLjAyIDM0LTQ3LjUgNDEuMjUtNzUuNTkgMjEuNjItODMuNjYtMTYuNDUtMTY3LjI3LTkwLjE2LTIwNy41MXptLTk1Ljk5IDExMGMwIDIyLjMtMTEuNDkgNDEuOTItMjguODMgNTMuMzhsLTUuNjUtMTIuNDFjLTguNzUtMjQuNTItOC43NS01MS4wNCAwLTc1LjU2bDcuODMtMTcuMThjMTYuMDcgMTEuNjUgMjYuNjUgMzAuNDUgMjYuNjUgNTEuNzd6bS0xMjcuOTMgMGMwLTIxLjMyIDEwLjU4LTQwLjEyIDI2LjY2LTUxLjc2bDcuODMgMTcuMThjOC43NSAyNC41MiA4Ljc1IDUxLjAzIDAgNzUuNTZsLTUuNjUgMTIuNDFjLTE3LjM0LTExLjQ2LTI4Ljg0LTMxLjA5LTI4Ljg0LTUzLjM5elwiXVxufTtcbnZhciBmYUtpc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAna2lzcycsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU5NlwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0tODAgMjMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTM2IDE1NmMwIDE5LjItMjguNyA0MS41LTcxLjUgNDQtOC41LjgtMTIuMS0xMS44LTMuNi0xNS40bDE3LTcuMmMxMy01LjUgMjAuOC0xMy41IDIwLjgtMjEuNXMtNy44LTE2LTIwLjgtMjEuNWwtMTctNy4yYy02LTIuNS02LjEtMTIuMiAwLTE0LjhsMTctNy4yYzEzLTUuNSAyMC44LTEzLjUgMjAuOC0yMS41cy03LjgtMTYtMjAuOC0yMS41bC0xNy03LjJjLTguNi0zLjYtNC44LTE2LjUgMy42LTE1LjQgNDIuOCAyLjUgNzEuNSAyNC44IDcxLjUgNDQgMCAxMy0xMy40IDI3LjMtMzUuMiAzNkMyOTAuNiAzNjguNyAzMDQgMzgzIDMwNCAzOTZ6bTI0LTE1NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhS2lzc0JlYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAna2lzcy1iZWFtJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmNTk3XCIsIFwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bS0zOSAyMTkuOWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4yIDcuNC0xNS42IDQtMTQuOS00LjUgMy4zLTQyLjEgMzIuMi03MS40IDU2LTcxLjRzNTIuNyAyOS4zIDU2IDcxLjRjLjUgOC41LTEwLjkgMTItMTUuMSA0LjV6TTMwNCAzOTZjMCAxOS4yLTI4LjcgNDEuNS03MS41IDQ0LTguNS44LTEyLjEtMTEuOC0zLjYtMTUuNGwxNy03LjJjMTMtNS41IDIwLjgtMTMuNSAyMC44LTIxLjVzLTcuOC0xNi0yMC44LTIxLjVsLTE3LTcuMmMtNi0yLjUtNi4xLTEyLjIgMC0xNC44bDE3LTcuMmMxMy01LjUgMjAuOC0xMy41IDIwLjgtMjEuNXMtNy44LTE2LTIwLjgtMjEuNWwtMTctNy4yYy04LjYtMy42LTQuOC0xNi41IDMuNi0xNS40IDQyLjggMi41IDcxLjUgMjQuOCA3MS41IDQ0IDAgMTMtMTMuNCAyNy4zLTM1LjIgMzZDMjkwLjYgMzY4LjcgMzA0IDM4MyAzMDQgMzk2em02NS0xNjguMWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4xIDcuMy0xNS42IDQtMTQuOS00LjUgMy4zLTQyLjEgMzIuMi03MS40IDU2LTcxLjRzNTIuNyAyOS4zIDU2IDcxLjRjLjUgOC41LTEwLjkgMTItMTUuMSA0LjV6XCJdXG59O1xudmFyIGZhS2lzc1dpbmtIZWFydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdraXNzLXdpbmstaGVhcnQnLFxuICBpY29uOiBbNTA0LCA1MTIsIFtdLCBcImY1OThcIiwgXCJNNTAxLjEgNDAyLjVjLTgtMjAuOC0zMS41LTMxLjUtNTMuMS0yNS45bC04LjQgMi4yLTIuMy04LjRjLTUuOS0yMS40LTI3LTM2LjUtNDktMzMtMjUuMiA0LTQwLjYgMjguNi0zNCA1Mi42bDIyLjkgODIuNmMxLjUgNS4zIDcgOC41IDEyLjQgNy4xbDgzLTIxLjVjMjQuMS02LjMgMzcuNy0zMS44IDI4LjUtNTUuN3ptLTE3Ny42LTRjLTUuNi0yMC4zLTIuMy00MiA5LTU5LjcgMjkuNy00Ni4zIDk4LjctNDUuNSAxMjcuOCA0LjMgNi40LjEgMTIuNiAxLjQgMTguNiAyLjkgMTAuOS0yNy45IDE3LjEtNTguMiAxNy4xLTkwQzQ5NiAxMTkgMzg1IDggMjQ4IDhTMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4YzM1LjQgMCA2OC45LTcuNSA5OS40LTIwLjktLjMtLjctMjMuOS04NC42LTIzLjktODQuNnpNMTY4IDI0MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyMCAxNTZjMCAxOS4yLTI4LjcgNDEuNS03MS41IDQ0LTguNS44LTEyLjEtMTEuOC0zLjYtMTUuNGwxNy03LjJjMTMtNS41IDIwLjgtMTMuNSAyMC44LTIxLjVzLTcuOC0xNi0yMC44LTIxLjVsLTE3LTcuMmMtNi0yLjUtNS43LTEyLjMgMC0xNC44bDE3LTcuMmMxMy01LjUgMjAuOC0xMy41IDIwLjgtMjEuNXMtNy44LTE2LTIwLjgtMjEuNWwtMTctNy4yYy04LjgtMy43LTQuNi0xNi42IDMuNi0xNS40IDQyLjggMi41IDcxLjUgMjQuOCA3MS41IDQ0IDAgMTMtMTMuNCAyNy4zLTM1LjIgMzZDMjc0LjYgMzY4LjcgMjg4IDM4MyAyODggMzk2em0xNi0xNzljLTguMyA3LjQtMjEuNi40LTE5LjgtMTAuOCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVM0MDAgMTgxIDQwNCAyMDYuMmMxLjcgMTEuMS0xMS4zIDE4LjMtMTkuOCAxMC44bC05LjUtOC41Yy0xNC44LTEzLjItNDYuMi0xMy4yLTYxIDBMMzA0IDIxN3pcIl1cbn07XG52YXIgZmFLaXdpQmlyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdraXdpLWJpcmQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1MzVcIiwgXCJNNTc1LjgxIDIxNy45OEM1NzIuNjQgMTU3LjQxIDUxOC4yOCAxMTIgNDU3LjYzIDExMmgtOS4zN2MtNTIuODIgMC0xMDQuMjUtMTYuMjUtMTQ3Ljc0LTQ2LjI0LTQxLjk5LTI4Ljk2LTk2LjA0LTQxLjYyLTE1My4yMS0yOC43QzEyOS4zIDQxLjEyLS4wOCA3OC4yNCAwIDIyNGMuMDQgNzAuOTUgMzguNjggMTMyLjggOTUuOTkgMTY2LjAxVjQ2NGMwIDguODQgNy4xNiAxNiAxNiAxNmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNTQuMjZjMTUuMzYgMy45NiAzMS40IDYuMjYgNDggNi4yNiA1LjQ0IDAgMTAuNjgtLjczIDE2LTEuMThWNDY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di01OS40M2MxNC4yNC01LjA2IDI3Ljg4LTExLjM5IDQwLjM0LTE5LjUxQzM0Mi4wNyAzNTUuMjUgMzkzLjg2IDMzNiA0NDguNDYgMzM2YzI1LjQ4IDAgMTYuMDEtLjMxIDIzLjA1LS43OGw3NC40MSAxMzYuNDRjMi44NiA1LjIzIDguMyA4LjM0IDE0LjA1IDguMzQgMS4zMSAwIDIuNjQtLjE2IDMuOTUtLjUgNy4wOS0xLjggMTIuMDUtOC4xOSAxMi4wNS0xNS41IDAgMCAuMTQtMjQwLjI0LS4xNi0yNDYuMDJ6TTQ2My45NyAyNDhjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0em04MCAxNTMuMjVsLTM5Ljg2LTczLjA4YzE1LjEyLTUuODMgMjguNzMtMTQuNiAzOS44Ni0yNS45OHY5OS4wNnpcIl1cbn07XG52YXIgZmFMYW5kbWFyayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYW5kbWFyaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY2ZlwiLCBcIk01MDEuNjIgOTIuMTFMMjY3LjI0IDIuMDRhMzEuOTU4IDMxLjk1OCAwIDAgMC0yMi40NyAwTDEwLjM4IDkyLjExQTE2LjAwMSAxNi4wMDEgMCAwIDAgMCAxMDcuMDlWMTQ0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzYuOTFjMC02LjY3LTQuMTQtMTIuNjQtMTAuMzgtMTQuOTh6TTY0IDE5MnYxNjBINDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4aDQ0OHYtNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTE2VjE5MmgtNjR2MTYwaC05NlYxOTJoLTY0djE2MGgtOTZWMTkySDY0em00MzIgMjU2SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0ODBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2elwiXVxufTtcbnZhciBmYUxhbmd1YWdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhbmd1YWdlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMWFiXCIsIFwiTTE1Mi4xIDIzNi4yYy0zLjUtMTIuMS03LjgtMzMuMi03LjgtMzMuMmgtLjVzLTQuMyAyMS4xLTcuOCAzMy4ybC0xMS4xIDM3LjVIMTYzek02MTYgOTZIMzM2djMyMGgyODBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMTIwYzAtMTMuMy0xMC43LTI0LTI0LTI0em0tMjQgMTIwYzAgNi42LTUuNCAxMi0xMiAxMmgtMTEuNGMtNi45IDIzLjYtMjEuNyA0Ny40LTQyLjcgNjkuOSA4LjQgNi40IDE3LjEgMTIuNSAyNi4xIDE4IDUuNSAzLjQgNy4zIDEwLjUgNC4xIDE2LjJsLTcuOSAxMy45Yy0zLjQgNS45LTEwLjkgNy44LTE2LjcgNC4zLTEyLjYtNy44LTI0LjUtMTYuMS0zNS40LTI0LjktMTAuOSA4LjctMjIuNyAxNy4xLTM1LjQgMjQuOS01LjggMy41LTEzLjMgMS42LTE2LjctNC4zbC03LjktMTMuOWMtMy4yLTUuNi0xLjQtMTIuOCA0LjItMTYuMiA5LjMtNS43IDE4LTExLjcgMjYuMS0xOC03LjktOC40LTE0LjktMTctMjEtMjUuNy00LTUuNy0yLjItMTMuNiAzLjctMTcuMWw2LjUtMy45IDcuMy00LjNjNS40LTMuMiAxMi40LTEuNyAxNiAzLjQgNSA3IDEwLjggMTQgMTcuNCAyMC45IDEzLjUtMTQuMiAyMy44LTI4LjkgMzAtNDMuMkg0MTJjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMTZjMC02LjYgNS40LTEyIDEyLTEyaDY0di0xNmMwLTYuNiA1LjQtMTIgMTItMTJoMTZjNi42IDAgMTIgNS40IDEyIDEydjE2aDY0YzYuNiAwIDEyIDUuNCAxMiAxMnpNMCAxMjB2MjcyYzAgMTMuMyAxMC43IDI0IDI0IDI0aDI4MFY5NkgyNGMtMTMuMyAwLTI0IDEwLjctMjQgMjR6bTU4LjkgMjE2LjFMMTE2LjQgMTY3YzEuNy00LjkgNi4yLTguMSAxMS40LTguMWgzMi41YzUuMSAwIDkuNyAzLjMgMTEuNCA4LjFsNTcuNSAxNjkuMWMyLjYgNy44LTMuMSAxNS45LTExLjQgMTUuOWgtMjIuOWExMiAxMiAwIDAgMS0xMS41LTguNmwtOS40LTMxLjloLTYwLjJsLTkuMSAzMS44Yy0xLjUgNS4xLTYuMiA4LjctMTEuNSA4LjdINzAuM2MtOC4yIDAtMTQtOC4xLTExLjQtMTUuOXpcIl1cbn07XG52YXIgZmFMYXB0b3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGFwdG9wJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMTA5XCIsIFwiTTYyNCA0MTZIMzgxLjU0Yy0uNzQgMTkuODEtMTQuNzEgMzItMzIuNzQgMzJIMjg4Yy0xOC42OSAwLTMzLjAyLTE3LjQ3LTMyLjc3LTMySDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCAzNS4yIDI4LjggNjQgNjQgNjRoNTEyYzM1LjIgMCA2NC0yOC44IDY0LTY0di0xNmMwLTguOC03LjItMTYtMTYtMTZ6TTU3NiA0OGMwLTI2LjQtMjEuNi00OC00OC00OEgxMTJDODUuNiAwIDY0IDIxLjYgNjQgNDh2MzM2aDUxMlY0OHptLTY0IDI3MkgxMjhWNjRoMzg0djI1NnpcIl1cbn07XG52YXIgZmFMYXB0b3BDb2RlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhcHRvcC1jb2RlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNWZjXCIsIFwiTTI1NS4wMyAyNjEuNjVjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGwxMS4zMS0xMS4zMWM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzTDI1My4yNSAxOTJsMzUuNzEtMzUuNzJjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMTEuMzEtMTEuMzFjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTU4LjM0IDU4LjM0Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDU4LjM1IDU4LjM0em05Ni4wMS0xMS4zbDExLjMxIDExLjMxYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsNTguMzQtNTguMzRjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtNTguMzQtNTguMzRjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTExLjMxIDExLjMxYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzTDM4Ni43NSAxOTJsLTM1LjcxIDM1LjcyYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzek02MjQgNDE2SDM4MS41NGMtLjc0IDE5LjgxLTE0LjcxIDMyLTMyLjc0IDMySDI4OGMtMTguNjkgMC0zMy4wMi0xNy40Ny0zMi43Ny0zMkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djE2YzAgMzUuMiAyOC44IDY0IDY0IDY0aDUxMmMzNS4yIDAgNjQtMjguOCA2NC02NHYtMTZjMC04LjgtNy4yLTE2LTE2LTE2ek01NzYgNDhjMC0yNi40LTIxLjYtNDgtNDgtNDhIMTEyQzg1LjYgMCA2NCAyMS42IDY0IDQ4djMzNmg1MTJWNDh6bS02NCAyNzJIMTI4VjY0aDM4NHYyNTZ6XCJdXG59O1xudmFyIGZhTGFwdG9wTWVkaWNhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXB0b3AtbWVkaWNhbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjgxMlwiLCBcIk0yMzIgMjI0aDU2djU2YTggOCAwIDAgMCA4IDhoNDhhOCA4IDAgMCAwIDgtOHYtNTZoNTZhOCA4IDAgMCAwIDgtOHYtNDhhOCA4IDAgMCAwLTgtOGgtNTZ2LTU2YTggOCAwIDAgMC04LThoLTQ4YTggOCAwIDAgMC04IDh2NTZoLTU2YTggOCAwIDAgMC04IDh2NDhhOCA4IDAgMCAwIDggOHpNNTc2IDQ4YTQ4LjE0IDQ4LjE0IDAgMCAwLTQ4LTQ4SDExMmE0OC4xNCA0OC4xNCAwIDAgMC00OCA0OHYzMzZoNTEyem0tNjQgMjcySDEyOFY2NGgzODR6bTExMiA5NkgzODEuNTRjLS43NCAxOS44MS0xNC43MSAzMi0zMi43NCAzMkgyODhjLTE4LjY5IDAtMzMtMTcuNDctMzIuNzctMzJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MTZhNjQuMTkgNjQuMTkgMCAwIDAgNjQgNjRoNTEyYTY0LjE5IDY0LjE5IDAgMCAwIDY0LTY0di0xNmExNiAxNiAwIDAgMC0xNi0xNnpcIl1cbn07XG52YXIgZmFMYXVnaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXVnaCcsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjU5OVwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em04MCAxNTJjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0tMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem04OCAyNzJoLTE2Yy03My40IDAtMTM0LTU1LTE0Mi45LTEyNi0xLjItOS41IDYuMy0xOCAxNS45LTE4aDI3MGM5LjYgMCAxNy4xIDguNCAxNS45IDE4LTguOSA3MS02OS41IDEyNi0xNDIuOSAxMjZ6XCJdXG59O1xudmFyIGZhTGF1Z2hCZWFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhdWdoLWJlYW0nLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1OWFcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMjQgMTk5LjRjMy4zLTQyLjEgMzIuMi03MS40IDU2LTcxLjRzNTIuNyAyOS4zIDU2IDcxLjRjLjcgOC42LTEwLjggMTEuOS0xNC45IDQuNWwtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4yIDcuNC0xNS44IDQuMS0xNS4xLTQuNXptLTE2MCAwYzMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy43IDguNi0xMC44IDExLjktMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMyA3LjQtMTUuOCA0LTE1LjEtNC41ek0zOTguOSAzMDZDMzkwIDM3NyAzMjkuNCA0MzIgMjU2IDQzMmgtMTZjLTczLjQgMC0xMzQtNTUtMTQyLjktMTI2LTEuMi05LjUgNi4zLTE4IDE1LjktMThoMjcwYzkuNiAwIDE3LjEgOC40IDE1LjkgMTh6XCJdXG59O1xudmFyIGZhTGF1Z2hTcXVpbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGF1Z2gtc3F1aW50JyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmNTliXCIsIFwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6bTMzLjggMTYxLjdsODAtNDhjMTEuNi02LjkgMjQgNy43IDE1LjQgMThMMzQzLjYgMTgwbDMzLjYgNDAuM2M4LjcgMTAuNC0zLjkgMjQuOC0xNS40IDE4bC04MC00OGMtNy43LTQuNy03LjctMTUuOSAwLTIwLjZ6bS0xNjMtMzBjLTguNi0xMC4zIDMuOC0yNC45IDE1LjQtMThsODAgNDhjNy44IDQuNyA3LjggMTUuOSAwIDIwLjZsLTgwIDQ4Yy0xMS41IDYuOC0yNC03LjYtMTUuNC0xOGwzMy42LTQwLjMtMzMuNi00MC4zek0zOTguOSAzMDZDMzkwIDM3NyAzMjkuNCA0MzIgMjU2IDQzMmgtMTZjLTczLjQgMC0xMzQtNTUtMTQyLjktMTI2LTEuMi05LjUgNi4zLTE4IDE1LjktMThoMjcwYzkuNiAwIDE3LjEgOC40IDE1LjkgMTh6XCJdXG59O1xudmFyIGZhTGF1Z2hXaW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xhdWdoLXdpbmsnLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1OWNcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptMjAuMSAxOTguMWM0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMXM1NS45IDE2LjkgNTkuOSA0Mi4xYzEuNyAxMS4xLTExLjQgMTguMy0xOS44IDEwLjhsLTkuNS04LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwyODggMjE3Yy04LjQgNy40LTIxLjYuMy0xOS45LTEwLjl6TTE2OCAxNjBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0yMzAuOSAxNDZDMzkwIDM3NyAzMjkuNCA0MzIgMjU2IDQzMmgtMTZjLTczLjQgMC0xMzQtNTUtMTQyLjktMTI2LTEuMi05LjUgNi4zLTE4IDE1LjktMThoMjcwYzkuNiAwIDE3LjEgOC40IDE1LjkgMTh6XCJdXG59O1xudmFyIGZhTGF5ZXJHcm91cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsYXllci1ncm91cCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVmZFwiLCBcIk0xMi40MSAxNDguMDJsMjMyLjk0IDEwNS42N2M2LjggMy4wOSAxNC40OSAzLjA5IDIxLjI5IDBsMjMyLjk0LTEwNS42N2MxNi41NS03LjUxIDE2LjU1LTMyLjUyIDAtNDAuMDNMMjY2LjY1IDIuMzFhMjUuNjA3IDI1LjYwNyAwIDAgMC0yMS4yOSAwTDEyLjQxIDEwNy45OGMtMTYuNTUgNy41MS0xNi41NSAzMi41MyAwIDQwLjA0em00ODcuMTggODguMjhsLTU4LjA5LTI2LjMzLTE2MS42NCA3My4yN2MtNy41NiAzLjQzLTE1LjU5IDUuMTctMjMuODYgNS4xN3MtMTYuMjktMS43NC0yMy44Ni01LjE3TDcwLjUxIDIwOS45N2wtNTguMSAyNi4zM2MtMTYuNTUgNy41LTE2LjU1IDMyLjUgMCA0MGwyMzIuOTQgMTA1LjU5YzYuOCAzLjA4IDE0LjQ5IDMuMDggMjEuMjkgMEw0OTkuNTkgMjc2LjNjMTYuNTUtNy41IDE2LjU1LTMyLjUgMC00MHptMCAxMjcuOGwtNTcuODctMjYuMjMtMTYxLjg2IDczLjM3Yy03LjU2IDMuNDMtMTUuNTkgNS4xNy0yMy44NiA1LjE3cy0xNi4yOS0xLjc0LTIzLjg2LTUuMTdMNzAuMjkgMzM3Ljg3IDEyLjQxIDM2NC4xYy0xNi41NSA3LjUtMTYuNTUgMzIuNSAwIDQwbDIzMi45NCAxMDUuNTljNi44IDMuMDggMTQuNDkgMy4wOCAyMS4yOSAwTDQ5OS41OSA0MDQuMWMxNi41NS03LjUgMTYuNTUtMzIuNSAwLTQwelwiXVxufTtcbnZhciBmYUxlYWYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVhZicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjA2Y1wiLCBcIk01NDYuMiA5LjdjLTUuNi0xMi41LTIxLjYtMTMtMjguMy0xLjJDNDg2LjkgNjIuNCA0MzEuNCA5NiAzNjggOTZoLTgwQzE4MiA5NiA5NiAxODIgOTYgMjg4YzAgNyAuOCAxMy43IDEuNSAyMC41QzE2MS4zIDI2Mi44IDI1My40IDIyNCAzODQgMjI0YzguOCAwIDE2IDcuMiAxNiAxNnMtNy4yIDE2LTE2IDE2QzEzMi42IDI1NiAyNiA0MTAuMSAyLjQgNDY4Yy02LjYgMTYuMyAxLjIgMzQuOSAxNy41IDQxLjYgMTYuNCA2LjggMzUtMS4xIDQxLjgtMTcuMyAxLjUtMy42IDIwLjktNDcuOSA3MS45LTkwLjYgMzIuNCA0My45IDk0IDg1LjggMTc0LjkgNzcuMkM0NjUuNSA0NjcuNSA1NzYgMzI2LjcgNTc2IDE1NC4zYzAtNTAuMi0xMC44LTEwMi4yLTI5LjgtMTQ0LjZ6XCJdXG59O1xudmFyIGZhTGVtb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVtb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwOTRcIiwgXCJNNDg5LjAzOCAyMi45NjNDNDY1Ljk0NC0uMTMgNDM0LjY0OC01LjkzIDQxMy45NDcgNi4xMjljLTU4LjkwNiAzNC4zMTItMTgxLjI1LTUzLjA3Ny0zMjEuMDczIDg2Ljc0NlM0MC40NDEgMzU1LjA0MSA2LjEyOSA0MTMuOTQ1Yy0xMi4wNTkgMjAuNzAyLTYuMjYgNTEuOTk5IDE2LjgzMyA3NS4wOTMgMjMuMDk1IDIzLjA5NSA1NC4zOTIgMjguODkxIDc1LjA5NSAxNi44MzIgNTguOTAxLTM0LjMxIDE4MS4yNDYgNTMuMDc5IDMyMS4wNjgtODYuNzQzUzQ3MS41NiAxNTYuOTYgNTA1Ljg3MSA5OC4wNTZjMTIuMDU5LTIwLjcwMiA2LjI2MS01MS45OTktMTYuODMzLTc1LjA5M3pNMjQzLjg4MSA5NS41MjJjLTU4LjE4OSAxNC41NDctMTMzLjgwOCA5MC4xNTUtMTQ4LjM1OCAxNDguMzU4LTEuODE3IDcuMjctOC4zNDIgMTIuMTI0LTE1LjUxMSAxMi4xMjQtMS4yODQgMC0yLjU5LS4xNTYtMy44OTMtLjQ4MS04LjU3Mi0yLjE0NC0xMy43ODQtMTAuODMtMTEuNjQyLTE5LjQwM0M4MS45MDEgMTY2LjQyNyAxNjYuMzE2IDgxLjkzIDIzNi4xMTkgNjQuNDc4YzguNTc1LTIuMTQzIDE3LjI2MSAzLjA2OSAxOS40MDMgMTEuNjQycy0zLjA2OSAxNy4yNTktMTEuNjQxIDE5LjQwMnpcIl1cbn07XG52YXIgZmFMZXNzVGhhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsZXNzLXRoYW4nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1MzZcIiwgXCJNMzY1LjQ2IDM1Ny43NEwxNDcuMDQgMjU1Ljg5bDIxOC40Ny0xMDEuODhjMTYuMDItNy40NyAyMi45NS0yNi41MSAxNS40OC00Mi41M2wtMTMuNTItMjlDMzYwIDY2LjQ2IDM0MC45NiA1OS41MyAzMjQuOTQgNjdMMTguNDggMjA5LjkxYTMyLjAxNCAzMi4wMTQgMCAwIDAtMTguNDggMjl2MzQuMjRjMCAxMi40NCA3LjIxIDIzLjc1IDE4LjQ4IDI5bDMwNi4zMSAxNDIuODNjMTYuMDYgNy40OSAzNS4xNS41NCA0Mi42NC0xNS41MmwxMy41Ni0yOS4wOGM3LjQ5LTE2LjA2LjU0LTM1LjE1LTE1LjUzLTQyLjY0elwiXVxufTtcbnZhciBmYUxlc3NUaGFuRXF1YWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGVzcy10aGFuLWVxdWFsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTM3XCIsIFwiTTU0Ljk4IDIxNC4ybDMwMS40MSAxMTkuODdjMTguMzkgNi4wMyAzOC43MS0yLjU0IDQ1LjM4LTE5LjE1bDEyLjA5LTMwLjA4YzYuNjgtMTYuNjEtMi44Mi0zNC45Ny0yMS4yMS00MWwtMTc1LjQ0LTY4LjA1IDE3NS41Ni02OC4wOWMxOC4yOS02IDI3Ljc0LTI0LjI3IDIxLjEtNDAuNzlsLTEyLjAzLTI5LjkyYy02LjY0LTE2LjUzLTI2Ljg2LTI1LjA2LTQ1LjE1LTE5LjA2TDU0Ljk4IDEzNy44OUM0MS4yMSAxNDIuNDEgMzIgMTU0LjUgMzIgMTY4LjA3djE1Ljk2YzAgMTMuNTYgOS4yMSAyNS42NSAyMi45OCAzMC4xN3pNNDI0IDQwMEgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQwMGMxMy4yNSAwIDI0LTEwLjc1IDI0LTI0di00OGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYUxldmVsRG93bkFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsZXZlbC1kb3duLWFsdCcsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjNiZVwiLCBcIk0zMTMuNTUzIDM5Mi4zMzFMMjA5LjU4NyA1MDQuMzM0Yy05LjQ4NSAxMC4yMTQtMjUuNjc2IDEwLjIyOS0zNS4xNzQgMEw3MC40MzggMzkyLjMzMUM1Ni4yMzIgMzc3LjAzMSA2Ny4wNjIgMzUyIDg4LjAyNSAzNTJIMTUyVjgwSDY4LjAyNGExMS45OTYgMTEuOTk2IDAgMCAxLTguNDg1LTMuNTE1bC01Ni01NkMtNC4wMjEgMTIuOTI2IDEuMzMzIDAgMTIuMDI0IDBIMjA4YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHYzMjhoNjMuOTY2YzIwLjg3OCAwIDMxLjg1MSAyNC45NjkgMTcuNTg3IDQwLjMzMXpcIl1cbn07XG52YXIgZmFMZXZlbFVwQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xldmVsLXVwLWFsdCcsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjNiZlwiLCBcIk0zMTMuNTUzIDExOS42NjlMMjA5LjU4NyA3LjY2NmMtOS40ODUtMTAuMjE0LTI1LjY3Ni0xMC4yMjktMzUuMTc0IDBMNzAuNDM4IDExOS42NjlDNTYuMjMyIDEzNC45NjkgNjcuMDYyIDE2MCA4OC4wMjUgMTYwSDE1MnYyNzJINjguMDI0YTExLjk5NiAxMS45OTYgMCAwIDAtOC40ODUgMy41MTVsLTU2IDU2Qy00LjAyMSA0OTkuMDc0IDEuMzMzIDUxMiAxMi4wMjQgNTEySDIwOGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTYwaDYzLjk2NmMyMC44NzggMCAzMS44NTEtMjQuOTY5IDE3LjU4Ny00MC4zMzF6XCJdXG59O1xudmFyIGZhTGlmZVJpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlmZS1yaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWNkXCIsIFwiTTI1NiA4QzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMTczLjY5NiAxMTkuNTU5bC02My4zOTkgNjMuMzk5Yy0xMC45ODctMTguNTU5LTI2LjY3LTM0LjI1Mi00NS4yNTUtNDUuMjU1bDYzLjM5OS02My4zOTlhMjE4LjM5NiAyMTguMzk2IDAgMCAxIDQ1LjI1NSA0NS4yNTV6TTI1NiAzNTJjLTUzLjAxOSAwLTk2LTQyLjk4MS05Ni05NnM0Mi45ODEtOTYgOTYtOTYgOTYgNDIuOTgxIDk2IDk2LTQyLjk4MSA5Ni05NiA5NnpNMTI3LjU1OSA4Mi4zMDRsNjMuMzk5IDYzLjM5OWMtMTguNTU5IDEwLjk4Ny0zNC4yNTIgMjYuNjctNDUuMjU1IDQ1LjI1NWwtNjMuMzk5LTYzLjM5OWEyMTguMzcyIDIxOC4zNzIgMCAwIDEgNDUuMjU1LTQ1LjI1NXpNODIuMzA0IDM4NC40NDFsNjMuMzk5LTYzLjM5OWMxMC45ODcgMTguNTU5IDI2LjY3IDM0LjI1MiA0NS4yNTUgNDUuMjU1bC02My4zOTkgNjMuMzk5YTIxOC4zOTYgMjE4LjM5NiAwIDAgMS00NS4yNTUtNDUuMjU1em0zMDIuMTM3IDQ1LjI1NWwtNjMuMzk5LTYzLjM5OWMxOC41NTktMTAuOTg3IDM0LjI1Mi0yNi42NyA0NS4yNTUtNDUuMjU1bDYzLjM5OSA2My4zOTlhMjE4LjQwMyAyMTguNDAzIDAgMCAxLTQ1LjI1NSA0NS4yNTV6XCJdXG59O1xudmFyIGZhTGlnaHRidWxiID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpZ2h0YnVsYicsXG4gIGljb246IFszNTIsIDUxMiwgW10sIFwiZjBlYlwiLCBcIk05Ni4wNiA0NTQuMzVjLjAxIDYuMjkgMS44NyAxMi40NSA1LjM2IDE3LjY5bDE3LjA5IDI1LjY5YTMxLjk5IDMxLjk5IDAgMCAwIDI2LjY0IDE0LjI4aDYxLjcxYTMxLjk5IDMxLjk5IDAgMCAwIDI2LjY0LTE0LjI4bDE3LjA5LTI1LjY5YTMxLjk4OSAzMS45ODkgMCAwIDAgNS4zNi0xNy42OWwuMDQtMzguMzVIOTYuMDFsLjA1IDM4LjM1ek0wIDE3NmMwIDQ0LjM3IDE2LjQ1IDg0Ljg1IDQzLjU2IDExNS43OCAxNi41MiAxOC44NSA0Mi4zNiA1OC4yMyA1Mi4yMSA5MS40NS4wNC4yNi4wNy41Mi4xMS43OGgxNjAuMjRjLjA0LS4yNi4wNy0uNTEuMTEtLjc4IDkuODUtMzMuMjIgMzUuNjktNzIuNiA1Mi4yMS05MS40NUMzMzUuNTUgMjYwLjg1IDM1MiAyMjAuMzcgMzUyIDE3NiAzNTIgNzguNjEgMjcyLjkxLS4zIDE3NS40NSAwIDczLjQ0LjMxIDAgODIuOTcgMCAxNzZ6bTE3Ni04MGMtNDQuMTEgMC04MCAzNS44OS04MCA4MCAwIDguODQtNy4xNiAxNi0xNiAxNnMtMTYtNy4xNi0xNi0xNmMwLTYxLjc2IDUwLjI0LTExMiAxMTItMTEyIDguODQgMCAxNiA3LjE2IDE2IDE2cy03LjE2IDE2LTE2IDE2elwiXVxufTtcbnZhciBmYUxpbmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGluaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBjMVwiLCBcIk0zMjYuNjEyIDE4NS4zOTFjNTkuNzQ3IDU5LjgwOSA1OC45MjcgMTU1LjY5OC4zNiAyMTQuNTktLjExLjEyLS4yNC4yNS0uMzYuMzdsLTY3LjIgNjcuMmMtNTkuMjcgNTkuMjctMTU1LjY5OSA1OS4yNjItMjE0Ljk2IDAtNTkuMjctNTkuMjYtNTkuMjctMTU1LjcgMC0yMTQuOTZsMzcuMTA2LTM3LjEwNmM5Ljg0LTkuODQgMjYuNzg2LTMuMyAyNy4yOTQgMTAuNjA2LjY0OCAxNy43MjIgMy44MjYgMzUuNTI3IDkuNjkgNTIuNzIxIDEuOTg2IDUuODIyLjU2NyAxMi4yNjItMy43ODMgMTYuNjEybC0xMy4wODcgMTMuMDg3Yy0yOC4wMjYgMjguMDI2LTI4LjkwNSA3My42Ni0xLjE1NSAxMDEuOTYgMjguMDI0IDI4LjU3OSA3NC4wODYgMjguNzQ5IDEwMi4zMjUuNTFsNjcuMi02Ny4xOWMyOC4xOTEtMjguMTkxIDI4LjA3My03My43NTcgMC0xMDEuODMtMy43MDEtMy42OTQtNy40MjktNi41NjQtMTAuMzQxLTguNTY5YTE2LjAzNyAxNi4wMzcgMCAwIDEtNi45NDctMTIuNjA2Yy0uMzk2LTEwLjU2NyAzLjM0OC0yMS40NTYgMTEuNjk4LTI5LjgwNmwyMS4wNTQtMjEuMDU1YzUuNTIxLTUuNTIxIDE0LjE4Mi02LjE5OSAyMC41ODQtMS43MzFhMTUyLjQ4MiAxNTIuNDgyIDAgMCAxIDIwLjUyMiAxNy4xOTd6TTQ2Ny41NDcgNDQuNDQ5Yy01OS4yNjEtNTkuMjYyLTE1NS42OS01OS4yNy0yMTQuOTYgMGwtNjcuMiA2Ny4yYy0uMTIuMTItLjI1LjI1LS4zNi4zNy01OC41NjYgNTguODkyLTU5LjM4NyAxNTQuNzgxLjM2IDIxNC41OWExNTIuNDU0IDE1Mi40NTQgMCAwIDAgMjAuNTIxIDE3LjE5NmM2LjQwMiA0LjQ2OCAxNS4wNjQgMy43ODkgMjAuNTg0LTEuNzMxbDIxLjA1NC0yMS4wNTVjOC4zNS04LjM1IDEyLjA5NC0xOS4yMzkgMTEuNjk4LTI5LjgwNmExNi4wMzcgMTYuMDM3IDAgMCAwLTYuOTQ3LTEyLjYwNmMtMi45MTItMi4wMDUtNi42NC00Ljg3NS0xMC4zNDEtOC41NjktMjguMDczLTI4LjA3My0yOC4xOTEtNzMuNjM5IDAtMTAxLjgzbDY3LjItNjcuMTljMjguMjM5LTI4LjIzOSA3NC4zLTI4LjA2OSAxMDIuMzI1LjUxIDI3Ljc1IDI4LjMgMjYuODcyIDczLjkzNC0xLjE1NSAxMDEuOTZsLTEzLjA4NyAxMy4wODdjLTQuMzUgNC4zNS01Ljc2OSAxMC43OS0zLjc4MyAxNi42MTIgNS44NjQgMTcuMTk0IDkuMDQyIDM0Ljk5OSA5LjY5IDUyLjcyMS41MDkgMTMuOTA2IDE3LjQ1NCAyMC40NDYgMjcuMjk0IDEwLjYwNmwzNy4xMDYtMzcuMTA2YzU5LjI3MS01OS4yNTkgNTkuMjcxLTE1NS42OTkuMDAxLTIxNC45NTl6XCJdXG59O1xudmFyIGZhTGlyYVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlyYS1zaWduJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMTk1XCIsIFwiTTM3MS45OTQgMjU2aC00OC4wMTlDMzE3LjY0IDI1NiAzMTIgMjYwLjkxMiAzMTIgMjY3LjI0NiAzMTIgMzY4IDIzMC4xNzkgNDE2IDE0NCA0MTZWMjU2Ljc4MWwxMzQuNjAzLTI5LjkxMkExMiAxMiAwIDAgMCAyODggMjE1LjE1NXYtNDAuOTc2YzAtNy42NzctNy4xMDktMTMuMzgtMTQuNjAzLTExLjcxNEwxNDQgMTkxLjIxOVYxNjAuNzhsMTM0LjYwMy0yOS45MTJBMTIgMTIgMCAwIDAgMjg4IDExOS4xNTRWNzguMTc5YzAtNy42NzctNy4xMDktMTMuMzgtMTQuNjAzLTExLjcxNEwxNDQgOTUuMjE5VjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJINzZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NjguOTk3TDkuMzk3IDEyNS4xMzFBMTIgMTIgMCAwIDAgMCAxMzYuODQ1djQwLjk3NmMwIDcuNjc3IDcuMTA5IDEzLjM4IDE0LjYwMyAxMS43MTRMNjQgMTc4LjU1OHYzMC40MzlMOS4zOTcgMjIxLjEzMUExMiAxMiAwIDAgMCAwIDIzMi44NDV2NDAuOTc2YzAgNy42NzcgNy4xMDkgMTMuMzggMTQuNjAzIDExLjcxNEw2NCAyNzQuNTU4VjQ2OGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDc5LjU4M2MxMzQuMDkxIDAgMjIzLjI1NS03Ny44MzQgMjI4LjQwOC0yMTEuNTkyLjI2MS02Ljc4Mi01LjIxMS0xMi40MDgtMTEuOTk3LTEyLjQwOHpcIl1cbn07XG52YXIgZmFMaXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpc3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwM2FcIiwgXCJNODAgMzY4SDE2YTE2IDE2IDAgMCAwLTE2IDE2djY0YTE2IDE2IDAgMCAwIDE2IDE2aDY0YTE2IDE2IDAgMCAwIDE2LTE2di02NGExNiAxNiAwIDAgMC0xNi0xNnptMC0zMjBIMTZBMTYgMTYgMCAwIDAgMCA2NHY2NGExNiAxNiAwIDAgMCAxNiAxNmg2NGExNiAxNiAwIDAgMCAxNi0xNlY2NGExNiAxNiAwIDAgMC0xNi0xNnptMCAxNjBIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NjRhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTY0YTE2IDE2IDAgMCAwLTE2LTE2em00MTYgMTc2SDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0wLTMyMEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2VjgwYTE2IDE2IDAgMCAwLTE2LTE2em0wIDE2MEgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpcIl1cbn07XG52YXIgZmFMaXN0QWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xpc3QtYWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDIyXCIsIFwiTTQ2NCA0ODBINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWODBjMC0yNi41MSAyMS40OS00OCA0OC00OGg0MTZjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYzNTJjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMTI4IDEyMGMtMjIuMDkxIDAtNDAgMTcuOTA5LTQwIDQwczE3LjkwOSA0MCA0MCA0MCA0MC0xNy45MDkgNDAtNDAtMTcuOTA5LTQwLTQwLTQwem0wIDk2Yy0yMi4wOTEgMC00MCAxNy45MDktNDAgNDBzMTcuOTA5IDQwIDQwIDQwIDQwLTE3LjkwOSA0MC00MC0xNy45MDktNDAtNDAtNDB6bTAgOTZjLTIyLjA5MSAwLTQwIDE3LjkwOS00MCA0MHMxNy45MDkgNDAgNDAgNDAgNDAtMTcuOTA5IDQwLTQwLTE3LjkwOS00MC00MC00MHptMjg4LTEzNnYtMzJjMC02LjYyNy01LjM3My0xMi0xMi0xMkgyMDRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NnYtMzJjMC02LjYyNy01LjM3My0xMi0xMi0xMkgyMDRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptMCA5NnYtMzJjMC02LjYyNy01LjM3My0xMi0xMi0xMkgyMDRjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MzJjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyMDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnpcIl1cbn07XG52YXIgZmFMaXN0T2wgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbGlzdC1vbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBjYlwiLCBcIk02MS43NyA0MDFsMTcuNS0yMC4xNWExOS45MiAxOS45MiAwIDAgMCA1LjA3LTE0LjE5di0zLjMxQzg0LjM0IDM1NiA4MC41IDM1MiA3MyAzNTJIMTZhOCA4IDAgMCAwLTggOHYxNmE4IDggMCAwIDAgOCA4aDIyLjgzYTE1Ny40MSAxNTcuNDEgMCAwIDAtMTEgMTIuMzFsLTUuNjEgN2MtNCA1LjA3LTUuMjUgMTAuMTMtMi44IDE0Ljg4bDEuMDUgMS45M2MzIDUuNzYgNi4yOSA3Ljg4IDEyLjI1IDcuODhoNC43M2MxMC4zMyAwIDE1Ljk0IDIuNDQgMTUuOTQgOS4wOSAwIDQuNzItNC4yIDguMjItMTQuMzYgOC4yMmE0MS41NCA0MS41NCAwIDAgMS0xNS40Ny0zLjEyYy02LjQ5LTMuODgtMTEuNzQtMy41LTE1LjYgMy4xMmwtNS41OSA5LjMxYy0zLjcyIDYuMTMtMy4xOSAxMS43MiAyLjYzIDE1Ljk0IDcuNzEgNC42OSAyMC4zOCA5LjQ0IDM3IDkuNDQgMzQuMTYgMCA0OC41LTIyLjc1IDQ4LjUtNDQuMTItLjAzLTE0LjM4LTkuMTItMjkuNzYtMjguNzMtMzQuODh6TTQ5NiAyMjRIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bTAtMTYwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZWODBhMTYgMTYgMCAwIDAtMTYtMTZ6bTAgMzIwSDE3NmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMjBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0xNiAxNjBoNjRhOCA4IDAgMCAwIDgtOHYtMTZhOCA4IDAgMCAwLTgtOEg2NFY0MGE4IDggMCAwIDAtOC04SDMyYTggOCAwIDAgMC03LjE0IDQuNDJsLTggMTZBOCA4IDAgMCAwIDI0IDY0aDh2NjRIMTZhOCA4IDAgMCAwLTggOHYxNmE4IDggMCAwIDAgOCA4em0tMy45MSAxNjBIODBhOCA4IDAgMCAwIDgtOHYtMTZhOCA4IDAgMCAwLTgtOEg0MS4zMmMzLjI5LTEwLjI5IDQ4LjM0LTE4LjY4IDQ4LjM0LTU2LjQ0IDAtMjkuMDYtMjUtMzkuNTYtNDQuNDctMzkuNTYtMjEuMzYgMC0zMy44IDEwLTQwLjQ2IDE4Ljc1LTQuMzcgNS41OS0zIDEwLjg0IDIuOCAxNS4zN2w4LjU4IDYuODhjNS42MSA0LjU2IDExIDIuNDcgMTYuMTItMi40NGExMy40NCAxMy40NCAwIDAgMSA5LjQ2LTMuODRjMy4zMyAwIDkuMjggMS41NiA5LjI4IDguNzVDNTEgMjQ4LjE5IDAgMjU3LjMxIDAgMzA0LjU5djRDMCAzMTYgNS4wOCAzMjAgMTIuMDkgMzIwelwiXVxufTtcbnZhciBmYUxpc3RVbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsaXN0LXVsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGNhXCIsIFwiTTQ4IDQ4YTQ4IDQ4IDAgMSAwIDQ4IDQ4IDQ4IDQ4IDAgMCAwLTQ4LTQ4em0wIDE2MGE0OCA0OCAwIDEgMCA0OCA0OCA0OCA0OCAwIDAgMC00OC00OHptMCAxNjBhNDggNDggMCAxIDAgNDggNDggNDggNDggMCAwIDAtNDgtNDh6bTQ0OCAxNkgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMzIwYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0zMjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnptMCAxNjBIMTc2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMyMGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhTG9jYXRpb25BcnJvdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NhdGlvbi1hcnJvdycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjEyNFwiLCBcIk00NDQuNTIgMy41MkwyOC43NCAxOTUuNDJjLTQ3Ljk3IDIyLjM5LTMxLjk4IDkyLjc1IDE5LjE5IDkyLjc1aDE3NS45MXYxNzUuOTFjMCA1MS4xNyA3MC4zNiA2Ny4xNyA5Mi43NSAxOS4xOWwxOTEuOS00MTUuNzhjMTUuOTktMzguMzktMjUuNTktNzkuOTctNjMuOTctNjMuOTd6XCJdXG59O1xudmFyIGZhTG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NrJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDIzXCIsIFwiTTQwMCAyMjRoLTI0di03MkMzNzYgNjguMiAzMDcuOCAwIDIyNCAwUzcyIDY4LjIgNzIgMTUydjcySDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHYxOTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjI3MmMwLTI2LjUtMjEuNS00OC00OC00OHptLTEwNCAwSDE1MnYtNzJjMC0zOS43IDMyLjMtNzIgNzItNzJzNzIgMzIuMyA3MiA3MnY3MnpcIl1cbn07XG52YXIgZmFMb2NrT3BlbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb2NrLW9wZW4nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzYzFcIiwgXCJNNDIzLjUgMEMzMzkuNS4zIDI3MiA2OS41IDI3MiAxNTMuNVYyMjRINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djE5MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMjcyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4aC00OHYtNzEuMWMwLTM5LjYgMzEuNy03Mi41IDcxLjMtNzIuOSA0MC0uNCA3Mi43IDMyLjEgNzIuNyA3MnY4MGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtODBDNTc2IDY4IDUwNy41LS4zIDQyMy41IDB6XCJdXG59O1xudmFyIGZhTG9uZ0Fycm93QWx0RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsb25nLWFycm93LWFsdC1kb3duJyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbXSwgXCJmMzA5XCIsIFwiTTE2OCAzNDUuOTQxVjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTU2Yy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjMwMS45NDFINDEuOTQxYy0yMS4zODIgMC0zMi4wOSAyNS44NTEtMTYuOTcxIDQwLjk3MWw4Ni4wNTkgODYuMDU5YzkuMzczIDkuMzczIDI0LjU2OSA5LjM3MyAzMy45NDEgMGw4Ni4wNTktODYuMDU5YzE1LjExOS0xNS4xMTkgNC40MTEtNDAuOTcxLTE2Ljk3MS00MC45NzFIMTY4elwiXVxufTtcbnZhciBmYUxvbmdBcnJvd0FsdExlZnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9uZy1hcnJvdy1hbHQtbGVmdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjMwYVwiLCBcIk0xMzQuMDU5IDI5Nkg0MzZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNTZjMC02LjYyNy01LjM3My0xMi0xMi0xMkgxMzQuMDU5di00Ni4wNTljMC0yMS4zODItMjUuODUxLTMyLjA5LTQwLjk3MS0xNi45NzFMNy4wMjkgMjM5LjAyOWMtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY5IDAgMzMuOTQxbDg2LjA1OSA4Ni4wNTljMTUuMTE5IDE1LjExOSA0MC45NzEgNC40MTEgNDAuOTcxLTE2Ljk3MVYyOTZ6XCJdXG59O1xudmFyIGZhTG9uZ0Fycm93QWx0UmlnaHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9uZy1hcnJvdy1hbHQtcmlnaHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYzMGJcIiwgXCJNMzEzLjk0MSAyMTZIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgzMDEuOTQxdjQ2LjA1OWMwIDIxLjM4MiAyNS44NTEgMzIuMDkgNDAuOTcxIDE2Ljk3MWw4Ni4wNTktODYuMDU5YzkuMzczLTkuMzczIDkuMzczLTI0LjU2OSAwLTMzLjk0MWwtODYuMDU5LTg2LjA1OWMtMTUuMTE5LTE1LjExOS00MC45NzEtNC40MTEtNDAuOTcxIDE2Ljk3MVYyMTZ6XCJdXG59O1xudmFyIGZhTG9uZ0Fycm93QWx0VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbG9uZy1hcnJvdy1hbHQtdXAnLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYzMGNcIiwgXCJNODggMTY2LjA1OVY0NjhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1NmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyVjE2Ni4wNTloNDYuMDU5YzIxLjM4MiAwIDMyLjA5LTI1Ljg1MSAxNi45NzEtNDAuOTcxbC04Ni4wNTktODYuMDU5Yy05LjM3My05LjM3My0yNC41NjktOS4zNzMtMzMuOTQxIDBsLTg2LjA1OSA4Ni4wNTljLTE1LjExOSAxNS4xMTktNC40MTEgNDAuOTcxIDE2Ljk3MSA0MC45NzFIODh6XCJdXG59O1xudmFyIGZhTG93VmlzaW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ2xvdy12aXNpb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyYThcIiwgXCJNNTY5LjM0NCAyMzEuNjMxQzUxMi45NiAxMzUuOTQ5IDQwNy44MSA3MiAyODggNzJjLTI4LjQ2OCAwLTU2LjEwMiAzLjYxOS04Mi40NTEgMTAuNDA5TDE1Mi43NzggMTAuMjRjLTcuNjAxLTEwLjg1OC0yMi41NjQtMTMuNS0zMy40MjMtNS45bC0xMy4xMTQgOS4xNzhjLTEwLjg2IDcuNjAxLTEzLjUwMiAyMi41NjYtNS45IDMzLjQyNmw0My4xMzEgNTguMzk1Qzg5LjQ0OSAxMzEuNzMgNDAuMjI4IDE3NC42ODMgNi42ODIgMjMxLjU4MWMtLjAxLjAxNy0uMDIzLjAzMy0uMDM0LjA1LTguNzY1IDE0Ljg3NS04Ljk2NCAzMy41MjggMCA0OC43MzkgMzguNSA2NS4zMzIgOTkuNzQyIDExNS44NjIgMTcyLjg1OSAxNDEuMzQ5TDU1LjMxNiAyNDQuMzAyQTI3Mi4xOTQgMjcyLjE5NCAwIDAgMSA4My42MSAyMDguMzlsMTE5LjQgMTcwLjU4aC4wMWw0MC42MyA1OC4wNGEzMzAuMDU1IDMzMC4wNTUgMCAwIDAgNzguOTQgMS4xN2wtMTg5Ljk4LTI3MS40YTI3Ny42MjggMjc3LjYyOCAwIDAgMSAzOC43NzctMjEuNTYzbDI1MS44MzYgMzU2LjU0NGM3LjYwMSAxMC44NTggMjIuNTY0IDEzLjQ5OSAzMy40MjMgNS45bDEzLjExNC05LjE3OGMxMC44Ni03LjYwMSAxMy41MDItMjIuNTY3IDUuOS0zMy40MjZsLTQzLjEyLTU4LjM3Ny0uMDA3LS4wMDljNTcuMTYxLTI3Ljk3OCAxMDQuODM1LTcyLjA0IDEzNi44MS0xMjYuMzAxYTQ3LjkzOCA0Ny45MzggMCAwIDAgLjAwMS00OC43Mzl6TTM5MC4wMjYgMzQ1Ljk0bC0xOS4wNjYtMjcuMjNjMjQuNjgyLTMyLjU2NyAyNy43MTEtNzYuMzUzIDguOC0xMTEuNjh2LjAzYzAgMjMuNjUtMTkuMTcgNDIuODItNDIuODIgNDIuODItMjMuODI4IDAtNDIuODItMTkuMzQ5LTQyLjgyLTQyLjgyIDAtMjMuNjUgMTkuMTctNDIuODIgNDIuODItNDIuODJoLjAzYy0yNC43NS0xMy4yNDktNTMuNTIyLTE1LjY0My03OS41MS03LjY4bC0xOS4wNjgtMjcuMjM3QzI1My43NTggMTIzLjMwNiAyNzAuNDg4IDEyMCAyODggMTIwYzc1LjE2MiAwIDEzNiA2MC44MjYgMTM2IDEzNiAwIDM0LjUwNC0xMi44MzMgNjUuOTc1LTMzLjk3NCA4OS45NHpcIl1cbn07XG52YXIgZmFMdWdnYWdlQ2FydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdsdWdnYWdlLWNhcnQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1OWRcIiwgXCJNMjI0IDMyMGgzMlY5NmgtMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTYwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJ6bTM1Mi0zMlYxMjhjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMzJ2MjI0aDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ6bTQ4IDk2SDEyOFYxNmMwLTguODQtNy4xNi0xNi0xNi0xNkgxNkM3LjE2IDAgMCA3LjE2IDAgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDh2MzY4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDgyLjk0Yy0xLjc5IDUuMDMtMi45NCAxMC4zNi0yLjk0IDE2IDAgMjYuNTEgMjEuNDkgNDggNDggNDhzNDgtMjEuNDkgNDgtNDhjMC01LjY0LTEuMTUtMTAuOTctMi45NC0xNmgxOTcuODhjLTEuNzkgNS4wMy0yLjk0IDEwLjM2LTIuOTQgMTYgMCAyNi41MSAyMS40OSA0OCA0OCA0OHM0OC0yMS40OSA0OC00OGMwLTUuNjQtMS4xNS0xMC45Ny0yLjk0LTE2SDYyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTQ4MCA5NlY0OGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4aC05NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYyNzJoMTkyVjk2em0tNDggMGgtOTZWNDhoOTZ2NDh6XCJdXG59O1xudmFyIGZhTWFnaWMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFnaWMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwZDBcIiwgXCJNMjI0IDk2bDE2LTMyIDMyLTE2LTMyLTE2LTE2LTMyLTE2IDMyLTMyIDE2IDMyIDE2IDE2IDMyek04MCAxNjBsMjYuNjYtNTMuMzNMMTYwIDgwbC01My4zNC0yNi42N0w4MCAwIDUzLjM0IDUzLjMzIDAgODBsNTMuMzQgMjYuNjdMODAgMTYwem0zNTIgMTI4bC0yNi42NiA1My4zM0wzNTIgMzY4bDUzLjM0IDI2LjY3TDQzMiA0NDhsMjYuNjYtNTMuMzNMNTEyIDM2OGwtNTMuMzQtMjYuNjdMNDMyIDI4OHptNzAuNjItMTkzLjc3TDQxNy43NyA5LjM4QzQxMS41MyAzLjEyIDQwMy4zNCAwIDM5NS4xNSAwYy04LjE5IDAtMTYuMzggMy4xMi0yMi42MyA5LjM4TDkuMzggMzcyLjUyYy0xMi41IDEyLjUtMTIuNSAzMi43NiAwIDQ1LjI1bDg0Ljg1IDg0Ljg1YzYuMjUgNi4yNSAxNC40NCA5LjM3IDIyLjYyIDkuMzcgOC4xOSAwIDE2LjM4LTMuMTIgMjIuNjMtOS4zN2wzNjMuMTQtMzYzLjE1YzEyLjUtMTIuNDggMTIuNS0zMi43NSAwLTQ1LjI0ek0zNTkuNDUgMjAzLjQ2bC01MC45MS01MC45MSA4Ni42LTg2LjYgNTAuOTEgNTAuOTEtODYuNiA4Ni42elwiXVxufTtcbnZhciBmYU1hZ25ldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYWduZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNzZcIiwgXCJNMTY0LjA3IDE0OC4xSDEyYTEyIDEyIDAgMCAxLTEyLTEydi04MGEzNiAzNiAwIDAgMSAzNi0zNmgxMDRhMzYgMzYgMCAwIDEgMzYgMzZ2ODBhMTEuODkgMTEuODkgMCAwIDEtMTEuOTMgMTJ6bTM0Ny45My0xMlY1NmEzNiAzNiAwIDAgMC0zNi0zNkgzNzJhMzYgMzYgMCAwIDAtMzYgMzZ2ODBhMTIgMTIgMCAwIDAgMTIgMTJoMTUyYTExLjg5IDExLjg5IDAgMCAwIDEyLTExLjl6bS0xNjQgNDRhMTIgMTIgMCAwIDAtMTIgMTJ2NTJjMCAxMjguMS0xNjAgMTI3LjktMTYwIDB2LTUyYTEyIDEyIDAgMCAwLTEyLTEySDEyLjFhMTIgMTIgMCAwIDAtMTIgMTIuMWMuMSAyMS40LjYgNDAuMyAwIDUzLjMgMCAxNTAuNiAxMzYuMTcgMjQ2LjYgMjU2Ljc1IDI0Ni42czI1NS05NiAyNTUtMjQ2LjdjLS42LTEyLjgtLjItMzMgMC01My4yYTEyIDEyIDAgMCAwLTEyLTEyLjF6XCJdXG59O1xudmFyIGZhTWFpbEJ1bGsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFpbC1idWxrJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNjc0XCIsIFwiTTE2MCA0NDhjLTI1LjYgMC01MS4yLTIyLjQtNjQtMzItNjQtNDQuOC04My4yLTYwLjgtOTYtNzAuNFY0ODBjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgyNTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzNDUuNmMtMTIuOCA5LjYtMzIgMjUuNi05NiA3MC40LTEyLjggOS42LTM4LjQgMzItNjQgMzJ6bTEyOC0xOTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTZjMjUuNiAxOS4yIDIyLjQgMTkuMiAxMTUuMiA4Ni40IDkuNiA2LjQgMjguOCAyNS42IDQ0LjggMjUuNnMzNS4yLTE5LjIgNDQuOC0yMi40YzkyLjgtNjcuMiA4OS42LTY3LjIgMTE1LjItODYuNFYyODhjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptMjU2LTk2SDIyNGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmg5NmMzMy4yMSAwIDYwLjU5IDI1LjQyIDYzLjcxIDU3LjgybC4yOS0uMjJWNDE2aDE5MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjE5MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0tMzIgMTI4aC02NHYtNjRoNjR2NjR6bS0zNTItOTZjMC0zNS4yOSAyOC43MS02NCA2NC02NGgyMjRWMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkg5NkM3OC4zMyAwIDY0IDE0LjMzIDY0IDMydjE5Mmg5NnYtMzJ6XCJdXG59O1xudmFyIGZhTWFsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYWxlJyxcbiAgaWNvbjogWzE5MiwgNTEyLCBbXSwgXCJmMTgzXCIsIFwiTTk2IDBjMzUuMzQ2IDAgNjQgMjguNjU0IDY0IDY0cy0yOC42NTQgNjQtNjQgNjQtNjQtMjguNjU0LTY0LTY0UzYwLjY1NCAwIDk2IDBtNDggMTQ0aC0xMS4zNmMtMjIuNzExIDEwLjQ0My00OS41OSAxMC44OTQtNzMuMjggMEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHYxMzZjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE2djEzNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoNjRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjM1MmgxNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTkyYzAtMjYuNTEtMjEuNDktNDgtNDgtNDh6XCJdXG59O1xudmFyIGZhTWFwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI3OVwiLCBcIk0wIDExNy42NnYzNDYuMzJjMCAxMS4zMiAxMS40MyAxOS4wNiAyMS45NCAxNC44NkwxNjAgNDE2VjMyTDIwLjEyIDg3Ljk1QTMyLjAwNiAzMi4wMDYgMCAwIDAgMCAxMTcuNjZ6TTE5MiA0MTZsMTkyIDY0Vjk2TDE5MiAzMnYzODR6TTU1NC4wNiAzMy4xNkw0MTYgOTZ2Mzg0bDEzOS44OC01NS45NUEzMS45OTYgMzEuOTk2IDAgMCAwIDU3NiAzOTQuMzRWNDguMDJjMC0xMS4zMi0xMS40My0xOS4wNi0yMS45NC0xNC44NnpcIl1cbn07XG52YXIgZmFNYXBNYXJrZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFwLW1hcmtlZCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjU5ZlwiLCBcIk0yODggMGMtNjkuNTkgMC0xMjYgNTYuNDEtMTI2IDEyNiAwIDU2LjI2IDgyLjM1IDE1OC44IDExMy45IDE5Ni4wMiA2LjM5IDcuNTQgMTcuODIgNy41NCAyNC4yIDBDMzMxLjY1IDI4NC44IDQxNCAxODIuMjYgNDE0IDEyNiA0MTQgNTYuNDEgMzU3LjU5IDAgMjg4IDB6TTIwLjEyIDIxNS45NUEzMi4wMDYgMzIuMDA2IDAgMCAwIDAgMjQ1LjY2djI1MC4zMmMwIDExLjMyIDExLjQzIDE5LjA2IDIxLjk0IDE0Ljg2TDE2MCA0NDhWMjE0LjkyYy04Ljg0LTE1Ljk4LTE2LjA3LTMxLjU0LTIxLjI1LTQ2LjQyTDIwLjEyIDIxNS45NXpNMjg4IDM1OS42N2MtMTQuMDcgMC0yNy4zOC02LjE4LTM2LjUxLTE2Ljk2LTE5LjY2LTIzLjItNDAuNTctNDkuNjItNTkuNDktNzYuNzJ2MTgybDE5MiA2NFYyNjZjLTE4LjkyIDI3LjA5LTM5LjgyIDUzLjUyLTU5LjQ5IDc2LjcyLTkuMTMgMTAuNzctMjIuNDQgMTYuOTUtMzYuNTEgMTYuOTV6bTI2Ni4wNi0xOTguNTFMNDE2IDIyNHYyODhsMTM5Ljg4LTU1Ljk1QTMxLjk5NiAzMS45OTYgMCAwIDAgNTc2IDQyNi4zNFYxNzYuMDJjMC0xMS4zMi0xMS40My0xOS4wNi0yMS45NC0xNC44NnpcIl1cbn07XG52YXIgZmFNYXBNYXJrZWRBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFwLW1hcmtlZC1hbHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImY1YTBcIiwgXCJNMjg4IDBjLTY5LjU5IDAtMTI2IDU2LjQxLTEyNiAxMjYgMCA1Ni4yNiA4Mi4zNSAxNTguOCAxMTMuOSAxOTYuMDIgNi4zOSA3LjU0IDE3LjgyIDcuNTQgMjQuMiAwQzMzMS42NSAyODQuOCA0MTQgMTgyLjI2IDQxNCAxMjYgNDE0IDU2LjQxIDM1Ny41OSAwIDI4OCAwem0wIDE2OGMtMjMuMiAwLTQyLTE4LjgtNDItNDJzMTguOC00MiA0Mi00MiA0MiAxOC44IDQyIDQyLTE4LjggNDItNDIgNDJ6TTIwLjEyIDIxNS45NUEzMi4wMDYgMzIuMDA2IDAgMCAwIDAgMjQ1LjY2djI1MC4zMmMwIDExLjMyIDExLjQzIDE5LjA2IDIxLjk0IDE0Ljg2TDE2MCA0NDhWMjE0LjkyYy04Ljg0LTE1Ljk4LTE2LjA3LTMxLjU0LTIxLjI1LTQ2LjQyTDIwLjEyIDIxNS45NXpNMjg4IDM1OS42N2MtMTQuMDcgMC0yNy4zOC02LjE4LTM2LjUxLTE2Ljk2LTE5LjY2LTIzLjItNDAuNTctNDkuNjItNTkuNDktNzYuNzJ2MTgybDE5MiA2NFYyNjZjLTE4LjkyIDI3LjA5LTM5LjgyIDUzLjUyLTU5LjQ5IDc2LjcyLTkuMTMgMTAuNzctMjIuNDQgMTYuOTUtMzYuNTEgMTYuOTV6bTI2Ni4wNi0xOTguNTFMNDE2IDIyNHYyODhsMTM5Ljg4LTU1Ljk1QTMxLjk5NiAzMS45OTYgMCAwIDAgNTc2IDQyNi4zNFYxNzYuMDJjMC0xMS4zMi0xMS40My0xOS4wNi0yMS45NC0xNC44NnpcIl1cbn07XG52YXIgZmFNYXBNYXJrZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFwLW1hcmtlcicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjA0MVwiLCBcIk0xNzIuMjY4IDUwMS42N0MyNi45NyAyOTEuMDMxIDAgMjY5LjQxMyAwIDE5MiAwIDg1Ljk2MSA4NS45NjEgMCAxOTIgMHMxOTIgODUuOTYxIDE5MiAxOTJjMCA3Ny40MTMtMjYuOTcgOTkuMDMxLTE3Mi4yNjggMzA5LjY3LTkuNTM1IDEzLjc3NC0yOS45MyAxMy43NzMtMzkuNDY0IDB6XCJdXG59O1xudmFyIGZhTWFwTWFya2VyQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcC1tYXJrZXItYWx0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmM2M1XCIsIFwiTTE3Mi4yNjggNTAxLjY3QzI2Ljk3IDI5MS4wMzEgMCAyNjkuNDEzIDAgMTkyIDAgODUuOTYxIDg1Ljk2MSAwIDE5MiAwczE5MiA4NS45NjEgMTkyIDE5MmMwIDc3LjQxMy0yNi45NyA5OS4wMzEtMTcyLjI2OCAzMDkuNjctOS41MzUgMTMuNzc0LTI5LjkzIDEzLjc3My0zOS40NjQgMHpNMTkyIDI3MmM0NC4xODMgMCA4MC0zNS44MTcgODAtODBzLTM1LjgxNy04MC04MC04MC04MCAzNS44MTctODAgODAgMzUuODE3IDgwIDgwIDgwelwiXVxufTtcbnZhciBmYU1hcFBpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXAtcGluJyxcbiAgaWNvbjogWzI4OCwgNTEyLCBbXSwgXCJmMjc2XCIsIFwiTTExMiAzMTYuOTR2MTU2LjY5bDIyLjAyIDMzLjAyYzQuNzUgNy4xMiAxNS4yMiA3LjEyIDE5Ljk3IDBMMTc2IDQ3My42M1YzMTYuOTRjLTEwLjM5IDEuOTItMjEuMDYgMy4wNi0zMiAzLjA2cy0yMS42MS0xLjE0LTMyLTMuMDZ6TTE0NCAwQzY0LjQ3IDAgMCA2NC40NyAwIDE0NHM2NC40NyAxNDQgMTQ0IDE0NCAxNDQtNjQuNDcgMTQ0LTE0NFMyMjMuNTMgMCAxNDQgMHptMCA3NmMtMzcuNSAwLTY4IDMwLjUtNjggNjggMCA2LjYyLTUuMzggMTItMTIgMTJzLTEyLTUuMzgtMTItMTJjMC01MC43MyA0MS4yOC05MiA5Mi05MiA2LjYyIDAgMTIgNS4zOCAxMiAxMnMtNS4zOCAxMi0xMiAxMnpcIl1cbn07XG52YXIgZmFNYXBTaWducyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXAtc2lnbnMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNzdcIiwgXCJNNTA3LjMxIDg0LjY5TDQ2NCA0MS4zN2MtNi02LTE0LjE0LTkuMzctMjIuNjMtOS4zN0gyODhWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNkg1NmMtMTMuMjUgMC0yNCAxMC43NS0yNCAyNHY4MGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDM4NS4zN2M4LjQ5IDAgMTYuNjItMy4zNyAyMi42My05LjM3bDQzLjMxLTQzLjMxYzYuMjUtNi4yNiA2LjI1LTE2LjM4IDAtMjIuNjN6TTIyNCA0OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWMzg0aC02NHYxMTJ6bTIzMi0yNzJIMjg4di0zMmgtNjR2MzJINzAuNjNjLTguNDkgMC0xNi42MiAzLjM3LTIyLjYzIDkuMzdMNC42OSAyNzYuNjljLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNMNDggMzQyLjYzYzYgNiAxNC4xNCA5LjM3IDIyLjYzIDkuMzdINDU2YzEzLjI1IDAgMjQtMTAuNzUgMjQtMjR2LTgwYzAtMTMuMjUtMTAuNzUtMjQtMjQtMjR6XCJdXG59O1xudmFyIGZhTWFya2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcmtlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVhMVwiLCBcIk05My45NSAyOTAuMDNBMzI3LjAzOCAzMjcuMDM4IDAgMCAwIC4xNyA0ODUuMTFsLS4wMy4yM2MtMS43IDE1LjI4IDExLjIxIDI4LjIgMjYuNDkgMjYuNTFhMzI3LjAyIDMyNy4wMiAwIDAgMCAxOTUuMzQtOTMuOGw3NS40LTc1LjQtMTI4LjAyLTEyOC4wMi03NS40IDc1LjR6TTQ4NS40OSAyNi41MWMtMzUuMzUtMzUuMzUtOTIuNjctMzUuMzUtMTI4LjAyIDBsLTIxLjc2IDIxLjc2LTM2LjU2LTM2LjU1Yy0xNS42Mi0xNS42Mi00MC45NS0xNS42Mi01Ni41NiAwTDEzOC40NyAxMTUuODRjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMjIuNjIgMjIuNjJjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMGw4Ny4xNS04Ny4xNSAxOS41OSAxOS41OUwxOTEuOTggMTkyIDMyMCAzMjAuMDJsMTY1LjQ5LTE2NS40OWMzNS4zNS0zNS4zNSAzNS4zNS05Mi42NiAwLTEyOC4wMnpcIl1cbn07XG52YXIgZmFNYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcnMnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYyMjJcIiwgXCJNMzcyIDY0aC03OWMtMTAuNyAwLTE2IDEyLjktOC41IDIwLjVsMTYuOSAxNi45LTgwLjcgODAuN2MtMjIuMi0xNC00OC41LTIyLjEtNzYuNy0yMi4xQzY0LjUgMTYwIDAgMjI0LjUgMCAzMDRzNjQuNSAxNDQgMTQ0IDE0NCAxNDQtNjQuNSAxNDQtMTQ0YzAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsODAuNy04MC43IDE2LjkgMTYuOWM3LjYgNy42IDIwLjUgMi4yIDIwLjUtOC41Vjc2YzAtNi42LTUuNC0xMi0xMi0xMnpNMTQ0IDM4NGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6XCJdXG59O1xudmFyIGZhTWFyc0RvdWJsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLWRvdWJsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjIyN1wiLCBcIk0zNDAgMGgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS00OC43IDQ4LjdDMTk4LjUgNzIuMSAxNzIuMiA2NCAxNDQgNjQgNjQuNSA2NCAwIDEyOC41IDAgMjA4czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NGMwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDQ4LjctNDguNyAxNi45IDE2LjljMi40IDIuNCA1LjUgMy41IDguNCAzLjUgNi4yIDAgMTIuMS00LjggMTIuMS0xMlYxMmMwLTYuNi01LjQtMTItMTItMTJ6TTE0NCAyODhjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwem0zNTYtMTI4LjFoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktNDguNyA0OC43Yy0xOC4yLTExLjQtMzktMTguOS02MS41LTIxLjMtMi4xIDIxLjgtOC4yIDQzLjMtMTguNCA2My4zIDEuMSAwIDIuMi0uMSAzLjItLjEgNDQuMSAwIDgwIDM1LjkgODAgODBzLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MGMwLTEuMSAwLTIuMi4xLTMuMi0yMCAxMC4yLTQxLjUgMTYuNC02My4zIDE4LjRDMTY4LjQgNDU1LjYgMjI5LjYgNTEyIDMwNCA1MTJjNzkuNSAwIDE0NC02NC41IDE0NC0xNDQgMC0yOC4yLTguMS01NC41LTIyLjEtNzYuN2w0OC43LTQ4LjcgMTYuOSAxNi45YzIuNCAyLjQgNS40IDMuNSA4LjQgMy41IDYuMiAwIDEyLjEtNC44IDEyLjEtMTJ2LTc5YzAtNi43LTUuNC0xMi4xLTEyLTEyLjF6XCJdXG59O1xudmFyIGZhTWFyc1N0cm9rZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtYXJzLXN0cm9rZScsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjIyOVwiLCBcIk0zNzIgNjRoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktMTcuNSAxNy41LTE0LjEtMTQuMWMtNC43LTQuNy0xMi4zLTQuNy0xNyAwTDIyNC41IDEzM2MtNC43IDQuNy00LjcgMTIuMyAwIDE3bDE0LjEgMTQuMS0xOCAxOGMtMjIuMi0xNC00OC41LTIyLjEtNzYuNy0yMi4xQzY0LjUgMTYwIDAgMjI0LjUgMCAzMDRzNjQuNSAxNDQgMTQ0IDE0NCAxNDQtNjQuNSAxNDQtMTQ0YzAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsMTgtMTggMTQuMSAxNC4xYzQuNyA0LjcgMTIuMyA0LjcgMTcgMGwyOC4zLTI4LjNjNC43LTQuNyA0LjctMTIuMyAwLTE3TDMyOS4yIDE2NGwxNy41LTE3LjUgMTYuOSAxNi45YzcuNiA3LjYgMjAuNSAyLjIgMjAuNS04LjVWNzZjLS4xLTYuNi01LjUtMTItMTIuMS0xMnpNMTQ0IDM4NGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6XCJdXG59O1xudmFyIGZhTWFyc1N0cm9rZUggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFycy1zdHJva2UtaCcsXG4gIGljb246IFs0ODAsIDUxMiwgW10sIFwiZjIyYlwiLCBcIk00NzYuMiAyNDcuNWwtNTUuOS01NS45Yy03LjYtNy42LTIwLjUtMi4yLTIwLjUgOC41VjIyNEgzNzZ2LTIwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMnYyMGgtMjcuNmMtNS44LTI1LjYtMTguNy00OS45LTM4LjYtNjkuOEMxODkuNiA5OCA5OC40IDk4IDQyLjIgMTU0LjJjLTU2LjIgNTYuMi01Ni4yIDE0Ny40IDAgMjAzLjYgNTYuMiA1Ni4yIDE0Ny40IDU2LjIgMjAzLjYgMCAxOS45LTE5LjkgMzIuOC00NC4yIDM4LjYtNjkuOEgzMTJ2MjBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMjBoMjMuOXYyMy45YzAgMTAuNyAxMi45IDE2IDIwLjUgOC41bDU1LjktNTUuOWM0LjYtNC43IDQuNi0xMi4zLS4xLTE3em0tMjc1LjYgNjUuMWMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwLTMxLjItMzEuMi0zMS4yLTgxLjkgMC0xMTMuMSAzMS4yLTMxLjIgODEuOS0zMS4yIDExMy4xIDAgMzEuMiAzMS4xIDMxLjIgODEuOSAwIDExMy4xelwiXVxufTtcbnZhciBmYU1hcnNTdHJva2VWID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21hcnMtc3Ryb2tlLXYnLFxuICBpY29uOiBbMjg4LCA1MTIsIFtdLCBcImYyMmFcIiwgXCJNMjQ1LjggMjM0LjJjLTE5LjktMTkuOS00NC4yLTMyLjgtNjkuOC0zOC42di0yNS40aDIwYzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0yMFY4MS40aDIzLjljMTAuNyAwIDE2LTEyLjkgOC41LTIwLjVMMTUyLjUgNS4xYy00LjctNC43LTEyLjMtNC43LTE3IDBMNzkuNiA2MWMtNy42IDcuNi0yLjIgMjAuNSA4LjUgMjAuNUgxMTJ2MjQuN0g5MmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgyMHYyNS40Yy0yNS42IDUuOC00OS45IDE4LjctNjkuOCAzOC42LTU2LjIgNTYuMi01Ni4yIDE0Ny40IDAgMjAzLjYgNTYuMiA1Ni4yIDE0Ny40IDU2LjIgMjAzLjYgMCA1Ni4zLTU2LjIgNTYuMy0xNDcuNCAwLTIwMy42em0tNDUuMiAxNTguNGMtMzEuMiAzMS4yLTgxLjkgMzEuMi0xMTMuMSAwLTMxLjItMzEuMi0zMS4yLTgxLjkgMC0xMTMuMSAzMS4yLTMxLjIgODEuOS0zMS4yIDExMy4xIDAgMzEuMiAzMS4xIDMxLjIgODEuOSAwIDExMy4xelwiXVxufTtcbnZhciBmYU1hc2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWFzaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjZmYVwiLCBcIk0zMjAuNjcgNjRjLTQ0Mi42IDAtMzU3LjU3IDM4NC0xNTguNDYgMzg0IDM5LjkgMCA3Ny40Ny0yMC42OSAxMDEuNDItNTUuODZsMjUuNzMtMzcuNzljMTUuNjYtMjIuOTkgNDYuOTctMjIuOTkgNjIuNjMgMGwyNS43MyAzNy43OUM0MDEuNjYgNDI3LjMxIDQzOS4yMyA0NDggNDc5LjEzIDQ0OGMxODkuODYgMCAyOTAuNjMtMzg0LTE1OC40Ni0zODR6TTE4NCAzMDguMzZjLTQxLjA2IDAtNjcuNzYtMjUuNjYtODAuMDgtNDEuMDUtNS4yMy02LjUzLTUuMjMtMTYuMDkgMC0yMi42MyAxMi4zMi0xNS40IDM5LjAxLTQxLjA1IDgwLjA4LTQxLjA1czY3Ljc2IDI1LjY2IDgwLjA4IDQxLjA1YzUuMjMgNi41MyA1LjIzIDE2LjA5IDAgMjIuNjMtMTIuMzIgMTUuNC0zOS4wMiA0MS4wNS04MC4wOCA0MS4wNXptMjcyIDBjLTQxLjA2IDAtNjcuNzYtMjUuNjYtODAuMDgtNDEuMDUtNS4yMy02LjUzLTUuMjMtMTYuMDkgMC0yMi42MyAxMi4zMi0xNS40IDM5LjAxLTQxLjA1IDgwLjA4LTQxLjA1czY3Ljc2IDI1LjY2IDgwLjA4IDQxLjA1YzUuMjMgNi41MyA1LjIzIDE2LjA5IDAgMjIuNjMtMTIuMzIgMTUuNC0zOS4wMiA0MS4wNS04MC4wOCA0MS4wNXpcIl1cbn07XG52YXIgZmFNZWRhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZWRhbCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVhMlwiLCBcIk0yMjMuNzUgMTMwLjc1TDE1NC42MiAxNS41NEEzMS45OTcgMzEuOTk3IDAgMCAwIDEyNy4xOCAwSDE2LjAzQzMuMDggMC00LjUgMTQuNTcgMi45MiAyNS4xOGwxMTEuMjcgMTU4Ljk2YzI5LjcyLTI3Ljc3IDY3LjUyLTQ2LjgzIDEwOS41Ni01My4zOXpNNDk1Ljk3IDBIMzg0LjgyYy0xMS4yNCAwLTIxLjY2IDUuOS0yNy40NCAxNS41NGwtNjkuMTMgMTE1LjIxYzQyLjA0IDYuNTYgNzkuODQgMjUuNjIgMTA5LjU2IDUzLjM4TDUwOS4wOCAyNS4xOEM1MTYuNSAxNC41NyA1MDguOTIgMCA0OTUuOTcgMHpNMjU2IDE2MGMtOTcuMiAwLTE3NiA3OC44LTE3NiAxNzZzNzguOCAxNzYgMTc2IDE3NiAxNzYtNzguOCAxNzYtMTc2LTc4LjgtMTc2LTE3Ni0xNzZ6bTkyLjUyIDE1Ny4yNmwtMzcuOTMgMzYuOTYgOC45NyA1Mi4yMmMxLjYgOS4zNi04LjI2IDE2LjUxLTE2LjY1IDEyLjA5TDI1NiAzOTMuODhsLTQ2LjkgMjQuNjVjLTguNCA0LjQ1LTE4LjI1LTIuNzQtMTYuNjUtMTIuMDlsOC45Ny01Mi4yMi0zNy45My0zNi45NmMtNi44Mi02LjY0LTMuMDUtMTguMjMgNi4zNS0xOS41OWw1Mi40My03LjY0IDIzLjQzLTQ3LjUyYzIuMTEtNC4yOCA2LjE5LTYuMzkgMTAuMjgtNi4zOSA0LjExIDAgOC4yMiAyLjE0IDEwLjMzIDYuMzlsMjMuNDMgNDcuNTIgNTIuNDMgNy42NGM5LjQgMS4zNiAxMy4xNyAxMi45NSA2LjM1IDE5LjU5elwiXVxufTtcbnZhciBmYU1lZGtpdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZWRraXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwZmFcIiwgXCJNOTYgNDgwaDMyMFYxMjhoLTMyVjgwYzAtMjYuNTEtMjEuNDktNDgtNDgtNDhIMTc2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djQ4SDk2djM1MnptOTYtMzg0aDEyOHYzMkgxOTJWOTZ6bTMyMCA4MHYyNTZjMCAyNi41MS0yMS40OSA0OC00OCA0OGgtMTZWMTI4aDE2YzI2LjUxIDAgNDggMjEuNDkgNDggNDh6TTY0IDQ4MEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxNzZjMC0yNi41MSAyMS40OS00OCA0OC00OGgxNnYzNTJ6bTI4OC0yMDh2MzJjMCA4LjgzNy03LjE2MyAxNi0xNiAxNmgtNDh2NDhjMCA4LjgzNy03LjE2MyAxNi0xNiAxNmgtMzJjLTguODM3IDAtMTYtNy4xNjMtMTYtMTZ2LTQ4aC00OGMtOC44MzcgMC0xNi03LjE2My0xNi0xNnYtMzJjMC04LjgzNyA3LjE2My0xNiAxNi0xNmg0OHYtNDhjMC04LjgzNyA3LjE2My0xNiAxNi0xNmgzMmM4LjgzNyAwIDE2IDcuMTYzIDE2IDE2djQ4aDQ4YzguODM3IDAgMTYgNy4xNjMgMTYgMTZ6XCJdXG59O1xudmFyIGZhTWVoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21laCcsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjExYVwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0tODAgMTY4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptMTc2IDE5MkgxNTJjLTIxLjIgMC0yMS4yLTMyIDAtMzJoMTkyYzIxLjIgMCAyMS4yIDMyIDAgMzJ6bS0xNi0xMjhjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYU1laEJsYW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21laC1ibGFuaycsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjVhNFwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0tODAgMjMyYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptMTYwIDBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYU1laFJvbGxpbmdFeWVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21laC1yb2xsaW5nLWV5ZXMnLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1YTVcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNODggMjI0YzAtMjQuMyAxMy43LTQ1LjIgMzMuNi01Ni0uNyAyLjYtMS42IDUuMi0xLjYgOCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMi44LS45LTUuNC0xLjYtOCAxOS45IDEwLjggMzMuNiAzMS43IDMzLjYgNTYgMCAzNS4zLTI4LjcgNjQtNjQgNjRzLTY0LTI4LjctNjQtNjR6bTIyNCAxNzZIMTg0Yy0yMS4yIDAtMjEuMi0zMiAwLTMyaDEyOGMyMS4yIDAgMjEuMiAzMiAwIDMyem0zMi0xMTJjLTM1LjMgMC02NC0yOC43LTY0LTY0IDAtMjQuMyAxMy43LTQ1LjIgMzMuNi01Ni0uNyAyLjYtMS42IDUuMi0xLjYgOCAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyYzAtMi44LS45LTUuNC0xLjYtOCAxOS45IDEwLjggMzMuNiAzMS43IDMzLjYgNTYgMCAzNS4zLTI4LjcgNjQtNjQgNjR6XCJdXG59O1xudmFyIGZhTWVtb3J5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21lbW9yeScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjUzOFwiLCBcIk02NDAgMTMwLjk0Vjk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgNjQgMCA3OC4zMyAwIDk2djM0Ljk0YzE4LjYgNi42MSAzMiAyNC4xOSAzMiA0NS4wNnMtMTMuNCAzOC40NS0zMiA0NS4wNlYzMjBoNjQwdi05OC45NGMtMTguNi02LjYxLTMyLTI0LjE5LTMyLTQ1LjA2czEzLjQtMzguNDUgMzItNDUuMDZ6TTIyNCAyNTZoLTY0VjEyOGg2NHYxMjh6bTEyOCAwaC02NFYxMjhoNjR2MTI4em0xMjggMGgtNjRWMTI4aDY0djEyOHpNMCA0NDhoNjR2LTI2LjY3YzAtOC44NCA3LjE2LTE2IDE2LTE2czE2IDcuMTYgMTYgMTZWNDQ4aDEyOHYtMjYuNjdjMC04Ljg0IDcuMTYtMTYgMTYtMTZzMTYgNy4xNiAxNiAxNlY0NDhoMTI4di0yNi42N2MwLTguODQgNy4xNi0xNiAxNi0xNnMxNiA3LjE2IDE2IDE2VjQ0OGgxMjh2LTI2LjY3YzAtOC44NCA3LjE2LTE2IDE2LTE2czE2IDcuMTYgMTYgMTZWNDQ4aDY0di05Nkgwdjk2elwiXVxufTtcbnZhciBmYU1lbm9yYWggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWVub3JhaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjY3NlwiLCBcIk0xNDQgMTI4aC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0aDY0VjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNnptOTYgMGgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NGg2NFYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTE5MiAwaC0zMmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTQ0aDY0VjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNnptOTYgMGgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NGg2NFYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bTgwLTMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJTNjA4IDAgNjA4IDBzLTMyIDQ2LjMzLTMyIDY0IDE0LjMzIDMyIDMyIDMyem0tOTYgMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyUzUxMiAwIDUxMiAwcy0zMiA0Ni4zMy0zMiA2NCAxNC4zMyAzMiAzMiAzMnptLTk2IDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlM0MTYgMCA0MTYgMHMtMzIgNDYuMzMtMzIgNjQgMTQuMzMgMzIgMzIgMzJ6bS05NiAwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJTMzIwIDAgMzIwIDBzLTMyIDQ2LjMzLTMyIDY0IDE0LjMzIDMyIDMyIDMyem0tOTYgMGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyUzIyNCAwIDIyNCAwcy0zMiA0Ni4zMy0zMiA2NCAxNC4zMyAzMiAzMiAzMnptLTk2IDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlMxMjggMCAxMjggMCA5NiA0Ni4zMyA5NiA2NHMxNC4zMyAzMiAzMiAzMnptLTk2IDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlMzMiAwIDMyIDAgMCA0Ni4zMyAwIDY0czE0LjMzIDMyIDMyIDMyem01NDQgMTkyYzAgMTcuNjctMTQuMzMgMzItMzIgMzJIMzUyVjE0NGMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djE3Nkg5NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMlYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE0NGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2aDE5MnY2NEgxMTJjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMzUydi02NGgxOTJjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NlYxNDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNDR6XCJdXG59O1xudmFyIGZhTWVyY3VyeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtZXJjdXJ5JyxcbiAgaWNvbjogWzI4OCwgNTEyLCBbXSwgXCJmMjIzXCIsIFwiTTI4OCAyMDhjMC00NC4yLTE5LjktODMuNy01MS4yLTExMC4xIDIuNS0xLjggNC45LTMuOCA3LjItNS44IDI0LjctMjEuMiAzOS44LTQ4LjggNDMuMi03OC44LjktNy4xLTQuNy0xMy4zLTExLjktMTMuM2gtNDAuNUMyMjkgMCAyMjQuMSA0LjEgMjIzIDkuOGMtMi40IDEyLjUtOS42IDI0LjMtMjAuNyAzMy44QzE4NyA1Ni44IDE2Ni4zIDY0IDE0NCA2NHMtNDMtNy4yLTU4LjQtMjAuNEM3NC41IDM0LjEgNjcuNCAyMi4zIDY0LjkgOS44IDYzLjggNC4xIDU4LjkgMCA1My4yIDBIMTIuN0M1LjUgMC0uMSA2LjIuOCAxMy4zIDQuMiA0My40IDE5LjIgNzEgNDQgOTIuMmMyLjMgMiA0LjcgMy45IDcuMiA1LjhDMTkuOSAxMjQuMyAwIDE2My44IDAgMjA4YzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNFY0MDBINzZjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMzZ2MzZjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMzZoMzZjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTM2di01MS42YzY0LjEtMTQuNSAxMTItNzEuOSAxMTItMTQwLjR6bS0yMjQgMGMwLTQ0LjEgMzUuOS04MCA4MC04MHM4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MHpcIl1cbn07XG52YXIgZmFNZXRlb3IgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWV0ZW9yJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzUzXCIsIFwiTTQ5MS4yLjdDNDUyLjUgMTIuMyAzNzkuNCAzNSAzMDMuNSA2MmMtMi4xLTctNC0xMy41LTUuNi0xOC42LTMtOS43LTEzLjktMTQuMi0yMi45LTkuNUMyMzIuNiA1NiAxMjIuMiAxMTYuNSA2MC42IDE3Ni40Yy0xLjEgMS0yLjUgMi0zLjUgM0MxOSAyMTcuNCAwIDI2Ny4zIDAgMzE3LjIgMCAzNjcgMTkgNDE2LjkgNTcgNDU1YzM4IDM4IDg3LjkgNTcuMSAxMzcuOCA1NyA0OS45IDAgOTkuOC0xOSAxMzcuOS01Ny4xIDEtMSAyLTIuNCAzLTMuNSA1OS44LTYxLjYgMTIwLjQtMTcyLjEgMTQyLjUtMjE0LjQgNC43LTkgLjItMTkuOS05LjUtMjIuOS01LjItMS42LTExLjYtMy41LTE4LjYtNS42IDI3LTc2IDQ5LjctMTQ5IDYxLjMtMTg3LjdDNTE1IDguNCA1MDMuNi0zIDQ5MS4yLjd6TTE5MiA0NDhjLTcwLjcgMC0xMjgtNTcuMy0xMjgtMTI4czU3LjMtMTI4IDEyOC0xMjggMTI4IDU3LjMgMTI4IDEyOC01Ny4zIDEyOC0xMjggMTI4em0tMzItMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzItMTQuMy0zMi0zMi0zMnptNDggOTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTYgMTYtNy4yIDE2LTE2LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFNaWNyb2NoaXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9jaGlwJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmRiXCIsIFwiTTQxNiA0OHY0MTZjMCAyNi41MS0yMS40OSA0OC00OCA0OEgxNDRjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhWNDhjMC0yNi41MSAyMS40OS00OCA0OC00OGgyMjRjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHptOTYgNTh2MTJhNiA2IDAgMCAxLTYgNmgtMTh2NmE2IDYgMCAwIDEtNiA2aC00MlY4OGg0MmE2IDYgMCAwIDEgNiA2djZoMThhNiA2IDAgMCAxIDYgNnptMCA5NnYxMmE2IDYgMCAwIDEtNiA2aC0xOHY2YTYgNiAwIDAgMS02IDZoLTQydi00OGg0MmE2IDYgMCAwIDEgNiA2djZoMThhNiA2IDAgMCAxIDYgNnptMCA5NnYxMmE2IDYgMCAwIDEtNiA2aC0xOHY2YTYgNiAwIDAgMS02IDZoLTQydi00OGg0MmE2IDYgMCAwIDEgNiA2djZoMThhNiA2IDAgMCAxIDYgNnptMCA5NnYxMmE2IDYgMCAwIDEtNiA2aC0xOHY2YTYgNiAwIDAgMS02IDZoLTQydi00OGg0MmE2IDYgMCAwIDEgNiA2djZoMThhNiA2IDAgMCAxIDYgNnpNMzAgMzc2aDQydjQ4SDMwYTYgNiAwIDAgMS02LTZ2LTZINmE2IDYgMCAwIDEtNi02di0xMmE2IDYgMCAwIDEgNi02aDE4di02YTYgNiAwIDAgMSA2LTZ6bTAtOTZoNDJ2NDhIMzBhNiA2IDAgMCAxLTYtNnYtNkg2YTYgNiAwIDAgMS02LTZ2LTEyYTYgNiAwIDAgMSA2LTZoMTh2LTZhNiA2IDAgMCAxIDYtNnptMC05Nmg0MnY0OEgzMGE2IDYgMCAwIDEtNi02di02SDZhNiA2IDAgMCAxLTYtNnYtMTJhNiA2IDAgMCAxIDYtNmgxOHYtNmE2IDYgMCAwIDEgNi02em0wLTk2aDQydjQ4SDMwYTYgNiAwIDAgMS02LTZ2LTZINmE2IDYgMCAwIDEtNi02di0xMmE2IDYgMCAwIDEgNi02aDE4di02YTYgNiAwIDAgMSA2LTZ6XCJdXG59O1xudmFyIGZhTWljcm9waG9uZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtaWNyb3Bob25lJyxcbiAgaWNvbjogWzM1MiwgNTEyLCBbXSwgXCJmMTMwXCIsIFwiTTE3NiAzNTJjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NlY5NmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2UzgwIDQyLjk4IDgwIDk2djE2MGMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2em0xNjAtMTYwaC0xNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhjMCA3NC44LTY0LjQ5IDEzNC44Mi0xNDAuNzkgMTI3LjM4Qzk2LjcxIDM3Ni44OSA0OCAzMTcuMTEgNDggMjUwLjNWMjA4YzAtOC44NC03LjE2LTE2LTE2LTE2SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0MC4xNmMwIDg5LjY0IDYzLjk3IDE2OS41NSAxNTIgMTgxLjY5VjQ2NEg5NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNmgtNTZ2LTMzLjc3QzI4NS43MSA0MTguNDcgMzUyIDM0NC45IDM1MiAyNTZ2LTQ4YzAtOC44NC03LjE2LTE2LTE2LTE2elwiXVxufTtcbnZhciBmYU1pY3JvcGhvbmVBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9waG9uZS1hbHQnLFxuICBpY29uOiBbMzUyLCA1MTIsIFtdLCBcImYzYzlcIiwgXCJNMzM2IDE5MmgtMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djQ4YzAgNzQuOC02NC40OSAxMzQuODItMTQwLjc5IDEyNy4zOEM5Ni43MSAzNzYuODkgNDggMzE3LjExIDQ4IDI1MC4zVjIwOGMwLTguODQtNy4xNi0xNi0xNi0xNkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDAuMTZjMCA4OS42NCA2My45NyAxNjkuNTUgMTUyIDE4MS42OVY0NjRIOTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTU2di0zMy43N0MyODUuNzEgNDE4LjQ3IDM1MiAzNDQuOSAzNTIgMjU2di00OGMwLTguODQtNy4xNi0xNi0xNi0xNnpNMTc2IDM1MmM1My4wMiAwIDk2LTQyLjk4IDk2LTk2aC04NS4zM2MtNS44OSAwLTEwLjY3LTMuNTgtMTAuNjctOHYtMTZjMC00LjQyIDQuNzgtOCAxMC42Ny04SDI3MnYtMzJoLTg1LjMzYy01Ljg5IDAtMTAuNjctMy41OC0xMC42Ny04di0xNmMwLTQuNDIgNC43OC04IDEwLjY3LThIMjcydi0zMmgtODUuMzNjLTUuODkgMC0xMC42Ny0zLjU4LTEwLjY3LTh2LTE2YzAtNC40MiA0Ljc4LTggMTAuNjctOEgyNzJjMC01My4wMi00Mi45OC05Ni05Ni05NlM4MCA0Mi45OCA4MCA5NnYxNjBjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnpcIl1cbn07XG52YXIgZmFNaWNyb3Bob25lQWx0U2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9waG9uZS1hbHQtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1MzlcIiwgXCJNNjMzLjgyIDQ1OC4xTDQ3Ni4yNiAzMzYuMzNDNDg4Ljc0IDMxMi4yMSA0OTYgMjg0Ljk4IDQ5NiAyNTZ2LTQ4YzAtOC44NC03LjE2LTE2LTE2LTE2aC0xNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NDhjMCAxNy45Mi0zLjk2IDM0LjgtMTAuNzIgNTAuMmwtMjYuNTUtMjAuNTJjMy4xLTkuNCA1LjI4LTE5LjIyIDUuMjgtMjkuNjdoLTQzLjY3bC00MS40LTMySDQxNnYtMzJoLTg1LjMzYy01Ljg5IDAtMTAuNjctMy41OC0xMC42Ny04di0xNmMwLTQuNDIgNC43OC04IDEwLjY3LThINDE2di0zMmgtODUuMzNjLTUuODkgMC0xMC42Ny0zLjU4LTEwLjY3LTh2LTE2YzAtNC40MiA0Ljc4LTggMTAuNjctOEg0MTZjMC01My4wMi00Mi45OC05Ni05Ni05NnMtOTYgNDIuOTgtOTYgOTZ2NDUuMzZMNDUuNDcgMy4zN0MzOC40OS0yLjA1IDI4LjQzLS44IDIzLjAxIDYuMThMMy4zNyAzMS40NUMtMi4wNSAzOC40Mi0uOCA0OC40NyA2LjE4IDUzLjlsNTg4LjM2IDQ1NC43M2M2Ljk4IDUuNDMgMTcuMDMgNC4xNyAyMi40Ni0yLjgxbDE5LjY0LTI1LjI3YzUuNDEtNi45NyA0LjE2LTE3LjAyLTIuODItMjIuNDV6TTQwMCA0NjRoLTU2di0zMy43OGMxMS43MS0xLjYyIDIzLjEtNC4yOCAzMy45Ni04LjA4bC01MC40LTM4Ljk2Yy02LjcxLjQtMTMuNDEuODctMjAuMzUuMi01NS44NS01LjQ1LTk4Ljc0LTQ4LjYzLTExMS4xOC0xMDEuODVMMTQ0IDI0MS4zMXY2Ljg1YzAgODkuNjQgNjMuOTcgMTY5LjU1IDE1MiAxODEuNjlWNDY0aC01NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFNaWNyb3Bob25lU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWljcm9waG9uZS1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjEzMVwiLCBcIk02MzMuODIgNDU4LjFsLTE1Ny44LTEyMS45NkM0ODguNjEgMzEyLjEzIDQ5NiAyODUuMDEgNDk2IDI1NnYtNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0OGMwIDE3LjkyLTMuOTYgMzQuOC0xMC43MiA1MC4ybC0yNi41NS0yMC41MmMzLjEtOS40IDUuMjgtMTkuMjIgNS4yOC0yOS42N1Y5NmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2cy05NiA0Mi45OC05NiA5NnY0NS4zNkw0NS40NyAzLjM3QzM4LjQ5LTIuMDUgMjguNDMtLjggMjMuMDEgNi4xOEwzLjM3IDMxLjQ1Qy0yLjA1IDM4LjQyLS44IDQ4LjQ3IDYuMTggNTMuOWw1ODguMzYgNDU0LjczYzYuOTggNS40MyAxNy4wMyA0LjE3IDIyLjQ2LTIuODFsMTkuNjQtMjUuMjdjNS40MS02Ljk3IDQuMTYtMTcuMDItMi44Mi0yMi40NXpNNDAwIDQ2NGgtNTZ2LTMzLjc3YzExLjY2LTEuNiAyMi44NS00LjU0IDMzLjY3LTguMzFsLTUwLjExLTM4LjczYy02LjcxLjQtMTMuNDEuODctMjAuMzUuMi01NS44NS01LjQ1LTk4Ljc0LTQ4LjYzLTExMS4xOC0xMDEuODVMMTQ0IDI0MS4zMXY2Ljg1YzAgODkuNjQgNjMuOTcgMTY5LjU1IDE1MiAxODEuNjlWNDY0aC01NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTYwYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTguODQtNy4xNi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFNaWNyb3Njb3BlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pY3Jvc2NvcGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2MTBcIiwgXCJNMTYwIDMyMGgxMnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmg0MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZoMTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyVjE2YzAtOC44NC03LjE2LTE2LTE2LTE2aC02NGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MjI0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJ6bTMwNCAxMjhoLTEuMjlDNDkzLjI0IDQxMy45OSA1MTIgMzY5LjIgNTEyIDMyMGMwLTEwNS44OC04Ni4xMi0xOTItMTkyLTE5MnY2NGM3MC41OCAwIDEyOCA1Ny40MiAxMjggMTI4cy01Ny40MiAxMjgtMTI4IDEyOEg0OGMtMjYuNTEgMC00OCAyMS40OS00OCA0OCAwIDguODQgNy4xNiAxNiAxNiAxNmg0ODBjOC44NCAwIDE2LTcuMTYgMTYtMTYgMC0yNi41MS0yMS40OS00OC00OC00OHptLTM2MC0zMmgyMDhjNC40MiAwIDgtMy41OCA4LTh2LTE2YzAtNC40Mi0zLjU4LTgtOC04SDEwNGMtNC40MiAwLTggMy41OC04IDh2MTZjMCA0LjQyIDMuNTggOCA4IDh6XCJdXG59O1xudmFyIGZhTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWludXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwNjhcIiwgXCJNNDE2IDIwOEgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDM4NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYU1pbnVzQ2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pbnVzLWNpcmNsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA1NlwiLCBcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4ek0xMjQgMjk2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmgyNjRjNi42IDAgMTIgNS40IDEyIDEydjU2YzAgNi42LTUuNCAxMi0xMiAxMkgxMjR6XCJdXG59O1xudmFyIGZhTWludXNTcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbWludXMtc3F1YXJlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTQ2XCIsIFwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTkyIDI5NmMtNi42IDAtMTItNS40LTEyLTEydi01NmMwLTYuNiA1LjQtMTIgMTItMTJoMjY0YzYuNiAwIDEyIDUuNCAxMiAxMnY1NmMwIDYuNi01LjQgMTItMTIgMTJIOTJ6XCJdXG59O1xudmFyIGZhTWl0dGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21pdHRlbicsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdiNVwiLCBcIk0zNjggNDE2SDQ4Yy04LjggMC0xNiA3LjItMTYgMTZ2NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyMGM4LjggMCAxNi03LjIgMTYtMTZ2LTY0YzAtOC44LTcuMi0xNi0xNi0xNnptNTctMjA5LjFjLTI3LjItMjIuNi02Ny41LTE5LTkwLjEgOC4ybC0yMC45IDI1LTI5LjYtMTI4LjRjLTE4LTc3LjUtOTUuNC0xMjUuOS0xNzIuOC0xMDhDMzQuMiAyMS42LTE0LjIgOTguOSAzLjcgMTc2LjRMNTEuNiAzODRoMzA5bDcyLjUtODdjMjIuNy0yNy4yIDE5LTY3LjUtOC4xLTkwLjF6XCJdXG59O1xudmFyIGZhTW9iaWxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vYmlsZScsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjEwYlwiLCBcIk0yNzIgMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDIyNGMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTYwIDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhTW9iaWxlQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vYmlsZS1hbHQnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYzY2RcIiwgXCJNMjcyIDBINDhDMjEuNSAwIDAgMjEuNSAwIDQ4djQxNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyMjRjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWNDhjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE2MCA0ODBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyem0xMTItMTA4YzAgNi42LTUuNCAxMi0xMiAxMkg2MGMtNi42IDAtMTItNS40LTEyLTEyVjYwYzAtNi42IDUuNC0xMiAxMi0xMmgyMDBjNi42IDAgMTIgNS40IDEyIDEydjMxMnpcIl1cbn07XG52YXIgZmFNb25leUJpbGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktYmlsbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjBkNlwiLCBcIk02MDggNjRIMzJDMTQuMzMgNjQgMCA3OC4zMyAwIDk2djMyMGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDU3NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjk2YzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTQ4IDQwMHYtNjRjMzUuMzUgMCA2NCAyOC42NSA2NCA2NEg0OHptMC0yMjR2LTY0aDY0YzAgMzUuMzUtMjguNjUgNjQtNjQgNjR6bTI3MiAxNzZjLTQ0LjE5IDAtODAtNDIuOTktODAtOTYgMC01My4wMiAzNS44Mi05NiA4MC05NnM4MCA0Mi45OCA4MCA5NmMwIDUzLjAzLTM1LjgzIDk2LTgwIDk2em0yNzIgNDhoLTY0YzAtMzUuMzUgMjguNjUtNjQgNjQtNjR2NjR6bTAtMjI0Yy0zNS4zNSAwLTY0LTI4LjY1LTY0LTY0aDY0djY0elwiXVxufTtcbnZhciBmYU1vbmV5QmlsbEFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsLWFsdCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjNkMVwiLCBcIk0zNTIgMjg4aC0xNnYtODhjMC00LjQyLTMuNTgtOC04LThoLTEzLjU4Yy00Ljc0IDAtOS4zNyAxLjQtMTMuMzEgNC4wM2wtMTUuMzMgMTAuMjJhNy45OTQgNy45OTQgMCAwIDAtMi4yMiAxMS4wOWw4Ljg4IDEzLjMxYTcuOTk0IDcuOTk0IDAgMCAwIDExLjA5IDIuMjJsLjQ3LS4zMVYyODhoLTE2Yy00LjQyIDAtOCAzLjU4LTggOHYxNmMwIDQuNDIgMy41OCA4IDggOGg2NGM0LjQyIDAgOC0zLjU4IDgtOHYtMTZjMC00LjQyLTMuNTgtOC04LTh6TTYwOCA2NEgzMkMxNC4zMyA2NCAwIDc4LjMzIDAgOTZ2MzIwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNNDggNDAwdi02NGMzNS4zNSAwIDY0IDI4LjY1IDY0IDY0SDQ4em0wLTIyNHYtNjRoNjRjMCAzNS4zNS0yOC42NSA2NC02NCA2NHptMjcyIDE5MmMtNTMuMDIgMC05Ni01MC4xNS05Ni0xMTIgMC02MS44NiA0Mi45OC0xMTIgOTYtMTEyczk2IDUwLjE0IDk2IDExMmMwIDYxLjg3LTQzIDExMi05NiAxMTJ6bTI3MiAzMmgtNjRjMC0zNS4zNSAyOC42NS02NCA2NC02NHY2NHptMC0yMjRjLTM1LjM1IDAtNjQtMjguNjUtNjQtNjRoNjR2NjR6XCJdXG59O1xudmFyIGZhTW9uZXlCaWxsV2F2ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb25leS1iaWxsLXdhdmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1M2FcIiwgXCJNNjIxLjE2IDU0LjQ2QzU4Mi4zNyAzOC4xOSA1NDMuNTUgMzIgNTA0Ljc1IDMyYy0xMjMuMTctLjAxLTI0Ni4zMyA2Mi4zNC0zNjkuNSA2Mi4zNC0zMC44OSAwLTYxLjc2LTMuOTItOTIuNjUtMTMuNzItMy40Ny0xLjEtNi45NS0xLjYyLTEwLjM1LTEuNjJDMTUuMDQgNzkgMCA5Mi4zMiAwIDExMC44MXYzMTcuMjZjMCAxMi42MyA3LjIzIDI0LjYgMTguODQgMjkuNDZDNTcuNjMgNDczLjgxIDk2LjQ1IDQ4MCAxMzUuMjUgNDgwYzEyMy4xNyAwIDI0Ni4zNC02Mi4zNSAzNjkuNTEtNjIuMzUgMzAuODkgMCA2MS43NiAzLjkyIDkyLjY1IDEzLjcyIDMuNDcgMS4xIDYuOTUgMS42MiAxMC4zNSAxLjYyIDE3LjIxIDAgMzIuMjUtMTMuMzIgMzIuMjUtMzEuODFWODMuOTNjLS4wMS0xMi42NC03LjI0LTI0LjYtMTguODUtMjkuNDd6TTQ4IDEzMi4yMmMyMC4xMiA1LjA0IDQxLjEyIDcuNTcgNjIuNzIgOC45M0MxMDQuODQgMTcwLjU0IDc5IDE5Mi42OSA0OCAxOTIuNjl2LTYwLjQ3em0wIDI4NXYtNDcuNzhjMzQuMzcgMCA2Mi4xOCAyNy4yNyA2My43MSA2MS40LTIyLjUzLTEuODEtNDMuNTktNi4zMS02My43MS0xMy42MnpNMzIwIDM1MmMtNDQuMTkgMC04MC00Mi45OS04MC05NiAwLTUzLjAyIDM1LjgyLTk2IDgwLTk2czgwIDQyLjk4IDgwIDk2YzAgNTMuMDMtMzUuODMgOTYtODAgOTZ6bTI3MiAyNy43OGMtMTcuNTItNC4zOS0zNS43MS02Ljg1LTU0LjMyLTguNDQgNS44Ny0yNi4wOCAyNy41LTQ1Ljg4IDU0LjMyLTQ5LjI4djU3Ljcyem0wLTIzNi4xMWMtMzAuODktMy45MS01NC44Ni0yOS43LTU1LjgxLTYxLjU1IDE5LjU0IDIuMTcgMzguMDkgNi4yMyA1NS44MSAxMi42NnY0OC44OXpcIl1cbn07XG52YXIgZmFNb25leUJpbGxXYXZlQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbmV5LWJpbGwtd2F2ZS1hbHQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1M2JcIiwgXCJNNjIxLjE2IDU0LjQ2QzU4Mi4zNyAzOC4xOSA1NDMuNTUgMzIgNTA0Ljc1IDMyYy0xMjMuMTctLjAxLTI0Ni4zMyA2Mi4zNC0zNjkuNSA2Mi4zNC0zMC44OSAwLTYxLjc2LTMuOTItOTIuNjUtMTMuNzItMy40Ny0xLjEtNi45NS0xLjYyLTEwLjM1LTEuNjJDMTUuMDQgNzkgMCA5Mi4zMiAwIDExMC44MXYzMTcuMjZjMCAxMi42MyA3LjIzIDI0LjYgMTguODQgMjkuNDZDNTcuNjMgNDczLjgxIDk2LjQ1IDQ4MCAxMzUuMjUgNDgwYzEyMy4xNyAwIDI0Ni4zNC02Mi4zNSAzNjkuNTEtNjIuMzUgMzAuODkgMCA2MS43NiAzLjkyIDkyLjY1IDEzLjcyIDMuNDcgMS4xIDYuOTUgMS42MiAxMC4zNSAxLjYyIDE3LjIxIDAgMzIuMjUtMTMuMzIgMzIuMjUtMzEuODFWODMuOTNjLS4wMS0xMi42NC03LjI0LTI0LjYtMTguODUtMjkuNDd6TTMyMCAzNTJjLTQ0LjE5IDAtODAtNDIuOTktODAtOTYgMC01My4wMiAzNS44Mi05NiA4MC05NnM4MCA0Mi45OCA4MCA5NmMwIDUzLjAzLTM1LjgzIDk2LTgwIDk2elwiXVxufTtcbnZhciBmYU1vbmV5Q2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktY2hlY2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1M2NcIiwgXCJNMCA0NDhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NzZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYxMjhIMHYzMjB6bTQ0OC0yMDhjMC04Ljg0IDcuMTYtMTYgMTYtMTZoOTZjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MzJjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTk2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMzJ6bTAgMTIwYzAtNC40MiAzLjU4LTggOC04aDExMmM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg0NTZjLTQuNDIgMC04LTMuNTgtOC04di0xNnpNNjQgMjY0YzAtNC40MiAzLjU4LTggOC04aDMwNGM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2em0wIDk2YzAtNC40MiAzLjU4LTggOC04aDE3NmM0LjQyIDAgOCAzLjU4IDggOHYxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2ek02MjQgMzJIMTZDNy4xNiAzMiAwIDM5LjE2IDAgNDh2NDhoNjQwVjQ4YzAtOC44NC03LjE2LTE2LTE2LTE2elwiXVxufTtcbnZhciBmYU1vbmV5Q2hlY2tBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9uZXktY2hlY2stYWx0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTNkXCIsIFwiTTYwOCAzMkgzMkMxNC4zMyAzMiAwIDQ2LjMzIDAgNjR2Mzg0YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoNTc2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpNMTc2IDMyNy44OFYzNDRjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTYuMjljLTExLjI5LS41OC0yMi4yNy00LjUyLTMxLjM3LTExLjM1LTMuOS0yLjkzLTQuMS04Ljc3LS41Ny0xMi4xNGwxMS43NS0xMS4yMWMyLjc3LTIuNjQgNi44OS0yLjc2IDEwLjEzLS43MyAzLjg3IDIuNDIgOC4yNiAzLjcyIDEyLjgyIDMuNzJoMjguMTFjNi41IDAgMTEuOC01LjkyIDExLjgtMTMuMTkgMC01Ljk1LTMuNjEtMTEuMTktOC43Ny0xMi43M2wtNDUtMTMuNWMtMTguNTktNS41OC0zMS41OC0yMy40Mi0zMS41OC00My4zOSAwLTI0LjUyIDE5LjA1LTQ0LjQ0IDQyLjY3LTQ1LjA3VjE1MmMwLTQuNDIgMy41OC04IDgtOGgxNmM0LjQyIDAgOCAzLjU4IDggOHYxNi4yOWMxMS4yOS41OCAyMi4yNyA0LjUxIDMxLjM3IDExLjM1IDMuOSAyLjkzIDQuMSA4Ljc3LjU3IDEyLjE0bC0xMS43NSAxMS4yMWMtMi43NyAyLjY0LTYuODkgMi43Ni0xMC4xMy43My0zLjg3LTIuNDMtOC4yNi0zLjcyLTEyLjgyLTMuNzJoLTI4LjExYy02LjUgMC0xMS44IDUuOTItMTEuOCAxMy4xOSAwIDUuOTUgMy42MSAxMS4xOSA4Ljc3IDEyLjczbDQ1IDEzLjVjMTguNTkgNS41OCAzMS41OCAyMy40MiAzMS41OCA0My4zOSAwIDI0LjUzLTE5LjA1IDQ0LjQ0LTQyLjY3IDQ1LjA3ek00MTYgMzEyYzAgNC40Mi0zLjU4IDgtOCA4SDI5NmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDExMmM0LjQyIDAgOCAzLjU4IDggOHYxNnptMTYwIDBjMCA0LjQyLTMuNTggOC04IDhoLTgwYy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoODBjNC40MiAwIDggMy41OCA4IDh2MTZ6bTAtOTZjMCA0LjQyLTMuNTggOC04IDhIMjk2Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoMjcyYzQuNDIgMCA4IDMuNTggOCA4djE2elwiXVxufTtcbnZhciBmYU1vbnVtZW50ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vbnVtZW50JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNWE2XCIsIFwiTTM2OCA0NDhIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDM1MmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS03OC44Ni0zNDcuMjZhMzEuOTcgMzEuOTcgMCAwIDAtOS4yMS0xOS40NEwyMDMuMzEgNC42OWMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtNzYuNiA3Ni42MWEzMS45NyAzMS45NyAwIDAgMC05LjIxIDE5LjQ0TDY0IDQxNmgyNTZsLTMwLjg2LTMxNS4yNnpNMjQwIDMwNy4yYzAgNi40LTYuNCAxMi44LTEyLjggMTIuOGgtNzAuNGMtNi40IDAtMTIuOC02LjQtMTIuOC0xMi44di0zOC40YzAtNi40IDYuNC0xMi44IDEyLjgtMTIuOGg3MC40YzYuNCAwIDEyLjggNi40IDEyLjggMTIuOHYzOC40elwiXVxufTtcbnZhciBmYU1vb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW9vbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE4NlwiLCBcIk0yODMuMjExIDUxMmM3OC45NjIgMCAxNTEuMDc5LTM1LjkyNSAxOTguODU3LTk0Ljc5MiA3LjA2OC04LjcwOC0uNjM5LTIxLjQzLTExLjU2Mi0xOS4zNS0xMjQuMjAzIDIzLjY1NC0yMzguMjYyLTcxLjU3Ni0yMzguMjYyLTE5Ni45NTQgMC03Mi4yMjIgMzguNjYyLTEzOC42MzUgMTAxLjQ5OC0xNzQuMzk0IDkuNjg2LTUuNTEyIDcuMjUtMjAuMTk3LTMuNzU2LTIyLjIzQTI1OC4xNTYgMjU4LjE1NiAwIDAgMCAyODMuMjExIDBjLTE0MS4zMDkgMC0yNTYgMTE0LjUxMS0yNTYgMjU2IDAgMTQxLjMwOSAxMTQuNTExIDI1NiAyNTYgMjU2elwiXVxufTtcbnZhciBmYU1vcnRhclBlc3RsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3J0YXItcGVzdGxlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWE3XCIsIFwiTTUwMS41NCA2MC45MWMxNy4yMi0xNy4yMiAxMi41MS00Ni4yNS05LjI3LTU3LjE0YTM1LjY5NiAzNS42OTYgMCAwIDAtMzcuMzcgMy4zN0wyNTEuMDkgMTYwaDE1MS4zN2w5OS4wOC05OS4wOXpNNDk2IDE5MkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjMCA4MC45OCA1MC4yIDE1MC4xMSAxMjEuMTMgMTc4LjMyLTEyLjc2IDE2Ljg3LTIxLjcyIDM2LjgtMjQuOTUgNTguNjktMS40NiA5LjkyIDYuMDQgMTguOTggMTYuMDcgMTguOThoMjIzLjVjMTAuMDMgMCAxNy41My05LjA2IDE2LjA3LTE4Ljk4LTMuMjItMjEuODktMTIuMTgtNDEuODItMjQuOTUtNTguNjlDNDI5LjggNDA2LjExIDQ4MCAzMzYuOTggNDgwIDI1NmgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJdXG59O1xudmFyIGZhTW9zcXVlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vc3F1ZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjY3OFwiLCBcIk0wIDQ4MGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMTYwSDB2MzIwem01NzkuMTYtMTkyYzE3Ljg2LTE3LjM5IDI4Ljg0LTM3LjM0IDI4Ljg0LTU4LjkxIDAtNTIuODYtNDEuNzktOTMuNzktODcuOTItMTIyLjktNDEuOTQtMjYuNDctODAuNjMtNTcuNzctMTExLjk2LTk2LjIyTDQwMCAwbC04LjEyIDkuOTdjLTMxLjMzIDM4LjQ1LTcwLjAxIDY5Ljc2LTExMS45NiA5Ni4yMkMyMzMuNzkgMTM1LjMgMTkyIDE3Ni4yMyAxOTIgMjI5LjA5YzAgMjEuNTcgMTAuOTggNDEuNTIgMjguODQgNTguOTFoMzU4LjMyek02MDggMzIwSDE5MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMnYtNjRjMC0xNy42NyAxNC4zMy0zMiAzMi0zMnMzMiAxNC4zMyAzMiAzMnY2NGg2NHYtNzJjMC00OCA0OC03MiA0OC03MnM0OCAyNCA0OCA3MnY3Mmg2NHYtNjRjMC0xNy42NyAxNC4zMy0zMiAzMi0zMnMzMiAxNC4zMyAzMiAzMnY2NGgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjM1MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek02NCAwUzAgMzIgMCA5NnYzMmgxMjhWOTZjMC02NC02NC05Ni02NC05NnpcIl1cbn07XG52YXIgZmFNb3RvcmN5Y2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vdG9yY3ljbGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyMWNcIiwgXCJNNTEyLjkgMTkyYy0xNC45LS4xLTI5LjEgMi4zLTQyLjQgNi45TDQzNy42IDE0NEg1MjBjMTMuMyAwIDI0LTEwLjcgMjQtMjRWODhjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTQ1LjNjLTYuOCAwLTEzLjMgMi45LTE3LjggNy45bC0zNy41IDQxLjctMjIuOC0zOEMzOTIuMiA2OC40IDM4NC40IDY0IDM3NiA2NGgtODBjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoNjYuNGwxOS4yIDMySDIyNy45Yy0xNy43LTIzLjEtNDQuOS00MC05OS45LTQwSDcyLjVDNTkgMTA0IDQ3LjcgMTE1IDQ4IDEyOC41Yy4yIDEzIDEwLjkgMjMuNSAyNCAyMy41aDU2YzI0LjUgMCAzOC43IDEwLjkgNDcuOCAyNC44bC0xMS4zIDIwLjVjLTEzLTMuOS0yNi45LTUuNy00MS4zLTUuMkM1NS45IDE5NC41IDEuNiAyNDkuNiAwIDMxN2MtMS42IDcyLjEgNTYuMyAxMzEgMTI4IDEzMSA1OS42IDAgMTA5LjctNDAuOCAxMjQtOTZoODQuMmMxMy43IDAgMjQuNi0xMS40IDI0LTI1LjEtMi4xLTQ3LjEgMTcuNS05My43IDU2LjItMTI1bDEyLjUgMjAuOGMtMjcuNiAyMy43LTQ1LjEgNTguOS00NC44IDk4LjIuNSA2OS42IDU3LjIgMTI2LjUgMTI2LjggMTI3LjEgNzEuNi43IDEyOS44LTU3LjUgMTI5LjItMTI5LjEtLjctNjkuNi01Ny42LTEyNi40LTEyNy4yLTEyNi45ek0xMjggNDAwYy00NC4xIDAtODAtMzUuOS04MC04MHMzNS45LTgwIDgwLTgwYzQuMiAwIDguNC4zIDEyLjUgMUw5OSAzMTYuNGMtOC44IDE2IDIuOCAzNS42IDIxIDM1LjZoODEuM2MtMTIuNCAyOC4yLTQwLjYgNDgtNzMuMyA0OHptNDYzLjktNzUuNmMtMi4yIDQwLjYtMzUgNzMuNC03NS41IDc1LjUtNDYuMSAyLjUtODQuNC0zNC4zLTg0LjQtNzkuOSAwLTIxLjQgOC40LTQwLjggMjIuMS01NS4xbDQ5LjQgODIuNGM0LjUgNy42IDE0LjQgMTAgMjIgNS41bDEzLjctOC4yYzcuNi00LjUgMTAtMTQuNCA1LjUtMjJsLTQ4LjYtODAuOWM1LjItMS4xIDEwLjUtMS42IDE1LjktMS42IDQ1LjYtLjEgODIuMyAzOC4yIDc5LjkgODQuM3pcIl1cbn07XG52YXIgZmFNb3VudGFpbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdtb3VudGFpbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjZmY1wiLCBcIk02MzQuOTIgNDYyLjdsLTI4OC00NDhDMzQxLjAzIDUuNTQgMzMwLjg5IDAgMzIwIDBzLTIxLjAzIDUuNTQtMjYuOTIgMTQuN2wtMjg4IDQ0OGEzMi4wMDEgMzIuMDAxIDAgMCAwLTEuMTcgMzIuNjRBMzIuMDA0IDMyLjAwNCAwIDAgMCAzMiA1MTJoNTc2YzExLjcxIDAgMjIuNDgtNi4zOSAyOC4wOS0xNi42N2EzMS45ODMgMzEuOTgzIDAgMCAwLTEuMTctMzIuNjN6TTMyMCA5MS4xOEw0MDUuMzkgMjI0SDMyMGwtNjQgNjQtMzguMDYtMzguMDZMMzIwIDkxLjE4elwiXVxufTtcbnZhciBmYU1vdXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ21vdXNlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmOGNjXCIsIFwiTTAgMzUyYTE2MCAxNjAgMCAwIDAgMTYwIDE2MGg2NGExNjAgMTYwIDAgMCAwIDE2MC0xNjBWMjI0SDB6TTE3NiAwaC0xNkExNjAgMTYwIDAgMCAwIDAgMTYwdjMyaDE3NnptNDggMGgtMTZ2MTkyaDE3NnYtMzJBMTYwIDE2MCAwIDAgMCAyMjQgMHpcIl1cbn07XG52YXIgZmFNb3VzZVBvaW50ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbW91c2UtcG9pbnRlcicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjI0NVwiLCBcIk0zMDIuMTg5IDMyOS4xMjZIMTk2LjEwNWw1NS44MzEgMTM1Ljk5M2MzLjg4OSA5LjQyOC0uNTU1IDE5Ljk5OS05LjQ0NCAyMy45OTlsLTQ5LjE2NSAyMS40MjdjLTkuMTY1IDQtMTkuNDQzLS41NzEtMjMuMzMyLTkuNzE0bC01My4wNTMtMTI5LjEzNi04Ni42NjQgODkuMTM4QzE4LjcyOSA0NzIuNzEgMCA0NjMuNTU0IDAgNDQ3Ljk3N1YxOC4yOTlDMCAxLjg5OSAxOS45MjEtNi4wOTYgMzAuMjc3IDUuNDQzbDI4NC40MTIgMjkyLjU0MmMxMS40NzIgMTEuMTc5IDMuMDA3IDMxLjE0MS0xMi41IDMxLjE0MXpcIl1cbn07XG52YXIgZmFNdWdIb3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbXVnLWhvdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdiNlwiLCBcIk0xMjcuMSAxNDYuNWMxLjMgNy43IDggMTMuNSAxNiAxMy41aDE2LjVjOS44IDAgMTcuNi04LjUgMTYuMy0xOC0zLjgtMjguMi0xNi40LTU0LjItMzYuNi03NC43LTE0LjQtMTQuNy0yMy42LTMzLjMtMjYuNC01My41QzExMS44IDUuOSAxMDUgMCA5Ni44IDBIODAuNEM3MC42IDAgNjMgOC41IDY0LjEgMThjMy45IDMxLjkgMTggNjEuMyA0MC42IDg0LjQgMTIgMTIuMiAxOS43IDI3LjUgMjIuNCA0NC4xem0xMTIgMGMxLjMgNy43IDggMTMuNSAxNiAxMy41aDE2LjVjOS44IDAgMTcuNi04LjUgMTYuMy0xOC0zLjgtMjguMi0xNi40LTU0LjItMzYuNi03NC43LTE0LjQtMTQuNy0yMy42LTMzLjMtMjYuNC01My41QzIyMy44IDUuOSAyMTcgMCAyMDguOCAwaC0xNi40Yy05LjggMC0xNy41IDguNS0xNi4zIDE4IDMuOSAzMS45IDE4IDYxLjMgNDAuNiA4NC40IDEyIDEyLjIgMTkuNyAyNy41IDIyLjQgNDQuMXpNNDAwIDE5MkgzMmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTkyYzAgNTMgNDMgOTYgOTYgOTZoMTkyYzUzIDAgOTYtNDMgOTYtOTZoMTZjNjEuOCAwIDExMi01MC4yIDExMi0xMTJzLTUwLjItMTEyLTExMi0xMTJ6bTAgMTYwaC0xNnYtOTZoMTZjMjYuNSAwIDQ4IDIxLjUgNDggNDhzLTIxLjUgNDgtNDggNDh6XCJdXG59O1xudmFyIGZhTXVzaWMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnbXVzaWMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwMDFcIiwgXCJNNDcwLjM4IDEuNTFMMTUwLjQxIDk2QTMyIDMyIDAgMCAwIDEyOCAxMjYuNTF2MjYxLjQxQTEzOSAxMzkgMCAwIDAgOTYgMzg0Yy01MyAwLTk2IDI4LjY2LTk2IDY0czQzIDY0IDk2IDY0IDk2LTI4LjY2IDk2LTY0VjIxNC4zMmwyNTYtNzV2MTg0LjYxYTEzOC40IDEzOC40IDAgMCAwLTMyLTMuOTNjLTUzIDAtOTYgMjguNjYtOTYgNjRzNDMgNjQgOTYgNjQgOTYtMjguNjUgOTYtNjRWMzJhMzIgMzIgMCAwIDAtNDEuNjItMzAuNDl6XCJdXG59O1xudmFyIGZhTmV0d29ya1dpcmVkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ25ldHdvcmstd2lyZWQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2ZmZcIiwgXCJNNjQwIDI2NHYtMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMzQ0di00MGg3MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMjI0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDcydjQwSDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgxMDR2NDBINjRjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTI4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTYwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzUyYzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTU2di00MGgzMDR2NDBoLTU2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDE2MGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjM1MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC01NnYtNDBoMTA0YzguODQgMCAxNi03LjE2IDE2LTE2ek0yNTYgMTI4VjY0aDEyOHY2NEgyNTZ6bS02NCAzMjBIOTZ2LTY0aDk2djY0em0zNTIgMGgtOTZ2LTY0aDk2djY0elwiXVxufTtcbnZhciBmYU5ldXRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICduZXV0ZXInLFxuICBpY29uOiBbMjg4LCA1MTIsIFtdLCBcImYyMmNcIiwgXCJNMjg4IDE3NmMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDk2LjUgMCAxNzZjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjQ2OGMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEyVjMxNi40YzY0LjEtMTQuNSAxMTItNzEuOSAxMTItMTQwLjR6bS0xNDQgODBjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwiXVxufTtcbnZhciBmYU5ld3NwYXBlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICduZXdzcGFwZXInLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxZWFcIiwgXCJNNTUyIDY0SDg4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2OEgyNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djI3MmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZoNDcyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODhjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0ek01NiA0MDBhOCA4IDAgMCAxLTgtOFYxNDRoMTZ2MjQ4YTggOCAwIDAgMS04IDh6bTIzNi0xNkgxNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LThjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY4YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6bTIwOCAwSDM0OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtOGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE1MmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjhjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptLTIwOC05NkgxNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LThjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY4YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6bTIwOCAwSDM0OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtOGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE1MmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjhjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptMC05NkgxNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTQwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMzYwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnpcIl1cbn07XG52YXIgZmFOb3RFcXVhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdub3QtZXF1YWwnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1M2VcIiwgXCJNNDE2IDIwOGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC0yMy44OGw1MS44Ny02Ni44MWM1LjM3LTcuMDIgNC4wNC0xNy4wNi0yLjk3LTIyLjQzTDQxNS42MSAzLjNjLTcuMDItNS4zOC0xNy4wNi00LjA0LTIyLjQ0IDIuOTdMMzExLjA5IDExMkgzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDIwNC41NmwtNzQuNTMgOTZIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg1NS40OWwtNTEuODcgNjYuODFjLTUuMzcgNy4wMS00LjA0IDE3LjA1IDIuOTcgMjIuNDNMNjQgNTA4LjdjNy4wMiA1LjM4IDE3LjA2IDQuMDQgMjIuNDMtMi45N0wxNjguNTIgNDAwSDQxNmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDI0My4wNWw3NC41My05Nkg0MTZ6XCJdXG59O1xudmFyIGZhTm90ZXNNZWRpY2FsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ25vdGVzLW1lZGljYWwnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0ODFcIiwgXCJNMzM2IDY0aC04MGMwLTM1LjMtMjguNy02NC02NC02NHMtNjQgMjguNy02NCA2NEg0OEMyMS41IDY0IDAgODUuNSAwIDExMnYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjExMmMwLTI2LjUtMjEuNS00OC00OC00OHpNMTkyIDQwYzEzLjMgMCAyNCAxMC43IDI0IDI0cy0xMC43IDI0LTI0IDI0LTI0LTEwLjctMjQtMjQgMTAuNy0yNCAyNC0yNHptOTYgMzA0YzAgNC40LTMuNiA4LTggOGgtNTZ2NTZjMCA0LjQtMy42IDgtOCA4aC00OGMtNC40IDAtOC0zLjYtOC04di01NmgtNTZjLTQuNCAwLTgtMy42LTgtOHYtNDhjMC00LjQgMy42LTggOC04aDU2di01NmMwLTQuNCAzLjYtOCA4LThoNDhjNC40IDAgOCAzLjYgOCA4djU2aDU2YzQuNCAwIDggMy42IDggOHY0OHptMC0xOTJjMCA0LjQtMy42IDgtOCA4SDEwNGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTc2YzQuNCAwIDggMy42IDggOHYxNnpcIl1cbn07XG52YXIgZmFPYmplY3RHcm91cCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdvYmplY3QtZ3JvdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyNDdcIiwgXCJNNDgwIDEyOFY5NmgyMGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyVjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjIwSDY0VjQ0YzAtNi42MjctNS4zNzMtMTItMTItMTJIMTJDNS4zNzMgMzIgMCAzNy4zNzMgMCA0NHY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIwdjMyMEgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTIwaDM4NHYyMGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTIwVjEyOHpNOTYgMjc2VjE0MGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE2OGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjEzNmMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDEwOGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnptMzIwIDk2YzAgNi42MjctNS4zNzMgMTItMTIgMTJIMjM2Yy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi01Mmg3MmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTcyaDg0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTM2elwiXVxufTtcbnZhciBmYU9iamVjdFVuZ3JvdXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb2JqZWN0LXVuZ3JvdXAnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyNDhcIiwgXCJNNjQgMzIwdjI2YTYgNiAwIDAgMS02IDZINmE2IDYgMCAwIDEtNi02di01MmE2IDYgMCAwIDEgNi02aDI2Vjk2SDZhNiA2IDAgMCAxLTYtNlYzOGE2IDYgMCAwIDEgNi02aDUyYTYgNiAwIDAgMSA2IDZ2MjZoMjg4VjM4YTYgNiAwIDAgMSA2LTZoNTJhNiA2IDAgMCAxIDYgNnY1MmE2IDYgMCAwIDEtNiA2aC0yNnYxOTJoMjZhNiA2IDAgMCAxIDYgNnY1MmE2IDYgMCAwIDEtNiA2aC01MmE2IDYgMCAwIDEtNi02di0yNkg2NHptNDgwLTY0di0zMmgyNmE2IDYgMCAwIDAgNi02di01MmE2IDYgMCAwIDAtNi02aC01MmE2IDYgMCAwIDAtNiA2djI2SDQwOHY3Mmg4YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHY2NGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRoLTY0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR2LThIMTkydjcyaC0yNmE2IDYgMCAwIDAtNiA2djUyYTYgNiAwIDAgMCA2IDZoNTJhNiA2IDAgMCAwIDYtNnYtMjZoMjg4djI2YTYgNiAwIDAgMCA2IDZoNTJhNiA2IDAgMCAwIDYtNnYtNTJhNiA2IDAgMCAwLTYtNmgtMjZWMjU2elwiXVxufTtcbnZhciBmYU9pbENhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdvaWwtY2FuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjEzXCIsIFwiTTYyOS44IDE2MC4zMUw0MTYgMjI0bC01MC40OS0yNS4yNGE2NC4wNyA2NC4wNyAwIDAgMC0yOC42Mi02Ljc2SDI4MHYtNDhoNTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtOC44NC03LjE2LTE2LTE2LTE2SDE3NmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNTZ2NDhoLTU2TDM3LjcyIDE2Ni44NmEzMS45IDMxLjkgMCAwIDAtNS43OS0uNTNDMTQuNjcgMTY2LjMzIDAgMTgwLjM2IDAgMTk4LjM0djk0Ljk1YzAgMTUuNDYgMTEuMDYgMjguNzIgMjYuMjggMzEuNDhMOTYgMzM3LjQ2VjM4NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDI3NC42M2M4LjU1IDAgMTYuNzUtMy40MiAyMi43Ni05LjUxbDIxMi4yNi0yMTQuNzVjMS41LTEuNSAyLjM0LTMuNTQgMi4zNC01LjY2VjE2OGMuMDEtNS4zMS01LjA4LTkuMTUtMTAuMTktNy42OXpNOTYgMjg4LjY3bC00OC04Ljczdi02Mi40M2w0OCA4LjczdjYyLjQzem00NTMuMzMgODQuNjZjMCAyMy41NiAxOS4xIDQyLjY3IDQyLjY3IDQyLjY3czQyLjY3LTE5LjEgNDIuNjctNDIuNjdTNTkyIDI4OCA1OTIgMjg4cy00Mi42NyA2MS43Ny00Mi42NyA4NS4zM3pcIl1cbn07XG52YXIgZmFPbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdvbScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY3OVwiLCBcIk0zNjAuNiA2MC45NGExMC40MyAxMC40MyAwIDAgMCAxNC43NiAwbDIxLjU3LTIxLjU2YTEwLjQzIDEwLjQzIDAgMCAwIDAtMTQuNzZMMzc1LjM1IDMuMDZjLTQuMDgtNC4wNy0xMC42OC00LjA3LTE0Ljc2IDBsLTIxLjU3IDIxLjU2YTEwLjQzIDEwLjQzIDAgMCAwIDAgMTQuNzZsMjEuNTggMjEuNTZ6TTQxMi4xMSAxOTJjLTI2LjY5IDAtNTEuNzcgMTAuMzktNzAuNjQgMjkuMjVsLTI0LjI1IDI0LjI1Yy02Ljc4IDYuNzctMTUuNzggMTAuNS0yNS4zOCAxMC41SDI0NWMxMC41NC0yMi4xIDE0LjE3LTQ4LjExIDcuNzMtNzUuMjMtMTAuMS00Mi41NS00Ni4zNi03Ni4xMS04OS41Mi04My4xOS0zNi4xNS01LjkzLTcwLjkgNS4wNC05Ni4wMSAyOC43OC03LjM2IDYuOTYtNi45NyAxOC44NSAxLjEyIDI0LjkzbDI2LjE1IDE5LjYzYzUuNzIgNC4zIDEzLjY2IDQuMzIgMTkuMi0uMjEgOC40NS02LjkgMTkuMDItMTAuNzEgMzAuMjctMTAuNzEgMjYuNDcgMCA0OC4wMSAyMS41MyA0OC4wMSA0OHMtMjEuNTQgNDgtNDguMDEgNDhoLTMxLjljLTExLjk2IDAtMTkuNzQgMTIuNTgtMTQuMzkgMjMuMjhsMTYuMDkgMzIuMTdjMi41MyA1LjA2IDcuNiA4LjEgMTMuMTcgOC41NWgzMy4wM2MzNS4zIDAgNjQuMDEgMjguNyA2NC4wMSA2NHMtMjguNzEgNjQtNjQuMDEgNjRjLTk2LjAyIDAtMTIyLjM1LTU0LjAyLTE0NS4xNS05Mi4wMy00LjUzLTcuNTUtMTQuNzctMy41OC0xNC43OSA1LjIyQy0uMDkgNDE2IDQxLjEzIDUxMiAxNTkuOTQgNTEyYzcwLjU5IDAgMTI4LjAyLTU3LjQyIDEyOC4wMi0xMjggMC0yMy40Mi02Ljc4LTQ1LjEtMTcuODEtNjRoMjEuNjljMjYuNjkgMCA1MS43Ny0xMC4zOSA3MC42NC0yOS4yNWwyNC4yNS0yNC4yNWM2Ljc4LTYuNzcgMTUuNzgtMTAuNSAyNS4zOC0xMC41IDE5Ljc4IDAgMzUuODggMTYuMDkgMzUuODggMzUuODhWMzkyYzAgMTMuMjMtMTguNzcgMjQtMzIuMDEgMjQtMzkuNCAwLTY2LjY3LTI0LjI0LTgxLjgyLTQyLjg5LTQuNzctNS44Ny0xNC4yLTIuNTQtMTQuMiA1LjAyVjQxNnMwIDY0IDk2LjAyIDY0YzQ4LjU0IDAgOTYuMDItMzkuNDcgOTYuMDItODhWMjkxLjg4YzAtNTUuMDgtNDQuOC05OS44OC05OS44OS05OS44OHptNDIuMTgtMTI0LjczYy04NS41NSA2NS4xMi0xNjkuMDUgMi43NS0xNzIuNTguMDUtNi4wMi00LjYyLTE0LjQ0LTQuMzgtMjAuMTQuNTUtNS43NCA0LjkyLTcuMjcgMTMuMTctMy42NiAxOS44IDEuNjEgMi45NSA0MC4zNyA3Mi4zNCAxMTguOCA3Mi4zNCA3OS45MiAwIDk4Ljc4LTMxLjM2IDEwMS43NS0zNy42NiAxLjAyLTIuMTIgMS41My00LjQ3IDEuNTMtNi44M1Y4MGMwLTEzLjIyLTE1LjE0LTIwLjY5LTI1LjctMTIuNzN6XCJdXG59O1xudmFyIGZhT3R0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb3R0ZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3MDBcIiwgXCJNNjA4IDMyaC0zMmwtMTMuMjUtMTMuMjVBNjMuOTcgNjMuOTcgMCAwIDAgNTE3LjQ5IDBINDk3Yy0xMS4xNCAwLTIyLjA4IDIuOTEtMzEuNzUgOC40M0wzMTIgOTZoLTU2QzE0OS45NiA5NiA2NCAxODEuOTYgNjQgMjg4djEuNjFjMCAzMi43NS0xNiA2Mi4xNC0zOS41NiA4NC44OS0xOC4xOSAxNy41OC0yOC4xIDQzLjY4LTIzLjE5IDcxLjggNi43NiAzOC44IDQyLjkgNjUuNyA4Mi4yOCA2NS43SDE5MmMxNy42NyAwIDMyLTE0LjMzIDMyLTMycy0xNC4zMy0zMi0zMi0zMkg4MGMtOC44MyAwLTE2LTcuMTctMTYtMTZzNy4xNy0xNiAxNi0xNmgyMjRjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTY0bDE0OS40OS04MC41TDQ0OCA0MTZoODBjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2YzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTI4LjIybC01NS4xMS0xMTAuMjFMNTIxLjE0IDE5Mkg1NDRjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0tOTYgMTZjOC44NCAwIDE2IDcuMTYgMTYgMTZzLTcuMTYgMTYtMTYgMTYtMTYtNy4xNi0xNi0xNiA3LjE2LTE2IDE2LTE2em0zMiA5NmgtMzQuOTZMNDA3LjIgMTk4Ljg0bC0xMy43Ny0yNy41NUw1MTIgMTEyaDc3LjA1Yy02LjYyIDE4LjU4LTI0LjIyIDMyLTQ1LjA1IDMyelwiXVxufTtcbnZhciBmYU91dGRlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnb3V0ZGVudCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAzYlwiLCBcIk0xMDAuNjkgMzYzLjI5YzEwIDEwIDI3LjMxIDIuOTMgMjcuMzEtMTEuMzFWMTYwYzAtMTQuMzItMTcuMzMtMjEuMzEtMjcuMzEtMTEuMzFsLTk2IDk2YTE2IDE2IDAgMCAwIDAgMjIuNjJ6TTQzMiA0MTZIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMy4xNy0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAzMDAuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDM1MmgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDMzOS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDI4OHptMC0xMjhIMjA0LjgzQTEyLjgyIDEyLjgyIDAgMCAwIDE5MiAxNzIuODN2MzguMzRBMTIuODIgMTIuODIgMCAwIDAgMjA0LjgzIDIyNGgyMzAuMzRBMTIuODIgMTIuODIgMCAwIDAgNDQ4IDIxMS4xN3YtMzguMzRBMTIuODIgMTIuODIgMCAwIDAgNDM1LjE3IDE2MHpNNDMyIDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwiXVxufTtcbnZhciBmYVBhZ2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhZ2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmODE1XCIsIFwiTTQ0OCA2NEg2NGE2NCA2NCAwIDAgMC02NCA2NHYyNTZhNjQgNjQgMCAwIDAgNjQgNjRoMzg0YTY0IDY0IDAgMCAwIDY0LTY0VjEyOGE2NCA2NCAwIDAgMC02NC02NHpNMTYwIDM2OEg4MGExNiAxNiAwIDAgMS0xNi0xNnYtMTZhMTYgMTYgMCAwIDEgMTYtMTZoODB6bTEyOC0xNmExNiAxNiAwIDAgMS0xNiAxNmgtODB2LTQ4aDgwYTE2IDE2IDAgMCAxIDE2IDE2em0xNjAtMTI4YTMyIDMyIDAgMCAxLTMyIDMySDk2YTMyIDMyIDAgMCAxLTMyLTMydi02NGEzMiAzMiAwIDAgMSAzMi0zMmgzMjBhMzIgMzIgMCAwIDEgMzIgMzJ6XCJdXG59O1xudmFyIGZhUGFpbnRCcnVzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWludC1icnVzaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFmY1wiLCBcIk0xNjcuMDIgMzA5LjM0Yy00MC4xMiAyLjU4LTc2LjUzIDE3Ljg2LTk3LjE5IDcyLjMtMi4zNSA2LjIxLTggOS45OC0xNC41OSA5Ljk4LTExLjExIDAtNDUuNDYtMjcuNjctNTUuMjUtMzQuMzVDMCA0MzkuNjIgMzcuOTMgNTEyIDEyOCA1MTJjNzUuODYgMCAxMjgtNDMuNzcgMTI4LTEyMC4xOSAwLTMuMTEtLjY1LTYuMDgtLjk3LTkuMTNsLTg4LjAxLTczLjM0ek00NTcuODkgMGMtMTUuMTYgMC0yOS4zNyA2LjcxLTQwLjIxIDE2LjQ1QzIxMy4yNyAxOTkuMDUgMTkyIDIwMy4zNCAxOTIgMjU3LjA5YzAgMTMuNyAzLjI1IDI2Ljc2IDguNzMgMzguN2w2My44MiA1My4xOGM3LjIxIDEuOCAxNC42NCAzLjAzIDIyLjM5IDMuMDMgNjIuMTEgMCA5OC4xMS00NS40NyAyMTEuMTYtMjU2LjQ2IDcuMzgtMTQuMzUgMTMuOS0yOS44NSAxMy45LTQ1Ljk5QzUxMiAyMC42NCA0ODYgMCA0NTcuODkgMHpcIl1cbn07XG52YXIgZmFQYWludFJvbGxlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYWludC1yb2xsZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YWFcIiwgXCJNNDE2IDEyOFYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDMyQzE0LjMzIDAgMCAxNC4zMyAwIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzUyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ6bTMyLTY0djEyOGMwIDE3LjY3LTE0LjMzIDMyLTMyIDMySDI1NmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHYzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg2NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjM1MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMydi0zMmgxNjBjNTMuMDIgMCA5Ni00Mi45OCA5Ni05NnYtNjRjMC0zNS4zNS0yOC42NS02NC02NC02NHpcIl1cbn07XG52YXIgZmFQYWxldHRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhbGV0dGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1M2ZcIiwgXCJNMjA0LjMgNUMxMDQuOSAyNC40IDI0LjggMTA0LjMgNS4yIDIwMy40Yy0zNyAxODcgMTMxLjcgMzI2LjQgMjU4LjggMzA2LjcgNDEuMi02LjQgNjEuNC01NC42IDQyLjUtOTEuNy0yMy4xLTQ1LjQgOS45LTk4LjQgNjAuOS05OC40aDc5LjdjMzUuOCAwIDY0LjgtMjkuNiA2NC45LTY1LjNDNTExLjUgOTcuMSAzNjguMS0yNi45IDIwNC4zIDV6TTk2IDMyMGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTMyLTEyOGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyOC02NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTEyOCA2NGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhUGFsbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhbGxldCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQ4MlwiLCBcIk0xNDQgMjU2aDM1MmM4LjggMCAxNi03LjIgMTYtMTZWMTZjMC04LjgtNy4yLTE2LTE2LTE2SDM4NHYxMjhsLTY0LTMyLTY0IDMyVjBIMTQ0Yy04LjggMC0xNiA3LjItMTYgMTZ2MjI0YzAgOC44IDcuMiAxNiAxNiAxNnptNDgwIDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg0OHY2NEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg2MDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZoLTQ4di02NGg0OHptLTMzNiA2NEgxMjh2LTY0aDE2MHY2NHptMjI0IDBIMzUydi02NGgxNjB2NjR6XCJdXG59O1xudmFyIGZhUGFwZXJQbGFuZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXBlci1wbGFuZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFkOFwiLCBcIk00NzYgMy4yTDEyLjUgMjcwLjZjLTE4LjEgMTAuNC0xNS44IDM1LjYgMi4yIDQzLjJMMTIxIDM1OC40bDI4Ny4zLTI1My4yYzUuNS00LjkgMTMuMyAyLjYgOC42IDguM0wxNzYgNDA3djgwLjVjMCAyMy42IDI4LjUgMzIuOSA0Mi41IDE1LjhMMjgyIDQyNmwxMjQuNiA1Mi4yYzE0LjIgNiAzMC40LTIuOSAzMy0xOC4ybDcyLTQzMkM1MTUgNy44IDQ5My4zLTYuOCA0NzYgMy4yelwiXVxufTtcbnZhciBmYVBhcGVyY2xpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXBlcmNsaXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwYzZcIiwgXCJNNDMuMjQ2IDQ2Ni4xNDJjLTU4LjQzLTYwLjI4OS01Ny4zNDEtMTU3LjUxMSAxLjM4Ni0yMTcuNTgxTDI1NC4zOTIgMzRjNDQuMzE2LTQ1LjMzMiAxMTYuMzUxLTQ1LjMzNiAxNjAuNjcxIDAgNDMuODkgNDQuODk0IDQzLjk0MyAxMTcuMzI5IDAgMTYyLjI3NkwyMzIuMjE0IDM4My4xMjhjLTI5Ljg1NSAzMC41MzctNzguNjMzIDMwLjExMS0xMDcuOTgyLS45OTgtMjguMjc1LTI5Ljk3LTI3LjM2OC03Ny40NzMgMS40NTItMTA2Ljk1M2wxNDMuNzQzLTE0Ni44MzVjNi4xODItNi4zMTQgMTYuMzEyLTYuNDIyIDIyLjYyNi0uMjQxbDIyLjg2MSAyMi4zNzljNi4zMTUgNi4xODIgNi40MjIgMTYuMzEyLjI0MSAyMi42MjZMMTcxLjQyNyAzMTkuOTI3Yy00LjkzMiA1LjA0NS01LjIzNiAxMy40MjgtLjY0OCAxOC4yOTIgNC4zNzIgNC42MzQgMTEuMjQ1IDQuNzExIDE1LjY4OC4xNjVsMTgyLjg0OS0xODYuODUxYzE5LjYxMy0yMC4wNjIgMTkuNjEzLTUyLjcyNS0uMDExLTcyLjc5OC0xOS4xODktMTkuNjI3LTQ5Ljk1Ny0xOS42MzctNjkuMTU0IDBMOTAuMzkgMjkzLjI5NWMtMzQuNzYzIDM1LjU2LTM1LjI5OSA5My4xMi0xLjE5MSAxMjguMzEzIDM0LjAxIDM1LjA5MyA4OC45ODUgMzUuMTM3IDEyMy4wNTguMjg2bDE3Mi4wNi0xNzUuOTk5YzYuMTc3LTYuMzE5IDE2LjMwNy02LjQzMyAyMi42MjYtLjI1NmwyMi44NzcgMjIuMzY0YzYuMzE5IDYuMTc3IDYuNDM0IDE2LjMwNy4yNTYgMjIuNjI2bC0xNzIuMDYgMTc1Ljk5OGMtNTkuNTc2IDYwLjkzOC0xNTUuOTQzIDYwLjIxNi0yMTQuNzctLjQ4NXpcIl1cbn07XG52YXIgZmFQYXJhY2h1dGVCb3ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGFyYWNodXRlLWJveCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjRjZFwiLCBcIk01MTEuOSAxNzVjLTkuMS03NS42LTc4LjQtMTMyLjQtMTU4LjMtMTU4LjdDMzkwIDU1LjcgNDE2IDExNi45IDQxNiAxOTJoMjguMUwzMjcuNSAzMjEuNWMtMi41LS42LTQuOC0xLjUtNy41LTEuNWgtNDhWMTkyaDExMkMzODQgNzYuOCAzMTUuMSAwIDI1NiAwUzEyOCA3Ni44IDEyOCAxOTJoMTEydjEyOGgtNDhjLTIuNyAwLTUgLjktNy41IDEuNUw2Ny45IDE5Mkg5NmMwLTc1LjEgMjYtMTM2LjMgNjIuNC0xNzUuN0M3OC41IDQyLjcgOS4yIDk5LjUuMSAxNzVjLTEuMSA5LjEgNi44IDE3IDE2IDE3aDguN2wxMzYuNyAxNTEuOWMtLjcgMi42LTEuNiA1LjItMS42IDguMXYxMjhjMCAxNy43IDE0LjMgMzIgMzIgMzJoMTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM1MmMwLTIuOS0uOS01LjQtMS42LTguMUw0ODcuMSAxOTJoOC43YzkuMyAwIDE3LjItNy44IDE2LjEtMTd6XCJdXG59O1xudmFyIGZhUGFyYWdyYXBoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhcmFncmFwaCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjFkZFwiLCBcIk00NDggNDh2MzJhMTYgMTYgMCAwIDEtMTYgMTZoLTQ4djM2OGExNiAxNiAwIDAgMS0xNiAxNmgtMzJhMTYgMTYgMCAwIDEtMTYtMTZWOTZoLTMydjM2OGExNiAxNiAwIDAgMS0xNiAxNmgtMzJhMTYgMTYgMCAwIDEtMTYtMTZWMzUyaC0zMmExNjAgMTYwIDAgMCAxIDAtMzIwaDI0MGExNiAxNiAwIDAgMSAxNiAxNnpcIl1cbn07XG52YXIgZmFQYXJraW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BhcmtpbmcnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY1NDBcIiwgXCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjQwIDMyMGgtNDh2NDhjMCA4LjgtNy4yIDE2LTE2IDE2aC0zMmMtOC44IDAtMTYtNy4yLTE2LTE2VjE0NGMwLTguOCA3LjItMTYgMTYtMTZoOTZjNTIuOSAwIDk2IDQzLjEgOTYgOTZzLTQzLjEgOTYtOTYgOTZ6bTAtMTI4aC00OHY2NGg0OGMxNy42IDAgMzItMTQuNCAzMi0zMnMtMTQuNC0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFQYXNzcG9ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXNzcG9ydCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjVhYlwiLCBcIk0xMjkuNjIgMTc2aDM5LjA5YzEuNDktMjcuMDMgNi41NC01MS4zNSAxNC4yMS03MC40MS0yNy43MSAxMy4yNC00OC4wMiAzOS4xOS01My4zIDcwLjQxem0wIDMyYzUuMjkgMzEuMjIgMjUuNTkgNTcuMTcgNTMuMyA3MC40MS03LjY4LTE5LjA2LTEyLjcyLTQzLjM4LTE0LjIxLTcwLjQxaC0zOS4wOXpNMjI0IDI4Ni42OWM3LjY5LTcuNDUgMjAuNzctMzQuNDIgMjMuNDMtNzguNjloLTQ2Ljg3YzIuNjcgNDQuMjYgMTUuNzUgNzEuMjQgMjMuNDQgNzguNjl6TTIwMC41NyAxNzZoNDYuODdjLTIuNjYtNDQuMjYtMTUuNzQtNzEuMjQtMjMuNDMtNzguNjktNy43IDcuNDUtMjAuNzggMzQuNDMtMjMuNDQgNzguNjl6bTY0LjUxIDEwMi40MWMyNy43MS0xMy4yNCA0OC4wMi0zOS4xOSA1My4zLTcwLjQxaC0zOS4wOWMtMS40OSAyNy4wMy02LjUzIDUxLjM1LTE0LjIxIDcwLjQxek00MTYgMEg2NEMyOC42NSAwIDAgMjguNjUgMCA2NHYzODRjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzNTJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0tODAgNDE2SDExMmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNmgyMjRjOC44IDAgMTYgNy4yIDE2IDE2cy03LjIgMTYtMTYgMTZ6bS0xMTItOTZjLTcwLjY5IDAtMTI4LTU3LjMxLTEyOC0xMjhTMTUzLjMxIDY0IDIyNCA2NHMxMjggNTcuMzEgMTI4IDEyOC01Ny4zMSAxMjgtMTI4IDEyOHptNDEuMDgtMjE0LjQxYzcuNjggMTkuMDYgMTIuNzIgNDMuMzggMTQuMjEgNzAuNDFoMzkuMDljLTUuMjgtMzEuMjItMjUuNTktNTcuMTctNTMuMy03MC40MXpcIl1cbn07XG52YXIgZmFQYXN0YWZhcmlhbmlzbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXN0YWZhcmlhbmlzbScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjY3YlwiLCBcIk02MjQuNTQgMzQ3LjY3Yy0zMi43LTEyLjUyLTU3LjM2IDQuMjUtNzUuMzcgMTYuNDUtMTcuMDYgMTEuNTMtMjMuMjUgMTQuNDItMzEuNDEgMTEuMzYtOC4xMi0zLjA5LTEwLjgzLTkuMzgtMTUuODktMjkuMzgtMy4zMy0xMy4xNS03LjQ0LTI5LjMyLTE3Ljk1LTQyLjY1IDIuMjQtMi45MSA0LjQzLTUuNzkgNi4zOC04LjU3QzUwMC40NyAzMDQuNDUgNTEzLjcxIDMxMiA1MzIgMzEyYzMzLjk1IDAgNTAuODctMjUuNzggNjIuMDYtNDIuODMgMTAuNTktMTYuMTQgMTUtMjEuMTcgMjEuOTQtMjEuMTcgMTMuMjUgMCAyNC0xMC43NSAyNC0yNHMtMTAuNzUtMjQtMjQtMjRjLTMzLjk1IDAtNTAuODcgMjUuNzgtNjIuMDYgNDIuODMtMTAuNiAxNi4xNC0xNSAyMS4xNy0yMS45NCAyMS4xNy0xNy4zMSAwLTM3LjQ4LTYxLjQzLTk3LjI2LTEwMS45MWwxNy4yNS0zNC41QzQ4NS40MyAxMjUuNSA1MTIgOTcuOTggNTEyIDY0YzAtMzUuMzUtMjguNjUtNjQtNjQtNjRzLTY0IDI4LjY1LTY0IDY0YzAgMTMuMDIgMy45NCAyNS4xIDEwLjYyIDM1LjIxbC0xOC4xNSAzNi4zYy0xNi45OC00LjYtMzUuNi03LjUxLTU2LjQ2LTcuNTFzLTM5LjQ5IDIuOTEtNTYuNDYgNy41MWwtMTguMTUtMzYuM0MyNTIuMDYgODkuMSAyNTYgNzcuMDIgMjU2IDY0YzAtMzUuMzUtMjguNjUtNjQtNjQtNjRzLTY0IDI4LjY1LTY0IDY0YzAgMzMuOTggMjYuNTYgNjEuNSA2MC4wMiA2My42bDE3LjI1IDM0LjVDMTQ1LjY4IDIwMi40NCAxMjUuMTUgMjY0IDEwOCAyNjRjLTYuOTQgMC0xMS4zNC01LjAzLTIxLjk0LTIxLjE3Qzc0Ljg4IDIyNS43OCA1Ny45NiAyMDAgMjQgMjAwYy0xMy4yNSAwLTI0IDEwLjc1LTI0IDI0czEwLjc1IDI0IDI0IDI0YzYuOTQgMCAxMS4zNCA1LjAzIDIxLjk0IDIxLjE3QzU3LjEzIDI4Ni4yMiA3NC4wNSAzMTIgMTA4IDMxMmMxOC4yOSAwIDMxLjUzLTcuNTUgNDEuNy0xNy4xMSAxLjk1IDIuNzkgNC4xNCA1LjY2IDYuMzggOC41Ny0xMC41MSAxMy4zMy0xNC42MiAyOS41LTE3Ljk1IDQyLjY1LTUuMDYgMjAtNy43NyAyNi4yOC0xNS44OSAyOS4zOC04LjExIDMuMDYtMTQuMzMuMTctMzEuNDEtMTEuMzYtMTguMDMtMTIuMi00Mi43Mi0yOC45Mi03NS4zNy0xNi40NS0xMi4zOSA0LjcyLTE4LjU5IDE4LjU4LTEzLjg3IDMwLjk3IDQuNzIgMTIuNDEgMTguNjEgMTguNjEgMzAuOTcgMTMuODggOC4xNi0zLjA5IDE0LjM0LS4xOSAzMS4zOSAxMS4zNiAxMy41NSA5LjE2IDMwLjgzIDIwLjg2IDUyLjQyIDIwLjg0IDcuMTcgMCAxNC44My0xLjI4IDIyLjk3LTQuMzkgMzIuNjYtMTIuNDQgMzkuOTgtNDEuMzMgNDUuMzMtNjIuNDQgMi4yMS04LjcyIDMuOTktMTQuNDkgNS45NS0xOC44NyAxNi42MiAxMy42MSAzNi45NSAyNS44OCA2MS42NCAzNC4xNy05Ljk2IDM3LTMyLjE4IDkwLjgtNjAuMjYgOTAuOC0xMy4yNSAwLTI0IDEwLjc1LTI0IDI0czEwLjc1IDI0IDI0IDI0YzY2Ljc0IDAgOTcuMDUtODguNjMgMTA3LjQyLTEyOS4xNCA2LjY5LjYgMTMuNDIgMS4xNCAyMC41OCAxLjE0czEzLjg5LS41NCAyMC41OC0xLjE0QzM1MC45NSA0MjMuMzcgMzgxLjI2IDUxMiA0NDggNTEyYzEzLjI1IDAgMjQtMTAuNzUgMjQtMjRzLTEwLjc1LTI0LTI0LTI0Yy0yNy45NCAwLTUwLjIxLTUzLjgxLTYwLjIyLTkwLjgxIDI0LjY5LTguMjkgNDUtMjAuNTYgNjEuNjItMzQuMTYgMS45NiA0LjM4IDMuNzQgMTAuMTUgNS45NSAxOC44NyA1LjM0IDIxLjExIDEyLjY3IDUwIDQ1LjMzIDYyLjQ0IDguMTQgMy4xMSAxNS44IDQuMzkgMjIuOTcgNC4zOSAyMS41OSAwIDM4Ljg3LTExLjY5IDUyLjQyLTIwLjg0IDE3LjA1LTExLjU1IDIzLjI4LTE0LjQ1IDMxLjM5LTExLjM2IDEyLjM5IDQuNzUgMjYuMjctMS40NyAzMC45Ny0xMy44OCA0LjcxLTEyLjQtMS40OS0yNi4yNi0xMy44OS0zMC45OHpNNDQ4IDQ4YzguODIgMCAxNiA3LjE4IDE2IDE2cy03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTYgNy4xOC0xNiAxNi0xNnptLTI1NiAwYzguODIgMCAxNiA3LjE4IDE2IDE2cy03LjE4IDE2LTE2IDE2LTE2LTcuMTgtMTYtMTYgNy4xOC0xNiAxNi0xNnpcIl1cbn07XG52YXIgZmFQYXN0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXN0ZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBlYVwiLCBcIk0xMjggMTg0YzAtMzAuODc5IDI1LjEyMi01NiA1Ni01NmgxMzZWNTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0aC04MC42MUMyMDQuMzA2IDEyLjg5IDE4My42MzcgMCAxNjAgMHMtNDQuMzA2IDEyLjg5LTU1LjM5IDMySDI0QzEwLjc0NSAzMiAwIDQyLjc0NSAwIDU2djMzNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTA0VjE4NHptMzItMTQ0YzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHMtMTAuNzQ1IDI0LTI0IDI0LTI0LTEwLjc0NS0yNC0yNCAxMC43NDUtMjQgMjQtMjR6bTE4NCAyNDhoMTA0djIwMGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMTg0Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRWMTg0YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxMzZ2MTA0YzAgMTMuMiAxMC44IDI0IDI0IDI0em0xMDQtMzguMDU5VjI1NmgtOTZ2LTk2aDYuMDU5YTI0IDI0IDAgMCAxIDE2Ljk3IDcuMDI5bDY1Ljk0MSA2NS45NDFhMjQuMDAyIDI0LjAwMiAwIDAgMSA3LjAzIDE2Ljk3MXpcIl1cbn07XG52YXIgZmFQYXVzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXVzZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA0Y1wiLCBcIk0xNDQgNDc5SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFY3OWMwLTI2LjUgMjEuNS00OCA0OC00OGg5NmMyNi41IDAgNDggMjEuNSA0OCA0OHYzNTJjMCAyNi41LTIxLjUgNDgtNDggNDh6bTMwNC00OFY3OWMwLTI2LjUtMjEuNS00OC00OC00OGgtOTZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg5NmMyNi41IDAgNDgtMjEuNSA0OC00OHpcIl1cbn07XG52YXIgZmFQYXVzZUNpcmNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXVzZS1jaXJjbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyOGJcIiwgXCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptLTE2IDMyOGMwIDguOC03LjIgMTYtMTYgMTZoLTQ4Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYwem0xMTIgMGMwIDguOC03LjIgMTYtMTYgMTZoLTQ4Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmg0OGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYwelwiXVxufTtcbnZhciBmYVBhdyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwYXcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxYjBcIiwgXCJNMjU2IDIyNGMtNzkuNDEgMC0xOTIgMTIyLjc2LTE5MiAyMDAuMjUgMCAzNC45IDI2LjgxIDU1Ljc1IDcxLjc0IDU1Ljc1IDQ4Ljg0IDAgODEuMDktMjUuMDggMTIwLjI2LTI1LjA4IDM5LjUxIDAgNzEuODUgMjUuMDggMTIwLjI2IDI1LjA4IDQ0LjkzIDAgNzEuNzQtMjAuODUgNzEuNzQtNTUuNzVDNDQ4IDM0Ni43NiAzMzUuNDEgMjI0IDI1NiAyMjR6bS0xNDcuMjgtMTIuNjFjLTEwLjQtMzQuNjUtNDIuNDQtNTcuMDktNzEuNTYtNTAuMTMtMjkuMTIgNi45Ni00NC4yOSA0MC42OS0zMy44OSA3NS4zNCAxMC40IDM0LjY1IDQyLjQ0IDU3LjA5IDcxLjU2IDUwLjEzIDI5LjEyLTYuOTYgNDQuMjktNDAuNjkgMzMuODktNzUuMzR6bTg0LjcyLTIwLjc4YzMwLjk0LTguMTQgNDYuNDItNDkuOTQgMzQuNTgtOTMuMzZzLTQ2LjUyLTcyLjAxLTc3LjQ2LTYzLjg3LTQ2LjQyIDQ5Ljk0LTM0LjU4IDkzLjM2YzExLjg0IDQzLjQyIDQ2LjUzIDcyLjAyIDc3LjQ2IDYzLjg3em0yODEuMzktMjkuMzRjLTI5LjEyLTYuOTYtNjEuMTUgMTUuNDgtNzEuNTYgNTAuMTMtMTAuNCAzNC42NSA0Ljc3IDY4LjM4IDMzLjg5IDc1LjM0IDI5LjEyIDYuOTYgNjEuMTUtMTUuNDggNzEuNTYtNTAuMTMgMTAuNC0zNC42NS00Ljc3LTY4LjM4LTMzLjg5LTc1LjM0em0tMTU2LjI3IDI5LjM0YzMwLjk0IDguMTQgNjUuNjItMjAuNDUgNzcuNDYtNjMuODcgMTEuODQtNDMuNDItMy42NC04NS4yMS0zNC41OC05My4zNnMtNjUuNjIgMjAuNDUtNzcuNDYgNjMuODdjLTExLjg0IDQzLjQyIDMuNjQgODUuMjIgMzQuNTggOTMuMzZ6XCJdXG59O1xudmFyIGZhUGVhY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVhY2UnLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY2N2NcIiwgXCJNMjQ4IDhDMTExLjAzIDggMCAxMTkuMDMgMCAyNTZzMTExLjAzIDI0OCAyNDggMjQ4IDI0OC0xMTEuMDMgMjQ4LTI0OFMzODQuOTcgOCAyNDggOHptMTg0IDI0OGMwIDMxLjkzLTguMiA2MS45Ny0yMi41NyA4OC4xN0wyODAgMjQwLjYzVjc0Ljk3Yzg2LjIzIDE1LjIxIDE1MiA5MC41IDE1MiAxODEuMDN6TTIxNiA0MzcuMDNjLTMzLjg2LTUuOTctNjQuNDktMjEuMi04OS4yOS00My4wMkwyMTYgMzIyLjU3djExNC40NnptNjQtMTE0LjQ2TDM2OS4yOSAzOTRjLTI0LjggMjEuODItNTUuNDMgMzcuMDUtODkuMjkgNDMuMDJWMzIyLjU3em0tNjQtMjQ3LjZ2MTY1LjY2TDg2LjU3IDM0NC4xN0M3Mi4yIDMxNy45NyA2NCAyODcuOTMgNjQgMjU2YzAtOTAuNTMgNjUuNzctMTY1LjgyIDE1Mi0xODEuMDN6XCJdXG59O1xudmFyIGZhUGVuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjMwNFwiLCBcIk0yOTAuNzQgOTMuMjRsMTI4LjAyIDEyOC4wMi0yNzcuOTkgMjc3Ljk5LTExNC4xNCAxMi42QzExLjM1IDUxMy41NC0xLjU2IDUwMC42Mi4xNCA0ODUuMzRsMTIuNy0xMTQuMjIgMjc3LjktMjc3Ljg4em0yMDcuMi0xOS4wNmwtNjAuMTEtNjAuMTFjLTE4Ljc1LTE4Ljc1LTQ5LjE2LTE4Ljc1LTY3LjkxIDBsLTU2LjU1IDU2LjU1IDEyOC4wMiAxMjguMDIgNTYuNTUtNTYuNTVjMTguNzUtMTguNzYgMTguNzUtNDkuMTYgMC02Ny45MXpcIl1cbn07XG52YXIgZmFQZW5BbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVuLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjMwNVwiLCBcIk00OTcuOTQgNzQuMTdsLTYwLjExLTYwLjExYy0xOC43NS0xOC43NS00OS4xNi0xOC43NS02Ny45MSAwbC01Ni41NSA1Ni41NSAxMjguMDIgMTI4LjAyIDU2LjU1LTU2LjU1YzE4Ljc1LTE4Ljc1IDE4Ljc1LTQ5LjE1IDAtNjcuOTF6bS0yNDYuOC0yMC41M2MtMTUuNjItMTUuNjItNDAuOTQtMTUuNjItNTYuNTYgMEw3NS44IDE3Mi40M2MtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42MmwyMi42MyAyMi42M2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDEwMS44Mi0xMDEuODIgMjIuNjMgMjIuNjJMOTMuOTUgMjkwLjAzQTMyNy4wMzggMzI3LjAzOCAwIDAgMCAuMTcgNDg1LjExbC0uMDMuMjNjLTEuNyAxNS4yOCAxMS4yMSAyOC4yIDI2LjQ5IDI2LjUxYTMyNy4wMiAzMjcuMDIgMCAwIDAgMTk1LjM0LTkzLjhsMTk2Ljc5LTE5Ni43OS04Mi43Ny04Mi43Ny04NC44NS04NC44NXpcIl1cbn07XG52YXIgZmFQZW5GYW5jeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW4tZmFuY3knLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YWNcIiwgXCJNNzkuMTggMjgyLjk0YTMyLjAwNSAzMi4wMDUgMCAwIDAtMjAuMjQgMjAuMjRMMCA0ODBsNC42OSA0LjY5IDkyLjg5LTkyLjg5Yy0uNjYtMi41Ni0xLjU3LTUuMDMtMS41Ny03LjggMC0xNy42NyAxNC4zMy0zMiAzMi0zMnMzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMmMtMi43NyAwLTUuMjQtLjkxLTcuOC0xLjU3bC05Mi44OSA5Mi44OUwzMiA1MTJsMTc2LjgyLTU4Ljk0YTMxLjk4MyAzMS45ODMgMCAwIDAgMjAuMjQtMjAuMjRsMzMuMDctODQuMDctOTguODgtOTguODgtODQuMDcgMzMuMDd6TTM2OS4yNSAyOC4zMkwxODYuMTQgMjI3LjgxbDk3Ljg1IDk3Ljg1IDE5OS40OS0xODMuMTFDNTY4LjQgNjcuNDggNDQzLjczLTU1Ljk0IDM2OS4yNSAyOC4zMnpcIl1cbn07XG52YXIgZmFQZW5OaWIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVuLW5pYicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVhZFwiLCBcIk0xMzYuNiAxMzguNzlhNjQuMDAzIDY0LjAwMyAwIDAgMC00My4zMSA0MS4zNUwwIDQ2MGwxNC42OSAxNC42OUwxNjQuOCAzMjQuNThjLTIuOTktNi4yNi00LjgtMTMuMTgtNC44LTIwLjU4IDAtMjYuNTEgMjEuNDktNDggNDgtNDhzNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDhjLTcuNCAwLTE0LjMyLTEuODEtMjAuNTgtNC44TDM3LjMxIDQ5Ny4zMSA1MiA1MTJsMjc5Ljg2LTkzLjI5YTY0LjAwMyA2NC4wMDMgMCAwIDAgNDEuMzUtNDMuMzFMNDE2IDIyNCAyODggOTZsLTE1MS40IDQyLjc5em0zNjEuMzQtNjQuNjJsLTYwLjExLTYwLjExYy0xOC43NS0xOC43NS00OS4xNi0xOC43NS02Ny45MSAwbC01Ni41NSA1Ni41NSAxMjguMDIgMTI4LjAyIDU2LjU1LTU2LjU1YzE4Ljc1LTE4Ljc1IDE4Ljc1LTQ5LjE1IDAtNjcuOTF6XCJdXG59O1xudmFyIGZhUGVuU3F1YXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blbi1zcXVhcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxNGJcIiwgXCJNNDAwIDQ4MEg0OGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhWODBjMC0yNi41IDIxLjUtNDggNDgtNDhoMzUyYzI2LjUgMCA0OCAyMS41IDQ4IDQ4djM1MmMwIDI2LjUtMjEuNSA0OC00OCA0OHpNMjM4LjEgMTc3LjlMMTAyLjQgMzEzLjZsLTYuMyA1Ny4xYy0uOCA3LjYgNS42IDE0LjEgMTMuMyAxMy4zbDU3LjEtNi4zTDMwMi4yIDI0MmMyLjMtMi4zIDIuMy02LjEgMC04LjVMMjQ2LjcgMTc4Yy0yLjUtMi40LTYuMy0yLjQtOC42LS4xek0zNDUgMTY1LjFMMzE0LjkgMTM1Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMGwtMjMuMSAyMy4xYy0yLjMgMi4zLTIuMyA2LjEgMCA4LjVsNTUuNSA1NS41YzIuMyAyLjMgNi4xIDIuMyA4LjUgMEwzNDUgMTk5YzkuMy05LjMgOS4zLTI0LjUgMC0zMy45elwiXVxufTtcbnZhciBmYVBlbmNpbEFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZW5jaWwtYWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMzAzXCIsIFwiTTQ5Ny45IDE0Mi4xbC00Ni4xIDQ2LjFjLTQuNyA0LjctMTIuMyA0LjctMTcgMGwtMTExLTExMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDQ2LjEtNDYuMWMxOC43LTE4LjcgNDkuMS0xOC43IDY3LjkgMGw2MC4xIDYwLjFjMTguOCAxOC43IDE4LjggNDkuMSAwIDY3Ljl6TTI4NC4yIDk5LjhMMjEuNiAzNjIuNC40IDQ4My45Yy0yLjkgMTYuNCAxMS40IDMwLjYgMjcuOCAyNy44bDEyMS41LTIxLjMgMjYyLjYtMjYyLjZjNC43LTQuNyA0LjctMTIuMyAwLTE3bC0xMTEtMTExYy00LjgtNC43LTEyLjQtNC43LTE3LjEgMHpNMTI0LjEgMzM5LjljLTUuNS01LjUtNS41LTE0LjMgMC0xOS44bDE1NC0xNTRjNS41LTUuNSAxNC4zLTUuNSAxOS44IDBzNS41IDE0LjMgMCAxOS44bC0xNTQgMTU0Yy01LjUgNS41LTE0LjMgNS41LTE5LjggMHpNODggNDI0aDQ4djM2LjNsLTY0LjUgMTEuMy0zMS4xLTMxLjFMNTEuNyAzNzZIODh2NDh6XCJdXG59O1xudmFyIGZhUGVuY2lsUnVsZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVuY2lsLXJ1bGVyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWFlXCIsIFwiTTEwOS40NiAyNDQuMDRsMTM0LjU4LTEzNC41Ni00NC4xMi00NC4xMi02MS42OCA2MS42OGE3LjkxOSA3LjkxOSAwIDAgMS0xMS4yMSAwbC0xMS4yMS0xMS4yMWMtMy4xLTMuMS0zLjEtOC4xMiAwLTExLjIxbDYxLjY4LTYxLjY4LTMzLjY0LTMzLjY1QzEzMS40Ny0zLjEgMTExLjM5LTMuMSA5OSA5LjI5TDkuMjkgOTljLTEyLjM4IDEyLjM5LTEyLjM5IDMyLjQ3IDAgNDQuODZsMTAwLjE3IDEwMC4xOHptMzg4LjQ3LTExNi44YzE4Ljc2LTE4Ljc2IDE4Ljc1LTQ5LjE3IDAtNjcuOTNsLTQ1LjI1LTQ1LjI1Yy0xOC43Ni0xOC43Ni00OS4xOC0xOC43Ni02Ny45NSAwbC00Ni4wMiA0Ni4wMSAxMTMuMiAxMTMuMiA0Ni4wMi00Ni4wM3pNMzE2LjA4IDgyLjcxbC0yOTcgMjk2Ljk2TC4zMiA0ODcuMTFjLTIuNTMgMTQuNDkgMTAuMDkgMjcuMTEgMjQuNTkgMjQuNTZsMTA3LjQ1LTE4Ljg0TDQyOS4yOCAxOTUuOSAzMTYuMDggODIuNzF6bTE4Ni42MyAyODUuNDNsLTMzLjY0LTMzLjY0LTYxLjY4IDYxLjY4Yy0zLjEgMy4xLTguMTIgMy4xLTExLjIxIDBsLTExLjIxLTExLjIxYy0zLjA5LTMuMS0zLjA5LTguMTIgMC0xMS4yMWw2MS42OC02MS42OC00NC4xNC00NC4xNEwyNjcuOTMgNDAyLjVsMTAwLjIxIDEwMC4yYzEyLjM5IDEyLjM5IDMyLjQ3IDEyLjM5IDQ0Ljg2IDBsODkuNzEtODkuN2MxMi4zOS0xMi4zOSAxMi4zOS0zMi40NyAwLTQ0Ljg2elwiXVxufTtcbnZhciBmYVBlb3BsZUNhcnJ5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Blb3BsZS1jYXJyeScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRjZVwiLCBcIk0xMjggOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhTMTU0LjUgMCAxMjggMCA4MCAyMS41IDgwIDQ4czIxLjUgNDggNDggNDh6bTM4NCAwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzUzOC41IDAgNTEyIDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptMTI1LjcgMzcyLjFsLTQ0LTExMC00MS4xIDQ2LjQtMiAxOC4yIDI3LjcgNjkuMmM1IDEyLjUgMTcgMjAuMSAyOS43IDIwLjEgNCAwIDgtLjcgMTEuOS0yLjMgMTYuNC02LjYgMjQuNC0yNS4yIDE3LjgtNDEuNnptLTM0LjItMjA5LjhMNTg1IDE3OC4xYy00LjYtMjAtMTguNi0zNi44LTM3LjUtNDQuOS0xOC41LTgtMzktNi43LTU2LjEgMy4zLTIyLjcgMTMuNC0zOS43IDM0LjUtNDguMSA1OS40TDQzMiAyMjkuOCA0MTYgMjQwdi05NmMwLTguOC03LjItMTYtMTYtMTZIMjQwYy04LjggMC0xNiA3LjItMTYgMTZ2OTZsLTE2LjEtMTAuMi0xMS4zLTMzLjljLTguMy0yNS0yNS40LTQ2LTQ4LjEtNTkuNC0xNy4yLTEwLTM3LjYtMTEuMy01Ni4xLTMuMy0xOC45IDguMS0zMi45IDI0LjktMzcuNSA0NC45bC0xOC40IDgwLjJjLTQuNiAyMCAuNyA0MS4yIDE0LjQgNTYuN2w2Ny4yIDc1LjkgMTAuMSA5Mi42QzEzMCA0OTkuOCAxNDMuOCA1MTIgMTYwIDUxMmMxLjIgMCAyLjMtLjEgMy41LS4yIDE3LjYtMS45IDMwLjItMTcuNyAyOC4zLTM1LjNsLTEwLjEtOTIuOGMtMS41LTEzLTYuOS0yNS4xLTE1LjYtMzVsLTQzLjMtNDkgMTcuNi03MC4zIDYuOCAyMC40YzQuMSAxMi41IDExLjkgMjMuNCAyNC41IDMyLjZsNTEuMSAzMi41YzQuNiAyLjkgMTIuMSA0LjYgMTcuMiA1aDE2MGM1LjEtLjQgMTIuNi0yLjEgMTcuMi01bDUxLjEtMzIuNWMxMi42LTkuMiAyMC40LTIwIDI0LjUtMzIuNmw2LjgtMjAuNCAxNy42IDcwLjMtNDMuMyA0OWMtOC43IDkuOS0xNC4xIDIyLTE1LjYgMzVsLTEwLjEgOTIuOGMtMS45IDE3LjYgMTAuOCAzMy40IDI4LjMgMzUuMyAxLjIuMSAyLjMuMiAzLjUuMiAxNi4xIDAgMzAtMTIuMSAzMS44LTI4LjVsMTAuMS05Mi42IDY3LjItNzUuOWMxMy42LTE1LjUgMTktMzYuNyAxNC40LTU2Ljd6TTQ2LjMgMzU4LjFsLTQ0IDExMGMtNi42IDE2LjQgMS40IDM1IDE3LjggNDEuNiAxNi44IDYuNiAzNS4xLTEuNyA0MS42LTE3LjhsMjcuNy02OS4yLTItMTguMi00MS4xLTQ2LjR6XCJdXG59O1xudmFyIGZhUGVwcGVySG90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcHBlci1ob3QnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4MTZcIiwgXCJNMzMwLjY3IDI2My4xMlYxNzMuNGwtNTIuNzUtMjQuMjJDMjE5LjQ0IDIxOC43NiAxOTcuNTggNDAwIDU2IDQwMGE1NiA1NiAwIDAgMCAwIDExMmMyMTIuNjQgMCAzNzAuNjUtMTIyLjg3IDQxOS4xOC0yMTAuMzRsLTM3LjA1LTM4LjU0em0xMzEuMDktMTI4LjM3QzQ5My45MiA3NC45MSA0NzcuMTggMjYuNDggNDU4LjYyIDNhOCA4IDAgMCAwLTExLjkzLS41OWwtMjIuOSAyM2E4LjA2IDguMDYgMCAwIDAtLjg5IDEwLjIzYzYuODYgMTAuMzYgMTcuMDUgMzUuMS0xLjQgNzIuMzJBMTQyLjg1IDE0Mi44NSAwIDAgMCAzNjQuMzQgOTZjLTI4IDAtNTQgOC41NC03Ni4zNCAyMi41OWw3NC42NyAzNC4yOXY3OC4yNGg4OS4wOUw1MDYuNDQgMjg4YzMuMjYtMTIuNjIgNS41Ni0yNS42MyA1LjU2LTM5LjMxYTE1NCAxNTQgMCAwIDAtNTAuMjQtMTEzLjk0elwiXVxufTtcbnZhciBmYVBlcmNlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGVyY2VudCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI5NVwiLCBcIk0xMTIgMjI0YzYxLjkgMCAxMTItNTAuMSAxMTItMTEyUzE3My45IDAgMTEyIDAgMCA1MC4xIDAgMTEyczUwLjEgMTEyIDExMiAxMTJ6bTAtMTYwYzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4LTQ4LTIxLjUtNDgtNDggMjEuNS00OCA0OC00OHptMjI0IDIyNGMtNjEuOSAwLTExMiA1MC4xLTExMiAxMTJzNTAuMSAxMTIgMTEyIDExMiAxMTItNTAuMSAxMTItMTEyLTUwLjEtMTEyLTExMi0xMTJ6bTAgMTYwYy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHpNMzkyLjMuMmwzMS42LS4xYzE5LjQtLjEgMzAuOSAyMS44IDE5LjcgMzcuOEw3Ny40IDUwMS42YTIzLjk1IDIzLjk1IDAgMCAxLTE5LjYgMTAuMmwtMzMuNC4xYy0xOS41IDAtMzAuOS0yMS45LTE5LjctMzcuOGwzNjgtNDYzLjdDMzc3LjIgNCAzODQuNS4yIDM5Mi4zLjJ6XCJdXG59O1xudmFyIGZhUGVyY2VudGFnZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwZXJjZW50YWdlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNTQxXCIsIFwiTTEwOS4yNSAxNzMuMjVjMjQuOTktMjQuOTkgMjQuOTktNjUuNTIgMC05MC41MS0yNC45OS0yNC45OS02NS41Mi0yNC45OS05MC41MSAwLTI0Ljk5IDI0Ljk5LTI0Ljk5IDY1LjUyIDAgOTAuNTEgMjUgMjUgNjUuNTIgMjUgOTAuNTEgMHptMjU2IDE2NS40OWMtMjQuOTktMjQuOTktNjUuNTItMjQuOTktOTAuNTEgMC0yNC45OSAyNC45OS0yNC45OSA2NS41MiAwIDkwLjUxIDI0Ljk5IDI0Ljk5IDY1LjUyIDI0Ljk5IDkwLjUxIDAgMjUtMjQuOTkgMjUtNjUuNTEgMC05MC41MXptLTEuOTQtMjMxLjQzbC0yMi42Mi0yMi42MmMtMTIuNS0xMi41LTMyLjc2LTEyLjUtNDUuMjUgMEwyMC42OSAzNTkuNDRjLTEyLjUgMTIuNS0xMi41IDMyLjc2IDAgNDUuMjVsMjIuNjIgMjIuNjJjMTIuNSAxMi41IDMyLjc2IDEyLjUgNDUuMjUgMGwyNzQuNzUtMjc0Ljc1YzEyLjUtMTIuNDkgMTIuNS0zMi43NSAwLTQ1LjI1elwiXVxufTtcbnZhciBmYVBlcnNvbkJvb3RoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BlcnNvbi1ib290aCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjc1NlwiLCBcIk0xOTIgNDk2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwaC02NHYxNzZ6bTMyLTI3MmgtNTAuOWwtNDUuMi00NS4zQzExNS44IDE2Ni42IDk5LjcgMTYwIDgyLjcgMTYwSDY0Yy0xNy4xIDAtMzMuMiA2LjctNDUuMyAxOC44QzYuNyAxOTAuOSAwIDIwNyAwIDIyNC4xTC4yIDMyMCAwIDQ4MGMwIDE3LjcgMTQuMyAzMiAzMS45IDMyIDE3LjYgMCAzMi0xNC4zIDMyLTMybC4xLTEwMC43Yy45LjUgMS42IDEuMyAyLjUgMS43bDI5LjEgNDN2NTZjMCAxNy43IDE0LjMgMzIgMzIgMzJzMzItMTQuMyAzMi0zMnYtNTYuNWMwLTkuOS0yLjMtMTkuOC02LjctMjguNmwtNDEuMi02MS4zVjI1M2wyMC45IDIwLjljOS4xIDkuMSAyMS4xIDE0LjEgMzMuOSAxNC4xSDIyNGMxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMnpNNjQgMTI4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzkwLjUgMzIgNjQgMzIgMTYgNTMuNSAxNiA4MHMyMS41IDQ4IDQ4IDQ4em0yMjQtOTZsMzEuNSAyMjMuMS0zMC45IDE1NC42Yy00LjMgMjEuNiAxMyAzOC4zIDMxLjQgMzguMyAxNS4yIDAgMjgtOS4xIDMyLjMtMzAuNC45IDE2LjkgMTQuNiAzMC40IDMxLjcgMzAuNCAxNy43IDAgMzItMTQuMyAzMi0zMiAwIDE3LjcgMTQuMyAzMiAzMiAzMnMzMi0xNC4zIDMyLTMyVjBIMjg4djMyem0tOTYgMHYxNjBoNjRWMGgtMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek01NDQgMGgtMzJ2NDk2YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzJjMC0xNy43LTE0LjMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhUGhvbmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGhvbmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwOTVcIiwgXCJNNDkzLjQgMjQuNmwtMTA0LTI0Yy0xMS4zLTIuNi0yMi45IDMuMy0yNy41IDEzLjlsLTQ4IDExMmMtNC4yIDkuOC0xLjQgMjEuMyA2LjkgMjhsNjAuNiA0OS42Yy0zNiA3Ni43LTk4LjkgMTQwLjUtMTc3LjIgMTc3LjJsLTQ5LjYtNjAuNmMtNi44LTguMy0xOC4yLTExLjEtMjgtNi45bC0xMTIgNDhDMy45IDM2Ni41LTIgMzc4LjEuNiAzODkuNGwyNCAxMDRDMjcuMSA1MDQuMiAzNi43IDUxMiA0OCA1MTJjMjU2LjEgMCA0NjQtMjA3LjUgNDY0LTQ2NCAwLTExLjItNy43LTIwLjktMTguNi0yMy40elwiXVxufTtcbnZhciBmYVBob25lQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Bob25lLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjg3OVwiLCBcIk00OTcuMzkgMzYxLjhsLTExMi00OGEyNCAyNCAwIDAgMC0yOCA2LjlsLTQ5LjYgNjAuNkEzNzAuNjYgMzcwLjY2IDAgMCAxIDEzMC42IDIwNC4xMWw2MC42LTQ5LjZhMjMuOTQgMjMuOTQgMCAwIDAgNi45LTI4bC00OC0xMTJBMjQuMTYgMjQuMTYgMCAwIDAgMTIyLjYuNjFsLTEwNCAyNEEyNCAyNCAwIDAgMCAwIDQ4YzAgMjU2LjUgMjA3LjkgNDY0IDQ2NCA0NjRhMjQgMjQgMCAwIDAgMjMuNC0xOC42bDI0LTEwNGEyNC4yOSAyNC4yOSAwIDAgMC0xNC4wMS0yNy42elwiXVxufTtcbnZhciBmYVBob25lU2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGhvbmUtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYzZGRcIiwgXCJNMjY4LjIgMzgxLjRsLTQ5LjYtNjAuNmMtNi44LTguMy0xOC4yLTExLjEtMjgtNi45bC0xMTIgNDhjLTEwLjcgNC42LTE2LjUgMTYuMS0xMy45IDI3LjVsMjQgMTA0YzIuNSAxMC44IDEyLjEgMTguNiAyMy40IDE4LjYgMTAwLjcgMCAxOTMuNy0zMi40IDI2OS43LTg2LjlsLTgwLTYxLjhjLTEwLjkgNi41LTIyLjEgMTIuNy0zMy42IDE4LjF6bTM2NS42IDc2LjdMNDc1LjEgMzM1LjVDNTM3LjkgMjU2LjQgNTc2IDE1Ni45IDU3NiA0OGMwLTExLjItNy43LTIwLjktMTguNi0yMy40bC0xMDQtMjRjLTExLjMtMi42LTIyLjkgMy4zLTI3LjUgMTMuOWwtNDggMTEyYy00LjIgOS44LTEuNCAyMS4zIDYuOSAyOGw2MC42IDQ5LjZjLTEyLjIgMjYuMS0yNy45IDUwLjMtNDYgNzIuOEw0NS41IDMuNEMzOC41LTIgMjguNS0uOCAyMyA2LjJMMy40IDMxLjRjLTUuNCA3LTQuMiAxNyAyLjggMjIuNGw1ODguNCA0NTQuN2M3IDUuNCAxNyA0LjIgMjIuNS0yLjhsMTkuNi0yNS4zYzUuNC02LjggNC4xLTE2LjktMi45LTIyLjN6XCJdXG59O1xudmFyIGZhUGhvbmVTcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGhvbmUtc3F1YXJlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDk4XCIsIFwiTTQwMCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNOTQgNDE2Yy03LjAzMyAwLTEzLjA1Ny00Ljg3My0xNC42MTYtMTEuNjI3bC0xNC45OTgtNjVhMTUgMTUgMCAwIDEgOC43MDctMTcuMTZsNjkuOTk4LTI5Ljk5OWExNSAxNSAwIDAgMSAxNy41MTggNC4yODlsMzAuOTk3IDM3Ljg4NWM0OC45NDQtMjIuOTYzIDg4LjI5Ny02Mi44NTggMTEwLjc4MS0xMTAuNzhsLTM3Ljg4Ni0zMC45OTdhMTUuMDAxIDE1LjAwMSAwIDAgMS00LjI4OS0xNy41MThsMzAtNjkuOTk4YTE1IDE1IDAgMCAxIDE3LjE2LTguNzA3bDY1IDE0Ljk5OEExNC45OTcgMTQuOTk3IDAgMCAxIDM4NCAxMjZjMCAxNjAuMjkyLTEyOS45NDUgMjkwLTI5MCAyOTB6XCJdXG59O1xudmFyIGZhUGhvbmVTcXVhcmVBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGhvbmUtc3F1YXJlLWFsdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjg3YlwiLCBcIk00MDAgMzJINDhBNDggNDggMCAwIDAgMCA4MHYzNTJhNDggNDggMCAwIDAgNDggNDhoMzUyYTQ4IDQ4IDAgMCAwIDQ4LTQ4VjgwYTQ4IDQ4IDAgMCAwLTQ4LTQ4em0tMTYuMzkgMzA3LjM3bC0xNSA2NUExNSAxNSAwIDAgMSAzNTQgNDE2QzE5NCA0MTYgNjQgMjg2LjI5IDY0IDEyNmExNS43IDE1LjcgMCAwIDEgMTEuNjMtMTQuNjFsNjUtMTVBMTguMjMgMTguMjMgMCAwIDEgMTQ0IDk2YTE2LjI3IDE2LjI3IDAgMCAxIDEzLjc5IDkuMDlsMzAgNzBBMTcuOSAxNy45IDAgMCAxIDE4OSAxODFhMTcgMTcgMCAwIDEtNS41IDExLjYxbC0zNy44OSAzMWEyMzEuOTEgMjMxLjkxIDAgMCAwIDExMC43OCAxMTAuNzhsMzEtMzcuODlBMTcgMTcgMCAwIDEgMjk5IDI5MWExNy44NSAxNy44NSAwIDAgMSA1LjkxIDEuMjFsNzAgMzBBMTYuMjUgMTYuMjUgMCAwIDEgMzg0IDMzNmExNy40MSAxNy40MSAwIDAgMS0uMzkgMy4zN3pcIl1cbn07XG52YXIgZmFQaG9uZVZvbHVtZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaG9uZS12b2x1bWUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYyYTBcIiwgXCJNOTcuMzMzIDUwNi45NjZjLTEyOS44NzQtMTI5Ljg3NC0xMjkuNjgxLTM0MC4yNTIgMC00NjkuOTMzIDUuNjk4LTUuNjk4IDE0LjUyNy02LjYzMiAyMS4yNjMtMi40MjJsNjQuODE3IDQwLjUxM2ExNy4xODcgMTcuMTg3IDAgMCAxIDYuODQ5IDIwLjk1OGwtMzIuNDA4IDgxLjAyMWExNy4xODggMTcuMTg4IDAgMCAxLTE3LjY2OSAxMC43MTlsLTU1LjgxLTUuNThjLTIxLjA1MSA1OC4yNjEtMjAuNjEyIDEyMi40NzEgMCAxNzkuNTE1bDU1LjgxMS01LjU4MWExNy4xODggMTcuMTg4IDAgMCAxIDE3LjY2OSAxMC43MTlsMzIuNDA4IDgxLjAyMmExNy4xODggMTcuMTg4IDAgMCAxLTYuODQ5IDIwLjk1OGwtNjQuODE3IDQwLjUxM2ExNy4xOSAxNy4xOSAwIDAgMS0yMS4yNjQtMi40MjJ6TTI0Ny4xMjYgOTUuNDczYzExLjgzMiAyMC4wNDcgMTEuODMyIDQ1LjAwOCAwIDY1LjA1NS0zLjk1IDYuNjkzLTEzLjEwOCA3Ljk1OS0xOC43MTggMi41ODFsLTUuOTc1LTUuNzI2Yy0zLjkxMS0zLjc0OC00Ljc5My05LjYyMi0yLjI2MS0xNC40MWEzMi4wNjMgMzIuMDYzIDAgMCAwIDAtMjkuOTQ1Yy0yLjUzMy00Ljc4OC0xLjY1LTEwLjY2MiAyLjI2MS0xNC40MWw1Ljk3NS01LjcyNmM1LjYxLTUuMzc4IDE0Ljc2OC00LjExMiAxOC43MTggMi41ODF6bTkxLjc4Ny05MS4xODdjNjAuMTQgNzEuNjA0IDYwLjA5MiAxNzUuODgyIDAgMjQ3LjQyOC00LjQ3NCA1LjMyNy0xMi41MyA1Ljc0Ni0xNy41NTIuOTMzbC01Ljc5OC01LjU1N2MtNC41Ni00LjM3MS00Ljk3Ny0xMS41MjktLjkzLTE2LjM3OSA0OS42ODctNTkuNTM4IDQ5LjY0Ni0xNDUuOTMzIDAtMjA1LjQyMi00LjA0Ny00Ljg1LTMuNjMxLTEyLjAwOC45My0xNi4zNzlsNS43OTgtNS41NTdjNS4wMjItNC44MTMgMTMuMDc4LTQuMzk0IDE3LjU1Mi45MzN6bS00NS45NzIgNDQuOTQxYzM2LjA1IDQ2LjMyMiAzNi4xMDggMTExLjE0OSAwIDE1Ny41NDYtNC4zOSA1LjY0MS0xMi42OTcgNi4yNTEtMTcuODU2IDEuMzA0bC01LjgxOC01LjU3OWMtNC40LTQuMjE5LTQuOTk4LTExLjA5NS0xLjI4NS0xNS45MzEgMjYuNTM2LTM0LjU2NCAyNi41MzQtODIuNTcyIDAtMTE3LjEzNC0zLjcxMy00LjgzNi0zLjExNS0xMS43MTEgMS4yODUtMTUuOTMxbDUuODE4LTUuNTc5YzUuMTU5LTQuOTQ3IDEzLjQ2Ni00LjMzNyAxNy44NTYgMS4zMDR6XCJdXG59O1xudmFyIGZhUGhvdG9WaWRlbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaG90by12aWRlbycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjg3Y1wiLCBcIk02MDggMEgxNjBhMzIgMzIgMCAwIDAtMzIgMzJ2OTZoMTYwVjY0aDE5MnYzMjBoMTI4YTMyIDMyIDAgMCAwIDMyLTMyVjMyYTMyIDMyIDAgMCAwLTMyLTMyek0yMzIgMTAzYTkgOSAwIDAgMS05IDloLTMwYTkgOSAwIDAgMS05LTlWNzNhOSA5IDAgMCAxIDktOWgzMGE5IDkgMCAwIDEgOSA5em0zNTIgMjA4YTkgOSAwIDAgMS05IDloLTMwYTkgOSAwIDAgMS05LTl2LTMwYTkgOSAwIDAgMSA5LTloMzBhOSA5IDAgMCAxIDkgOXptMC0xMDRhOSA5IDAgMCAxLTkgOWgtMzBhOSA5IDAgMCAxLTktOXYtMzBhOSA5IDAgMCAxIDktOWgzMGE5IDkgMCAwIDEgOSA5em0wLTEwNGE5IDkgMCAwIDEtOSA5aC0zMGE5IDkgMCAwIDEtOS05VjczYTkgOSAwIDAgMSA5LTloMzBhOSA5IDAgMCAxIDkgOXptLTE2OCA1N0gzMmEzMiAzMiAwIDAgMC0zMiAzMnYyODhhMzIgMzIgMCAwIDAgMzIgMzJoMzg0YTMyIDMyIDAgMCAwIDMyLTMyVjE5MmEzMiAzMiAwIDAgMC0zMi0zMnpNOTYgMjI0YTMyIDMyIDAgMSAxLTMyIDMyIDMyIDMyIDAgMCAxIDMyLTMyem0yODggMjI0SDY0di0zMmw2NC02NCAzMiAzMiAxMjgtMTI4IDk2IDk2elwiXVxufTtcbnZhciBmYVBpZ2d5QmFuayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaWdneS1iYW5rJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNGQzXCIsIFwiTTU2MCAyMjRoLTI5LjVjLTguOC0yMC0yMS42LTM3LjctMzcuNC01Mi41TDUxMiA5NmgtMzJjLTI5LjQgMC01NS40IDEzLjUtNzMgMzQuMy03LjYtMS4xLTE1LjEtMi4zLTIzLTIuM0gyNTZjLTc3LjQgMC0xNDEuOSA1NS0xNTYuOCAxMjhINTZjLTE0LjggMC0yNi41LTEzLjUtMjMuNS0yOC44QzM0LjcgMjE1LjggNDUuNCAyMDggNTcgMjA4aDFjMy4zIDAgNi0yLjcgNi02di0yMGMwLTMuMy0yLjctNi02LTYtMjguNSAwLTUzLjkgMjAuNC01Ny41IDQ4LjZDLTMuOSAyNTguOCAyMi43IDI4OCA1NiAyODhoNDBjMCA1Mi4yIDI1LjQgOTguMSA2NCAxMjcuM1Y0OTZjMCA4LjggNy4yIDE2IDE2IDE2aDY0YzguOCAwIDE2LTcuMiAxNi0xNnYtNDhoMTI4djQ4YzAgOC44IDcuMiAxNiAxNiAxNmg2NGM4LjggMCAxNi03LjIgMTYtMTZ2LTgwLjdjMTEuOC04LjkgMjIuMy0xOS40IDMxLjMtMzEuM0g1NjBjOC44IDAgMTYtNy4yIDE2LTE2VjI0MGMwLTguOC03LjItMTYtMTYtMTZ6bS0xMjggNjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnpNMjU2IDk2aDEyOGM1LjQgMCAxMC43LjQgMTUuOS44IDAtLjMuMS0uNS4xLS44IDAtNTMtNDMtOTYtOTYtOTZzLTk2IDQzLTk2IDk2YzAgMi4xLjUgNC4xLjYgNi4yIDE1LjItMy45IDMxLTYuMiA0Ny40LTYuMnpcIl1cbn07XG52YXIgZmFQaWxscyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaWxscycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjQ4NFwiLCBcIk0xMTIgMzJDNTAuMSAzMiAwIDgyLjEgMCAxNDR2MjI0YzAgNjEuOSA1MC4xIDExMiAxMTIgMTEyczExMi01MC4xIDExMi0xMTJWMTQ0YzAtNjEuOS01MC4xLTExMi0xMTItMTEyem00OCAyMjRINjRWMTQ0YzAtMjYuNSAyMS41LTQ4IDQ4LTQ4czQ4IDIxLjUgNDggNDh2MTEyem0xMzkuNy0yOS43Yy0zLjUtMy41LTkuNC0zLjEtMTIuMy44LTQ1LjMgNjIuNS00MC40IDE1MC4xIDE1LjkgMjA2LjQgNTYuMyA1Ni4zIDE0My45IDYxLjIgMjA2LjQgMTUuOSA0LTIuOSA0LjMtOC44LjgtMTIuM0wyOTkuNyAyMjYuM3ptMjI5LjgtMTljLTU2LjMtNTYuMy0xNDMuOS02MS4yLTIwNi40LTE1LjktNCAyLjktNC4zIDguOC0uOCAxMi4zbDIxMC44IDIxMC44YzMuNSAzLjUgOS40IDMuMSAxMi4zLS44IDQ1LjMtNjIuNiA0MC41LTE1MC4xLTE1LjktMjA2LjR6XCJdXG59O1xudmFyIGZhUGl6emFTbGljZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwaXp6YS1zbGljZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjgxOFwiLCBcIk0xNTguODcuMTVjLTE2LjE2LTEuNTItMzEuMiA4LjQyLTM1LjMzIDI0LjEybC0xNC44MSA1Ni4yN2MxODcuNjIgNS40OSAzMTQuNTQgMTMwLjYxIDMyMi40OCAzMTdsNTYuOTQtMTUuNzhjMTUuNzItNC4zNiAyNS40OS0xOS42OCAyMy42Mi0zNS45QzQ5MC44OSAxNjUuMDggMzQwLjc4IDE3LjMyIDE1OC44Ny4xNXptLTU4LjQ3IDExMkwuNTUgNDkxLjY0YTE2LjIxIDE2LjIxIDAgMCAwIDIwIDE5Ljc1bDM3OS0xMDUuMWMtNC4yNy0xNzQuODktMTIzLjA4LTI5Mi4xNC0yOTkuMTUtMjk0LjF6TTEyOCA0MTZhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6bTQ4LTE1MmEzMiAzMiAwIDEgMSAzMi0zMiAzMiAzMiAwIDAgMS0zMiAzMnptMTA0IDEwNGEzMiAzMiAwIDEgMSAzMi0zMiAzMiAzMiAwIDAgMS0zMiAzMnpcIl1cbn07XG52YXIgZmFQbGFjZU9mV29yc2hpcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFjZS1vZi13b3JzaGlwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjdmXCIsIFwiTTYyMC42MSAzNjYuNTVMNTEyIDMyMHYxOTJoMTEyYzguODQgMCAxNi03LjE2IDE2LTE2VjM5NS45NmEzMiAzMiAwIDAgMC0xOS4zOS0yOS40MXpNMCAzOTUuOTZWNDk2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDExMlYzMjBMMTkuMzkgMzY2LjU1QTMyIDMyIDAgMCAwIDAgMzk1Ljk2em00NjQuNDYtMTQ5LjI4TDQxNiAyMTcuNlYxMDIuNjNjMC04LjQ5LTMuMzctMTYuNjItOS4zOC0yMi42M0wzMzEuMzEgNC42OWMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjIgMEwyMzMuMzggODBjLTYgNi05LjM4IDE0LjE0LTkuMzggMjIuNjNWMjE3LjZsLTQ4LjQ2IDI5LjA4QTMxLjk5NyAzMS45OTcgMCAwIDAgMTYwIDI3NC4xMlY1MTJoOTZ2LTk2YzAtMzUuMzUgMjguNjYtNjQgNjQtNjRzNjQgMjguNjUgNjQgNjR2OTZoOTZWMjc0LjEyYzAtMTEuMjQtNS45LTIxLjY2LTE1LjU0LTI3LjQ0elwiXVxufTtcbnZhciBmYVBsYW5lID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYW5lJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMDcyXCIsIFwiTTQ4MCAxOTJIMzY1LjcxTDI2MC42MSA4LjA2QTE2LjAxNCAxNi4wMTQgMCAwIDAgMjQ2LjcxIDBoLTY1LjVjLTEwLjYzIDAtMTguMyAxMC4xNy0xNS4zOCAyMC4zOUwyMTQuODYgMTkySDExMmwtNDMuMi01Ny42Yy0zLjAyLTQuMDMtNy43Ny02LjQtMTIuOC02LjRIMTYuMDFDNS42IDEyOC0yLjA0IDEzNy43OC40OSAxNDcuODhMMzIgMjU2IC40OSAzNjQuMTJDLTIuMDQgMzc0LjIyIDUuNiAzODQgMTYuMDEgMzg0SDU2YzUuMDQgMCA5Ljc4LTIuMzcgMTIuOC02LjRMMTEyIDMyMGgxMDIuODZsLTQ5LjAzIDE3MS42Yy0yLjkyIDEwLjIyIDQuNzUgMjAuNCAxNS4zOCAyMC40aDY1LjVjNS43NCAwIDExLjA0LTMuMDggMTMuODktOC4wNkwzNjUuNzEgMzIwSDQ4MGMzNS4zNSAwIDk2LTI4LjY1IDk2LTY0cy02MC42NS02NC05Ni02NHpcIl1cbn07XG52YXIgZmFQbGFuZUFycml2YWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGxhbmUtYXJyaXZhbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjVhZlwiLCBcIk02MjQgNDQ4SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg2MDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2ek00NC44MSAyMDUuNjZsODguNzQgODBhNjIuNjA3IDYyLjYwNyAwIDAgMCAyNS40NyAxMy45M2wyODcuNiA3OC4zNWMyNi40OCA3LjIxIDU0LjU2IDguNzIgODEgMS4zNiAyOS42Ny04LjI3IDQzLjQ0LTIxLjIxIDQ3LjI1LTM1LjcxIDMuODMtMTQuNS0xLjczLTMyLjcxLTIzLjM3LTU0Ljk2LTE5LjI4LTE5LjgyLTQ0LjM1LTMyLjc5LTcwLjgzLTQwbC05Ny41MS0yNi41NkwyODIuOCAzMC4yMmMtMS41MS01LjgxLTUuOTUtMTAuMzUtMTEuNjYtMTEuOTFMMjA2LjA1LjU4Yy0xMC41Ni0yLjg4LTIwLjkgNS4zMi0yMC43MSAxNi40NGw0Ny45MiAxNjQuMjEtMTAyLjItMjcuODQtMjcuNTktNjcuODhjLTEuOTMtNC44OS02LjAxLTguNTctMTEuMDItOS45M0w1Mi43MiA2NC43NWMtMTAuMzQtMi44Mi0yMC41MyA1LTIwLjcyIDE1Ljg4bC4yMyAxMDEuNzhjLjE5IDguOTEgNi4wMyAxNy4zNCAxMi41OCAyMy4yNXpcIl1cbn07XG52YXIgZmFQbGFuZURlcGFydHVyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbGFuZS1kZXBhcnR1cmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1YjBcIiwgXCJNNjI0IDQ0OEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNjA4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNODAuNTUgMzQxLjI3YzYuMjggNi44NCAxNS4xIDEwLjcyIDI0LjMzIDEwLjcxbDEzMC41NC0uMThhNjUuNjIgNjUuNjIgMCAwIDAgMjkuNjQtNy4xMmwyOTAuOTYtMTQ3LjY1YzI2Ljc0LTEzLjU3IDUwLjcxLTMyLjk0IDY3LjAyLTU4LjMxIDE4LjMxLTI4LjQ4IDIwLjMtNDkuMDkgMTMuMDctNjMuNjUtNy4yMS0xNC41Ny0yNC43NC0yNS4yNy01OC4yNS0yNy40NS0yOS44NS0xLjk0LTU5LjU0IDUuOTItODYuMjggMTkuNDhsLTk4LjUxIDQ5Ljk5LTIxOC43LTgyLjA2YTE3Ljc5OSAxNy43OTkgMCAwIDAtMTgtMS4xMUw5MC42MiA2Ny4yOWMtMTAuNjcgNS40MS0xMy4yNSAxOS42NS01LjE3IDI4LjUzbDE1Ni4yMiA5OC4xLTEwMy4yMSA1Mi4zOC03Mi4zNS0zNi40N2ExNy44MDQgMTcuODA0IDAgMCAwLTE2LjA3LjAyTDkuOTEgMjMwLjIyYy0xMC40NCA1LjMtMTMuMTkgMTkuMTItNS41NyAyOC4wOGw3Ni4yMSA4Mi45N3pcIl1cbn07XG52YXIgZmFQbGF5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYXknLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwNGJcIiwgXCJNNDI0LjQgMjE0LjdMNzIuNCA2LjZDNDMuOC0xMC4zIDAgNi4xIDAgNDcuOVY0NjRjMCAzNy41IDQwLjcgNjAuMSA3Mi40IDQxLjNsMzUyLTIwOGMzMS40LTE4LjUgMzEuNS02NC4xIDAtODIuNnpcIl1cbn07XG52YXIgZmFQbGF5Q2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsYXktY2lyY2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTQ0XCIsIFwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTExNS43IDI3MmwtMTc2IDEwMWMtMTUuOCA4LjgtMzUuNy0yLjUtMzUuNy0yMVYxNTJjMC0xOC40IDE5LjgtMjkuOCAzNS43LTIxbDE3NiAxMDdjMTYuNCA5LjIgMTYuNCAzMi45IDAgNDJ6XCJdXG59O1xudmFyIGZhUGx1ZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbHVnJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWU2XCIsIFwiTTI1NiAxNDRWMzJjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyczMyIDE0LjMyNyAzMiAzMnYxMTJoLTY0em0xMTIgMTZIMTZjLTguODM3IDAtMTYgNy4xNjMtMTYgMTZ2MzJjMCA4LjgzNyA3LjE2MyAxNiAxNiAxNmgxNnYzMmMwIDc3LjQwNiA1NC45NjkgMTQxLjk3MSAxMjggMTU2Ljc5NlY1MTJoNjR2LTk5LjIwNGM3My4wMzEtMTQuODI1IDEyOC03OS4zOSAxMjgtMTU2Ljc5NnYtMzJoMTZjOC44MzcgMCAxNi03LjE2MyAxNi0xNnYtMzJjMC04LjgzNy03LjE2My0xNi0xNi0xNnptLTI0MC0xNlYzMmMwLTE3LjY3My0xNC4zMjctMzItMzItMzJTNjQgMTQuMzI3IDY0IDMydjExMmg2NHpcIl1cbn07XG52YXIgZmFQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3BsdXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwNjdcIiwgXCJNNDE2IDIwOEgyNzJWNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MTQ0SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTQ0djE0NGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMzA0aDE0NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYVBsdXNDaXJjbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncGx1cy1jaXJjbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNTVcIiwgXCJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMTQ0IDI3NmMwIDYuNi01LjQgMTItMTIgMTJoLTkydjkyYzAgNi42LTUuNCAxMi0xMiAxMmgtNTZjLTYuNiAwLTEyLTUuNC0xMi0xMnYtOTJoLTkyYy02LjYgMC0xMi01LjQtMTItMTJ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmg5MnYtOTJjMC02LjYgNS40LTEyIDEyLTEyaDU2YzYuNiAwIDEyIDUuNCAxMiAxMnY5Mmg5MmM2LjYgMCAxMiA1LjQgMTIgMTJ2NTZ6XCJdXG59O1xudmFyIGZhUGx1c1NxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwbHVzLXNxdWFyZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBmZVwiLCBcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tMzIgMjUyYzAgNi42LTUuNCAxMi0xMiAxMmgtOTJ2OTJjMCA2LjYtNS40IDEyLTEyIDEyaC01NmMtNi42IDAtMTItNS40LTEyLTEydi05Mkg5MmMtNi42IDAtMTItNS40LTEyLTEydi01NmMwLTYuNiA1LjQtMTIgMTItMTJoOTJ2LTkyYzAtNi42IDUuNC0xMiAxMi0xMmg1NmM2LjYgMCAxMiA1LjQgMTIgMTJ2OTJoOTJjNi42IDAgMTIgNS40IDEyIDEydjU2elwiXVxufTtcbnZhciBmYVBvZGNhc3QgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncG9kY2FzdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjJjZVwiLCBcIk0yNjcuNDI5IDQ4OC41NjNDMjYyLjI4NiA1MDcuNTczIDI0Mi44NTggNTEyIDIyNCA1MTJjLTE4Ljg1NyAwLTM4LjI4Ni00LjQyNy00My40MjgtMjMuNDM3QzE3Mi45MjcgNDYwLjEzNCAxNjAgMzg4Ljg5OCAxNjAgMzU1Ljc1YzAtMzUuMTU2IDMxLjE0Mi00My43NSA2NC00My43NXM2NCA4LjU5NCA2NCA0My43NWMwIDMyLjk0OS0xMi44NzEgMTA0LjE3OS0yMC41NzEgMTMyLjgxM3pNMTU2Ljg2NyAyODguNTU0Yy0xOC42OTMtMTguMzA4LTI5Ljk1OC00NC4xNzMtMjguNzg0LTcyLjU5OSAyLjA1NC00OS43MjQgNDIuMzk1LTg5Ljk1NiA5Mi4xMjQtOTEuODgxQzI3NC44NjIgMTIxLjk1OCAzMjAgMTY1LjgwNyAzMjAgMjIwYzAgMjYuODI3LTExLjA2NCA1MS4xMTYtMjguODY2IDY4LjU1Mi0yLjY3NSAyLjYyLTIuNDAxIDYuOTg2LjYyOCA5LjE4NyA5LjMxMiA2Ljc2NSAxNi40NiAxNS4zNDMgMjEuMjM0IDI1LjM2MyAxLjc0MSAzLjY1NCA2LjQ5NyA0LjY2IDkuNDQ5IDEuODkxIDI4LjgyNi0yNy4wNDMgNDYuNTUzLTY1Ljc4MyA0NS41MTEtMTA4LjU2NS0xLjg1NS03Ni4yMDYtNjMuNTk1LTEzOC4yMDgtMTM5Ljc5My0xNDAuMzY5QzE0Ni44NjkgNzMuNzUzIDgwIDEzOS4yMTUgODAgMjIwYzAgNDEuMzYxIDE3LjUzMiA3OC43IDQ1LjU1IDEwNC45ODkgMi45NTMgMi43NzEgNy43MTEgMS43NyA5LjQ1My0xLjg4NyA0Ljc3NC0xMC4wMjEgMTEuOTIzLTE4LjU5OCAyMS4yMzUtMjUuMzYzIDMuMDI5LTIuMiAzLjMwNC02LjU2Ni42MjktOS4xODV6TTIyNCAwQzEwMC4yMDQgMCAwIDEwMC4xODUgMCAyMjRjMCA4OS45OTIgNTIuNjAyIDE2NS42NDcgMTI1LjczOSAyMDEuNDA4IDQuMzMzIDIuMTE4IDkuMjY3LTEuNTQ0IDguNTM1LTYuMzEtMi4zODItMTUuNTEyLTQuMzQyLTMwLjk0Ni01LjQwNi00NC4zMzktLjE0Ni0xLjgzNi0xLjE0OS0zLjQ4Ni0yLjY3OC00LjUxMi00Ny40LTMxLjgwNi03OC41NjQtODYuMDE2LTc4LjE4Ny0xNDcuMzQ3LjU5Mi05Ni4yMzcgNzkuMjktMTc0LjY0OCAxNzUuNTI5LTE3NC44OTlDMzIwLjc5MyA0Ny43NDcgNDAwIDEyNi43OTcgNDAwIDIyNGMwIDYxLjkzMi0zMi4xNTggMTE2LjQ5LTgwLjY1IDE0Ny44NjctLjk5OSAxNC4wMzctMy4wNjkgMzAuNTg4LTUuNjI0IDQ3LjIzLS43MzIgNC43NjcgNC4yMDMgOC40MjkgOC41MzUgNi4zMUMzOTUuMjI3IDM4OS43MjcgNDQ4IDMxNC4xODcgNDQ4IDIyNCA0NDggMTAwLjIwNSAzNDcuODE1IDAgMjI0IDB6bTAgMTYwYy0zNS4zNDYgMC02NCAyOC42NTQtNjQgNjRzMjguNjU0IDY0IDY0IDY0IDY0LTI4LjY1NCA2NC02NC0yOC42NTQtNjQtNjQtNjR6XCJdXG59O1xudmFyIGZhUG9sbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb2xsJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNjgxXCIsIFwiTTQwMCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6TTE2MCAzNjhjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTMyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNlYyNDBjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMzJjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MTI4em05NiAwYzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZWMTQ0YzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djIyNHptOTYgMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtMzJjLTguODQgMC0xNi03LjE2LTE2LTE2di02NGMwLTguODQgNy4xNi0xNiAxNi0xNmgzMmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnY2NHpcIl1cbn07XG52YXIgZmFQb2xsSCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb2xsLWgnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY2ODJcIiwgXCJNNDQ4IDQzMlY4MGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh6TTExMiAxOTJjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMmMwLTguODQgNy4xNi0xNiAxNi0xNmgxMjhjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MzJjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIMTEyem0wIDk2Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMzJjMC04Ljg0IDcuMTYtMTYgMTYtMTZoMjI0YzguODQgMCAxNiA3LjE2IDE2IDE2djMyYzAgOC44NC03LjE2IDE2LTE2IDE2SDExMnptMCA5NmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTMyYzAtOC44NCA3LjE2LTE2IDE2LTE2aDY0YzguODQgMCAxNiA3LjE2IDE2IDE2djMyYzAgOC44NC03LjE2IDE2LTE2IDE2aC02NHpcIl1cbn07XG52YXIgZmFQb28gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncG9vJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmZlXCIsIFwiTTQ1MS40IDM2OS4xQzQ2OC43IDM1NiA0ODAgMzM1LjQgNDgwIDMxMmMwLTM5LjgtMzIuMi03Mi03Mi03MmgtMTQuMWMxMy40LTExLjcgMjIuMS0yOC44IDIyLjEtNDggMC0zNS4zLTI4LjctNjQtNjQtNjRoLTUuOWMzLjYtMTAuMSA1LjktMjAuNyA1LjktMzIgMC01My00My05Ni05Ni05Ni01LjIgMC0xMC4yLjctMTUuMSAxLjVDMjUwLjMgMTQuNiAyNTYgMzAuNiAyNTYgNDhjMCA0NC4yLTM1LjggODAtODAgODBoLTE2Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDE5LjIgOC43IDM2LjMgMjIuMSA0OEgxMDRjLTM5LjggMC03MiAzMi4yLTcyIDcyIDAgMjMuNCAxMS4zIDQ0IDI4LjYgNTcuMUMyNi4zIDM3NC42IDAgNDA0LjEgMCA0NDBjMCAzOS44IDMyLjIgNzIgNzIgNzJoMzY4YzM5LjggMCA3Mi0zMi4yIDcyLTcyIDAtMzUuOS0yNi4zLTY1LjQtNjAuNi03MC45ek0xOTIgMjU2YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnptMTU5LjUgMTM5QzM0MSA0MjIuOSAyOTMgNDQ4IDI1NiA0NDhzLTg1LTI1LjEtOTUuNS01M2MtMi01LjMgMi0xMSA3LjgtMTFoMTc1LjRjNS44IDAgOS44IDUuNyA3LjggMTF6TTMyMCAzMjBjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYVBvb1N0b3JtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Bvby1zdG9ybScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjc1YVwiLCBcIk0zMDggMzM2aC01Ny43bDE3LjMtNjQuOWMyLTcuNi0zLjctMTUuMS0xMS42LTE1LjFoLTY4Yy02IDAtMTEuMSA0LjUtMTEuOSAxMC40bC0xNiAxMjBjLTEgNy4yIDQuNiAxMy42IDExLjkgMTMuNmg1OS4zbC0yMyA5Ny4yYy0xLjggNy42IDQgMTQuOCAxMS43IDE0LjggNC4yIDAgOC4yLTIuMiAxMC40LTZsODgtMTUyYzQuNi04LTEuMi0xOC0xMC40LTE4em02Ni40LTExMS4zYzUuOS05LjYgOS42LTIwLjYgOS42LTMyLjcgMC0zNS4zLTI4LjctNjQtNjQtNjRoLTUuOWMzLjYtMTAuMSA1LjktMjAuNyA1LjktMzIgMC01My00My05Ni05Ni05Ni01LjIgMC0xMC4yLjctMTUuMSAxLjVDMjE4LjMgMTQuNiAyMjQgMzAuNiAyMjQgNDhjMCA0NC4yLTM1LjggODAtODAgODBoLTE2Yy0zNS4zIDAtNjQgMjguNy02NCA2NCAwIDEyLjEgMy43IDIzLjEgOS42IDMyLjdDMzIuNiAyMjggMCAyNjIuMiAwIDMwNGMwIDQ0IDM2IDgwIDgwIDgwaDQ4LjNjLjEtLjYgMC0xLjIgMC0xLjhsMTYtMTIwYzMtMjEuOCAyMS43LTM4LjIgNDMuNy0zOC4yaDY4YzEzLjggMCAyNi41IDYuMyAzNC45IDE3LjJzMTEuMiAyNC44IDcuNiAzOC4xbC02LjYgMjQuN2gxNmMxNS43IDAgMzAuMyA4LjQgMzguMSAyMiA3LjggMTMuNiA3LjggMzAuNSAwIDQ0bC04LjEgMTRoMzBjNDQgMCA4MC0zNiA4MC04MCAuMS00MS44LTMyLjUtNzYtNzMuNS03OS4zelwiXVxufTtcbnZhciBmYVBvb3AgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncG9vcCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjYxOVwiLCBcIk00NTEuMzYgMzY5LjE0QzQ2OC42NiAzNTUuOTkgNDgwIDMzNS40MSA0ODAgMzEyYzAtMzkuNzctMzIuMjQtNzItNzItNzJoLTE0LjA3YzEzLjQyLTExLjczIDIyLjA3LTI4Ljc4IDIyLjA3LTQ4IDAtMzUuMzUtMjguNjUtNjQtNjQtNjRoLTUuODhjMy41Ny0xMC4wNSA1Ljg4LTIwLjcyIDUuODgtMzIgMC01My4wMi00Mi45OC05Ni05Ni05Ni01LjE3IDAtMTAuMTUuNzQtMTUuMTEgMS41MkMyNTAuMzEgMTQuNjQgMjU2IDMwLjYyIDI1NiA0OGMwIDQ0LjE4LTM1LjgyIDgwLTgwIDgwaC0xNmMtMzUuMzUgMC02NCAyOC42NS02NCA2NCAwIDE5LjIyIDguNjUgMzYuMjcgMjIuMDcgNDhIMTA0Yy0zOS43NiAwLTcyIDMyLjIzLTcyIDcyIDAgMjMuNDEgMTEuMzQgNDMuOTkgMjguNjQgNTcuMTRDMjYuMzEgMzc0LjYyIDAgNDA0LjEyIDAgNDQwYzAgMzkuNzYgMzIuMjQgNzIgNzIgNzJoMzY4YzM5Ljc2IDAgNzItMzIuMjQgNzItNzIgMC0zNS44OC0yNi4zMS02NS4zOC02MC42NC03MC44NnpcIl1cbn07XG52YXIgZmFQb3J0cmFpdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb3J0cmFpdCcsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjNlMFwiLCBcIk0zMzYgMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDI4OGMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHpNMTkyIDEyOGMzNS4zIDAgNjQgMjguNyA2NCA2NHMtMjguNyA2NC02NCA2NC02NC0yOC43LTY0LTY0IDI4LjctNjQgNjQtNjR6bTExMiAyMzYuOGMwIDEwLjYtMTAgMTkuMi0yMi40IDE5LjJIMTAyLjRDOTAgMzg0IDgwIDM3NS40IDgwIDM2NC44di0xOS4yYzAtMzEuOCAzMC4xLTU3LjYgNjcuMi01Ny42aDVjMTIuMyA1LjEgMjUuNyA4IDM5LjggOHMyNy42LTIuOSAzOS44LThoNWMzNy4xIDAgNjcuMiAyNS44IDY3LjIgNTcuNnYxOS4yelwiXVxufTtcbnZhciBmYVBvdW5kU2lnbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb3VuZC1zaWduJyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMTU0XCIsIFwiTTMwOCAzNTJoLTQ1LjQ5NWMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1MC44NDhIMTI4VjI4OGg4NGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC04NHYtNjMuNTU2YzAtMzIuMjY2IDI0LjU2Mi01Ny4wODYgNjEuNzkyLTU3LjA4NiAyMy42NTggMCA0NS44NzggMTEuNTA1IDU3LjY1MiAxOC44NDkgNS4xNTEgMy4yMTMgMTEuODg4IDIuMDUxIDE1LjY4OC0yLjY4NWwyOC40OTMtMzUuNTEzYzQuMjMzLTUuMjc2IDMuMjc5LTEzLjAwNS0yLjExOS0xNy4wODFDMjczLjEyNCA1NC41NiAyMzYuNTc2IDMyIDE4Ny45MzEgMzIgMTA2LjAyNiAzMiA0OCA4NC43NDIgNDggMTU3Ljk2MVYyMjRIMjBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOHYxMjhIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgyOTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMlYzNjRjMC02LjYyNy01LjM3My0xMi0xMi0xMnpcIl1cbn07XG52YXIgZmFQb3dlck9mZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwb3dlci1vZmYnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwMTFcIiwgXCJNNDAwIDU0LjFjNjMgNDUgMTA0IDExOC42IDEwNCAyMDEuOSAwIDEzNi44LTExMC44IDI0Ny43LTI0Ny41IDI0OEMxMjAgNTA0LjMgOC4yIDM5MyA4IDI1Ni40IDcuOSAxNzMuMSA0OC45IDk5LjMgMTExLjggNTQuMmMxMS43LTguMyAyOC00LjggMzUgNy43TDE2Mi42IDkwYzUuOSAxMC41IDMuMSAyMy44LTYuNiAzMS00MS41IDMwLjgtNjggNzkuNi02OCAxMzQuOS0uMSA5Mi4zIDc0LjUgMTY4LjEgMTY4IDE2OC4xIDkxLjYgMCAxNjguNi03NC4yIDE2OC0xNjkuMS0uMy01MS44LTI0LjctMTAxLjgtNjguMS0xMzQtOS43LTcuMi0xMi40LTIwLjUtNi41LTMwLjlsMTUuOC0yOC4xYzctMTIuNCAyMy4yLTE2LjEgMzQuOC03Ljh6TTI5NiAyNjRWMjRjMC0xMy4zLTEwLjctMjQtMjQtMjRoLTMyYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHYyNDBjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjR6XCJdXG59O1xudmFyIGZhUHJheSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwcmF5JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNjgzXCIsIFwiTTI1NiAxMjhjMzUuMzUgMCA2NC0yOC42NSA2NC02NFMyOTEuMzUgMCAyNTYgMHMtNjQgMjguNjUtNjQgNjQgMjguNjUgNjQgNjQgNjR6bS0zMC42MyAxNjkuNzVjMTQuMDYgMTYuNzIgMzkgMTkuMDkgNTUuOTcgNS4yMmw4OC03Mi4wMmMxNy4wOS0xMy45OCAxOS41OS0zOS4xOSA1LjYyLTU2LjI4LTEzLjk3LTE3LjExLTM5LjE5LTE5LjU5LTU2LjMxLTUuNjJsLTU3LjQ0IDQ3LTM4LjkxLTQ2LjMxYy0xNS40NC0xOC4zOS0zOS4yMi0yNy45Mi02NC0yNS4zMy0yNC4xOSAyLjQ4LTQ1LjI1IDE2LjI3LTU2LjM3IDM2LjkybC00OS4zNyA5Mi4wM2MtMjMuNCA0My42NC04LjY5IDk2LjM3IDM0LjE5IDEyMy43NUwxMzEuNTYgNDMySDQwYy0yMi4wOSAwLTQwIDE3LjkxLTQwIDQwczE3LjkxIDQwIDQwIDQwaDIwOGMzNC4wOCAwIDUzLjc3LTQyLjc5IDI4LjI4LTY4LjI4TDE2Ni40MiAzMzMuODZsMzQuOC02NC44NyAyNC4xNSAyOC43NnpcIl1cbn07XG52YXIgZmFQcmF5aW5nSGFuZHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncHJheWluZy1oYW5kcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjY4NFwiLCBcIk0yNzIgMTkxLjkxYy0xNy42IDAtMzIgMTQuNC0zMiAzMnY4MGMwIDguODQtNy4xNiAxNi0xNiAxNnMtMTYtNy4xNi0xNi0xNnYtNzYuNTVjMC0xNy4zOSA0LjcyLTM0LjQ3IDEzLjY5LTQ5LjM5bDc3Ljc1LTEyOS41OWM5LjA5LTE1LjE2IDQuMTktMzQuODEtMTAuOTctNDMuOTEtMTQuNDUtOC42Ny0zMi43Mi00LjMtNDIuMyA5LjIxLS4yLjIzLS42Mi4yMS0uNzkuNDhsLTExNy4yNiAxNzUuOUMxMTcuNTYgMjA1LjkgMTEyIDIyNC4zMSAxMTIgMjQzLjI5djgwLjIzbC05MC4xMiAzMC4wNEEzMS45NzQgMzEuOTc0IDAgMCAwIDAgMzgzLjkxdjk2YzAgMTAuODIgOC41MiAzMiAzMiAzMiAyLjY5IDAgNS40MS0uMzQgOC4wNi0xLjAzbDE3OS4xOS00Ni42MkMyNjkuMTYgNDQ5Ljk5IDMwNCA0MDMuOCAzMDQgMzUxLjkxdi0xMjhjMC0xNy42LTE0LjQtMzItMzItMzJ6bTM0Ni4xMiAxNjEuNzNMNTI4IDMyMy42di04MC4yM2MwLTE4Ljk4LTUuNTYtMzcuMzktMTYuMTItNTMuMjNMMzk0LjYyIDE0LjI1Yy0uMTgtLjI3LS41OS0uMjQtLjc5LS40OC05LjU4LTEzLjUxLTI3Ljg1LTE3Ljg4LTQyLjMtOS4yMS0xNS4xNiA5LjA5LTIwLjA2IDI4Ljc1LTEwLjk3IDQzLjkxbDc3Ljc1IDEyOS41OWM4Ljk3IDE0LjkyIDEzLjY5IDMyIDEzLjY5IDQ5LjM5VjMwNGMwIDguODQtNy4xNiAxNi0xNiAxNnMtMTYtNy4xNi0xNi0xNnYtODBjMC0xNy42LTE0LjQtMzItMzItMzJzLTMyIDE0LjQtMzIgMzJ2MTI4YzAgNTEuODkgMzQuODQgOTguMDggODQuNzUgMTEyLjM0bDE3OS4xOSA0Ni42MmMyLjY2LjY5IDUuMzggMS4wMyA4LjA2IDEuMDMgMjMuNDggMCAzMi0yMS4xOCAzMi0zMnYtOTZjMC0xMy43Ny04LjgxLTI1Ljk5LTIxLjg4LTMwLjM1elwiXVxufTtcbnZhciBmYVByZXNjcmlwdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwcmVzY3JpcHRpb24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1YjFcIiwgXCJNMzAxLjI2IDM1Mmw3OC4wNi03OC4wNmM2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC0yMi42My0yMi42M2MtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMEwyNTYgMzA2Ljc0bC04My45Ni04My45NkMyMTkuMzEgMjE2LjggMjU2IDE3Ni44OSAyNTYgMTI4YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZIMTZDNy4xNiAzMiAwIDM5LjE2IDAgNDh2MjU2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di04MGgxOC43NWwxMjggMTI4LTc4LjA2IDc4LjA2Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDIyLjYzIDIyLjYzYzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBMMjU2IDM5Ny4yNWw3OC4wNiA3OC4wNmM2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDIyLjYzLTIyLjYzYzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjNMMzAxLjI2IDM1MnpNNjQgOTZoOTZjMTcuNjQgMCAzMiAxNC4zNiAzMiAzMnMtMTQuMzYgMzItMzIgMzJINjRWOTZ6XCJdXG59O1xudmFyIGZhUHJlc2NyaXB0aW9uQm90dGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ByZXNjcmlwdGlvbi1ib3R0bGUnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY0ODVcIiwgXCJNMzIgMTkyaDEyMGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMydjY0aDEyMGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMydjY0aDEyMGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMydjY0YzAgMTcuNiAxNC40IDMyIDMyIDMyaDI1NmMxNy42IDAgMzItMTQuNCAzMi0zMlYxMjhIMzJ2NjR6TTM2MCAwSDI0QzEwLjggMCAwIDEwLjggMCAyNHY0OGMwIDEzLjIgMTAuOCAyNCAyNCAyNGgzMzZjMTMuMiAwIDI0LTEwLjggMjQtMjRWMjRjMC0xMy4yLTEwLjgtMjQtMjQtMjR6XCJdXG59O1xudmFyIGZhUHJlc2NyaXB0aW9uQm90dGxlQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ByZXNjcmlwdGlvbi1ib3R0bGUtYWx0JyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNDg2XCIsIFwiTTM2MCAwSDI0QzEwLjggMCAwIDEwLjggMCAyNHY0OGMwIDEzLjIgMTAuOCAyNCAyNCAyNGgzMzZjMTMuMiAwIDI0LTEwLjggMjQtMjRWMjRjMC0xMy4yLTEwLjgtMjQtMjQtMjR6TTMyIDQ4MGMwIDE3LjYgMTQuNCAzMiAzMiAzMmgyNTZjMTcuNiAwIDMyLTE0LjQgMzItMzJWMTI4SDMydjM1MnptNjQtMTg0YzAtNC40IDMuNi04IDgtOGg1NnYtNTZjMC00LjQgMy42LTggOC04aDQ4YzQuNCAwIDggMy42IDggOHY1Nmg1NmM0LjQgMCA4IDMuNiA4IDh2NDhjMCA0LjQtMy42IDgtOCA4aC01NnY1NmMwIDQuNC0zLjYgOC04IDhoLTQ4Yy00LjQgMC04LTMuNi04LTh2LTU2aC01NmMtNC40IDAtOC0zLjYtOC04di00OHpcIl1cbn07XG52YXIgZmFQcmludCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwcmludCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAyZlwiLCBcIk00NDggMTkyVjc3LjI1YzAtOC40OS0zLjM3LTE2LjYyLTkuMzctMjIuNjNMMzkzLjM3IDkuMzdjLTYtNi0xNC4xNC05LjM3LTIyLjYzLTkuMzdIOTZDNzguMzMgMCA2NCAxNC4zMyA2NCAzMnYxNjBjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR2MTEyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4djk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzIwYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjI1NmMwLTM1LjM1LTI4LjY1LTY0LTY0LTY0em0tNjQgMjU2SDEyOHYtOTZoMjU2djk2em0wLTIyNEgxMjhWNjRoMTkydjQ4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4djk2em00OCA3MmMtMTMuMjUgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6XCJdXG59O1xudmFyIGZhUHJvY2VkdXJlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdwcm9jZWR1cmVzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNDg3XCIsIFwiTTUyOCAyMjRIMjcyYy04LjggMC0xNiA3LjItMTYgMTZ2MTQ0SDY0VjE0NGMwLTguOC03LjItMTYtMTYtMTZIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzNTJjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtNDhoNTEydjQ4YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzM2YzAtNjEuOS01MC4xLTExMi0xMTItMTEyek0xMzYgOTZoMTI2LjFsMjcuNiA1NS4yYzUuOSAxMS44IDIyLjcgMTEuOCAyOC42IDBMMzY4IDUxLjggMzkwLjEgOTZINTEyYzguOCAwIDE2LTcuMiAxNi0xNnMtNy4yLTE2LTE2LTE2SDQwOS45TDM4Mi4zIDguOEMzNzYuNC0zIDM1OS42LTMgMzUzLjcgOC44TDMwNCAxMDguMmwtMTkuOS0zOS44Yy0xLjQtMi43LTQuMS00LjQtNy4yLTQuNEgxMzZjLTQuNCAwLTggMy42LTggOHYxNmMwIDQuNCAzLjYgOCA4IDh6bTI0IDI1NmMzNS4zIDAgNjQtMjguNyA2NC02NHMtMjguNy02NC02NC02NC02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6XCJdXG59O1xudmFyIGZhUHJvamVjdERpYWdyYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncHJvamVjdC1kaWFncmFtJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTQyXCIsIFwiTTM4NCAzMjBIMjU2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDEyOGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjM1MmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0xOTIgMzJjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMkgzMkMxNC4zMyAwIDAgMTQuMzMgMCAzMnYxMjhjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NS43Mmw3My4xNiAxMjguMDRDMjExLjk4IDMwMC45OCAyMzIuNCAyODggMjU2IDI4OGguMjhMMTkyIDE3NS41MVYxMjhoMjI0VjY0SDE5MlYzMnpNNjA4IDBINDgwYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDEyOGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhUHV6emxlUGllY2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncHV6emxlLXBpZWNlJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMTJlXCIsIFwiTTUxOS40NDIgMjg4LjY1MWMtNDEuNTE5IDAtNTkuNSAzMS41OTMtODIuMDU4IDMxLjU5M0MzNzcuNDA5IDMyMC4yNDQgNDMyIDE0NCA0MzIgMTQ0cy0xOTYuMjg4IDgwLTE5Ni4yODgtMy4yOTdjMC0zNS44MjcgMzYuMjg4LTQ2LjI1IDM2LjI4OC04NS45ODVDMjcyIDE5LjIxNiAyNDMuODg1IDAgMjEwLjUzOSAwYy0zNC42NTQgMC02Ni4zNjYgMTguODkxLTY2LjM2NiA1Ni4zNDYgMCA0MS4zNjQgMzEuNzExIDU5LjI3NyAzMS43MTEgODEuNzVDMTc1Ljg4NSAyMDcuNzE5IDAgMTY2Ljc1OCAwIDE2Ni43NTh2MzMzLjIzN3MxNzguNjM1IDQxLjA0NyAxNzguNjM1LTI4LjY2MmMwLTIyLjQ3My00MC00MC4xMDctNDAtODEuNDcxIDAtMzcuNDU2IDI5LjI1LTU2LjM0NiA2My41NzctNTYuMzQ2IDMzLjY3MyAwIDYxLjc4OCAxOS4yMTYgNjEuNzg4IDU0LjcxNyAwIDM5LjczNS0zNi4yODggNTAuMTU4LTM2LjI4OCA4NS45ODUgMCA2MC44MDMgMTI5LjY3NSAyNS43MyAxODEuMjMgMjUuNzMgMCAwLTM0LjcyNS0xMjAuMTAxIDI1LjgyNy0xMjAuMTAxIDM1Ljk2MiAwIDQ2LjQyMyAzNi4xNTIgODYuMzA4IDM2LjE1MkM1NTYuNzEyIDQxNiA1NzYgMzg3Ljk5IDU3NiAzNTQuNDQzYzAtMzQuMTk5LTE4Ljk2Mi02NS43OTItNTYuNTU4LTY1Ljc5MnpcIl1cbn07XG52YXIgZmFRcmNvZGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncXJjb2RlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDI5XCIsIFwiTTAgMjI0aDE5MlYzMkgwdjE5MnpNNjQgOTZoNjR2NjRINjRWOTZ6bTE5Mi02NHYxOTJoMTkyVjMySDI1NnptMTI4IDEyOGgtNjRWOTZoNjR2NjR6TTAgNDgwaDE5MlYyODhIMHYxOTJ6bTY0LTEyOGg2NHY2NEg2NHYtNjR6bTM1Mi02NGgzMnYxMjhoLTk2di0zMmgtMzJ2OTZoLTY0VjI4OGg5NnYzMmg2NHYtMzJ6bTAgMTYwaDMydjMyaC0zMnYtMzJ6bS02NCAwaDMydjMyaC0zMnYtMzJ6XCJdXG59O1xudmFyIGZhUXVlc3Rpb24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncXVlc3Rpb24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxMjhcIiwgXCJNMjAyLjAyMSAwQzEyMi4yMDIgMCA3MC41MDMgMzIuNzAzIDI5LjkxNCA5MS4wMjZjLTcuMzYzIDEwLjU4LTUuMDkzIDI1LjA4NiA1LjE3OCAzMi44NzRsNDMuMTM4IDMyLjcwOWMxMC4zNzMgNy44NjUgMjUuMTMyIDYuMDI2IDMzLjI1My00LjE0OCAyNS4wNDktMzEuMzgxIDQzLjYzLTQ5LjQ0OSA4Mi43NTctNDkuNDQ5IDMwLjc2NCAwIDY4LjgxNiAxOS43OTkgNjguODE2IDQ5LjYzMSAwIDIyLjU1Mi0xOC42MTcgMzQuMTM0LTQ4Ljk5MyA1MS4xNjQtMzUuNDIzIDE5Ljg2LTgyLjI5OSA0NC41NzYtODIuMjk5IDEwNi40MDVWMzIwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg3Mi40NzFjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di01Ljc3M2MwLTQyLjg2IDEyNS4yNjgtNDQuNjQ1IDEyNS4yNjgtMTYwLjYyN0MzNzcuNTA0IDY2LjI1NiAyODYuOTAyIDAgMjAyLjAyMSAwek0xOTIgMzczLjQ1OWMtMzguMTk2IDAtNjkuMjcxIDMxLjA3NS02OS4yNzEgNjkuMjcxIDAgMzguMTk1IDMxLjA3NSA2OS4yNyA2OS4yNzEgNjkuMjdzNjkuMjcxLTMxLjA3NSA2OS4yNzEtNjkuMjcxLTMxLjA3NS02OS4yNy02OS4yNzEtNjkuMjd6XCJdXG59O1xudmFyIGZhUXVlc3Rpb25DaXJjbGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncXVlc3Rpb24tY2lyY2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDU5XCIsIFwiTTUwNCAyNTZjMCAxMzYuOTk3LTExMS4wNDMgMjQ4LTI0OCAyNDhTOCAzOTIuOTk3IDggMjU2QzggMTE5LjA4MyAxMTkuMDQzIDggMjU2IDhzMjQ4IDExMS4wODMgMjQ4IDI0OHpNMjYyLjY1NSA5MGMtNTQuNDk3IDAtODkuMjU1IDIyLjk1Ny0xMTYuNTQ5IDYzLjc1OC0zLjUzNiA1LjI4Ni0yLjM1MyAxMi40MTUgMi43MTUgMTYuMjU4bDM0LjY5OSAyNi4zMWM1LjIwNSAzLjk0NyAxMi42MjEgMy4wMDggMTYuNjY1LTIuMTIyIDE3Ljg2NC0yMi42NTggMzAuMTEzLTM1Ljc5NyA1Ny4zMDMtMzUuNzk3IDIwLjQyOSAwIDQ1LjY5OCAxMy4xNDggNDUuNjk4IDMyLjk1OCAwIDE0Ljk3Ni0xMi4zNjMgMjIuNjY3LTMyLjUzNCAzMy45NzZDMjQ3LjEyOCAyMzguNTI4IDIxNiAyNTQuOTQxIDIxNiAyOTZ2NGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDU2YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTEuMzMzYzAtMjguNDYyIDgzLjE4Ni0yOS42NDcgODMuMTg2LTEwNi42NjcgMC01OC4wMDItNjAuMTY1LTEwMi0xMTYuNTMxLTEwMnpNMjU2IDMzOGMtMjUuMzY1IDAtNDYgMjAuNjM1LTQ2IDQ2IDAgMjUuMzY0IDIwLjYzNSA0NiA0NiA0NnM0Ni0yMC42MzYgNDYtNDZjMC0yNS4zNjUtMjAuNjM1LTQ2LTQ2LTQ2elwiXVxufTtcbnZhciBmYVF1aWRkaXRjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdxdWlkZGl0Y2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0NThcIiwgXCJNMjU2LjUgMjE2LjhMMzQzLjIgMzI2cy0xNi42IDEwMi40LTc2LjYgMTUwLjFDMjA2LjcgNTIzLjggMCA1MTAuMiAwIDUxMC4yczMuOC0yMy4xIDExLTU1LjRsOTQuNi0xMTIuMmM0LTQuNy0uOS0xMS42LTYuNi05LjVsLTYwLjQgMjIuMWMxNC40LTQxLjcgMzIuNy04MCA1NC42LTk3LjUgNTkuOS00Ny44IDE2My4zLTQwLjkgMTYzLjMtNDAuOXptMjM4IDEzNWMtNDQgMC03OS44IDM1LjgtNzkuOCA3OS45IDAgNDQuMSAzNS43IDc5LjkgNzkuOCA3OS45IDQ0LjEgMCA3OS44LTM1LjggNzkuOC03OS45IDAtNDQuMi0zNS44LTc5LjktNzkuOC03OS45ek02MzYuNSAzMUw2MTYuNyA2Yy01LjUtNi45LTE1LjUtOC0yMi40LTIuNkwzNjEuOCAxODEuM2wtMzQuMS00M2MtNS4xLTYuNC0xNS4xLTUuMi0xOC42IDIuMmwtMjUuMyA1NC42IDg2LjcgMTA5LjIgNTguOC0xMi40YzgtMS43IDExLjQtMTEuMiA2LjMtMTcuNmwtMzQuMS00Mi45TDYzNCA1My41YzYuOS01LjUgOC0xNS42IDIuNS0yMi41elwiXVxufTtcbnZhciBmYVF1b3RlTGVmdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdxdW90ZS1sZWZ0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTBkXCIsIFwiTTQ2NCAyNTZoLTgwdi02NGMwLTM1LjMgMjguNy02NCA2NC02NGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0aC04Yy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHYyNDBjMCAyNi41IDIxLjUgNDggNDggNDhoMTI4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjMwNGMwLTI2LjUtMjEuNS00OC00OC00OHptLTI4OCAwSDk2di02NGMwLTM1LjMgMjguNy02NCA2NC02NGg4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjU2YzAtMTMuMy0xMC43LTI0LTI0LTI0aC04QzcxLjYgMzIgMCAxMDMuNiAwIDE5MnYyNDBjMCAyNi41IDIxLjUgNDggNDggNDhoMTI4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjMwNGMwLTI2LjUtMjEuNS00OC00OC00OHpcIl1cbn07XG52YXIgZmFRdW90ZVJpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3F1b3RlLXJpZ2h0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTBlXCIsIFwiTTQ2NCAzMkgzMzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djEyOGMwIDI2LjUgMjEuNSA0OCA0OCA0OGg4MHY2NGMwIDM1LjMtMjguNyA2NC02NCA2NGgtOGMtMTMuMyAwLTI0IDEwLjctMjQgMjR2NDhjMCAxMy4zIDEwLjcgMjQgMjQgMjRoOGM4OC40IDAgMTYwLTcxLjYgMTYwLTE2MFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHptLTI4OCAwSDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MTI4YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDgwdjY0YzAgMzUuMy0yOC43IDY0LTY0IDY0aC04Yy0xMy4zIDAtMjQgMTAuNy0yNCAyNHY0OGMwIDEzLjMgMTAuNyAyNCAyNCAyNGg4Yzg4LjQgMCAxNjAtNzEuNiAxNjAtMTYwVjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwiXVxufTtcbnZhciBmYVF1cmFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3F1cmFuJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNjg3XCIsIFwiTTQ0OCAzNTguNFYyNS42YzAtMTYtOS42LTI1LjYtMjUuNi0yNS42SDk2QzQxLjYgMCAwIDQxLjYgMCA5NnYzMjBjMCA1NC40IDQxLjYgOTYgOTYgOTZoMzI2LjRjMTIuOCAwIDI1LjYtOS42IDI1LjYtMjUuNnYtMTZjMC02LjQtMy4yLTEyLjgtOS42LTE5LjItMy4yLTE2LTMuMi02MC44IDAtNzMuNiA2LjQtMy4yIDkuNi05LjYgOS42LTE5LjJ6TTMwMS4wOCAxNDUuODJjLjYtMS4yMSAxLjc2LTEuODIgMi45Mi0xLjgyczIuMzIuNjEgMi45MiAxLjgybDExLjE4IDIyLjY1IDI1IDMuNjNjMi42Ny4zOSAzLjc0IDMuNjcgMS44MSA1LjU2bC0xOC4wOSAxNy42MyA0LjI3IDI0Ljg5Yy4zNiAyLjExLTEuMzEgMy44Mi0zLjIxIDMuODItLjUgMC0xLjAyLS4xMi0xLjUyLS4zOEwzMDQgMjExLjg3bC0yMi4zNiAxMS43NWMtLjUuMjYtMS4wMi4zOC0xLjUyLjM4LTEuOSAwLTMuNTctMS43MS0zLjIxLTMuODJsNC4yNy0yNC44OS0xOC4wOS0xNy42M2MtMS45NC0xLjg5LS44Ny01LjE3IDEuODEtNS41NmwyNC45OS0zLjYzIDExLjE5LTIyLjY1em0tNTcuODktNjkuMDFjMTMuNjcgMCAyNy4yNiAyLjQ5IDQwLjM4IDcuNDFhNi43NzUgNi43NzUgMCAxIDEtMi4zOCAxMy4xMmMtLjY3IDAtMy4wOS0uMjEtNC4xMy0uMjEtNTIuMzEgMC05NC44NiA0Mi41NS05NC44NiA5NC44NiAwIDUyLjMgNDIuNTUgOTQuODYgOTQuODYgOTQuODYgMS4wMyAwIDMuNDgtLjIxIDQuMTMtLjIxIDMuOTMgMCA2LjggMy4xNCA2LjggNi43OCAwIDIuOTgtMS45NCA1LjUxLTQuNjIgNi40Mi0xMy4wNyA0Ljg3LTI2LjU5IDcuMzQtNDAuMTkgNy4zNEMxNzkuNjcgMzA3LjE5IDEyOCAyNTUuNTEgMTI4IDE5MmMwLTYzLjUyIDUxLjY3LTExNS4xOSAxMTUuMTktMTE1LjE5ek0zODAuOCA0NDhIOTZjLTE5LjIgMC0zMi0xMi44LTMyLTMyczE2LTMyIDMyLTMyaDI4NC44djY0elwiXVxufTtcbnZhciBmYVJhZGlhdGlvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyYWRpYXRpb24nLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY3YjlcIiwgXCJNMzI4LjIgMjU1LjhoMTUxLjZjOS4xIDAgMTYuOC03LjcgMTYuMi0xNi44LTUuMS03NS44LTQ0LjQtMTQyLjItMTAyLjUtMTg0LjItNy40LTUuMy0xNy45LTIuOS0yMi43IDQuOEwyOTAuNCAxODhjMjIuNiAxNC4zIDM3LjggMzkuMiAzNy44IDY3Ljh6bS0zNy44IDY3LjdjLTEyLjMgNy43LTI2LjggMTIuNC00Mi40IDEyLjQtMTUuNiAwLTMwLTQuNy00Mi40LTEyLjRMMTI1LjIgNDUyYy00LjggNy43LTIuNCAxOC4xIDUuNiAyMi40QzE2NS43IDQ5My4yIDIwNS42IDUwNCAyNDggNTA0czgyLjMtMTAuOCAxMTcuMi0yOS42YzgtNC4zIDEwLjQtMTQuOCA1LjYtMjIuNGwtODAuNC0xMjguNXpNMjQ4IDMwMy44YzI2LjUgMCA0OC0yMS41IDQ4LTQ4cy0yMS41LTQ4LTQ4LTQ4LTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptLTIzMS44LTQ4aDE1MS42YzAtMjguNiAxNS4yLTUzLjUgMzcuOC02Ny43TDEyNS4yIDU5LjdjLTQuOC03LjctMTUuMy0xMC4yLTIyLjctNC44QzQ0LjQgOTYuOSA1LjEgMTYzLjMgMCAyMzkuMWMtLjYgOSA3LjEgMTYuNyAxNi4yIDE2Ljd6XCJdXG59O1xudmFyIGZhUmFkaWF0aW9uQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JhZGlhdGlvbi1hbHQnLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY3YmFcIiwgXCJNMzEyIDI1Nmg3OS4xYzkuMiAwIDE2LjktNy43IDE2LTE2LjgtNC42LTQzLjYtMjctODEuOC01OS41LTEwNy44LTcuNi02LjEtMTguOC00LjUtMjQgMy44TDI4MS45IDIwMmMxOCAxMS4yIDMwLjEgMzEuMiAzMC4xIDU0em0tOTcuOCA1NC4xTDE3Mi40IDM3N2MtNC45IDcuOC0yLjQgMTguNCA1LjggMjIuNSAyMS4xIDEwLjQgNDQuNyAxNi41IDY5LjggMTYuNXM0OC43LTYuMSA2OS45LTE2LjVjOC4yLTQuMSAxMC42LTE0LjcgNS44LTIyLjVsLTQxLjgtNjYuOWMtOS44IDYuMi0yMS40IDkuOS0zMy44IDkuOXMtMjQuMS0zLjctMzMuOS05Ljl6TTEwNC45IDI1NkgxODRjMC0yMi44IDEyLjEtNDIuOCAzMC4yLTU0LjFsLTQxLjctNjYuOGMtNS4yLTguMy0xNi40LTkuOS0yNC0zLjgtMzIuNiAyNi01NC45IDY0LjItNTkuNSAxMDcuOC0xLjEgOS4yIDYuNyAxNi45IDE1LjkgMTYuOXpNMjQ4IDUwNGMxMzcgMCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4em0wLTQzMmMxMDEuNSAwIDE4NCA4Mi41IDE4NCAxODRzLTgyLjUgMTg0LTE4NCAxODRTNjQgMzU3LjUgNjQgMjU2IDE0Ni41IDcyIDI0OCA3MnptMCAyMTZjMTcuNyAwIDMyLTE0LjMgMzItMzJzLTE0LjMtMzItMzItMzItMzIgMTQuMy0zMiAzMiAxNC4zIDMyIDMyIDMyelwiXVxufTtcbnZhciBmYVJhaW5ib3cgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmFpbmJvdycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjc1YlwiLCBcIk0yNjguMyAzMi43QzExNS40IDQyLjkgMCAxNzYuOSAwIDMzMC4yVjQ2NGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjMyMEM2NCAxODYuOCAxODAuOSA4MC4zIDMxNy41IDk3LjkgNDMwLjQgMTEyLjQgNTEyIDIxNCA1MTIgMzI3LjhWNDY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwYzAtMTY1LjMtMTQwLTI5OC42LTMwNy43LTI4Ny4zem0tNS42IDk2LjlDMTY2IDE0MiA5NiAyMjkuMSA5NiAzMjYuN1Y0NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC03NC44IDY0LjUtMTM0LjggMTQwLjgtMTI3LjQgNjYuNSA2LjUgMTE1LjIgNjYuMiAxMTUuMiAxMzMuMVY0NjRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBjMC0xMTQuMi0xMDAuMi0yMDUuNC0yMTcuMy0xOTAuNHptNi4yIDk2LjNjLTQ1LjYgOC45LTc2LjkgNTEuNS03Ni45IDk3LjlWNDY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwYzAtMTcuNiAxNC4zLTMyIDMyLTMyczMyIDE0LjQgMzIgMzJ2MTQ0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZWMzIwYzAtNTkuMi01My44LTEwNi0xMTUuMS05NC4xelwiXVxufTtcbnZhciBmYVJhbmRvbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyYW5kb20nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNzRcIiwgXCJNNTA0Ljk3MSAzNTkuMDI5YzkuMzczIDkuMzczIDkuMzczIDI0LjU2OSAwIDMzLjk0MWwtODAgNzkuOTg0Yy0xNS4wMSAxNS4wMS00MC45NzEgNC40OS00MC45NzEtMTYuOTcxVjQxNmgtNTguNzg1YTEyLjAwNCAxMi4wMDQgMCAwIDEtOC43NzMtMy44MTJsLTcwLjU1Ni03NS41OTYgNTMuMzMzLTU3LjE0M0wzNTIgMzM2aDMydi0zOS45ODFjMC0yMS40MzggMjUuOTQzLTMxLjk5OCA0MC45NzEtMTYuOTcxbDgwIDc5Ljk4MXpNMTIgMTc2aDg0bDUyLjc4MSA1Ni41NTEgNTMuMzMzLTU3LjE0My03MC41NTYtNzUuNTk2QTExLjk5OSAxMS45OTkgMCAwIDAgMTIyLjc4NSA5NkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY1NmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyem0zNzIgMHYzOS45ODRjMCAyMS40NiAyNS45NjEgMzEuOTggNDAuOTcxIDE2Ljk3MWw4MC03OS45ODRjOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY5IDAtMzMuOTQxbC04MC03OS45ODFDNDA5Ljk0MyAyNC4wMjEgMzg0IDM0LjU4MiAzODQgNTYuMDE5Vjk2aC01OC43ODVhMTIuMDA0IDEyLjAwNCAwIDAgMC04Ljc3MyAzLjgxMkw5NiAzMzZIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTZjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmgxMTAuNzg1YzMuMzI2IDAgNi41MDMtMS4zODEgOC43NzMtMy44MTJMMzUyIDE3NmgzMnpcIl1cbn07XG52YXIgZmFSZWNlaXB0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlY2VpcHQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY1NDNcIiwgXCJNMzU4LjQgMy4yTDMyMCA0OCAyNjUuNiAzLjJhMTUuOSAxNS45IDAgMCAwLTE5LjIgMEwxOTIgNDggMTM3LjYgMy4yYTE1LjkgMTUuOSAwIDAgMC0xOS4yIDBMNjQgNDggMjUuNiAzLjJDMTUtNC43IDAgMi44IDAgMTZ2NDgwYzAgMTMuMiAxNSAyMC43IDI1LjYgMTIuOEw2NCA0NjRsNTQuNCA0NC44YTE1LjkgMTUuOSAwIDAgMCAxOS4yIDBMMTkyIDQ2NGw1NC40IDQ0LjhhMTUuOSAxNS45IDAgMCAwIDE5LjIgMEwzMjAgNDY0bDM4LjQgNDQuOGMxMC41IDcuOSAyNS42LjQgMjUuNi0xMi44VjE2YzAtMTMuMi0xNS0yMC43LTI1LjYtMTIuOHpNMzIwIDM2MGMwIDQuNC0zLjYgOC04IDhINzJjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDI0MGM0LjQgMCA4IDMuNiA4IDh2MTZ6bTAtOTZjMCA0LjQtMy42IDgtOCA4SDcyYy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgyNDBjNC40IDAgOCAzLjYgOCA4djE2em0wLTk2YzAgNC40LTMuNiA4LTggOEg3MmMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMjQwYzQuNCAwIDggMy42IDggOHYxNnpcIl1cbn07XG52YXIgZmFSZWNvcmRWaW55bCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZWNvcmQtdmlueWwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4ZDlcIiwgXCJNMjU2IDE1MmExMDQgMTA0IDAgMSAwIDEwNCAxMDQgMTA0IDEwNCAwIDAgMC0xMDQtMTA0em0wIDEyOGEyNCAyNCAwIDEgMSAyNC0yNCAyNCAyNCAwIDAgMS0yNCAyNHptMC0yNzJDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptMCAzNzZhMTI4IDEyOCAwIDEgMSAxMjgtMTI4IDEyOCAxMjggMCAwIDEtMTI4IDEyOHpcIl1cbn07XG52YXIgZmFSZWN5Y2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlY3ljbGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxYjhcIiwgXCJNMTg0LjU2MSAyNjEuOTAzYzMuMjMyIDEzLjk5Ny0xMi4xMjMgMjQuNjM1LTI0LjA2OCAxNy4xNjhsLTQwLjczNi0yNS40NTUtNTAuODY3IDgxLjQwMkM1NS42MDYgMzU2LjI3MyA3MC45NiAzODQgOTYuMDEyIDM4NEgxNDhjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY0MGMwIDYuNjI3LTUuMzczIDEyLTEyIDEySDk2LjExNWMtNzUuMzM0IDAtMTIxLjMwMi04My4wNDgtODEuNDA4LTE0Ni44OGw1MC44MjItODEuMzg4LTQwLjcyNS0yNS40NDhjLTEyLjA4MS03LjU0Ny04Ljk2Ni0yNS45NjEgNC44NzktMjkuMTU4bDExMC4yMzctMjUuNDVjOC42MTEtMS45ODggMTcuMjAxIDMuMzgxIDE5LjE4OSAxMS45OWwyNS40NTIgMTEwLjIzN3ptOTguNTYxLTE4Mi45MTVsNDEuMjg5IDY2LjA3Ni00MC43NCAyNS40NTdjLTEyLjA1MSA3LjUyOC05IDI1Ljk1MyA0Ljg3OSAyOS4xNThsMTEwLjIzNyAyNS40NWM4LjY3MiAxLjk5OSAxNy4yMTUtMy40MzggMTkuMTg5LTExLjk5bDI1LjQ1LTExMC4yMzdjMy4xOTctMTMuODQ0LTExLjk5LTI0LjcxOS0yNC4wNjgtMTcuMTY4bC00MC42ODcgMjUuNDI0LTQxLjI2My02Ni4wODJjLTM3LjUyMS02MC4wMzMtMTI1LjIwOS02MC4xNzEtMTYyLjgxNiAwbC0xNy45NjMgMjguNzY2Yy0zLjUxIDUuNjItMS44IDEzLjAyMSAzLjgyIDE2LjUzM2wzMy45MTkgMjEuMTk1YzUuNjIgMy41MTIgMTMuMDI0IDEuODAzIDE2LjUzNi0zLjgxN2wxNy45NjEtMjguNzQzYzEyLjcxMi0yMC4zNDEgNDEuOTczLTE5LjY3NiA1NC4yNTctLjAyMnpNNDk3LjI4OCAzMDEuMTJsLTI3LjUxNS00NC4wNjVjLTMuNTExLTUuNjIzLTEwLjkxNi03LjMzNC0xNi41MzgtMy44MjFsLTMzLjg2MSAyMS4xNTljLTUuNjIgMy41MTItNy4zMyAxMC45MTUtMy44MTggMTYuNTM2bDI3LjU2NCA0NC4xMTJjMTMuMjU3IDIxLjIxMS0yLjA1NyA0OC45Ni0yNy4xMzYgNDguOTZIMzIwVjMzNi4wMmMwLTE0LjIxMy0xNy4yNDItMjEuMzgzLTI3LjMxMy0xMS4zMTNsLTgwIDc5Ljk4MWMtNi4yNDkgNi4yNDgtNi4yNDkgMTYuMzc5IDAgMjIuNjI3bDgwIDc5Ljk4OUMzMDIuNjg5IDUxNy4zMDggMzIwIDUxMC4zIDMyMCA0OTUuOTg5VjQ0OGg5NS44OGM3NS4yNzQgMCAxMjEuMzM1LTgyLjk5NyA4MS40MDgtMTQ2Ljg4elwiXVxufTtcbnZhciBmYVJlZG8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVkbycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAxZVwiLCBcIk01MDAuMzMgMGgtNDcuNDFhMTIgMTIgMCAwIDAtMTIgMTIuNTdsNCA4Mi43NkEyNDcuNDIgMjQ3LjQyIDAgMCAwIDI1NiA4QzExOS4zNCA4IDcuOSAxMTkuNTMgOCAyNTYuMTkgOC4xIDM5My4wNyAxMTkuMSA1MDQgMjU2IDUwNGEyNDcuMSAyNDcuMSAwIDAgMCAxNjYuMTgtNjMuOTEgMTIgMTIgMCAwIDAgLjQ4LTE3LjQzbC0zNC0zNGExMiAxMiAwIDAgMC0xNi4zOC0uNTVBMTc2IDE3NiAwIDEgMSA0MDIuMSAxNTcuOGwtMTAxLjUzLTQuODdhMTIgMTIgMCAwIDAtMTIuNTcgMTJ2NDcuNDFhMTIgMTIgMCAwIDAgMTIgMTJoMjAwLjMzYTEyIDEyIDAgMCAwIDEyLTEyVjEyYTEyIDEyIDAgMCAwLTEyLTEyelwiXVxufTtcbnZhciBmYVJlZG9BbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVkby1hbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyZjlcIiwgXCJNMjU2LjQ1NSA4YzY2LjI2OS4xMTkgMTI2LjQzNyAyNi4yMzMgMTcwLjg1OSA2OC42ODVsMzUuNzE1LTM1LjcxNUM0NzguMTQ5IDI1Ljg1MSA1MDQgMzYuNTU5IDUwNCA1Ny45NDFWMTkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgzNDUuOTQxYy0yMS4zODIgMC0zMi4wOS0yNS44NTEtMTYuOTcxLTQwLjk3MWw0MS43NS00MS43NWMtMzAuODY0LTI4Ljg5OS03MC44MDEtNDQuOTA3LTExMy4yMy00NS4yNzMtOTIuMzk4LS43OTgtMTcwLjI4MyA3My45NzctMTY5LjQ4NCAxNjkuNDQyQzg4Ljc2NCAzNDguMDA5IDE2Mi4xODQgNDI0IDI1NiA0MjRjNDEuMTI3IDAgNzkuOTk3LTE0LjY3OCAxMTAuNjI5LTQxLjU1NiA0Ljc0My00LjE2MSAxMS45MDYtMy45MDggMTYuMzY4LjU1M2wzOS42NjIgMzkuNjYyYzQuODcyIDQuODcyIDQuNjMxIDEyLjgxNS0uNDgyIDE3LjQzM0MzNzguMjAyIDQ3OS44MTMgMzE5LjkyNiA1MDQgMjU2IDUwNCAxMTkuMDM0IDUwNCA4LjAwMSAzOTIuOTY3IDggMjU2LjAwMiA3Ljk5OSAxMTkuMTkzIDExOS42NDYgNy43NTUgMjU2LjQ1NSA4elwiXVxufTtcbnZhciBmYVJlZ2lzdGVyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVnaXN0ZXJlZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI1ZFwiLCBcIk0yODUuMzYzIDIwNy40NzVjMCAxOC42LTkuODMxIDI4LjQzMS0yOC40MzEgMjguNDMxaC0yOS44NzZ2LTU2LjE0aDIzLjM3OGMyOC42NjggMCAzNC45MjkgOC43NzMgMzQuOTI5IDI3LjcwOXpNNTA0IDI1NmMwIDEzNi45NjctMTExLjAzMyAyNDgtMjQ4IDI0OFM4IDM5Mi45NjcgOCAyNTYgMTE5LjAzMyA4IDI1NiA4czI0OCAxMTEuMDMzIDI0OCAyNDh6TTM2My40MTEgMzYwLjQxNGMtNDYuNzI5LTg0LjgyNS00My4yOTktNzguNjM2LTQ0LjcwMi04MC45OCAyMy40MzItMTUuMTcyIDM3Ljk0NS00Mi45NzkgMzcuOTQ1LTc0LjQ4NiAwLTU0LjI0NC0zMS41LTg5LjI1Mi0xMDUuNDk4LTg5LjI1MmgtNzAuNjY3Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRWMzcyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgyMi41NjdjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di03MS42NjNoMjUuNTU2bDQ0LjEyOSA4Mi45MzdhMjQuMDAxIDI0LjAwMSAwIDAgMCAyMS4xODggMTIuNzI3aDI0LjQ2NGMxOC4yNjEtLjAwMSAyOS44MjktMTkuNTkxIDIxLjAxOC0zNS41ODd6XCJdXG59O1xudmFyIGZhUmVtb3ZlRm9ybWF0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlbW92ZS1mb3JtYXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY4N2RcIiwgXCJNMzM2IDQxNmgtMTEuMTdsOS4yNi0yNy43N0wyNjcgMzM2LjQgMjQwLjQ5IDQxNkgyMDhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMjk3LjgyIDQyLjFMMzc3IDI1OS41OSA0MjYuMTcgMTEySDU0NHYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNkgxNzZhMTYgMTYgMCAwIDAtMTYgMTZ2NDMuOUw0NS40NiAzLjM4QTE2IDE2IDAgMCAwIDIzIDYuMTlMMy4zNyAzMS40NmExNiAxNiAwIDAgMCAyLjgxIDIyLjQ1bDU4OC4zNiA0NTQuNzJhMTYgMTYgMCAwIDAgMjIuNDYtMi44MWwxOS42NC0yNS4yN2ExNiAxNiAwIDAgMC0yLjgyLTIyLjQ1ek0zMDkuOTEgMjA3Ljc2TDIyNCAxNDEuMzZWMTEyaDExNy44M3pcIl1cbn07XG52YXIgZmFSZXBseSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZXBseScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjNlNVwiLCBcIk04LjMwOSAxODkuODM2TDE4NC4zMTMgMzcuODUxQzE5OS43MTkgMjQuNTQ2IDIyNCAzNS4zNDcgMjI0IDU2LjAxNXY4MC4wNTNjMTYwLjYyOSAxLjgzOSAyODggMzQuMDMyIDI4OCAxODYuMjU4IDAgNjEuNDQxLTM5LjU4MSAxMjIuMzA5LTgzLjMzMyAxNTQuMTMyLTEzLjY1MyA5LjkzMS0zMy4xMTEtMi41MzMtMjguMDc3LTE4LjYzMSA0NS4zNDQtMTQ1LjAxMi0yMS41MDctMTgzLjUxLTE3Ni41OS0xODUuNzQyVjM2MGMwIDIwLjctMjQuMyAzMS40NTMtMzkuNjg3IDE4LjE2NGwtMTc2LjAwNC0xNTJjLTExLjA3MS05LjU2Mi0xMS4wODYtMjYuNzUzIDAtMzYuMzI4elwiXVxufTtcbnZhciBmYVJlcGx5QWxsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JlcGx5LWFsbCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjEyMlwiLCBcIk0xMzYuMzA5IDE4OS44MzZMMzEyLjMxMyAzNy44NTFDMzI3LjcyIDI0LjU0NiAzNTIgMzUuMzQ4IDM1MiA1Ni4wMTV2ODIuNzYzYzEyOS4xODIgMTAuMjMxIDIyNCA1Mi4yMTIgMjI0IDE4My41NDggMCA2MS40NDEtMzkuNTgyIDEyMi4zMDktODMuMzMzIDE1NC4xMzItMTMuNjUzIDkuOTMxLTMzLjExMS0yLjUzMy0yOC4wNzctMTguNjMxIDM4LjUxMi0xMjMuMTYyLTMuOTIyLTE2OS40ODItMTEyLjU5LTE4Mi4wMTV2ODQuMTc1YzAgMjAuNzAxLTI0LjMgMzEuNDUzLTM5LjY4NyAxOC4xNjRMMTM2LjMwOSAyMjYuMTY0Yy0xMS4wNzEtOS41NjEtMTEuMDg2LTI2Ljc1MyAwLTM2LjMyOHptLTEyOCAzNi4zMjhMMTg0LjMxMyAzNzguMTVDMTk5LjcgMzkxLjQzOSAyMjQgMzgwLjY4NyAyMjQgMzU5Ljk4NnYtMTUuODE4bC0xMDguNjA2LTkzLjc4NUE1NS45NiA1NS45NiAwIDAgMSA5NiAyMDcuOTk4YTU1Ljk1MyA1NS45NTMgMCAwIDEgMTkuMzkzLTQyLjM4TDIyNCA3MS44MzJWNTYuMDE1YzAtMjAuNjY3LTI0LjI4LTMxLjQ2OS0zOS42ODctMTguMTY0TDguMzA5IDE4OS44MzZjLTExLjA4NiA5LjU3NS0xMS4wNzEgMjYuNzY3IDAgMzYuMzI4elwiXVxufTtcbnZhciBmYVJlcHVibGljYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmVwdWJsaWNhbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjc1ZVwiLCBcIk01NDQgMTkyYzAtODguNC03MS42LTE2MC0xNjAtMTYwSDE2MEM3MS42IDMyIDAgMTAzLjYgMCAxOTJ2NjRoNTQ0di02NHptLTM2Ny43LTIxLjZsLTE5LjggMTkuMyA0LjcgMjcuM2MuOCA0LjktNC4zIDguNi04LjcgNi4zTDEyOCAyMTAuNGwtMjQuNSAxMi45Yy00LjMgMi4zLTkuNS0xLjQtOC43LTYuM2w0LjctMjcuMy0xOS44LTE5LjNjLTMuNi0zLjUtMS42LTkuNSAzLjMtMTAuMmwyNy40LTQgMTIuMi0yNC44YzIuMi00LjUgOC42LTQuNCAxMC43IDBsMTIuMiAyNC44IDI3LjQgNGM1IC43IDYuOSA2LjcgMy40IDEwLjJ6bTE0NCAwbC0xOS44IDE5LjMgNC43IDI3LjNjLjggNC45LTQuMyA4LjYtOC43IDYuM0wyNzIgMjEwLjRsLTI0LjUgMTIuOWMtNC4zIDIuMy05LjUtMS40LTguNy02LjNsNC43LTI3LjMtMTkuOC0xOS4zYy0zLjYtMy41LTEuNi05LjUgMy4zLTEwLjJsMjcuNC00IDEyLjItMjQuOGMyLjItNC41IDguNi00LjQgMTAuNyAwbDEyLjIgMjQuOCAyNy40IDRjNSAuNyA2LjkgNi43IDMuNCAxMC4yem0xNDQgMGwtMTkuOCAxOS4zIDQuNyAyNy4zYy44IDQuOS00LjMgOC42LTguNyA2LjNMNDE2IDIxMC40bC0yNC41IDEyLjljLTQuMyAyLjMtOS41LTEuNC04LjctNi4zbDQuNy0yNy4zLTE5LjgtMTkuM2MtMy42LTMuNS0xLjYtOS41IDMuMy0xMC4ybDI3LjQtNCAxMi4yLTI0LjhjMi4yLTQuNSA4LjYtNC40IDEwLjcgMGwxMi4yIDI0LjggMjcuNCA0YzUgLjcgNi45IDYuNyAzLjQgMTAuMnpNNjI0IDMyMGgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY2NGMwIDguOC03LjIgMTYtMTYgMTZzLTE2LTcuMi0xNi0xNlYyODhIMHYxNzZjMCA4LjggNy4yIDE2IDE2IDE2aDk2YzguOCAwIDE2LTcuMiAxNi0xNnYtODBoMTkydjgwYzAgOC44IDcuMiAxNiAxNiAxNmg5NmM4LjggMCAxNi03LjIgMTYtMTZWMzUyaDMydjQzLjNjMCA0MS44IDMwIDgwLjEgNzEuNiA4NC4zIDQ3LjggNC45IDg4LjQtMzIuNyA4OC40LTc5LjZ2LTY0YzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFSZXN0cm9vbSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyZXN0cm9vbScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjdiZFwiLCBcIk0xMjggMTI4YzM1LjMgMCA2NC0yOC43IDY0LTY0UzE2My4zIDAgMTI4IDAgNjQgMjguNyA2NCA2NHMyOC43IDY0IDY0IDY0em0zODQgMGMzNS4zIDAgNjQtMjguNyA2NC02NFM1NDcuMyAwIDUxMiAwcy02NCAyOC43LTY0IDY0IDI4LjcgNjQgNjQgNjR6bTEyNy4zIDIyNi41bC00NS42LTE4NS44Yy0zLjMtMTMuNS0xNS41LTIzLTI5LjgtMjQuMi0xNSA5LjctMzIuOCAxNS41LTUyIDE1LjUtMTkuMiAwLTM3LTUuOC01Mi0xNS41LTE0LjMgMS4yLTI2LjUgMTAuNy0yOS44IDI0LjJsLTQ1LjYgMTg1LjhDMzgxIDM2OS42IDM5MyAzODQgNDA5LjIgMzg0SDQ2NHYxMDRjMCAxMy4zIDEwLjcgMjQgMjQgMjRoNDhjMTMuMyAwIDI0LTEwLjcgMjQtMjRWMzg0aDU0LjhjMTYuMiAwIDI4LjItMTQuNCAyNC41LTI5LjV6TTMzNiAwaC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djQ4MGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjE2YzAtOC44LTcuMi0xNi0xNi0xNnpNMTgwLjEgMTQ0LjRjLTE1IDkuOC0zMi45IDE1LjYtNTIuMSAxNS42LTE5LjIgMC0zNy4xLTUuOC01Mi4xLTE1LjZDNTEuMyAxNDYuNSAzMiAxNjYuOSAzMiAxOTJ2MTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDh2MTM2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDgwYzEzLjMgMCAyNC0xMC43IDI0LTI0VjM1Mmg4YzEzLjMgMCAyNC0xMC43IDI0LTI0VjE5MmMwLTI1LjEtMTkuMy00NS41LTQzLjktNDcuNnpcIl1cbn07XG52YXIgZmFSZXR3ZWV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JldHdlZXQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYwNzlcIiwgXCJNNjI5LjY1NyAzNDMuNTk4TDUyOC45NzEgNDQ0LjI4NGMtOS4zNzMgOS4zNzItMjQuNTY4IDkuMzcyLTMzLjk0MSAwTDM5NC4zNDMgMzQzLjU5OGMtOS4zNzMtOS4zNzMtOS4zNzMtMjQuNTY5IDAtMzMuOTQxbDEwLjgyMy0xMC44MjNjOS41NjItOS41NjIgMjUuMTMzLTkuMzQgMzQuNDE5LjQ5Mkw0ODAgMzQyLjExOFYxNjBIMjkyLjQ1MWEyNC4wMDUgMjQuMDA1IDAgMCAxLTE2Ljk3MS03LjAyOWwtMTYtMTZDMjQ0LjM2MSAxMjEuODUxIDI1NS4wNjkgOTYgMjc2LjQ1MSA5Nkg1MjBjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djIyMi4xMThsNDAuNDE2LTQyLjc5MmM5LjI4NS05LjgzMSAyNC44NTYtMTAuMDU0IDM0LjQxOS0uNDkybDEwLjgyMyAxMC44MjNjOS4zNzIgOS4zNzIgOS4zNzIgMjQuNTY5LS4wMDEgMzMuOTQxem0tMjY1LjEzOCAxNS40MzFBMjMuOTk5IDIzLjk5OSAwIDAgMCAzNDcuNTQ4IDM1MkgxNjBWMTY5Ljg4MWw0MC40MTYgNDIuNzkyYzkuMjg2IDkuODMxIDI0Ljg1NiAxMC4wNTQgMzQuNDE5LjQ5MWwxMC44MjItMTAuODIyYzkuMzczLTkuMzczIDkuMzczLTI0LjU2OSAwLTMzLjk0MUwxNDQuOTcxIDY3LjcxNmMtOS4zNzMtOS4zNzMtMjQuNTY5LTkuMzczLTMzLjk0MSAwTDEwLjM0MyAxNjguNDAyYy05LjM3MyA5LjM3My05LjM3MyAyNC41NjkgMCAzMy45NDFsMTAuODIyIDEwLjgyMmM5LjU2MiA5LjU2MiAyNS4xMzMgOS4zNCAzNC40MTktLjQ5MUw5NiAxNjkuODgxVjM5MmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMjQzLjU0OWMyMS4zODIgMCAzMi4wOS0yNS44NTEgMTYuOTcxLTQwLjk3MWwtMTYuMDAxLTE2elwiXVxufTtcbnZhciBmYVJpYmJvbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyaWJib24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY0ZDZcIiwgXCJNNi4xIDQ0NC4zYy05LjYgMTAuOC03LjUgMjcuNiA0LjUgMzUuN2w2OC44IDI3LjljOS45IDYuNyAyMy4zIDUgMzEuMy0zLjhsOTEuOC0xMDEuOS03OS4yLTg3LjktMTE3LjIgMTMwem00MzUuOCAwcy0yOTItMzI0LjYtMjk1LjQtMzMwLjFjMTUuNC04LjQgNDAuMi0xNy45IDc3LjUtMTcuOXM2Mi4xIDkuNSA3Ny41IDE3LjljLTMuMyA1LjYtNTYgNjQuNi01NiA2NC42bDc5LjEgODcuNyAzNC4yLTM4YzI4LjctMzEuOSAzMy4zLTc4LjYgMTEuNC0xMTUuNWwtNDMuNy03My41Yy00LjMtNy4yLTkuOS0xMy4zLTE2LjgtMTgtNDAuNy0yNy42LTEyNy40LTI5LjctMTcxLjQgMC02LjkgNC43LTEyLjUgMTAuOC0xNi44IDE4bC00My42IDczLjJjLTEuNSAyLjUtMzcuMSA2Mi4yIDExLjUgMTE2TDMzNy41IDUwNGM4IDguOSAyMS40IDEwLjUgMzEuMyAzLjhsNjguOC0yNy45YzExLjktOCAxNC0yNC44IDQuMy0zNS42elwiXVxufTtcbnZhciBmYVJpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncmluZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjcwYlwiLCBcIk0yNTYgNjRDMTEwLjA2IDY0IDAgMTI1LjkxIDAgMjA4djk4LjEzQzAgMzg0LjQ4IDExNC42MiA0NDggMjU2IDQ0OHMyNTYtNjMuNTIgMjU2LTE0MS44N1YyMDhjMC04Mi4wOS0xMTAuMDYtMTQ0LTI1Ni0xNDR6bTAgNjRjMTA2LjA0IDAgMTkyIDM1LjgyIDE5MiA4MCAwIDkuMjYtMy45NyAxOC4xMi0xMC45MSAyNi4zOUMzOTIuMTUgMjA4LjIxIDMyOC4yMyAxOTIgMjU2IDE5MnMtMTM2LjE1IDE2LjIxLTE4MS4wOSA0Mi4zOUM2Ny45NyAyMjYuMTIgNjQgMjE3LjI2IDY0IDIwOGMwLTQ0LjE4IDg1Ljk2LTgwIDE5Mi04MHpNMTIwLjQzIDI2NC42NEMxNTUuMDQgMjQ5LjkzIDIwMS42NCAyNDAgMjU2IDI0MHMxMDAuOTYgOS45MyAxMzUuNTcgMjQuNjRDMzU2Ljg0IDI3OS4wNyAzMDguOTMgMjg4IDI1NiAyODhzLTEwMC44NC04LjkzLTEzNS41Ny0yMy4zNnpcIl1cbn07XG52YXIgZmFSb2FkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYWQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwMThcIiwgXCJNNTczLjE5IDQwMi42N2wtMTM5Ljc5LTMyMEM0MjguNDMgNzEuMjkgNDE3LjYgNjQgNDA1LjY4IDY0aC05Ny41OWwyLjQ1IDIzLjE2Yy41IDQuNzItMy4yMSA4Ljg0LTcuOTYgOC44NGgtMjkuMTZjLTQuNzUgMC04LjQ2LTQuMTItNy45Ni04Ljg0TDI2Ny45MSA2NGgtOTcuNTljLTExLjkzIDAtMjIuNzYgNy4yOS0yNy43MyAxOC42N0wyLjggNDAyLjY3Qy02LjQ1IDQyMy44NiA4LjMxIDQ0OCAzMC41NCA0NDhoMTk2Ljg0bDEwLjMxLTk3LjY4Yy44Ni04LjE0IDcuNzItMTQuMzIgMTUuOTEtMTQuMzJoNjguOGM4LjE5IDAgMTUuMDUgNi4xOCAxNS45MSAxNC4zMkwzNDguNjIgNDQ4aDE5Ni44NGMyMi4yMyAwIDM2Ljk5LTI0LjE0IDI3LjczLTQ1LjMzek0yNjAuNCAxMzUuMTZhOCA4IDAgMCAxIDcuOTYtNy4xNmgzOS4yOWM0LjA5IDAgNy41MyAzLjA5IDcuOTYgNy4xNmw0LjYgNDMuNThjLjc1IDcuMDktNC44MSAxMy4yNi0xMS45MyAxMy4yNmgtNDAuNTRjLTcuMTMgMC0xMi42OC02LjE3LTExLjkzLTEzLjI2bDQuNTktNDMuNTh6TTMxNS42NCAzMDRoLTU1LjI5Yy05LjUgMC0xNi45MS04LjIzLTE1LjkxLTE3LjY4bDUuMDctNDhjLjg2LTguMTQgNy43Mi0xNC4zMiAxNS45MS0xNC4zMmg0NS4xNWM4LjE5IDAgMTUuMDUgNi4xOCAxNS45MSAxNC4zMmw1LjA3IDQ4YzEgOS40NS02LjQxIDE3LjY4LTE1LjkxIDE3LjY4elwiXVxufTtcbnZhciBmYVJvYm90ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3JvYm90JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTQ0XCIsIFwiTTAgMjU2djEyOGMwIDE3LjcgMTQuMyAzMiAzMiAzMmgzMlYyMjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMyek00NjQgOTZIMzUyVjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjY0SDE3NmMtNDQuMiAwLTgwIDM1LjgtODAgODB2MjcyYzAgMzUuMyAyOC43IDY0IDY0IDY0aDMyMGMzNS4zIDAgNjQtMjguNyA2NC02NFYxNzZjMC00NC4yLTM1LjgtODAtODAtODB6TTI1NiA0MTZoLTY0di0zMmg2NHYzMnptLTMyLTEyMGMtMjIuMSAwLTQwLTE3LjktNDAtNDBzMTcuOS00MCA0MC00MCA0MCAxNy45IDQwIDQwLTE3LjkgNDAtNDAgNDB6bTEyOCAxMjBoLTY0di0zMmg2NHYzMnptOTYgMGgtNjR2LTMyaDY0djMyem0tMzItMTIwYy0yMi4xIDAtNDAtMTcuOS00MC00MHMxNy45LTQwIDQwLTQwIDQwIDE3LjkgNDAgNDAtMTcuOSA0MC00MCA0MHptMTkyLTcyaC0zMnYxOTJoMzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjU2YzAtMTcuNy0xNC4zLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYVJvY2tldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb2NrZXQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMzVcIiwgXCJNNTA1LjA1IDE5LjFhMTUuODkgMTUuODkgMCAwIDAtMTIuMi0xMi4yQzQ2MC42NSAwIDQzNS40NiAwIDQxMC4zNiAwYy0xMDMuMiAwLTE2NS4xIDU1LjItMjExLjI5IDEyOEg5NC44N0E0OCA0OCAwIDAgMCA1MiAxNTQuNDlsLTQ5LjQyIDk4LjhBMjQgMjQgMCAwIDAgMjQuMDcgMjg4aDEwMy43N2wtMjIuNDcgMjIuNDdhMzIgMzIgMCAwIDAgMCA0NS4yNWw1MC45IDUwLjkxYTMyIDMyIDAgMCAwIDQ1LjI2IDBMMjI0IDM4NC4xNlY0ODhhMjQgMjQgMCAwIDAgMzQuNyAyMS40OWw5OC43LTQ5LjM5YTQ3LjkxIDQ3LjkxIDAgMCAwIDI2LjUtNDIuOVYzMTIuNzljNzIuNTktNDYuMyAxMjgtMTA4LjQgMTI4LTIxMS4wOS4xLTI1LjIuMS01MC40LTYuODUtODIuNnpNMzg0IDE2OGE0MCA0MCAwIDEgMSA0MC00MCA0MCA0MCAwIDAgMS00MCA0MHpcIl1cbn07XG52YXIgZmFSb3V0ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyb3V0ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjRkN1wiLCBcIk00MTYgMzIwaC05NmMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMmg5NnM5Ni0xMDcgOTYtMTYwLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2YzAgMjUuNSAyMi4yIDYzLjQgNDUuMyA5NkgzMjBjLTUyLjkgMC05NiA0My4xLTk2IDk2czQzLjEgOTYgOTYgOTZoOTZjMTcuNiAwIDMyIDE0LjQgMzIgMzJzLTE0LjQgMzItMzIgMzJIMTg1LjVjLTE2IDI0LjgtMzMuOCA0Ny43LTQ3LjMgNjRINDE2YzUyLjkgMCA5Ni00My4xIDk2LTk2cy00My4xLTk2LTk2LTk2em0wLTI1NmMxNy43IDAgMzIgMTQuMyAzMiAzMnMtMTQuMyAzMi0zMiAzMi0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzJ6TTk2IDI1NmMtNTMgMC05NiA0My05NiA5NnM5NiAxNjAgOTYgMTYwIDk2LTEwNyA5Ni0xNjAtNDMtOTYtOTYtOTZ6bTAgMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIl1cbn07XG52YXIgZmFSc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncnNzJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDllXCIsIFwiTTEyOC4wODEgNDE1Ljk1OWMwIDM1LjM2OS0yOC42NzIgNjQuMDQxLTY0LjA0MSA2NC4wNDFTMCA0NTEuMzI4IDAgNDE1Ljk1OXMyOC42NzItNjQuMDQxIDY0LjA0MS02NC4wNDEgNjQuMDQgMjguNjczIDY0LjA0IDY0LjA0MXptMTc1LjY2IDQ3LjI1Yy04LjM1NC0xNTQuNi0xMzIuMTg1LTI3OC41ODctMjg2Ljk1LTI4Ni45NUM3LjY1NiAxNzUuNzY1IDAgMTgzLjEwNSAwIDE5Mi4yNTN2NDguMDY5YzAgOC40MTUgNi40OSAxNS40NzIgMTQuODg3IDE2LjAxOCAxMTEuODMyIDcuMjg0IDIwMS40NzMgOTYuNzAyIDIwOC43NzIgMjA4Ljc3Mi41NDcgOC4zOTcgNy42MDQgMTQuODg3IDE2LjAxOCAxNC44ODdoNDguMDY5YzkuMTQ5LjAwMSAxNi40ODktNy42NTUgMTUuOTk1LTE2Ljc5em0xNDQuMjQ5LjI4OEM0MzkuNTk2IDIyOS42NzcgMjUxLjQ2NSA0MC40NDUgMTYuNTAzIDMyLjAxIDcuNDczIDMxLjY4NiAwIDM4Ljk4MSAwIDQ4LjAxNnY0OC4wNjhjMCA4LjYyNSA2LjgzNSAxNS42NDUgMTUuNDUzIDE1Ljk5OSAxOTEuMTc5IDcuODM5IDM0NC42MjcgMTYxLjMxNiAzNTIuNDY1IDM1Mi40NjUuMzUzIDguNjE4IDcuMzczIDE1LjQ1MyAxNS45OTkgMTUuNDUzaDQ4LjA2OGM5LjAzNC0uMDAxIDE2LjMyOS03LjQ3NCAxNi4wMDUtMTYuNTA0elwiXVxufTtcbnZhciBmYVJzc1NxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdyc3Mtc3F1YXJlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTQzXCIsIFwiTTQwMCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNMTEyIDQxNmMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptMTU3LjUzMyAwaC0zNC4zMzVjLTYuMDExIDAtMTEuMDUxLTQuNjM2LTExLjQ0Mi0xMC42MzQtNS4yMTQtODAuMDUtNjkuMjQzLTE0My45Mi0xNDkuMTIzLTE0OS4xMjMtNS45OTctLjM5LTEwLjYzMy01LjQzMS0xMC42MzMtMTEuNDQxdi0zNC4zMzVjMC02LjUzNSA1LjQ2OC0xMS43NzcgMTEuOTk0LTExLjQyNSAxMTAuNTQ2IDUuOTc0IDE5OC45OTcgOTQuNTM2IDIwNC45NjQgMjA0Ljk2NC4zNTIgNi41MjYtNC44OSAxMS45OTQtMTEuNDI1IDExLjk5NHptMTAzLjAyNyAwaC0zNC4zMzRjLTYuMTYxIDAtMTEuMTc1LTQuODgyLTExLjQyNy0xMS4wMzgtNS41OTgtMTM2LjUzNS0xMTUuMjA0LTI0Ni4xNjEtMjUxLjc2LTI1MS43NkM2OC44ODIgMTUyLjk0OSA2NCAxNDcuOTM1IDY0IDE0MS43NzRWMTA3LjQ0YzAtNi40NTQgNS4zMzgtMTEuNjY0IDExLjc4Ny0xMS40MzIgMTY3LjgzIDYuMDI1IDMwMi4yMSAxNDEuMTkxIDMwOC4yMDUgMzA4LjIwNS4yMzIgNi40NDktNC45NzggMTEuNzg3LTExLjQzMiAxMS43ODd6XCJdXG59O1xudmFyIGZhUnVibGVTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1YmxlLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxNThcIiwgXCJNMjM5LjM2IDMyMEMzMjQuNDggMzIwIDM4NCAyNjAuNTQyIDM4NCAxNzUuMDcxUzMyNC40OCAzMiAyMzkuMzYgMzJINzZjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2MjA2LjYzMkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMlYzMDhjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg1MnYzMkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDUydjUyYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNTguNTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMnYtNTJIMzA4YzYuNjI3IDAgMTItNS4zNzMgMTItMTJ2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJIMTQ2LjU2di0zMmg5Mi44em0tOTIuOC0yMTkuMjUyaDc4LjcyYzQ2LjcyIDAgNzQuODggMjkuMTEgNzQuODggNzQuMzIzIDAgNDUuODMyLTI4LjE2IDc1LjU2MS03Ni4xNiA3NS41NjFoLTc3LjQ0VjEwMC43NDh6XCJdXG59O1xudmFyIGZhUnVsZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncnVsZXInLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1NDVcIiwgXCJNNjM1LjcgMTY3LjJMNTU2LjEgMzEuN2MtOC44LTE1LTI4LjMtMjAuMS00My41LTExLjVsLTY5IDM5LjFMNTAzLjMgMTYxYzIuMiAzLjguOSA4LjUtMi45IDEwLjdsLTEzLjggNy44Yy0zLjggMi4yLTguNy45LTEwLjktMi45TDQxNiA3NWwtNTUuMiAzMS4zIDI3LjkgNDcuNGMyLjIgMy44LjkgOC41LTIuOSAxMC43bC0xMy44IDcuOGMtMy44IDIuMi04LjcuOS0xMC45LTIuOUwzMzMuMiAxMjIgMjc4IDE1My4zIDMzNy44IDI1NWMyLjIgMy43LjkgOC41LTIuOSAxMC43bC0xMy44IDcuOGMtMy44IDIuMi04LjcuOS0xMC45LTIuOWwtNTkuNy0xMDEuNy01NS4yIDMxLjMgMjcuOSA0Ny40YzIuMiAzLjguOSA4LjUtMi45IDEwLjdsLTEzLjggNy44Yy0zLjggMi4yLTguNy45LTEwLjktMi45bC0yNy45LTQ3LjUtNTUuMiAzMS4zIDU5LjcgMTAxLjdjMi4yIDMuNy45IDguNS0yLjkgMTAuN2wtMTMuOCA3LjhjLTMuOCAyLjItOC43LjktMTAuOS0yLjlMODQuOSAyNjIuOWwtNjkgMzkuMUMuNyAzMTAuNy00LjYgMzI5LjggNC4yIDM0NC44bDc5LjYgMTM1LjZjOC44IDE1IDI4LjMgMjAuMSA0My41IDExLjVMNjI0LjEgMjEwYzE1LjItOC42IDIwLjQtMjcuOCAxMS42LTQyLjh6XCJdXG59O1xudmFyIGZhUnVsZXJDb21iaW5lZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydWxlci1jb21iaW5lZCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU0NlwiLCBcIk0xNjAgMjg4aC01NmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDU2di02NGgtNTZjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg1NlY5NmgtNTZjLTQuNDIgMC04LTMuNTgtOC04VjcyYzAtNC40MiAzLjU4LTggOC04aDU2VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2NDQ4YzAgMi43Ny45MSA1LjI0IDEuNTcgNy44TDE2MCAzMjkuMzhWMjg4em0zMjAgNjRoLTMydjU2YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTU2aC02NHY1NmMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di01NmgtNjR2NTZjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtNTZoLTQxLjM3TDI0LjIgNTEwLjQzYzIuNTYuNjYgNS4wNCAxLjU3IDcuOCAxLjU3aDQ0OGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYVJ1bGVySG9yaXpvbnRhbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdydWxlci1ob3Jpem9udGFsJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmNTQ3XCIsIFwiTTU0NCAxMjhoLTQ4djg4YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTg4aC02NHY4OGMwIDQuNDItMy41OCA4LTggOGgtMTZjLTQuNDIgMC04LTMuNTgtOC04di04OGgtNjR2ODhjMCA0LjQyLTMuNTggOC04IDhoLTE2Yy00LjQyIDAtOC0zLjU4LTgtOHYtODhoLTY0djg4YzAgNC40Mi0zLjU4IDgtOCA4aC0xNmMtNC40MiAwLTgtMy41OC04LTh2LTg4aC02NHY4OGMwIDQuNDItMy41OCA4LTggOEg4OGMtNC40MiAwLTgtMy41OC04LTh2LTg4SDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjE5MmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDUxMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjE2MGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYVJ1bGVyVmVydGljYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncnVsZXItdmVydGljYWwnLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImY1NDhcIiwgXCJNMTY4IDQxNmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDg4di02NGgtODhjLTQuNDIgMC04LTMuNTgtOC04di0xNmMwLTQuNDIgMy41OC04IDgtOGg4OHYtNjRoLTg4Yy00LjQyIDAtOC0zLjU4LTgtOHYtMTZjMC00LjQyIDMuNTgtOCA4LThoODh2LTY0aC04OGMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDg4VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIMzJDMTQuMzMgMCAwIDE0LjMzIDAgMzJ2NDQ4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTkyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTY0aC04OHpcIl1cbn07XG52YXIgZmFSdW5uaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3J1bm5pbmcnLFxuICBpY29uOiBbNDE2LCA1MTIsIFtdLCBcImY3MGNcIiwgXCJNMjcyIDk2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhTMjk4LjUxIDAgMjcyIDBzLTQ4IDIxLjQ5LTQ4IDQ4IDIxLjQ5IDQ4IDQ4IDQ4ek0xMTMuNjkgMzE3LjQ3bC0xNC44IDM0LjUySDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyaDc3LjQ1YzE5LjI1IDAgMzYuNTgtMTEuNDQgNDQuMTEtMjkuMDlsOC43OS0yMC41Mi0xMC42Ny02LjNjLTE3LjMyLTEwLjIzLTMwLjA2LTI1LjM3LTM3Ljk5LTQyLjYxek0zODQgMjIzLjk5aC00NC4wM2wtMjYuMDYtNTMuMjVjLTEyLjUtMjUuNTUtMzUuNDUtNDQuMjMtNjEuNzgtNTAuOTRsLTcxLjA4LTIxLjE0Yy0yOC4zLTYuOC01Ny43Ny0uNTUtODAuODQgMTcuMTRsLTM5LjY3IDMwLjQxYy0xNC4wMyAxMC43NS0xNi42OSAzMC44My01LjkyIDQ0Ljg2czMwLjg0IDE2LjY2IDQ0Ljg2IDUuOTJsMzkuNjktMzAuNDFjNy42Ny01Ljg5IDE3LjQ0LTggMjUuMjctNi4xNGwxNC43IDQuMzctMzcuNDYgODcuMzljLTEyLjYyIDI5LjQ4LTEuMzEgNjQuMDEgMjYuMyA4MC4zMWw4NC45OCA1MC4xNy0yNy40NyA4Ny43M2MtNS4yOCAxNi44NiA0LjExIDM0LjgxIDIwLjk3IDQwLjA5IDMuMTkgMSA2LjQxIDEuNDggOS41OCAxLjQ4IDEzLjYxIDAgMjYuMjMtOC43NyAzMC41Mi0yMi40NWwzMS42NC0xMDEuMDZjNS45MS0yMC43Ny0yLjg5LTQzLjA4LTIxLjY0LTU0LjM5bC02MS4yNC0zNi4xNCAzMS4zMS03OC4yOCAyMC4yNyA0MS40M2M4IDE2LjM0IDI0LjkyIDI2Ljg5IDQzLjExIDI2Ljg5SDM4NGMxNy42NyAwIDMyLTE0LjMzIDMyLTMycy0xNC4zMy0zMS45OS0zMi0zMS45OXpcIl1cbn07XG52YXIgZmFSdXBlZVNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAncnVwZWUtc2lnbicsXG4gIGljb246IFszMjAsIDUxMiwgW10sIFwiZjE1NlwiLCBcIk0zMDggOTZjNi42MjcgMCAxMi01LjM3MyAxMi0xMlY0NGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDEyQzUuMzczIDMyIDAgMzcuMzczIDAgNDR2NDQuNzQ4YzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoODUuMjhjMjcuMzA4IDAgNDguMjYxIDkuOTU4IDYwLjk3IDI3LjI1MkgxMmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDE1OC43NTdjLTYuMjE3IDM2LjA4Ni0zMi45NjEgNTguNjMyLTc0Ljc1NyA1OC42MzJIMTJjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NTMuMDEyYzAgMy4zNDkgMS40IDYuNTQ2IDMuODYxIDguODE4bDE2NS4wNTIgMTUyLjM1NmExMi4wMDEgMTIuMDAxIDAgMCAwIDguMTM5IDMuMTgyaDgyLjU2MmMxMC45MjQgMCAxNi4xNjYtMTMuNDA4IDguMTM5LTIwLjgxOEwxMTYuODcxIDMxOS45MDZjNzYuNDk5LTIuMzQgMTMxLjE0NC01My4zOTUgMTM4LjMxOC0xMjcuOTA2SDMwOGM2LjYyNyAwIDEyLTUuMzczIDEyLTEydi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC01OC42OWMtMy40ODYtMTEuNTQxLTguMjgtMjIuMjQ2LTE0LjI1Mi0zMkgzMDh6XCJdXG59O1xudmFyIGZhU2FkQ3J5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NhZC1jcnknLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1YjNcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZjMCA5MC4xIDQ4LjIgMTY4LjcgMTIwIDIxMi4xVjI4OGMwLTguOCA3LjItMTYgMTYtMTZzMTYgNy4yIDE2IDE2djE5Ni43YzI5LjUgMTIuNCA2MiAxOS4zIDk2IDE5LjNzNjYuNS02LjkgOTYtMTkuM1YyODhjMC04LjggNy4yLTE2IDE2LTE2czE2IDcuMiAxNiAxNnYxODAuMUM0NDcuOCA0MjQuNyA0OTYgMzQ2IDQ5NiAyNTYgNDk2IDExOSAzODUgOCAyNDggOHptLTY1LjUgMjE2LjVjLTE0LjgtMTMuMi00Ni4yLTEzLjItNjEgMEwxMTIgMjMzYy0zLjggMy4zLTkuMyA0LTEzLjcgMS42LTQuNC0yLjQtNi45LTcuNC02LjEtMTIuNCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVMyMDggMTk3IDIxMiAyMjIuMmMuOCA1LTEuNyAxMC02LjEgMTIuNC01LjggMy4xLTExLjIuNy0xMy43LTEuNmwtOS43LTguNXpNMjQ4IDQxNmMtMjYuNSAwLTQ4LTI4LjctNDgtNjRzMjEuNS02NCA0OC02NCA0OCAyOC43IDQ4IDY0LTIxLjUgNjQtNDggNjR6bTE0OS44LTE4MS41Yy01LjggMy4xLTExLjIuNy0xMy43LTEuNmwtOS41LTguNWMtMTQuOC0xMy4yLTQ2LjItMTMuMi02MSAwTDMwNCAyMzNjLTMuOCAzLjMtOS4zIDQtMTMuNyAxLjYtNC40LTIuNC02LjktNy40LTYuMS0xMi40IDQtMjUuMiAzNC4yLTQyLjEgNTkuOS00Mi4xUzQwMCAxOTcgNDA0IDIyMi4yYy42IDQuOS0xLjggOS45LTYuMiAxMi4zelwiXVxufTtcbnZhciBmYVNhZFRlYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2FkLXRlYXInLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1YjRcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHptODAgMTY4YzE3LjcgMCAzMiAxNC4zIDMyIDMycy0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzIgMTQuMy0zMiAzMi0zMnpNMTUyIDQxNmMtMjYuNSAwLTQ4LTIxLTQ4LTQ3IDAtMjAgMjguNS02MC40IDQxLjYtNzcuOCAzLjItNC4zIDkuNi00LjMgMTIuOCAwQzE3MS41IDMwOC42IDIwMCAzNDkgMjAwIDM2OWMwIDI2LTIxLjUgNDctNDggNDd6bTE2LTE3NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTE3MC4yIDE1NC4yQzMxNS44IDM2Ny40IDI4Mi45IDM1MiAyNDggMzUyYy0yMS4yIDAtMjEuMi0zMiAwLTMyIDQ0LjQgMCA4Ni4zIDE5LjYgMTE0LjcgNTMuOCAxMy44IDE2LjQtMTEuMiAzNi41LTI0LjUgMjAuNHpcIl1cbn07XG52YXIgZmFTYXRlbGxpdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2F0ZWxsaXRlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2JmXCIsIFwiTTUwMi43IDI2NWwtODAuMy04MC40IDQ3LjgtNDcuOWMxMy4xLTEzLjEgMTMuMS0zNC40IDAtNDcuNWwtNDcuNS00Ny41Yy0xMy4xLTEzLjEtMzQuNC0xMy4xLTQ3LjUgMGwtNDcuOCA0Ny45LTgwLjMtODAuM0MyNDAuOCAzLjEgMjMyLjcgMCAyMjQuNSAwUzIwOC4yIDMuMSAyMDIgOS4zTDEwNS4zIDEwNmMtMTIuNCAxMi40LTEyLjQgMzIuNiAwIDQ1LjFsODAuMyA4MC40LTkuOCA5LjhDMTIyLjEgMjE3IDU5LjYgMjE4LjYgNy4zIDI0Ni43Yy04LjUgNC42LTkuNiAxNi40LTIuOCAyMy4yTDExMiAzNzcuNGwtMTcuOCAxNy44Yy0yLjYtLjctNS0xLjYtNy44LTEuNi0xNy43IDAtMzIgMTQuMy0zMiAzMnMxNC4zIDMyIDMyIDMyIDMyLTE0LjMgMzItMzJjMC0yLjgtLjktNS4yLTEuNi03LjhsMTcuOC0xNy44IDEwNy41IDEwNy41YzYuOCA2LjggMTguNyA1LjcgMjMuMi0yLjggMjguMS01Mi4zIDI5LjctMTE0LjggNS40LTE2OC41bDkuOS05LjkgODAuMyA4MC40YzYuMiA2LjIgMTQuNCA5LjMgMjIuNSA5LjNzMTYuMy0zLjEgMjIuNS05LjNsOTYuNy05Ni43YzEyLjUtMTIuNCAxMi41LTMyLjYuMS00NXptLTM1Mi0xMzYuNWw3My44LTczLjggNjguOSA2OC45LTczLjggNzMuOC02OC45LTY4Ljl6bTIzMi44IDIzMi44bC02OC45LTY4LjkgNzMuOC03My44IDY4LjkgNjguOS03My44IDczLjh6XCJdXG59O1xudmFyIGZhU2F0ZWxsaXRlRGlzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzYXRlbGxpdGUtZGlzaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdjMFwiLCBcIk0xODguOCAzNDUuOWwyNy40LTI3LjRjMi42LjcgNSAxLjYgNy44IDEuNiAxNy43IDAgMzItMTQuMyAzMi0zMnMtMTQuMy0zMi0zMi0zMi0zMiAxNC4zLTMyIDMyYzAgMi44LjkgNS4yIDEuNiA3LjhsLTI3LjQgMjcuNEw0OS40IDIwNi41Yy03LjMtNy4zLTIwLjEtNi4xLTI1IDMtNDEuOCA3Ny44LTI5LjkgMTc2LjcgMzUuNyAyNDIuMyA2NS42IDY1LjYgMTY0LjYgNzcuNSAyNDIuMyAzNS43IDkuMi00LjkgMTAuNC0xNy43IDMtMjVMMTg4LjggMzQ1Ljl6TTIwOSAwYy05LjItLjUtMTcgNi44LTE3IDE2djMxLjZjMCA4LjUgNi42IDE1LjUgMTUgMTUuOSAxMjkuNCA3IDIzMy40IDExMiAyNDAuOSAyNDEuNS41IDguNCA3LjUgMTUgMTUuOSAxNWgzMi4xYzkuMiAwIDE2LjUtNy44IDE2LTE3QzUwMy40IDEzOS44IDM3Mi4yIDguNiAyMDkgMHptLjMgOTZjLTkuMy0uNy0xNy4zIDYuNy0xNy4zIDE2LjF2MzIuMWMwIDguNCA2LjUgMTUuMyAxNC44IDE1LjkgNzYuOCA2LjMgMTM4IDY4LjIgMTQ0LjkgMTQ1LjIuOCA4LjMgNy42IDE0LjcgMTUuOSAxNC43aDMyLjJjOS4zIDAgMTYuOC04IDE2LjEtMTcuMy04LjQtMTEwLjEtOTYuNS0xOTguMi0yMDYuNi0yMDYuN3pcIl1cbn07XG52YXIgZmFTYXZlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NhdmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwYzdcIiwgXCJNNDMzLjk0MSAxMjkuOTQxbC04My44ODItODMuODgyQTQ4IDQ4IDAgMCAwIDMxNi4xMTggMzJINDhDMjEuNDkgMzIgMCA1My40OSAwIDgwdjM1MmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4aDM1MmMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4VjE2My44ODJhNDggNDggMCAwIDAtMTQuMDU5LTMzLjk0MXpNMjI0IDQxNmMtMzUuMzQ2IDAtNjQtMjguNjU0LTY0LTY0IDAtMzUuMzQ2IDI4LjY1NC02NCA2NC02NHM2NCAyOC42NTQgNjQgNjRjMCAzNS4zNDYtMjguNjU0IDY0LTY0IDY0em05Ni0zMDQuNTJWMjEyYzAgNi42MjctNS4zNzMgMTItMTIgMTJINzZjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJWMTA4YzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMjI4LjUyYzMuMTgzIDAgNi4yMzUgMS4yNjQgOC40ODUgMy41MTVsMy40OCAzLjQ4QTExLjk5NiAxMS45OTYgMCAwIDEgMzIwIDExMS40OHpcIl1cbn07XG52YXIgZmFTY2hvb2wgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2Nob29sJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTQ5XCIsIFwiTTAgMjI0djI3MmMwIDguODQgNy4xNiAxNiAxNiAxNmg4MFYxOTJIMzJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ6bTM2MC00OGgtMjR2LTQwYzAtNC40Mi0zLjU4LTgtOC04aC0xNmMtNC40MiAwLTggMy41OC04IDh2NjRjMCA0LjQyIDMuNTggOCA4IDhoNDhjNC40MiAwIDgtMy41OCA4LTh2LTE2YzAtNC40Mi0zLjU4LTgtOC04em0xMzcuNzUtNjMuOTZsLTE2MC0xMDYuNjdhMzIuMDIgMzIuMDIgMCAwIDAtMzUuNSAwbC0xNjAgMTA2LjY3QTMyLjAwMiAzMi4wMDIgMCAwIDAgMTI4IDEzOC42NlY1MTJoMTI4VjM2OGMwLTguODQgNy4xNi0xNiAxNi0xNmg5NmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNDRoMTI4VjEzOC42N2MwLTEwLjctNS4zNS0yMC43LTE0LjI1LTI2LjYzek0zMjAgMjU2Yy00NC4xOCAwLTgwLTM1LjgyLTgwLTgwczM1LjgyLTgwIDgwLTgwIDgwIDM1LjgyIDgwIDgwLTM1LjgyIDgwLTgwIDgwem0yODgtNjRoLTY0djMyMGg4MGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYyMjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnpcIl1cbn07XG52YXIgZmFTY3Jld2RyaXZlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzY3Jld2RyaXZlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU0YVwiLCBcIk00NDggMEwzMjAgOTZ2NjIuMDZsLTgzLjAzIDgzLjAzYzYuNzkgNC4yNSAxMy4yNyA5LjA2IDE5LjA3IDE0Ljg3IDUuOCA1LjggMTAuNjIgMTIuMjggMTQuODcgMTkuMDdMMzUzLjk0IDE5Mkg0MTZsOTYtMTI4LTY0LTY0ek0xMjggMjc4LjU5TDEwLjkyIDM5NS42N2MtMTQuNTUgMTQuNTUtMTQuNTUgMzguMTUgMCA1Mi43MWw1Mi43IDUyLjdjMTQuNTYgMTQuNTYgMzguMTUgMTQuNTYgNTIuNzEgMEwyMzMuNDEgMzg0YzI5LjExLTI5LjExIDI5LjExLTc2LjMgMC0xMDUuNDFzLTc2LjMtMjkuMTEtMTA1LjQxIDB6XCJdXG59O1xudmFyIGZhU2Nyb2xsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Njcm9sbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjcwZVwiLCBcIk00OCAwQzIxLjUzIDAgMCAyMS41MyAwIDQ4djY0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDgwVjQ4Qzk2IDIxLjUzIDc0LjQ3IDAgNDggMHptMjA4IDQxMi41N1YzNTJoMjg4Vjk2YzAtNTIuOTQtNDMuMDYtOTYtOTYtOTZIMTExLjU5QzEyMS43NCAxMy40MSAxMjggMjkuOTIgMTI4IDQ4djM2OGMwIDM4Ljg3IDM0LjY1IDY5LjY1IDc0Ljc1IDYzLjEyQzIzNC4yMiA0NzQgMjU2IDQ0NC40NiAyNTYgNDEyLjU3ek0yODggMzg0djMyYzAgNTIuOTMtNDMuMDYgOTYtOTYgOTZoMzM2YzYxLjg2IDAgMTEyLTUwLjE0IDExMi0xMTIgMC04Ljg0LTcuMTYtMTYtMTYtMTZIMjg4elwiXVxufTtcbnZhciBmYVNkQ2FyZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzZC1jYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2MyXCIsIFwiTTMyMCAwSDEyOEwwIDEyOHYzMjBjMCAzNS4zIDI4LjcgNjQgNjQgNjRoMjU2YzM1LjMgMCA2NC0yOC43IDY0LTY0VjY0YzAtMzUuMy0yOC43LTY0LTY0LTY0ek0xNjAgMTYwaC00OFY2NGg0OHY5NnptODAgMGgtNDhWNjRoNDh2OTZ6bTgwIDBoLTQ4VjY0aDQ4djk2elwiXVxufTtcbnZhciBmYVNlYXJjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzZWFyY2gnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwMDJcIiwgXCJNNTA1IDQ0Mi43TDQwNS4zIDM0M2MtNC41LTQuNS0xMC42LTctMTctN0gzNzJjMjcuNi0zNS4zIDQ0LTc5LjcgNDQtMTI4QzQxNiA5My4xIDMyMi45IDAgMjA4IDBTMCA5My4xIDAgMjA4czkzLjEgMjA4IDIwOCAyMDhjNDguMyAwIDkyLjctMTYuNCAxMjgtNDR2MTYuM2MwIDYuNCAyLjUgMTIuNSA3IDE3bDk5LjcgOTkuN2M5LjQgOS40IDI0LjYgOS40IDMzLjkgMGwyOC4zLTI4LjNjOS40LTkuNCA5LjQtMjQuNi4xLTM0ek0yMDggMzM2Yy03MC43IDAtMTI4LTU3LjItMTI4LTEyOCAwLTcwLjcgNTcuMi0xMjggMTI4LTEyOCA3MC43IDAgMTI4IDU3LjIgMTI4IDEyOCAwIDcwLjctNTcuMiAxMjgtMTI4IDEyOHpcIl1cbn07XG52YXIgZmFTZWFyY2hEb2xsYXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2VhcmNoLWRvbGxhcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY4OFwiLCBcIk01MDUuMDQgNDQyLjY2bC05OS43MS05OS42OWMtNC41LTQuNS0xMC42LTctMTctN2gtMTYuM2MyNy42LTM1LjMgNDQtNzkuNjkgNDQtMTI3Ljk5QzQxNi4wMyA5My4wOSAzMjIuOTIgMCAyMDguMDIgMFMwIDkzLjA5IDAgMjA3Ljk4czkzLjExIDIwNy45OCAyMDguMDIgMjA3Ljk4YzQ4LjMgMCA5Mi43MS0xNi40IDEyOC4wMS00NHYxNi4zYzAgNi40IDIuNSAxMi41IDcgMTdsOTkuNzEgOTkuNjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjguMy0yOC4zYzkuNC05LjQgOS40LTI0LjU5LjEtMzMuOTl6bS0yOTcuMDItOTAuN2MtNzkuNTQgMC0xNDQtNjQuMzQtMTQ0LTE0My45OCAwLTc5LjUzIDY0LjM1LTE0My45OCAxNDQtMTQzLjk4IDc5LjU0IDAgMTQ0IDY0LjM0IDE0NCAxNDMuOTggMCA3OS41My02NC4zNSAxNDMuOTgtMTQ0IDE0My45OHptMjcuMTEtMTUyLjU0bC00NS4wMS0xMy41Yy01LjE2LTEuNTUtOC43Ny02Ljc4LTguNzctMTIuNzMgMC03LjI3IDUuMy0xMy4xOSAxMS44LTEzLjE5aDI4LjExYzQuNTYgMCA4Ljk2IDEuMjkgMTIuODIgMy43MiAzLjI0IDIuMDMgNy4zNiAxLjkxIDEwLjEzLS43M2wxMS43NS0xMS4yMWMzLjUzLTMuMzcgMy4zMy05LjIxLS41Ny0xMi4xNC05LjEtNi44My0yMC4wOC0xMC43Ny0zMS4zNy0xMS4zNVYxMTJjMC00LjQyLTMuNTgtOC04LThoLTE2Yy00LjQyIDAtOCAzLjU4LTggOHYxNi4xMmMtMjMuNjMuNjMtNDIuNjggMjAuNTUtNDIuNjggNDUuMDcgMCAxOS45NyAxMi45OSAzNy44MSAzMS41OCA0My4zOWw0NS4wMSAxMy41YzUuMTYgMS41NSA4Ljc3IDYuNzggOC43NyAxMi43MyAwIDcuMjctNS4zIDEzLjE5LTExLjggMTMuMTloLTI4LjFjLTQuNTYgMC04Ljk2LTEuMjktMTIuODItMy43Mi0zLjI0LTIuMDMtNy4zNi0xLjkxLTEwLjEzLjczbC0xMS43NSAxMS4yMWMtMy41MyAzLjM3LTMuMzMgOS4yMS41NyAxMi4xNCA5LjEgNi44MyAyMC4wOCAxMC43NyAzMS4zNyAxMS4zNVYzMDRjMCA0LjQyIDMuNTggOCA4IDhoMTZjNC40MiAwIDgtMy41OCA4LTh2LTE2LjEyYzIzLjYzLS42MyA0Mi42OC0yMC41NCA0Mi42OC00NS4wNyAwLTE5Ljk3LTEyLjk5LTM3LjgxLTMxLjU5LTQzLjM5elwiXVxufTtcbnZhciBmYVNlYXJjaExvY2F0aW9uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NlYXJjaC1sb2NhdGlvbicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjY4OVwiLCBcIk01MDUuMDQgNDQyLjY2bC05OS43MS05OS42OWMtNC41LTQuNS0xMC42LTctMTctN2gtMTYuM2MyNy42LTM1LjMgNDQtNzkuNjkgNDQtMTI3Ljk5QzQxNi4wMyA5My4wOSAzMjIuOTIgMCAyMDguMDIgMFMwIDkzLjA5IDAgMjA3Ljk4czkzLjExIDIwNy45OCAyMDguMDIgMjA3Ljk4YzQ4LjMgMCA5Mi43MS0xNi40IDEyOC4wMS00NHYxNi4zYzAgNi40IDIuNSAxMi41IDcgMTdsOTkuNzEgOTkuNjljOS40IDkuNCAyNC42IDkuNCAzMy45IDBsMjguMy0yOC4zYzkuNC05LjQgOS40LTI0LjU5LjEtMzMuOTl6bS0yOTcuMDItOTAuN2MtNzkuNTQgMC0xNDQtNjQuMzQtMTQ0LTE0My45OCAwLTc5LjUzIDY0LjM1LTE0My45OCAxNDQtMTQzLjk4IDc5LjU0IDAgMTQ0IDY0LjM0IDE0NCAxNDMuOTggMCA3OS41My02NC4zNSAxNDMuOTgtMTQ0IDE0My45OHptLjAyLTIzOS45NmMtNDAuNzggMC03My44NCAzMy4wNS03My44NCA3My44MyAwIDMyLjk2IDQ4LjI2IDkzLjA1IDY2Ljc1IDExNC44NmE5LjI0IDkuMjQgMCAwIDAgMTQuMTggMGMxOC40OS0yMS44MSA2Ni43NS04MS44OSA2Ni43NS0xMTQuODYgMC00MC43OC0zMy4wNi03My44My03My44NC03My44M3ptMCA5NmMtMTMuMjYgMC0yNC0xMC43NS0yNC0yNCAwLTEzLjI2IDEwLjc1LTI0IDI0LTI0czI0IDEwLjc0IDI0IDI0YzAgMTMuMjUtMTAuNzUgMjQtMjQgMjR6XCJdXG59O1xudmFyIGZhU2VhcmNoTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2VhcmNoLW1pbnVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDEwXCIsIFwiTTMwNCAxOTJ2MzJjMCA2LjYtNS40IDEyLTEyIDEySDEyNGMtNi42IDAtMTItNS40LTEyLTEydi0zMmMwLTYuNiA1LjQtMTIgMTItMTJoMTY4YzYuNiAwIDEyIDUuNCAxMiAxMnptMjAxIDI4NC43TDQ3Ni43IDUwNWMtOS40IDkuNC0yNC42IDkuNC0zMy45IDBMMzQzIDQwNS4zYy00LjUtNC41LTctMTAuNi03LTE3VjM3MmMtMzUuMyAyNy42LTc5LjcgNDQtMTI4IDQ0QzkzLjEgNDE2IDAgMzIyLjkgMCAyMDhTOTMuMSAwIDIwOCAwczIwOCA5My4xIDIwOCAyMDhjMCA0OC4zLTE2LjQgOTIuNy00NCAxMjhoMTYuM2M2LjQgMCAxMi41IDIuNSAxNyA3bDk5LjcgOTkuN2M5LjMgOS40IDkuMyAyNC42IDAgMzR6TTM0NCAyMDhjMC03NS4yLTYwLjgtMTM2LTEzNi0xMzZTNzIgMTMyLjggNzIgMjA4czYwLjggMTM2IDEzNiAxMzYgMTM2LTYwLjggMTM2LTEzNnpcIl1cbn07XG52YXIgZmFTZWFyY2hQbHVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NlYXJjaC1wbHVzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDBlXCIsIFwiTTMwNCAxOTJ2MzJjMCA2LjYtNS40IDEyLTEyIDEyaC01NnY1NmMwIDYuNi01LjQgMTItMTIgMTJoLTMyYy02LjYgMC0xMi01LjQtMTItMTJ2LTU2aC01NmMtNi42IDAtMTItNS40LTEyLTEydi0zMmMwLTYuNiA1LjQtMTIgMTItMTJoNTZ2LTU2YzAtNi42IDUuNC0xMiAxMi0xMmgzMmM2LjYgMCAxMiA1LjQgMTIgMTJ2NTZoNTZjNi42IDAgMTIgNS40IDEyIDEyem0yMDEgMjg0LjdMNDc2LjcgNTA1Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwzNDMgNDA1LjNjLTQuNS00LjUtNy0xMC42LTctMTdWMzcyYy0zNS4zIDI3LjYtNzkuNyA0NC0xMjggNDRDOTMuMSA0MTYgMCAzMjIuOSAwIDIwOFM5My4xIDAgMjA4IDBzMjA4IDkzLjEgMjA4IDIwOGMwIDQ4LjMtMTYuNCA5Mi43LTQ0IDEyOGgxNi4zYzYuNCAwIDEyLjUgMi41IDE3IDdsOTkuNyA5OS43YzkuMyA5LjQgOS4zIDI0LjYgMCAzNHpNMzQ0IDIwOGMwLTc1LjItNjAuOC0xMzYtMTM2LTEzNlM3MiAxMzIuOCA3MiAyMDhzNjAuOCAxMzYgMTM2IDEzNiAxMzYtNjAuOCAxMzYtMTM2elwiXVxufTtcbnZhciBmYVNlZWRsaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NlZWRsaW5nJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNGQ4XCIsIFwiTTY0IDk2SDBjMCAxMjMuNyAxMDAuMyAyMjQgMjI0IDIyNHYxNDRjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYzMjBDMjg4IDE5Ni4zIDE4Ny43IDk2IDY0IDk2em0zODQtNjRjLTg0LjIgMC0xNTcuNCA0Ni41LTE5NS43IDExNS4yIDI3LjcgMzAuMiA0OC4yIDY2LjkgNTkgMTA3LjZDNDI0IDI0My4xIDUxMiAxNDcuOSA1MTIgMzJoLTY0elwiXVxufTtcbnZhciBmYVNlcnZlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzZXJ2ZXInLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyMzNcIiwgXCJNNDgwIDE2MEgzMmMtMTcuNjczIDAtMzItMTQuMzI3LTMyLTMyVjY0YzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMmg0NDhjMTcuNjczIDAgMzIgMTQuMzI3IDMyIDMydjY0YzAgMTcuNjczLTE0LjMyNyAzMi0zMiAzMnptLTQ4LTg4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRzMTAuNzQ1IDI0IDI0IDI0IDI0LTEwLjc0NSAyNC0yNC0xMC43NDUtMjQtMjQtMjR6bS02NCAwYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjRzMTAuNzQ1IDI0IDI0IDI0IDI0LTEwLjc0NSAyNC0yNC0xMC43NDUtMjQtMjQtMjR6bTExMiAyNDhIMzJjLTE3LjY3MyAwLTMyLTE0LjMyNy0zMi0zMnYtNjRjMC0xNy42NzMgMTQuMzI3LTMyIDMyLTMyaDQ0OGMxNy42NzMgMCAzMiAxNC4zMjcgMzIgMzJ2NjRjMCAxNy42NzMtMTQuMzI3IDMyLTMyIDMyem0tNDgtODhjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNHptLTY0IDBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHMxMC43NDUgMjQgMjQgMjQgMjQtMTAuNzQ1IDI0LTI0LTEwLjc0NS0yNC0yNC0yNHptMTEyIDI0OEgzMmMtMTcuNjczIDAtMzItMTQuMzI3LTMyLTMydi02NGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJoNDQ4YzE3LjY3MyAwIDMyIDE0LjMyNyAzMiAzMnY2NGMwIDE3LjY3My0xNC4zMjcgMzItMzIgMzJ6bS00OC04OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0czEwLjc0NSAyNCAyNCAyNCAyNC0xMC43NDUgMjQtMjQtMTAuNzQ1LTI0LTI0LTI0em0tNjQgMGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0czEwLjc0NSAyNCAyNCAyNCAyNC0xMC43NDUgMjQtMjQtMTAuNzQ1LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYVNoYXBlcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGFwZXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2MWZcIiwgXCJNNTEyIDMyMHYxNjBjMCAxNy42Ny0xNC4zMyAzMi0zMiAzMkgzMjBjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJWMzIwYzAtMTcuNjcgMTQuMzMtMzIgMzItMzJoMTYwYzE3LjY3IDAgMzIgMTQuMzMgMzIgMzJ6bS0zODQtNjRDNTcuMzEgMjU2IDAgMzEzLjMxIDAgMzg0czU3LjMxIDEyOCAxMjggMTI4IDEyOC01Ny4zMSAxMjgtMTI4LTU3LjMxLTEyOC0xMjgtMTI4em0zNTEuMDMtMzJjMjUuMzQgMCA0MS4xOC0yNi42NyAyOC41MS00OEw0MTIuNTEgMTZjLTEyLjY3LTIxLjMzLTQ0LjM1LTIxLjMzLTU3LjAyIDBsLTk1LjAzIDE2MGMtMTIuNjcgMjEuMzMgMy4xNyA0OCAyOC41MSA0OGgxOTAuMDZ6XCJdXG59O1xudmFyIGZhU2hhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hhcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwNjRcIiwgXCJNNTAzLjY5MSAxODkuODM2TDMyNy42ODcgMzcuODUxQzMxMi4yODEgMjQuNTQ2IDI4OCAzNS4zNDcgMjg4IDU2LjAxNXY4MC4wNTNDMTI3LjM3MSAxMzcuOTA3IDAgMTcwLjEgMCAzMjIuMzI2YzAgNjEuNDQxIDM5LjU4MSAxMjIuMzA5IDgzLjMzMyAxNTQuMTMyIDEzLjY1MyA5LjkzMSAzMy4xMTEtMi41MzMgMjguMDc3LTE4LjYzMUM2Ni4wNjYgMzEyLjgxNCAxMzIuOTE3IDI3NC4zMTYgMjg4IDI3Mi4wODVWMzYwYzAgMjAuNyAyNC4zIDMxLjQ1MyAzOS42ODcgMTguMTY0bDE3Ni4wMDQtMTUyYzExLjA3MS05LjU2MiAxMS4wODYtMjYuNzUzIDAtMzYuMzI4elwiXVxufTtcbnZhciBmYVNoYXJlQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoYXJlLWFsdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjFlMFwiLCBcIk0zNTIgMzIwYy0yMi42MDggMC00My4zODcgNy44MTktNTkuNzkgMjAuODk1bC0xMDIuNDg2LTY0LjA1NGE5Ni41NTEgOTYuNTUxIDAgMCAwIDAtNDEuNjgzbDEwMi40ODYtNjQuMDU0QzMwOC42MTMgMTg0LjE4MSAzMjkuMzkyIDE5MiAzNTIgMTkyYzUzLjAxOSAwIDk2LTQyLjk4MSA5Ni05NlM0MDUuMDE5IDAgMzUyIDBzLTk2IDQyLjk4MS05NiA5NmMwIDcuMTU4Ljc5IDE0LjEzIDIuMjc2IDIwLjg0MUwxNTUuNzkgMTgwLjg5NUMxMzkuMzg3IDE2Ny44MTkgMTE4LjYwOCAxNjAgOTYgMTYwYy01My4wMTkgMC05NiA0Mi45ODEtOTYgOTZzNDIuOTgxIDk2IDk2IDk2YzIyLjYwOCAwIDQzLjM4Ny03LjgxOSA1OS43OS0yMC44OTVsMTAyLjQ4NiA2NC4wNTRBOTYuMzAxIDk2LjMwMSAwIDAgMCAyNTYgNDE2YzAgNTMuMDE5IDQyLjk4MSA5NiA5NiA5NnM5Ni00Mi45ODEgOTYtOTYtNDIuOTgxLTk2LTk2LTk2elwiXVxufTtcbnZhciBmYVNoYXJlQWx0U3F1YXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoYXJlLWFsdC1zcXVhcmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxZTFcIiwgXCJNNDQ4IDgwdjM1MmMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4SDQ4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4VjgwYzAtMjYuNTEgMjEuNDktNDggNDgtNDhoMzUyYzI2LjUxIDAgNDggMjEuNDkgNDggNDh6TTMwNCAyOTZjLTE0LjU2MiAwLTI3LjgyMyA1LjU2MS0zNy43ODMgMTQuNjcxbC02Ny45NTgtNDAuNzc1YTU2LjMzOSA1Ni4zMzkgMCAwIDAgMC0yNy43OTNsNjcuOTU4LTQwLjc3NUMyNzYuMTc3IDIxMC40MzkgMjg5LjQzOCAyMTYgMzA0IDIxNmMzMC45MjggMCA1Ni0yNS4wNzIgNTYtNTZzLTI1LjA3Mi01Ni01Ni01Ni01NiAyNS4wNzItNTYgNTZjMCA0Ljc5Ny42MDUgOS40NTMgMS43NCAxMy44OTdsLTY3Ljk1OCA0MC43NzVDMTcxLjgyMyAyMDUuNTYxIDE1OC41NjIgMjAwIDE0NCAyMDBjLTMwLjkyOCAwLTU2IDI1LjA3Mi01NiA1NnMyNS4wNzIgNTYgNTYgNTZjMTQuNTYyIDAgMjcuODIzLTUuNTYxIDM3Ljc4My0xNC42NzFsNjcuOTU4IDQwLjc3NWE1Ni4wODggNTYuMDg4IDAgMCAwLTEuNzQgMTMuODk3YzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1NnM1Ni0yNS4wNzIgNTYtNTZDMzYwIDMyMS4wNzIgMzM0LjkyOCAyOTYgMzA0IDI5NnpcIl1cbn07XG52YXIgZmFTaGFyZVNxdWFyZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaGFyZS1zcXVhcmUnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxNGRcIiwgXCJNNTY4LjQ4MiAxNzcuNDQ4TDQyNC40NzkgMzEzLjQzM0M0MDkuMyAzMjcuNzY4IDM4NCAzMTcuMTQgMzg0IDI5NS45ODV2LTcxLjk2M2MtMTQ0LjU3NS45Ny0yMDUuNTY2IDM1LjExMy0xNjQuNzc1IDE3MS4zNTMgNC40ODMgMTQuOTczLTEyLjg0NiAyNi41NjctMjUuMDA2IDE3LjMzQzE1NS4yNTIgMzgzLjEwNSAxMjAgMzI2LjQ4OCAxMjAgMjY5LjMzOWMwLTE0My45MzcgMTE3LjU5OS0xNzIuNSAyNjQtMTczLjMxMlYyNC4wMTJjMC0yMS4xNzQgMjUuMzE3LTMxLjc2OCA0MC40NzktMTcuNDQ4bDE0NC4wMDMgMTM1Ljk4OGMxMC4wMiA5LjQ2MyAxMC4wMjggMjUuNDI1IDAgMzQuODk2ek0zODQgMzc5LjEyOFY0NDhINjRWMTI4aDUwLjkxNmExMS45OSAxMS45OSAwIDAgMCA4LjY0OC0zLjY5M2MxNC45NTMtMTUuNTY4IDMyLjIzNy0yNy44OSA1MS4wMTQtMzcuNjc2QzE4NS43MDggODAuODMgMTgxLjU4NCA2NCAxNjkuMDMzIDY0SDQ4QzIxLjQ5IDY0IDAgODUuNDkgMCAxMTJ2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMzUyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDh2LTg4LjgwNmMwLTguMjg4LTguMTk3LTE0LjA2Ni0xNi4wMTEtMTEuMzAyYTcxLjgzIDcxLjgzIDAgMCAxLTM0LjE4OSAzLjM3N2MtNy4yNy0xLjA0Ni0xMy44IDQuNTE0LTEzLjggMTEuODU5elwiXVxufTtcbnZhciBmYVNoZWtlbFNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hla2VsLXNpZ24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyMGJcIiwgXCJNMjQ4IDE2OHYxNjhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTY4YzAtNzUuMTEtNjAuODktMTM2LTEzNi0xMzZIMjRDMTAuNzUgMzIgMCA0Mi43NCAwIDU2djQwOGMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYxMTJoMTEyYzMwLjkzIDAgNTYgMjUuMDcgNTYgNTZ6TTQzMiAzMmgtNDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djI5NmMwIDMwLjkzLTI1LjA3IDU2LTU2IDU2SDIwMFYxNzZjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYyODBjMCAxMy4yNSAxMC43NSAyNCAyNCAyNGgxNjhjNzUuMTEgMCAxMzYtNjAuODkgMTM2LTEzNlY0OGMwLTguODQtNy4xNi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFTaGllbGRBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hpZWxkLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjNlZFwiLCBcIk00NjYuNSA4My43bC0xOTItODBhNDguMTUgNDguMTUgMCAwIDAtMzYuOSAwbC0xOTIgODBDMjcuNyA5MS4xIDE2IDEwOC42IDE2IDEyOGMwIDE5OC41IDExNC41IDMzNS43IDIyMS41IDM4MC4zIDExLjggNC45IDI1LjEgNC45IDM2LjkgMEMzNjAuMSA0NzIuNiA0OTYgMzQ5LjMgNDk2IDEyOGMwLTE5LjQtMTEuNy0zNi45LTI5LjUtNDQuM3pNMjU2LjEgNDQ2LjNsLS4xLTM4MSAxNzUuOSA3My4zYy0zLjMgMTUxLjQtODIuMSAyNjEuMS0xNzUuOCAzMDcuN3pcIl1cbn07XG52YXIgZmFTaGlwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaXAnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyMWFcIiwgXCJNNDk2LjYxNiAzNzIuNjM5bDcwLjAxMi03MC4wMTJjMTYuODk5LTE2LjkgOS45NDItNDUuNzcxLTEyLjgzNi01My4wOTJMNTEyIDIzNi4xMDJWOTZjMC0xNy42NzMtMTQuMzI3LTMyLTMyLTMyaC02NFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjQ4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2NDBoLTY0Yy0xNy42NzMgMC0zMiAxNC4zMjctMzIgMzJ2MTQwLjEwMmwtNDEuNzkyIDEzLjQzM2MtMjIuNzUzIDcuMzEzLTI5Ljc1NCAzNi4xNzMtMTIuODM2IDUzLjA5Mmw3MC4wMTIgNzAuMDEyQzEyNS44MjggNDE2LjI4NyA4NS41ODcgNDQ4IDI0IDQ0OGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNCA2MS4wMjMgMCAxMDcuNDk5LTIwLjYxIDE0My4yNTgtNTkuMzk2QzE4MS42NzcgNDg3LjQzMiAyMTYuMDIxIDUxMiAyNTYgNTEyaDEyOGMzOS45NzkgMCA3NC4zMjMtMjQuNTY4IDg4Ljc0Mi01OS4zOTZDNTA4LjQ5NSA0OTEuMzg0IDU1NC45NjggNTEyIDYxNiA1MTJjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di0xNmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjQtNjAuODE3IDAtMTAxLjU0Mi0zMS4wMDEtMTE5LjM4NC03NS4zNjF6TTE5MiAxMjhoMjU2djg3LjUzMWwtMTE4LjIwOC0zNy45OTVhMzEuOTk1IDMxLjk5NSAwIDAgMC0xOS41ODQgMEwxOTIgMjE1LjUzMVYxMjh6XCJdXG59O1xudmFyIGZhU2hpcHBpbmdGYXN0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NoaXBwaW5nLWZhc3QnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OGJcIiwgXCJNNjI0IDM1MmgtMTZWMjQzLjljMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOUw0OTQgMTEwLjFjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xSDQxNlY0OGMwLTI2LjUtMjEuNS00OC00OC00OEgxMTJDODUuNSAwIDY0IDIxLjUgNjQgNDh2NDhIOGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOGgyNzJjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEg0MGMtNC40IDAtOCAzLjYtOCA4djE2YzAgNC40IDMuNiA4IDggOGgyMDhjNC40IDAgOCAzLjYgOCA4djE2YzAgNC40LTMuNiA4LTggOEg4Yy00LjQgMC04IDMuNi04IDh2MTZjMCA0LjQgMy42IDggOCA4aDIwOGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDY0djEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2aDEyOGMwIDUzIDQzIDk2IDk2IDk2czk2LTQzIDk2LTk2aDQ4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2ek0xNjAgNDY0Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHptMzIwIDBjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em04MC0yMDhINDE2VjE0NGg0NC4xbDk5LjkgOTkuOVYyNTZ6XCJdXG59O1xudmFyIGZhU2hvZVByaW50cyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaG9lLXByaW50cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjU0YlwiLCBcIk0xOTIgMTYwaDMyVjMyaC0zMmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHMyOC42NSA2NCA2NCA2NHpNMCA0MTZjMCAzNS4zNSAyOC42NSA2NCA2NCA2NGgzMlYzNTJINjRjLTM1LjM1IDAtNjQgMjguNjUtNjQgNjR6bTMzNy40Ni0xMjhjLTM0LjkxIDAtNzYuMTYgMTMuMTItMTA0LjczIDMyLTI0Ljc5IDE2LjM4LTQ0LjUyIDMyLTEwNC43MyAzMnYxMjhsNTcuNTMgMTUuOTdjMjYuMjEgNy4yOCA1My4wMSAxMy4xMiA4MC4zMSAxNS4wNSAzMi42OSAyLjMxIDY1LjYuNjcgOTcuNTgtNi4yQzQ3Mi45IDQ4MS4zIDUxMiA0MjkuMjIgNTEyIDM4NGMwLTY0LTg0LjE4LTk2LTE3NC41NC05NnpNNDkxLjQyIDcuMTlDNDU5LjQ0LjMyIDQyNi41My0xLjMzIDM5My44NC45OWMtMjcuMyAxLjkzLTU0LjEgNy43Ny04MC4zMSAxNS4wNEwyNTYgMzJ2MTI4YzYwLjIgMCA3OS45NCAxNS42MiAxMDQuNzMgMzIgMjguNTcgMTguODggNjkuODIgMzIgMTA0LjczIDMyQzU1NS44MiAyMjQgNjQwIDE5MiA2NDAgMTI4YzAtNDUuMjItMzkuMS05Ny4zLTE0OC41OC0xMjAuODF6XCJdXG59O1xudmFyIGZhU2hvcHBpbmdCYWcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hvcHBpbmctYmFnJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjkwXCIsIFwiTTM1MiAxNjB2LTMyQzM1MiA1Ny40MiAyOTQuNTc5IDAgMjI0IDAgMTUzLjQyIDAgOTYgNTcuNDIgOTYgMTI4djMySDB2MjcyYzAgNDQuMTgzIDM1LjgxNyA4MCA4MCA4MGgyODhjNDQuMTgzIDAgODAtMzUuODE3IDgwLTgwVjE2MGgtOTZ6bS0xOTItMzJjMC0zNS4yOSAyOC43MS02NCA2NC02NHM2NCAyOC43MSA2NCA2NHYzMkgxNjB2LTMyem0xNjAgMTIwYy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRzMTAuNzQ1LTI0IDI0LTI0IDI0IDEwLjc0NSAyNCAyNC0xMC43NDUgMjQtMjQgMjR6bS0xOTIgMGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCAyNC0yNCAyNCAxMC43NDUgMjQgMjQtMTAuNzQ1IDI0LTI0IDI0elwiXVxufTtcbnZhciBmYVNob3BwaW5nQmFza2V0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nob3BwaW5nLWJhc2tldCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjI5MVwiLCBcIk01NzYgMjE2djE2YzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNGgtOGwtMjYuMTEzIDE4Mi43ODhDNTE0LjUwOSA0NjIuNDM1IDQ5NC4yNTcgNDgwIDQ3MC4zNyA0ODBIMTA1LjYzYy0yMy44ODcgMC00NC4xMzktMTcuNTY1LTQ3LjUxOC00MS4yMTJMMzIgMjU2aC04Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjR2LTE2YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGg2Ny4zNDFsMTA2Ljc4LTE0Ni44MjFjMTAuMzk1LTE0LjI5MiAzMC40MDctMTcuNDUzIDQ0LjcwMS03LjA1OCAxNC4yOTMgMTAuMzk1IDE3LjQ1MyAzMC40MDggNy4wNTggNDQuNzAxTDE3MC40NzcgMTkyaDIzNS4wNDZMMzI2LjEyIDgyLjgyMWMtMTAuMzk1LTE0LjI5Mi03LjIzNC0zNC4zMDYgNy4wNTktNDQuNzAxIDE0LjI5MS0xMC4zOTUgMzQuMzA2LTcuMjM1IDQ0LjcwMSA3LjA1OEw0ODQuNjU5IDE5Mkg1NTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0ek0zMTIgMzkyVjI4MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRzLTI0IDEwLjc0NS0yNCAyNHYxMTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0czI0LTEwLjc0NSAyNC0yNHptMTEyIDBWMjgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHMtMjQgMTAuNzQ1LTI0IDI0djExMmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRzMjQtMTAuNzQ1IDI0LTI0em0tMjI0IDBWMjgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHMtMjQgMTAuNzQ1LTI0IDI0djExMmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRzMjQtMTAuNzQ1IDI0LTI0elwiXVxufTtcbnZhciBmYVNob3BwaW5nQ2FydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaG9wcGluZy1jYXJ0JyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMDdhXCIsIFwiTTUyOC4xMiAzMDEuMzE5bDQ3LjI3My0yMDhDNTc4LjgwNiA3OC4zMDEgNTY3LjM5MSA2NCA1NTEuOTkgNjRIMTU5LjIwOGwtOS4xNjYtNDQuODFDMTQ3Ljc1OCA4LjAyMSAxMzcuOTMgMCAxMjYuNTI5IDBIMjRDMTAuNzQ1IDAgMCAxMC43NDUgMCAyNHYxNmMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoNjkuODgzbDcwLjI0OCAzNDMuNDM1QzE0Ny4zMjUgNDE3LjEgMTM2IDQzNS4yMjIgMTM2IDQ1NmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZzNTYtMjUuMDcyIDU2LTU2YzAtMTUuNjc0LTYuNDQ3LTI5LjgzNS0xNi44MjQtNDBoMjA5LjY0N0M0MzAuNDQ3IDQyNi4xNjUgNDI0IDQ0MC4zMjYgNDI0IDQ1NmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZzNTYtMjUuMDcyIDU2LTU2YzAtMjIuMTcyLTEyLjg4OC00MS4zMzItMzEuNTc5LTUwLjQwNWw1LjUxNy0yNC4yNzZjMy40MTMtMTUuMDE4LTguMDAyLTI5LjMxOS0yMy40MDMtMjkuMzE5SDIxOC4xMTdsLTYuNTQ1LTMyaDI5My4xNDVjMTEuMjA2IDAgMjAuOTItNy43NTQgMjMuNDAzLTE4LjY4MXpcIl1cbn07XG52YXIgZmFTaG93ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2hvd2VyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmNjXCIsIFwiTTM4OS42NiAxMzUuNkwyMzEuNiAyOTMuNjZjLTkuMzcgOS4zNy0yNC41NyA5LjM3LTMzLjk0IDBsLTExLjMyLTExLjMyYy05LjM3LTkuMzctOS4zNy0yNC41NyAwLTMzLjk0bC4xMS0uMTFjLTM0LjAzLTQwLjIxLTM1LjE2LTk4Ljk0LTMuMzktMTQwLjM4LTExLjk3LTcuNTUtMjYuMTQtMTEuOTEtNDEuMy0xMS45MUM5OC44OCA5NiA2NCAxMzAuODggNjQgMTczLjc2VjQ4MEgwVjE3My43NkMwIDk1LjU5IDYzLjU5IDMyIDE0MS43NiAzMmMzNi45MyAwIDcwLjYxIDE0LjIgOTUuODYgMzcuNDIgMzUuOS0xMS41MSA3Ni41LTQuNSAxMDYuNjcgMjEuMDNsLjExLS4xMWM5LjM3LTkuMzcgMjQuNTctOS4zNyAzMy45NCAwbDExLjMyIDExLjMyYzkuMzcgOS4zNyA5LjM3IDI0LjU3IDAgMzMuOTR6TTM4NCAyMDhjMCA4LjgzNy03LjE2MyAxNi0xNiAxNnMtMTYtNy4xNjMtMTYtMTYgNy4xNjMtMTYgMTYtMTYgMTYgNy4xNjMgMTYgMTZ6bTMyIDBjMC04LjgzNyA3LjE2My0xNiAxNi0xNnMxNiA3LjE2MyAxNiAxNi03LjE2MyAxNi0xNiAxNi0xNi03LjE2My0xNi0xNnptOTYgMGMwIDguODM3LTcuMTYzIDE2LTE2IDE2cy0xNi03LjE2My0xNi0xNiA3LjE2My0xNiAxNi0xNiAxNiA3LjE2MyAxNiAxNnptLTE2MCAzMmMwIDguODM3LTcuMTYzIDE2LTE2IDE2cy0xNi03LjE2My0xNi0xNiA3LjE2My0xNiAxNi0xNiAxNiA3LjE2MyAxNiAxNnptNDgtMTZjOC44MzcgMCAxNiA3LjE2MyAxNiAxNnMtNy4xNjMgMTYtMTYgMTYtMTYtNy4xNjMtMTYtMTYgNy4xNjMtMTYgMTYtMTZ6bTgwIDE2YzAgOC44MzctNy4xNjMgMTYtMTYgMTZzLTE2LTcuMTYzLTE2LTE2IDcuMTYzLTE2IDE2LTE2IDE2IDcuMTYzIDE2IDE2em0tMTYwIDMyYzAgOC44MzctNy4xNjMgMTYtMTYgMTZzLTE2LTcuMTYzLTE2LTE2IDcuMTYzLTE2IDE2LTE2IDE2IDcuMTYzIDE2IDE2em0zMiAwYzAtOC44MzcgNy4xNjMtMTYgMTYtMTZzMTYgNy4xNjMgMTYgMTYtNy4xNjMgMTYtMTYgMTYtMTYtNy4xNjMtMTYtMTZ6bTk2IDBjMCA4LjgzNy03LjE2MyAxNi0xNiAxNnMtMTYtNy4xNjMtMTYtMTYgNy4xNjMtMTYgMTYtMTYgMTYgNy4xNjMgMTYgMTZ6bS0xMjggMzJjMC04LjgzNyA3LjE2My0xNiAxNi0xNnMxNiA3LjE2MyAxNiAxNi03LjE2MyAxNi0xNiAxNi0xNi03LjE2My0xNi0xNnptOTYgMGMwIDguODM3LTcuMTYzIDE2LTE2IDE2cy0xNi03LjE2My0xNi0xNiA3LjE2My0xNiAxNi0xNiAxNiA3LjE2MyAxNiAxNnptLTk2IDMyYzAgOC44MzctNy4xNjMgMTYtMTYgMTZzLTE2LTcuMTYzLTE2LTE2IDcuMTYzLTE2IDE2LTE2IDE2IDcuMTYzIDE2IDE2em02NCAwYzAgOC44MzctNy4xNjMgMTYtMTYgMTZzLTE2LTcuMTYzLTE2LTE2IDcuMTYzLTE2IDE2LTE2IDE2IDcuMTYzIDE2IDE2em0tMzIgMzJjMCA4LjgzNy03LjE2MyAxNi0xNiAxNnMtMTYtNy4xNjMtMTYtMTYgNy4xNjMtMTYgMTYtMTYgMTYgNy4xNjMgMTYgMTZ6bS0zMiAzMmMwIDguODM3LTcuMTYzIDE2LTE2IDE2cy0xNi03LjE2My0xNi0xNiA3LjE2My0xNiAxNi0xNiAxNiA3LjE2MyAxNiAxNnpcIl1cbn07XG52YXIgZmFTaHV0dGxlVmFuID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NodXR0bGUtdmFuJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNWI2XCIsIFwiTTYyOC44OCAyMTAuNjVMNDk0LjM5IDQ5LjI3QTQ4LjAxIDQ4LjAxIDAgMCAwIDQ1Ny41MiAzMkgzMkMxNC4zMyAzMiAwIDQ2LjMzIDAgNjR2Mjg4YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05NmgxMjhjMCA1My4wMiA0Mi45OCA5NiA5NiA5NnM5Ni00Mi45OCA5Ni05NmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjI0MS4zOGMwLTExLjIzLTMuOTQtMjIuMS0xMS4xMi0zMC43M3pNNjQgMTkyVjk2aDk2djk2SDY0em05NiAyNDBjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTE2MC0yNDBoLTk2Vjk2aDk2djk2em0xNjAgMjQwYy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4em0tOTYtMjQwVjk2aDY2LjAybDgwIDk2SDM4NHpcIl1cbn07XG52YXIgZmFTaWduID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpZ24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0ZDlcIiwgXCJNNDk2IDY0SDEyOFYxNmMwLTguOC03LjItMTYtMTYtMTZIODBjLTguOCAwLTE2IDcuMi0xNiAxNnY0OEgxNkM3LjIgNjQgMCA3MS4yIDAgODB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDQ4djM2OGMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2VjEyOGgzNjhjOC44IDAgMTYtNy4yIDE2LTE2VjgwYzAtOC44LTcuMi0xNi0xNi0xNnpNMTYwIDM4NGgzMjBWMTYwSDE2MHYyMjR6XCJdXG59O1xudmFyIGZhU2lnbkluQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpZ24taW4tYWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmY2XCIsIFwiTTQxNiA0NDhoLTg0Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmg4NGMxNy43IDAgMzItMTQuMyAzMi0zMlYxNjBjMC0xNy43LTE0LjMtMzItMzItMzJoLTg0Yy02LjYgMC0xMi01LjQtMTItMTJWNzZjMC02LjYgNS40LTEyIDEyLTEyaDg0YzUzIDAgOTYgNDMgOTYgOTZ2MTkyYzAgNTMtNDMgOTYtOTYgOTZ6bS00Ny0yMDFMMjAxIDc5Yy0xNS0xNS00MS00LjUtNDEgMTd2OTZIMjRjLTEzLjMgMC0yNCAxMC43LTI0IDI0djk2YzAgMTMuMyAxMC43IDI0IDI0IDI0aDEzNnY5NmMwIDIxLjUgMjYgMzIgNDEgMTdsMTY4LTE2OGM5LjMtOS40IDkuMy0yNC42IDAtMzR6XCJdXG59O1xudmFyIGZhU2lnbkxhbmd1YWdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpZ24tbGFuZ3VhZ2UnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyYTdcIiwgXCJNOTEuNDM0IDQ4My45ODdjLS4zMDctMTYuMDE4IDEzLjEwOS0yOS4xMjkgMjkuMTMtMjkuMTI5aDYyLjI5M3YtNS43MTRINTYuOTkzYy0xNi4wMjEgMC0yOS40MzctMTMuMTExLTI5LjEzLTI5LjEyOUMyOC4xNiA0MDQuNDkxIDQwLjgzNSAzOTIgNTYuNDI4IDM5MmgxMjYuNDI5di01LjcxNEgyOS4xMzZjLTE2LjAyMSAwLTI5LjQzNy0xMy4xMTEtMjkuMTMtMjkuMTI5LjI5Ny0xNS41MjIgMTIuOTczLTI4LjAxMyAyOC41NjYtMjguMDEzaDE1NC4yODZ2LTUuNzE0SDU3LjcwN2MtMTYuMDIxIDAtMjkuNDM3LTEzLjExMS0yOS4xMy0yOS4xMjkuMjk3LTE1LjUyMiAxMi45NzMtMjguMDEzIDI4LjU2Ni0yOC4wMTNoMTY4LjU2NmwtMzEuMDg1LTIyLjYwNmMtMTIuNzYyLTkuMjgxLTE1LjU4My0yNy4xNDktNi4zMDItMzkuOTEyIDkuMjgxLTEyLjc2MSAyNy4xNS0xNS41ODIgMzkuOTEyLTYuMzAybDEyMy4zNjEgODkuNzE1YTM0LjI4NyAzNC4yODcgMCAwIDEgMTQuMTIgMjcuNzI4djE0MS4xMzZjMCAxNS45MS0xMC45NDYgMjkuNzMtMjYuNDMzIDMzLjM3NGwtODAuNDcxIDE4LjkzNGExMzcuMTYgMTM3LjE2IDAgMCAxLTMxLjQxMSAzLjY0NkgxMjBjLTE1LjU5My0uMDAxLTI4LjI2OS0xMi40OTItMjguNTY2LTI4LjAxNHptNzMuMjQ5LTIyNS43MDFoMzYuNDIzbC0xMS4xODctOC4xMzZjLTE4LjU3OS0xMy41MTEtMjAuMzEzLTQwLjg4Ny0zLjE3LTU2LjUzNmwtMTMuMDA0LTE2LjdjLTkuODQzLTEyLjY0MS0yOC40My0xNS4xNzEtNDAuODgtNS4wODgtMTIuMDY1IDkuNzcxLTE0LjEzMyAyNy40NDctNC41NTMgMzkuNzVsMzYuMzcxIDQ2Ljcxem0yODMuMjk4LTIuMTAzbC01LjAwMy0xNTIuNDUyYy0uNTE4LTE1Ljc3MS0xMy43MjItMjguMTM2LTI5LjQ5My0yNy42MTktMTUuNzczLjUxOC0yOC4xMzcgMTMuNzIyLTI3LjYxOSAyOS40OTNsMS4yNjIgMzguNDE1TDI4My41NjUgMTEuMDE5Yy05LjU4LTEyLjMwMy0yNy4yMjMtMTQuNjMtMzkuNjUzLTUuMzI4LTEyLjgyNyA5LjU5OS0xNC45MjkgMjguMjQtNS4wODYgNDAuODgxbDc2Ljg4OSA5OC43NDUtNC41MDkgMy41MTEtOTQuNzktMTIxLjczNGMtOS41OC0xMi4zMDMtMjcuMjIzLTE0LjYzLTM5LjY1My01LjMyOC0xMi44MjcgOS41OTktMTQuOTI5IDI4LjI0LTUuMDg2IDQwLjg4MWw5NC40NDMgMTIxLjI4OC00LjUwOSAzLjUxMS03Ny42NzUtOTkuNzU0Yy05LjU4LTEyLjMwMy0yNy4yMjMtMTQuNjMtMzkuNjUzLTUuMzI4LTEyLjgyNyA5LjU5OS0xNC45MjkgMjguMjQtNS4wODYgNDAuODgxbDUyLjA1MyA2Ni44NDljMTIuNDk3LTguMjU3IDI5LjA1NS04LjI4NSA0MS42OS45MDRsMTIzLjM2IDg5LjcxNGMxMC45MDQgNy45MyAxNy40MTUgMjAuNzE1IDE3LjQxNSAzNC4xOTh2MTYuOTk5bDYxLjA2NC00Ny41NDlhMzQuMjg1IDM0LjI4NSAwIDAgMCAxMy4yMDItMjguMTc3elwiXVxufTtcbnZhciBmYVNpZ25PdXRBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2lnbi1vdXQtYWx0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmY1XCIsIFwiTTQ5NyAyNzNMMzI5IDQ0MWMtMTUgMTUtNDEgNC41LTQxLTE3di05NkgxNTJjLTEzLjMgMC0yNC0xMC43LTI0LTI0di05NmMwLTEzLjMgMTAuNy0yNCAyNC0yNGgxMzZWODhjMC0yMS40IDI1LjktMzIgNDEtMTdsMTY4IDE2OGM5LjMgOS40IDkuMyAyNC42IDAgMzR6TTE5MiA0MzZ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMkg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJWMTYwYzAtMTcuNyAxNC4zLTMyIDMyLTMyaDg0YzYuNiAwIDEyLTUuNCAxMi0xMlY3NmMwLTYuNi01LjQtMTItMTItMTJIOTZjLTUzIDAtOTYgNDMtOTYgOTZ2MTkyYzAgNTMgNDMgOTYgOTYgOTZoODRjNi42IDAgMTItNS40IDEyLTEyelwiXVxufTtcbnZhciBmYVNpZ25hbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzaWduYWwnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYwMTJcIiwgXCJNMjE2IDI4OGgtNDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djE5MmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OGM4Ljg0IDAgMTYtNy4xNiAxNi0xNlYzMDRjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTg4IDM4NEg0MGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2OTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTk2YzAtOC44NC03LjE2LTE2LTE2LTE2em0yNTYtMTkyaC00OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2Mjg4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjIwOGMwLTguODQtNy4xNi0xNi0xNi0xNnptMTI4LTk2aC00OGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2Mzg0YzAgOC44NCA3LjE2IDE2IDE2IDE2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2VjExMmMwLTguODQtNy4xNi0xNi0xNi0xNnpNNjAwIDBoLTQ4Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY0ODBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDhjOC44NCAwIDE2LTcuMTYgMTYtMTZWMTZjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6XCJdXG59O1xudmFyIGZhU2lnbmF0dXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpZ25hdHVyZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjViN1wiLCBcIk02MjMuMiAxOTJjLTUxLjggMy41LTEyNS43IDU0LjctMTYzLjEgNzEuNS0yOS4xIDEzLjEtNTQuMiAyNC40LTc2LjEgMjQuNC0yMi42IDAtMjYtMTYuMi0yMS4zLTUxLjkgMS4xLTggMTEuNy03OS4yLTQyLjctNzYuMS0yNS4xIDEuNS02NC4zIDI0LjgtMTY5LjUgMTI2TDE5MiAxODIuMmMzMC40LTc1LjktNTMuMi0xNTEuNS0xMjkuNy0xMDIuOEw3LjQgMTE2LjNDMCAxMjEtMi4yIDEzMC45IDIuNSAxMzguNGwxNy4yIDI3YzQuNyA3LjUgMTQuNiA5LjcgMjIuMSA0LjlsNTgtMzguOWMxOC40LTExLjcgNDAuNyA3LjIgMzIuNyAyNy4xTDM0LjMgNDA0LjFDMjcuNSA0MjEgMzcgNDQ4IDY0IDQ0OGM4LjMgMCAxNi41LTMuMiAyMi42LTkuNCA0Mi4yLTQyLjIgMTU0LjctMTUwLjcgMjExLjItMTk1LjgtMi4yIDI4LjUtMi4xIDU4LjkgMjAuNiA4My44IDE1LjMgMTYuOCAzNy4zIDI1LjMgNjUuNSAyNS4zIDM1LjYgMCA2OC0xNC42IDEwMi4zLTMwIDMzLTE0LjggOTktNjIuNiAxMzguNC02NS44IDguNS0uNyAxNS4yLTcuMyAxNS4yLTE1Ljh2LTMyLjFjLjItOS4xLTcuNS0xNi44LTE2LjYtMTYuMnpcIl1cbn07XG52YXIgZmFTaW1DYXJkID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NpbS1jYXJkJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmN2M0XCIsIFwiTTAgNjR2Mzg0YzAgMzUuMyAyOC43IDY0IDY0IDY0aDI1NmMzNS4zIDAgNjQtMjguNyA2NC02NFYxMjhMMjU2IDBINjRDMjguNyAwIDAgMjguNyAwIDY0em0yMjQgMTkyaC02NHYtNjRoNjR2NjR6bTk2IDBoLTY0di02NGgzMmMxNy43IDAgMzIgMTQuMyAzMiAzMnYzMnptLTY0IDEyOGg2NHYzMmMwIDE3LjctMTQuMyAzMi0zMiAzMmgtMzJ2LTY0em0tOTYgMGg2NHY2NGgtNjR2LTY0em0tOTYgMGg2NHY2NEg5NmMtMTcuNyAwLTMyLTE0LjMtMzItMzJ2LTMyem0wLTk2aDI1NnY2NEg2NHYtNjR6bTAtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJoMzJ2NjRINjR2LTMyelwiXVxufTtcbnZhciBmYVNpdGVtYXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2l0ZW1hcCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjBlOFwiLCBcIk0xMjggMzUySDMyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMnptLTI0LTgwaDE5MnY0OGg0OHYtNDhoMTkydjQ4aDQ4di01Ny41OWMwLTIxLjE3LTE3LjIzLTM4LjQxLTM4LjQxLTM4LjQxSDM0NHYtNjRoNDBjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlYzMmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDI1NmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDQwdjY0SDk0LjQxQzczLjIzIDIyNCA1NiAyNDEuMjMgNTYgMjYyLjQxVjMyMGg0OHYtNDh6bTI2NCA4MGgtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyem0yNDAgMGgtOTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyelwiXVxufTtcbnZhciBmYVNrYXRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2thdGluZycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjdjNVwiLCBcIk00MDAgMGMtMjYuNSAwLTQ4IDIxLjUtNDggNDhzMjEuNSA0OCA0OCA0OCA0OC0yMS41IDQ4LTQ4LTIxLjUtNDgtNDgtNDh6bTAgNDQ4Yy04LjggMC0xNiA3LjItMTYgMTZzLTcuMiAxNi0xNiAxNmgtOTZjLTguOCAwLTE2IDcuMi0xNiAxNnM3LjIgMTYgMTYgMTZoOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC04LjgtNy4yLTE2LTE2LTE2em0tMjgyLjIgOC42Yy02LjIgNi4yLTE2LjQgNi4zLTIyLjYgMGwtNjcuOS02Ny45Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMHMtNi4yIDE2LjQgMCAyMi42bDY3LjkgNjcuOWM5LjQgOS40IDIxLjcgMTQgMzQgMTRzMjQuNi00LjcgMzMuOS0xNGM2LjItNi4yIDYuMi0xNi40IDAtMjIuNnMtMTYuNC02LjMtMjIuNyAwem01Ni4xLTE3OS44bC05My43IDkzLjdjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4yIDYuMiA2LjIgMTQuNCA5LjQgMjIuNiA5LjRzMTYuNC0zLjEgMjIuNi05LjRsOTEuOS05MS45LTMwLjItMzAuMmMtNS01LTkuNC0xMC43LTEzLjItMTYuOHpNMTI4IDE2MGgxMDUuNWwtMjAuMSAxNy4yYy0xMy41IDExLjUtMjEuNiAyOC40LTIyLjMgNDYuMS0uNyAxNy44IDYuMSAzNS4yIDE4LjcgNDcuN2w3OC4yIDc4LjJWNDMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJ2LTg5LjRjMC0xMi42LTUuMS0yNS0xNC4xLTMzLjlsLTYxLTYxYy41LS40IDEuMi0uNiAxLjctMS4xbDgyLjMtODIuM2MxMS41LTExLjUgMTQuOS0yOC42IDguNy00My42LTYuMi0xNS0yMC43LTI0LjctMzctMjQuN0gxMjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMyczE0LjMgMzIgMzIgMzJ6XCJdXG59O1xudmFyIGZhU2tpaW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NraWluZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdjOVwiLCBcIk00MzIgOTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhTNDU4LjUgMCA0MzIgMHMtNDggMjEuNS00OCA0OCAyMS41IDQ4IDQ4IDQ4em03MyAzNTYuMWMtOS40LTkuNC0yNC42LTkuNC0zMy45IDAtMTIuMSAxMi4xLTMwLjUgMTUuNC00NS4xIDguN2wtMTM1LjgtNzAuMiA0OS4yLTczLjhjMTIuNy0xOSAxMC4yLTQ0LjUtNi02MC42TDI5MyAyMTUuN2wtMTA3LTUzLjFjLTIuOSAxOS45IDMuNCA0MCAxNy43IDU0LjRsNzUuMSA3NS4yLTQ1LjkgNjguOEwzNSAyNTguN2MtMTEuNy02LTI2LjItMS41LTMyLjMgMTAuMy02LjEgMTEuOC0xLjUgMjYuMyAxMC4zIDMyLjNsMzkxLjkgMjAyLjVjMTEuOSA1LjUgMjQuNSA4LjEgMzcuMSA4LjEgMjMuMiAwIDQ2LTkgNjMtMjYgOS4zLTkuMyA5LjMtMjQuNSAwLTMzLjh6TTEyMCA5MS42bC0xMS41IDIyLjVjMTQuNCA3LjMgMzEuMiA0LjkgNDIuOC00LjhsNDcuMiAyMy40Yy0uMS4xLS4xLjItLjIuM2wxMTQuNSA1Ni44IDMyLjQtMTMgNi40IDE5LjFjNCAxMi4xIDEyLjYgMjIgMjQgMjcuN2w1OC4xIDI5YzE1LjkgNy45IDM1IDEuNSA0Mi45LTE0LjMgNy45LTE1LjggMS41LTM1LTE0LjMtNDIuOWwtNTIuMS0yNi4xLTE3LjEtNTEuMmMtOC4xLTI0LjItNDAuOS01Ni42LTg0LjUtMzkuMmwtODEuMiAzMi41LTYyLjUtMzFjLjMtMTQuNS03LjItMjguNi0yMC45LTM1LjZsLTExLjEgMjEuN2gtLjJsLTM0LjQtN2MtMS44LS40LTMuNy4yLTUgMS43LTEuOSAyLjItMS43IDUuNS41IDcuNGwyNi4yIDIzelwiXVxufTtcbnZhciBmYVNraWluZ05vcmRpYyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdza2lpbmctbm9yZGljJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmN2NhXCIsIFwiTTMzNiA5NmMyNi41IDAgNDgtMjEuNSA0OC00OFMzNjIuNSAwIDMzNiAwcy00OCAyMS41LTQ4IDQ4IDIxLjUgNDggNDggNDh6bTIxNiAzMjBjLTEzLjIgMC0yNCAxMC43LTI0IDI0IDAgMTMuMi0xMC44IDI0LTI0IDI0aC02OS41TDQ2MCAyODUuNmMxMS43LTQuNyAyMC4xLTE2LjIgMjAuMS0yOS42IDAtMTcuNy0xNC4zLTMyLTMyLTMyaC00NEwzNzggMTcwLjhjLTEyLjUtMjUuNS0zNS41LTQ0LjItNjEuOC01MC45TDI0NSA5OC43Yy0yOC4zLTYuOC01Ny44LS41LTgwLjggMTcuMWwtMzkuNyAzMC40Yy0xNCAxMC43LTE2LjcgMzAuOC01LjkgNDQuOS43LjkgMS43IDEuMyAyLjQgMi4xTDY2LjkgNDY0SDI0Yy0xMy4yIDAtMjQgMTAuNy0yNCAyNHMxMC44IDI0IDI0IDI0aDQ4MGMzOS43IDAgNzItMzIuMyA3Mi03MiAwLTEzLjItMTAuOC0yNC0yNC0yNHptLTI2MC41IDQ4aC05Ni45bDQzLjEtOTEtMjItMTNjLTEyLjEtNy4yLTIxLjktMTYuOS0yOS41LTI3LjhMMTIzLjcgNDY0SDk5LjVsNTIuMy0yNjEuNGM0LjEtMSA4LjEtMi45IDExLjctNS42bDM5LjctMzAuNGM3LjctNS45IDE3LjQtOCAyNS4zLTYuMWwxNC43IDQuNC0zNy41IDg3LjRjLTEyLjYgMjkuNS0xLjMgNjQgMjYuMyA4MC4zbDg1IDUwLjItMjUuNSA4MS4yem0xMTAuNiAwaC00My42bDIzLjYtNzUuNWM1LjktMjAuOC0yLjktNDMuMS0yMS42LTU0LjRMMjk5LjMgMjk4bDMxLjMtNzguMyAyMC4zIDQxLjRjOCAxNi4zIDI0LjkgMjYuOSA0My4xIDI2LjloMzMuM2wtMjUuMiAxNzZ6XCJdXG59O1xudmFyIGZhU2t1bGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc2t1bGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NGNcIiwgXCJNMjU2IDBDMTE0LjYgMCAwIDEwMC4zIDAgMjI0YzAgNzAuMSAzNi45IDEzMi42IDk0LjUgMTczLjcgOS42IDYuOSAxNS4yIDE4LjEgMTMuNSAyOS45bC05LjQgNjYuMmMtMS40IDkuNiA2IDE4LjIgMTUuNyAxOC4ySDE5MnYtNTZjMC00LjQgMy42LTggOC04aDE2YzQuNCAwIDggMy42IDggOHY1Nmg2NHYtNTZjMC00LjQgMy42LTggOC04aDE2YzQuNCAwIDggMy42IDggOHY1Nmg3Ny43YzkuNyAwIDE3LjEtOC42IDE1LjctMTguMmwtOS40LTY2LjJjLTEuNy0xMS43IDMuOC0yMyAxMy41LTI5LjlDNDc1LjEgMzU2LjYgNTEyIDI5NC4xIDUxMiAyMjQgNTEyIDEwMC4zIDM5Ny40IDAgMjU2IDB6bS05NiAzMjBjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0em0xOTIgMGMtMzUuMyAwLTY0LTI4LjctNjQtNjRzMjguNy02NCA2NC02NCA2NCAyOC43IDY0IDY0LTI4LjcgNjQtNjQgNjR6XCJdXG59O1xudmFyIGZhU2t1bGxDcm9zc2JvbmVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NrdWxsLWNyb3NzYm9uZXMnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY3MTRcIiwgXCJNNDM5LjE1IDQ1My4wNkwyOTcuMTcgMzg0bDE0MS45OS02OS4wNmM3LjktMy45NSAxMS4xMS0xMy41NiA3LjE1LTIxLjQ2TDQzMiAyNjQuODVjLTMuOTUtNy45LTEzLjU2LTExLjExLTIxLjQ3LTcuMTZMMjI0IDM0OC40MSAzNy40NyAyNTcuNjljLTcuOS0zLjk1LTE3LjUxLS43NS0yMS40NyA3LjE2TDEuNjkgMjkzLjQ4Yy0zLjk1IDcuOS0uNzUgMTcuNTEgNy4xNSAyMS40NkwxNTAuODMgMzg0IDguODUgNDUzLjA2Yy03LjkgMy45NS0xMS4xMSAxMy41Ni03LjE1IDIxLjQ3bDE0LjMxIDI4LjYzYzMuOTUgNy45IDEzLjU2IDExLjExIDIxLjQ3IDcuMTVMMjI0IDQxOS41OWwxODYuNTMgOTAuNzJjNy45IDMuOTUgMTcuNTEuNzUgMjEuNDctNy4xNWwxNC4zMS0yOC42M2MzLjk1LTcuOTEuNzQtMTcuNTItNy4xNi0yMS40N3pNMTUwIDIzNy4yOGwtNS40OCAyNS44N2MtMi42NyAxMi42MiA1LjQyIDI0Ljg1IDE2LjQ1IDI0Ljg1aDEyNi4wOGMxMS4wMyAwIDE5LjEyLTEyLjIzIDE2LjQ1LTI0Ljg1bC01LjUtMjUuODdjNDEuNzgtMjIuNDEgNzAtNjIuNzUgNzAtMTA5LjI4QzM2OCA1Ny4zMSAzMDMuNTMgMCAyMjQgMFM4MCA1Ny4zMSA4MCAxMjhjMCA0Ni41MyAyOC4yMiA4Ni44NyA3MCAxMDkuMjh6TTI4MCAxMTJjMTcuNjUgMCAzMiAxNC4zNSAzMiAzMnMtMTQuMzUgMzItMzIgMzItMzItMTQuMzUtMzItMzIgMTQuMzUtMzIgMzItMzJ6bS0xMTIgMGMxNy42NSAwIDMyIDE0LjM1IDMyIDMycy0xNC4zNSAzMi0zMiAzMi0zMi0xNC4zNS0zMi0zMiAxNC4zNS0zMiAzMi0zMnpcIl1cbn07XG52YXIgZmFTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjcxNVwiLCBcIk01OTQuNTMgNTA4LjYzTDYuMTggNTMuOWMtNi45Ny01LjQyLTguMjMtMTUuNDctMi44MS0yMi40NUwyMy4wMSA2LjE4QzI4LjQzLS44IDM4LjQ5LTIuMDYgNDUuNDcgMy4zN0w2MzMuODIgNDU4LjFjNi45NyA1LjQyIDguMjMgMTUuNDcgMi44MSAyMi40NWwtMTkuNjQgMjUuMjdjLTUuNDIgNi45OC0xNS40OCA4LjIzLTIyLjQ2IDIuODF6XCJdXG59O1xudmFyIGZhU2xlaWdoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NsZWlnaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjdjY1wiLCBcIk02MTIuNyAzNTAuN2wtOS4zLTcuNGMtNi45LTUuNS0xNy00LjQtMjIuNSAyLjVsLTEwIDEyLjVjLTUuNSA2LjktNC40IDE3IDIuNSAyMi41bDkuMyA3LjRjNS45IDQuNyA5LjIgMTEuNyA5LjIgMTkuMiAwIDEzLjYtMTEgMjQuNi0yNC42IDI0LjZINDhjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoNTE2YzM5IDAgNzMuNy0yOS4zIDc1LjktNjguMyAxLjQtMjMuOC04LjctNDYuMy0yNy4yLTYxek0zMiAyMjRjMCA1OS42IDQwLjkgMTA5LjIgOTYgMTIzLjVWNDAwaDY0di00OGgxOTJ2NDhoNjR2LTQ4YzUzIDAgOTYtNDMgOTYtOTZ2LTk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyaC05NnY2NGMwIDM1LjMtMjguNyA2NC02NCA2NGgtMjAuN2MtNjUuOCAwLTEyNS45LTM3LjItMTU1LjMtOTYtMjkuNC01OC44LTg5LjYtOTYtMTU1LjMtOTZIMzJDMTQuMyAzMiAwIDQ2LjMgMCA2NHMxNC4zIDMyIDMyIDMydjEyOHpcIl1cbn07XG52YXIgZmFTbGlkZXJzSCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbGlkZXJzLWgnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxZGVcIiwgXCJNNDk2IDM4NEgxNjB2LTE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg4MHYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmgzMzZjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bTAtMTYwaC04MHYtMTZjMC04LjgtNy4yLTE2LTE2LTE2aC0zMmMtOC44IDAtMTYgNy4yLTE2IDE2djE2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDMzNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmg4MGM4LjggMCAxNi03LjIgMTYtMTZ2LTMyYzAtOC44LTcuMi0xNi0xNi0xNnptMC0xNjBIMjg4VjQ4YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnYxNkgxNkM3LjIgNjQgMCA3MS4yIDAgODB2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDIwOHYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMzJjOC44IDAgMTYtNy4yIDE2LTE2di0xNmgyMDhjOC44IDAgMTYtNy4yIDE2LTE2VjgwYzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFTbWlsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbWlsZScsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjExOFwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em04MCAxNjhjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0tMTYwIDBjMTcuNyAwIDMyIDE0LjMgMzIgMzJzLTE0LjMgMzItMzIgMzItMzItMTQuMy0zMi0zMiAxNC4zLTMyIDMyLTMyem0xOTQuOCAxNzAuMkMzMzQuMyAzODAuNCAyOTIuNSA0MDAgMjQ4IDQwMHMtODYuMy0xOS42LTExNC44LTUzLjhjLTEzLjYtMTYuMyAxMS0zNi43IDI0LjYtMjAuNSAyMi40IDI2LjkgNTUuMiA0Mi4yIDkwLjIgNDIuMnM2Ny44LTE1LjQgOTAuMi00Mi4yYzEzLjQtMTYuMiAzOC4xIDQuMiAyNC42IDIwLjV6XCJdXG59O1xudmFyIGZhU21pbGVCZWFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NtaWxlLWJlYW0nLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY1YjhcIiwgXCJNMjQ4IDhDMTExIDggMCAxMTkgMCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOHpNMTEyIDIyMy40YzMuMy00Mi4xIDMyLjItNzEuNCA1Ni03MS40czUyLjcgMjkuMyA1NiA3MS40Yy43IDguNi0xMC44IDExLjktMTQuOSA0LjVsLTkuNS0xN2MtNy43LTEzLjctMTkuMi0yMS42LTMxLjUtMjEuNnMtMjMuOCA3LjktMzEuNSAyMS42bC05LjUgMTdjLTQuMyA3LjQtMTUuOCA0LTE1LjEtNC41em0yNTAuOCAxMjIuOEMzMzQuMyAzODAuNCAyOTIuNSA0MDAgMjQ4IDQwMHMtODYuMy0xOS42LTExNC44LTUzLjhjLTEzLjUtMTYuMyAxMS0zNi43IDI0LjYtMjAuNSAyMi40IDI2LjkgNTUuMiA0Mi4yIDkwLjIgNDIuMnM2Ny44LTE1LjQgOTAuMi00Mi4yYzEzLjYtMTYuMiAzOC4xIDQuMyAyNC42IDIwLjV6bTYuMi0xMTguM2wtOS41LTE3Yy03LjctMTMuNy0xOS4yLTIxLjYtMzEuNS0yMS42cy0yMy44IDcuOS0zMS41IDIxLjZsLTkuNSAxN2MtNC4xIDcuMy0xNS42IDQtMTQuOS00LjUgMy4zLTQyLjEgMzIuMi03MS40IDU2LTcxLjRzNTIuNyAyOS4zIDU2IDcxLjRjLjYgOC42LTExIDExLjktMTUuMSA0LjV6XCJdXG59O1xudmFyIGZhU21pbGVXaW5rID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NtaWxlLXdpbmsnLFxuICBpY29uOiBbNDk2LCA1MTIsIFtdLCBcImY0ZGFcIiwgXCJNMCAyNTZjMCAxMzcgMTExIDI0OCAyNDggMjQ4czI0OC0xMTEgMjQ4LTI0OFMzODUgOCAyNDggOCAwIDExOSAwIDI1NnptMjAwLTQ4YzAgMTcuNy0xNC4zIDMyLTMyIDMycy0zMi0xNC4zLTMyLTMyIDE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMnptMTU4LjUgMTYuNWMtMTQuOC0xMy4yLTQ2LjItMTMuMi02MSAwTDI4OCAyMzNjLTguMyA3LjQtMjEuNi40LTE5LjgtMTAuOCA0LTI1LjIgMzQuMi00Mi4xIDU5LjktNDIuMVMzODQgMTk3IDM4OCAyMjIuMmMxLjcgMTEuMS0xMS40IDE4LjMtMTkuOCAxMC44bC05LjctOC41ek0xNTcuOCAzMjUuOEMxODAuMiAzNTIuNyAyMTMgMzY4IDI0OCAzNjhzNjcuOC0xNS40IDkwLjItNDIuMmMxMy42LTE2LjIgMzguMSA0LjIgMjQuNiAyMC41QzMzNC4zIDM4MC40IDI5Mi41IDQwMCAyNDggNDAwcy04Ni4zLTE5LjYtMTE0LjgtNTMuOGMtMTMuNS0xNi4zIDExLjItMzYuNyAyNC42LTIwLjR6XCJdXG59O1xudmFyIGZhU21vZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbW9nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNzVmXCIsIFwiTTYyNCAzNjhIODBjLTguOCAwLTE2IDcuMi0xNiAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoNTQ0YzguOCAwIDE2LTcuMiAxNi0xNnYtMTZjMC04LjgtNy4yLTE2LTE2LTE2em0tNDgwIDk2SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDEyOGM4LjggMCAxNi03LjIgMTYtMTZ2LTE2YzAtOC44LTcuMi0xNi0xNi0xNnptNDE2IDBIMjI0Yy04LjggMC0xNiA3LjItMTYgMTZ2MTZjMCA4LjggNy4yIDE2IDE2IDE2aDMzNmM4LjggMCAxNi03LjIgMTYtMTZ2LTE2YzAtOC44LTcuMi0xNi0xNi0xNnpNMTQ0IDI4OGgxNTYuMWMyMi41IDE5LjcgNTEuNiAzMiA4My45IDMyczYxLjMtMTIuMyA4My45LTMySDUyOGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMlM1ODkuOSA2NCA1MjggNjRjLTE4IDAtMzQuNyA0LjYtNDkuNyAxMi4xQzQ1NCAzMSA0MDYuOCAwIDM1MiAwYy00MSAwLTc3LjggMTcuMy0xMDQgNDQuOEMyMjEuOCAxNy4zIDE4NSAwIDE0NCAwIDY0LjUgMCAwIDY0LjUgMCAxNDRzNjQuNSAxNDQgMTQ0IDE0NHpcIl1cbn07XG52YXIgZmFTbW9raW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Ntb2tpbmcnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OGRcIiwgXCJNNjMyIDM1MmgtNDhjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04ek01NTMuMyA4Ny4xYy01LjctMy44LTkuMy0xMC05LjMtMTYuOFY4YzAtNC40LTMuNi04LTgtOGgtNDhjLTQuNCAwLTggMy42LTggOHY2Mi4zYzAgMjIgMTAuMiA0My40IDI4LjYgNTUuNCA0Mi4yIDI3LjMgNjcuNCA3My44IDY3LjQgMTI0VjI4MGMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04di0zMC4zYzAtNjUuNS0zMi40LTEyNi4yLTg2LjctMTYyLjZ6TTQzMiAzNTJINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM4NGM4LjggMCAxNi03LjIgMTYtMTZWMzY4YzAtOC44LTcuMi0xNi0xNi0xNnptLTMyIDExMkgyMjR2LTY0aDE3NnY2NHptODcuNy0zMjIuNEM0NjMuOCAxMjUgNDQ4IDk5LjMgNDQ4IDcwLjNWOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2NjYuNGMwIDQzLjcgMjQuNiA4MS42IDYwLjMgMTA2LjcgMjIuNCAxNS43IDM1LjcgNDEuMiAzNS43IDY4LjZWMjgwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTMwLjNjMC00My4zLTIxLTgzLjQtNTYuMy0xMDguMXpNNTM2IDM1MmgtNDhjLTQuNCAwLTggMy42LTggOHYxNDRjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOFYzNjBjMC00LjQtMy42LTgtOC04elwiXVxufTtcbnZhciBmYVNtb2tpbmdCYW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc21va2luZy1iYW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1NGRcIiwgXCJNOTYgMzA0YzAgOC44IDcuMiAxNiAxNiAxNmgxMTcuNWwtOTYtOTZIMTEyYy04LjggMC0xNiA3LjItMTYgMTZ2NjR6TTI1NiAwQzExNC42IDAgMCAxMTQuNiAwIDI1NnMxMTQuNiAyNTYgMjU2IDI1NiAyNTYtMTE0LjYgMjU2LTI1NlMzOTcuNCAwIDI1NiAwem0wIDQ0OGMtMTA1LjkgMC0xOTItODYuMS0xOTItMTkyIDAtNDEuNCAxMy4zLTc5LjcgMzUuNy0xMTEuMWwyNjcuNCAyNjcuNEMzMzUuNyA0MzQuNyAyOTcuNCA0NDggMjU2IDQ0OHptNDUuMi0xOTJIMzg0djMyaC01MC44bC0zMi0zMnptMTExLjEgMTExLjFMMzY1LjIgMzIwSDQwMGM4LjggMCAxNi03LjIgMTYtMTZ2LTY0YzAtOC44LTcuMi0xNi0xNi0xNkgyNjkuMkwxNDQuOSA5OS43QzE3Ni4zIDc3LjMgMjE0LjYgNjQgMjU2IDY0YzEwNS45IDAgMTkyIDg2LjEgMTkyIDE5MiAwIDQxLjQtMTMuMyA3OS43LTM1LjcgMTExLjF6TTMyMC42IDEyOGMtMTUuNiAwLTI4LjYtMTEuMi0zMS40LTI1LjktLjctMy42LTQtNi4xLTcuNy02LjFoLTE2LjJjLTUgMC04LjcgNC41LTggOS40IDQuNiAzMC45IDMxLjIgNTQuNiA2My4zIDU0LjYgMTUuNiAwIDI4LjYgMTEuMiAzMS40IDI1LjkuNyAzLjYgNCA2LjEgNy43IDYuMWgxNi4yYzUgMCA4LjctNC41IDgtOS40LTQuNi0zMC45LTMxLjItNTQuNi02My4zLTU0LjZ6XCJdXG59O1xudmFyIGZhU21zID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NtcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjdjZFwiLCBcIk0yNTYgMzJDMTE0LjYgMzIgMCAxMjUuMSAwIDI0MGMwIDQ5LjYgMjEuNCA5NSA1NyAxMzAuN0M0NC41IDQyMS4xIDIuNyA0NjYgMi4yIDQ2Ni41Yy0yLjIgMi4zLTIuOCA1LjctMS41IDguNyAxLjMgMyA0LjEgNC44IDcuMyA0LjggNjYuMyAwIDExNi0zMS44IDE0MC42LTUxLjQgMzIuNyAxMi4zIDY5IDE5LjQgMTA3LjQgMTkuNCAxNDEuNCAwIDI1Ni05My4xIDI1Ni0yMDhTMzk3LjQgMzIgMjU2IDMyek0xMjguMiAzMDRIMTE2Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMi4zYzYgMCAxMC40LTMuNSAxMC40LTYuNiAwLTEuMy0uOC0yLjctMi4xLTMuOGwtMjEuOS0xOC44Yy04LjUtNy4yLTEzLjMtMTcuNS0xMy4zLTI4LjEgMC0yMS4zIDE5LTM4LjYgNDIuNC0zOC42SDE1NmM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4aC0xMi4zYy02IDAtMTAuNCAzLjUtMTAuNCA2LjYgMCAxLjMuOCAyLjcgMi4xIDMuOGwyMS45IDE4LjhjOC41IDcuMiAxMy4zIDE3LjUgMTMuMyAyOC4xLjEgMjEuMy0xOSAzOC42LTQyLjQgMzguNnptMTkxLjgtOGMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LTh2LTY4LjJsLTI0LjggNTUuOGMtMi45IDUuOS0xMS40IDUuOS0xNC4zIDBMMjI0IDIyNy44VjI5NmMwIDQuNC0zLjYgOC04IDhoLTE2Yy00LjQgMC04LTMuNi04LThWMTkyYzAtOC44IDcuMi0xNiAxNi0xNmgxNmM2LjEgMCAxMS42IDMuNCAxNC4zIDguOGwxNy43IDM1LjQgMTcuNy0zNS40YzIuNy01LjQgOC4zLTguOCAxNC4zLTguOGgxNmM4LjggMCAxNiA3LjIgMTYgMTZ2MTA0em00OC4zIDhIMzU2Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMi4zYzYgMCAxMC40LTMuNSAxMC40LTYuNiAwLTEuMy0uOC0yLjctMi4xLTMuOGwtMjEuOS0xOC44Yy04LjUtNy4yLTEzLjMtMTcuNS0xMy4zLTI4LjEgMC0yMS4zIDE5LTM4LjYgNDIuNC0zOC42SDM5NmM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4aC0xMi4zYy02IDAtMTAuNCAzLjUtMTAuNCA2LjYgMCAxLjMuOCAyLjcgMi4xIDMuOGwyMS45IDE4LjhjOC41IDcuMiAxMy4zIDE3LjUgMTMuMyAyOC4xLjEgMjEuMy0xOC45IDM4LjYtNDIuMyAzOC42elwiXVxufTtcbnZhciBmYVNub3dib2FyZGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbm93Ym9hcmRpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3Y2VcIiwgXCJNNDMyIDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzQ1OC41IDAgNDMyIDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptMjguOCAxNTMuNmM1LjggNC4zIDEyLjUgNi40IDE5LjIgNi40IDkuNyAwIDE5LjMtNC40IDI1LjYtMTIuOCAxMC42LTE0LjEgNy44LTM0LjItNi40LTQ0LjhsLTExMS40LTgzLjVjLTEzLjgtMTAuMy0yOS4xLTE4LjQtNDUuNC0yMy44bC02My43LTIxLjItMjYuMS01Mi4xQzI0NC43IDIgMjI1LjUtNC40IDIwOS43IDMuNWMtMTUuOCA3LjktMjIuMiAyNy4xLTE0LjMgNDIuOWwyOS4xIDU4LjFjNS43IDExLjQgMTUuNiAxOS45IDI3LjcgMjRsMTYuNCA1LjUtNDEuMiAyMC42Yy0yMS44IDEwLjktMzUuNCAzMi44LTM1LjQgNTcuMnY1My4xbC03NC4xIDI0LjdjLTE2LjggNS42LTI1LjggMjMuNy0yMC4yIDQwLjUgMS43IDUuMiA0LjkgOS40IDguNyAxMi45bC0zOC43LTE0LjFjLTkuNy0zLjUtMTcuNC0xMC42LTIxLjgtMjAtNS42LTEyLTE5LjktMTcuMi0zMS45LTExLjZzLTE3LjIgMTkuOS0xMS42IDMxLjljOS44IDIxIDI3LjEgMzYuOSA0OC45IDQ0LjhsMzY0LjggMTMyLjdjOS43IDMuNSAxOS43IDUuMyAyOS43IDUuMyAxMi41IDAgMjQuOS0yLjcgMzYuNS04LjIgMTItNS42IDE3LjItMTkuOSAxMS42LTMxLjlTNDc0IDQ1NC43IDQ2MiA0NjAuM2MtOS4zIDQuNC0xOS44IDQuOC0yOS41IDEuM2wtOTAuOC0zMy4xYzguNy00LjEgMTUuNi0xMS44IDE3LjgtMjEuOWwyMS45LTEwMmMzLjktMTguMi0zLjItMzcuMi0xOC4xLTQ4LjRsLTUyLTM5IDY2LTMwLjUgODMuNSA2Mi45em0tMTQ0LjQgNTEuN2wtMTkuNyA5MmMtMS41IDcuMS0uMSAxMy45IDIuOCAyMGwtMTY5LjQtNjEuNmMyLjctLjIgNS40LS40IDgtMS4zbDg1LTI4LjRjMTkuNi02LjUgMzIuOC0yNC44IDMyLjgtNDUuNVYyNTZsNjAuNSA0NS4zelwiXVxufTtcbnZhciBmYVNub3dmbGFrZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbm93Zmxha2UnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyZGNcIiwgXCJNNDQwLjMgMzQ1LjJsLTMzLjgtMTkuNSAyNi03YzguMi0yLjIgMTMuMS0xMC43IDEwLjktMTguOWwtNC0xNC45Yy0yLjItOC4yLTEwLjctMTMuMS0xOC45LTEwLjlsLTcwLjggMTktNjMuOS0zNyA2My44LTM2LjkgNzAuOCAxOWM4LjIgMi4yIDE2LjctMi43IDE4LjktMTAuOWw0LTE0LjljMi4yLTguMi0yLjctMTYuNy0xMC45LTE4LjlsLTI2LTcgMzMuOC0xOS41YzcuNC00LjMgOS45LTEzLjcgNS43LTIxLjFMNDMwLjQgMTE5Yy00LjMtNy40LTEzLjctOS45LTIxLjEtNS43bC0zMy44IDE5LjUgNy0yNmMyLjItOC4yLTIuNy0xNi43LTEwLjktMTguOWwtMTQuOS00Yy04LjItMi4yLTE2LjcgMi43LTE4LjkgMTAuOWwtMTkgNzAuOC02Mi44IDM2LjJ2LTc3LjVsNTMuNy01My43YzYuMi02LjIgNi4yLTE2LjQgMC0yMi42bC0xMS4zLTExLjNjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDI1NiA1Ni40VjE2YzAtOC44LTcuMi0xNi0xNi0xNmgtMzJjLTguOCAwLTE2IDcuMi0xNiAxNnY0MC40bC0xOS43LTE5LjdjLTYuMi02LjItMTYuNC02LjItMjIuNiAwTDEzOC4zIDQ4Yy02LjMgNi4yLTYuMyAxNi40IDAgMjIuNmw1My43IDUzLjd2NzcuNWwtNjIuOC0zNi4yLTE5LTcwLjhjLTIuMi04LjItMTAuNy0xMy4xLTE4LjktMTAuOWwtMTQuOSA0Yy04LjIgMi4yLTEzLjEgMTAuNy0xMC45IDE4LjlsNyAyNi0zMy44LTE5LjVjLTcuNC00LjMtMTYuOC0xLjctMjEuMSA1LjdMMi4xIDE0NS43Yy00LjMgNy40LTEuNyAxNi44IDUuNyAyMS4xbDMzLjggMTkuNS0yNiA3Yy04LjMgMi4yLTEzLjIgMTAuNy0xMSAxOWw0IDE0LjljMi4yIDguMiAxMC43IDEzLjEgMTguOSAxMC45bDcwLjgtMTkgNjMuOCAzNi45LTYzLjggMzYuOS03MC44LTE5Yy04LjItMi4yLTE2LjcgMi43LTE4LjkgMTAuOWwtNCAxNC45Yy0yLjIgOC4yIDIuNyAxNi43IDEwLjkgMTguOWwyNiA3LTMzLjggMTkuNmMtNy40IDQuMy05LjkgMTMuNy01LjcgMjEuMWwxNS41IDI2LjhjNC4zIDcuNCAxMy43IDkuOSAyMS4xIDUuN2wzMy44LTE5LjUtNyAyNmMtMi4yIDguMiAyLjcgMTYuNyAxMC45IDE4LjlsMTQuOSA0YzguMiAyLjIgMTYuNy0yLjcgMTguOS0xMC45bDE5LTcwLjggNjIuOC0zNi4ydjc3LjVsLTUzLjcgNTMuN2MtNi4zIDYuMi02LjMgMTYuNCAwIDIyLjZsMTEuMyAxMS4zYzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDE5LjctMTkuN1Y0OTZjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNnYtNDAuNGwxOS43IDE5LjdjNi4yIDYuMiAxNi40IDYuMiAyMi42IDBsMTEuMy0xMS4zYzYuMi02LjIgNi4yLTE2LjQgMC0yMi42TDI1NiAzODcuN3YtNzcuNWw2Mi44IDM2LjIgMTkgNzAuOGMyLjIgOC4yIDEwLjcgMTMuMSAxOC45IDEwLjlsMTQuOS00YzguMi0yLjIgMTMuMS0xMC43IDEwLjktMTguOWwtNy0yNiAzMy44IDE5LjVjNy40IDQuMyAxNi44IDEuNyAyMS4xLTUuN2wxNS41LTI2LjhjNC4zLTcuMyAxLjgtMTYuOC01LjYtMjF6XCJdXG59O1xudmFyIGZhU25vd21hbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzbm93bWFuJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2QwXCIsIFwiTTUxMC45IDE1Mi4zbC01LjktMTQuNWMtMy4zLTgtMTIuNi0xMS45LTIwLjgtOC43TDQ1NiAxNDAuNnYtMjljMC04LjYtNy4yLTE1LjYtMTYtMTUuNmgtMTZjLTguOCAwLTE2IDctMTYgMTUuNnY0Ni45YzAgLjUuMyAxIC4zIDEuNWwtNTYuNCAyM2MtNS45LTEwLTEzLjMtMTguOS0yMi0yNi42IDEzLjYtMTYuNiAyMi0zNy40IDIyLTYwLjUgMC01My00My05Ni05Ni05NnMtOTYgNDMtOTYgOTZjMCAyMy4xIDguNSA0My45IDIyIDYwLjUtOC43IDcuNy0xNiAxNi42LTIyIDI2LjZsLTU2LjQtMjNjLjEtLjUuMy0xIC4zLTEuNXYtNDYuOUMxMDQgMTAzIDk2LjggOTYgODggOTZINzJjLTguOCAwLTE2IDctMTYgMTUuNnYyOWwtMjguMS0xMS41Yy04LjItMy4yLTE3LjUuNy0yMC44IDguN2wtNS45IDE0LjVjLTMuMyA4IC43IDE3LjEgOC45IDIwLjNsMTM1LjIgNTUuMmMtLjQgNC0xLjIgOC0xLjIgMTIuMiAwIDEwLjEgMS43IDE5LjYgNC4yIDI4LjlDMTIwLjkgMjk2LjQgMTA0IDMzNC4yIDEwNCAzNzZjMCA1NCAyOC40IDEwMC45IDcwLjggMTI3LjggOS4zIDUuOSAyMC4zIDguMiAzMS4zIDguMmg5OS4yYzEzLjMgMCAyNi4zLTQuMSAzNy4yLTExLjcgNDYuNS0zMi4zIDc0LjQtODkuNCA2Mi45LTE1Mi42LTUuNS0zMC4yLTIwLjUtNTcuNi00MS42LTc5IDIuNS05LjIgNC4yLTE4LjcgNC4yLTI4LjcgMC00LjItLjgtOC4xLTEuMi0xMi4yTDUwMiAxNzIuNmM4LjEtMy4xIDEyLjEtMTIuMiA4LjktMjAuM3pNMjI0IDk2Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTMyIDI3MmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2em0wLTY0Yy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6bTAtNjRjLTguOCAwLTE2LTcuMi0xNi0xNnM3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTcuMiAxNi0xNiAxNnptMC04OHMtMTYtMjMuMi0xNi0zMiA3LjItMTYgMTYtMTYgMTYgNy4yIDE2IDE2LTE2IDMyLTE2IDMyem0zMi01NmMtOC44IDAtMTYtNy4yLTE2LTE2czcuMi0xNiAxNi0xNiAxNiA3LjIgMTYgMTYtNy4yIDE2LTE2IDE2elwiXVxufTtcbnZhciBmYVNub3dwbG93ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Nub3dwbG93JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmN2QyXCIsIFwiTTEyMCAzNzZjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em04MCAwYy0xMy4zIDAtMjQgMTAuNy0yNCAyNHMxMC43IDI0IDI0IDI0IDI0LTEwLjcgMjQtMjQtMTAuNy0yNC0yNC0yNHptODAgMGMtMTMuMyAwLTI0IDEwLjctMjQgMjRzMTAuNyAyNCAyNCAyNCAyNC0xMC43IDI0LTI0LTEwLjctMjQtMjQtMjR6bTgwIDBjLTEzLjMgMC0yNCAxMC43LTI0IDI0czEwLjcgMjQgMjQgMjQgMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0em0yMzguNiA0OS40Yy0xNC41LTE0LjUtMjIuNi0zNC4xLTIyLjYtNTQuNlYyNjkuMmMwLTIwLjUgOC4xLTQwLjEgMjIuNi01NC42bDM2LjctMzYuN2M2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMjIuNi0yMi42Yy02LjItNi4yLTE2LjQtNi4yLTIyLjYgMGwtMzYuNyAzNi43Yy0yNi41IDI2LjUtNDEuNCA2Mi40LTQxLjQgOTkuOVYyODhoLTY0di01MC45YzAtOC43LTEuOC0xNy4yLTUuMi0yNS4yTDM2NC41IDI5LjFDMzU2LjkgMTEuNCAzMzkuNiAwIDMyMC4zIDBIMTc2Yy0yNi41IDAtNDggMjEuNS00OCA0OHYxMTJoLTE2Yy0yNi41IDAtNDggMjEuNS00OCA0OHY5MS4yQzI2LjMgMzE3LjIgMCAzNTUuNCAwIDQwMGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMmgyNTZjNjEuOSAwIDExMi01MC4xIDExMi0xMTIgMC0xNy4zLTQuMi0zMy40LTExLjItNDhINTEydjE4LjdjMCAzNy41IDE0LjkgNzMuNCA0MS40IDk5LjlsMzYuNyAzNi43YzYuMiA2LjIgMTYuNCA2LjIgMjIuNiAwbDIyLjYtMjIuNmM2LjItNi4yIDYuMi0xNi40IDAtMjIuNmwtMzYuNy0zNi43ek0xOTIgNjRoMTE3LjhsNjguNiAxNjBIMjU2bC02NC02NFY2NHptMTc2IDM4NEgxMTJjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDhoMjU2YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4elwiXVxufTtcbnZhciBmYVNvY2tzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvY2tzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNjk2XCIsIFwiTTIxNC42NiAzMTEuMDFMMjg4IDI1NlY5NkgxMjh2MTc2bC04Ni42NSA2NC42MWMtMzkuNCAyOS41Ni01My44NiA4NC40Mi0yOS4yMSAxMjcuMDZDMzAuMzkgNDk1LjI1IDYzLjI3IDUxMiA5Ni4wOCA1MTJjMjAuMDMgMCA0MC4yNS02LjI1IDU3LjUyLTE5LjJsMjEuODYtMTYuMzljLTI5Ljg1LTU1LjM4LTEzLjU0LTEyNS44NCAzOS4yLTE2NS40ek0yODggMzJjMC0xMS4wNSAzLjA3LTIxLjMgOC4wMi0zMC4zOEMyOTMuNC45MiAyOTAuODUgMCAyODggMEgxNjBjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJoMTYwVjMyek00ODAgMEgzNTJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2MzJoMTkyVjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJ6TTMyMCAyNzJsLTg2LjEzIDY0LjYxYy0zOS40IDI5LjU2LTUzLjg2IDg0LjQyLTI5LjIxIDEyNy4wNiAxOC4yNSAzMS41OCA1MC42MSA0OC4zMyA4My40MiA0OC4zMyAyMC4wMyAwIDQwLjI1LTYuMjUgNTcuNTItMTkuMmwxMTUuMi04Ni40QTEyNy45OTcgMTI3Ljk5NyAwIDAgMCA1MTIgMzA0Vjk2SDMyMHYxNzZ6XCJdXG59O1xudmFyIGZhU29sYXJQYW5lbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb2xhci1wYW5lbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjViYVwiLCBcIk00MzEuOTggNDQ4LjAxbC00Ny45Ny4wNVY0MTZoLTEyOHYzMi4yMWwtNDcuOTguMDVjLTguODIuMDEtMTUuOTcgNy4xNi0xNS45OCAxNS45OWwtLjA1IDMxLjczYy0uMDEgOC44NSA3LjE3IDE2LjAzIDE2LjAyIDE2LjAybDIyMy45Ni0uMjZjOC44Mi0uMDEgMTUuOTctNy4xNiAxNS45OC0xNS45OGwuMDQtMzEuNzNjLjAxLTguODUtNy4xNy0xNi4wMy0xNi4wMi0xNi4wMnpNNTg1LjIgMjYuNzRDNTgyLjU4IDExLjMxIDU2OC45OSAwIDU1My4wNiAwSDg2LjkzQzcxIDAgNTcuNDEgMTEuMzEgNTQuNzkgMjYuNzQtMy4zMiAzNjkuMTYuMDQgMzQ4LjA4LjAzIDM1MmMtLjAzIDE3LjMyIDE0LjI5IDMyIDMyLjYgMzJoNTc0Ljc0YzE4LjIzIDAgMzIuNTEtMTQuNTYgMzIuNTktMzEuNzkuMDItNC4wOCAzLjM1IDE2Ljk1LTU0Ljc2LTMyNS40N3pNMjU5LjgzIDY0aDEyMC4zM2w5Ljc3IDk2SDI1MC4wNmw5Ljc3LTk2em0tNzUuMTcgMjU2SDcxLjA5TDkwLjEgMjA4aDEwNS45N2wtMTEuNDEgMTEyem0xNi4yOS0xNjBIOTguMjRsMTYuMjktOTZoOTYuMTlsLTkuNzcgOTZ6bTMyLjgyIDE2MGwxMS40LTExMmgxNDkuNjVsMTEuNCAxMTJIMjMzLjc3em0xOTUuNS0yNTZoOTYuMTlsMTYuMjkgOTZINDM5LjA0bC05Ljc3LTk2em0yNi4wNiAyNTZsLTExLjQtMTEySDU0OS45bDE5LjAxIDExMkg0NTUuMzN6XCJdXG59O1xudmFyIGZhU29ydCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb3J0JyxcbiAgaWNvbjogWzMyMCwgNTEyLCBbXSwgXCJmMGRjXCIsIFwiTTQxIDI4OGgyMzhjMjEuNCAwIDMyLjEgMjUuOSAxNyA0MUwxNzcgNDQ4Yy05LjQgOS40LTI0LjYgOS40LTMzLjkgMEwyNCAzMjljLTE1LjEtMTUuMS00LjQtNDEgMTctNDF6bTI1NS0xMDVMMTc3IDY0Yy05LjQtOS40LTI0LjYtOS40LTMzLjkgMEwyNCAxODNjLTE1LjEgMTUuMS00LjQgNDEgMTcgNDFoMjM4YzIxLjQgMCAzMi4xLTI1LjkgMTctNDF6XCJdXG59O1xudmFyIGZhU29ydEFscGhhRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb3J0LWFscGhhLWRvd24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxNWRcIiwgXCJNMTc2IDM1MmgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzA0SDE2Yy0xNC4xOSAwLTIxLjM2IDE3LjI0LTExLjI5IDI3LjMxbDgwIDk2YTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtOTZDMTk3LjM1IDM2OS4yNiAxOTAuMjIgMzUyIDE3NiAzNTJ6bTI0MC02NEgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiA0NDYuMzdWNDY0YTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiAzMjEuNjNWMzA0YTE2IDE2IDAgMCAwLTE2LTE2em0zMS4wNi04NS4zOGwtNTkuMjctMTYwQTE2IDE2IDAgMCAwIDM3Mi43MiAzMmgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgMjI0aDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgMjI0SDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDE0NEwzNTIgOTZsMTYuMzkgNDh6XCJdXG59O1xudmFyIGZhU29ydEFscGhhRG93bkFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb3J0LWFscGhhLWRvd24tYWx0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODgxXCIsIFwiTTE3NiAzNTJoLTQ4VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMwNEgxNmMtMTQuMTkgMC0yMS4zNiAxNy4yNC0xMS4yOSAyNy4zMWw4MCA5NmExNiAxNiAwIDAgMCAyMi42MiAwbDgwLTk2QzE5Ny4zNSAzNjkuMjYgMTkwLjIyIDM1MiAxNzYgMzUyem0xMTItMTI4aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiA2NS42M1Y0OGExNiAxNiAwIDAgMC0xNi0xNkgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiAxOTAuMzdWMjA4YTE2IDE2IDAgMCAwIDE2IDE2em0xNTkuMDYgMjM0LjYybC01OS4yNy0xNjBBMTYgMTYgMCAwIDAgMzcyLjcyIDI4OGgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgNDgwaDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgNDgwSDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDQwMEwzNTIgMzUybDE2LjM5IDQ4elwiXVxufTtcbnZhciBmYVNvcnRBbHBoYVVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvcnQtYWxwaGEtdXAnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxNWVcIiwgXCJNMTYgMTYwaDQ4djMwNGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNjBoNDhjMTQuMjEgMCAyMS4zOC0xNy4yNCAxMS4zMS0yNy4zMWwtODAtOTZhMTYgMTYgMCAwIDAtMjIuNjIgMGwtODAgOTZDLTUuMzUgMTQyLjc0IDEuNzggMTYwIDE2IDE2MHptNDAwIDEyOEgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiA0NDYuMzdWNDY0YTE2IDE2IDAgMCAwIDE2IDE2aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiAzMjEuNjNWMzA0YTE2IDE2IDAgMCAwLTE2LTE2em0zMS4wNi04NS4zOGwtNTkuMjctMTYwQTE2IDE2IDAgMCAwIDM3Mi43MiAzMmgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgMjI0aDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgMjI0SDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDE0NEwzNTIgOTZsMTYuMzkgNDh6XCJdXG59O1xudmFyIGZhU29ydEFscGhhVXBBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ydC1hbHBoYS11cC1hbHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY4ODJcIiwgXCJNMTYgMTYwaDQ4djMwNGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNjBoNDhjMTQuMjEgMCAyMS4zOC0xNy4yNCAxMS4zMS0yNy4zMWwtODAtOTZhMTYgMTYgMCAwIDAtMjIuNjIgMGwtODAgOTZDLTUuMzUgMTQyLjc0IDEuNzggMTYwIDE2IDE2MHptMjcyIDY0aDEyOGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTU2bDYxLjI2LTcwLjQ1QTMyIDMyIDAgMCAwIDQzMiA2NS42M1Y0OGExNiAxNiAwIDAgMC0xNi0xNkgyODhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNTZsLTYxLjI2IDcwLjQ1QTMyIDMyIDAgMCAwIDI3MiAxOTAuMzdWMjA4YTE2IDE2IDAgMCAwIDE2IDE2em0xNTkuMDYgMjM0LjYybC01OS4yNy0xNjBBMTYgMTYgMCAwIDAgMzcyLjcyIDI4OGgtNDEuNDRhMTYgMTYgMCAwIDAtMTUuMDcgMTAuNjJsLTU5LjI3IDE2MEExNiAxNiAwIDAgMCAyNzIgNDgwaDI0LjgzYTE2IDE2IDAgMCAwIDE1LjIzLTExLjA4bDQuNDItMTIuOTJoNzFsNC40MSAxMi45MkExNiAxNiAwIDAgMCA0MDcuMTYgNDgwSDQzMmExNiAxNiAwIDAgMCAxNS4wNi0yMS4zOHpNMzM1LjYxIDQwMEwzNTIgMzUybDE2LjM5IDQ4elwiXVxufTtcbnZhciBmYVNvcnRBbW91bnREb3duID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvcnQtYW1vdW50LWRvd24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxNjBcIiwgXCJNMzA0IDQxNmgtNjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tMTI4LTY0aC00OFY0OGExNiAxNiAwIDAgMC0xNi0xNkg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMDRIMTZjLTE0LjE5IDAtMjEuMzcgMTcuMjQtMTEuMjkgMjcuMzFsODAgOTZhMTYgMTYgMCAwIDAgMjIuNjIgMGw4MC05NkMxOTcuMzUgMzY5LjI2IDE5MC4yMiAzNTIgMTc2IDM1MnptMjU2LTE5MkgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTkyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTY0IDEyOEgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNNDk2IDMySDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyNTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhU29ydEFtb3VudERvd25BbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ydC1hbW91bnQtZG93bi1hbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY4ODRcIiwgXCJNMjQwIDk2aDY0YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2aC02NGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnptMCAxMjhoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNkgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bTI1NiAxOTJIMjQwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI1NmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6bS0yNTYtNjRoMTkyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNkgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZ6bS02NCAwaC00OFY0OGExNiAxNiAwIDAgMC0xNi0xNkg4MGExNiAxNiAwIDAgMC0xNiAxNnYzMDRIMTZjLTE0LjE5IDAtMjEuMzcgMTcuMjQtMTEuMjkgMjcuMzFsODAgOTZhMTYgMTYgMCAwIDAgMjIuNjIgMGw4MC05NkMxOTcuMzUgMzY5LjI2IDE5MC4yMiAzNTIgMTc2IDM1MnpcIl1cbn07XG52YXIgZmFTb3J0QW1vdW50VXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ydC1hbW91bnQtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxNjFcIiwgXCJNMzA0IDQxNmgtNjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2ek0xNiAxNjBoNDh2MzA0YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2MGg0OGMxNC4yMSAwIDIxLjM4LTE3LjI0IDExLjMxLTI3LjMxbC04MC05NmExNiAxNiAwIDAgMC0yMi42MiAwbC04MCA5NkMtNS4zNSAxNDIuNzQgMS43NyAxNjAgMTYgMTYwem00MTYgMEgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTkyYTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTY0IDEyOEgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNNDk2IDMySDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmgyNTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhU29ydEFtb3VudFVwQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvcnQtYW1vdW50LXVwLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjg4NVwiLCBcIk0yNDAgOTZoNjRhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTY0YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2em0wIDEyOGgxMjhhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2SDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnptMjU2IDE5MkgyNDBhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjU2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptLTI1Ni02NGgxOTJhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2SDI0MGExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnpNMTYgMTYwaDQ4djMwNGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNjBoNDhjMTQuMjEgMCAyMS4zOS0xNy4yNCAxMS4zMS0yNy4zMWwtODAtOTZhMTYgMTYgMCAwIDAtMjIuNjIgMGwtODAgOTZDLTUuMzUgMTQyLjc0IDEuNzggMTYwIDE2IDE2MHpcIl1cbn07XG52YXIgZmFTb3J0RG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb3J0LWRvd24nLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYwZGRcIiwgXCJNNDEgMjg4aDIzOGMyMS40IDAgMzIuMSAyNS45IDE3IDQxTDE3NyA0NDhjLTkuNCA5LjQtMjQuNiA5LjQtMzMuOSAwTDI0IDMyOWMtMTUuMS0xNS4xLTQuNC00MSAxNy00MXpcIl1cbn07XG52YXIgZmFTb3J0TnVtZXJpY0Rvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ydC1udW1lcmljLWRvd24nLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxNjJcIiwgXCJNMzA0IDk2aDE2djY0aC0xNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg5NmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2aC00OGExNiAxNiAwIDAgMC0xNC4yOSA4LjgzbC0xNiAzMkExNiAxNiAwIDAgMCAzMDQgOTZ6bTI2LjE1IDE2Mi45MWE3OSA3OSAwIDAgMC01NSA1NC4xN2MtMTQuMjUgNTEuMDUgMjEuMjEgOTcuNzcgNjguODUgMTAyLjUzYTg0LjA3IDg0LjA3IDAgMCAxLTIwLjg1IDEyLjkxYy03LjU3IDMuNC0xMC44IDEyLjQ3LTguMTggMjAuMzRsOS45IDIwYzIuODcgOC42MyAxMi41MyAxMy40OSAyMC45IDkuOTEgNTgtMjQuNzYgODYuMjUtNjEuNjEgODYuMjUtMTMyVjMzNmMtLjAyLTUxLjIxLTQ4LjQtOTEuMzQtMTAxLjg1LTc3LjA5ek0zNTIgMzU2YTIwIDIwIDAgMSAxIDIwLTIwIDIwIDIwIDAgMCAxLTIwIDIwem0tMTc2LTRoLTQ4VjQ4YTE2IDE2IDAgMCAwLTE2LTE2SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMwNEgxNmMtMTQuMTkgMC0yMS4zNiAxNy4yNC0xMS4yOSAyNy4zMWw4MCA5NmExNiAxNiAwIDAgMCAyMi42MiAwbDgwLTk2QzE5Ny4zNSAzNjkuMjYgMTkwLjIyIDM1MiAxNzYgMzUyelwiXVxufTtcbnZhciBmYVNvcnROdW1lcmljRG93bkFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzb3J0LW51bWVyaWMtZG93bi1hbHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY4ODZcIiwgXCJNMTc2IDM1MmgtNDhWNDhhMTYgMTYgMCAwIDAtMTYtMTZIODBhMTYgMTYgMCAwIDAtMTYgMTZ2MzA0SDE2Yy0xNC4xOSAwLTIxLjM2IDE3LjI0LTExLjI5IDI3LjMxbDgwIDk2YTE2IDE2IDAgMCAwIDIyLjYyIDBsODAtOTZDMTk3LjM1IDM2OS4yNiAxOTAuMjIgMzUyIDE3NiAzNTJ6bTIyNCA2NGgtMTZWMzA0YTE2IDE2IDAgMCAwLTE2LTE2aC00OGExNiAxNiAwIDAgMC0xNC4yOSA4LjgzbC0xNiAzMkExNiAxNiAwIDAgMCAzMDQgMzUyaDE2djY0aC0xNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg5NmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTMzMC4xNyAzNC45MWE3OSA3OSAwIDAgMC01NSA1NC4xN2MtMTQuMjcgNTEuMDUgMjEuMTkgOTcuNzcgNjguODMgMTAyLjUzYTg0LjA3IDg0LjA3IDAgMCAxLTIwLjg1IDEyLjkxYy03LjU3IDMuNC0xMC44IDEyLjQ3LTguMTggMjAuMzRsOS45IDIwYzIuODcgOC42MyAxMi41MyAxMy40OSAyMC45IDkuOTEgNTgtMjQuNzcgODYuMjUtNjEuNjEgODYuMjUtMTMyVjExMmMtLjAyLTUxLjIxLTQ4LjQtOTEuMzQtMTAxLjg1LTc3LjA5ek0zNTIgMTMyYTIwIDIwIDAgMSAxIDIwLTIwIDIwIDIwIDAgMCAxLTIwIDIwelwiXVxufTtcbnZhciBmYVNvcnROdW1lcmljVXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc29ydC1udW1lcmljLXVwJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTYzXCIsIFwiTTMzMC4xNyAyNTguOTFhNzkgNzkgMCAwIDAtNTUgNTQuMTdjLTE0LjI3IDUxLjA1IDIxLjE5IDk3Ljc3IDY4LjgzIDEwMi41M2E4NC4wNyA4NC4wNyAwIDAgMS0yMC44NSAxMi45MWMtNy41NyAzLjQtMTAuOCAxMi40Ny04LjE4IDIwLjM0bDkuOSAyMGMyLjg3IDguNjMgMTIuNTMgMTMuNDkgMjAuOSA5LjkxIDU4LTI0Ljc2IDg2LjI1LTYxLjYxIDg2LjI1LTEzMlYzMzZjLS4wMi01MS4yMS00OC40LTkxLjM0LTEwMS44NS03Ny4wOXpNMzUyIDM1NmEyMCAyMCAwIDEgMSAyMC0yMCAyMCAyMCAwIDAgMS0yMCAyMHpNMzA0IDk2aDE2djY0aC0xNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg5NmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2aC00OGExNiAxNiAwIDAgMC0xNC4yOSA4LjgzbC0xNiAzMkExNiAxNiAwIDAgMCAzMDQgOTZ6TTEwNy4zMSAzNi42OWExNiAxNiAwIDAgMC0yMi42MiAwbC04MCA5NkMtNS4zNSAxNDIuNzQgMS43OCAxNjAgMTYgMTYwaDQ4djMwNGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNjBoNDhjMTQuMjEgMCAyMS4zOC0xNy4yNCAxMS4zMS0yNy4zMXpcIl1cbn07XG52YXIgZmFTb3J0TnVtZXJpY1VwQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvcnQtbnVtZXJpYy11cC1hbHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY4ODdcIiwgXCJNMTA3LjMxIDM2LjY5YTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDk2Qy01LjM1IDE0Mi43NCAxLjc4IDE2MCAxNiAxNjBoNDh2MzA0YTE2IDE2IDAgMCAwIDE2IDE2aDMyYTE2IDE2IDAgMCAwIDE2LTE2VjE2MGg0OGMxNC4yMSAwIDIxLjM4LTE3LjI0IDExLjMxLTI3LjMxek00MDAgNDE2aC0xNlYzMDRhMTYgMTYgMCAwIDAtMTYtMTZoLTQ4YTE2IDE2IDAgMCAwLTE0LjI5IDguODNsLTE2IDMyQTE2IDE2IDAgMCAwIDMwNCAzNTJoMTZ2NjRoLTE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDk2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMzMwLjE3IDM0LjkxYTc5IDc5IDAgMCAwLTU1IDU0LjE3Yy0xNC4yNyA1MS4wNSAyMS4xOSA5Ny43NyA2OC44MyAxMDIuNTNhODQuMDcgODQuMDcgMCAwIDEtMjAuODUgMTIuOTFjLTcuNTcgMy40LTEwLjggMTIuNDctOC4xOCAyMC4zNGw5LjkgMjBjMi44NyA4LjYzIDEyLjUzIDEzLjQ5IDIwLjkgOS45MSA1OC0yNC43NyA4Ni4yNS02MS42MSA4Ni4yNS0xMzJWMTEyYy0uMDItNTEuMjEtNDguNC05MS4zNC0xMDEuODUtNzcuMDl6TTM1MiAxMzJhMjAgMjAgMCAxIDEgMjAtMjAgMjAgMjAgMCAwIDEtMjAgMjB6XCJdXG59O1xudmFyIGZhU29ydFVwID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NvcnQtdXAnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImYwZGVcIiwgXCJNMjc5IDIyNEg0MWMtMjEuNCAwLTMyLjEtMjUuOS0xNy00MUwxNDMgNjRjOS40LTkuNCAyNC42LTkuNCAzMy45IDBsMTE5IDExOWMxNS4yIDE1LjEgNC41IDQxLTE2LjkgNDF6XCJdXG59O1xudmFyIGZhU3BhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwYScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjViYlwiLCBcIk01NjguMjUgMTkyYy0yOS4wNC4xMy0xMzUuMDEgNi4xNi0yMTMuODQgODMtMzMuMTIgMjkuNjMtNTMuMzYgNjMuMy02Ni40MSA5NC44Ni0xMy4wNS0zMS41Ni0zMy4yOS02NS4yMy02Ni40MS05NC44Ni03OC44My03Ni44NC0xODQuOC04Mi44Ny0yMTMuODQtODMtNC40MS0uMDItNy43OSAzLjQtNy43NSA3LjgyLjIzIDI3LjkyIDcuMTQgMTI2LjE0IDg4Ljc3IDE5OS4zQzE3Mi43OSA0ODAuOTQgMjU2IDQ4MCAyODggNDgwczExNS4xOS45NSAxOTkuMjMtODAuODhjODEuNjQtNzMuMTcgODguNTQtMTcxLjM4IDg4Ljc3LTE5OS4zLjA0LTQuNDItMy4zNC03Ljg0LTcuNzUtNy44MnpNMjg3Ljk4IDMwMi42YzEyLjgyLTE4Ljg1IDI3LjYtMzUuNzggNDQuMDktNTAuNTIgMTkuMDktMTguNjEgMzkuNTgtMzMuMyA2MC4yNi00NS4xOC0xNi40NC03MC41LTUxLjcyLTEzMy4wNS05Ni43My0xNzIuMjItNC4xMS0zLjU4LTExLjAyLTMuNTgtMTUuMTQgMC00NC45OSAzOS4xNC04MC4yNyAxMDEuNjMtOTYuNzQgMTcyLjA3IDIwLjM3IDExLjcgNDAuNSAyNi4xNCA1OS4yMiA0NC4zOWEyODIuNzY4IDI4Mi43NjggMCAwIDEgNDUuMDQgNTEuNDZ6XCJdXG59O1xudmFyIGZhU3BhY2VTaHV0dGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwYWNlLXNodXR0bGUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYxOTdcIiwgXCJNNTkyLjYwNCAyMDguMjQ0QzU1OS43MzUgMTkyLjgzNiA1MTUuNzc3IDE4NCA0NzIgMTg0SDE4Ni4zMjdjLTQuOTUyLTYuNTU1LTEwLjU4NS0xMS45NzgtMTYuNzItMTZIMzc2QzIyOS4xNTcgMTM3Ljc0NyAyMTkuNDAzIDMyIDk2LjAwMyAzMkg5NnYxMjhIODBWMzJjLTI2LjUxIDAtNDggMjguNjU0LTQ4IDY0djY0Yy0yMy4xOTcgMC0zMiAxMC4wMzItMzIgMjR2NDBjMCAxMy45ODMgOC44MTkgMjQgMzIgMjR2MTZjLTIzLjE5NyAwLTMyIDEwLjAzMi0zMiAyNHY0MGMwIDEzLjk4MyA4LjgxOSAyNCAzMiAyNHY2NGMwIDM1LjM0NiAyMS40OSA2NCA0OCA2NFYzNTJoMTZ2MTI4aC4wMDNjMTIzLjQgMCAxMzMuMTU0LTEwNS43NDcgMjc5Ljk5Ny0xMzZIMTY5LjYwNmM2LjEzNS00LjAyMiAxMS43NjgtOS40NDUgMTYuNzItMTZINDcyYzQzLjc3NyAwIDg3LjczNS04LjgzNiAxMjAuNjA0LTI0LjI0NEM2MjIuMjgyIDI4OS44NDUgNjQwIDI3MS45OTIgNjQwIDI1NnMtMTcuNzE4LTMzLjg0NS00Ny4zOTYtNDcuNzU2ek00ODggMjk2YTggOCAwIDAgMS04LTh2LTY0YTggOCAwIDAgMSA4LThjMzEuOTA5IDAgMzEuOTQyIDgwIDAgODB6XCJdXG59O1xudmFyIGZhU3BlbGxDaGVjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcGVsbC1jaGVjaycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjg5MVwiLCBcIk0yNzIgMjU2aDkxLjM2YzQzLjIgMCA4Mi0zMi4yIDg0LjUxLTc1LjM0YTc5LjgyIDc5LjgyIDAgMCAwLTI1LjI2LTYzLjA3IDc5LjgxIDc5LjgxIDAgMCAwIDkuMDYtNDQuOTFDNDI3LjkgMzAuNTcgMzg5LjMgMCAzNDcgMGgtNzVhMTYgMTYgMCAwIDAtMTYgMTZ2MjI0YTE2IDE2IDAgMCAwIDE2IDE2em00MC0yMDBoNDBhMjQgMjQgMCAwIDEgMCA0OGgtNDB6bTAgOTZoNTZhMjQgMjQgMCAwIDEgMCA0OGgtNTZ6TTE1NS4xMiAyMi4yNUEzMiAzMiAwIDAgMCAxMjQuNjQgMEg5OS4zNmEzMiAzMiAwIDAgMC0zMC40OCAyMi4yNUwuNTkgMjM1LjczQTE2IDE2IDAgMCAwIDE2IDI1NmgyNC45M2ExNiAxNiAwIDAgMCAxNS40Mi0xMS43M0w2OC4yOSAyMDhoODcuNDJsMTEuOTQgMzYuMjdBMTYgMTYgMCAwIDAgMTgzLjA3IDI1NkgyMDhhMTYgMTYgMCAwIDAgMTUuNDItMjAuMjd6TTg5LjM3IDE0NEwxMTIgNzUuM2wyMi42MyA2OC43em00ODIgMTMyLjQ4bC00NS4yMS00NS4zYTE1Ljg4IDE1Ljg4IDAgMCAwLTIyLjU5IDBsLTE1MS41IDE1MS41LTU1LjQxLTU1LjVhMTUuODggMTUuODggMCAwIDAtMjIuNTkgMGwtNDUuMyA0NS4zYTE2IDE2IDAgMCAwIDAgMjIuNTlsMTEyIDExMi4yMWExNS44OSAxNS44OSAwIDAgMCAyMi42IDBsMjA4LTIwOC4yMWExNiAxNiAwIDAgMC0uMDItMjIuNTl6XCJdXG59O1xudmFyIGZhU3BpZGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NwaWRlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjcxN1wiLCBcIk0xNTEuMTcgMTY3LjM1TDE3Ny4xIDE3Nmg0LjY3bDUuMjItMjYuMTJjLjcyLTMuNTggMS44LTcuNTggMy4yMS0xMS43OWwtMjAuMjktNDAuNTggMjMuOC03MS4zOWMyLjc5LTguMzgtMS43My0xNy40NC0xMC4xMi0yMC4yNEwxNjguNDIuODJjLTguMzgtMi44LTE3LjQ1IDEuNzMtMjAuMjQgMTAuMTJsLTI1Ljg5IDc3LjY4YTMyLjA0IDMyLjA0IDAgMCAwIDEuNzMgMjQuNDNsMjcuMTUgNTQuM3ptNDIyLjE0IDE4Mi4wM2wtNTIuNzUtNzkuMTJhMzIuMDAyIDMyLjAwMiAwIDAgMC0yNi42Mi0xNC4yNUg0MTZsNjguOTktMjQuMzZhMzIuMDMgMzIuMDMgMCAwIDAgMTYuNTEtMTIuNjFsNTMuNi04MC40MWM0LjktNy4zNSAyLjkxLTE3LjI5LTQuNDQtMjIuMTlsLTEzLjMxLTguODhjLTcuMzUtNC45LTE3LjI5LTIuOTEtMjIuMTkgNC40NGwtNTAuNTYgNzUuODNMNDA0LjEgMjA4SDM2OGwtMTAuMzctNTEuODVDMzU1LjQ0IDE0NS4xOCAzNDAuMjYgOTYgMjg4IDk2Yy01Mi4yNiAwLTY3LjQ0IDQ5LjE4LTY5LjYzIDYwLjE1TDIwOCAyMDhoLTM2LjFsLTYwLjQ5LTIwLjE3TDYwLjg0IDExMmMtNC45LTcuMzUtMTQuODMtOS4zNC0yMi4xOS00LjQ0bC0xMy4zMSA4Ljg4Yy03LjM1IDQuOS05LjM0IDE0LjgzLTQuNDQgMjIuMTlsNTMuNiA4MC40MWEzMi4wMyAzMi4wMyAwIDAgMCAxNi41MSAxMi42MUwxNjAgMjU2SDgyLjA2YTMyLjAyIDMyLjAyIDAgMCAwLTI2LjYzIDE0LjI1TDIuNjkgMzQ5LjM4Yy00LjkgNy4zNS0yLjkyIDE3LjI5IDQuNDQgMjIuMTlsMTMuMzEgOC44OGM3LjM1IDQuOSAxNy4yOSAyLjkxIDIyLjE5LTQuNDRsNDgtNzJoNDcuMDZsLTYwLjgzIDk3LjMzQTMxLjk4OCAzMS45ODggMCAwIDAgNzIgNDE4LjNWNDk2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di03My4xMWw3NC4wOC0xMTguNTNjLTEuMDEgMTQuMDUtMi4wOCAyOC4xMS0yLjA4IDQyLjIxQzE5MiAzOTkuNjQgMjMyLjc2IDQ0OCAyODggNDQ4czk2LTQ4LjM2IDk2LTEwMS40M2MwLTE0LjEtMS4wOC0yOC4xNi0yLjA4LTQyLjIxTDQ1NiA0MjIuODlWNDk2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzguODQgMCAxNi03LjE2IDE2LTE2di03Ny43MWMwLTYtMS42OS0xMS44OC00Ljg2LTE2Ljk2TDQzOC4zMSAzMDRoNDcuMDZsNDggNzJjNC45IDcuMzUgMTQuODQgOS4zNCAyMi4xOSA0LjQ0bDEzLjMxLTguODhjNy4zNi00LjkgOS4zNC0xNC44MyA0LjQ0LTIyLjE4ek00MDYuMDkgOTcuNTFsLTIwLjI5IDQwLjU4YzEuNDEgNC4yMSAyLjQ5IDguMjEgMy4yMSAxMS43OWw1LjIyIDI2LjEyaDQuNjdsMjUuOTMtOC42NSAyNy4xNS01NC4zYTMxLjk5NSAzMS45OTUgMCAwIDAgMS43My0yNC40M2wtMjUuODktNzcuNjhDNDI1LjAzIDIuNTYgNDE1Ljk2LTEuOTggNDA3LjU4LjgybC0xNS4xNyA1LjA2Yy04LjM4IDIuOC0xMi45MSAxMS44Ni0xMC4xMiAyMC4yNGwyMy44IDcxLjM5elwiXVxufTtcbnZhciBmYVNwaW5uZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Bpbm5lcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjExMFwiLCBcIk0zMDQgNDhjMCAyNi41MS0yMS40OSA0OC00OCA0OHMtNDgtMjEuNDktNDgtNDggMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDh6bS00OCAzNjhjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6bTIwOC0yMDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6TTk2IDI1NmMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4UzAgMjI5LjQ5IDAgMjU2czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4em0xMi45MjIgOTkuMDc4Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4YzAtMjYuNTA5LTIxLjQ5MS00OC00OC00OHptMjk0LjE1NiAwYy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4YzAtMjYuNTA5LTIxLjQ5LTQ4LTQ4LTQ4ek0xMDguOTIyIDYwLjkyMmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OC0yMS40OTEtNDgtNDgtNDh6XCJdXG59O1xudmFyIGZhU3Bsb3RjaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcGxvdGNoJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWJjXCIsIFwiTTQ3Mi4yOSAxOTUuODlsLTY3LjA2LTIyLjk1Yy0xOS4yOC02LjYtMzMuNTQtMjAuOTItMzguMTQtMzguM0wzNTEuMSA3NC4xOWMtMTEuNTgtNDMuNzctNzYuNTctNTcuMTMtMTA5Ljk4LTIyLjYybC00Ni4xNCA0Ny42N2MtMTMuMjYgMTMuNzEtMzMuNTQgMjAuOTMtNTQuMiAxOS4zMWwtNzEuODgtNS42MmMtNTIuMDUtNC4wNy04Ni45MyA0NC44OC01OS4wMyA4Mi44M2wzOC41NCA1Mi40MmMxMS4wOCAxNS4wNyAxMi44MiAzMy44NiA0LjY0IDUwLjI0TDI0LjYyIDM1NS40Yy0yMC41OSA0MS4yNSAyMi44NCA4NC44NyA3My40OSA3My44MWw2OS45Ni0xNS4yOGMyMC4xMS00LjM5IDQxLjQ1IDAgNTcuMDcgMTEuNzNsNTQuMzIgNDAuODNjMzkuMzIgMjkuNTYgMTAxLjA0IDcuNTcgMTA0LjQ1LTM3LjIybDQuNy02MS44NmMxLjM1LTE3Ljc5IDEyLjgtMzMuODYgMzAuNjMtNDIuOTlsNjItMzEuNzRjNDQuODgtMjIuOTYgMzkuNTktODAuMTctOC45NS05Ni43OXpcIl1cbn07XG52YXIgZmFTcHJheUNhbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzcHJheS1jYW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1YmRcIiwgXCJNMjI0IDMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTY0Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2aDEyOFYzMnptMjU2IDk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem0tMjU2IDMySDk2Yy01My4wMiAwLTk2IDQyLjk4LTk2IDk2djIyNGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDI1NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMyVjI1NmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2em0tNjQgMjU2Yy00NC4xOCAwLTgwLTM1LjgyLTgwLTgwczM1LjgyLTgwIDgwLTgwIDgwIDM1LjgyIDgwIDgwLTM1LjgyIDgwLTgwIDgwek00ODAgOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnMtMTQuMzMtMzItMzItMzItMzIgMTQuMzMtMzIgMzIgMTQuMzMgMzIgMzIgMzJ6bS05NiAzMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnMxNC4zMyAzMiAzMiAzMiAzMi0xNC4zMyAzMi0zMi0xNC4zMy0zMi0zMi0zMnptLTk2LTk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem05NiAwYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyem05NiAxOTJjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJzMTQuMzMgMzIgMzIgMzIgMzItMTQuMzMgMzItMzItMTQuMzMtMzItMzItMzJ6XCJdXG59O1xudmFyIGZhU3F1YXJlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjBjOFwiLCBcIk00MDAgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwiXVxufTtcbnZhciBmYVNxdWFyZUZ1bGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3F1YXJlLWZ1bGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0NWNcIiwgXCJNNTEyIDUxMkgwVjBoNTEydjUxMnpcIl1cbn07XG52YXIgZmFTcXVhcmVSb290QWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3NxdWFyZS1yb290LWFsdCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjY5OFwiLCBcIk01NzEuMzEgMjUxLjMxbC0yMi42Mi0yMi42MmMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMEw0ODAgMjc0Ljc1bC00Ni4wNi00Ni4wNmMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMjIuNjIgMjIuNjJjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNMNDM0Ljc1IDMyMGwtNDYuMDYgNDYuMDZjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsMjIuNjIgMjIuNjJjNi4yNSA2LjI1IDE2LjM4IDYuMjUgMjIuNjMgMEw0ODAgMzY1LjI1bDQ2LjA2IDQ2LjA2YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMjIuNjItMjIuNjJjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M0w1MjUuMjUgMzIwbDQ2LjA2LTQ2LjA2YzYuMjUtNi4yNSA2LjI1LTE2LjM4IDAtMjIuNjN6TTU1MiAwSDMwNy42NWMtMTQuNTQgMC0yNy4yNiA5LjgtMzAuOTUgMjMuODdsLTg0Ljc5IDMyMi44LTU4LjQxLTEwNi4xQTMyLjAwOCAzMi4wMDggMCAwIDAgMTA1LjQ3IDIyNEgyNGMtMTMuMjUgMC0yNCAxMC43NC0yNCAyNHY0OGMwIDEzLjI1IDEwLjc1IDI0IDI0IDI0aDQzLjYybDg4Ljg4IDE2My43M0MxNjguOTkgNTAzLjUgMTg2LjMgNTEyIDIwNC45NCA1MTJjMTcuMjcgMCA0NC40NC05IDU0LjI4LTQxLjQ4TDM1Ny4wMyA5Nkg1NTJjMTMuMjUgMCAyNC0xMC43NSAyNC0yNFYyNGMwLTEzLjI2LTEwLjc1LTI0LTI0LTI0elwiXVxufTtcbnZhciBmYVN0YW1wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YW1wJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNWJmXCIsIFwiTTMyIDUxMmg0NDh2LTY0SDMydjY0em0zODQtMjU2aC02Ni41NmMtMTYuMjYgMC0yOS40NC0xMy4xOC0yOS40NC0yOS40NHYtOS40NmMwLTI3LjM3IDguODgtNTMuNDEgMjEuNDYtNzcuNzIgOS4xMS0xNy42MSAxMi45LTM4LjM5IDkuMDUtNjAuNDItNi43Ny0zOC43OC0zOC40Ny03MC43LTc3LjI2LTc3LjQ1QzIxMi42Mi05LjA0IDE2MCAzNy4zMyAxNjAgOTZjMCAxNC4xNiAzLjEyIDI3LjU0IDguNjkgMzkuNThDMTgyLjAyIDE2NC40MyAxOTIgMTk0LjcgMTkyIDIyNi40OXYuMDdjMCAxNi4yNi0xMy4xOCAyOS40NC0yOS40NCAyOS40NEg5NmMtNTMuMDIgMC05NiA0Mi45OC05NiA5NnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDQ0OGMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmMwLTUzLjAyLTQyLjk4LTk2LTk2LTk2elwiXVxufTtcbnZhciBmYVN0YXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RhcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjAwNVwiLCBcIk0yNTkuMyAxNy44TDE5NCAxNTAuMiA0Ny45IDE3MS41Yy0yNi4yIDMuOC0zNi43IDM2LjEtMTcuNyA1NC42bDEwNS43IDEwMy0yNSAxNDUuNWMtNC41IDI2LjMgMjMuMiA0NiA0Ni40IDMzLjdMMjg4IDQzOS42bDEzMC43IDY4LjdjMjMuMiAxMi4yIDUwLjktNy40IDQ2LjQtMzMuN2wtMjUtMTQ1LjUgMTA1LjctMTAzYzE5LTE4LjUgOC41LTUwLjgtMTcuNy01NC42TDM4MiAxNTAuMiAzMTYuNyAxNy44Yy0xMS43LTIzLjYtNDUuNi0yMy45LTU3LjQgMHpcIl1cbn07XG52YXIgZmFTdGFyQW5kQ3Jlc2NlbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1hbmQtY3Jlc2NlbnQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2OTlcIiwgXCJNMzQwLjQ3IDQ2Ni4zNmMtMS40NSAwLTYuODkuNDYtOS4xOC40Ni0xMTYuMjUgMC0yMTAuODItOTQuNTctMjEwLjgyLTIxMC44MlMyMTUuMDQgNDUuMTggMzMxLjI5IDQ1LjE4YzIuMzIgMCA3LjcuNDYgOS4xOC40NiA3LjEzIDAgMTMuMzMtNS4wMyAxNC43NS0xMi4wNyAxLjQ2LTcuMjUtMi41NS0xNC40OS05LjQ3LTE3LjA5QzMxNi41OCA1LjU0IDI4Ni4zOSAwIDI1NiAwIDExNC44NCAwIDAgMTE0Ljg0IDAgMjU2czExNC44NCAyNTYgMjU2IDI1NmMzMC4yMyAwIDYwLjI4LTUuNDkgODkuMzItMTYuMzIgNS45Ni0yLjAyIDEwLjI4LTcuNjQgMTAuMjgtMTQuMjYgMC04LjA5LTYuMzktMTUuMDYtMTUuMTMtMTUuMDZ6bTE2Mi45OS0yNTIuNWwtNzYuMzgtMTEuMS0zNC4xNi02OS4yMWMtMS44My0zLjctNS4zOC01LjU1LTguOTMtNS41NXMtNy4xIDEuODUtOC45MyA1LjU1bC0zNC4xNiA2OS4yMS03Ni4zOCAxMS4xYy04LjE3IDEuMTgtMTEuNDMgMTEuMjItNS41MiAxNi45OWw1NS4yNyA1My44Ny0xMy4wNSA3Ni4wN2MtMS4xMSA2LjQ0IDQuMDEgMTEuNjYgOS44MSAxMS42NiAxLjUzIDAgMy4xMS0uMzYgNC42NC0xLjE3TDM4NCAzMzUuMzdsNjguMzEgMzUuOTFjMS41My44IDMuMTEgMS4xNyA0LjY0IDEuMTcgNS44IDAgMTAuOTItNS4yMyA5LjgxLTExLjY2bC0xMy4wNS03Ni4wNyA1NS4yNy01My44N2M1LjkxLTUuNzcgMi42NS0xNS44MS01LjUyLTE2Ljk5elwiXVxufTtcbnZhciBmYVN0YXJIYWxmID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0YXItaGFsZicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjA4OVwiLCBcIk0yODggMGMtMTEuNCAwLTIyLjggNS45LTI4LjcgMTcuOEwxOTQgMTUwLjIgNDcuOSAxNzEuNGMtMjYuMiAzLjgtMzYuNyAzNi4xLTE3LjcgNTQuNmwxMDUuNyAxMDMtMjUgMTQ1LjVjLTQuNSAyNi4xIDIzIDQ2IDQ2LjQgMzMuN0wyODggNDM5LjZWMHpcIl1cbn07XG52YXIgZmFTdGFySGFsZkFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdGFyLWhhbGYtYWx0JyxcbiAgaWNvbjogWzUzNiwgNTEyLCBbXSwgXCJmNWMwXCIsIFwiTTUwOC41NSAxNzEuNTFMMzYyLjE4IDE1MC4yIDI5Ni43NyAxNy44MUMyOTAuODkgNS45OCAyNzkuNDIgMCAyNjcuOTUgMGMtMTEuNCAwLTIyLjc5IDUuOS0yOC42OSAxNy44MWwtNjUuNDMgMTMyLjM4LTE0Ni4zOCAyMS4yOWMtMjYuMjUgMy44LTM2Ljc3IDM2LjA5LTE3Ljc0IDU0LjU5bDEwNS44OSAxMDMtMjUuMDYgMTQ1LjQ4Qzg2Ljk4IDQ5NS4zMyAxMDMuNTcgNTEyIDEyMi4xNSA1MTJjNC45MyAwIDEwLTEuMTcgMTQuODctMy43NWwxMzAuOTUtNjguNjggMTMwLjk0IDY4LjdjNC44NiAyLjU1IDkuOTIgMy43MSAxNC44MyAzLjcxIDE4LjYgMCAzNS4yMi0xNi42MSAzMS42Ni0zNy40bC0yNS4wMy0xNDUuNDkgMTA1LjkxLTEwMi45OGMxOS4wNC0xOC41IDguNTItNTAuOC0xNy43My01NC42em0tMTIxLjc0IDEyMy4ybC0xOC4xMiAxNy42MiA0LjI4IDI0Ljg4IDE5LjUyIDExMy40NS0xMDIuMTMtNTMuNTktMjIuMzgtMTEuNzQuMDMtMzE3LjE5IDUxLjAzIDEwMy4yOSAxMS4xOCAyMi42MyAyNS4wMSAzLjY0IDExNC4yMyAxNi42My04Mi42NSA4MC4zOHpcIl1cbn07XG52YXIgZmFTdGFyT2ZEYXZpZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdGFyLW9mLWRhdmlkJyxcbiAgaWNvbjogWzQ2NCwgNTEyLCBbXSwgXCJmNjlhXCIsIFwiTTQwNS42OCAyNTZsNTMuMjEtODkuMzlDNDczLjMgMTQyLjQgNDU1LjQ4IDExMiA0MjYuODggMTEySDMxOS45NmwtNTUuOTUtOTMuOThDMjU2Ljg2IDYuMDEgMjQ0LjQzIDAgMjMyIDBzLTI0Ljg2IDYuMDEtMzIuMDEgMTguMDJMMTQ0LjA0IDExMkgzNy4xMWMtMjguNiAwLTQ2LjQyIDMwLjQtMzIuMDEgNTQuNjFMNTguMzIgMjU2IDUuMSAzNDUuMzlDLTkuMzEgMzY5LjYgOC41MSA0MDAgMzcuMTEgNDAwaDEwNi45M2w1NS45NSA5My45OEMyMDcuMTQgNTA1Ljk5IDIxOS41NyA1MTIgMjMyIDUxMnMyNC44Ni02LjAxIDMyLjAxLTE4LjAyTDMxOS45NiA0MDBoMTA2LjkzYzI4LjYgMCA0Ni40Mi0zMC40IDMyLjAxLTU0LjYxTDQwNS42OCAyNTZ6bS0xMi43OC04OGwtMTkuOCAzMy4yNkwzNTMuMyAxNjhoMzkuNnptLTUyLjM5IDg4bC01Mi4zOSA4OEgxNzUuODhsLTUyLjM5LTg4IDUyLjM4LTg4aDExMi4yNWw1Mi4zOSA4OHpNMjMyIDczLjcyTDI1NC43OSAxMTJoLTQ1LjU3TDIzMiA3My43MnpNNzEuMSAxNjhoMzkuNmwtMTkuOCAzMy4yNkw3MS4xIDE2OHptMCAxNzZsMTkuOC0zMy4yNkwxMTAuNyAzNDRINzEuMXpNMjMyIDQzOC4yOEwyMDkuMjEgNDAwaDQ1LjU3TDIzMiA0MzguMjh6TTM1My4yOSAzNDRsMTkuOC0zMy4yNkwzOTIuOSAzNDRoLTM5LjYxelwiXVxufTtcbnZhciBmYVN0YXJPZkxpZmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Rhci1vZi1saWZlJyxcbiAgaWNvbjogWzQ4MCwgNTEyLCBbXSwgXCJmNjIxXCIsIFwiTTQ3MS45OSAzMzQuNDNMMzM2LjA2IDI1NmwxMzUuOTMtNzguNDNjNy42Ni00LjQyIDEwLjI4LTE0LjIgNS44Ni0yMS44NmwtMzIuMDItNTUuNDNjLTQuNDItNy42NS0xNC4yMS0xMC4yOC0yMS44Ny01Ljg2bC0xMzUuOTMgNzguNDNWMTZjMC04Ljg0LTcuMTctMTYtMTYuMDEtMTZoLTY0LjA0Yy04Ljg0IDAtMTYuMDEgNy4xNi0xNi4wMSAxNnYxNTYuODZMNTYuMDQgOTQuNDNjLTcuNjYtNC40Mi0xNy40NS0xLjc5LTIxLjg3IDUuODZMMi4xNSAxNTUuNzFjLTQuNDIgNy42NS0xLjggMTcuNDQgNS44NiAyMS44NkwxNDMuOTQgMjU2IDguMDEgMzM0LjQzYy03LjY2IDQuNDItMTAuMjggMTQuMjEtNS44NiAyMS44NmwzMi4wMiA1NS40M2M0LjQyIDcuNjUgMTQuMjEgMTAuMjcgMjEuODcgNS44NmwxMzUuOTMtNzguNDNWNDk2YzAgOC44NCA3LjE3IDE2IDE2LjAxIDE2aDY0LjA0YzguODQgMCAxNi4wMS03LjE2IDE2LjAxLTE2VjMzOS4xNGwxMzUuOTMgNzguNDNjNy42NiA0LjQyIDE3LjQ1IDEuOCAyMS44Ny01Ljg2bDMyLjAyLTU1LjQzYzQuNDItNy42NSAxLjgtMTcuNDMtNS44Ni0yMS44NXpcIl1cbn07XG52YXIgZmFTdGVwQmFja3dhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RlcC1iYWNrd2FyZCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA0OFwiLCBcIk02NCA0NjhWNDRjMC02LjYgNS40LTEyIDEyLTEyaDQ4YzYuNiAwIDEyIDUuNCAxMiAxMnYxNzYuNGwxOTUuNS0xODFDMzUyLjEgMjIuMyAzODQgMzYuNiAzODQgNjR2Mzg0YzAgMjcuNC0zMS45IDQxLjctNTIuNSAyNC42TDEzNiAyOTIuN1Y0NjhjMCA2LjYtNS40IDEyLTEyIDEySDc2Yy02LjYgMC0xMi01LjQtMTItMTJ6XCJdXG59O1xudmFyIGZhU3RlcEZvcndhcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RlcC1mb3J3YXJkJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMDUxXCIsIFwiTTM4NCA0NHY0MjRjMCA2LjYtNS40IDEyLTEyIDEyaC00OGMtNi42IDAtMTItNS40LTEyLTEyVjI5MS42bC0xOTUuNSAxODFDOTUuOSA0ODkuNyA2NCA0NzUuNCA2NCA0NDhWNjRjMC0yNy40IDMxLjktNDEuNyA1Mi41LTI0LjZMMzEyIDIxOS4zVjQ0YzAtNi42IDUuNC0xMiAxMi0xMmg0OGM2LjYgMCAxMiA1LjQgMTIgMTJ6XCJdXG59O1xudmFyIGZhU3RldGhvc2NvcGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RldGhvc2NvcGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwZjFcIiwgXCJNNDQ3LjEgMTEyYy0zNC4yLjUtNjIuMyAyOC40LTYzIDYyLjYtLjUgMjQuMyAxMi41IDQ1LjYgMzIgNTYuOFYzNDRjMCA1Ny4zLTUwLjIgMTA0LTExMiAxMDQtNjAgMC0xMDkuMi00NC4xLTExMS45LTk5LjJDMjY1IDMzMy44IDMyMCAyNjkuMiAzMjAgMTkyVjM2LjZjMC0xMS40LTguMS0yMS4zLTE5LjMtMjMuNUwyMzcuOC41Yy0xMy0yLjYtMjUuNiA1LjgtMjguMiAxOC44TDIwNi40IDM1Yy0yLjYgMTMgNS44IDI1LjYgMTguOCAyOC4ybDMwLjcgNi4xdjEyMS40YzAgNTIuOS00Mi4yIDk2LjctOTUuMSA5Ny4yLTUzLjQuNS05Ni45LTQyLjctOTYuOS05NlY2OS40bDMwLjctNi4xYzEzLTIuNiAyMS40LTE1LjIgMTguOC0yOC4ybC0zLjEtMTUuN0MxMDcuNyA2LjQgOTUuMS0yIDgyLjEuNkwxOS4zIDEzQzguMSAxNS4zIDAgMjUuMSAwIDM2LjZWMTkyYzAgNzcuMyA1NS4xIDE0MiAxMjguMSAxNTYuOEMxMzAuNyA0MzkuMiAyMDguNiA1MTIgMzA0IDUxMmM5NyAwIDE3Ni03NS40IDE3Ni0xNjhWMjMxLjRjMTkuMS0xMS4xIDMyLTMxLjcgMzItNTUuNCAwLTM1LjctMjkuMi02NC41LTY0LjktNjR6bS45IDgwYy04LjggMC0xNi03LjItMTYtMTZzNy4yLTE2IDE2LTE2IDE2IDcuMiAxNiAxNi03LjIgMTYtMTYgMTZ6XCJdXG59O1xudmFyIGZhU3RpY2t5Tm90ZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdGlja3ktbm90ZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjI0OVwiLCBcIk0zMTIgMzIwaDEzNlY1NmMwLTEzLjMtMTAuNy0yNC0yNC0yNEgyNEMxMC43IDMyIDAgNDIuNyAwIDU2djQwMGMwIDEzLjMgMTAuNyAyNCAyNCAyNGgyNjRWMzQ0YzAtMTMuMiAxMC44LTI0IDI0LTI0em0xMjkgNTVsLTk4IDk4Yy00LjUgNC41LTEwLjYgNy0xNyA3aC02VjM1MmgxMjh2Ni4xYzAgNi4zLTIuNSAxMi40LTcgMTYuOXpcIl1cbn07XG52YXIgZmFTdG9wID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3AnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwNGRcIiwgXCJNNDAwIDMySDQ4QzIxLjUgMzIgMCA1My41IDAgODB2MzUyYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY4MGMwLTI2LjUtMjEuNS00OC00OC00OHpcIl1cbn07XG52YXIgZmFTdG9wQ2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0b3AtY2lyY2xlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjhkXCIsIFwiTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTk2IDMyOGMwIDguOC03LjIgMTYtMTYgMTZIMTc2Yy04LjggMC0xNi03LjItMTYtMTZWMTc2YzAtOC44IDcuMi0xNiAxNi0xNmgxNjBjOC44IDAgMTYgNy4yIDE2IDE2djE2MHpcIl1cbn07XG52YXIgZmFTdG9wd2F0Y2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RvcHdhdGNoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMmYyXCIsIFwiTTQzMiAzMDRjMCAxMTQuOS05My4xIDIwOC0yMDggMjA4UzE2IDQxOC45IDE2IDMwNGMwLTEwNCA3Ni4zLTE5MC4yIDE3Ni0yMDUuNVY2NGgtMjhjLTYuNiAwLTEyLTUuNC0xMi0xMlYxMmMwLTYuNiA1LjQtMTIgMTItMTJoMTIwYzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTI4djM0LjVjMzcuNSA1LjggNzEuNyAyMS42IDk5LjcgNDQuNmwyNy41LTI3LjVjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDI4LjMgMjguM2M0LjcgNC43IDQuNyAxMi4zIDAgMTdsLTI5LjQgMjkuNC0uNi42QzQxOS43IDIyMy4zIDQzMiAyNjIuMiA0MzIgMzA0em0tMTc2IDM2VjE4OC41YzAtNi42LTUuNC0xMi0xMi0xMmgtNDBjLTYuNiAwLTEyIDUuNC0xMiAxMlYzNDBjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnpcIl1cbn07XG52YXIgZmFTdG9yZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdG9yZScsXG4gIGljb246IFs2MTYsIDUxMiwgW10sIFwiZjU0ZVwiLCBcIk02MDIgMTE4LjZMNTM3LjEgMTVDNTMxLjMgNS43IDUyMSAwIDUxMCAwSDEwNkM5NSAwIDg0LjcgNS43IDc4LjkgMTVMMTQgMTE4LjZjLTMzLjUgNTMuNS0zLjggMTI3LjkgNTguOCAxMzYuNCA0LjUuNiA5LjEuOSAxMy43LjkgMjkuNiAwIDU1LjgtMTMgNzMuOC0zMy4xIDE4IDIwLjEgNDQuMyAzMy4xIDczLjggMzMuMSAyOS42IDAgNTUuOC0xMyA3My44LTMzLjEgMTggMjAuMSA0NC4zIDMzLjEgNzMuOCAzMy4xIDI5LjYgMCA1NS44LTEzIDczLjgtMzMuMSAxOC4xIDIwLjEgNDQuMyAzMy4xIDczLjggMzMuMSA0LjcgMCA5LjItLjMgMTMuNy0uOSA2Mi44LTguNCA5Mi42LTgyLjggNTktMTM2LjR6TTUyOS41IDI4OGMtMTAgMC0xOS45LTEuNS0yOS41LTMuOFYzODRIMTE2di05OS44Yy05LjYgMi4yLTE5LjUgMy44LTI5LjUgMy44LTYgMC0xMi4xLS40LTE4LTEuMi01LjYtLjgtMTEuMS0yLjEtMTYuNC0zLjZWNDgwYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDQ0OGMxNy43IDAgMzItMTQuMyAzMi0zMlYyODMuMmMtNS40IDEuNi0xMC44IDIuOS0xNi40IDMuNi02LjEuOC0xMi4xIDEuMi0xOC4yIDEuMnpcIl1cbn07XG52YXIgZmFTdG9yZUFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdG9yZS1hbHQnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY1NGZcIiwgXCJNMzIwIDM4NEgxMjhWMjI0SDY0djI1NmMwIDE3LjcgMTQuMyAzMiAzMiAzMmgyNTZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMjI0aC02NHYxNjB6bTMxNC42LTI0MS44bC04NS4zLTEyOGMtNi04LjktMTYtMTQuMi0yNi43LTE0LjJIMTE3LjRjLTEwLjcgMC0yMC43IDUuMy0yNi42IDE0LjJsLTg1LjMgMTI4Yy0xNC4yIDIxLjMgMSA0OS44IDI2LjYgNDkuOEg2MDhjMjUuNSAwIDQwLjctMjguNSAyNi42LTQ5Ljh6TTUxMiA0OTZjMCA4LjggNy4yIDE2IDE2IDE2aDMyYzguOCAwIDE2LTcuMiAxNi0xNlYyMjRoLTY0djI3MnpcIl1cbn07XG52YXIgZmFTdHJlYW0gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RyZWFtJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTUwXCIsIFwiTTE2IDEyOGg0MTZjOC44NCAwIDE2LTcuMTYgMTYtMTZWNDhjMC04Ljg0LTcuMTYtMTYtMTYtMTZIMTZDNy4xNiAzMiAwIDM5LjE2IDAgNDh2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZ6bTQ4MCA4MEg4MGMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDE2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnptLTY0IDE3NkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2NjRjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDE2YzguODQgMCAxNi03LjE2IDE2LTE2di02NGMwLTguODQtNy4xNi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFTdHJlZXRWaWV3ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0cmVldC12aWV3JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMjFkXCIsIFwiTTM2Ny45IDMyOS43NmMtNC42MiA1LjMtOS43OCAxMC4xLTE1LjkgMTMuNjV2MjIuOTRjNjYuNTIgOS4zNCAxMTIgMjguMDUgMTEyIDQ5LjY1IDAgMzAuOTMtOTMuMTIgNTYtMjA4IDU2UzQ4IDQ0Ni45MyA0OCA0MTZjMC0yMS42IDQ1LjQ4LTQwLjMgMTEyLTQ5LjY1di0yMi45NGMtNi4xMi0zLjU1LTExLjI4LTguMzUtMTUuOS0xMy42NUM1OC44NyAzNDUuMzQgMCAzNzguMDUgMCA0MTZjMCA1My4wMiAxMTQuNjIgOTYgMjU2IDk2czI1Ni00Mi45OCAyNTYtOTZjMC0zNy45NS01OC44Ny03MC42Ni0xNDQuMS04Ni4yNHpNMjU2IDEyOGMzNS4zNSAwIDY0LTI4LjY1IDY0LTY0UzI5MS4zNSAwIDI1NiAwcy02NCAyOC42NS02NCA2NCAyOC42NSA2NCA2NCA2NHptLTY0IDE5MnY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDY0YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTk2YzAtMjYuNTEtMjEuNDktNDgtNDgtNDhoLTExLjhjLTExLjA3IDUuMDMtMjMuMjYgOC0zNi4yIDhzLTI1LjEzLTIuOTctMzYuMi04SDIwOGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyelwiXVxufTtcbnZhciBmYVN0cmlrZXRocm91Z2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3RyaWtldGhyb3VnaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBjY1wiLCBcIk00OTYgMjI0SDI5My45bC04Ny4xNy0yNi44M0E0My41NSA0My41NSAwIDAgMSAyMTkuNTUgMTEyaDY2Ljc5QTQ5Ljg5IDQ5Ljg5IDAgMCAxIDMzMSAxMzkuNThhMTYgMTYgMCAwIDAgMjEuNDYgNy4xNWw0Mi45NC0yMS40N2ExNiAxNiAwIDAgMCA3LjE2LTIxLjQ2bC0uNTMtMUExMjggMTI4IDAgMCAwIDI4Ny41MSAzMmgtNjhhMTIzLjY4IDEyMy42OCAwIDAgMC0xMjMgMTM1LjY0YzIgMjAuODkgMTAuMSAzOS44MyAyMS43OCA1Ni4zNkgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0ODBhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2em0tMTgwLjI0IDk2QTQzIDQzIDAgMCAxIDMzNiAzNTYuNDUgNDMuNTkgNDMuNTkgMCAwIDEgMjkyLjQ1IDQwMGgtNjYuNzlBNDkuODkgNDkuODkgMCAwIDEgMTgxIDM3Mi40MmExNiAxNiAwIDAgMC0yMS40Ni03LjE1bC00Mi45NCAyMS40N2ExNiAxNiAwIDAgMC03LjE2IDIxLjQ2bC41MyAxQTEyOCAxMjggMCAwIDAgMjI0LjQ5IDQ4MGg2OGExMjMuNjggMTIzLjY4IDAgMCAwIDEyMy0xMzUuNjQgMTE0LjI1IDExNC4yNSAwIDAgMC01LjM0LTI0LjM2elwiXVxufTtcbnZhciBmYVN0cm9vcHdhZmVsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N0cm9vcHdhZmVsJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTUxXCIsIFwiTTE4OC4xMiAyMTAuNzRMMTQyLjg2IDI1Nmw0NS4yNSA0NS4yNUwyMzMuMzcgMjU2bC00NS4yNS00NS4yNnptMTEzLjEzLTIyLjYyTDI1NiAxNDIuODZsLTQ1LjI1IDQ1LjI1TDI1NiAyMzMuMzdsNDUuMjUtNDUuMjV6bS05MC41IDEzNS43NkwyNTYgMzY5LjE0bDQ1LjI2LTQ1LjI2TDI1NiAyNzguNjNsLTQ1LjI1IDQ1LjI1ek0yNTYgMEMxMTQuNjIgMCAwIDExNC42MiAwIDI1NnMxMTQuNjIgMjU2IDI1NiAyNTYgMjU2LTExNC42MiAyNTYtMjU2UzM5Ny4zOCAwIDI1NiAwem0xODYuNjggMjk1LjZsLTExLjMxIDExLjMxYy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTI4LjI5LTI4LjI5LTQ1LjI1IDQ1LjI1IDMzLjk0IDMzLjk0IDE2Ljk3LTE2Ljk3YzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxMS4zMSAxMS4zMWMzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTE2Ljk3IDE2Ljk3IDE2Ljk3IDE2Ljk3YzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMTEuMzEgMTEuMzFjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTYuOTctMTYuOTctMTYuOTcgMTYuOTdjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTEuMzEtMTEuMzFjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxNi45Ny0xNi45Ny0zMy45NC0zMy45NC00NS4yNiA0NS4yNiAyOC4yOSAyOC4yOWMzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTExLjMxIDExLjMxYy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBMMjU2IDQxNC4zOWwtMjguMjkgMjguMjljLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTEuMzEtMTEuMzFjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwyOC4yOS0yOC4yOS00NS4yNS00NS4yNi0zMy45NCAzMy45NCAxNi45NyAxNi45N2MzLjEyIDMuMTIgMy4xMiA4LjE5IDAgMTEuMzFsLTExLjMxIDExLjMxYy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTE2Ljk3LTE2Ljk3LTE2Ljk3IDE2Ljk3Yy0zLjEyIDMuMTItOC4xOSAzLjEyLTExLjMxIDBsLTExLjMxLTExLjMxYy0zLjEyLTMuMTItMy4xMi04LjE5IDAtMTEuMzFsMTYuOTctMTYuOTctMTYuOTctMTYuOTdjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxMS4zMS0xMS4zMWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTYuOTcgMTYuOTcgMzMuOTQtMzMuOTQtNDUuMjUtNDUuMjUtMjguMjkgMjguMjljLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMEw2OS4zMiAyOTUuNmMtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxTDk3LjYxIDI1NmwtMjguMjktMjguMjljLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxMS4zMS0xMS4zMWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMjguMjkgMjguMjkgNDUuMjUtNDUuMjYtMzMuOTQtMzMuOTQtMTYuOTcgMTYuOTdjLTMuMTIgMy4xMi04LjE5IDMuMTItMTEuMzEgMGwtMTEuMzEtMTEuMzFjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxNi45Ny0xNi45Ny0xNi45Ny0xNi45N2MtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDExLjMxLTExLjMxYzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMGwxNi45NyAxNi45NyAxNi45Ny0xNi45N2MzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTEuMzEgMTEuMzFjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0xNi45NyAxNi45NyAzMy45NCAzMy45NCA0NS4yNi00NS4yNS0yOC4yOS0yOC4yOWMtMy4xMi0zLjEyLTMuMTItOC4xOSAwLTExLjMxbDExLjMxLTExLjMxYzMuMTItMy4xMiA4LjE5LTMuMTIgMTEuMzEgMEwyNTYgOTcuNjFsMjguMjktMjguMjljMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDExLjMxIDExLjMxYzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMjguMjkgMjguMjkgNDUuMjYgNDUuMjUgMzMuOTQtMzMuOTQtMTYuOTctMTYuOTdjLTMuMTItMy4xMi0zLjEyLTguMTkgMC0xMS4zMWwxMS4zMS0xMS4zMWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTYuOTcgMTYuOTcgMTYuOTctMTYuOTdjMy4xMi0zLjEyIDguMTktMy4xMiAxMS4zMSAwbDExLjMxIDExLjMxYzMuMTIgMy4xMiAzLjEyIDguMTkgMCAxMS4zMWwtMTYuOTcgMTYuOTcgMTYuOTcgMTYuOTdjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxbC0xMS4zMSAxMS4zMWMtMy4xMiAzLjEyLTguMTkgMy4xMi0xMS4zMSAwbC0xNi45Ny0xNi45Ny0zMy45NCAzMy45NCA0NS4yNSA0NS4yNiAyOC4yOS0yOC4yOWMzLjEyLTMuMTIgOC4xOS0zLjEyIDExLjMxIDBsMTEuMzEgMTEuMzFjMy4xMiAzLjEyIDMuMTIgOC4xOSAwIDExLjMxTDQxNC4zOSAyNTZsMjguMjkgMjguMjhhOC4wMTUgOC4wMTUgMCAwIDEgMCAxMS4zMnpNMjc4LjYzIDI1Nmw0NS4yNiA0NS4yNUwzNjkuMTQgMjU2bC00NS4yNS00NS4yNkwyNzguNjMgMjU2elwiXVxufTtcbnZhciBmYVN1YnNjcmlwdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdWJzY3JpcHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMmNcIiwgXCJNNDk2IDQ0OGgtMTZWMzA0YTE2IDE2IDAgMCAwLTE2LTE2aC00OGExNiAxNiAwIDAgMC0xNC4yOSA4LjgzbC0xNiAzMkExNiAxNiAwIDAgMCA0MDAgMzUyaDE2djk2aC0xNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg5NmExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6TTMzNiA2NGgtNjdhMTYgMTYgMCAwIDAtMTMuMTQgNi44N2wtNzkuOSAxMTUtNzkuOS0xMTVBMTYgMTYgMCAwIDAgODMgNjRIMTZBMTYgMTYgMCAwIDAgMCA4MHY0OGExNiAxNiAwIDAgMCAxNiAxNmgzMy40OGw3Ny44MSAxMTItNzcuODEgMTEySDE2YTE2IDE2IDAgMCAwLTE2IDE2djQ4YTE2IDE2IDAgMCAwIDE2IDE2aDY3YTE2IDE2IDAgMCAwIDEzLjE0LTYuODdsNzkuOS0xMTUgNzkuOSAxMTVBMTYgMTYgMCAwIDAgMjY5IDQ0OGg2N2ExNiAxNiAwIDAgMCAxNi0xNnYtNDhhMTYgMTYgMCAwIDAtMTYtMTZoLTMzLjQ4bC03Ny44MS0xMTIgNzcuODEtMTEySDMzNmExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnpcIl1cbn07XG52YXIgZmFTdWJ3YXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3Vid2F5JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjM5XCIsIFwiTTQ0OCA5NnYyNTZjMCA1MS44MTUtNjEuNjI0IDk2LTEzMC4wMjIgOTZsNjIuOTggNDkuNzIxQzM4Ni45MDUgNTAyLjQxNyAzODMuNTYyIDUxMiAzNzYgNTEySDcyYy03LjU3OCAwLTEwLjg5Mi05LjU5NC00Ljk1Ny0xNC4yNzlMMTMwLjAyMiA0NDhDNjEuODIgNDQ4IDAgNDAzLjk1NCAwIDM1MlY5NkMwIDQyLjk4MSA2NCAwIDEyOCAwaDE5MmM2NSAwIDEyOCA0Mi45ODEgMTI4IDk2ek0yMDAgMjMyVjEyMGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRINzJjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxMTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwNGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR6bTIwMCAwVjEyMGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjcyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MTEyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDRjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0em0tNDggNTZjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6bS0yNTYgMGMtMjYuNTEgMC00OCAyMS40OS00OCA0OHMyMS40OSA0OCA0OCA0OCA0OC0yMS40OSA0OC00OC0yMS40OS00OC00OC00OHpcIl1cbn07XG52YXIgZmFTdWl0Y2FzZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdWl0Y2FzZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBmMlwiLCBcIk0xMjggNDgwaDI1NlY4MGMwLTI2LjUtMjEuNS00OC00OC00OEgxNzZjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djQwMHptNjQtMzg0aDEyOHYzMkgxOTJWOTZ6bTMyMCA4MHYyNTZjMCAyNi41LTIxLjUgNDgtNDggNDhoLTQ4VjEyOGg0OGMyNi41IDAgNDggMjEuNSA0OCA0OHpNOTYgNDgwSDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhoNDh2MzUyelwiXVxufTtcbnZhciBmYVN1aXRjYXNlUm9sbGluZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdWl0Y2FzZS1yb2xsaW5nJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmNWMxXCIsIFwiTTMzNiAxNjBINDhjLTI2LjUxIDAtNDggMjEuNDktNDggNDh2MjI0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhoMTZ2MTZjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTE2aDEyOHYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZoMTZjMjYuNTEgMCA0OC0yMS40OSA0OC00OFYyMDhjMC0yNi41MS0yMS40OS00OC00OC00OHptLTE2IDIxNmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDI0MGM0LjQyIDAgOCAzLjU4IDggOHYxNnptMC05NmMwIDQuNDItMy41OCA4LTggOEg3MmMtNC40MiAwLTgtMy41OC04LTh2LTE2YzAtNC40MiAzLjU4LTggOC04aDI0MGM0LjQyIDAgOCAzLjU4IDggOHYxNnpNMTQ0IDQ4aDk2djgwaDQ4VjQ4YzAtMjYuNTEtMjEuNDktNDgtNDgtNDhoLTk2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4djgwaDQ4VjQ4elwiXVxufTtcbnZhciBmYVN1biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzdW4nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxODVcIiwgXCJNMjU2IDE2MGMtNTIuOSAwLTk2IDQzLjEtOTYgOTZzNDMuMSA5NiA5NiA5NiA5Ni00My4xIDk2LTk2LTQzLjEtOTYtOTYtOTZ6bTI0Ni40IDgwLjVsLTk0LjctNDcuMyAzMy41LTEwMC40YzQuNS0xMy42LTguNC0yNi41LTIxLjktMjEuOWwtMTAwLjQgMzMuNS00Ny40LTk0LjhjLTYuNC0xMi44LTI0LjYtMTIuOC0zMSAwbC00Ny4zIDk0LjdMOTIuNyA3MC44Yy0xMy42LTQuNS0yNi41IDguNC0yMS45IDIxLjlsMzMuNSAxMDAuNC05NC43IDQ3LjRjLTEyLjggNi40LTEyLjggMjQuNiAwIDMxbDk0LjcgNDcuMy0zMy41IDEwMC41Yy00LjUgMTMuNiA4LjQgMjYuNSAyMS45IDIxLjlsMTAwLjQtMzMuNSA0Ny4zIDk0LjdjNi40IDEyLjggMjQuNiAxMi44IDMxIDBsNDcuMy05NC43IDEwMC40IDMzLjVjMTMuNiA0LjUgMjYuNS04LjQgMjEuOS0yMS45bC0zMy41LTEwMC40IDk0LjctNDcuM2MxMy02LjUgMTMtMjQuNy4yLTMxLjF6bS0xNTUuOSAxMDZjLTQ5LjkgNDkuOS0xMzEuMSA0OS45LTE4MSAwLTQ5LjktNDkuOS00OS45LTEzMS4xIDAtMTgxIDQ5LjktNDkuOSAxMzEuMS00OS45IDE4MSAwIDQ5LjkgNDkuOSA0OS45IDEzMS4xIDAgMTgxelwiXVxufTtcbnZhciBmYVN1cGVyc2NyaXB0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1cGVyc2NyaXB0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTJiXCIsIFwiTTQ5NiAxNjBoLTE2VjE2YTE2IDE2IDAgMCAwLTE2LTE2aC00OGExNiAxNiAwIDAgMC0xNC4yOSA4LjgzbC0xNiAzMkExNiAxNiAwIDAgMCA0MDAgNjRoMTZ2OTZoLTE2YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDk2YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnpNMzM2IDY0aC02N2ExNiAxNiAwIDAgMC0xMy4xNCA2Ljg3bC03OS45IDExNS03OS45LTExNUExNiAxNiAwIDAgMCA4MyA2NEgxNkExNiAxNiAwIDAgMCAwIDgwdjQ4YTE2IDE2IDAgMCAwIDE2IDE2aDMzLjQ4bDc3LjgxIDExMi03Ny44MSAxMTJIMTZhMTYgMTYgMCAwIDAtMTYgMTZ2NDhhMTYgMTYgMCAwIDAgMTYgMTZoNjdhMTYgMTYgMCAwIDAgMTMuMTQtNi44N2w3OS45LTExNSA3OS45IDExNUExNiAxNiAwIDAgMCAyNjkgNDQ4aDY3YTE2IDE2IDAgMCAwIDE2LTE2di00OGExNiAxNiAwIDAgMC0xNi0xNmgtMzMuNDhsLTc3LjgxLTExMiA3Ny44MS0xMTJIMzM2YTE2IDE2IDAgMCAwIDE2LTE2VjgwYTE2IDE2IDAgMCAwLTE2LTE2elwiXVxufTtcbnZhciBmYVN1cnByaXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N1cnByaXNlJyxcbiAgaWNvbjogWzQ5NiwgNTEyLCBbXSwgXCJmNWMyXCIsIFwiTTI0OCA4QzExMSA4IDAgMTE5IDAgMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzg1IDggMjQ4IDh6TTEzNiAyMDhjMC0xNy43IDE0LjMtMzIgMzItMzJzMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyLTMyLTE0LjMtMzItMzJ6bTExMiAyMDhjLTM1LjMgMC02NC0yOC43LTY0LTY0czI4LjctNjQgNjQtNjQgNjQgMjguNyA2NCA2NC0yOC43IDY0LTY0IDY0em04MC0xNzZjLTE3LjcgMC0zMi0xNC4zLTMyLTMyczE0LjMtMzIgMzItMzIgMzIgMTQuMyAzMiAzMi0xNC4zIDMyLTMyIDMyelwiXVxufTtcbnZhciBmYVN3YXRjaGJvb2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3dhdGNoYm9vaycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVjM1wiLCBcIk00MzQuNjYsMTY3LjcxaDBMMzQ0LjUsNzcuMzZhMzEuODMsMzEuODMsMCwwLDAtNDUtLjA3aDBsLS4wNy4wN0wyMjQsMTUyLjg4VjQyNEw0MzQuNjYsMjEyLjlBMzIsMzIsMCwwLDAsNDM0LjY2LDE2Ny43MVpNNDgwLDMyMEgzNzMuMDlMMTg2LjY4LDUwNi41MWMtMi4wNiwyLjA3LTQuNSwzLjU4LTYuNjgsNS40OUg0ODBhMzIsMzIsMCwwLDAsMzItMzJWMzUyQTMyLDMyLDAsMCwwLDQ4MCwzMjBaTTE5MiwzMkEzMiwzMiwwLDAsMCwxNjAsMEgzMkEzMiwzMiwwLDAsMCwwLDMyVjQxNmE5Niw5NiwwLDAsMCwxOTIsMFpNOTYsNDQwYTI0LDI0LDAsMSwxLDI0LTI0QTI0LDI0LDAsMCwxLDk2LDQ0MFptMzItMTg0SDY0VjE5Mmg2NFptMC0xMjhINjRWNjRoNjRaXCJdXG59O1xudmFyIGZhU3dpbW1lciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzd2ltbWVyJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNWM0XCIsIFwiTTE4OS42MSAzMTAuNThjMy41NCAzLjI2IDE1LjI3IDkuNDIgMzQuMzkgOS40MnMzMC44Ni02LjE2IDM0LjM5LTkuNDJjMTYuMDItMTQuNzcgMzQuNS0yMi41OCA1My40Ni0yMi41OGgxNi4zYzE4Ljk2IDAgMzcuNDUgNy44MSA1My40NiAyMi41OCAzLjU0IDMuMjYgMTUuMjcgOS40MiAzNC4zOSA5LjQyczMwLjg2LTYuMTYgMzQuMzktOS40MmMxNC44Ni0xMy43MSAzMS44OC0yMS4xMiA0OS4zOS0yMi4xNmwtMTEyLjg0LTgwLjYgMTgtMTIuODZjMy42NC0yLjU4IDguMjgtMy41MiAxMi42Mi0yLjYxbDEwMC4zNSAyMS41M2MyNS45MSA1LjUzIDUxLjQ0LTEwLjk3IDU3LTM2Ljg4IDUuNTUtMjUuOTItMTAuOTUtNTEuNDQtMzYuODgtNTdMNDM3LjY4IDk4LjQ3Yy0zMC43My02LjU4LTYzLjAyLjEyLTg4LjU2IDE4LjM4bC04MC4wMiA1Ny4xN2MtMTAuMzggNy4zOS0xOS4zNiAxNi40NC0yNi43MiAyNi45NEwxNzMuNzUgMjk5YzUuNDcgMy4yMyAxMC44MiA2LjkzIDE1Ljg2IDExLjU4ek02MjQgMzUyaC0xNmMtMjYuMDQgMC00NS44LTguNDItNTYuMDktMTcuOS04LjktOC4yMS0xOS42Ni0xNC4xLTMxLjc3LTE0LjFoLTE2LjNjLTEyLjExIDAtMjIuODcgNS44OS0zMS43NyAxNC4xQzQ2MS44IDM0My41OCA0NDIuMDQgMzUyIDQxNiAzNTJzLTQ1LjgtOC40Mi01Ni4wOS0xNy45Yy04LjktOC4yMS0xOS42Ni0xNC4xLTMxLjc3LTE0LjFoLTE2LjNjLTEyLjExIDAtMjIuODcgNS44OS0zMS43NyAxNC4xQzI2OS44IDM0My41OCAyNTAuMDQgMzUyIDIyNCAzNTJzLTQ1LjgtOC40Mi01Ni4wOS0xNy45Yy04LjktOC4yMS0xOS42Ni0xNC4xLTMxLjc3LTE0LjFoLTE2LjNjLTEyLjExIDAtMjIuODcgNS44OS0zMS43NyAxNC4xQzc3LjggMzQzLjU4IDU4LjA0IDM1MiAzMiAzNTJIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDE2YzM4LjYyIDAgNzIuNzItMTIuMTkgOTYtMzEuODQgMjMuMjggMTkuNjYgNTcuMzggMzEuODQgOTYgMzEuODRzNzIuNzItMTIuMTkgOTYtMzEuODRjMjMuMjggMTkuNjYgNTcuMzggMzEuODQgOTYgMzEuODRzNzIuNzItMTIuMTkgOTYtMzEuODRjMjMuMjggMTkuNjYgNTcuMzggMzEuODQgOTYgMzEuODRoMTZjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYzAtOC44NC03LjE2LTE2LTE2LTE2em0tNTEyLTk2YzQ0LjE4IDAgODAtMzUuODIgODAtODBzLTM1LjgyLTgwLTgwLTgwLTgwIDM1LjgyLTgwIDgwIDM1LjgyIDgwIDgwIDgwelwiXVxufTtcbnZhciBmYVN3aW1taW5nUG9vbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICdzd2ltbWluZy1wb29sJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNWM1XCIsIFwiTTYyNCA0MTZoLTE2Yy0yNi4wNCAwLTQ1LjgtOC40Mi01Ni4wOS0xNy45LTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDNDYxLjggNDA3LjU4IDQ0Mi4wNCA0MTYgNDE2IDQxNnMtNDUuOC04LjQyLTU2LjA5LTE3LjljLTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDMjY5LjggNDA3LjU4IDI1MC4wNCA0MTYgMjI0IDQxNnMtNDUuOC04LjQyLTU2LjA5LTE3LjljLTguOS04LjIxLTE5LjY2LTE0LjEtMzEuNzctMTQuMWgtMTYuM2MtMTIuMTEgMC0yMi44NyA1Ljg5LTMxLjc3IDE0LjFDNzcuOCA0MDcuNTggNTguMDQgNDE2IDMyIDQxNkgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMTZjMzguNjIgMCA3Mi43Mi0xMi4xOSA5Ni0zMS44NCAyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NHM3Mi43Mi0xMi4xOSA5Ni0zMS44NGMyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NHM3Mi43Mi0xMi4xOSA5Ni0zMS44NGMyMy4yOCAxOS42NiA1Ny4zOCAzMS44NCA5NiAzMS44NGgxNmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS00MDAtMzJ2LTk2aDE5MnY5NmMxOS4xMiAwIDMwLjg2LTYuMTYgMzQuMzktOS40MiA5LjE3LTguNDYgMTkuMi0xNC4zNCAyOS42MS0xOC4wN1YxMjhjMC0xNy42NCAxNC4zNi0zMiAzMi0zMnMzMiAxNC4zNiAzMiAzMnYxNmMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMTZjMC01Mi45NC00My4wNi05Ni05Ni05NnMtOTYgNDMuMDYtOTYgOTZ2OTZIMjI0di05NmMwLTE3LjY0IDE0LjM2LTMyIDMyLTMyczMyIDE0LjM2IDMyIDMydjE2YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di0xNmMwLTUyLjk0LTQzLjA2LTk2LTk2LTk2cy05NiA0My4wNi05NiA5NnYyMjguNWMxMC40MSAzLjczIDIwLjQ0IDkuNjIgMjkuNjEgMTguMDcgMy41MyAzLjI3IDE1LjI3IDkuNDMgMzQuMzkgOS40M3pcIl1cbn07XG52YXIgZmFTeW5hZ29ndWUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3luYWdvZ3VlJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjliXCIsIFwiTTcwIDE5Ni41MUw2LjY3IDI2OC4yOUEyNi42NDMgMjYuNjQzIDAgMCAwIDAgMjg1LjkzVjUxMmgxMjhWMjM5LjU4bC0zOC00My4wN2MtNS4zMS02LjAxLTE0LjY5LTYuMDEtMjAgMHptNTYzLjMzIDcxLjc4TDU3MCAxOTYuNTFjLTUuMzEtNi4wMi0xNC42OS02LjAyLTIwIDBsLTM4IDQzLjA3VjUxMmgxMjhWMjg1LjkzYzAtNi41LTIuMzctMTIuNzctNi42Ny0xNy42NHpNMzM5Ljk5IDcuMDFjLTExLjY5LTkuMzUtMjguMjktOS4zNS0zOS45OCAwbC0xMjggMTAyLjRBMzIuMDA1IDMyLjAwNSAwIDAgMCAxNjAgMTM0LjRWNTEyaDk2di05Mi41N2MwLTMxLjg4IDIxLjc4LTYxLjQzIDUzLjI1LTY2LjU1QzM0OS4zNCAzNDYuMzUgMzg0IDM3Ny4xMyAzODQgNDE2djk2aDk2VjEzNC40YzAtOS43Mi00LjQyLTE4LjkyLTEyLjAxLTI0Ljk5bC0xMjgtMTAyLjR6bTUyLjA3IDIxNS41NWMxLjk4IDMuMTUtLjI5IDcuMjQtNCA3LjI0aC0zOC45NEwzMjQgMjY5Ljc5Yy0xLjg1IDIuOTUtNi4xNSAyLjk1LTggMGwtMjUuMTItMzkuOThoLTM4Ljk0Yy0zLjcyIDAtNS45OC00LjA5LTQtNy4yNGwxOS4yLTMwLjU2LTE5LjItMzAuNTZjLTEuOTgtMy4xNS4yOS03LjI0IDQtNy4yNGgzOC45NGwyNS4xMi00MGMxLjg1LTIuOTUgNi4xNS0yLjk1IDggMGwyNS4xMiAzOS45OGgzOC45NWMzLjcxIDAgNS45OCA0LjA5IDQgNy4yNEwzNzIuODcgMTkybDE5LjE5IDMwLjU2elwiXVxufTtcbnZhciBmYVN5bmMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3luYycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAyMVwiLCBcIk00NDAuNjUgMTIuNTdsNCA4Mi43N0EyNDcuMTYgMjQ3LjE2IDAgMCAwIDI1NS44MyA4QzEzNC43MyA4IDMzLjkxIDk0LjkyIDEyLjI5IDIwOS44MkExMiAxMiAwIDAgMCAyNC4wOSAyMjRoNDkuMDVhMTIgMTIgMCAwIDAgMTEuNjctOS4yNiAxNzUuOTEgMTc1LjkxIDAgMCAxIDMxNy01Ni45NGwtMTAxLjQ2LTQuODZhMTIgMTIgMCAwIDAtMTIuNTcgMTJ2NDcuNDFhMTIgMTIgMCAwIDAgMTIgMTJINTAwYTEyIDEyIDAgMCAwIDEyLTEyVjEyYTEyIDEyIDAgMCAwLTEyLTEyaC00Ny4zN2ExMiAxMiAwIDAgMC0xMS45OCAxMi41N3pNMjU1LjgzIDQzMmExNzUuNjEgMTc1LjYxIDAgMCAxLTE0Ni03Ny44bDEwMS44IDQuODdhMTIgMTIgMCAwIDAgMTIuNTctMTJ2LTQ3LjRhMTIgMTIgMCAwIDAtMTItMTJIMTJhMTIgMTIgMCAwIDAtMTIgMTJWNTAwYTEyIDEyIDAgMCAwIDEyIDEyaDQ3LjM1YTEyIDEyIDAgMCAwIDEyLTEyLjZsLTQuMTUtODIuNTdBMjQ3LjE3IDI0Ny4xNyAwIDAgMCAyNTUuODMgNTA0YzEyMS4xMSAwIDIyMS45My04Ni45MiAyNDMuNTUtMjAxLjgyYTEyIDEyIDAgMCAwLTExLjgtMTQuMThoLTQ5LjA1YTEyIDEyIDAgMCAwLTExLjY3IDkuMjZBMTc1Ljg2IDE3NS44NiAwIDAgMSAyNTUuODMgNDMyelwiXVxufTtcbnZhciBmYVN5bmNBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnc3luYy1hbHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyZjFcIiwgXCJNMzcwLjcyIDEzMy4yOEMzMzkuNDU4IDEwNC4wMDggMjk4Ljg4OCA4Ny45NjIgMjU1Ljg0OCA4OGMtNzcuNDU4LjA2OC0xNDQuMzI4IDUzLjE3OC0xNjIuNzkxIDEyNi44NS0xLjM0NCA1LjM2My02LjEyMiA5LjE1LTExLjY1MSA5LjE1SDI0LjEwM2MtNy40OTggMC0xMy4xOTQtNi44MDctMTEuODA3LTE0LjE3NkMzMy45MzMgOTQuOTI0IDEzNC44MTMgOCAyNTYgOGM2Ni40NDggMCAxMjYuNzkxIDI2LjEzNiAxNzEuMzE1IDY4LjY4NUw0NjMuMDMgNDAuOTdDNDc4LjE0OSAyNS44NTEgNTA0IDM2LjU1OSA1MDQgNTcuOTQxVjE5MmMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMzQ1Ljk0MWMtMjEuMzgyIDAtMzIuMDktMjUuODUxLTE2Ljk3MS00MC45NzFsNDEuNzUtNDEuNzQ5ek0zMiAyOTZoMTM0LjA1OWMyMS4zODIgMCAzMi4wOSAyNS44NTEgMTYuOTcxIDQwLjk3MWwtNDEuNzUgNDEuNzVjMzEuMjYyIDI5LjI3MyA3MS44MzUgNDUuMzE5IDExNC44NzYgNDUuMjggNzcuNDE4LS4wNyAxNDQuMzE1LTUzLjE0NCAxNjIuNzg3LTEyNi44NDkgMS4zNDQtNS4zNjMgNi4xMjItOS4xNSAxMS42NTEtOS4xNWg1Ny4zMDRjNy40OTggMCAxMy4xOTQgNi44MDcgMTEuODA3IDE0LjE3NkM0NzguMDY3IDQxNy4wNzYgMzc3LjE4NyA1MDQgMjU2IDUwNGMtNjYuNDQ4IDAtMTI2Ljc5MS0yNi4xMzYtMTcxLjMxNS02OC42ODVMNDguOTcgNDcxLjAzQzMzLjg1MSA0ODYuMTQ5IDggNDc1LjQ0MSA4IDQ1NC4wNTlWMzIwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHpcIl1cbn07XG52YXIgZmFTeXJpbmdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3N5cmluZ2UnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0OGVcIiwgXCJNMjAxLjUgMTc0LjhsNTUuNyA1NS44YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMGwtNTUuNy01NS44LTQ1LjMgNDUuMyA1NS44IDU1LjhjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwTDExMSAyNjUuMmwtMjYuNCAyNi40Yy0xNy4zIDE3LjMtMjUuNiA0MS4xLTIzIDY1LjRsNy4xIDYzLjZMMi4zIDQ4N2MtMy4xIDMuMS0zLjEgOC4yIDAgMTEuM2wxMS4zIDExLjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw2Ni4zLTY2LjMgNjMuNiA3LjFjMjMuOSAyLjYgNDcuOS01LjQgNjUuNC0yM2wxODEuOS0xODEuOS0xMzUuNy0xMzUuNy02NC45IDY1em0zMDguMi05My4zTDQzMC41IDIuM2MtMy4xLTMuMS04LjItMy4xLTExLjMgMGwtMTEuMyAxMS4zYy0zLjEgMy4xLTMuMSA4LjIgMCAxMS4zbDI4LjMgMjguMy00NS4zIDQ1LjMtNTYuNi01Ni42LTE3LTE3Yy0zLjEtMy4xLTguMi0zLjEtMTEuMyAwbC0zMy45IDMzLjljLTMuMSAzLjEtMy4xIDguMiAwIDExLjNsMTcgMTdMNDI0LjggMjIzbDE3IDE3YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsMzMuOS0zNGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC03My41LTczLjUgNDUuMy00NS4zIDI4LjMgMjguM2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDExLjMtMTEuM2MzLjEtMy4yIDMuMS04LjIgMC0xMS40elwiXVxufTtcbnZhciBmYVRhYmxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhYmxlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMGNlXCIsIFwiTTQ2NCAzMkg0OEMyMS40OSAzMiAwIDUzLjQ5IDAgODB2MzUyYzAgMjYuNTEgMjEuNDkgNDggNDggNDhoNDE2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODBjMC0yNi41MS0yMS40OS00OC00OC00OHpNMjI0IDQxNkg2NHYtOTZoMTYwdjk2em0wLTE2MEg2NHYtOTZoMTYwdjk2em0yMjQgMTYwSDI4OHYtOTZoMTYwdjk2em0wLTE2MEgyODh2LTk2aDE2MHY5NnpcIl1cbn07XG52YXIgZmFUYWJsZVRlbm5pcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWJsZS10ZW5uaXMnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0NWRcIiwgXCJNNDk2LjIgMjk2LjVDNTI3LjcgMjE4LjcgNTEyIDEyNi4yIDQ0OSA2My4xIDM2NS4xLTIxIDIyOS0yMSAxNDUuMSA2My4xbC01NiA1Ni4xIDIxMS41IDIxMS41YzQ2LjEtNjIuMSAxMzEuNS03Ny40IDE5NS42LTM0LjJ6bS0yMTcuOSA3OS43TDU3LjkgMTU1LjljLTI3LjMgNDUuMy0yMS43IDEwNSAxNy4zIDE0NC4xbDM0LjUgMzQuNkw2LjcgNDI0Yy04LjYgNy41LTkuMSAyMC43LTEgMjguOGw1My40IDUzLjVjOCA4LjEgMjEuMiA3LjYgMjguNy0xTDE3Ny4xIDQwMmwzNS43IDM1LjdjMTkuNyAxOS43IDQ0LjYgMzAuNSA3MC4zIDMzLjMtNy4xLTE3LTExLTM1LjYtMTEtNTUuMS0uMS0xMy44IDIuNS0yNyA2LjItMzkuN3pNNDE2IDMyMGMtNTMgMC05NiA0My05NiA5NnM0MyA5NiA5NiA5NiA5Ni00MyA5Ni05Ni00My05Ni05Ni05NnpcIl1cbn07XG52YXIgZmFUYWJsZXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGV0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMTBhXCIsIFwiTTQwMCAwSDQ4QzIxLjUgMCAwIDIxLjUgMCA0OHY0MTZjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjQ4YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yMjQgNDgwYy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnpcIl1cbn07XG52YXIgZmFUYWJsZXRBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGV0LWFsdCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjNmYVwiLCBcIk00MDAgMEg0OEMyMS41IDAgMCAyMS41IDAgNDh2NDE2YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFY0OGMwLTI2LjUtMjEuNS00OC00OC00OHpNMjI0IDQ4MGMtMTcuNyAwLTMyLTE0LjMtMzItMzJzMTQuMy0zMiAzMi0zMiAzMiAxNC4zIDMyIDMyLTE0LjMgMzItMzIgMzJ6bTE3Ni0xMDhjMCA2LjYtNS40IDEyLTEyIDEySDYwYy02LjYgMC0xMi01LjQtMTItMTJWNjBjMC02LjYgNS40LTEyIDEyLTEyaDMyOGM2LjYgMCAxMiA1LjQgMTIgMTJ2MzEyelwiXVxufTtcbnZhciBmYVRhYmxldHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFibGV0cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQ5MFwiLCBcIk0xNjAgMTkyQzc4LjkgMTkyIDEyLjUgMjUwLjUuMSAzMjYuN2MtLjggNC44IDMuMyA5LjMgOC4zIDkuM2gzMDMuM2M1IDAgOS4xLTQuNSA4LjMtOS4zQzMwNy41IDI1MC41IDI0MS4xIDE5MiAxNjAgMTkyem0xNTEuNiAxNzZIOC40Yy01IDAtOS4xIDQuNS04LjMgOS4zQzEyLjUgNDUzLjUgNzguOSA1MTIgMTYwIDUxMnMxNDcuNS01OC41IDE1OS45LTEzNC43Yy44LTQuOC0zLjMtOS4zLTguMy05LjN6TTU5My40IDQ2LjZjLTU2LjUtNTYuNS0xNDQuMi02MS40LTIwNi45LTE2LTQgMi45LTQuMyA4LjktLjggMTIuM0w1OTcgMjU0LjNjMy41IDMuNSA5LjUgMy4yIDEyLjMtLjggNDUuNS02Mi43IDQwLjYtMTUwLjQtMTUuOS0yMDYuOXpNMzYzIDY1LjdjLTMuNS0zLjUtOS41LTMuMi0xMi4zLjgtNDUuNCA2Mi43LTQwLjUgMTUwLjQgMTUuOSAyMDYuOSA1Ni41IDU2LjUgMTQ0LjIgNjEuNCAyMDYuOSAxNS45IDQtMi45IDQuMy04LjkuOC0xMi4zTDM2MyA2NS43elwiXVxufTtcbnZhciBmYVRhY2hvbWV0ZXJBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFjaG9tZXRlci1hbHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzZmRcIiwgXCJNMjg4IDMyQzEyOC45NCAzMiAwIDE2MC45NCAwIDMyMGMwIDUyLjggMTQuMjUgMTAyLjI2IDM5LjA2IDE0NC44IDUuNjEgOS42MiAxNi4zIDE1LjIgMjcuNDQgMTUuMmg0NDNjMTEuMTQgMCAyMS44My01LjU4IDI3LjQ0LTE1LjJDNTYxLjc1IDQyMi4yNiA1NzYgMzcyLjggNTc2IDMyMGMwLTE1OS4wNi0xMjguOTQtMjg4LTI4OC0yODh6bTAgNjRjMTQuNzEgMCAyNi41OCAxMC4xMyAzMC4zMiAyMy42NS0xLjExIDIuMjYtMi42NCA0LjIzLTMuNDUgNi42N2wtOS4yMiAyNy42N2MtNS4xMyAzLjQ5LTEwLjk3IDYuMDEtMTcuNjQgNi4wMS0xNy42NyAwLTMyLTE0LjMzLTMyLTMyUzI3MC4zMyA5NiAyODggOTZ6TTk2IDM4NGMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptNDgtMTYwYy0xNy42NyAwLTMyLTE0LjMzLTMyLTMyczE0LjMzLTMyIDMyLTMyIDMyIDE0LjMzIDMyIDMyLTE0LjMzIDMyLTMyIDMyem0yNDYuNzctNzIuNDFsLTYxLjMzIDE4NEMzNDMuMTMgMzQ3LjMzIDM1MiAzNjQuNTQgMzUyIDM4NGMwIDExLjcyLTMuMzggMjIuNTUtOC44OCAzMkgyMzIuODhjLTUuNS05LjQ1LTguODgtMjAuMjgtOC44OC0zMiAwLTMzLjk0IDI2LjUtNjEuNDMgNTkuOS02My41OWw2MS4zNC0xODQuMDFjNC4xNy0xMi41NiAxNy43My0xOS40NSAzMC4zNi0xNS4xNyAxMi41NyA0LjE5IDE5LjM1IDE3Ljc5IDE1LjE3IDMwLjM2em0xNC42NiA1Ny4ybDE1LjUyLTQ2LjU1YzMuNDctMS4yOSA3LjEzLTIuMjMgMTEuMDUtMi4yMyAxNy42NyAwIDMyIDE0LjMzIDMyIDMycy0xNC4zMyAzMi0zMiAzMmMtMTEuMzgtLjAxLTIwLjg5LTYuMjgtMjYuNTctMTUuMjJ6TTQ4MCAzODRjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhVGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RhZycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAyYlwiLCBcIk0wIDI1Mi4xMThWNDhDMCAyMS40OSAyMS40OSAwIDQ4IDBoMjA0LjExOGE0OCA0OCAwIDAgMSAzMy45NDEgMTQuMDU5bDIxMS44ODIgMjExLjg4MmMxOC43NDUgMTguNzQ1IDE4Ljc0NSA0OS4xMzcgMCA2Ny44ODJMMjkzLjgyMyA0OTcuOTQxYy0xOC43NDUgMTguNzQ1LTQ5LjEzNyAxOC43NDUtNjcuODgyIDBMMTQuMDU5IDI4Ni4wNTlBNDggNDggMCAwIDEgMCAyNTIuMTE4ek0xMTIgNjRjLTI2LjUxIDAtNDggMjEuNDktNDggNDhzMjEuNDkgNDggNDggNDggNDgtMjEuNDkgNDgtNDgtMjEuNDktNDgtNDgtNDh6XCJdXG59O1xudmFyIGZhVGFncyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YWdzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMDJjXCIsIFwiTTQ5Ny45NDEgMjI1Ljk0MUwyODYuMDU5IDE0LjA1OUE0OCA0OCAwIDAgMCAyNTIuMTE4IDBINDhDMjEuNDkgMCAwIDIxLjQ5IDAgNDh2MjA0LjExOGE0OCA0OCAwIDAgMCAxNC4wNTkgMzMuOTQxbDIxMS44ODIgMjExLjg4MmMxOC43NDQgMTguNzQ1IDQ5LjEzNiAxOC43NDYgNjcuODgyIDBsMjA0LjExOC0yMDQuMTE4YzE4Ljc0NS0xOC43NDUgMTguNzQ1LTQ5LjEzNyAwLTY3Ljg4MnpNMTEyIDE2MGMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptNTEzLjk0MSAxMzMuODIzTDQyMS44MjMgNDk3Ljk0MWMtMTguNzQ1IDE4Ljc0NS00OS4xMzcgMTguNzQ1LTY3Ljg4MiAwbC0uMzYtLjM2TDUyNy42NCAzMjMuNTIyYzE2Ljk5OS0xNi45OTkgMjYuMzYtMzkuNiAyNi4zNi02My42NHMtOS4zNjItNDYuNjQxLTI2LjM2LTYzLjY0TDMzMS4zOTcgMGg0OC43MjFhNDggNDggMCAwIDEgMzMuOTQxIDE0LjA1OWwyMTEuODgyIDIxMS44ODJjMTguNzQ1IDE4Ljc0NSAxOC43NDUgNDkuMTM3IDAgNjcuODgyelwiXVxufTtcbnZhciBmYVRhcGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFwZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRkYlwiLCBcIk0yMjQgMTkyYy0zNS4zIDAtNjQgMjguNy02NCA2NHMyOC43IDY0IDY0IDY0IDY0LTI4LjcgNjQtNjQtMjguNy02NC02NC02NHptNDAwIDIyNEgzODAuNmM0MS41LTQwLjcgNjcuNC05Ny4zIDY3LjQtMTYwIDAtMTIzLjctMTAwLjMtMjI0LTIyNC0yMjRTMCAxMzIuMyAwIDI1NnMxMDAuMyAyMjQgMjI0IDIyNGg0MDBjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bS00MDAtNjRjLTUzIDAtOTYtNDMtOTYtOTZzNDMtOTYgOTYtOTYgOTYgNDMgOTYgOTYtNDMgOTYtOTYgOTZ6XCJdXG59O1xudmFyIGZhVGFza3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGFza3MnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwYWVcIiwgXCJNMTM5LjYxIDM1LjVhMTIgMTIgMCAwIDAtMTcgMEw1OC45MyA5OC44MWwtMjIuNy0yMi4xMmExMiAxMiAwIDAgMC0xNyAwTDMuNTMgOTIuNDFhMTIgMTIgMCAwIDAgMCAxN2w0Ny41OSA0Ny40YTEyLjc4IDEyLjc4IDAgMCAwIDE3LjYxIDBsMTUuNTktMTUuNjJMMTU2LjUyIDY5YTEyLjA5IDEyLjA5IDAgMCAwIC4wOS0xN3ptMCAxNTkuMTlhMTIgMTIgMCAwIDAtMTcgMGwtNjMuNjggNjMuNzItMjIuNy0yMi4xYTEyIDEyIDAgMCAwLTE3IDBMMy41MyAyNTJhMTIgMTIgMCAwIDAgMCAxN0w1MSAzMTYuNWExMi43NyAxMi43NyAwIDAgMCAxNy42IDBsMTUuNy0xNS42OSA3Mi4yLTcyLjIyYTEyIDEyIDAgMCAwIC4wOS0xNi45ek02NCAzNjhjLTI2LjQ5IDAtNDguNTkgMjEuNS00OC41OSA0OFMzNy41MyA0NjQgNjQgNDY0YTQ4IDQ4IDAgMCAwIDAtOTZ6bTQzMiAxNkgyMDhhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMjg4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNnptMC0zMjBIMjA4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI4OGExNiAxNiAwIDAgMCAxNi0xNlY4MGExNiAxNiAwIDAgMC0xNi0xNnptMCAxNjBIMjA4YTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDI4OGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhVGF4aSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0YXhpJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMWJhXCIsIFwiTTQ2MiAyNDEuNjRsLTIyLTg0Ljg0Yy05LjYtMzUuMi00MS42LTYwLjgtNzYuOC02MC44SDM1MlY2NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDE5MmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMmgtMTEuMmMtMzUuMiAwLTY3LjIgMjUuNi03Ni44IDYwLjhsLTIyIDg0Ljg0QzIxLjQxIDI0OC4wNCAwIDI3My40NyAwIDMwNHY0OGMwIDIzLjYzIDEyLjk1IDQ0LjA0IDMyIDU1LjEyVjQ0OGMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTMyaDI1NnYzMmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJ2LTQwLjg4YzE5LjA1LTExLjA5IDMyLTMxLjUgMzItNTUuMTJ2LTQ4YzAtMzAuNTMtMjEuNDEtNTUuOTYtNTAtNjIuMzZ6TTk2IDM1MmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMjAuNTUtMTEybDE3LjItNjYuMzZjMi4yMy04LjE2IDkuNTktMTMuNjQgMTUuMDYtMTMuNjRoMjE0LjRjNS40NyAwIDEyLjgzIDUuNDggMTQuODUgMTIuODZMMzk1LjQ1IDI0MGgtMjc4Ljl6TTQxNiAzNTJjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhVGVldGggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVldGgnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2MmVcIiwgXCJNNTQ0IDBIOTZDNDIuOTggMCAwIDQyLjk4IDAgOTZ2MzIwYzAgNTMuMDIgNDIuOTggOTYgOTYgOTZoNDQ4YzUzLjAyIDAgOTYtNDIuOTggOTYtOTZWOTZjMC01My4wMi00Mi45OC05Ni05Ni05NnpNMTYwIDM2OGMwIDI2LjUxLTIxLjQ5IDQ4LTQ4IDQ4cy00OC0yMS40OS00OC00OHYtNjRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoNjRjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NjR6bTAtMTI4YzAgOC44NC03LjE2IDE2LTE2IDE2SDgwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNjRjMC0yNi41MSAyMS40OS00OCA0OC00OHM0OCAyMS40OSA0OCA0OHY2NHptMTQ0IDEyMGMwIDMwLjkzLTI1LjA3IDU2LTU2IDU2cy01Ni0yNS4wNy01Ni01NnYtNTZjMC04Ljg0IDcuMTYtMTYgMTYtMTZoODBjOC44NCAwIDE2IDcuMTYgMTYgMTZ2NTZ6bTAtMTIwYzAgOC44NC03LjE2IDE2LTE2IDE2aC04MGMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTg4YzAtMzAuOTMgMjUuMDctNTYgNTYtNTZzNTYgMjUuMDcgNTYgNTZ2ODh6bTE0NCAxMjBjMCAzMC45My0yNS4wNyA1Ni01NiA1NnMtNTYtMjUuMDctNTYtNTZ2LTU2YzAtOC44NCA3LjE2LTE2IDE2LTE2aDgwYzguODQgMCAxNiA3LjE2IDE2IDE2djU2em0wLTEyMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtODBjLTguODQgMC0xNi03LjE2LTE2LTE2di04OGMwLTMwLjkzIDI1LjA3LTU2IDU2LTU2czU2IDI1LjA3IDU2IDU2djg4em0xMjggMTI4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhzLTQ4LTIxLjQ5LTQ4LTQ4di02NGMwLTguODQgNy4xNi0xNiAxNi0xNmg2NGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnY2NHptMC0xMjhjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTY0Yy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtNjRjMC0yNi41MSAyMS40OS00OCA0OC00OHM0OCAyMS40OSA0OCA0OHY2NHpcIl1cbn07XG52YXIgZmFUZWV0aE9wZW4gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVldGgtb3BlbicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjYyZlwiLCBcIk01NDQgMEg5NkM0Mi45OCAwIDAgNDIuOTggMCA5NnY2NGMwIDM1LjM1IDI4LjY2IDY0IDY0IDY0aDUxMmMzNS4zNCAwIDY0LTI4LjY1IDY0LTY0Vjk2YzAtNTMuMDItNDIuOTgtOTYtOTYtOTZ6TTE2MCAxNzZjMCA4Ljg0LTcuMTYgMTYtMTYgMTZIODBjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4czQ4IDIxLjQ5IDQ4IDQ4djMyem0xNDQgMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtODBjLTguODQgMC0xNi03LjE2LTE2LTE2di01NmMwLTMwLjkzIDI1LjA3LTU2IDU2LTU2czU2IDI1LjA3IDU2IDU2djU2em0xNDQgMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtODBjLTguODQgMC0xNi03LjE2LTE2LTE2di01NmMwLTMwLjkzIDI1LjA3LTU2IDU2LTU2czU2IDI1LjA3IDU2IDU2djU2em0xMjggMGMwIDguODQtNy4xNiAxNi0xNiAxNmgtNjRjLTguODQgMC0xNi03LjE2LTE2LTE2di0zMmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4czQ4IDIxLjQ5IDQ4IDQ4djMyem0wIDE0NEg2NGMtMzUuMzQgMC02NCAyOC42NS02NCA2NHYzMmMwIDUzLjAyIDQyLjk4IDk2IDk2IDk2aDQ0OGM1My4wMiAwIDk2LTQyLjk4IDk2LTk2di0zMmMwLTM1LjM1LTI4LjY2LTY0LTY0LTY0em0tNDE2IDgwYzAgMjYuNTEtMjEuNDkgNDgtNDggNDhzLTQ4LTIxLjQ5LTQ4LTQ4di0zMmMwLTguODQgNy4xNi0xNiAxNi0xNmg2NGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMnptMTQ0LThjMCAzMC45My0yNS4wNyA1Ni01NiA1NnMtNTYtMjUuMDctNTYtNTZ2LTI0YzAtOC44NCA3LjE2LTE2IDE2LTE2aDgwYzguODQgMCAxNiA3LjE2IDE2IDE2djI0em0xNDQgMGMwIDMwLjkzLTI1LjA3IDU2LTU2IDU2cy01Ni0yNS4wNy01Ni01NnYtMjRjMC04Ljg0IDcuMTYtMTYgMTYtMTZoODBjOC44NCAwIDE2IDcuMTYgMTYgMTZ2MjR6bTEyOCA4YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhzLTQ4LTIxLjQ5LTQ4LTQ4di0zMmMwLTguODQgNy4xNi0xNiAxNi0xNmg2NGM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYzMnpcIl1cbn07XG52YXIgZmFUZW1wZXJhdHVyZUhpZ2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVtcGVyYXR1cmUtaGlnaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc2OVwiLCBcIk00MTYgMGMtNTIuOSAwLTk2IDQzLjEtOTYgOTZzNDMuMSA5NiA5NiA5NiA5Ni00My4xIDk2LTk2LTQzLjEtOTYtOTYtOTZ6bTAgMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptLTE2MC0xNkMyNTYgNTAuMSAyMDUuOSAwIDE0NCAwUzMyIDUwLjEgMzIgMTEydjE2Ni41QzEyLjMgMzAzLjIgMCAzMzQgMCAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTM0LTEyLjMtNjQuOS0zMi04OS41VjExMnpNMTQ0IDQ0OGMtNDQuMSAwLTgwLTM1LjktODAtODAgMC0yNS41IDEyLjItNDguOSAzMi02My44VjExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djE5Mi4yYzE5LjggMTQuOCAzMiAzOC4zIDMyIDYzLjggMCA0NC4xLTM1LjkgODAtODAgODB6bTE2LTEyNS4xVjExMmMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnYyMTAuOWMtMTguNiA2LjYtMzIgMjQuMi0zMiA0NS4xIDAgMjYuNSAyMS41IDQ4IDQ4IDQ4czQ4LTIxLjUgNDgtNDhjMC0yMC45LTEzLjQtMzguNS0zMi00NS4xelwiXVxufTtcbnZhciBmYVRlbXBlcmF0dXJlTG93ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RlbXBlcmF0dXJlLWxvdycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjc2YlwiLCBcIk00MTYgMGMtNTIuOSAwLTk2IDQzLjEtOTYgOTZzNDMuMSA5NiA5NiA5NiA5Ni00My4xIDk2LTk2LTQzLjEtOTYtOTYtOTZ6bTAgMTI4Yy0xNy43IDAtMzItMTQuMy0zMi0zMnMxNC4zLTMyIDMyLTMyIDMyIDE0LjMgMzIgMzItMTQuMyAzMi0zMiAzMnptLTE2MC0xNkMyNTYgNTAuMSAyMDUuOSAwIDE0NCAwUzMyIDUwLjEgMzIgMTEydjE2Ni41QzEyLjMgMzAzLjIgMCAzMzQgMCAzNjhjMCA3OS41IDY0LjUgMTQ0IDE0NCAxNDRzMTQ0LTY0LjUgMTQ0LTE0NGMwLTM0LTEyLjMtNjQuOS0zMi04OS41VjExMnpNMTQ0IDQ0OGMtNDQuMSAwLTgwLTM1LjktODAtODAgMC0yNS41IDEyLjItNDguOSAzMi02My44VjExMmMwLTI2LjUgMjEuNS00OCA0OC00OHM0OCAyMS41IDQ4IDQ4djE5Mi4yYzE5LjggMTQuOCAzMiAzOC4zIDMyIDYzLjggMCA0NC4xLTM1LjkgODAtODAgODB6bTE2LTEyNS4xVjMwNGMwLTguOC03LjItMTYtMTYtMTZzLTE2IDcuMi0xNiAxNnYxOC45Yy0xOC42IDYuNi0zMiAyNC4yLTMyIDQ1LjEgMCAyNi41IDIxLjUgNDggNDggNDhzNDgtMjEuNSA0OC00OGMwLTIwLjktMTMuNC0zOC41LTMyLTQ1LjF6XCJdXG59O1xudmFyIGZhVGVuZ2UgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGVuZ2UnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY3ZDdcIiwgXCJNMzcyIDE2MEgxMmMtNi42IDAtMTIgNS40LTEyIDEydjU2YzAgNi42IDUuNCAxMiAxMiAxMmgxNDB2MjI4YzAgNi42IDUuNCAxMiAxMiAxMmg1NmM2LjYgMCAxMi01LjQgMTItMTJWMjQwaDE0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTU2YzAtNi42LTUuNC0xMi0xMi0xMnptMC0xMjhIMTJDNS40IDMyIDAgMzcuNCAwIDQ0djU2YzAgNi42IDUuNCAxMiAxMiAxMmgzNjBjNi42IDAgMTItNS40IDEyLTEyVjQ0YzAtNi42LTUuNC0xMi0xMi0xMnpcIl1cbn07XG52YXIgZmFUZXJtaW5hbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZXJtaW5hbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjEyMFwiLCBcIk0yNTcuOTgxIDI3Mi45NzFMNjMuNjM4IDQ2Ny4zMTRjLTkuMzczIDkuMzczLTI0LjU2OSA5LjM3My0zMy45NDEgMEw3LjAyOSA0NDQuNjQ3Yy05LjM1Ny05LjM1Ny05LjM3NS0yNC41MjItLjA0LTMzLjkwMUwxNjEuMDExIDI1NiA2Ljk5IDEwMS4yNTVjLTkuMzM1LTkuMzc5LTkuMzE3LTI0LjU0NC4wNC0zMy45MDFsMjIuNjY3LTIyLjY2N2M5LjM3My05LjM3MyAyNC41NjktOS4zNzMgMzMuOTQxIDBMMjU3Ljk4MSAyMzkuMDNjOS4zNzMgOS4zNzIgOS4zNzMgMjQuNTY4IDAgMzMuOTQxek02NDAgNDU2di0zMmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMzEyYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2MzJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMwNGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR6XCJdXG59O1xudmFyIGZhVGV4dEhlaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0ZXh0LWhlaWdodCcsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjAzNFwiLCBcIk0zMDQgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHY5NmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMzJoNTZ2MzA0SDgwYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDE2MGExNiAxNiAwIDAgMCAxNi0xNnYtMzJhMTYgMTYgMCAwIDAtMTYtMTZoLTQwVjExMmg1NnYzMmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnptMjU2IDMzNmgtNDhWMTQ0aDQ4YzE0LjMxIDAgMjEuMzMtMTcuMzEgMTEuMzEtMjcuMzFsLTgwLTgwYTE2IDE2IDAgMCAwLTIyLjYyIDBsLTgwIDgwQzM3OS4zNiAxMjYgMzg0LjM2IDE0NCA0MDAgMTQ0aDQ4djIyNGgtNDhjLTE0LjMxIDAtMjEuMzIgMTcuMzEtMTEuMzEgMjcuMzFsODAgODBhMTYgMTYgMCAwIDAgMjIuNjIgMGw4MC04MEM1ODAuNjQgMzg2IDU3NS42NCAzNjggNTYwIDM2OHpcIl1cbn07XG52YXIgZmFUZXh0V2lkdGggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGV4dC13aWR0aCcsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjAzNVwiLCBcIk00MzIgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHY4MGExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNnYtMTZoMTIwdjExMmgtMjRhMTYgMTYgMCAwIDAtMTYgMTZ2MzJhMTYgMTYgMCAwIDAgMTYgMTZoMTI4YTE2IDE2IDAgMCAwIDE2LTE2di0zMmExNiAxNiAwIDAgMC0xNi0xNmgtMjRWMTEyaDEyMHYxNmExNiAxNiAwIDAgMCAxNiAxNmgzMmExNiAxNiAwIDAgMCAxNi0xNlY0OGExNiAxNiAwIDAgMC0xNi0xNnptLTY4LjY5IDI2MC42OUMzNTQgMjgzLjM2IDMzNiAyODguMzYgMzM2IDMwNHY0OEgxMTJ2LTQ4YzAtMTQuMzEtMTcuMzEtMjEuMzItMjcuMzEtMTEuMzFsLTgwIDgwYTE2IDE2IDAgMCAwIDAgMjIuNjJsODAgODBDOTQgNDg0LjY0IDExMiA0NzkuNjQgMTEyIDQ2NHYtNDhoMjI0djQ4YzAgMTQuMzEgMTcuMzEgMjEuMzMgMjcuMzEgMTEuMzFsODAtODBhMTYgMTYgMCAwIDAgMC0yMi42MnpcIl1cbn07XG52YXIgZmFUaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjAwYVwiLCBcIk0xNDkuMzMzIDU2djgwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0VjU2YzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNGgxMDEuMzMzYzEzLjI1NSAwIDI0IDEwLjc0NSAyNCAyNHptMTgxLjMzNCAyNDB2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU2IDAgMjQuMDAxLTEwLjc0NSAyNC4wMDEtMjR6bTMyLTI0MHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRINDg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFY1NmMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMzg2LjY2N2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0em0tMzIgODBWNTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDIwNS4zMzNjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTAxLjMzM2MxMy4yNTYgMCAyNC4wMDEtMTAuNzQ1IDI0LjAwMS0yNHptLTIwNS4zMzQgNTZIMjRjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoMTAxLjMzM2MxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpNMCAzNzZ2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjRjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHptMzg2LjY2Ny01Nkg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMzg2LjY2N2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHptMCAxNjBINDg4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDM4Ni42NjdjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHY4MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjR6TTE4MS4zMzMgMzc2djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDIwNS4zMzNjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHpcIl1cbn07XG52YXIgZmFUaExhcmdlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RoLWxhcmdlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDA5XCIsIFwiTTI5NiAzMmgxOTJjMTMuMjU1IDAgMjQgMTAuNzQ1IDI0IDI0djE2MGMwIDEzLjI1NS0xMC43NDUgMjQtMjQgMjRIMjk2Yy0xMy4yNTUgMC0yNC0xMC43NDUtMjQtMjRWNTZjMC0xMy4yNTUgMTAuNzQ1LTI0IDI0LTI0em0tODAgMEgyNEMxMC43NDUgMzIgMCA0Mi43NDUgMCA1NnYxNjBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE5MmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWNTZjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0ek0wIDI5NnYxNjBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDE5MmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjk2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0em0yOTYgMTg0aDE5MmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMjk2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyOTZjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxNjBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0elwiXVxufTtcbnZhciBmYVRoTGlzdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aC1saXN0JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMDBiXCIsIFwiTTE0OS4zMzMgMjE2djgwYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgyNGMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0di04MGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjRoMTAxLjMzM2MxMy4yNTUgMCAyNCAxMC43NDUgMjQgMjR6TTAgMzc2djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMDEuMzMzYzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNHYtODBjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0SDI0Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6TTEyNS4zMzMgMzJIMjRDMTAuNzQ1IDMyIDAgNDIuNzQ1IDAgNTZ2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEwMS4zMzNjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHptODAgNDQ4SDQ4OGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR2LTgwYzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2ODBjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0em0tMjQtNDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNEg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyMDUuMzMzYy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR6bTI0IDI2NEg0ODhjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0di04MGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRIMjA1LjMzM2MtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djgwYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNHpcIl1cbn07XG52YXIgZmFUaGVhdGVyTWFza3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGhlYXRlci1tYXNrcycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjYzMFwiLCBcIk0yMDYuODYgMjQ1LjE1Yy0zNS44OCAxMC40NS01OS45NSA0MS4yLTU3LjUzIDc0LjEgMTEuNC0xMi43MiAyOC44MS0yMy43IDQ5LjktMzAuOTJsNy42My00My4xOHpNOTUuODEgMjk1TDY0LjA4IDExNS40OWMtLjI5LTEuNjIuMjgtMi42Mi4yNC0yLjY1IDU3Ljc2LTMyLjA2IDEyMy4xMi00OS4wMSAxODkuMDEtNDkuMDEgMS42MSAwIDMuMjMuMTcgNC44NS4xOSAxMy45NS0xMy40NyAzMS43My0yMi44MyA1MS41OS0yNiAxOC44OS0zLjAyIDM4LjA1LTQuNTUgNTcuMTgtNS4zMi05Ljk5LTEzLjk1LTI0LjQ4LTI0LjIzLTQxLjc3LTI3QzMwMS4yNyAxLjg5IDI3Ny4yNCAwIDI1My4zMiAwIDE3Ni42NiAwIDEwMS4wMiAxOS40MiAzMy4yIDU3LjA2IDkuMDMgNzAuNDgtMy45MiA5OC40OCAxLjA1IDEyNi41OGwzMS43MyAxNzkuNTFjMTQuMjMgODAuNTIgMTM2LjMzIDE0Mi4wOCAyMDQuNDUgMTQyLjA4IDMuNTkgMCA2Ljc1LS40NiAxMC4wMS0uOC0xMy41Mi0xNy4wOC0yOC45NC00MC40OC0zOS41LTY3LjU4LTQ3LjYxLTEyLjk4LTEwNi4wNi01MS42Mi0xMTEuOTMtODQuNzl6bTk3LjU1LTEzNy40NmMtLjczLTQuMTItMi4yMy03Ljg3LTQuMDctMTEuNC04LjI1IDguOTEtMjAuNjcgMTUuNzUtMzUuMzIgMTguMzItMTQuNjUgMi41OC0yOC42Ny40LTM5LjQ4LTUuMTctLjUyIDMuOTQtLjY0IDcuOTguMDkgMTIuMSAzLjg0IDIxLjcgMjQuNTggMzYuMTkgNDYuMzQgMzIuMzcgMjEuNzUtMy44MiAzNi4yOC0yNC41MiAzMi40NC00Ni4yMnpNNjA2LjggMTIwLjljLTg4Ljk4LTQ5LjM4LTE5MS40My02Ny40MS0yOTEuOTgtNTEuMzUtMjcuMzEgNC4zNi00OS4wOCAyNi4yNi01NC4wNCA1NC4zNmwtMzEuNzMgMTc5LjUxYy0xNS4zOSA4Ny4wNSA5NS4yOCAxOTYuMjcgMTU4LjMxIDIwNy4zNSA2My4wMyAxMS4wOSAyMDQuNDctNTMuNzkgMjE5Ljg2LTE0MC44NGwzMS43My0xNzkuNTFjNC45Ny0yOC4xMS03Ljk4LTU2LjExLTMyLjE1LTY5LjUyem0tMjczLjI0IDk2LjhjMy44NC0yMS43IDI0LjU4LTM2LjE5IDQ2LjM0LTMyLjM2IDIxLjc2IDMuODMgMzYuMjggMjQuNTIgMzIuNDUgNDYuMjItLjczIDQuMTItMi4yMyA3Ljg3LTQuMDcgMTEuNC04LjI1LTguOTEtMjAuNjctMTUuNzUtMzUuMzItMTguMzItMTQuNjUtMi41OC0yOC42Ny0uNC0zOS40OCA1LjE3LS41My0zLjk1LS42NS03Ljk5LjA4LTEyLjExem03MC40NyAxOTguNzZjLTU1LjY4LTkuNzktOTMuNTItNTkuMjctODkuMDQtMTEyLjkgMjAuNiAyNS41NCA1Ni4yMSA0Ni4xNyA5OS40OSA1My43OCA0My4yOCA3LjYxIDgzLjgyLjM3IDExMS45My0xNi42LTE0LjE4IDUxLjk0LTY2LjcxIDg1LjUxLTEyMi4zOCA3NS43MnptMTMwLjMtMTUxLjM0Yy04LjI1LTguOTEtMjAuNjgtMTUuNzUtMzUuMzMtMTguMzItMTQuNjUtMi41OC0yOC42Ny0uNC0zOS40OCA1LjE3LS41Mi0zLjk0LS42NC03Ljk4LjA5LTEyLjEgMy44NC0yMS43IDI0LjU4LTM2LjE5IDQ2LjM0LTMyLjM3IDIxLjc1IDMuODMgMzYuMjggMjQuNTIgMzIuNDUgNDYuMjItLjczIDQuMTMtMi4yMyA3Ljg4LTQuMDcgMTEuNHpcIl1cbn07XG52YXIgZmFUaGVybW9tZXRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aGVybW9tZXRlcicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQ5MVwiLCBcIk00NzYuOCAyMC40Yy0zNy41LTMwLjctOTUuNS0yNi4zLTEzMS45IDEwLjJsLTQ1LjcgNDYgNTAuNSA1MC41YzMuMSAzLjEgMy4xIDguMiAwIDExLjNsLTExLjMgMTEuM2MtMy4xIDMuMS04LjIgMy4xLTExLjMgMGwtNTAuNC01MC41LTQ1LjEgNDUuNCA1MC4zIDUwLjRjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwTDIwOSAxNjcuNGwtNDUuMSA0NS40TDIxNCAyNjNjMy4xIDMuMSAzLjEgOC4yIDAgMTEuM2wtMTEuMyAxMS4zYy0zLjEgMy4xLTguMiAzLjEtMTEuMyAwbC01MC4xLTUwLjJMOTYgMjgxLjFWMzgyTDcgNDcxYy05LjQgOS40LTkuNCAyNC42IDAgMzMuOSA5LjQgOS40IDI0LjYgOS40IDMzLjkgMGw4OS04OWg5OS45TDQ4NCAxNjIuNmMzNC45LTM0LjkgNDIuMi0xMDEuNS03LjItMTQyLjJ6XCJdXG59O1xudmFyIGZhVGhlcm1vbWV0ZXJFbXB0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aGVybW9tZXRlci1lbXB0eScsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZjJjYlwiLCBcIk0xOTIgMzg0YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NHMtNjQtMjguNjU0LTY0LTY0YzAtMzUuMzQ2IDI4LjY1NC02NCA2NC02NHM2NCAyOC42NTQgNjQgNjR6bTMyLTg0LjY1M2MxOS45MTIgMjIuNTYzIDMyIDUyLjE5NCAzMiA4NC42NTMgMCA3MC42OTYtNTcuMzAzIDEyOC0xMjggMTI4LS4yOTkgMC0uNjA5LS4wMDEtLjkwOS0uMDAzQzU2Ljc4OSA1MTEuNTA5LS4zNTcgNDUzLjYzNi4wMDIgMzgzLjMzMy4xNjYgMzUxLjEzNSAxMi4yMjUgMzIxLjc1NSAzMiAyOTkuMzQ3Vjk2YzAtNTMuMDE5IDQyLjk4MS05NiA5Ni05NnM5NiA0Mi45ODEgOTYgOTZ2MjAzLjM0N3pNMjA4IDM4NGMwLTM0LjMzOS0xOS4zNy01Mi4xOS0zMi02Ni41MDJWOTZjMC0yNi40NjctMjEuNTMzLTQ4LTQ4LTQ4UzgwIDY5LjUzMyA4MCA5NnYyMjEuNDk4Yy0xMi43MzIgMTQuNDI4LTMxLjgyNSAzMi4xLTMxLjk5OSA2Ni4wOC0uMjI0IDQzLjg3NiAzNS41NjMgODAuMTE2IDc5LjQyMyA4MC40MkwxMjggNDY0YzQ0LjExMiAwIDgwLTM1Ljg4OCA4MC04MHpcIl1cbn07XG52YXIgZmFUaGVybW9tZXRlckZ1bGwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGhlcm1vbWV0ZXItZnVsbCcsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZjJjN1wiLCBcIk0yMjQgOTZjMC01My4wMTktNDIuOTgxLTk2LTk2LTk2UzMyIDQyLjk4MSAzMiA5NnYyMDMuMzQ3QzEyLjIyNSAzMjEuNzU2LjE2NiAzNTEuMTM2LjAwMiAzODMuMzMzYy0uMzU5IDcwLjMwMyA1Ni43ODcgMTI4LjE3NiAxMjcuMDg5IDEyOC42NjQuMjk5LjAwMi42MS4wMDMuOTA5LjAwMyA3MC42OTggMCAxMjgtNTcuMzA0IDEyOC0xMjggMC0zMi40NTktMTIuMDg4LTYyLjA5LTMyLTg0LjY1M1Y5NnptLTk2IDM2OGwtLjU3Ni0uMDAyYy00My44Ni0uMzA0LTc5LjY0Ny0zNi41NDQtNzkuNDIzLTgwLjQyLjE3My0zMy45OCAxOS4yNjYtNTEuNjUyIDMxLjk5OS02Ni4wOFY5NmMwLTI2LjQ2NyAyMS41MzMtNDggNDgtNDhzNDggMjEuNTMzIDQ4IDQ4djIyMS40OThjMTIuNjMgMTQuMzEyIDMyIDMyLjE2NCAzMiA2Ni41MDIgMCA0NC4xMTItMzUuODg4IDgwLTgwIDgwem02NC04MGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjRzLTY0LTI4LjY1NC02NC02NGMwLTIzLjY4NSAxMi44NzYtNDQuMzQ5IDMyLTU1LjQxN1Y5NmMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3IDMyIDMydjIzMi41ODNjMTkuMTI0IDExLjA2OCAzMiAzMS43MzIgMzIgNTUuNDE3elwiXVxufTtcbnZhciBmYVRoZXJtb21ldGVySGFsZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aGVybW9tZXRlci1oYWxmJyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbXSwgXCJmMmM5XCIsIFwiTTE5MiAzODRjMCAzNS4zNDYtMjguNjU0IDY0LTY0IDY0cy02NC0yOC42NTQtNjQtNjRjMC0yMy42ODUgMTIuODc2LTQ0LjM0OSAzMi01NS40MTdWMjI0YzAtMTcuNjczIDE0LjMyNy0zMiAzMi0zMnMzMiAxNC4zMjcgMzIgMzJ2MTA0LjU4M2MxOS4xMjQgMTEuMDY4IDMyIDMxLjczMiAzMiA1NS40MTd6bTMyLTg0LjY1M2MxOS45MTIgMjIuNTYzIDMyIDUyLjE5NCAzMiA4NC42NTMgMCA3MC42OTYtNTcuMzAzIDEyOC0xMjggMTI4LS4yOTkgMC0uNjA5LS4wMDEtLjkwOS0uMDAzQzU2Ljc4OSA1MTEuNTA5LS4zNTcgNDUzLjYzNi4wMDIgMzgzLjMzMy4xNjYgMzUxLjEzNSAxMi4yMjUgMzIxLjc1NSAzMiAyOTkuMzQ3Vjk2YzAtNTMuMDE5IDQyLjk4MS05NiA5Ni05NnM5NiA0Mi45ODEgOTYgOTZ2MjAzLjM0N3pNMjA4IDM4NGMwLTM0LjMzOS0xOS4zNy01Mi4xOS0zMi02Ni41MDJWOTZjMC0yNi40NjctMjEuNTMzLTQ4LTQ4LTQ4UzgwIDY5LjUzMyA4MCA5NnYyMjEuNDk4Yy0xMi43MzIgMTQuNDI4LTMxLjgyNSAzMi4xLTMxLjk5OSA2Ni4wOC0uMjI0IDQzLjg3NiAzNS41NjMgODAuMTE2IDc5LjQyMyA4MC40MkwxMjggNDY0YzQ0LjExMiAwIDgwLTM1Ljg4OCA4MC04MHpcIl1cbn07XG52YXIgZmFUaGVybW9tZXRlclF1YXJ0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGhlcm1vbWV0ZXItcXVhcnRlcicsXG4gIGljb246IFsyNTYsIDUxMiwgW10sIFwiZjJjYVwiLCBcIk0xOTIgMzg0YzAgMzUuMzQ2LTI4LjY1NCA2NC02NCA2NHMtNjQtMjguNjU0LTY0LTY0YzAtMjMuNjg1IDEyLjg3Ni00NC4zNDkgMzItNTUuNDE3VjI4OGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3IDMyIDMydjQwLjU4M2MxOS4xMjQgMTEuMDY4IDMyIDMxLjczMiAzMiA1NS40MTd6bTMyLTg0LjY1M2MxOS45MTIgMjIuNTYzIDMyIDUyLjE5NCAzMiA4NC42NTMgMCA3MC42OTYtNTcuMzAzIDEyOC0xMjggMTI4LS4yOTkgMC0uNjA5LS4wMDEtLjkwOS0uMDAzQzU2Ljc4OSA1MTEuNTA5LS4zNTcgNDUzLjYzNi4wMDIgMzgzLjMzMy4xNjYgMzUxLjEzNSAxMi4yMjUgMzIxLjc1NSAzMiAyOTkuMzQ3Vjk2YzAtNTMuMDE5IDQyLjk4MS05NiA5Ni05NnM5NiA0Mi45ODEgOTYgOTZ2MjAzLjM0N3pNMjA4IDM4NGMwLTM0LjMzOS0xOS4zNy01Mi4xOS0zMi02Ni41MDJWOTZjMC0yNi40NjctMjEuNTMzLTQ4LTQ4LTQ4UzgwIDY5LjUzMyA4MCA5NnYyMjEuNDk4Yy0xMi43MzIgMTQuNDI4LTMxLjgyNSAzMi4xLTMxLjk5OSA2Ni4wOC0uMjI0IDQzLjg3NiAzNS41NjMgODAuMTE2IDc5LjQyMyA4MC40MkwxMjggNDY0YzQ0LjExMiAwIDgwLTM1Ljg4OCA4MC04MHpcIl1cbn07XG52YXIgZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGhlcm1vbWV0ZXItdGhyZWUtcXVhcnRlcnMnLFxuICBpY29uOiBbMjU2LCA1MTIsIFtdLCBcImYyYzhcIiwgXCJNMTkyIDM4NGMwIDM1LjM0Ni0yOC42NTQgNjQtNjQgNjQtMzUuMzQ2IDAtNjQtMjguNjU0LTY0LTY0IDAtMjMuNjg1IDEyLjg3Ni00NC4zNDkgMzItNTUuNDE3VjE2MGMwLTE3LjY3MyAxNC4zMjctMzIgMzItMzJzMzIgMTQuMzI3IDMyIDMydjE2OC41ODNjMTkuMTI0IDExLjA2OCAzMiAzMS43MzIgMzIgNTUuNDE3em0zMi04NC42NTNjMTkuOTEyIDIyLjU2MyAzMiA1Mi4xOTQgMzIgODQuNjUzIDAgNzAuNjk2LTU3LjMwMyAxMjgtMTI4IDEyOC0uMjk5IDAtLjYwOS0uMDAxLS45MDktLjAwM0M1Ni43ODkgNTExLjUwOS0uMzU3IDQ1My42MzYuMDAyIDM4My4zMzMuMTY2IDM1MS4xMzUgMTIuMjI1IDMyMS43NTUgMzIgMjk5LjM0N1Y5NmMwLTUzLjAxOSA0Mi45ODEtOTYgOTYtOTZzOTYgNDIuOTgxIDk2IDk2djIwMy4zNDd6TTIwOCAzODRjMC0zNC4zMzktMTkuMzctNTIuMTktMzItNjYuNTAyVjk2YzAtMjYuNDY3LTIxLjUzMy00OC00OC00OFM4MCA2OS41MzMgODAgOTZ2MjIxLjQ5OGMtMTIuNzMyIDE0LjQyOC0zMS44MjUgMzIuMS0zMS45OTkgNjYuMDgtLjIyNCA0My44NzYgMzUuNTYzIDgwLjExNiA3OS40MjMgODAuNDJMMTI4IDQ2NGM0NC4xMTIgMCA4MC0zNS44ODggODAtODB6XCJdXG59O1xudmFyIGZhVGh1bWJzRG93biA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aHVtYnMtZG93bicsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjE2NVwiLCBcIk0wIDU2djI0MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoODBjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjU2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgyNEMxMC43NDUgMzIgMCA0Mi43NDUgMCA1NnptNDAgMjAwYzAtMTMuMjU1IDEwLjc0NS0yNCAyNC0yNHMyNCAxMC43NDUgMjQgMjQtMTAuNzQ1IDI0LTI0IDI0LTI0LTEwLjc0NS0yNC0yNHptMjcyIDI1NmMtMjAuMTgzIDAtMjkuNDg1LTM5LjI5My0zMy45MzEtNTcuNzk1LTUuMjA2LTIxLjY2Ni0xMC41ODktNDQuMDctMjUuMzkzLTU4LjkwMi0zMi40NjktMzIuNTI0LTQ5LjUwMy03My45NjctODkuMTE3LTExMy4xMTFhMTEuOTggMTEuOTggMCAwIDEtMy41NTgtOC41MjFWNTkuOTAxYzAtNi41NDEgNS4yNDMtMTEuODc4IDExLjc4My0xMS45OTggMTUuODMxLS4yOSAzNi42OTQtOS4wNzkgNTIuNjUxLTE2LjE3OEMyNTYuMTg5IDE3LjU5OCAyOTUuNzA5LjAxNyAzNDMuOTk1IDBoMi44NDRjNDIuNzc3IDAgOTMuMzYzLjQxMyAxMTMuNzc0IDI5LjczNyA4LjM5MiAxMi4wNTcgMTAuNDQ2IDI3LjAzNCA2LjE0OCA0NC42MzIgMTYuMzEyIDE3LjA1MyAyNS4wNjMgNDguODYzIDE2LjM4MiA3NC43NTcgMTcuNTQ0IDIzLjQzMiAxOS4xNDMgNTYuMTMyIDkuMzA4IDc5LjQ2OWwuMTEuMTFjMTEuODkzIDExLjk0OSAxOS41MjMgMzEuMjU5IDE5LjQzOSA0OS4xOTctLjE1NiAzMC4zNTItMjYuMTU3IDU4LjA5OC01OS41NTMgNTguMDk4SDM1MC43MjNDMzU4LjAzIDM2NC4zNCAzODQgMzg4LjEzMiAzODQgNDMwLjU0OCAzODQgNTA0IDMzNiA1MTIgMzEyIDUxMnpcIl1cbn07XG52YXIgZmFUaHVtYnNVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aHVtYnMtdXAnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxNjRcIiwgXCJNMTA0IDIyNEgyNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djI0MGMwIDEzLjI1NSAxMC43NDUgMjQgMjQgMjRoODBjMTMuMjU1IDAgMjQtMTAuNzQ1IDI0LTI0VjI0OGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjR6TTY0IDQ3MmMtMTMuMjU1IDAtMjQtMTAuNzQ1LTI0LTI0czEwLjc0NS0yNCAyNC0yNCAyNCAxMC43NDUgMjQgMjQtMTAuNzQ1IDI0LTI0IDI0ek0zODQgODEuNDUyYzAgNDIuNDE2LTI1Ljk3IDY2LjIwOC0zMy4yNzcgOTQuNTQ4aDEwMS43MjNjMzMuMzk3IDAgNTkuMzk3IDI3Ljc0NiA1OS41NTMgNTguMDk4LjA4NCAxNy45MzgtNy41NDYgMzcuMjQ5LTE5LjQzOSA0OS4xOTdsLS4xMS4xMWM5LjgzNiAyMy4zMzcgOC4yMzcgNTYuMDM3LTkuMzA4IDc5LjQ2OSA4LjY4MSAyNS44OTUtLjA2OSA1Ny43MDQtMTYuMzgyIDc0Ljc1NyA0LjI5OCAxNy41OTggMi4yNDQgMzIuNTc1LTYuMTQ4IDQ0LjYzMkM0NDAuMjAyIDUxMS41ODcgMzg5LjYxNiA1MTIgMzQ2LjgzOSA1MTJsLTIuODQ1LS4wMDFjLTQ4LjI4Ny0uMDE3LTg3LjgwNi0xNy41OTgtMTE5LjU2LTMxLjcyNS0xNS45NTctNy4wOTktMzYuODIxLTE1Ljg4Ny01Mi42NTEtMTYuMTc4LTYuNTQtLjEyLTExLjc4My01LjQ1Ny0xMS43ODMtMTEuOTk4di0yMTMuNzdjMC0zLjIgMS4yODItNi4yNzEgMy41NTgtOC41MjEgMzkuNjE0LTM5LjE0NCA1Ni42NDgtODAuNTg3IDg5LjExNy0xMTMuMTExIDE0LjgwNC0xNC44MzIgMjAuMTg4LTM3LjIzNiAyNS4zOTMtNTguOTAyQzI4Mi41MTUgMzkuMjkzIDI5MS44MTcgMCAzMTIgMGMyNCAwIDcyIDggNzIgODEuNDUyelwiXVxufTtcbnZhciBmYVRodW1idGFjayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aHVtYnRhY2snLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYwOGRcIiwgXCJNMjk4LjAyOCAyMTQuMjY3TDI4NS43OTMgOTZIMzI4YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNFYyNGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRINTZDNDIuNzQ1IDAgMzIgMTAuNzQ1IDMyIDI0djQ4YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg0Mi4yMDdMODUuOTcyIDIxNC4yNjdDMzcuNDY1IDIzNi44MiAwIDI3Ny4yNjEgMCAzMjhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDEzNnYxMDQuMDA3YzAgMS4yNDIuMjg5IDIuNDY3Ljg0NSAzLjU3OGwyNCA0OGMyLjk0MSA1Ljg4MiAxMS4zNjQgNS44OTMgMTQuMzExIDBsMjQtNDhhOC4wMDggOC4wMDggMCAwIDAgLjg0NS0zLjU3OFYzNTJoMTM2YzEzLjI1NSAwIDI0LTEwLjc0NSAyNC0yNC0uMDAxLTUxLjE4My0zNy45ODMtOTEuNDItODUuOTczLTExMy43MzN6XCJdXG59O1xudmFyIGZhVGlja2V0QWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RpY2tldC1hbHQnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYzZmZcIiwgXCJNMTI4IDE2MGgzMjB2MTkySDEyOFYxNjB6bTQwMCA5NmMwIDI2LjUxIDIxLjQ5IDQ4IDQ4IDQ4djk2YzAgMjYuNTEtMjEuNDkgNDgtNDggNDhINDhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDh2LTk2YzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhzLTIxLjQ5LTQ4LTQ4LTQ4di05NmMwLTI2LjUxIDIxLjQ5LTQ4IDQ4LTQ4aDQ4MGMyNi41MSAwIDQ4IDIxLjQ5IDQ4IDQ4djk2Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4em0tNDgtMTA0YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNEgxMjBjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYyMDhjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMzNmMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjRWMTUyelwiXVxufTtcbnZhciBmYVRpbWVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RpbWVzJyxcbiAgaWNvbjogWzM1MiwgNTEyLCBbXSwgXCJmMDBkXCIsIFwiTTI0Mi43MiAyNTZsMTAwLjA3LTEwMC4wN2MxMi4yOC0xMi4yOCAxMi4yOC0zMi4xOSAwLTQ0LjQ4bC0yMi4yNC0yMi4yNGMtMTIuMjgtMTIuMjgtMzIuMTktMTIuMjgtNDQuNDggMEwxNzYgMTg5LjI4IDc1LjkzIDg5LjIxYy0xMi4yOC0xMi4yOC0zMi4xOS0xMi4yOC00NC40OCAwTDkuMjEgMTExLjQ1Yy0xMi4yOCAxMi4yOC0xMi4yOCAzMi4xOSAwIDQ0LjQ4TDEwOS4yOCAyNTYgOS4yMSAzNTYuMDdjLTEyLjI4IDEyLjI4LTEyLjI4IDMyLjE5IDAgNDQuNDhsMjIuMjQgMjIuMjRjMTIuMjggMTIuMjggMzIuMiAxMi4yOCA0NC40OCAwTDE3NiAzMjIuNzJsMTAwLjA3IDEwMC4wN2MxMi4yOCAxMi4yOCAzMi4yIDEyLjI4IDQ0LjQ4IDBsMjIuMjQtMjIuMjRjMTIuMjgtMTIuMjggMTIuMjgtMzIuMTkgMC00NC40OEwyNDIuNzIgMjU2elwiXVxufTtcbnZhciBmYVRpbWVzQ2lyY2xlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RpbWVzLWNpcmNsZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjA1N1wiLCBcIk0yNTYgOEMxMTkgOCA4IDExOSA4IDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM5MyA4IDI1NiA4em0xMjEuNiAzMTMuMWM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzM4IDM3Ny42Yy00LjcgNC43LTEyLjMgNC43LTE3IDBMMjU2IDMxMmwtNjUuMSA2NS42Yy00LjcgNC43LTEyLjMgNC43LTE3IDBMMTM0LjQgMzM4Yy00LjctNC43LTQuNy0xMi4zIDAtMTdsNjUuNi02NS02NS42LTY1LjFjLTQuNy00LjctNC43LTEyLjMgMC0xN2wzOS42LTM5LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDY1IDY1LjcgNjUuMS02NS42YzQuNy00LjcgMTIuMy00LjcgMTcgMGwzOS42IDM5LjZjNC43IDQuNyA0LjcgMTIuMyAwIDE3TDMxMiAyNTZsNjUuNiA2NS4xelwiXVxufTtcbnZhciBmYVRpbnQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGludCcsXG4gIGljb246IFszNTIsIDUxMiwgW10sIFwiZjA0M1wiLCBcIk0yMDUuMjIgMjIuMDljLTcuOTQtMjguNzgtNDkuNDQtMzAuMTItNTguNDQgMEMxMDAuMDEgMTc5Ljg1IDAgMjIyLjcyIDAgMzMzLjkxIDAgNDMyLjM1IDc4LjcyIDUxMiAxNzYgNTEyczE3Ni03OS42NSAxNzYtMTc4LjA5YzAtMTExLjc1LTk5Ljc5LTE1My4zNC0xNDYuNzgtMzExLjgyek0xNzYgNDQ4Yy02MS43NSAwLTExMi01MC4yNS0xMTItMTEyIDAtOC44NCA3LjE2LTE2IDE2LTE2czE2IDcuMTYgMTYgMTZjMCA0NC4xMSAzNS44OSA4MCA4MCA4MCA4Ljg0IDAgMTYgNy4xNiAxNiAxNnMtNy4xNiAxNi0xNiAxNnpcIl1cbn07XG52YXIgZmFUaW50U2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndGludC1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjVjN1wiLCBcIk02MzMuODIgNDU4LjFMNDk0Ljk3IDM1MC43OGMuNTItNS41NyAxLjAzLTExLjE2IDEuMDMtMTYuODcgMC0xMTEuNzYtOTkuNzktMTUzLjM0LTE0Ni43OC0zMTEuODItNy45NC0yOC43OC00OS40NC0zMC4xMi01OC40NCAwLTE1LjUyIDUyLjM0LTM2Ljg3IDkxLjk2LTU4LjQ5IDEyNS42OEw0NS40NyAzLjM3QzM4LjQ5LTIuMDUgMjguNDMtLjggMjMuMDEgNi4xOEwzLjM3IDMxLjQ1Qy0yLjA1IDM4LjQyLS44IDQ4LjQ3IDYuMTggNTMuOWw1ODguMzYgNDU0LjczYzYuOTggNS40MyAxNy4wMyA0LjE3IDIyLjQ2LTIuODFsMTkuNjQtMjUuMjdjNS40MS02Ljk3IDQuMTYtMTcuMDItMi44Mi0yMi40NXpNMTQ0IDMzMy45MUMxNDQgNDMyLjM1IDIyMi43MiA1MTIgMzIwIDUxMmM0NC43MSAwIDg1LjM3LTE2Ljk2IDExNi40LTQ0LjdMMTYyLjcyIDI1NS43OGMtMTEuNDEgMjMuNS0xOC43MiA0OC4zNS0xOC43MiA3OC4xM3pcIl1cbn07XG52YXIgZmFUaXJlZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0aXJlZCcsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjVjOFwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0zMy44IDE4OS43bDgwLTQ4YzExLjYtNi45IDI0IDcuNyAxNS40IDE4TDM0My42IDIwOGwzMy42IDQwLjNjOC43IDEwLjQtMy45IDI0LjgtMTUuNCAxOGwtODAtNDhjLTcuNy00LjctNy43LTE1LjkgMC0yMC42em0tMTYzLTMwYy04LjYtMTAuMyAzLjgtMjQuOSAxNS40LTE4bDgwIDQ4YzcuOCA0LjcgNy44IDE1LjkgMCAyMC42bC04MCA0OGMtMTEuNSA2LjgtMjQtNy42LTE1LjQtMThsMzMuNi00MC4zLTMzLjYtNDAuM3pNMjQ4IDI4OGM1MS45IDAgMTE1LjMgNDMuOCAxMjMuMiAxMDYuNyAxLjcgMTMuNi04IDI0LjYtMTcuNyAyMC40LTI1LjktMTEuMS02NC40LTE3LjQtMTA1LjUtMTcuNHMtNzkuNiA2LjMtMTA1LjUgMTcuNGMtOS44IDQuMi0xOS40LTctMTcuNy0yMC40QzEzMi43IDMzMS44IDE5Ni4xIDI4OCAyNDggMjg4elwiXVxufTtcbnZhciBmYVRvZ2dsZU9mZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b2dnbGUtb2ZmJyxcbiAgaWNvbjogWzU3NiwgNTEyLCBbXSwgXCJmMjA0XCIsIFwiTTM4NCA2NEgxOTJDODUuOTYxIDY0IDAgMTQ5Ljk2MSAwIDI1NnM4NS45NjEgMTkyIDE5MiAxOTJoMTkyYzEwNi4wMzkgMCAxOTItODUuOTYxIDE5Mi0xOTJTNDkwLjAzOSA2NCAzODQgNjR6TTY0IDI1NmMwLTcwLjc0MSA1Ny4yNDktMTI4IDEyOC0xMjggNzAuNzQxIDAgMTI4IDU3LjI0OSAxMjggMTI4IDAgNzAuNzQxLTU3LjI0OSAxMjgtMTI4IDEyOC03MC43NDEgMC0xMjgtNTcuMjQ5LTEyOC0xMjh6bTMyMCAxMjhoLTQ4LjkwNWM2NS4yMTctNzIuODU4IDY1LjIzNi0xODMuMTIgMC0yNTZIMzg0YzcwLjc0MSAwIDEyOCA1Ny4yNDkgMTI4IDEyOCAwIDcwLjc0LTU3LjI0OSAxMjgtMTI4IDEyOHpcIl1cbn07XG52YXIgZmFUb2dnbGVPbiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b2dnbGUtb24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyMDVcIiwgXCJNMzg0IDY0SDE5MkM4NiA2NCAwIDE1MCAwIDI1NnM4NiAxOTIgMTkyIDE5MmgxOTJjMTA2IDAgMTkyLTg2IDE5Mi0xOTJTNDkwIDY0IDM4NCA2NHptMCAzMjBjLTcwLjggMC0xMjgtNTcuMy0xMjgtMTI4IDAtNzAuOCA1Ny4zLTEyOCAxMjgtMTI4IDcwLjggMCAxMjggNTcuMyAxMjggMTI4IDAgNzAuOC01Ny4zIDEyOC0xMjggMTI4elwiXVxufTtcbnZhciBmYVRvaWxldCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b2lsZXQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY3ZDhcIiwgXCJNMzY4IDQ4YzguOCAwIDE2LTcuMiAxNi0xNlYxNmMwLTguOC03LjItMTYtMTYtMTZIMTZDNy4yIDAgMCA3LjIgMCAxNnYxNmMwIDguOCA3LjIgMTYgMTYgMTZoMTZ2MTU2LjdDMTEuOCAyMTQuOCAwIDIyNi45IDAgMjQwYzAgNjcuMiAzNC42IDEyNi4yIDg2LjggMTYwLjVsLTIxLjQgNzAuMkM1OS4xIDQ5MS4yIDc0LjUgNTEyIDk2IDUxMmgxOTJjMjEuNSAwIDM2LjktMjAuOCAzMC42LTQxLjNsLTIxLjQtNzAuMkMzNDkuNCAzNjYuMiAzODQgMzA3LjIgMzg0IDI0MGMwLTEzLjEtMTEuOC0yNS4yLTMyLTM1LjNWNDhoMTZ6TTgwIDcyYzAtNC40IDMuNi04IDgtOGg0OGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDg4Yy00LjQgMC04LTMuNi04LThWNzJ6bTExMiAyMDBjLTc3LjEgMC0xMzkuNi0xNC4zLTEzOS42LTMyczYyLjUtMzIgMTM5LjYtMzIgMTM5LjYgMTQuMyAxMzkuNiAzMi02Mi41IDMyLTEzOS42IDMyelwiXVxufTtcbnZhciBmYVRvaWxldFBhcGVyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RvaWxldC1wYXBlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjcxZVwiLCBcIk0xMjggMEM3NC45OCAwIDMyIDg1Ljk2IDMyIDE5MnYxNzIuMDdjMCA0MS4xMi05LjggNjIuNzctMzEuMTcgMTI2Ljg3Qy0yLjYyIDUwMS4zIDUuMDkgNTEyIDE2LjAxIDUxMmgyODAuOTJjMTMuNzcgMCAyNi04LjgxIDMwLjM2LTIxLjg4IDEyLjgzLTM4LjQ4IDI0LjcxLTcyLjQgMjQuNzEtMTI2LjA1VjE5MmMwLTgzLjYgMjMuNjctMTUzLjUyIDYwLjQ0LTE5MkgxMjh6TTk2IDIyNGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6bTY0IDBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTYgMTYgNy4xNiAxNiAxNi03LjE2IDE2LTE2IDE2em02NCAwYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnM3LjE2LTE2IDE2LTE2IDE2IDcuMTYgMTYgMTYtNy4xNiAxNi0xNiAxNnptNjQgMGMtOC44NCAwLTE2LTcuMTYtMTYtMTZzNy4xNi0xNiAxNi0xNiAxNiA3LjE2IDE2IDE2LTcuMTYgMTYtMTYgMTZ6TTQ4MCAwYy01My4wMiAwLTk2IDg1Ljk2LTk2IDE5MnM0Mi45OCAxOTIgOTYgMTkyIDk2LTg1Ljk2IDk2LTE5MlM1MzMuMDIgMCA0ODAgMHptMCAyNTZjLTE3LjY3IDAtMzItMjguNjUtMzItNjRzMTQuMzMtNjQgMzItNjQgMzIgMjguNjUgMzIgNjQtMTQuMzMgNjQtMzIgNjR6XCJdXG59O1xudmFyIGZhVG9vbGJveCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0b29sYm94JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNTUyXCIsIFwiTTUwMi42MyAyMTQuNjNsLTQ1LjI1LTQ1LjI1Yy02LTYtMTQuMTQtOS4zNy0yMi42My05LjM3SDM4NFY4MGMwLTI2LjUxLTIxLjQ5LTQ4LTQ4LTQ4SDE3NmMtMjYuNTEgMC00OCAyMS40OS00OCA0OHY4MEg3Ny4yNWMtOC40OSAwLTE2LjYyIDMuMzctMjIuNjMgOS4zN0w5LjM3IDIxNC42M2MtNiA2LTkuMzcgMTQuMTQtOS4zNyAyMi42M1YzMjBoMTI4di0xNmMwLTguODQgNy4xNi0xNiAxNi0xNmgzMmM4Ljg0IDAgMTYgNy4xNiAxNiAxNnYxNmgxMjh2LTE2YzAtOC44NCA3LjE2LTE2IDE2LTE2aDMyYzguODQgMCAxNiA3LjE2IDE2IDE2djE2aDEyOHYtODIuNzVjMC04LjQ4LTMuMzctMTYuNjItOS4zNy0yMi42MnpNMzIwIDE2MEgxOTJWOTZoMTI4djY0em02NCAyMDhjMCA4Ljg0LTcuMTYgMTYtMTYgMTZoLTMyYy04Ljg0IDAtMTYtNy4xNi0xNi0xNnYtMTZIMTkydjE2YzAgOC44NC03LjE2IDE2LTE2IDE2aC0zMmMtOC44NCAwLTE2LTcuMTYtMTYtMTZ2LTE2SDB2OTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg0NDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtOTZIMzg0djE2elwiXVxufTtcbnZhciBmYVRvb2xzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvb2xzJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmN2Q5XCIsIFwiTTUwMS4xIDM5NS43TDM4NCAyNzguNmMtMjMuMS0yMy4xLTU3LjYtMjcuNi04NS40LTEzLjlMMTkyIDE1OC4xVjk2TDY0IDAgMCA2NGw5NiAxMjhoNjIuMWwxMDYuNiAxMDYuNmMtMTMuNiAyNy44LTkuMiA2Mi4zIDEzLjkgODUuNGwxMTcuMSAxMTcuMWMxNC42IDE0LjYgMzguMiAxNC42IDUyLjcgMGw1Mi43LTUyLjdjMTQuNS0xNC42IDE0LjUtMzguMiAwLTUyLjd6TTMzMS43IDIyNWMyOC4zIDAgNTQuOSAxMSA3NC45IDMxbDE5LjQgMTkuNGMxNS44LTYuOSAzMC44LTE2LjUgNDMuOC0yOS41IDM3LjEtMzcuMSA0OS43LTg5LjMgMzcuOS0xMzYuNy0yLjItOS0xMy41LTEyLjEtMjAuMS01LjVsLTc0LjQgNzQuNC02Ny45LTExLjNMMzM0IDk4LjlsNzQuNC03NC40YzYuNi02LjYgMy40LTE3LjktNS43LTIwLjItNDcuNC0xMS43LTk5LjYuOS0xMzYuNiAzNy45LTI4LjUgMjguNS00MS45IDY2LjEtNDEuMiAxMDMuNmw4Mi4xIDgyLjFjOC4xLTEuOSAxNi41LTIuOSAyNC43LTIuOXptLTEwMy45IDgybC01Ni43LTU2LjdMMTguNyA0MDIuOGMtMjUgMjUtMjUgNjUuNSAwIDkwLjVzNjUuNSAyNSA5MC41IDBsMTIzLjYtMTIzLjZjLTcuNi0xOS45LTkuOS00MS42LTUtNjIuN3pNNjQgNDcyYy0xMy4yIDAtMjQtMTAuOC0yNC0yNCAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMuMi0xMC43IDI0LTI0IDI0elwiXVxufTtcbnZhciBmYVRvb3RoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3Rvb3RoJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNWM5XCIsIFwiTTQ0My45OCA5Ni4yNWMtMTEuMDEtNDUuMjItNDcuMTEtODIuMDYtOTIuMDEtOTMuNzItMzIuMTktOC4zNi02MyA1LjEtODkuMTQgMjQuMzMtMy4yNSAyLjM5LTYuOTYgMy43My0xMC41IDUuNDhsMjguMzIgMTguMjFjNy40MiA0Ljc3IDkuNTggMTQuNjcgNC44IDIyLjExLTQuNDYgNi45NS0xNC4yNyA5Ljg2LTIyLjExIDQuOEwxNjIuODMgMTIuODRjLTIwLjctMTAuODUtNDMuMzgtMTYuNC02Ni44MS0xMC4zMS00NC45IDExLjY3LTgxIDQ4LjUtOTIuMDEgOTMuNzItMTAuMTMgNDEuNjItLjQyIDgwLjgxIDIxLjUgMTEwLjQzIDIzLjM2IDMxLjU3IDMyLjY4IDY4LjY2IDM2LjI5IDEwNy4zNSA0LjQgNDcuMTYgMTAuMzMgOTQuMTYgMjAuOTQgMTQwLjMybDcuOCAzMy45NWMzLjE5IDEzLjg3IDE1LjQ5IDIzLjcgMjkuNjcgMjMuNyAxMy45NyAwIDI2LjE1LTkuNTUgMjkuNTQtMjMuMTZsMzQuNDctMTM4LjQyYzQuNTYtMTguMzIgMjAuOTYtMzEuMTYgMzkuNzYtMzEuMTZzMzUuMiAxMi44NSAzOS43NiAzMS4xNmwzNC40NyAxMzguNDJjMy4zOSAxMy42MSAxNS41NyAyMy4xNiAyOS41NCAyMy4xNiAxNC4xOCAwIDI2LjQ4LTkuODMgMjkuNjctMjMuN2w3LjgtMzMuOTVjMTAuNjEtNDYuMTUgMTYuNTMtOTMuMTYgMjAuOTQtMTQwLjMyIDMuNjEtMzguNyAxMi45My03NS43OCAzNi4yOS0xMDcuMzUgMjEuOTUtMjkuNjEgMzEuNjYtNjguOCAyMS41My0xMTAuNDN6XCJdXG59O1xudmFyIGZhVG9yYWggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndG9yYWgnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2YTBcIiwgXCJNMzIwLjA1IDM2Ni40OGwxNy43Mi0yOS42NGgtMzUuNDZ6bTk5LjIxLTE2NkgzODIuNGwxOC40NiAzMC44MnpNNDggMEMyMS40OSAwIDAgMTQuMzMgMCAzMnY0NDhjMCAxNy42NyAyMS40OSAzMiA0OCAzMnM0OC0xNC4zMyA0OC0zMlYzMkM5NiAxNC4zMyA3NC41MSAwIDQ4IDB6bTE3Mi43NCAzMTEuNWgzNi44NWwtMTguNDYtMzAuODJ6bTE2MS43MSAwaDM2Ljg2bC0xOC40NS0zMC44ek0xMjggNDY0aDM4NFY0OEgxMjh6bTY2Ljc3LTI3OC4xM2EyMS4yMiAyMS4yMiAwIDAgMSAxOC40OC0xMC43MWg1OS40NWwyOS4xMy00OC43MWEyMS4xMyAyMS4xMyAwIDAgMSAxOC4yMi0xMC4zN0EyMC43NiAyMC43NiAwIDAgMSAzMzggMTI2LjI5bDI5LjI1IDQ4Ljg2aDU5LjUyYTIxLjEyIDIxLjEyIDAgMCAxIDE4LjEgMzJMNDE1LjYzIDI1NiA0NDUgMzA1YTIwLjY5IDIwLjY5IDAgMCAxIC4yNCAyMS4xMiAyMS4yNSAyMS4yNSAwIDAgMS0xOC40OCAxMC43MmgtNTkuNDdsLTI5LjEzIDQ4LjdhMjEuMTMgMjEuMTMgMCAwIDEtMTguMTYgMTAuNCAyMC43OSAyMC43OSAwIDAgMS0xOC0xMC4yMmwtMjkuMjUtNDguODhoLTU5LjVhMjEuMTEgMjEuMTEgMCAwIDEtMTguMS0zMkwyMjQuMzYgMjU2IDE5NSAyMDdhMjAuNyAyMC43IDAgMCAxLS4yMy0yMS4xM3pNNTkyIDBjLTI2LjUxIDAtNDggMTQuMzMtNDggMzJ2NDQ4YzAgMTcuNjcgMjEuNDkgMzIgNDggMzJzNDgtMTQuMzMgNDgtMzJWMzJjMC0xNy42Ny0yMS40OS0zMi00OC0zMnpNMzIwIDE0NS41M2wtMTcuNzggMjkuNjJoMzUuNDZ6bS02Mi40NSA1NWgtMzYuODFsMTguNDQgMzAuOHptMjkuNTggMTExaDY1Ljc5TDM4Ni4wOSAyNTZsLTMzLjIzLTU1LjUyaC02NS43OUwyNTMuOSAyNTZ6XCJdXG59O1xudmFyIGZhVG9yaWlHYXRlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RvcmlpLWdhdGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2YTFcIiwgXCJNMzc2LjQ1IDMyaC0yNDAuOUEzMDMuMTcgMzAzLjE3IDAgMCAxIDAgMHY5NmMwIDE3LjY3IDE0LjMzIDMyIDMyIDMyaDMydjY0SDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmg0OHYyNDBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjU2aDI1NnYyNDBjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZWMjU2aDQ4YzguODQgMCAxNi03LjE2IDE2LTE2di0zMmMwLTguODQtNy4xNi0xNi0xNi0xNmgtNDh2LTY0aDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWMGEzMDMuMTcgMzAzLjE3IDAgMCAxLTEzNS41NSAzMnpNMTI4IDEyOGg5NnY2NGgtOTZ2LTY0em0yNTYgNjRoLTk2di02NGg5NnY2NHpcIl1cbn07XG52YXIgZmFUcmFjdG9yID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWN0b3InLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY3MjJcIiwgXCJNNTI4IDMzNmMtNDguNiAwLTg4IDM5LjQtODggODhzMzkuNCA4OCA4OCA4OCA4OC0zOS40IDg4LTg4LTM5LjQtODgtODgtODh6bTAgMTEyYy0xMy4yMyAwLTI0LTEwLjc3LTI0LTI0czEwLjc3LTI0IDI0LTI0IDI0IDEwLjc3IDI0IDI0LTEwLjc3IDI0LTI0IDI0em04MC0yODhoLTY0di00MC4yYzAtMTQuMTIgNC43LTI3Ljc2IDEzLjE1LTM4Ljg0IDQuNDItNS44IDMuNTUtMTQuMDYtMS4zMi0xOS40OUw1MzQuMiAzNy4zYy02LjY2LTcuNDUtMTguMzItNi45Mi0yNC43Ljc4QzQ5MC41OCA2MC45IDQ4MCA4OS44MSA0ODAgMTE5LjhWMTYwSDM3Ny42N0wzMjEuNTggMjkuMTRBNDcuOTE0IDQ3LjkxNCAwIDAgMCAyNzcuNDUgMEgxNDRjLTI2LjQ3IDAtNDggMjEuNTMtNDggNDh2MTQ2LjUyYy04LjYzLTYuNzMtMjAuOTYtNi40Ni0yOC44OSAxLjQ3TDM2IDIyNy4xYy04LjU5IDguNTktOC41OSAyMi41MiAwIDMxLjExbDUuMDYgNS4wNmMtNC45OSA5LjI2LTguOTYgMTguODItMTEuOTEgMjguNzJIMjJjLTEyLjE1IDAtMjIgOS44NS0yMiAyMnY0NGMwIDEyLjE1IDkuODUgMjIgMjIgMjJoNy4xNGMyLjk2IDkuOTEgNi45MiAxOS40NiAxMS45MSAyOC43M2wtNS4wNiA1LjA2Yy04LjU5IDguNTktOC41OSAyMi41MiAwIDMxLjExTDY3LjEgNDc2YzguNTkgOC41OSAyMi41MiA4LjU5IDMxLjExIDBsNS4wNi01LjA2YzkuMjYgNC45OSAxOC44MiA4Ljk2IDI4LjcyIDExLjkxVjQ5MGMwIDEyLjE1IDkuODUgMjIgMjIgMjJoNDRjMTIuMTUgMCAyMi05Ljg1IDIyLTIydi03LjE0YzkuOS0yLjk1IDE5LjQ2LTYuOTIgMjguNzItMTEuOTFsNS4wNiA1LjA2YzguNTkgOC41OSAyMi41MiA4LjU5IDMxLjExIDBsMzEuMTEtMzEuMTFjOC41OS04LjU5IDguNTktMjIuNTIgMC0zMS4xMWwtNS4wNi01LjA2YzQuOTktOS4yNiA4Ljk2LTE4LjgyIDExLjkxLTI4LjcySDMzMGMxMi4xNSAwIDIyLTkuODUgMjItMjJ2LTZoODAuNTRjMjEuOTEtMjguOTkgNTYuMzItNDggOTUuNDYtNDggMTguNjQgMCAzNi4wNyA0LjYxIDUxLjggMTIuMmw1MC44Mi01MC44MmM2LTYgOS4zNy0xNC4xNCA5LjM3LTIyLjYzVjE5MmMuMDEtMTcuNjctMTQuMzItMzItMzEuOTktMzJ6TTE3NiA0MTZjLTQ0LjE4IDAtODAtMzUuODItODAtODBzMzUuODItODAgODAtODAgODAgMzUuODIgODAgODAtMzUuODIgODAtODAgODB6bTIyLTI1NmgtMzhWNjRoMTA2Ljg5bDQxLjE1IDk2SDE5OHpcIl1cbn07XG52YXIgZmFUcmFkZW1hcmsgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhZGVtYXJrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMjVjXCIsIFwiTTI2MC42IDk2SDEyYy02LjYgMC0xMiA1LjQtMTIgMTJ2NDMuMWMwIDYuNiA1LjQgMTIgMTIgMTJoODUuMVY0MDRjMCA2LjYgNS40IDEyIDEyIDEyaDU0LjNjNi42IDAgMTItNS40IDEyLTEyVjE2My4xaDg1LjFjNi42IDAgMTItNS40IDEyLTEyVjEwOGMuMS02LjYtNS4zLTEyLTExLjktMTJ6TTY0MCA0MDNsLTI0LTI5NmMtLjUtNi4yLTUuNy0xMS0xMi0xMWgtNjUuNGMtNS4xIDAtOS43IDMuMy0xMS4zIDguMWwtNDMuOCAxMjcuMWMtNy4yIDIwLjYtMTYuMSA1Mi44LTE2LjEgNTIuOGgtLjlzLTguOS0zMi4yLTE2LjEtNTIuOGwtNDMuOC0xMjcuMWMtMS43LTQuOC02LjItOC4xLTExLjMtOC4xaC02NS40Yy02LjIgMC0xMS40IDQuOC0xMiAxMWwtMjQuNCAyOTZjLS42IDcgNC45IDEzIDEyIDEzSDM2MGM2LjMgMCAxMS41LTQuOSAxMi0xMS4ybDkuMS0xMzIuOWMxLjgtMjQuMiAwLTUzLjcgMC01My43aC45czEwLjcgMzMuNiAxNy45IDUzLjdsMzAuNyA4NC43YzEuNyA0LjcgNi4yIDcuOSAxMS4zIDcuOWg1MC4zYzUuMSAwIDkuNi0zLjIgMTEuMy03LjlsMzAuNy04NC43YzcuMi0yMC4xIDE3LjktNTMuNyAxNy45LTUzLjdoLjlzLTEuOCAyOS41IDAgNTMuN2w5LjEgMTMyLjljLjQgNi4zIDUuNyAxMS4yIDEyIDExLjJINjI4YzcgMCAxMi41LTYgMTItMTN6XCJdXG59O1xudmFyIGZhVHJhZmZpY0xpZ2h0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWZmaWMtbGlnaHQnLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImY2MzdcIiwgXCJNMzg0IDE5MmgtNjR2LTM3Ljg4YzM3LjItMTMuMjIgNjQtNDguMzggNjQtOTAuMTJoLTY0VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIOTZDNzguMzMgMCA2NCAxNC4zMyA2NCAzMnYzMkgwYzAgNDEuNzQgMjYuOCA3Ni45IDY0IDkwLjEyVjE5MkgwYzAgNDEuNzQgMjYuOCA3Ni45IDY0IDkwLjEyVjMyMEgwYzAgNDIuODQgMjguMjUgNzguNjkgNjYuOTkgOTEuMDVDNzkuNDIgNDY4LjcyIDEzMC42IDUxMiAxOTIgNTEyczExMi41OC00My4yOCAxMjUuMDEtMTAwLjk1QzM1NS43NSAzOTguNjkgMzg0IDM2Mi44NCAzODQgMzIwaC02NHYtMzcuODhjMzcuMi0xMy4yMiA2NC00OC4zOCA2NC05MC4xMnpNMTkyIDQxNmMtMjYuNTEgMC00OC0yMS40OS00OC00OHMyMS40OS00OCA0OC00OCA0OCAyMS40OSA0OCA0OC0yMS40OSA0OC00OCA0OHptMC0xMjhjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTAtMTI4Yy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4elwiXVxufTtcbnZhciBmYVRyYWluID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYWluJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjM4XCIsIFwiTTQ0OCA5NnYyNTZjMCA1MS44MTUtNjEuNjI0IDk2LTEzMC4wMjIgOTZsNjIuOTggNDkuNzIxQzM4Ni45MDUgNTAyLjQxNyAzODMuNTYyIDUxMiAzNzYgNTEySDcyYy03LjU3OCAwLTEwLjg5Mi05LjU5NC00Ljk1Ny0xNC4yNzlMMTMwLjAyMiA0NDhDNjEuODIgNDQ4IDAgNDAzLjk1NCAwIDM1MlY5NkMwIDQyLjk4MSA2NCAwIDEyOCAwaDE5MmM2NSAwIDEyOCA0Mi45ODEgMTI4IDk2em0tNDggMTM2VjEyMGMwLTEzLjI1NS0xMC43NDUtMjQtMjQtMjRINzJjLTEzLjI1NSAwLTI0IDEwLjc0NS0yNCAyNHYxMTJjMCAxMy4yNTUgMTAuNzQ1IDI0IDI0IDI0aDMwNGMxMy4yNTUgMCAyNC0xMC43NDUgMjQtMjR6bS0xNzYgNjRjLTMwLjkyOCAwLTU2IDI1LjA3Mi01NiA1NnMyNS4wNzIgNTYgNTYgNTYgNTYtMjUuMDcyIDU2LTU2LTI1LjA3Mi01Ni01Ni01NnpcIl1cbn07XG52YXIgZmFUcmFtID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYW0nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY3ZGFcIiwgXCJNMjg4IDY0YzE3LjcgMCAzMi0xNC4zIDMyLTMyUzMwNS43IDAgMjg4IDBzLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnptMjIzLjUtMTIuMWMtMi4zLTguNi0xMS0xMy42LTE5LjYtMTEuM2wtNDgwIDEyOGMtOC41IDIuMy0xMy42IDExLTExLjMgMTkuNkMyLjUgMTk1LjMgOC45IDIwMCAxNiAyMDBjMS40IDAgMi44LS4yIDQuMS0uNUwyNDAgMTQwLjhWMjI0SDY0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYyMjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoMzg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjI1NmMwLTE3LjctMTQuMy0zMi0zMi0zMkgyNzJ2LTkxLjdsMjI4LjEtNjAuOGM4LjYtMi4zIDEzLjYtMTEuMSAxMS40LTE5LjZ6TTE3NiAzODRIODB2LTk2aDk2djk2em0xNjAtOTZoOTZ2OTZoLTk2di05NnptLTMyIDB2OTZoLTk2di05Nmg5NnpNMTkyIDk2YzE3LjcgMCAzMi0xNC4zIDMyLTMycy0xNC4zLTMyLTMyLTMyLTMyIDE0LjMtMzIgMzIgMTQuMyAzMiAzMiAzMnpcIl1cbn07XG52YXIgZmFUcmFuc2dlbmRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmFuc2dlbmRlcicsXG4gIGljb246IFszODQsIDUxMiwgW10sIFwiZjIyNFwiLCBcIk0zNzIgMGgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS04MC43IDgwLjdDMTk4LjUgMTA0LjEgMTcyLjIgOTYgMTQ0IDk2IDY0LjUgOTYgMCAxNjAuNSAwIDI0MGMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRWNDA4SDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djI4YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTI4aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtMjcuNmM2NC4xLTE0LjYgMTEyLTcxLjkgMTEyLTE0MC40IDAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsODAuNy04MC43IDE2LjkgMTYuOWM3LjYgNy42IDIwLjUgMi4yIDIwLjUtOC41VjEyYzAtNi42LTUuNC0xMi0xMi0xMnpNMTQ0IDMyMGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6XCJdXG59O1xudmFyIGZhVHJhbnNnZW5kZXJBbHQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhbnNnZW5kZXItYWx0JyxcbiAgaWNvbjogWzQ4MCwgNTEyLCBbXSwgXCJmMjI1XCIsIFwiTTQ2OCAwaC03OWMtMTAuNyAwLTE2IDEyLjktOC41IDIwLjVsMTYuOSAxNi45LTgwLjcgODAuN0MyOTQuNSAxMDQuMSAyNjguMiA5NiAyNDAgOTZjLTI4LjIgMC01NC41IDguMS03Ni43IDIyLjFsLTE2LjUtMTYuNSAxOS44LTE5LjhjNC43LTQuNyA0LjctMTIuMyAwLTE3bC0yOC4zLTI4LjNjLTQuNy00LjctMTIuMy00LjctMTcgMGwtMTkuOCAxOS44LTE5LTE5IDE2LjktMTYuOUMxMDcuMSAxMi45IDEwMS43IDAgOTEgMEgxMkM1LjQgMCAwIDUuNCAwIDEydjc5YzAgMTAuNyAxMi45IDE2IDIwLjUgOC41bDE2LjktMTYuOSAxOSAxOS0xOS44IDE5LjhjLTQuNyA0LjctNC43IDEyLjMgMCAxN2wyOC4zIDI4LjNjNC43IDQuNyAxMi4zIDQuNyAxNyAwbDE5LjgtMTkuOCAxNi41IDE2LjVDMTA0LjEgMTg1LjUgOTYgMjExLjggOTYgMjQwYzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNFY0MDhoLTM2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djI4YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTI4aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtMjcuNmM2NC4xLTE0LjYgMTEyLTcxLjkgMTEyLTE0MC40IDAtMjguMi04LjEtNTQuNS0yMi4xLTc2LjdsODAuNy04MC43IDE2LjkgMTYuOWM3LjYgNy42IDIwLjUgMi4yIDIwLjUtOC41VjEyYzAtNi42LTUuNC0xMi0xMi0xMnpNMjQwIDMyMGMtNDQuMSAwLTgwLTM1LjktODAtODBzMzUuOS04MCA4MC04MCA4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODB6XCJdXG59O1xudmFyIGZhVHJhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJhc2gnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxZjhcIiwgXCJNNDMyIDMySDMxMmwtOS40LTE4LjdBMjQgMjQgMCAwIDAgMjgxLjEgMEgxNjYuOGEyMy43MiAyMy43MiAwIDAgMC0yMS40IDEzLjNMMTM2IDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2ek01My4yIDQ2N2E0OCA0OCAwIDAgMCA0Ny45IDQ1aDI0NS44YTQ4IDQ4IDAgMCAwIDQ3LjktNDVMNDE2IDEyOEgzMnpcIl1cbn07XG52YXIgZmFUcmFzaEFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmFzaC1hbHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYyZWRcIiwgXCJNMzIgNDY0YTQ4IDQ4IDAgMCAwIDQ4IDQ4aDI4OGE0OCA0OCAwIDAgMCA0OC00OFYxMjhIMzJ6bTI3Mi0yNTZhMTYgMTYgMCAwIDEgMzIgMHYyMjRhMTYgMTYgMCAwIDEtMzIgMHptLTk2IDBhMTYgMTYgMCAwIDEgMzIgMHYyMjRhMTYgMTYgMCAwIDEtMzIgMHptLTk2IDBhMTYgMTYgMCAwIDEgMzIgMHYyMjRhMTYgMTYgMCAwIDEtMzIgMHpNNDMyIDMySDMxMmwtOS40LTE4LjdBMjQgMjQgMCAwIDAgMjgxLjEgMEgxNjYuOGEyMy43MiAyMy43MiAwIDAgMC0yMS40IDEzLjNMMTM2IDMySDE2QTE2IDE2IDAgMCAwIDAgNDh2MzJhMTYgMTYgMCAwIDAgMTYgMTZoNDE2YTE2IDE2IDAgMCAwIDE2LTE2VjQ4YTE2IDE2IDAgMCAwLTE2LTE2elwiXVxufTtcbnZhciBmYVRyYXNoUmVzdG9yZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmFzaC1yZXN0b3JlJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODI5XCIsIFwiTTUzLjIgNDY3YTQ4IDQ4IDAgMCAwIDQ3LjkgNDVoMjQ1LjhhNDggNDggMCAwIDAgNDcuOS00NUw0MTYgMTI4SDMyem03MC4xMS0xNzUuOGw4OS4zOC05NC4yNmExNS40MSAxNS40MSAwIDAgMSAyMi42MiAwbDg5LjM4IDk0LjI2YzEwLjA4IDEwLjYyIDIuOTQgMjguOC0xMS4zMiAyOC44SDI1NnYxMTJhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2VjMyMGgtNTcuMzdjLTE0LjI2IDAtMjEuNC0xOC4xOC0xMS4zMi0yOC44ek00MzIgMzJIMzEybC05LjQtMTguN0EyNCAyNCAwIDAgMCAyODEuMSAwSDE2Ni44YTIzLjcyIDIzLjcyIDAgMCAwLTIxLjQgMTMuM0wxMzYgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhVHJhc2hSZXN0b3JlQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RyYXNoLXJlc3RvcmUtYWx0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmODJhXCIsIFwiTTMyIDQ2NGE0OCA0OCAwIDAgMCA0OCA0OGgyODhhNDggNDggMCAwIDAgNDgtNDhWMTI4SDMyem05MS4zMS0xNzIuOGw4OS4zOC05NC4yNmExNS40MSAxNS40MSAwIDAgMSAyMi42MiAwbDg5LjM4IDk0LjI2YzEwLjA4IDEwLjYyIDIuOTQgMjguOC0xMS4zMiAyOC44SDI1NnYxMTJhMTYgMTYgMCAwIDEtMTYgMTZoLTMyYTE2IDE2IDAgMCAxLTE2LTE2VjMyMGgtNTcuMzdjLTE0LjI2IDAtMjEuNC0xOC4xOC0xMS4zMi0yOC44ek00MzIgMzJIMzEybC05LjQtMTguN0EyNCAyNCAwIDAgMCAyODEuMSAwSDE2Ni44YTIzLjcyIDIzLjcyIDAgMCAwLTIxLjQgMTMuM0wxMzYgMzJIMTZBMTYgMTYgMCAwIDAgMCA0OHYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZWNDhhMTYgMTYgMCAwIDAtMTYtMTZ6XCJdXG59O1xudmFyIGZhVHJlZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cmVlJyxcbiAgaWNvbjogWzM4NCwgNTEyLCBbXSwgXCJmMWJiXCIsIFwiTTM3OC4zMSAzNzguNDlMMjk4LjQyIDI4OGgzMC42M2M5LjAxIDAgMTYuOTgtNSAyMC43OC0xMy4wNiAzLjgtOC4wNCAyLjU1LTE3LjI2LTMuMjgtMjQuMDVMMjY4LjQyIDE2MGgyOC44OWM5LjEgMCAxNy4zLTUuMzUgMjAuODYtMTMuNjEgMy41Mi04LjEzIDEuODYtMTcuNTktNC4yNC0yNC4wOEwyMDMuNjYgNC44M2MtNi4wMy02LjQ1LTE3LjI4LTYuNDUtMjMuMzIgMEw3MC4wNiAxMjIuMzFjLTYuMSA2LjQ5LTcuNzUgMTUuOTUtNC4yNCAyNC4wOEM2OS4zOCAxNTQuNjUgNzcuNTkgMTYwIDg2LjY5IDE2MGgyOC44OWwtNzguMTQgOTAuOTFjLTUuODEgNi43OC03LjA2IDE1Ljk5LTMuMjcgMjQuMDRDMzcuOTcgMjgzIDQ1LjkzIDI4OCA1NC45NSAyODhoMzAuNjNMNS42OSAzNzguNDljLTYgNi43OS03LjM2IDE2LjA5LTMuNTYgMjQuMjYgMy43NSA4LjA1IDEyIDEzLjI1IDIxLjAxIDEzLjI1SDE2MHYyNC40NWwtMzAuMjkgNDguNGMtNS4zMiAxMC42NCAyLjQyIDIzLjE2IDE0LjMxIDIzLjE2aDk1Ljk2YzExLjg5IDAgMTkuNjMtMTIuNTIgMTQuMzEtMjMuMTZMMjI0IDQ0MC40NVY0MTZoMTM2Ljg2YzkuMDEgMCAxNy4yNi01LjIgMjEuMDEtMTMuMjUgMy44LTguMTcgMi40NC0xNy40Ny0zLjU2LTI0LjI2elwiXVxufTtcbnZhciBmYVRyb3BoeSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd0cm9waHknLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwOTFcIiwgXCJNNTUyIDY0SDQ0OFYyNGMwLTEzLjMtMTAuNy0yNC0yNC0yNEgxNTJjLTEzLjMgMC0yNCAxMC43LTI0IDI0djQwSDI0QzEwLjcgNjQgMCA3NC43IDAgODh2NTZjMCAzNS43IDIyLjUgNzIuNCA2MS45IDEwMC43IDMxLjUgMjIuNyA2OS44IDM3LjEgMTEwIDQxLjdDMjAzLjMgMzM4LjUgMjQwIDM2MCAyNDAgMzYwdjcyaC00OGMtMzUuMyAwLTY0IDIwLjctNjQgNTZ2MTJjMCA2LjYgNS40IDEyIDEyIDEyaDI5NmM2LjYgMCAxMi01LjQgMTItMTJ2LTEyYzAtMzUuMy0yOC43LTU2LTY0LTU2aC00OHYtNzJzMzYuNy0yMS41IDY4LjEtNzMuNmM0MC4zLTQuNiA3OC42LTE5IDExMC00MS43IDM5LjMtMjguMyA2MS45LTY1IDYxLjktMTAwLjdWODhjMC0xMy4zLTEwLjctMjQtMjQtMjR6TTk5LjMgMTkyLjhDNzQuOSAxNzUuMiA2NCAxNTUuNiA2NCAxNDR2LTE2aDY0LjJjMSAzMi42IDUuOCA2MS4yIDEyLjggODYuMi0xNS4xLTUuMi0yOS4yLTEyLjQtNDEuNy0yMS40ek01MTIgMTQ0YzAgMTYuMS0xNy43IDM2LjEtMzUuMyA0OC44LTEyLjUgOS0yNi43IDE2LjItNDEuOCAyMS40IDctMjUgMTEuOC01My42IDEyLjgtODYuMkg1MTJ2MTZ6XCJdXG59O1xudmFyIGZhVHJ1Y2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2snLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYwZDFcIiwgXCJNNjI0IDM1MmgtMTZWMjQzLjljMC0xMi43LTUuMS0yNC45LTE0LjEtMzMuOUw0OTQgMTEwLjFjLTktOS0yMS4yLTE0LjEtMzMuOS0xNC4xSDQxNlY0OGMwLTI2LjUtMjEuNS00OC00OC00OEg0OEMyMS41IDAgMCAyMS41IDAgNDh2MzIwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDE2YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoMTI4YzAgNTMgNDMgOTYgOTYgOTZzOTYtNDMgOTYtOTZoNDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6TTE2MCA0NjRjLTI2LjUgMC00OC0yMS41LTQ4LTQ4czIxLjUtNDggNDgtNDggNDggMjEuNSA0OCA0OC0yMS41IDQ4LTQ4IDQ4em0zMjAgMGMtMjYuNSAwLTQ4LTIxLjUtNDgtNDhzMjEuNS00OCA0OC00OCA0OCAyMS41IDQ4IDQ4LTIxLjUgNDgtNDggNDh6bTgwLTIwOEg0MTZWMTQ0aDQ0LjFsOTkuOSA5OS45VjI1NnpcIl1cbn07XG52YXIgZmFUcnVja0xvYWRpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stbG9hZGluZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRkZVwiLCBcIk01MC4yIDM3NS42YzIuMyA4LjUgMTEuMSAxMy42IDE5LjYgMTEuM2wyMTYuNC01OGM4LjUtMi4zIDEzLjYtMTEuMSAxMS4zLTE5LjZsLTQ5LjctMTg1LjVjLTIuMy04LjUtMTEuMS0xMy42LTE5LjYtMTEuM0wxNTEgMTMzLjNsMjQuOCA5Mi43LTYxLjggMTYuNS0yNC44LTkyLjctNzcuMyAyMC43QzMuNCAxNzIuOC0xLjcgMTgxLjYuNiAxOTAuMWw0OS42IDE4NS41ek0zODQgMGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MzIzLjZMNS45IDQ1MGMtNC4zIDEuMi02LjggNS42LTUuNiA5LjhsMTIuNiA0Ni4zYzEuMiA0LjMgNS42IDYuOCA5LjggNS42bDM5My43LTEwNy40QzQxOC44IDQ2NC4xIDQ2Ny42IDUxMiA1MjggNTEyYzYxLjkgMCAxMTItNTAuMSAxMTItMTEyVjBIMzg0em0xNDQgNDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OHMyMS41LTQ4IDQ4LTQ4IDQ4IDIxLjUgNDggNDgtMjEuNSA0OC00OCA0OHpcIl1cbn07XG52YXIgZmFUcnVja01vbnN0ZXIgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stbW9uc3RlcicsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjYzYlwiLCBcIk02MjQgMjI0aC0xNnYtNjRjMC0xNy42Ny0xNC4zMy0zMi0zMi0zMmgtNzMuNkw0MTkuMjIgMjQuMDJBNjQuMDI1IDY0LjAyNSAwIDAgMCAzNjkuMjQgMEgyNTZjLTE3LjY3IDAtMzIgMTQuMzMtMzIgMzJ2OTZINDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djgwSDE2Yy04Ljg0IDAtMTYgNy4xNi0xNiAxNnYzMmMwIDguODQgNy4xNiAxNiAxNiAxNmgxNi43MmMyOS4yMS0zOC42NSA3NS4xLTY0IDEyNy4yOC02NHM5OC4wNyAyNS4zNSAxMjcuMjggNjRoNjUuNDVjMjkuMjEtMzguNjUgNzUuMS02NCAxMjcuMjgtNjRzOTguMDcgMjUuMzUgMTI3LjI4IDY0SDYyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6bS0zMzYtOTZWNjRoODEuMjRsNTEuMiA2NEgyODh6bTMwNCAyMjRoLTUuMmMtMi4yLTcuMzMtNS4wNy0xNC4yOC04LjY1LTIwLjg5bDMuNjctMy42N2M2LjI1LTYuMjUgNi4yNS0xNi4zOCAwLTIyLjYzbC0yMi42My0yMi42M2MtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMy42NyAzLjY3QTExMC44NSAxMTAuODUgMCAwIDAgNTEyIDI3Ny4yVjI3MmMwLTguODQtNy4xNi0xNi0xNi0xNmgtMzJjLTguODQgMC0xNiA3LjE2LTE2IDE2djUuMmMtNy4zMyAyLjItMTQuMjggNS4wNy0yMC44OSA4LjY1bC0zLjY3LTMuNjdjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTIyLjYzIDIyLjYzYy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDMuNjcgMy42N0ExMTAuODUgMTEwLjg1IDAgMCAwIDM3My4yIDM1MkgzNjhjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDUuMmMyLjIgNy4zMyA1LjA3IDE0LjI4IDguNjUgMjAuODlsLTMuNjcgMy42N2MtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wyMi42MyAyMi42M2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDMuNjctMy42N2M2LjYxIDMuNTcgMTMuNTcgNi40NSAyMC45IDguNjV2NS4yYzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di01LjJjNy4zMy0yLjIgMTQuMjgtNS4wNyAyMC45LTguNjVsMy42NyAzLjY3YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMjIuNjMtMjIuNjNjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMy42Ny0zLjY3YTExMC44NSAxMTAuODUgMCAwIDAgOC42NS0yMC44OWg1LjJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyYy0uMDItOC44NC03LjE4LTE2LTE2LjAyLTE2em0tMTEyIDgwYy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4em0tMjA4LTgwaC01LjJjLTIuMi03LjMzLTUuMDctMTQuMjgtOC42NS0yMC44OWwzLjY3LTMuNjdjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMjIuNjMtMjIuNjNjLTYuMjUtNi4yNS0xNi4zOC02LjI1LTIyLjYzIDBsLTMuNjcgMy42N0ExMTAuODUgMTEwLjg1IDAgMCAwIDE5MiAyNzcuMlYyNzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZoLTMyYy04Ljg0IDAtMTYgNy4xNi0xNiAxNnY1LjJjLTcuMzMgMi4yLTE0LjI4IDUuMDctMjAuODkgOC42NWwtMy42Ny0zLjY3Yy02LjI1LTYuMjUtMTYuMzgtNi4yNS0yMi42MyAwTDU4LjE4IDMwNC44Yy02LjI1IDYuMjUtNi4yNSAxNi4zOCAwIDIyLjYzbDMuNjcgMy42N2ExMTAuODUgMTEwLjg1IDAgMCAwLTguNjUgMjAuODlINDhjLTguODQgMC0xNiA3LjE2LTE2IDE2djMyYzAgOC44NCA3LjE2IDE2IDE2IDE2aDUuMmMyLjIgNy4zMyA1LjA3IDE0LjI4IDguNjUgMjAuODlsLTMuNjcgMy42N2MtNi4yNSA2LjI1LTYuMjUgMTYuMzggMCAyMi42M2wyMi42MyAyMi42M2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDMuNjctMy42N2M2LjYxIDMuNTcgMTMuNTcgNi40NSAyMC45IDguNjV2NS4yYzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di01LjJjNy4zMy0yLjIgMTQuMjgtNS4wNyAyMC45LTguNjVsMy42NyAzLjY3YzYuMjUgNi4yNSAxNi4zOCA2LjI1IDIyLjYzIDBsMjIuNjMtMjIuNjNjNi4yNS02LjI1IDYuMjUtMTYuMzggMC0yMi42M2wtMy42Ny0zLjY3YTExMC44NSAxMTAuODUgMCAwIDAgOC42NS0yMC44OWg1LjJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTMyQzI4OCAzNTkuMTYgMjgwLjg0IDM1MiAyNzIgMzUyem0tMTEyIDgwYy0yNi41MSAwLTQ4LTIxLjQ5LTQ4LTQ4czIxLjQ5LTQ4IDQ4LTQ4IDQ4IDIxLjQ5IDQ4IDQ4LTIxLjQ5IDQ4LTQ4IDQ4elwiXVxufTtcbnZhciBmYVRydWNrTW92aW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RydWNrLW1vdmluZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRkZlwiLCBcIk02MjEuMyAyMzcuM2wtNTguNS01OC41Yy0xMi0xMi0yOC4zLTE4LjctNDUuMy0xOC43SDQ4MFY2NGMwLTE3LjctMTQuMy0zMi0zMi0zMkgzMkMxNC4zIDMyIDAgNDYuMyAwIDY0djMzNmMwIDQ0LjIgMzUuOCA4MCA4MCA4MCAyNi4zIDAgNDkuNC0xMi45IDY0LTMyLjQgMTQuNiAxOS42IDM3LjcgMzIuNCA2NCAzMi40IDQ0LjIgMCA4MC0zNS44IDgwLTgwIDAtNS41LS42LTEwLjgtMS42LTE2aDE2My4yYy0xLjEgNS4yLTEuNiAxMC41LTEuNiAxNiAwIDQ0LjIgMzUuOCA4MCA4MCA4MHM4MC0zNS44IDgwLTgwYzAtNS41LS42LTEwLjgtMS42LTE2SDYyNGM4LjggMCAxNi03LjIgMTYtMTZ2LTg1LjVjMC0xNy02LjctMzMuMi0xOC43LTQ1LjJ6TTgwIDQzMmMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMiAzMiAxNC40IDMyIDMyLTE0LjQgMzItMzIgMzJ6bTEyOCAwYy0xNy42IDAtMzItMTQuNC0zMi0zMnMxNC40LTMyIDMyLTMyIDMyIDE0LjQgMzIgMzItMTQuNCAzMi0zMiAzMnptMjcyLTIyNGgzNy41YzQuMyAwIDguMyAxLjcgMTEuMyA0LjdsNDMuMyA0My4zSDQ4MHYtNDh6bTQ4IDIyNGMtMTcuNiAwLTMyLTE0LjQtMzItMzJzMTQuNC0zMiAzMi0zMiAzMiAxNC40IDMyIDMyLTE0LjQgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhVHJ1Y2tQaWNrdXAgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHJ1Y2stcGlja3VwJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNjNjXCIsIFwiTTYyNCAyODhoLTE2di02NGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyaC00OEw0MTkuMjIgNTYuMDJBNjQuMDI1IDY0LjAyNSAwIDAgMCAzNjkuMjQgMzJIMjU2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjEyOEg2NGMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnY2NEgxNmMtOC44NCAwLTE2IDcuMTYtMTYgMTZ2MzJjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoNDkuNjFjLS43NiA1LjI3LTEuNjEgMTAuNTItMS42MSAxNiAwIDYxLjg2IDUwLjE0IDExMiAxMTIgMTEyczExMi01MC4xNCAxMTItMTEyYzAtNS40OC0uODUtMTAuNzMtMS42MS0xNmg2Ny4yM2MtLjc2IDUuMjctMS42MSAxMC41Mi0xLjYxIDE2IDAgNjEuODYgNTAuMTQgMTEyIDExMiAxMTJzMTEyLTUwLjE0IDExMi0xMTJjMC01LjQ4LS44NS0xMC43My0xLjYxLTE2SDYyNGM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtMzJjMC04Ljg0LTcuMTYtMTYtMTYtMTZ6TTI4OCA5Nmg4MS4yNGw3Ni44IDk2SDI4OFY5NnpNMTc2IDQxNmMtMjYuNDcgMC00OC0yMS41My00OC00OHMyMS41My00OCA0OC00OCA0OCAyMS41MyA0OCA0OC0yMS41MyA0OC00OCA0OHptMjg4IDBjLTI2LjQ3IDAtNDgtMjEuNTMtNDgtNDhzMjEuNTMtNDggNDgtNDggNDggMjEuNTMgNDggNDgtMjEuNTMgNDgtNDggNDh6XCJdXG59O1xudmFyIGZhVHNoaXJ0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3RzaGlydCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjU1M1wiLCBcIk02MzEuMiA5Ni41TDQzNi41IDBDNDE2LjQgMjcuOCAzNzEuOSA0Ny4yIDMyMCA0Ny4yUzIyMy42IDI3LjggMjAzLjUgMEw4LjggOTYuNWMtNy45IDQtMTEuMSAxMy42LTcuMiAyMS41bDU3LjIgMTE0LjVjNCA3LjkgMTMuNiAxMS4xIDIxLjUgNy4ybDU2LjYtMjcuN2MxMC42LTUuMiAyMyAyLjUgMjMgMTQuNFY0ODBjMCAxNy43IDE0LjMgMzIgMzIgMzJoMjU2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIyNi4zYzAtMTEuOCAxMi40LTE5LjYgMjMtMTQuNGw1Ni42IDI3LjdjNy45IDQgMTcuNS44IDIxLjUtNy4yTDYzOC4zIDExOGM0LTcuOS44LTE3LjYtNy4xLTIxLjV6XCJdXG59O1xudmFyIGZhVHR5ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3R0eScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjFlNFwiLCBcIk01LjM3IDEwMy44MjJjMTM4LjUzMi0xMzguNTMyIDM2Mi45MzYtMTM4LjMyNiA1MDEuMjYyIDAgNi4wNzggNi4wNzggNy4wNzQgMTUuNDk2IDIuNTgzIDIyLjY4MWwtNDMuMjE0IDY5LjEzOGExOC4zMzIgMTguMzMyIDAgMCAxLTIyLjM1NiA3LjMwNWwtODYuNDIyLTM0LjU2OWExOC4zMzUgMTguMzM1IDAgMCAxLTExLjQzNC0xOC44NDZMMzUxLjc0MSA5MGMtNjIuMTQ1LTIyLjQ1NC0xMzAuNjM2LTIxLjk4Ni0xOTEuNDgzIDBsNS45NTMgNTkuNTMyYTE4LjMzMSAxOC4zMzEgMCAwIDEtMTEuNDM0IDE4Ljg0NmwtODYuNDIzIDM0LjU2OGExOC4zMzQgMTguMzM0IDAgMCAxLTIyLjM1Ni03LjMwNUwyLjc4NyAxMjYuNTAyYTE4LjMzMyAxOC4zMzMgMCAwIDEgMi41ODMtMjIuNjh6TTk2IDMwOHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkg0NGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptLTMzNiA5NnYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkg5MmMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTk2IDB2LTQwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTQwYy02LjYyNyAwLTEyIDUuMzczLTEyIDEydjQwYzAgNi42MjcgNS4zNzMgMTIgMTIgMTJoNDBjNi42MjcgMCAxMi01LjM3MyAxMi0xMnptOTYgMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMmgtNDBjLTYuNjI3IDAtMTIgNS4zNzMtMTIgMTJ2NDBjMCA2LjYyNyA1LjM3MyAxMiAxMiAxMmg0MGM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6TTk2IDUwMHYtNDBjMC02LjYyNy01LjM3My0xMi0xMi0xMkg0NGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6bTI4OCAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEySDE0MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDIzMmM2LjYyNyAwIDEyLTUuMzczIDEyLTEyem05NiAwdi00MGMwLTYuNjI3LTUuMzczLTEyLTEyLTEyaC00MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnY0MGMwIDYuNjI3IDUuMzczIDEyIDEyIDEyaDQwYzYuNjI3IDAgMTItNS4zNzMgMTItMTJ6XCJdXG59O1xudmFyIGZhVHYgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndHYnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyNmNcIiwgXCJNNTkyIDBINDhBNDggNDggMCAwIDAgMCA0OHYzMjBhNDggNDggMCAwIDAgNDggNDhoMjQwdjMySDExMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2SDM1MnYtMzJoMjQwYTQ4IDQ4IDAgMCAwIDQ4LTQ4VjQ4YTQ4IDQ4IDAgMCAwLTQ4LTQ4em0tMTYgMzUySDY0VjY0aDUxMnpcIl1cbn07XG52YXIgZmFVbWJyZWxsYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bWJyZWxsYScsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjBlOVwiLCBcIk01NzUuNyAyODAuOEM1NDcuMSAxNDQuNSA0MzcuMyA2Mi42IDMyMCA0OS45VjMyYzAtMTcuNy0xNC4zLTMyLTMyLTMycy0zMiAxNC4zLTMyIDMydjE3LjlDMTM4LjMgNjIuNiAyOS41IDE0NC41LjMgMjgwLjhjLTIuMiAxMC4xIDguNSAyMS4zIDE4LjcgMTEuNCA1Mi01NSAxMDcuNy01Mi40IDE1OC42IDM3IDUuMyA5LjUgMTQuOSA4LjYgMTkuNyAwIDIwLjItMzUuNCA0NC45LTczLjIgOTAuNy03My4yIDU4LjUgMCA4OC4yIDY4LjggOTAuNyA3My4yIDQuOCA4LjYgMTQuNCA5LjUgMTkuNyAwIDUxLTg5LjUgMTA3LjEtOTEuNCAxNTguNi0zNyAxMC4zIDEwIDIwLjktMS4zIDE4LjctMTEuNHpNMjU2IDMwMS43VjQzMmMwIDguOC03LjIgMTYtMTYgMTYtNy44IDAtMTMuMi01LjMtMTUuMS0xMC43LTUuOS0xNi43LTI0LjEtMjUuNC00MC44LTE5LjUtMTYuNyA1LjktMjUuNCAyNC4yLTE5LjUgNDAuOCAxMS4yIDMxLjkgNDEuNiA1My4zIDc1LjQgNTMuMyA0NC4xIDAgODAtMzUuOSA4MC04MFYzMDEuNmMtOS4xLTcuOS0xOS44LTEzLjYtMzItMTMuNi0xMi4zLjEtMjIuNCA0LjgtMzIgMTMuN3pcIl1cbn07XG52YXIgZmFVbWJyZWxsYUJlYWNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VtYnJlbGxhLWJlYWNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNWNhXCIsIFwiTTExNS4zOCAxMzYuOWwxMDIuMTEgMzcuMThjMzUuMTktODEuNTQgODYuMjEtMTQ0LjI5IDEzOS0xNzMuNy05NS44OC00Ljg5LTE4OC43OCAzNi45Ni0yNDguNTMgMTExLjgtNi42OSA4LjQtMi42NiAyMS4wNSA3LjQyIDI0Ljcyem0xMzIuMjUgNDguMTZsMjM4LjQ4IDg2LjgzYzM1Ljc2LTEyMS4zOCAxOC43LTIzMS42Ni00Mi42My0yNTMuOTgtNy40LTIuNy0xNS4xMy00LTIzLjA5LTQtNTguMDIuMDEtMTI4LjI3IDY5LjE3LTE3Mi43NiAxNzEuMTV6TTUyMS40OCA2MC41YzYuMjIgMTYuMyAxMC44MyAzNC42IDEzLjIgNTUuMTkgNS43NCA0OS44OS0xLjQyIDEwOC4yMy0xOC45NSAxNjYuOThsMTAyLjYyIDM3LjM2YzEwLjA5IDMuNjcgMjEuMzEtMy40MyAyMS41Ny0xNC4xNyAyLjMyLTk1LjY5LTQxLjkxLTE4Ny40NC0xMTguNDQtMjQ1LjM2ek01NjAgNDQ3Ljk4SDMyMS4wNkwzODYgMjY5LjVsLTYwLjE0LTIxLjktNzIuOSAyMDAuMzdIMTZjLTguODQgMC0xNiA3LjE2LTE2IDE2LjAxdjMyLjAxQzAgNTA0LjgzIDcuMTYgNTEyIDE2IDUxMmg1NDRjOC44NCAwIDE2LTcuMTcgMTYtMTYuMDF2LTMyLjAxYzAtOC44NC03LjE2LTE2LTE2LTE2elwiXVxufTtcbnZhciBmYVVuZGVybGluZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bmRlcmxpbmUnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwY2RcIiwgXCJNMzIgNjRoMzJ2MTYwYzAgODguMjIgNzEuNzggMTYwIDE2MCAxNjBzMTYwLTcxLjc4IDE2MC0xNjBWNjRoMzJhMTYgMTYgMCAwIDAgMTYtMTZWMTZhMTYgMTYgMCAwIDAtMTYtMTZIMjcyYTE2IDE2IDAgMCAwLTE2IDE2djMyYTE2IDE2IDAgMCAwIDE2IDE2aDMydjE2MGE4MCA4MCAwIDAgMS0xNjAgMFY2NGgzMmExNiAxNiAwIDAgMCAxNi0xNlYxNmExNiAxNiAwIDAgMC0xNi0xNkgzMmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNnptNDAwIDM4NEgxNmExNiAxNiAwIDAgMC0xNiAxNnYzMmExNiAxNiAwIDAgMCAxNiAxNmg0MTZhMTYgMTYgMCAwIDAgMTYtMTZ2LTMyYTE2IDE2IDAgMCAwLTE2LTE2elwiXVxufTtcbnZhciBmYVVuZG8gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndW5kbycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBlMlwiLCBcIk0yMTIuMzMzIDIyNC4zMzNIMTJjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJWMTJDMCA1LjM3MyA1LjM3MyAwIDEyIDBoNDhjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY3OC4xMTJDMTE3Ljc3MyAzOS4yNzkgMTg0LjI2IDcuNDcgMjU4LjE3NSA4LjAwN2MxMzYuOTA2Ljk5NCAyNDYuNDQ4IDExMS42MjMgMjQ2LjE1NyAyNDguNTMyQzUwNC4wNDEgMzkzLjI1OCAzOTMuMTIgNTA0IDI1Ni4zMzMgNTA0Yy02NC4wODkgMC0xMjIuNDk2LTI0LjMxMy0xNjYuNTEtNjQuMjE1LTUuMDk5LTQuNjIyLTUuMzM0LTEyLjU1NC0uNDY3LTE3LjQybDMzLjk2Ny0zMy45NjdjNC40NzQtNC40NzQgMTEuNjYyLTQuNzE3IDE2LjQwMS0uNTI1QzE3MC43NiA0MTUuMzM2IDIxMS41OCA0MzIgMjU2LjMzMyA0MzJjOTcuMjY4IDAgMTc2LTc4LjcxNiAxNzYtMTc2IDAtOTcuMjY3LTc4LjcxNi0xNzYtMTc2LTE3Ni01OC40OTYgMC0xMTAuMjggMjguNDc2LTE0Mi4yNzQgNzIuMzMzaDk4LjI3NGM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjQ4YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6XCJdXG59O1xudmFyIGZhVW5kb0FsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bmRvLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJlYVwiLCBcIk0yNTUuNTQ1IDhjLTY2LjI2OS4xMTktMTI2LjQzOCAyNi4yMzMtMTcwLjg2IDY4LjY4NUw0OC45NzEgNDAuOTcxQzMzLjg1MSAyNS44NTEgOCAzNi41NTkgOCA1Ny45NDFWMTkyYzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGgxMzQuMDU5YzIxLjM4MiAwIDMyLjA5LTI1Ljg1MSAxNi45NzEtNDAuOTcxbC00MS43NS00MS43NWMzMC44NjQtMjguODk5IDcwLjgwMS00NC45MDcgMTEzLjIzLTQ1LjI3MyA5Mi4zOTgtLjc5OCAxNzAuMjgzIDczLjk3NyAxNjkuNDg0IDE2OS40NDJDNDIzLjIzNiAzNDguMDA5IDM0OS44MTYgNDI0IDI1NiA0MjRjLTQxLjEyNyAwLTc5Ljk5Ny0xNC42NzgtMTEwLjYzLTQxLjU1Ni00Ljc0My00LjE2MS0xMS45MDYtMy45MDgtMTYuMzY4LjU1M0w4OS4zNCA0MjIuNjU5Yy00Ljg3MiA0Ljg3Mi00LjYzMSAxMi44MTUuNDgyIDE3LjQzM0MxMzMuNzk4IDQ3OS44MTMgMTkyLjA3NCA1MDQgMjU2IDUwNGMxMzYuOTY2IDAgMjQ3Ljk5OS0xMTEuMDMzIDI0OC0yNDcuOTk4QzUwNC4wMDEgMTE5LjE5MyAzOTIuMzU0IDcuNzU1IDI1NS41NDUgOHpcIl1cbn07XG52YXIgZmFVbml2ZXJzYWxBY2Nlc3MgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndW5pdmVyc2FsLWFjY2VzcycsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjI5YVwiLCBcIk0yNTYgNDhjMTE0Ljk1MyAwIDIwOCA5My4wMjkgMjA4IDIwOCAwIDExNC45NTMtOTMuMDI5IDIwOC0yMDggMjA4LTExNC45NTMgMC0yMDgtOTMuMDI5LTIwOC0yMDggMC0xMTQuOTUzIDkzLjAyOS0yMDggMjA4LTIwOG0wLTQwQzExOS4wMzMgOCA4IDExOS4wMzMgOCAyNTZzMTExLjAzMyAyNDggMjQ4IDI0OCAyNDgtMTExLjAzMyAyNDgtMjQ4UzM5Mi45NjcgOCAyNTYgOHptMCA1NkMxNDkuOTYxIDY0IDY0IDE0OS45NjEgNjQgMjU2czg1Ljk2MSAxOTIgMTkyIDE5MiAxOTItODUuOTYxIDE5Mi0xOTJTMzYyLjAzOSA2NCAyNTYgNjR6bTAgNDRjMTkuODgyIDAgMzYgMTYuMTE4IDM2IDM2cy0xNi4xMTggMzYtMzYgMzYtMzYtMTYuMTE4LTM2LTM2IDE2LjExOC0zNiAzNi0zNnptMTE3Ljc0MSA5OC4wMjNjLTI4LjcxMiA2Ljc3OS01NS41MTEgMTIuNzQ4LTgyLjE0IDE1LjgwNy44NTEgMTAxLjAyMyAxMi4zMDYgMTIzLjA1MiAyNS4wMzcgMTU1LjYyMSAzLjYxNyA5LjI2LS45NTcgMTkuNjk4LTEwLjIxNyAyMy4zMTUtOS4yNjEgMy42MTctMTkuNjk5LS45NTctMjMuMzE2LTEwLjIxNy04LjcwNS0yMi4zMDgtMTcuMDg2LTQwLjYzNi0yMi4yNjEtNzguNTQ5aC05LjY4NmMtNS4xNjcgMzcuODUxLTEzLjUzNCA1Ni4yMDgtMjIuMjYyIDc4LjU0OS0zLjYxNSA5LjI1NS0xNC4wNSAxMy44MzYtMjMuMzE1IDEwLjIxNy05LjI2LTMuNjE3LTEzLjgzNC0xNC4wNTYtMTAuMjE3LTIzLjMxNSAxMi43MTMtMzIuNTQxIDI0LjE4NS01NC41NDEgMjUuMDM3LTE1NS42MjEtMjYuNjI5LTMuMDU4LTUzLjQyOC05LjAyNy04Mi4xNDEtMTUuODA3LTguNi0yLjAzMS0xMy45MjYtMTAuNjQ4LTExLjg5NS0xOS4yNDlzMTAuNjQ3LTEzLjkyNiAxOS4yNDktMTEuODk1Yzk2LjY4NiAyMi44MjkgMTI0LjI4MyAyMi43ODMgMjIwLjc3NSAwIDguNTk5LTIuMDMgMTcuMjE4IDMuMjk0IDE5LjI0OSAxMS44OTUgMi4wMjkgOC42MDEtMy4yOTcgMTcuMjE5LTExLjg5NyAxOS4yNDl6XCJdXG59O1xudmFyIGZhVW5pdmVyc2l0eSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bml2ZXJzaXR5JyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTljXCIsIFwiTTQ5NiAxMjh2MTZhOCA4IDAgMCAxLTggOGgtMjR2MTJjMCA2LjYyNy01LjM3MyAxMi0xMiAxMkg2MGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMTJIMjRhOCA4IDAgMCAxLTgtOHYtMTZhOCA4IDAgMCAxIDQuOTQxLTcuMzkybDIzMi04OGE3Ljk5NiA3Ljk5NiAwIDAgMSA2LjExOCAwbDIzMiA4OEE4IDggMCAwIDEgNDk2IDEyOHptLTI0IDMwNEg0MGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djE2YTggOCAwIDAgMCA4IDhoNDY0YTggOCAwIDAgMCA4LTh2LTE2YzAtMTMuMjU1LTEwLjc0NS0yNC0yNC0yNHpNOTYgMTkydjE5Mkg2MGMtNi42MjcgMC0xMiA1LjM3My0xMiAxMnYyMGg0MTZ2LTIwYzAtNi42MjctNS4zNzMtMTItMTItMTJoLTM2VjE5MmgtNjR2MTkyaC02NFYxOTJoLTY0djE5MmgtNjRWMTkySDk2elwiXVxufTtcbnZhciBmYVVubGluayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1bmxpbmsnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYxMjdcIiwgXCJNMzA0LjA4MyA0MDUuOTA3YzQuNjg2IDQuNjg2IDQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwtNDQuNjc0IDQ0LjY3NGMtNTkuMjYzIDU5LjI2Mi0xNTUuNjkzIDU5LjI2Ni0yMTQuOTYxIDAtNTkuMjY0LTU5LjI2NS01OS4yNjQtMTU1LjY5NiAwLTIxNC45Nmw0NC42NzUtNDQuNjc1YzQuNjg2LTQuNjg2IDEyLjI4NC00LjY4NiAxNi45NzEgMGwzOS41OTggMzkuNTk4YzQuNjg2IDQuNjg2IDQuNjg2IDEyLjI4NCAwIDE2Ljk3MWwtNDQuNjc1IDQ0LjY3NGMtMjguMDcyIDI4LjA3My0yOC4wNzIgNzMuNzUgMCAxMDEuODIzIDI4LjA3MiAyOC4wNzIgNzMuNzUgMjguMDczIDEwMS44MjQgMGw0NC42NzQtNDQuNjc0YzQuNjg2LTQuNjg2IDEyLjI4NC00LjY4NiAxNi45NzEgMGwzOS41OTcgMzkuNTk4em0tNTYuNTY4LTI2MC4yMTZjNC42ODYgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3MSAwbDQ0LjY3NC00NC42NzRjMjguMDcyLTI4LjA3NSA3My43NS0yOC4wNzMgMTAxLjgyNCAwIDI4LjA3MiAyOC4wNzMgMjguMDcyIDczLjc1IDAgMTAxLjgyM2wtNDQuNjc1IDQ0LjY3NGMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxbDM5LjU5OCAzOS41OThjNC42ODYgNC42ODYgMTIuMjg0IDQuNjg2IDE2Ljk3MSAwbDQ0LjY3NS00NC42NzVjNTkuMjY1LTU5LjI2NSA1OS4yNjUtMTU1LjY5NSAwLTIxNC45Ni01OS4yNjYtNTkuMjY0LTE1NS42OTUtNTkuMjY0LTIxNC45NjEgMGwtNDQuNjc0IDQ0LjY3NGMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcxbDM5LjU5NyAzOS41OTh6bTIzNC44MjggMzU5LjI4bDIyLjYyNy0yMi42MjdjOS4zNzMtOS4zNzMgOS4zNzMtMjQuNTY5IDAtMzMuOTQxTDYzLjU5OCA3LjAyOWMtOS4zNzMtOS4zNzMtMjQuNTY5LTkuMzczLTMzLjk0MSAwTDcuMDI5IDI5LjY1N2MtOS4zNzMgOS4zNzMtOS4zNzMgMjQuNTY5IDAgMzMuOTQxbDQ0MS4zNzMgNDQxLjM3M2M5LjM3MyA5LjM3MiAyNC41NjkgOS4zNzIgMzMuOTQxIDB6XCJdXG59O1xudmFyIGZhVW5sb2NrID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VubG9jaycsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjA5Y1wiLCBcIk00MDAgMjU2SDE1MlYxNTIuOWMwLTM5LjYgMzEuNy03Mi41IDcxLjMtNzIuOSA0MC0uNCA3Mi43IDMyLjEgNzIuNyA3MnYxNmMwIDEzLjMgMTAuNyAyNCAyNCAyNGgzMmMxMy4zIDAgMjQtMTAuNyAyNC0yNHYtMTZDMzc2IDY4IDMwNy41LS4zIDIyMy41IDAgMTM5LjUuMyA3MiA2OS41IDcyIDE1My41VjI1Nkg0OGMtMjYuNSAwLTQ4IDIxLjUtNDggNDh2MTYwYzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OFYzMDRjMC0yNi41LTIxLjUtNDgtNDgtNDh6XCJdXG59O1xudmFyIGZhVW5sb2NrQWx0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VubG9jay1hbHQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYxM2VcIiwgXCJNNDAwIDI1NkgxNTJWMTUyLjljMC0zOS42IDMxLjctNzIuNSA3MS4zLTcyLjkgNDAtLjQgNzIuNyAzMi4xIDcyLjcgNzJ2MTZjMCAxMy4zIDEwLjcgMjQgMjQgMjRoMzJjMTMuMyAwIDI0LTEwLjcgMjQtMjR2LTE2QzM3NiA2OCAzMDcuNS0uMyAyMjMuNSAwIDEzOS41LjMgNzIgNjkuNSA3MiAxNTMuNVYyNTZINDhjLTI2LjUgMC00OCAyMS41LTQ4IDQ4djE2MGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWMzA0YzAtMjYuNS0yMS41LTQ4LTQ4LTQ4ek0yNjQgNDA4YzAgMjIuMS0xNy45IDQwLTQwIDQwcy00MC0xNy45LTQwLTQwdi00OGMwLTIyLjEgMTcuOS00MCA0MC00MHM0MCAxNy45IDQwIDQwdjQ4elwiXVxufTtcbnZhciBmYVVwbG9hZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1cGxvYWQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYwOTNcIiwgXCJNMjk2IDM4NGgtODBjLTEzLjMgMC0yNC0xMC43LTI0LTI0VjE5MmgtODcuN2MtMTcuOCAwLTI2LjctMjEuNS0xNC4xLTM0LjFMMjQyLjMgNS43YzcuNS03LjUgMTkuOC03LjUgMjcuMyAwbDE1Mi4yIDE1Mi4yYzEyLjYgMTIuNiAzLjcgMzQuMS0xNC4xIDM0LjFIMzIwdjE2OGMwIDEzLjMtMTAuNyAyNC0yNCAyNHptMjE2LTh2MTEyYzAgMTMuMy0xMC43IDI0LTI0IDI0SDI0Yy0xMy4zIDAtMjQtMTAuNy0yNC0yNFYzNzZjMC0xMy4zIDEwLjctMjQgMjQtMjRoMTM2djhjMCAzMC45IDI1LjEgNTYgNTYgNTZoODBjMzAuOSAwIDU2LTI1LjEgNTYtNTZ2LThoMTM2YzEzLjMgMCAyNCAxMC43IDI0IDI0em0tMTI0IDg4YzAtMTEtOS0yMC0yMC0yMHMtMjAgOS0yMCAyMCA5IDIwIDIwIDIwIDIwLTkgMjAtMjB6bTY0IDBjMC0xMS05LTIwLTIwLTIwcy0yMCA5LTIwIDIwIDkgMjAgMjAgMjAgMjAtOSAyMC0yMHpcIl1cbn07XG52YXIgZmFVc2VyID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXInLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwMDdcIiwgXCJNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03NC4yLTYwLjItMTM0LjQtMTM0LjQtMTM0LjR6XCJdXG59O1xudmFyIGZhVXNlckFsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWFsdCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQwNlwiLCBcIk0yNTYgMjg4Yzc5LjUgMCAxNDQtNjQuNSAxNDQtMTQ0UzMzNS41IDAgMjU2IDAgMTEyIDY0LjUgMTEyIDE0NHM2NC41IDE0NCAxNDQgMTQ0em0xMjggMzJoLTU1LjFjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZIMTI4QzU3LjMgMzIwIDAgMzc3LjMgMCA0NDh2MTZjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0xNmMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOHpcIl1cbn07XG52YXIgZmFVc2VyQWx0U2xhc2ggPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1hbHQtc2xhc2gnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0ZmFcIiwgXCJNNjMzLjggNDU4LjFMMzg5LjYgMjY5LjNDNDMzLjggMjQ0LjcgNDY0IDE5OC4xIDQ2NCAxNDQgNDY0IDY0LjUgMzk5LjUgMCAzMjAgMGMtNjcuMSAwLTEyMyA0Ni4xLTEzOSAxMDguMkw0NS41IDMuNEMzOC41LTIgMjguNS0uOCAyMyA2LjJMMy40IDMxLjRjLTUuNCA3LTQuMiAxNyAyLjggMjIuNGw1ODguNCA0NTQuN2M3IDUuNCAxNyA0LjIgMjIuNS0yLjhsMTkuNi0yNS4zYzUuNC02LjggNC4xLTE2LjktMi45LTIyLjN6TTE5OC40IDMyMEMxMjQuMiAzMjAgNjQgMzgwLjIgNjQgNDU0LjR2OS42YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM4Mi4yTDI0NS44IDMyMGgtNDcuNHpcIl1cbn07XG52YXIgZmFVc2VyQXN0cm9uYXV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItYXN0cm9uYXV0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNGZiXCIsIFwiTTY0IDIyNGgxMy41YzI0LjcgNTYuNSA4MC45IDk2IDE0Ni41IDk2czEyMS44LTM5LjUgMTQ2LjUtOTZIMzg0YzguOCAwIDE2LTcuMiAxNi0xNnYtOTZjMC04LjgtNy4yLTE2LTE2LTE2aC0xMy41QzM0NS44IDM5LjUgMjg5LjYgMCAyMjQgMFMxMDIuMiAzOS41IDc3LjUgOTZINjRjLTguOCAwLTE2IDcuMi0xNiAxNnY5NmMwIDguOCA3LjIgMTYgMTYgMTZ6bTQwLTg4YzAtMjIuMSAyMS41LTQwIDQ4LTQwaDE0NGMyNi41IDAgNDggMTcuOSA0OCA0MHYyNGMwIDUzLTQzIDk2LTk2IDk2aC00OGMtNTMgMC05Ni00My05Ni05NnYtMjR6bTcyIDcybDEyLTM2IDM2LTEyLTM2LTEyLTEyLTM2LTEyIDM2LTM2IDEyIDM2IDEyIDEyIDM2em0xNTEuNiAxMTMuNEMyOTcuNyAzNDAuNyAyNjIuMiAzNTIgMjI0IDM1MnMtNzMuNy0xMS4zLTEwMy42LTMwLjZDNTIuOSAzMjguNSAwIDM4NSAwIDQ1NC40djkuNmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg4MHYtNjRjMC0xNy43IDE0LjMtMzIgMzItMzJoMTI4YzE3LjcgMCAzMiAxNC4zIDMyIDMydjY0aDgwYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di05LjZjMC02OS40LTUyLjktMTI1LjktMTIwLjQtMTMzek0yNzIgNDQ4Yy04LjggMC0xNiA3LjItMTYgMTZzNy4yIDE2IDE2IDE2IDE2LTcuMiAxNi0xNi03LjItMTYtMTYtMTZ6bS05NiAwYy04LjggMC0xNiA3LjItMTYgMTZ2NDhoMzJ2LTQ4YzAtOC44LTcuMi0xNi0xNi0xNnpcIl1cbn07XG52YXIgZmFVc2VyQ2hlY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1jaGVjaycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRmY1wiLCBcIk0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptODkuNiAzMmgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDEuNmMwLTc0LjItNjAuMi0xMzQuNC0xMzQuNC0xMzQuNHptMzIzLTEyOC40bC0yNy44LTI4LjFjLTQuNi00LjctMTIuMS00LjctMTYuOC0uMWwtMTA0LjggMTA0LTQ1LjUtNDUuOGMtNC42LTQuNy0xMi4xLTQuNy0xNi44LS4xbC0yOC4xIDI3LjljLTQuNyA0LjYtNC43IDEyLjEtLjEgMTYuOGw4MS43IDgyLjNjNC42IDQuNyAxMi4xIDQuNyAxNi44LjFsMTQxLjMtMTQwLjJjNC42LTQuNyA0LjctMTIuMi4xLTE2Ljh6XCJdXG59O1xudmFyIGZhVXNlckNpcmNsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWNpcmNsZScsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjJiZFwiLCBcIk0yNDggOEMxMTEgOCAwIDExOSAwIDI1NnMxMTEgMjQ4IDI0OCAyNDggMjQ4LTExMSAyNDgtMjQ4UzM4NSA4IDI0OCA4em0wIDk2YzQ4LjYgMCA4OCAzOS40IDg4IDg4cy0zOS40IDg4LTg4IDg4LTg4LTM5LjQtODgtODggMzkuNC04OCA4OC04OHptMCAzNDRjLTU4LjcgMC0xMTEuMy0yNi42LTE0Ni41LTY4LjIgMTguOC0zNS40IDU1LjYtNTkuOCA5OC41LTU5LjggMi40IDAgNC44LjQgNy4xIDEuMSAxMyA0LjIgMjYuNiA2LjkgNDAuOSA2LjkgMTQuMyAwIDI4LTIuNyA0MC45LTYuOSAyLjMtLjcgNC43LTEuMSA3LjEtMS4xIDQyLjkgMCA3OS43IDI0LjQgOTguNSA1OS44QzM1OS4zIDQyMS40IDMwNi43IDQ0OCAyNDggNDQ4elwiXVxufTtcbnZhciBmYVVzZXJDbG9jayA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLWNsb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGZkXCIsIFwiTTQ5NiAyMjRjLTc5LjYgMC0xNDQgNjQuNC0xNDQgMTQ0czY0LjQgMTQ0IDE0NCAxNDQgMTQ0LTY0LjQgMTQ0LTE0NC02NC40LTE0NC0xNDQtMTQ0em02NCAxNTAuM2MwIDUuMy00LjQgOS43LTkuNyA5LjdoLTYwLjZjLTUuMyAwLTkuNy00LjQtOS43LTkuN3YtNzYuNmMwLTUuMyA0LjQtOS43IDkuNy05LjdoMTIuNmM1LjMgMCA5LjcgNC40IDkuNyA5LjdWMzUyaDM4LjNjNS4zIDAgOS43IDQuNCA5LjcgOS43djEyLjZ6TTMyMCAzNjhjMC0yNy44IDYuNy01NC4xIDE4LjItNzcuNS04LTEuNS0xNi4yLTIuNS0yNC42LTIuNWgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM0Ny4xYy00NS4zLTMxLjktNzUuMS04NC41LTc1LjEtMTQ0em0tOTYtMTEyYzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHpcIl1cbn07XG52YXIgZmFVc2VyQ29nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItY29nJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGZlXCIsIFwiTTYxMC41IDM3My4zYzIuNi0xNC4xIDIuNi0yOC41IDAtNDIuNmwyNS44LTE0LjljMy0xLjcgNC4zLTUuMiAzLjMtOC41LTYuNy0yMS42LTE4LjItNDEuMi0zMy4yLTU3LjQtMi4zLTIuNS02LTMuMS05LTEuNGwtMjUuOCAxNC45Yy0xMC45LTkuMy0yMy40LTE2LjUtMzYuOS0yMS4zdi0yOS44YzAtMy40LTIuNC02LjQtNS43LTcuMS0yMi4zLTUtNDUtNC44LTY2LjIgMC0zLjMuNy01LjcgMy43LTUuNyA3LjF2MjkuOGMtMTMuNSA0LjgtMjYgMTItMzYuOSAyMS4zbC0yNS44LTE0LjljLTIuOS0xLjctNi43LTEuMS05IDEuNC0xNSAxNi4yLTI2LjUgMzUuOC0zMy4yIDU3LjQtMSAzLjMuNCA2LjggMy4zIDguNWwyNS44IDE0LjljLTIuNiAxNC4xLTIuNiAyOC41IDAgNDIuNmwtMjUuOCAxNC45Yy0zIDEuNy00LjMgNS4yLTMuMyA4LjUgNi43IDIxLjYgMTguMiA0MS4xIDMzLjIgNTcuNCAyLjMgMi41IDYgMy4xIDkgMS40bDI1LjgtMTQuOWMxMC45IDkuMyAyMy40IDE2LjUgMzYuOSAyMS4zdjI5LjhjMCAzLjQgMi40IDYuNCA1LjcgNy4xIDIyLjMgNSA0NSA0LjggNjYuMiAwIDMuMy0uNyA1LjctMy43IDUuNy03LjF2LTI5LjhjMTMuNS00LjggMjYtMTIgMzYuOS0yMS4zbDI1LjggMTQuOWMyLjkgMS43IDYuNyAxLjEgOS0xLjQgMTUtMTYuMiAyNi41LTM1LjggMzMuMi01Ny40IDEtMy4zLS40LTYuOC0zLjMtOC41bC0yNS44LTE0Ljl6TTQ5NiA0MDAuNWMtMjYuOCAwLTQ4LjUtMjEuOC00OC41LTQ4LjVzMjEuOC00OC41IDQ4LjUtNDguNSA0OC41IDIxLjggNDguNSA0OC41LTIxLjcgNDguNS00OC41IDQ4LjV6TTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em0yMDEuMiAyMjYuNWMtMi4zLTEuMi00LjYtMi42LTYuOC0zLjlsLTcuOSA0LjZjLTYgMy40LTEyLjggNS4zLTE5LjYgNS4zLTEwLjkgMC0yMS40LTQuNi0yOC45LTEyLjYtMTguMy0xOS44LTMyLjMtNDMuOS00MC4yLTY5LjYtNS41LTE3LjcgMS45LTM2LjQgMTcuOS00NS43bDcuOS00LjZjLS4xLTIuNi0uMS01LjIgMC03LjhsLTcuOS00LjZjLTE2LTkuMi0yMy40LTI4LTE3LjktNDUuNy45LTIuOSAyLjItNS44IDMuMi04LjctMy44LS4zLTcuNS0xLjItMTEuNC0xLjJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMTAuMSAwIDE5LjUtMy4yIDI3LjItOC41LTEuMi0zLjgtMi03LjctMi0xMS44di05LjJ6XCJdXG59O1xudmFyIGZhVXNlckVkaXQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1lZGl0JyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNGZmXCIsIFwiTTIyNCAyNTZjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em04OS42IDMyaC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMjc0LjljLTIuNC02LjgtMy40LTE0LTIuNi0yMS4zbDYuOC02MC45IDEuMi0xMS4xIDcuOS03LjkgNzcuMy03Ny4zYy0yNC41LTI3LjctNjAtNDUuNS05OS45LTQ1LjV6bTQ1LjMgMTQ1LjNsLTYuOCA2MWMtMS4xIDEwLjIgNy41IDE4LjggMTcuNiAxNy42bDYwLjktNi44IDEzNy45LTEzNy45LTcxLjctNzEuNy0xMzcuOSAxMzcuOHpNNjMzIDI2OC45TDU5NS4xIDIzMWMtOS4zLTkuMy0yNC41LTkuMy0zMy44IDBsLTM3LjggMzcuOC00LjEgNC4xIDcxLjggNzEuNyA0MS44LTQxLjhjOS4zLTkuNCA5LjMtMjQuNSAwLTMzLjl6XCJdXG59O1xudmFyIGZhVXNlckZyaWVuZHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1mcmllbmRzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTAwXCIsIFwiTTE5MiAyNTZjNjEuOSAwIDExMi01MC4xIDExMi0xMTJTMjUzLjkgMzIgMTkyIDMyIDgwIDgyLjEgODAgMTQ0czUwLjEgMTEyIDExMiAxMTJ6bTc2LjggMzJoLTguM2MtMjAuOCAxMC00My45IDE2LTY4LjUgMTZzLTQ3LjYtNi02OC41LTE2aC04LjNDNTEuNiAyODggMCAzMzkuNiAwIDQwMy4yVjQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTI4LjhjMC02My42LTUxLjYtMTE1LjItMTE1LjItMTE1LjJ6TTQ4MCAyNTZjNTMgMCA5Ni00MyA5Ni05NnMtNDMtOTYtOTYtOTYtOTYgNDMtOTYgOTYgNDMgOTYgOTYgOTZ6bTQ4IDMyaC0zLjhjLTEzLjkgNC44LTI4LjYgOC00NC4yIDhzLTMwLjMtMy4yLTQ0LjItOEg0MzJjLTIwLjQgMC0zOS4yIDUuOS01NS43IDE1LjQgMjQuNCAyNi4zIDM5LjcgNjEuMiAzOS43IDk5Ljh2MzguNGMwIDIuMi0uNSA0LjMtLjYgNi40SDU5MmMyNi41IDAgNDgtMjEuNSA0OC00OCAwLTYxLjktNTAuMS0xMTItMTEyLTExMnpcIl1cbn07XG52YXIgZmFVc2VyR3JhZHVhdGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1ncmFkdWF0ZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUwMVwiLCBcIk0zMTkuNCAzMjAuNkwyMjQgNDE2bC05NS40LTk1LjRDNTcuMSAzMjMuNyAwIDM4Mi4yIDAgNDU0LjR2OS42YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtOS42YzAtNzIuMi01Ny4xLTEzMC43LTEyOC42LTEzMy44ek0xMy42IDc5LjhsNi40IDEuNXY1OC40Yy03IDQuMi0xMiAxMS41LTEyIDIwLjMgMCA4LjQgNC42IDE1LjQgMTEuMSAxOS43TDMuNSAyNDJjLTEuNyA2LjkgMi4xIDE0IDcuNiAxNGg0MS44YzUuNSAwIDkuMy03LjEgNy42LTE0bC0xNS42LTYyLjNDNTEuNCAxNzUuNCA1NiAxNjguNCA1NiAxNjBjMC04LjgtNS0xNi4xLTEyLTIwLjNWODcuMWw2NiAxNS45Yy04LjYgMTcuMi0xNCAzNi40LTE0IDU3IDAgNzAuNyA1Ny4zIDEyOCAxMjggMTI4czEyOC01Ny4zIDEyOC0xMjhjMC0yMC42LTUuMy0zOS44LTE0LTU3bDk2LjMtMjMuMmMxOC4yLTQuNCAxOC4yLTI3LjEgMC0zMS41bC0xOTAuNC00NmMtMTMtMy4xLTI2LjctMy4xLTM5LjcgMEwxMy42IDQ4LjJjLTE4LjEgNC40LTE4LjEgMjcuMiAwIDMxLjZ6XCJdXG59O1xudmFyIGZhVXNlckluanVyZWQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1pbmp1cmVkJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNzI4XCIsIFwiTTI3Ny4zNyAxMS45OEMyNjEuMDggNC40NyAyNDMuMTEgMCAyMjQgMGMtNTMuNjkgMC05OS41IDMzLjEzLTExOC41MSA4MGg4MS4xOWw5MC42OS02OC4wMnpNMzQyLjUxIDgwYy03LjktMTkuNDctMjAuNjctMzYuMi0zNi40OS00OS41MkwyMzkuOTkgODBoMTAyLjUyek0yMjQgMjU2YzcwLjY5IDAgMTI4LTU3LjMxIDEyOC0xMjggMC01LjQ4LS45NS0xMC43LTEuNjEtMTZIOTcuNjFjLS42NyA1LjMtMS42MSAxMC41Mi0xLjYxIDE2IDAgNzAuNjkgNTcuMzEgMTI4IDEyOCAxMjh6TTgwIDI5OS43VjUxMmgxMjguMjZsLTk4LjQ1LTIyMS41MkExMzIuODM1IDEzMi44MzUgMCAwIDAgODAgMjk5Ljd6TTAgNDY0YzAgMjYuNTEgMjEuNDkgNDggNDggNDhWMzIwLjI0QzE4Ljg4IDM0NC44OSAwIDM4MS4yNiAwIDQyMi40VjQ2NHptMjU2LTQ4aC01NS4zOGw0Mi42NyA5NkgyNTZjMjYuNDcgMCA0OC0yMS41MyA0OC00OHMtMjEuNTMtNDgtNDgtNDh6bTU3LjYtMTI4aC0xNi43MWMtMjIuMjQgMTAuMTgtNDYuODggMTYtNzIuODkgMTZzLTUwLjY1LTUuODItNzIuODktMTZoLTcuMzdsNDIuNjcgOTZIMjU2YzQ0LjExIDAgODAgMzUuODkgODAgODAgMCAxOC4wOC02LjI2IDM0LjU5LTE2LjQxIDQ4SDQwMGMyNi41MSAwIDQ4LTIxLjQ5IDQ4LTQ4di00MS42YzAtNzQuMjMtNjAuMTctMTM0LjQtMTM0LjQtMTM0LjR6XCJdXG59O1xudmFyIGZhVXNlckxvY2sgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1sb2NrJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTAyXCIsIFwiTTIyNCAyNTZBMTI4IDEyOCAwIDEgMCA5NiAxMjhhMTI4IDEyOCAwIDAgMCAxMjggMTI4em05NiA2NGE2My4wOCA2My4wOCAwIDAgMSA4LjEtMzAuNWMtNC44LS41LTkuNS0xLjUtMTQuNS0xLjVoLTE2LjdhMTc0LjA4IDE3NC4wOCAwIDAgMS0xNDUuOCAwaC0xNi43QTEzNC40MyAxMzQuNDMgMCAwIDAgMCA0MjIuNFY0NjRhNDggNDggMCAwIDAgNDggNDhoMjgwLjlhNjMuNTQgNjMuNTQgMCAwIDEtOC45LTMyem0yODgtMzJoLTMydi04MGE4MCA4MCAwIDAgMC0xNjAgMHY4MGgtMzJhMzIgMzIgMCAwIDAtMzIgMzJ2MTYwYTMyIDMyIDAgMCAwIDMyIDMyaDIyNGEzMiAzMiAwIDAgMCAzMi0zMlYzMjBhMzIgMzIgMCAwIDAtMzItMzJ6TTQ5NiA0MzJhMzIgMzIgMCAxIDEgMzItMzIgMzIgMzIgMCAwIDEtMzIgMzJ6bTMyLTE0NGgtNjR2LTgwYTMyIDMyIDAgMCAxIDY0IDB6XCJdXG59O1xudmFyIGZhVXNlck1kID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItbWQnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImYwZjBcIiwgXCJNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6TTEwNCA0MjRjMCAxMy4zIDEwLjcgMjQgMjQgMjRzMjQtMTAuNyAyNC0yNC0xMC43LTI0LTI0LTI0LTI0IDEwLjctMjQgMjR6bTIxNi0xMzUuNHY0OWMzNi41IDcuNCA2NCAzOS44IDY0IDc4LjR2NDEuN2MwIDcuNi01LjQgMTQuMi0xMi45IDE1LjdsLTMyLjIgNi40Yy00LjMuOS04LjUtMS45LTkuNC02LjNsLTMuMS0xNS43Yy0uOS00LjMgMS45LTguNiA2LjMtOS40bDE5LjMtMy45VjQxNmMwLTYyLjgtOTYtNjUuMS05NiAxLjl2MjYuN2wxOS4zIDMuOWM0LjMuOSA3LjEgNS4xIDYuMyA5LjRsLTMuMSAxNS43Yy0uOSA0LjMtNS4xIDcuMS05LjQgNi4zbC0zMS4yLTQuMmMtNy45LTEuMS0xMy44LTcuOC0xMy44LTE1LjlWNDE2YzAtMzguNiAyNy41LTcwLjkgNjQtNzguNHYtNDUuMmMtMi4yLjctNC40IDEuMS02LjYgMS45LTE4IDYuMy0zNy4zIDkuOC01Ny40IDkuOHMtMzkuNC0zLjUtNTcuNC05LjhjLTcuNC0yLjYtMTQuOS00LjItMjIuNi01LjJ2ODEuNmMyMy4xIDYuOSA0MCAyOC4xIDQwIDUzLjQgMCAzMC45LTI1LjEgNTYtNTYgNTZzLTU2LTI1LjEtNTYtNTZjMC0yNS4zIDE2LjktNDYuNSA0MC01My40di04MC40QzQ4LjUgMzAxIDAgMzU1LjggMCA0MjIuNHY0NC44QzAgNDkxLjkgMjAuMSA1MTIgNDQuOCA1MTJoMzU4LjRjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0Ljh2LTQ0LjhjMC03Mi01Ni44LTEzMC4zLTEyOC0xMzMuOHpcIl1cbn07XG52YXIgZmFVc2VyTWludXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1taW51cycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjUwM1wiLCBcIk02MjQgMjA4SDQzMmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgxOTJjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6bS00MDAgNDhjNzAuNyAwIDEyOC01Ny4zIDEyOC0xMjhTMjk0LjcgMCAyMjQgMCA5NiA1Ny4zIDk2IDEyOHM1Ny4zIDEyOCAxMjggMTI4em04OS42IDMyaC0xNi43Yy0yMi4yIDEwLjItNDYuOSAxNi03Mi45IDE2cy01MC42LTUuOC03Mi45LTE2aC0xNi43QzYwLjIgMjg4IDAgMzQ4LjIgMCA0MjIuNFY0NjRjMCAyNi41IDIxLjUgNDggNDggNDhoMzUyYzI2LjUgMCA0OC0yMS41IDQ4LTQ4di00MS42YzAtNzQuMi02MC4yLTEzNC40LTEzNC40LTEzNC40elwiXVxufTtcbnZhciBmYVVzZXJOaW5qYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLW5pbmphJyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmNTA0XCIsIFwiTTMyNS40IDI4OS4yTDIyNCAzOTAuNiAxMjIuNiAyODkuMkM1NCAyOTUuMyAwIDM1Mi4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDEuNmMwLTcwLjItNTQtMTI3LjEtMTIyLjYtMTMzLjJ6TTMyIDE5MmMyNy4zIDAgNTEuOC0xMS41IDY5LjItMjkuNyAxNS4xIDUzLjkgNjQgOTMuNyAxMjIuOCA5My43IDcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDBjLTUwLjQgMC05My42IDI5LjQtMTE0LjUgNzEuOEM5Mi4xIDQ3LjggNjQgMzIgMzIgMzJjMCAzMy40IDE3LjEgNjIuOCA0My4xIDgwLTI2IDE3LjItNDMuMSA0Ni42LTQzLjEgODB6bTE0NC05Nmg5NmMxNy43IDAgMzIgMTQuMyAzMiAzMkgxNDRjMC0xNy43IDE0LjMtMzIgMzItMzJ6XCJdXG59O1xudmFyIGZhVXNlck51cnNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItbnVyc2UnLFxuICBpY29uOiBbNDQ4LCA1MTIsIFtdLCBcImY4MmZcIiwgXCJNNTcuNzggMjg4aDgyLjM2YzIyLjUxIDE5LjY4IDUxLjYyIDMyIDgzLjg2IDMyczYxLjM1LTEyLjMyIDgzLjg2LTMyaDgyLjM2YTE2IDE2IDAgMCAwIDE0LjI4LTIzLjE4Yy0xNS4yMy0yOS44NS0zMS4yOC02Mi4yMy00Mi4xNS05NS41NEMzNTQuNzggMTQ2LjA5IDM1MiAxMjEuNTkgMzUyIDk3LjJWNDhMMjI0IDAgOTYgNDh2NDkuMmMwIDI0LjM5LTIuNzUgNDguODktMTAuMzMgNzIuMDhDNzQuNzggMjAyLjU5IDU4LjczIDIzNSA0My41IDI2NC44MkExNiAxNiAwIDAgMCA1Ny43OCAyODh6TTE4NCA3MS42N2E1IDUgMCAwIDEgNS01aDIxLjY3VjQ1YTUgNSAwIDAgMSA1LTVoMTYuNjZhNSA1IDAgMCAxIDUgNXYyMS42N0gyNTlhNSA1IDAgMCAxIDUgNXYxNi42NmE1IDUgMCAwIDEtNSA1aC0yMS42N1YxMTVhNSA1IDAgMCAxLTUgNWgtMTYuNjZhNSA1IDAgMCAxLTUtNVY5My4zM0gxODlhNSA1IDAgMCAxLTUtNXpNMTQ0IDE2MGgxNjB2MzJhODAgODAgMCAwIDEtMTYwIDB6bTE3NS40MSAxNjBMMjI0IDQxNS4zOSAxMjguNTkgMzIwQzU3LjEgMzIzLjEgMCAzODEuNiAwIDQ1My43OUE1OC4yMSA1OC4yMSAwIDAgMCA1OC4yMSA1MTJoMzMxLjU4QTU4LjIxIDU4LjIxIDAgMCAwIDQ0OCA0NTMuNzlDNDQ4IDM4MS42IDM5MC45IDMyMy4xIDMxOS40MSAzMjB6XCJdXG59O1xudmFyIGZhVXNlclBsdXMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlci1wbHVzJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmMjM0XCIsIFwiTTYyNCAyMDhoLTY0di02NGMwLTguOC03LjItMTYtMTYtMTZoLTMyYy04LjggMC0xNiA3LjItMTYgMTZ2NjRoLTY0Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2aDY0djY0YzAgOC44IDcuMiAxNiAxNiAxNmgzMmM4LjggMCAxNi03LjIgMTYtMTZ2LTY0aDY0YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2em0tNDAwIDQ4YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptODkuNiAzMmgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMyNi41IDAgNDgtMjEuNSA0OC00OHYtNDEuNmMwLTc0LjItNjAuMi0xMzQuNC0xMzQuNC0xMzQuNHpcIl1cbn07XG52YXIgZmFVc2VyU2VjcmV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItc2VjcmV0JyxcbiAgaWNvbjogWzQ0OCwgNTEyLCBbXSwgXCJmMjFiXCIsIFwiTTM4My45IDMwOC4zbDIzLjktNjIuNmM0LTEwLjUtMy43LTIxLjctMTUtMjEuN2gtNTguNWMxMS0xOC45IDE3LjgtNDAuNiAxNy44LTY0di0uM2MzOS4yLTcuOCA2NC0xOS4xIDY0LTMxLjcgMC0xMy4zLTI3LjMtMjUuMS03MC4xLTMzLTkuMi0zMi44LTI3LTY1LjgtNDAuNi04Mi44LTkuNS0xMS45LTI1LjktMTUuNi0zOS41LTguOGwtMjcuNiAxMy44Yy05IDQuNS0xOS42IDQuNS0yOC42IDBMMTgyLjEgMy40Yy0xMy42LTYuOC0zMC0zLjEtMzkuNSA4LjgtMTMuNSAxNy0zMS40IDUwLTQwLjYgODIuOC00Mi43IDcuOS03MCAxOS43LTcwIDMzIDAgMTIuNiAyNC44IDIzLjkgNjQgMzEuN3YuM2MwIDIzLjQgNi44IDQ1LjEgMTcuOCA2NEg1Ni4zYy0xMS41IDAtMTkuMiAxMS43LTE0LjcgMjIuM2wyNS44IDYwLjJDMjcuMyAzMjkuOCAwIDM3Mi43IDAgNDIyLjR2NDQuOEMwIDQ5MS45IDIwLjEgNTEyIDQ0LjggNTEyaDM1OC40YzI0LjcgMCA0NC44LTIwLjEgNDQuOC00NC44di00NC44YzAtNDguNC0yNS44LTkwLjQtNjQuMS0xMTQuMXpNMTc2IDQ4MGwtNDEuNi0xOTIgNDkuNiAzMiAyNCA0MC0zMiAxMjB6bTk2IDBsLTMyLTEyMCAyNC00MCA0OS42LTMyTDI3MiA0ODB6bTQxLjctMjk4LjVjLTMuOSAxMS45LTcgMjQuNi0xNi41IDMzLjQtMTAuMSA5LjMtNDggMjIuNC02NC0yNS0yLjgtOC40LTE1LjQtOC40LTE4LjMgMC0xNyA1MC4yLTU2IDMyLjQtNjQgMjUtOS41LTguOC0xMi43LTIxLjUtMTYuNS0zMy40LS44LTIuNS02LjMtNS43LTYuMy01Ljh2LTEwLjhjMjguMyAzLjYgNjEgNS44IDk2IDUuOHM2Ny43LTIuMSA5Ni01Ljh2MTAuOGMtLjEuMS01LjYgMy4yLTYuNCA1Ljh6XCJdXG59O1xudmFyIGZhVXNlclNoaWVsZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLXNoaWVsZCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjUwNVwiLCBcIk02MjIuMyAyNzEuMWwtMTE1LjItNDVjLTQuMS0xLjYtMTIuNi0zLjctMjIuMiAwbC0xMTUuMiA0NWMtMTAuNyA0LjItMTcuNyAxNC0xNy43IDI0LjkgMCAxMTEuNiA2OC43IDE4OC44IDEzMi45IDIxMy45IDkuNiAzLjcgMTggMS42IDIyLjIgMEM1NTguNCA0ODkuOSA2NDAgNDIwLjUgNjQwIDI5NmMwLTEwLjktNy0yMC43LTE3LjctMjQuOXpNNDk2IDQ2Mi40VjI3My4zbDk1LjUgMzcuM2MtNS42IDg3LjEtNjAuOSAxMzUuNC05NS41IDE1MS44ek0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptOTYgNDBjMC0yLjUuOC00LjggMS4xLTcuMi0yLjUtLjEtNC45LS44LTcuNS0uOGgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4OCAwIDM0OC4yIDAgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmM2LjggMCAxMy4zLTEuNSAxOS4yLTQtNTQtNDIuOS05OS4yLTExNi43LTk5LjItMjEyelwiXVxufTtcbnZhciBmYVVzZXJTbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLXNsYXNoJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTA2XCIsIFwiTTYzMy44IDQ1OC4xTDM2Mi4zIDI0OC4zQzQxMi4xIDIzMC43IDQ0OCAxODMuOCA0NDggMTI4IDQ0OCA1Ny4zIDM5MC43IDAgMzIwIDBjLTY3LjEgMC0xMjEuNSA1MS44LTEyNi45IDExNy40TDQ1LjUgMy40QzM4LjUtMiAyOC41LS44IDIzIDYuMkwzLjQgMzEuNGMtNS40IDctNC4yIDE3IDIuOCAyMi40bDU4OC40IDQ1NC43YzcgNS40IDE3IDQuMiAyMi41LTIuOGwxOS42LTI1LjNjNS40LTYuOCA0LjEtMTYuOS0yLjktMjIuM3pNOTYgNDIyLjRWNDY0YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MC4yTDIwNy40IDI5MC4zQzE0NC4yIDMwMS4zIDk2IDM1NiA5NiA0MjIuNHpcIl1cbn07XG52YXIgZmFVc2VyVGFnID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItdGFnJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNTA3XCIsIFwiTTYzMC42IDM2NC45bC05MC4zLTkwLjJjLTEyLTEyLTI4LjMtMTguNy00NS4zLTE4LjdoLTc5LjNjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjc5LjJjMCAxNyA2LjcgMzMuMiAxOC43IDQ1LjJsOTAuMyA5MC4yYzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDkyLjUtOTIuNWMxMi42LTEyLjUgMTIuNi0zMi43LjEtNDUuMnptLTE4Mi44LTIxYy0xMy4zIDAtMjQtMTAuNy0yNC0yNHMxMC43LTI0IDI0LTI0IDI0IDEwLjcgMjQgMjRjMCAxMy4yLTEwLjcgMjQtMjQgMjR6bS0yMjMuOC04OGM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOEMzNTIgNTcuMyAyOTQuNyAwIDIyNCAwUzk2IDU3LjMgOTYgMTI4YzAgNzAuNiA1Ny4zIDEyNy45IDEyOCAxMjcuOXptMTI3LjggMTExLjJWMjk0Yy0xMi4yLTMuNi0yNC45LTYuMi0zOC4yLTYuMmgtMTYuN2MtMjIuMiAxMC4yLTQ2LjkgMTYtNzIuOSAxNnMtNTAuNi01LjgtNzIuOS0xNmgtMTYuN0M2MC4yIDI4Ny45IDAgMzQ4LjEgMCA0MjIuM3Y0MS42YzAgMjYuNSAyMS41IDQ4IDQ4IDQ4aDM1MmMxNS41IDAgMjkuMS03LjUgMzcuOS0xOC45bC01OC01OGMtMTguMS0xOC4xLTI4LjEtNDIuMi0yOC4xLTY3Ljl6XCJdXG59O1xudmFyIGZhVXNlclRpZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd1c2VyLXRpZScsXG4gIGljb246IFs0NDgsIDUxMiwgW10sIFwiZjUwOFwiLCBcIk0yMjQgMjU2YzcwLjcgMCAxMjgtNTcuMyAxMjgtMTI4UzI5NC43IDAgMjI0IDAgOTYgNTcuMyA5NiAxMjhzNTcuMyAxMjggMTI4IDEyOHptOTUuOCAzMi42TDI3MiA0ODBsLTMyLTEzNiAzMi01NmgtOTZsMzIgNTYtMzIgMTM2LTQ3LjgtMTkxLjRDNTYuOSAyOTIgMCAzNTAuMyAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03Mi4xLTU2LjktMTMwLjQtMTI4LjItMTMzLjh6XCJdXG59O1xudmFyIGZhVXNlclRpbWVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXItdGltZXMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYyMzVcIiwgXCJNNTg5LjYgMjQwbDQ1LjYtNDUuNmM2LjMtNi4zIDYuMy0xNi41IDAtMjIuOGwtMjIuOC0yMi44Yy02LjMtNi4zLTE2LjUtNi4zLTIyLjggMEw1NDQgMTk0LjRsLTQ1LjYtNDUuNmMtNi4zLTYuMy0xNi41LTYuMy0yMi44IDBsLTIyLjggMjIuOGMtNi4zIDYuMy02LjMgMTYuNSAwIDIyLjhsNDUuNiA0NS42LTQ1LjYgNDUuNmMtNi4zIDYuMy02LjMgMTYuNSAwIDIyLjhsMjIuOCAyMi44YzYuMyA2LjMgMTYuNSA2LjMgMjIuOCAwbDQ1LjYtNDUuNiA0NS42IDQ1LjZjNi4zIDYuMyAxNi41IDYuMyAyMi44IDBsMjIuOC0yMi44YzYuMy02LjMgNi4zLTE2LjUgMC0yMi44TDU4OS42IDI0MHpNMjI0IDI1NmM3MC43IDAgMTI4LTU3LjMgMTI4LTEyOFMyOTQuNyAwIDIyNCAwIDk2IDU3LjMgOTYgMTI4czU3LjMgMTI4IDEyOCAxMjh6bTg5LjYgMzJoLTE2LjdjLTIyLjIgMTAuMi00Ni45IDE2LTcyLjkgMTZzLTUwLjYtNS44LTcyLjktMTZoLTE2LjdDNjAuMiAyODggMCAzNDguMiAwIDQyMi40VjQ2NGMwIDI2LjUgMjEuNSA0OCA0OCA0OGgzNTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTQxLjZjMC03NC4yLTYwLjItMTM0LjQtMTM0LjQtMTM0LjR6XCJdXG59O1xudmFyIGZhVXNlcnMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXNlcnMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYwYzBcIiwgXCJNOTYgMjI0YzM1LjMgMCA2NC0yOC43IDY0LTY0cy0yOC43LTY0LTY0LTY0LTY0IDI4LjctNjQgNjQgMjguNyA2NCA2NCA2NHptNDQ4IDBjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0em0zMiAzMmgtNjRjLTE3LjYgMC0zMy41IDcuMS00NS4xIDE4LjYgNDAuMyAyMi4xIDY4LjkgNjIgNzUuMSAxMDkuNGg2NmMxNy43IDAgMzItMTQuMyAzMi0zMnYtMzJjMC0zNS4zLTI4LjctNjQtNjQtNjR6bS0yNTYgMGM2MS45IDAgMTEyLTUwLjEgMTEyLTExMlMzODEuOSAzMiAzMjAgMzIgMjA4IDgyLjEgMjA4IDE0NHM1MC4xIDExMiAxMTIgMTEyem03Ni44IDMyaC04LjNjLTIwLjggMTAtNDMuOSAxNi02OC41IDE2cy00Ny42LTYtNjguNS0xNmgtOC4zQzE3OS42IDI4OCAxMjggMzM5LjYgMTI4IDQwMy4yVjQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyODhjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTI4LjhjMC02My42LTUxLjYtMTE1LjItMTE1LjItMTE1LjJ6bS0yMjMuNy0xMy40QzE2MS41IDI2My4xIDE0NS42IDI1NiAxMjggMjU2SDY0Yy0zNS4zIDAtNjQgMjguNy02NCA2NHYzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NS45YzYuMy00Ny40IDM0LjktODcuMyA3NS4yLTEwOS40elwiXVxufTtcbnZhciBmYVVzZXJzQ29nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3VzZXJzLWNvZycsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjUwOVwiLCBcIk02MTAuNSAzNDEuM2MyLjYtMTQuMSAyLjYtMjguNSAwLTQyLjZsMjUuOC0xNC45YzMtMS43IDQuMy01LjIgMy4zLTguNS02LjctMjEuNi0xOC4yLTQxLjItMzMuMi01Ny40LTIuMy0yLjUtNi0zLjEtOS0xLjRsLTI1LjggMTQuOWMtMTAuOS05LjMtMjMuNC0xNi41LTM2LjktMjEuM3YtMjkuOGMwLTMuNC0yLjQtNi40LTUuNy03LjEtMjIuMy01LTQ1LTQuOC02Ni4yIDAtMy4zLjctNS43IDMuNy01LjcgNy4xdjI5LjhjLTEzLjUgNC44LTI2IDEyLTM2LjkgMjEuM2wtMjUuOC0xNC45Yy0yLjktMS43LTYuNy0xLjEtOSAxLjQtMTUgMTYuMi0yNi41IDM1LjgtMzMuMiA1Ny40LTEgMy4zLjQgNi44IDMuMyA4LjVsMjUuOCAxNC45Yy0yLjYgMTQuMS0yLjYgMjguNSAwIDQyLjZsLTI1LjggMTQuOWMtMyAxLjctNC4zIDUuMi0zLjMgOC41IDYuNyAyMS42IDE4LjIgNDEuMSAzMy4yIDU3LjQgMi4zIDIuNSA2IDMuMSA5IDEuNGwyNS44LTE0LjljMTAuOSA5LjMgMjMuNCAxNi41IDM2LjkgMjEuM3YyOS44YzAgMy40IDIuNCA2LjQgNS43IDcuMSAyMi4zIDUgNDUgNC44IDY2LjIgMCAzLjMtLjcgNS43LTMuNyA1LjctNy4xdi0yOS44YzEzLjUtNC44IDI2LTEyIDM2LjktMjEuM2wyNS44IDE0LjljMi45IDEuNyA2LjcgMS4xIDktMS40IDE1LTE2LjIgMjYuNS0zNS44IDMzLjItNTcuNCAxLTMuMy0uNC02LjgtMy4zLTguNWwtMjUuOC0xNC45ek00OTYgMzY4LjVjLTI2LjggMC00OC41LTIxLjgtNDguNS00OC41czIxLjgtNDguNSA0OC41LTQ4LjUgNDguNSAyMS44IDQ4LjUgNDguNS0yMS43IDQ4LjUtNDguNSA0OC41ek05NiAyMjRjMzUuMyAwIDY0LTI4LjcgNjQtNjRzLTI4LjctNjQtNjQtNjQtNjQgMjguNy02NCA2NCAyOC43IDY0IDY0IDY0em0yMjQgMzJjMS45IDAgMy43LS41IDUuNi0uNiA4LjMtMjEuNyAyMC41LTQyLjEgMzYuMy01OS4yIDcuNC04IDE3LjktMTIuNiAyOC45LTEyLjYgNi45IDAgMTMuNyAxLjggMTkuNiA1LjNsNy45IDQuNmMuOC0uNSAxLjYtLjkgMi40LTEuNCA3LTE0LjYgMTEuMi0zMC44IDExLjItNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJTMjA4IDgyLjEgMjA4IDE0NGMwIDYxLjkgNTAuMSAxMTIgMTEyIDExMnptMTA1LjIgMTk0LjVjLTIuMy0xLjItNC42LTIuNi02LjgtMy45LTguMiA0LjgtMTUuMyA5LjgtMjcuNSA5LjgtMTAuOSAwLTIxLjQtNC42LTI4LjktMTIuNi0xOC4zLTE5LjgtMzIuMy00My45LTQwLjItNjkuNi0xMC43LTM0LjUgMjQuOS00OS43IDI1LjgtNTAuMy0uMS0yLjYtLjEtNS4yIDAtNy44bC03LjktNC42Yy0zLjgtMi4yLTctNS05LjgtOC4xLTMuMy4yLTYuNS42LTkuOC42LTI0LjYgMC00Ny42LTYtNjguNS0xNmgtOC4zQzE3OS42IDI4OCAxMjggMzM5LjYgMTI4IDQwMy4yVjQzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGgyNTUuNGMtMy43LTYtNi4yLTEyLjgtNi4yLTIwLjN2LTkuMnpNMTczLjEgMjc0LjZDMTYxLjUgMjYzLjEgMTQ1LjYgMjU2IDEyOCAyNTZINjRjLTM1LjMgMC02NCAyOC43LTY0IDY0djMyYzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY1LjljNi4zLTQ3LjQgMzQuOS04Ny4zIDc1LjItMTA5LjR6XCJdXG59O1xudmFyIGZhVXRlbnNpbFNwb29uID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3V0ZW5zaWwtc3Bvb24nLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyZTVcIiwgXCJNNDgwLjEgMzEuOWMtNTUtNTUuMS0xNjQuOS0zNC41LTIyNy44IDI4LjUtNDkuMyA0OS4zLTU1LjEgMTEwLTI4LjggMTYwLjRMOSA0MTMuMmMtMTEuNiAxMC41LTEyLjEgMjguNS0xIDM5LjVMNTkuMyA1MDRjMTEgMTEgMjkuMSAxMC41IDM5LjUtMS4xbDE5Mi40LTIxNC40YzUwLjQgMjYuMyAxMTEuMSAyMC41IDE2MC40LTI4LjggNjMtNjIuOSA4My42LTE3Mi44IDI4LjUtMjI3Ljh6XCJdXG59O1xudmFyIGZhVXRlbnNpbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndXRlbnNpbHMnLFxuICBpY29uOiBbNDE2LCA1MTIsIFtdLCBcImYyZTdcIiwgXCJNMjA3LjkgMTUuMmMuOCA0LjcgMTYuMSA5NC41IDE2LjEgMTI4LjggMCA1Mi4zLTI3LjggODkuNi02OC45IDEwNC42TDE2OCA0ODYuN2MuNyAxMy43LTEwLjIgMjUuMy0yNCAyNS4zSDgwYy0xMy43IDAtMjQuNy0xMS41LTI0LTI1LjNsMTIuOS0yMzguMUMyNy43IDIzMy42IDAgMTk2LjIgMCAxNDQgMCAxMDkuNiAxNS4zIDE5LjkgMTYuMSAxNS4yIDE5LjMtNS4xIDYxLjQtNS40IDY0IDE2LjN2MTQxLjJjMS4zIDMuNCAxNS4xIDMuMiAxNiAwIDEuNC0yNS4zIDcuOS0xMzkuMiA4LTE0MS44IDMuMy0yMC44IDQ0LjctMjAuOCA0Ny45IDAgLjIgMi43IDYuNiAxMTYuNSA4IDE0MS44LjkgMy4yIDE0LjggMy40IDE2IDBWMTYuM2MyLjYtMjEuNiA0NC44LTIxLjQgNDgtMS4xem0xMTkuMiAyODUuN2wtMTUgMTg1LjFjLTEuMiAxNCA5LjkgMjYgMjMuOSAyNmg1NmMxMy4zIDAgMjQtMTAuNyAyNC0yNFYyNGMwLTEzLjItMTAuNy0yNC0yNC0yNC04Mi41IDAtMjIxLjQgMTc4LjUtNjQuOSAzMDAuOXpcIl1cbn07XG52YXIgZmFWZWN0b3JTcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmVjdG9yLXNxdWFyZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjVjYlwiLCBcIk01MTIgMTI4VjMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJoLTk2Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMySDE2MGMwLTE3LjY3LTE0LjMzLTMyLTMyLTMySDMyQzE0LjMzIDAgMCAxNC4zMyAwIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJ2MTkyYy0xNy42NyAwLTMyIDE0LjMzLTMyIDMydjk2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoOTZjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMmgxOTJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmg5NmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi05NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyVjE2MGMxNy42NyAwIDMyLTE0LjMzIDMyLTMyem0tOTYtNjRoMzJ2MzJoLTMyVjY0ek02NCA2NGgzMnYzMkg2NFY2NHptMzIgMzg0SDY0di0zMmgzMnYzMnptMzUyIDBoLTMydi0zMmgzMnYzMnptLTMyLTk2aC0zMmMtMTcuNjcgMC0zMiAxNC4zMy0zMiAzMnYzMkgxNjB2LTMyYzAtMTcuNjctMTQuMzMtMzItMzItMzJIOTZWMTYwaDMyYzE3LjY3IDAgMzItMTQuMzMgMzItMzJWOTZoMTkydjMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJ2MTkyelwiXVxufTtcbnZhciBmYVZlbnVzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZlbnVzJyxcbiAgaWNvbjogWzI4OCwgNTEyLCBbXSwgXCJmMjIxXCIsIFwiTTI4OCAxNzZjMC03OS41LTY0LjUtMTQ0LTE0NC0xNDRTMCA5Ni41IDAgMTc2YzAgNjguNSA0Ny45IDEyNS45IDExMiAxNDAuNFYzNjhINzZjLTYuNiAwLTEyIDUuNC0xMiAxMnY0MGMwIDYuNiA1LjQgMTIgMTIgMTJoMzZ2MzZjMCA2LjYgNS40IDEyIDEyIDEyaDQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMzZoMzZjNi42IDAgMTItNS40IDEyLTEydi00MGMwLTYuNi01LjQtMTItMTItMTJoLTM2di01MS42YzY0LjEtMTQuNSAxMTItNzEuOSAxMTItMTQwLjR6bS0yMjQgMGMwLTQ0LjEgMzUuOS04MCA4MC04MHM4MCAzNS45IDgwIDgwLTM1LjkgODAtODAgODAtODAtMzUuOS04MC04MHpcIl1cbn07XG52YXIgZmFWZW51c0RvdWJsZSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2ZW51cy1kb3VibGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyMjZcIiwgXCJNMjg4IDE3NmMwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NFMwIDk2LjUgMCAxNzZjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjM2OEg3NmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgzNnYzNmMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi0zNmgzNmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMzZ2LTUxLjZjNjQuMS0xNC41IDExMi03MS45IDExMi0xNDAuNHptLTIyNCAwYzAtNDQuMSAzNS45LTgwIDgwLTgwczgwIDM1LjkgODAgODAtMzUuOSA4MC04MCA4MC04MC0zNS45LTgwLTgwem0zMzYgMTQwLjRWMzY4aDM2YzYuNiAwIDEyIDUuNCAxMiAxMnY0MGMwIDYuNi01LjQgMTItMTIgMTJoLTM2djM2YzAgNi42LTUuNCAxMi0xMiAxMmgtNDBjLTYuNiAwLTEyLTUuNC0xMi0xMnYtMzZoLTM2Yy02LjYgMC0xMi01LjQtMTItMTJ2LTQwYzAtNi42IDUuNC0xMiAxMi0xMmgzNnYtNTEuNmMtMjEuMi00LjgtNDAuNi0xNC4zLTU3LjItMjcuMyAxNC0xNi43IDI1LTM2IDMyLjEtNTcuMSAxNC41IDE0LjggMzQuNyAyNCA1Ny4xIDI0IDQ0LjEgMCA4MC0zNS45IDgwLTgwcy0zNS45LTgwLTgwLTgwYy0yMi4zIDAtNDIuNiA5LjItNTcuMSAyNC03LjEtMjEuMS0xOC00MC40LTMyLjEtNTcuMUMzMDMuNCA0My42IDMzNC4zIDMyIDM2OCAzMmM3OS41IDAgMTQ0IDY0LjUgMTQ0IDE0NCAwIDY4LjUtNDcuOSAxMjUuOS0xMTIgMTQwLjR6XCJdXG59O1xudmFyIGZhVmVudXNNYXJzID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZlbnVzLW1hcnMnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYyMjhcIiwgXCJNNTY0IDBoLTc5Yy0xMC43IDAtMTYgMTIuOS04LjUgMjAuNWwxNi45IDE2LjktNDguNyA0OC43QzQyMi41IDcyLjEgMzk2LjIgNjQgMzY4IDY0Yy0zMy43IDAtNjQuNiAxMS42LTg5LjIgMzAuOSAxNCAxNi43IDI1IDM2IDMyLjEgNTcuMSAxNC41LTE0LjggMzQuNy0yNCA1Ny4xLTI0IDQ0LjEgMCA4MCAzNS45IDgwIDgwcy0zNS45IDgwLTgwIDgwYy0yMi4zIDAtNDIuNi05LjItNTcuMS0yNC03LjEgMjEuMS0xOCA0MC40LTMyLjEgNTcuMSAyNC41IDE5LjQgNTUuNSAzMC45IDg5LjIgMzAuOSA3OS41IDAgMTQ0LTY0LjUgMTQ0LTE0NCAwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDQ4LjctNDguNyAxNi45IDE2LjljMi40IDIuNCA1LjQgMy41IDguNCAzLjUgNi4yIDAgMTIuMS00LjggMTIuMS0xMlYxMmMwLTYuNi01LjQtMTItMTItMTJ6TTE0NCA2NEM2NC41IDY0IDAgMTI4LjUgMCAyMDhjMCA2OC41IDQ3LjkgMTI1LjkgMTEyIDE0MC40VjQwMEg3NmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmgzNnYzNmMwIDYuNiA1LjQgMTIgMTIgMTJoNDBjNi42IDAgMTItNS40IDEyLTEydi0zNmgzNmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtMzZ2LTUxLjZjNjQuMS0xNC42IDExMi03MS45IDExMi0xNDAuNCAwLTc5LjUtNjQuNS0xNDQtMTQ0LTE0NHptMCAyMjRjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwelwiXVxufTtcbnZhciBmYVZpYWwgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlhbCcsXG4gIGljb246IFs0ODAsIDUxMiwgW10sIFwiZjQ5MlwiLCBcIk00NzcuNyAxODYuMUwzMDkuNSAxOC4zYy0zLjEtMy4xLTguMi0zLjEtMTEuMyAwbC0zNCAzMy45Yy0zLjEgMy4xLTMuMSA4LjIgMCAxMS4zbDExLjIgMTEuMUwzMyAzMTYuNWMtMzguOCAzOC43LTQ1LjEgMTAyLTkuNCAxNDMuNSAyMC42IDI0IDQ5LjUgMzYgNzguNCAzNS45IDI2LjQgMCA1Mi44LTEwIDcyLjktMzAuMWwyNDYuMy0yNDUuNyAxMS4yIDExLjFjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwzNC0zMy45YzMuMS0zIDMuMS04LjEgMC0xMS4yek0zMTggMjU2SDE2MWwxNDgtMTQ3LjcgNzguNSA3OC4zTDMxOCAyNTZ6XCJdXG59O1xudmFyIGZhVmlhbHMgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndmlhbHMnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OTNcIiwgXCJNNzIgNjRoMjR2MjQwYzAgNDQuMSAzNS45IDgwIDgwIDgwczgwLTM1LjkgODAtODBWNjRoMjRjNC40IDAgOC0zLjYgOC04VjhjMC00LjQtMy42LTgtOC04SDcyYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em03MiAwaDY0djk2aC02NFY2NHptNDgwIDM4NEgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmg2MDhjOC44IDAgMTYtNy4yIDE2LTE2di0zMmMwLTguOC03LjItMTYtMTYtMTZ6TTM2MCA2NGgyNHYyNDBjMCA0NC4xIDM1LjkgODAgODAgODBzODAtMzUuOSA4MC04MFY2NGgyNGM0LjQgMCA4LTMuNiA4LThWOGMwLTQuNC0zLjYtOC04LThIMzYwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4em03MiAwaDY0djk2aC02NFY2NHpcIl1cbn07XG52YXIgZmFWaWRlbyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWRlbycsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjAzZFwiLCBcIk0zMzYuMiA2NEg0Ny44QzIxLjQgNjQgMCA4NS40IDAgMTExLjh2Mjg4LjRDMCA0MjYuNiAyMS40IDQ0OCA0Ny44IDQ0OGgyODguNGMyNi40IDAgNDcuOC0yMS40IDQ3LjgtNDcuOFYxMTEuOGMwLTI2LjQtMjEuNC00Ny44LTQ3LjgtNDcuOHptMTg5LjQgMzcuN0w0MTYgMTc3LjN2MTU3LjRsMTA5LjYgNzUuNWMyMS4yIDE0LjYgNTAuNC0uMyA1MC40LTI1LjhWMTI3LjVjMC0yNS40LTI5LjEtNDAuNC01MC40LTI1Ljh6XCJdXG59O1xudmFyIGZhVmlkZW9TbGFzaCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWRlby1zbGFzaCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjRlMlwiLCBcIk02MzMuOCA0NTguMWwtNTUtNDIuNWMxNS40LTEuNCAyOS4yLTEzLjcgMjkuMi0zMS4xdi0yNTdjMC0yNS41LTI5LjEtNDAuNC01MC40LTI1LjhMNDQ4IDE3Ny4zdjEzNy4ybC0zMi0yNC43di0xNzhjMC0yNi40LTIxLjQtNDcuOC00Ny44LTQ3LjhIMTIzLjlMNDUuNSAzLjRDMzguNS0yIDI4LjUtLjggMjMgNi4yTDMuNCAzMS40Yy01LjQgNy00LjIgMTcgMi44IDIyLjRMNDIuNyA4MiA0MTYgMzcwLjZsMTc4LjUgMTM4YzcgNS40IDE3IDQuMiAyMi41LTIuOGwxOS42LTI1LjNjNS41LTYuOSA0LjItMTctMi44LTIyLjR6TTMyIDQwMC4yYzAgMjYuNCAyMS40IDQ3LjggNDcuOCA0Ny44aDI4OC40YzExLjIgMCAyMS40LTQgMjkuNi0xMC41TDMyIDE1NC43djI0NS41elwiXVxufTtcbnZhciBmYVZpaGFyYSA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2aWhhcmEnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY2YTdcIiwgXCJNNjMyLjg4IDQwMC43MUw1NDQgMzUydi02NGw1NS4xNi0xNy42OWMxMS43OS01LjkgMTEuNzktMjIuNzIgMC0yOC42Mkw0ODAgMTkydi02NGwyNy4zMS0xNi4zYzcuNzItNy43MiA1LjYxLTIwLjc0LTQuMTYtMjUuNjJMMzIwIDAgMTM2Ljg1IDg2LjA3Yy05Ljc3IDQuODgtMTEuODggMTcuOS00LjE2IDI1LjYyTDE2MCAxMjh2NjRMNDAuODQgMjQxLjY5Yy0xMS43OSA1LjktMTEuNzkgMjIuNzIgMCAyOC42Mkw5NiAyODh2NjRMNy4xMiA0MDAuNzFjLTUuNDIgMy42Mi03LjcgOS42My03IDE1LjI5LjYyIDUuMDEgMy41NyA5Ljc1IDguNzIgMTIuMzNMNjQgNDQ4djQ4YzAgOC44NCA3LjE2IDE2IDE2IDE2aDMyYzguODQgMCAxNi03LjE2IDE2LTE2di00OGgxNjB2NDhjMCA4Ljg0IDcuMTYgMTYgMTYgMTZoMzJjOC44NCAwIDE2LTcuMTYgMTYtMTZ2LTQ4aDE2MHY0OGMwIDguODQgNy4xNiAxNiAxNiAxNmgzMmM4Ljg0IDAgMTYtNy4xNiAxNi0xNnYtNDhsNTUuMTUtMTkuNjdjNS4xNi0yLjU4IDguMS03LjMyIDguNzItMTIuMzMuNzEtNS42Ny0xLjU3LTExLjY4LTYuOTktMTUuMjl6TTIyNCAxMjhoMTkydjY0SDIyNHYtNjR6bS02NCAyMjR2LTY0aDMyMHY2NEgxNjB6XCJdXG59O1xudmFyIGZhVm9pY2VtYWlsID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvaWNlbWFpbCcsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjg5N1wiLCBcIk00OTYgMTI4YTE0NCAxNDQgMCAwIDAtMTE5Ljc0IDIyNEgyNjMuNzRBMTQ0IDE0NCAwIDEgMCAxNDQgNDE2aDM1MmExNDQgMTQ0IDAgMCAwIDAtMjg4ek02NCAyNzJhODAgODAgMCAxIDEgODAgODAgODAgODAgMCAwIDEtODAtODB6bTQzMiA4MGE4MCA4MCAwIDEgMSA4MC04MCA4MCA4MCAwIDAgMS04MCA4MHpcIl1cbn07XG52YXIgZmFWb2xsZXliYWxsQmFsbCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2xsZXliYWxsLWJhbGwnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0NWZcIiwgXCJNMjMxLjM5IDI0My40OGEyODUuNTYgMjg1LjU2IDAgMCAwLTIyLjctMTA1LjdjLTkwLjggNDIuNC0xNTcuNSAxMjIuNC0xODAuMyAyMTYuOGEyNDkgMjQ5IDAgMCAwIDU2LjkgODEuMSAzMzMuODcgMzMzLjg3IDAgMCAxIDE0Ni4xLTE5Mi4yem0tMzYuOS0xMzQuNGEyODQuMjMgMjg0LjIzIDAgMCAwLTU3LjQtNzAuN2MtOTEgNDkuOC0xNDQuOCAxNTIuOS0xMjUgMjYyLjIgMzMuNC04My4xIDk4LjQtMTUyIDE4Mi40LTE5MS41em0xODcuNiAxNjUuMWM4LjYtOTkuOC0yNy4zLTE5Ny41LTk3LjUtMjY0LjQtMTQuNy0xLjctNTEuNi01LjUtOTguOSA4LjVBMzMzLjg3IDMzMy44NyAwIDAgMSAyNzkuMTkgMjQxYTI4NSAyODUgMCAwIDAgMTAyLjkgMzMuMTh6bS0xMjQuNyA5LjVhMjg2LjMzIDI4Ni4zMyAwIDAgMC04MC4yIDcyLjZjODIgNTcuMyAxODQuNSA3NS4xIDI3Ny41IDQ3LjhhMjQ3LjE1IDI0Ny4xNSAwIDAgMCA0Mi4yLTg5LjkgMzM2LjEgMzM2LjEgMCAwIDEtODAuOSAxMC40Yy01NC42LS4xLTEwOC45LTE0LjEtMTU4LjYtNDAuOXptLTk4LjMgOTkuN2MtMTUuMiAyNi0yNS43IDU0LjQtMzIuMSA4NC4yYTI0Ny4wNyAyNDcuMDcgMCAwIDAgMjg5LTIyLjFjLTExMi45IDE2LjEtMjAzLjMtMjQuOC0yNTYuOS02Mi4xem0xODAuMy0zNjAuNmM1NS4zIDcwLjQgODIuNSAxNjEuMiA3NC42IDI1My42YTI4Ni41OSAyODYuNTkgMCAwIDAgODkuNy0xNC4yYzAtMiAuMy00IC4zLTYgMC0xMDcuOC02OC43LTE5OS4xLTE2NC42LTIzMy40elwiXVxufTtcbnZhciBmYVZvbHVtZURvd24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndm9sdW1lLWRvd24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYwMjdcIiwgXCJNMjE1LjAzIDcyLjA0TDEyNi4wNiAxNjFIMjRjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2MTQ0YzAgMTMuMjUgMTAuNzQgMjQgMjQgMjRoMTAyLjA2bDg4Ljk3IDg4Ljk1YzE1LjAzIDE1LjAzIDQwLjk3IDQuNDcgNDAuOTctMTYuOTdWODkuMDJjMC0yMS40Ny0yNS45Ni0zMS45OC00MC45Ny0xNi45OHptMTIzLjIgMTA4LjA4Yy0xMS41OC02LjMzLTI2LjE5LTIuMTYtMzIuNjEgOS40NS02LjM5IDExLjYxLTIuMTYgMjYuMiA5LjQ1IDMyLjYxQzMyNy45OCAyMjkuMjggMzM2IDI0Mi42MiAzMzYgMjU3YzAgMTQuMzgtOC4wMiAyNy43Mi0yMC45MiAzNC44MS0xMS42MSA2LjQxLTE1Ljg0IDIxLTkuNDUgMzIuNjEgNi40MyAxMS42NiAyMS4wNSAxNS44IDMyLjYxIDkuNDUgMjguMjMtMTUuNTUgNDUuNzctNDUgNDUuNzctNzYuODhzLTE3LjU0LTYxLjMyLTQ1Ljc4LTc2Ljg3elwiXVxufTtcbnZhciBmYVZvbHVtZU11dGUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndm9sdW1lLW11dGUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY2YTlcIiwgXCJNMjE1LjAzIDcxLjA1TDEyNi4wNiAxNjBIMjRjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2MTQ0YzAgMTMuMjUgMTAuNzQgMjQgMjQgMjRoMTAyLjA2bDg4Ljk3IDg4Ljk1YzE1LjAzIDE1LjAzIDQwLjk3IDQuNDcgNDAuOTctMTYuOTdWODguMDJjMC0yMS40Ni0yNS45Ni0zMS45OC00MC45Ny0xNi45N3pNNDYxLjY0IDI1Nmw0NS42NC00NS42NGM2LjMtNi4zIDYuMy0xNi41MiAwLTIyLjgybC0yMi44Mi0yMi44MmMtNi4zLTYuMy0xNi41Mi02LjMtMjIuODIgMEw0MTYgMjEwLjM2bC00NS42NC00NS42NGMtNi4zLTYuMy0xNi41Mi02LjMtMjIuODIgMGwtMjIuODIgMjIuODJjLTYuMyA2LjMtNi4zIDE2LjUyIDAgMjIuODJMMzcwLjM2IDI1NmwtNDUuNjMgNDUuNjNjLTYuMyA2LjMtNi4zIDE2LjUyIDAgMjIuODJsMjIuODIgMjIuODJjNi4zIDYuMyAxNi41MiA2LjMgMjIuODIgMEw0MTYgMzAxLjY0bDQ1LjY0IDQ1LjY0YzYuMyA2LjMgMTYuNTIgNi4zIDIyLjgyIDBsMjIuODItMjIuODJjNi4zLTYuMyA2LjMtMTYuNTIgMC0yMi44Mkw0NjEuNjQgMjU2elwiXVxufTtcbnZhciBmYVZvbHVtZU9mZiA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2x1bWUtb2ZmJyxcbiAgaWNvbjogWzI1NiwgNTEyLCBbXSwgXCJmMDI2XCIsIFwiTTIxNSA3MWwtODkgODlIMjRhMjQgMjQgMCAwIDAtMjQgMjR2MTQ0YTI0IDI0IDAgMCAwIDI0IDI0aDEwMi4wNkwyMTUgNDQxYzE1IDE1IDQxIDQuNDcgNDEtMTdWODhjMC0yMS40Ny0yNi0zMi00MS0xN3pcIl1cbn07XG52YXIgZmFWb2x1bWVVcCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd2b2x1bWUtdXAnLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYwMjhcIiwgXCJNMjE1LjAzIDcxLjA1TDEyNi4wNiAxNjBIMjRjLTEzLjI2IDAtMjQgMTAuNzQtMjQgMjR2MTQ0YzAgMTMuMjUgMTAuNzQgMjQgMjQgMjRoMTAyLjA2bDg4Ljk3IDg4Ljk1YzE1LjAzIDE1LjAzIDQwLjk3IDQuNDcgNDAuOTctMTYuOTdWODguMDJjMC0yMS40Ni0yNS45Ni0zMS45OC00MC45Ny0xNi45N3ptMjMzLjMyLTUxLjA4Yy0xMS4xNy03LjMzLTI2LjE4LTQuMjQtMzMuNTEgNi45NS03LjM0IDExLjE3LTQuMjIgMjYuMTggNi45NSAzMy41MSA2Ni4yNyA0My40OSAxMDUuODIgMTE2LjYgMTA1LjgyIDE5NS41OCAwIDc4Ljk4LTM5LjU1IDE1Mi4wOS0xMDUuODIgMTk1LjU4LTExLjE3IDcuMzItMTQuMjkgMjIuMzQtNi45NSAzMy41IDcuMDQgMTAuNzEgMjEuOTMgMTQuNTYgMzMuNTEgNi45NUM1MjguMjcgNDM5LjU4IDU3NiAzNTEuMzMgNTc2IDI1NlM1MjguMjcgNzIuNDMgNDQ4LjM1IDE5Ljk3ek00ODAgMjU2YzAtNjMuNTMtMzIuMDYtMTIxLjk0LTg1Ljc3LTE1Ni4yNC0xMS4xOS03LjE0LTI2LjAzLTMuODItMzMuMTIgNy40NnMtMy43OCAyNi4yMSA3LjQxIDMzLjM2QzQwOC4yNyAxNjUuOTcgNDMyIDIwOS4xMSA0MzIgMjU2cy0yMy43MyA5MC4wMy02My40OCAxMTUuNDJjLTExLjE5IDcuMTQtMTQuNSAyMi4wNy03LjQxIDMzLjM2IDYuNTEgMTAuMzYgMjEuMTIgMTUuMTQgMzMuMTIgNy40NkM0NDcuOTQgMzc3Ljk0IDQ4MCAzMTkuNTQgNDgwIDI1NnptLTE0MS43Ny03Ni44N2MtMTEuNTgtNi4zMy0yNi4xOS0yLjE2LTMyLjYxIDkuNDUtNi4zOSAxMS42MS0yLjE2IDI2LjIgOS40NSAzMi42MUMzMjcuOTggMjI4LjI4IDMzNiAyNDEuNjMgMzM2IDI1NmMwIDE0LjM4LTguMDIgMjcuNzItMjAuOTIgMzQuODEtMTEuNjEgNi40MS0xNS44NCAyMS05LjQ1IDMyLjYxIDYuNDMgMTEuNjYgMjEuMDUgMTUuOCAzMi42MSA5LjQ1IDI4LjIzLTE1LjU1IDQ1Ljc3LTQ1IDQ1Ljc3LTc2Ljg4cy0xNy41NC02MS4zMi00NS43OC03Ni44NnpcIl1cbn07XG52YXIgZmFWb3RlWWVhID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3ZvdGUteWVhJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNzcyXCIsIFwiTTYwOCAzMjBoLTY0djY0aDIyLjRjNS4zIDAgOS42IDMuNiA5LjYgOHYxNmMwIDQuNC00LjMgOC05LjYgOEg3My42Yy01LjMgMC05LjYtMy42LTkuNi04di0xNmMwLTQuNCA0LjMtOCA5LjYtOEg5NnYtNjRIMzJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjk2YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDU3NmMxNy43IDAgMzItMTQuMyAzMi0zMnYtOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS05NiA2NFY2NC4zYzAtMTcuOS0xNC41LTMyLjMtMzIuMy0zMi4zSDE2MC40QzE0Mi41IDMyIDEyOCA0Ni41IDEyOCA2NC4zVjM4NGgzODR6TTIxMS4yIDIwMmwyNS41LTI1LjNjNC4yLTQuMiAxMS00LjIgMTUuMi4xbDQxLjMgNDEuNiA5NS4yLTk0LjRjNC4yLTQuMiAxMS00LjIgMTUuMi4xbDI1LjMgMjUuNWM0LjIgNC4yIDQuMiAxMS0uMSAxNS4yTDMwMC41IDI5MmMtNC4yIDQuMi0xMSA0LjItMTUuMi0uMWwtNzQuMS03NC43Yy00LjMtNC4yLTQuMi0xMSAwLTE1LjJ6XCJdXG59O1xudmFyIGZhVnJDYXJkYm9hcmQgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAndnItY2FyZGJvYXJkJyxcbiAgaWNvbjogWzY0MCwgNTEyLCBbXSwgXCJmNzI5XCIsIFwiTTYwOCA2NEgzMkMxNC4zMyA2NCAwIDc4LjMzIDAgOTZ2MzIwYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMTYwLjIyYzI1LjE5IDAgNDguMDMtMTQuNzcgNTguMzYtMzcuNzRsMjcuNzQtNjEuNjRDMjg2LjIxIDMzMS4wOCAzMDIuMzUgMzIwIDMyMCAzMjBzMzMuNzkgMTEuMDggNDEuNjggMjguNjJsMjcuNzQgNjEuNjRDMzk5Ljc1IDQzMy4yMyA0MjIuNiA0NDggNDQ3Ljc4IDQ0OEg2MDhjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMlY5NmMwLTE3LjY3LTE0LjMzLTMyLTMyLTMyek0xNjAgMzA0Yy0zNS4zNSAwLTY0LTI4LjY1LTY0LTY0czI4LjY1LTY0IDY0LTY0IDY0IDI4LjY1IDY0IDY0LTI4LjY1IDY0LTY0IDY0em0zMjAgMGMtMzUuMzUgMC02NC0yOC42NS02NC02NHMyOC42NS02NCA2NC02NCA2NCAyOC42NSA2NCA2NC0yOC42NSA2NC02NCA2NHpcIl1cbn07XG52YXIgZmFXYWxraW5nID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhbGtpbmcnLFxuICBpY29uOiBbMzIwLCA1MTIsIFtdLCBcImY1NTRcIiwgXCJNMjA4IDk2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4UzIzNC41IDAgMjA4IDBzLTQ4IDIxLjUtNDggNDggMjEuNSA0OCA0OCA0OHptOTQuNSAxNDkuMWwtMjMuMy0xMS44LTkuNy0yOS40Yy0xNC43LTQ0LjYtNTUuNy03NS44LTEwMi4yLTc1LjktMzYtLjEtNTUuOSAxMC4xLTkzLjMgMjUuMi0yMS42IDguNy0zOS4zIDI1LjItNDkuNyA0Ni4yTDE3LjYgMjEzYy03LjggMTUuOC0xLjUgMzUgMTQuMiA0Mi45IDE1LjYgNy45IDM0LjYgMS41IDQyLjUtMTQuM0w4MSAyMjhjMy41LTcgOS4zLTEyLjUgMTYuNS0xNS40bDI2LjgtMTAuOC0xNS4yIDYwLjdjLTUuMiAyMC44LjQgNDIuOSAxNC45IDU4LjhsNTkuOSA2NS40YzcuMiA3LjkgMTIuMyAxNy40IDE0LjkgMjcuN2wxOC4zIDczLjNjNC4zIDE3LjEgMjEuNyAyNy42IDM4LjggMjMuMyAxNy4xLTQuMyAyNy42LTIxLjcgMjMuMy0zOC44bC0yMi4yLTg5Yy0yLjYtMTAuMy03LjctMTkuOS0xNC45LTI3LjdsLTQ1LjUtNDkuNyAxNy4yLTY4LjcgNS41IDE2LjVjNS4zIDE2LjEgMTYuNyAyOS40IDMxLjcgMzdsMjMuMyAxMS44YzE1LjYgNy45IDM0LjYgMS41IDQyLjUtMTQuMyA3LjctMTUuNyAxLjQtMzUuMS0xNC4zLTQzek03My42IDM4NS44Yy0zLjIgOC4xLTggMTUuNC0xNC4yIDIxLjVsLTUwIDUwLjFjLTEyLjUgMTIuNS0xMi41IDMyLjggMCA0NS4zczMyLjcgMTIuNSA0NS4yIDBsNTkuNC01OS40YzYuMS02LjEgMTAuOS0xMy40IDE0LjItMjEuNWwxMy41LTMzLjhjLTU1LjMtNjAuMy0zOC43LTQxLjgtNDcuNC01My43bC0yMC43IDUxLjV6XCJdXG59O1xudmFyIGZhV2FsbGV0ID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhbGxldCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjU1NVwiLCBcIk00NjEuMiAxMjhIODBjLTguODQgMC0xNi03LjE2LTE2LTE2czcuMTYtMTYgMTYtMTZoMzg0YzguODQgMCAxNi03LjE2IDE2LTE2IDAtMjYuNTEtMjEuNDktNDgtNDgtNDhINjRDMjguNjUgMzIgMCA2MC42NSAwIDk2djMyMGMwIDM1LjM1IDI4LjY1IDY0IDY0IDY0aDM5Ny4yYzI4LjAyIDAgNTAuOC0yMS41MyA1MC44LTQ4VjE3NmMwLTI2LjQ3LTIyLjc4LTQ4LTUwLjgtNDh6TTQxNiAzMzZjLTE3LjY3IDAtMzItMTQuMzMtMzItMzJzMTQuMzMtMzIgMzItMzIgMzIgMTQuMzMgMzIgMzItMTQuMzMgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhV2FyZWhvdXNlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dhcmVob3VzZScsXG4gIGljb246IFs2NDAsIDUxMiwgW10sIFwiZjQ5NFwiLCBcIk01MDQgMzUySDEzNi40Yy00LjQgMC04IDMuNi04IDhsLS4xIDQ4YzAgNC40IDMuNiA4IDggOEg1MDRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LTh6bTAgOTZIMTM2LjFjLTQuNCAwLTggMy42LTggOGwtLjEgNDhjMCA0LjQgMy42IDggOCA4aDM2OGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMC0xOTJIMTM2LjZjLTQuNCAwLTggMy42LTggOGwtLjEgNDhjMCA0LjQgMy42IDggOCA4SDUwNGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOHptMTA2LjUtMTM5TDMzOC40IDMuN2E0OC4xNSA0OC4xNSAwIDAgMC0zNi45IDBMMjkuNSAxMTdDMTEuNyAxMjQuNSAwIDE0MS45IDAgMTYxLjNWNTA0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LThWMjU2YzAtMTcuNiAxNC42LTMyIDMyLjYtMzJoMzgyLjhjMTggMCAzMi42IDE0LjQgMzIuNiAzMnYyNDhjMCA0LjQgMy42IDggOCA4aDgwYzQuNCAwIDgtMy42IDgtOFYxNjEuM2MwLTE5LjQtMTEuNy0zNi44LTI5LjUtNDQuM3pcIl1cbn07XG52YXIgZmFXYXRlciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3YXRlcicsXG4gIGljb246IFs1NzYsIDUxMiwgW10sIFwiZjc3M1wiLCBcIk01NjIuMSAzODMuOWMtMjEuNS0yLjQtNDIuMS0xMC41LTU3LjktMjIuOS0xNC4xLTExLjEtMzQuMi0xMS4zLTQ4LjIgMC0zNy45IDMwLjQtMTA3LjIgMzAuNC0xNDUuNy0xLjUtMTMuNS0xMS4yLTMzLTkuMS00Ni43IDEuOC0zOCAzMC4xLTEwNi45IDMwLTE0NS4yLTEuNy0xMy41LTExLjItMzMuMy04LjktNDcuMSAyLTE1LjUgMTIuMi0zNiAyMC4xLTU3LjcgMjIuNC03LjkuOC0xMy42IDcuOC0xMy42IDE1Ljd2MzIuMmMwIDkuMSA3LjYgMTYuOCAxNi43IDE2IDI4LjgtMi41IDU2LjEtMTEuNCA3OS40LTI1LjkgNTYuNSAzNC42IDEzNyAzNC4xIDE5MiAwIDU2LjUgMzQuNiAxMzcgMzQuMSAxOTIgMCAyMy4zIDE0LjIgNTAuOSAyMy4zIDc5LjEgMjUuOCA5LjEuOCAxNi43LTYuOSAxNi43LTE2di0zMS42Yy4xLTgtNS43LTE1LjQtMTMuOC0xNi4zem0wLTE0NGMtMjEuNS0yLjQtNDIuMS0xMC41LTU3LjktMjIuOS0xNC4xLTExLjEtMzQuMi0xMS4zLTQ4LjIgMC0zNy45IDMwLjQtMTA3LjIgMzAuNC0xNDUuNy0xLjUtMTMuNS0xMS4yLTMzLTkuMS00Ni43IDEuOC0zOCAzMC4xLTEwNi45IDMwLTE0NS4yLTEuNy0xMy41LTExLjItMzMuMy04LjktNDcuMSAyLTE1LjUgMTIuMi0zNiAyMC4xLTU3LjcgMjIuNC03LjkuOC0xMy42IDcuOC0xMy42IDE1Ljd2MzIuMmMwIDkuMSA3LjYgMTYuOCAxNi43IDE2IDI4LjgtMi41IDU2LjEtMTEuNCA3OS40LTI1LjkgNTYuNSAzNC42IDEzNyAzNC4xIDE5MiAwIDU2LjUgMzQuNiAxMzcgMzQuMSAxOTIgMCAyMy4zIDE0LjIgNTAuOSAyMy4zIDc5LjEgMjUuOCA5LjEuOCAxNi43LTYuOSAxNi43LTE2di0zMS42Yy4xLTgtNS43LTE1LjQtMTMuOC0xNi4zem0wLTE0NEM1NDAuNiA5My40IDUyMCA4NS40IDUwNC4yIDczIDQ5MC4xIDYxLjkgNDcwIDYxLjcgNDU2IDczYy0zNy45IDMwLjQtMTA3LjIgMzAuNC0xNDUuNy0xLjUtMTMuNS0xMS4yLTMzLTkuMS00Ni43IDEuOC0zOCAzMC4xLTEwNi45IDMwLTE0NS4yLTEuNy0xMy41LTExLjItMzMuMy04LjktNDcuMSAyLTE1LjUgMTIuMi0zNiAyMC4xLTU3LjcgMjIuNC03LjkuOC0xMy42IDcuOC0xMy42IDE1Ljd2MzIuMmMwIDkuMSA3LjYgMTYuOCAxNi43IDE2IDI4LjgtMi41IDU2LjEtMTEuNCA3OS40LTI1LjkgNTYuNSAzNC42IDEzNyAzNC4xIDE5MiAwIDU2LjUgMzQuNiAxMzcgMzQuMSAxOTIgMCAyMy4zIDE0LjIgNTAuOSAyMy4zIDc5LjEgMjUuOCA5LjEuOCAxNi43LTYuOSAxNi43LTE2di0zMS42Yy4xLTgtNS43LTE1LjQtMTMuOC0xNi4zelwiXVxufTtcbnZhciBmYVdhdmVTcXVhcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2F2ZS1zcXVhcmUnLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY4M2VcIiwgXCJNNDc2IDQ4MEgzMjRhMzYgMzYgMCAwIDEtMzYtMzZWOTZoLTk2djE1NmEzNiAzNiAwIDAgMS0zNiAzNkgxNmExNiAxNiAwIDAgMS0xNi0xNnYtMzJhMTYgMTYgMCAwIDEgMTYtMTZoMTEyVjY4YTM2IDM2IDAgMCAxIDM2LTM2aDE1MmEzNiAzNiAwIDAgMSAzNiAzNnYzNDhoOTZWMjYwYTM2IDM2IDAgMCAxIDM2LTM2aDE0MGExNiAxNiAwIDAgMSAxNiAxNnYzMmExNiAxNiAwIDAgMS0xNiAxNkg1MTJ2MTU2YTM2IDM2IDAgMCAxLTM2IDM2elwiXVxufTtcbnZhciBmYVdlaWdodCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3ZWlnaHQnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY0OTZcIiwgXCJNNDQ4IDY0aC0yNS45OEM0MzguNDQgOTIuMjggNDQ4IDEyNS4wMSA0NDggMTYwYzAgMTA1Ljg3LTg2LjEzIDE5Mi0xOTIgMTkyUzY0IDI2NS44NyA2NCAxNjBjMC0zNC45OSA5LjU2LTY3LjcyIDI1Ljk4LTk2SDY0QzI4LjcxIDY0IDAgOTIuNzEgMCAxMjh2MzIwYzAgMzUuMjkgMjguNzEgNjQgNjQgNjRoMzg0YzM1LjI5IDAgNjQtMjguNzEgNjQtNjRWMTI4YzAtMzUuMjktMjguNzEtNjQtNjQtNjR6TTI1NiAzMjBjODguMzcgMCAxNjAtNzEuNjMgMTYwLTE2MFMzNDQuMzcgMCAyNTYgMCA5NiA3MS42MyA5NiAxNjBzNzEuNjMgMTYwIDE2MCAxNjB6bS0uMy0xNTEuOTRsMzMuNTgtNzguMzZjMy41LTguMTcgMTIuOTQtMTEuOTIgMjEuMDMtOC40MSA4LjEyIDMuNDggMTEuODggMTIuODkgOC40MSAyMWwtMzMuNjcgNzguNTVDMjkxLjczIDE4OCAyOTYgMTk3LjQ1IDI5NiAyMDhjMCAyMi4wOS0xNy45MSA0MC00MCA0MHMtNDAtMTcuOTEtNDAtNDBjMC0yMS45OCAxNy43Ni0zOS43NyAzOS43LTM5Ljk0elwiXVxufTtcbnZhciBmYVdlaWdodEhhbmdpbmcgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2VpZ2h0LWhhbmdpbmcnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImY1Y2RcIiwgXCJNNTEwLjI4IDQ0NS44NmwtNzMuMDMtMjkyLjEzYy0zLjgtMTUuMTktMTYuNDQtMjUuNzItMzAuODctMjUuNzJoLTYwLjI1YzMuNTctMTAuMDUgNS44OC0yMC43MiA1Ljg4LTMyIDAtNTMuMDItNDIuOTgtOTYtOTYtOTZzLTk2IDQyLjk4LTk2IDk2YzAgMTEuMjggMi4zIDIxLjk1IDUuODggMzJoLTYwLjI1Yy0xNC40MyAwLTI3LjA4IDEwLjU0LTMwLjg3IDI1LjcyTDEuNzIgNDQ1Ljg2Qy02LjYxIDQ3OS4xNyAxNi4zOCA1MTIgNDguMDMgNTEyaDQxNS45NWMzMS42NCAwIDU0LjYzLTMyLjgzIDQ2LjMtNjYuMTR6TTI1NiAxMjhjLTE3LjY0IDAtMzItMTQuMzYtMzItMzJzMTQuMzYtMzIgMzItMzIgMzIgMTQuMzYgMzIgMzItMTQuMzYgMzItMzIgMzJ6XCJdXG59O1xudmFyIGZhV2hlZWxjaGFpciA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aGVlbGNoYWlyJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMTkzXCIsIFwiTTQ5Ni4xMDEgMzg1LjY2OWwxNC4yMjcgMjguNjYzYzMuOTI5IDcuOTE1LjY5NyAxNy41MTYtNy4yMTggMjEuNDQ1bC02NS40NjUgMzIuODg2Yy0xNi4wNDkgNy45NjctMzUuNTU2IDEuMTk0LTQzLjE4OS0xNS4wNTVMMzMxLjY3OSAzMjBIMTkyYy0xNS45MjUgMC0yOS40MjYtMTEuNzEtMzEuNjc5LTI3LjQ3NUMxMjYuNDMzIDU1LjMwOCAxMjguMzggNzAuMDQ0IDEyOCA2NGMwLTM2LjM1OCAzMC4zMTgtNjUuNjM1IDY3LjA1Mi02My45MjkgMzMuMjcxIDEuNTQ1IDYwLjA0OCAyOC45MDUgNjAuOTI1IDYyLjIwMS44NjggMzIuOTMzLTIzLjE1MiA2MC40MjMtNTQuNjA4IDY1LjAzOWw0LjY3IDMyLjY5SDMzNmM4LjgzNyAwIDE2IDcuMTYzIDE2IDE2djMyYzAgOC44MzctNy4xNjMgMTYtMTYgMTZIMjE1LjE4Mmw0LjU3MiAzMkgzNTJhMzIgMzIgMCAwIDEgMjguOTYyIDE4LjM5Mkw0MzguNDc3IDM5Ni44bDM2LjE3OC0xOC4zNDljNy45MTUtMy45MjkgMTcuNTE3LS42OTcgMjEuNDQ2IDcuMjE4ek0zMTEuMzU4IDM1MmgtMjQuNTA2Yy03Ljc4OCA1NC4yMDQtNTQuNTI4IDk2LTExMC44NTIgOTYtNjEuNzU3IDAtMTEyLTUwLjI0My0xMTItMTEyIDAtNDEuNTA1IDIyLjY5NC03Ny44MDkgNTYuMzI0LTk3LjE1Ni0zLjcxMi0yNS45NjUtNi44NDQtNDcuODYtOS40ODgtNjYuMzMzQzQ1Ljk1NiAxOTguNDY0IDAgMjYxLjk2MyAwIDMzNmMwIDk3LjA0NyA3OC45NTMgMTc2IDE3NiAxNzYgNzEuODcgMCAxMzMuODA2LTQzLjMwOCAxNjEuMTEtMTA1LjE5MkwzMTEuMzU4IDM1MnpcIl1cbn07XG52YXIgZmFXaWZpID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpZmknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImYxZWJcIiwgXCJNNjM0LjkxIDE1NC44OEM0NTcuNzQtOC45OSAxODIuMTktOC45MyA1LjA5IDE1NC44OGMtNi42NiA2LjE2LTYuNzkgMTYuNTktLjM1IDIyLjk4bDM0LjI0IDMzLjk3YzYuMTQgNi4xIDE2LjAyIDYuMjMgMjIuNC4zOCAxNDUuOTItMTMzLjY4IDM3MS4zLTEzMy43MSA1MTcuMjUgMCA2LjM4IDUuODUgMTYuMjYgNS43MSAyMi40LS4zOGwzNC4yNC0zMy45N2M2LjQzLTYuMzkgNi4zLTE2LjgyLS4zNi0yMi45OHpNMzIwIDM1MmMtMzUuMzUgMC02NCAyOC42NS02NCA2NHMyOC42NSA2NCA2NCA2NCA2NC0yOC42NSA2NC02NC0yOC42NS02NC02NC02NHptMjAyLjY3LTgzLjU5Yy0xMTUuMjYtMTAxLjkzLTI5MC4yMS0xMDEuODItNDA1LjM0IDAtNi45IDYuMS03LjEyIDE2LjY5LS41NyAyMy4xNWwzNC40NCAzMy45OWM2IDUuOTIgMTUuNjYgNi4zMiAyMi4wNS44IDgzLjk1LTcyLjU3IDIwOS43NC03Mi40MSAyOTMuNDkgMCA2LjM5IDUuNTIgMTYuMDUgNS4xMyAyMi4wNS0uOGwzNC40NC0zMy45OWM2LjU2LTYuNDYgNi4zMy0xNy4wNi0uNTYtMjMuMTV6XCJdXG59O1xudmFyIGZhV2luZCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5kJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzJlXCIsIFwiTTE1Ni43IDI1NkgxNmMtOC44IDAtMTYgNy4yLTE2IDE2djMyYzAgOC44IDcuMiAxNiAxNiAxNmgxNDIuMmMxNS45IDAgMzAuOCAxMC45IDMzLjQgMjYuNiAzLjMgMjAtMTIuMSAzNy40LTMxLjYgMzcuNC0xNC4xIDAtMjYuMS05LjItMzAuNC0yMS45LTIuMS02LjMtOC42LTEwLjEtMTUuMi0xMC4xSDgxLjZjLTkuOCAwLTE3LjcgOC44LTE1LjkgMTguNCA4LjYgNDQuMSA0Ny42IDc3LjYgOTQuMiA3Ny42IDU3LjEgMCAxMDIuNy01MC4xIDk1LjItMTA4LjZDMjQ5IDI5MSAyMDUuNCAyNTYgMTU2LjcgMjU2ek0xNiAyMjRoMzM2YzU5LjcgMCAxMDYuOC01NC44IDkzLjgtMTE2LjctNy42LTM2LjItMzYuOS02NS41LTczLjEtNzMuMS01NS40LTExLjYtMTA1LjEgMjQuOS0xMTQuOSA3NS41LTEuOSA5LjYgNi4xIDE4LjMgMTUuOCAxOC4zaDMyLjhjNi43IDAgMTMuMS0zLjggMTUuMi0xMC4xQzMyNS45IDEwNS4yIDMzNy45IDk2IDM1MiA5NmMxOS40IDAgMzQuOSAxNy40IDMxLjYgMzcuNC0yLjYgMTUuNy0xNy40IDI2LjYtMzMuNCAyNi42SDE2Yy04LjggMC0xNiA3LjItMTYgMTZ2MzJjMCA4LjggNy4yIDE2IDE2IDE2em0zODQgMzJIMjQzLjdjMTkuMyAxNi42IDMzLjIgMzguOCAzOS44IDY0SDQwMGMyNi41IDAgNDggMjEuNSA0OCA0OHMtMjEuNSA0OC00OCA0OGMtMTcuOSAwLTMzLjMtOS45LTQxLjYtMjQuNC0yLjktNS04LjctNy42LTE0LjUtNy42aC0zMy44Yy0xMC45IDAtMTkgMTAuOC0xNS4zIDIxLjEgMTcuOCA1MC42IDcwLjUgODQuOCAxMjkuNCA3Mi4zIDQxLjItOC43IDc1LjEtNDEuNiA4NC43LTgyLjdDNTI2IDMyMS41IDQ3MC41IDI1NiA0MDAgMjU2elwiXVxufTtcbnZhciBmYVdpbmRvd0Nsb3NlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpbmRvdy1jbG9zZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjQxMFwiLCBcIk00NjQgMzJINDhDMjEuNSAzMiAwIDUzLjUgMCA4MHYzNTJjMCAyNi41IDIxLjUgNDggNDggNDhoNDE2YzI2LjUgMCA0OC0yMS41IDQ4LTQ4VjgwYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4em0tODMuNiAyOTAuNWM0LjggNC44IDQuOCAxMi42IDAgMTcuNGwtNDAuNSA0MC41Yy00LjggNC44LTEyLjYgNC44LTE3LjQgMEwyNTYgMzEzLjNsLTY2LjUgNjcuMWMtNC44IDQuOC0xMi42IDQuOC0xNy40IDBsLTQwLjUtNDAuNWMtNC44LTQuOC00LjgtMTIuNiAwLTE3LjRsNjcuMS02Ni41LTY3LjEtNjYuNWMtNC44LTQuOC00LjgtMTIuNiAwLTE3LjRsNDAuNS00MC41YzQuOC00LjggMTIuNi00LjggMTcuNCAwbDY2LjUgNjcuMSA2Ni41LTY3LjFjNC44LTQuOCAxMi42LTQuOCAxNy40IDBsNDAuNSA0MC41YzQuOCA0LjggNC44IDEyLjYgMCAxNy40TDMxMy4zIDI1Nmw2Ny4xIDY2LjV6XCJdXG59O1xudmFyIGZhV2luZG93TWF4aW1pemUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZG93LW1heGltaXplJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmMmQwXCIsIFwiTTQ2NCAzMkg0OEMyMS41IDMyIDAgNTMuNSAwIDgwdjM1MmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDhWODBjMC0yNi41LTIxLjUtNDgtNDgtNDh6bS0xNiAxNjBINjR2LTg0YzAtNi42IDUuNC0xMiAxMi0xMmgzNjBjNi42IDAgMTIgNS40IDEyIDEydjg0elwiXVxufTtcbnZhciBmYVdpbmRvd01pbmltaXplID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpbmRvdy1taW5pbWl6ZScsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjJkMVwiLCBcIk00NjQgMzUySDQ4Yy0yNi41IDAtNDggMjEuNS00OCA0OHYzMmMwIDI2LjUgMjEuNSA0OCA0OCA0OGg0MTZjMjYuNSAwIDQ4LTIxLjUgNDgtNDh2LTMyYzAtMjYuNS0yMS41LTQ4LTQ4LTQ4elwiXVxufTtcbnZhciBmYVdpbmRvd1Jlc3RvcmUgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd2luZG93LXJlc3RvcmUnLFxuICBpY29uOiBbNTEyLCA1MTIsIFtdLCBcImYyZDJcIiwgXCJNNTEyIDQ4djI4OGMwIDI2LjUtMjEuNSA0OC00OCA0OGgtNDhWMTc2YzAtNDQuMS0zNS45LTgwLTgwLTgwSDEyOFY0OGMwLTI2LjUgMjEuNS00OCA0OC00OGgyODhjMjYuNSAwIDQ4IDIxLjUgNDggNDh6TTM4NCAxNzZ2Mjg4YzAgMjYuNS0yMS41IDQ4LTQ4IDQ4SDQ4Yy0yNi41IDAtNDgtMjEuNS00OC00OFYxNzZjMC0yNi41IDIxLjUtNDggNDgtNDhoMjg4YzI2LjUgMCA0OCAyMS41IDQ4IDQ4em0tNjggMjhjMC02LjYtNS40LTEyLTEyLTEySDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NTJoMjUydi01MnpcIl1cbn07XG52YXIgZmFXaW5lQm90dGxlID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dpbmUtYm90dGxlJyxcbiAgaWNvbjogWzUxMiwgNTEyLCBbXSwgXCJmNzJmXCIsIFwiTTUwNy4zMSA3Mi41N0w0MzkuNDMgNC42OWMtNi4yNS02LjI1LTE2LjM4LTYuMjUtMjIuNjMgMGwtMjIuNjMgMjIuNjNjLTYuMjUgNi4yNS02LjI1IDE2LjM4IDAgMjIuNjNsLTc2LjY3IDc2LjY3Yy00Ni41OC0xOS43LTEwMi40LTEwLjczLTE0MC4zNyAyNy4yM0wxOC43NSAzMTIuMjNjLTI0Ljk5IDI0Ljk5LTI0Ljk5IDY1LjUyIDAgOTAuNTFsOTAuNTEgOTAuNTFjMjQuOTkgMjQuOTkgNjUuNTIgMjQuOTkgOTAuNTEgMGwxNTguMzktMTU4LjM5YzM3Ljk2LTM3Ljk2IDQ2LjkzLTkzLjc5IDI3LjIzLTE0MC4zN2w3Ni42Ny03Ni42N2M2LjI1IDYuMjUgMTYuMzggNi4yNSAyMi42MyAwbDIyLjYzLTIyLjYzYzYuMjQtNi4yNCA2LjI0LTE2LjM3LS4wMS0yMi42MnpNMTc5LjIyIDQyMy4yOWwtOTAuNTEtOTAuNTEgMTIyLjA0LTEyMi4wNCA5MC41MSA5MC41MS0xMjIuMDQgMTIyLjA0elwiXVxufTtcbnZhciBmYVdpbmVHbGFzcyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5lLWdsYXNzJyxcbiAgaWNvbjogWzI4OCwgNTEyLCBbXSwgXCJmNGUzXCIsIFwiTTIxNiA0NjRoLTQwVjM0Ni44MWM2OC40Ny0xNS44OSAxMTguMDUtNzkuOTEgMTExLjQtMTU0LjE2bC0xNS45NS0xNzguMUMyNzAuNzEgNi4zMSAyNjMuOSAwIDI1NS43NCAwSDMyLjI2Yy04LjE1IDAtMTQuOTcgNi4zMS0xNS43IDE0LjU1TC42IDE5Mi42NkMtNi4wNSAyNjYuOTEgNDMuNTMgMzMwLjkzIDExMiAzNDYuODJWNDY0SDcyYy0yMi4wOSAwLTQwIDE3LjkxLTQwIDQwIDAgNC40MiAzLjU4IDggOCA4aDIwOGM0LjQyIDAgOC0zLjU4IDgtOCAwLTIyLjA5LTE3LjkxLTQwLTQwLTQwelwiXVxufTtcbnZhciBmYVdpbmVHbGFzc0FsdCA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd3aW5lLWdsYXNzLWFsdCcsXG4gIGljb246IFsyODgsIDUxMiwgW10sIFwiZjVjZVwiLCBcIk0yMTYgNDY0aC00MFYzNDYuODFjNjguNDctMTUuODkgMTE4LjA1LTc5LjkxIDExMS40LTE1NC4xNmwtMTUuOTUtMTc4LjFDMjcwLjcxIDYuMzEgMjYzLjkgMCAyNTUuNzQgMEgzMi4yNmMtOC4xNSAwLTE0Ljk3IDYuMzEtMTUuNyAxNC41NUwuNiAxOTIuNjZDLTYuMDUgMjY2LjkxIDQzLjUzIDMzMC45MyAxMTIgMzQ2LjgyVjQ2NEg3MmMtMjIuMDkgMC00MCAxNy45MS00MCA0MCAwIDQuNDIgMy41OCA4IDggOGgyMDhjNC40MiAwIDgtMy41OCA4LTggMC0yMi4wOS0xNy45MS00MC00MC00MHpNNjEuNzUgNDhoMTY0LjVsNy4xNyA4MEg1NC41OGw3LjE3LTgwelwiXVxufTtcbnZhciBmYVdvblNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAnd29uLXNpZ24nLFxuICBpY29uOiBbNTc2LCA1MTIsIFtdLCBcImYxNTlcIiwgXCJNNTY0IDE5MmM2LjYgMCAxMi01LjQgMTItMTJ2LTQwYzAtNi42LTUuNC0xMi0xMi0xMmgtNDhsMTguNi04MC42YzEuNy03LjUtNC0xNC43LTExLjctMTQuN2gtNDYuMWMtNS43IDAtMTAuNiA0LTExLjcgOS41TDQ1MC43IDEyOEgzNDAuOGwtMTkuNy04NmMtMS4zLTUuNS02LjEtOS4zLTExLjctOS4zaC00NGMtNS42IDAtMTAuNCAzLjgtMTEuNyA5LjNsLTIwIDg2SDEyNWwtMTcuNS04NS43Yy0xLjEtNS42LTYuMS05LjYtMTEuOC05LjZINTMuNmMtNy43IDAtMTMuNCA3LjEtMTEuNyAxNC42TDYwIDEyOEgxMmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg2Mi4zbDcuMiAzMkgxMmMtNi42IDAtMTIgNS40LTEyIDEydjQwYzAgNi42IDUuNCAxMiAxMiAxMmg4My45bDQwLjkgMTgyLjZjMS4yIDUuNSA2LjEgOS40IDExLjcgOS40aDU2LjhjNS42IDAgMTAuNC0zLjkgMTEuNy05LjNMMjU5LjMgMjg4aDU1LjFsNDIuNCAxODIuN2MxLjMgNS40IDYuMSA5LjMgMTEuNyA5LjNoNTYuOGM1LjYgMCAxMC40LTMuOSAxMS43LTkuM0w0NzkuMSAyODhINTY0YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC03MC4xbDcuNC0zMnpNMTgzLjggMzQyYy02LjIgMjUuOC02LjggNDcuMi03LjMgNDcuMmgtMS4xcy0xLjctMjItNi44LTQ3LjJsLTExLTU0aDM4Ljh6bTI3LjUtMTE4aC02Ni44bC02LjUtMzJoODAuOHptNjIuOSAwbDItOC42YzEuOS04IDMuNS0xNiA0LjgtMjMuNGgxMS44YzEuMyA3LjQgMi45IDE1LjQgNC44IDIzLjRsMiA4LjZ6bTEzMC45IDExOGMtNS4xIDI1LjItNi44IDQ3LjItNi44IDQ3LjJoLTEuMWMtLjYgMC0xLjEtMjEuNC03LjMtNDcuMmwtMTIuNC01NGgzOS4xem0yNS4yLTExOGgtNjcuNGwtNy4zLTMyaDgxLjZ6XCJdXG59O1xudmFyIGZhV3JlbmNoID0ge1xuICBwcmVmaXg6ICdmYXMnLFxuICBpY29uTmFtZTogJ3dyZW5jaCcsXG4gIGljb246IFs1MTIsIDUxMiwgW10sIFwiZjBhZFwiLCBcIk01MDcuNzMgMTA5LjFjLTIuMjQtOS4wMy0xMy41NC0xMi4wOS0yMC4xMi01LjUxbC03NC4zNiA3NC4zNi02Ny44OC0xMS4zMS0xMS4zMS02Ny44OCA3NC4zNi03NC4zNmM2LjYyLTYuNjIgMy40My0xNy45LTUuNjYtMjAuMTYtNDcuMzgtMTEuNzQtOTkuNTUuOTEtMTM2LjU4IDM3LjkzLTM5LjY0IDM5LjY0LTUwLjU1IDk3LjEtMzQuMDUgMTQ3LjJMMTguNzQgNDAyLjc2Yy0yNC45OSAyNC45OS0yNC45OSA2NS41MSAwIDkwLjUgMjQuOTkgMjQuOTkgNjUuNTEgMjQuOTkgOTAuNSAwbDIxMy4yMS0yMTMuMjFjNTAuMTIgMTYuNzEgMTA3LjQ3IDUuNjggMTQ3LjM3LTM0LjIyIDM3LjA3LTM3LjA3IDQ5LjctODkuMzIgMzcuOTEtMTM2Ljczek02NCA0NzJjLTEzLjI1IDAtMjQtMTAuNzUtMjQtMjQgMC0xMy4yNiAxMC43NS0yNCAyNC0yNHMyNCAxMC43NCAyNCAyNGMwIDEzLjI1LTEwLjc1IDI0LTI0IDI0elwiXVxufTtcbnZhciBmYVhSYXkgPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneC1yYXknLFxuICBpY29uOiBbNjQwLCA1MTIsIFtdLCBcImY0OTdcIiwgXCJNMjQwIDM4NGMtOC44IDAtMTYgNy4yLTE2IDE2czcuMiAxNiAxNiAxNiAxNi03LjIgMTYtMTYtNy4yLTE2LTE2LTE2em0xNjAgMzJjOC44IDAgMTYtNy4yIDE2LTE2cy03LjItMTYtMTYtMTYtMTYgNy4yLTE2IDE2IDcuMiAxNiAxNiAxNnpNNjI0IDBIMTZDNy4yIDAgMCA3LjIgMCAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjA4YzguOCAwIDE2LTcuMiAxNi0xNlYxNmMwLTguOC03LjItMTYtMTYtMTZ6bTAgNDQ4aC00OFY5Nkg2NHYzNTJIMTZjLTguOCAwLTE2IDcuMi0xNiAxNnYzMmMwIDguOCA3LjIgMTYgMTYgMTZoNjA4YzguOCAwIDE2LTcuMiAxNi0xNnYtMzJjMC04LjgtNy4yLTE2LTE2LTE2ek00ODAgMjQ4YzAgNC40LTMuNiA4LTggOEgzMzZ2MzJoMTA0YzQuNCAwIDggMy42IDggOHYxNmMwIDQuNC0zLjYgOC04IDhIMzM2djMyaDY0YzI2LjUgMCA0OCAyMS41IDQ4IDQ4cy0yMS41IDQ4LTQ4IDQ4LTQ4LTIxLjUtNDgtNDh2LTE2aC02NHYxNmMwIDI2LjUtMjEuNSA0OC00OCA0OHMtNDgtMjEuNS00OC00OCAyMS41LTQ4IDQ4LTQ4aDY0di0zMkgyMDBjLTQuNCAwLTgtMy42LTgtOHYtMTZjMC00LjQgMy42LTggOC04aDEwNHYtMzJIMTY4Yy00LjQgMC04LTMuNi04LTh2LTE2YzAtNC40IDMuNi04IDgtOGgxMzZ2LTMySDIwMGMtNC40IDAtOC0zLjYtOC04di0xNmMwLTQuNCAzLjYtOCA4LThoMTA0di0yNGMwLTQuNCAzLjYtOCA4LThoMTZjNC40IDAgOCAzLjYgOCA4djI0aDEwNGM0LjQgMCA4IDMuNiA4IDh2MTZjMCA0LjQtMy42IDgtOCA4SDMzNnYzMmgxMzZjNC40IDAgOCAzLjYgOCA4djE2elwiXVxufTtcbnZhciBmYVllblNpZ24gPSB7XG4gIHByZWZpeDogJ2ZhcycsXG4gIGljb25OYW1lOiAneWVuLXNpZ24nLFxuICBpY29uOiBbMzg0LCA1MTIsIFtdLCBcImYxNTdcIiwgXCJNMzUxLjIgMzJoLTY1LjNjLTQuNiAwLTguOCAyLjYtMTAuOCA2LjdsLTU1LjQgMTEzLjJjLTE0LjUgMzQuNy0yNy4xIDcxLjktMjcuMSA3MS45aC0xLjNzLTEyLjYtMzcuMi0yNy4xLTcxLjlMMTA4LjggMzguN2MtMi00LjEtNi4yLTYuNy0xMC44LTYuN0gzMi44Yy05LjEgMC0xNC44IDkuNy0xMC42IDE3LjZMMTAyLjMgMjAwSDQ0Yy02LjYgMC0xMiA1LjQtMTIgMTJ2MzJjMCA2LjYgNS40IDEyIDEyIDEyaDg4LjJsMTkuOCAzNy4yVjMyMEg0NGMtNi42IDAtMTIgNS40LTEyIDEydjMyYzAgNi42IDUuNCAxMiAxMiAxMmgxMDh2OTJjMCA2LjYgNS40IDEyIDEyIDEyaDU2YzYuNiAwIDEyLTUuNCAxMi0xMnYtOTJoMTA4YzYuNiAwIDEyLTUuNCAxMi0xMnYtMzJjMC02LjYtNS40LTEyLTEyLTEySDIzMnYtMjYuOGwxOS44LTM3LjJIMzQwYzYuNiAwIDEyLTUuNCAxMi0xMnYtMzJjMC02LjYtNS40LTEyLTEyLTEyaC01OC4zbDgwLjEtMTUwLjRjNC4zLTcuOS0xLjUtMTcuNi0xMC42LTE3LjZ6XCJdXG59O1xudmFyIGZhWWluWWFuZyA9IHtcbiAgcHJlZml4OiAnZmFzJyxcbiAgaWNvbk5hbWU6ICd5aW4teWFuZycsXG4gIGljb246IFs0OTYsIDUxMiwgW10sIFwiZjZhZFwiLCBcIk0yNDggOEMxMTEuMDMgOCAwIDExOS4wMyAwIDI1NnMxMTEuMDMgMjQ4IDI0OCAyNDggMjQ4LTExMS4wMyAyNDgtMjQ4UzM4NC45NyA4IDI0OCA4em0wIDM3NmMtMTcuNjcgMC0zMi0xNC4zMy0zMi0zMnMxNC4zMy0zMiAzMi0zMiAzMiAxNC4zMyAzMiAzMi0xNC4zMyAzMi0zMiAzMnptMC0xMjhjLTUzLjAyIDAtOTYgNDIuOTgtOTYgOTZzNDIuOTggOTYgOTYgOTZjLTEwNi4wNCAwLTE5Mi04NS45Ni0xOTItMTkyUzE0MS45NiA2NCAyNDggNjRjNTMuMDIgMCA5NiA0Mi45OCA5NiA5NnMtNDIuOTggOTYtOTYgOTZ6bTAtMTI4Yy0xNy42NyAwLTMyIDE0LjMzLTMyIDMyczE0LjMzIDMyIDMyIDMyIDMyLTE0LjMzIDMyLTMyLTE0LjMzLTMyLTMyLTMyelwiXVxufTtcbnZhciBfaWNvbnNDYWNoZSA9IHtcbiAgZmFBZDogZmFBZCxcbiAgZmFBZGRyZXNzQm9vazogZmFBZGRyZXNzQm9vayxcbiAgZmFBZGRyZXNzQ2FyZDogZmFBZGRyZXNzQ2FyZCxcbiAgZmFBZGp1c3Q6IGZhQWRqdXN0LFxuICBmYUFpckZyZXNoZW5lcjogZmFBaXJGcmVzaGVuZXIsXG4gIGZhQWxpZ25DZW50ZXI6IGZhQWxpZ25DZW50ZXIsXG4gIGZhQWxpZ25KdXN0aWZ5OiBmYUFsaWduSnVzdGlmeSxcbiAgZmFBbGlnbkxlZnQ6IGZhQWxpZ25MZWZ0LFxuICBmYUFsaWduUmlnaHQ6IGZhQWxpZ25SaWdodCxcbiAgZmFBbGxlcmdpZXM6IGZhQWxsZXJnaWVzLFxuICBmYUFtYnVsYW5jZTogZmFBbWJ1bGFuY2UsXG4gIGZhQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmc6IGZhQW1lcmljYW5TaWduTGFuZ3VhZ2VJbnRlcnByZXRpbmcsXG4gIGZhQW5jaG9yOiBmYUFuY2hvcixcbiAgZmFBbmdsZURvdWJsZURvd246IGZhQW5nbGVEb3VibGVEb3duLFxuICBmYUFuZ2xlRG91YmxlTGVmdDogZmFBbmdsZURvdWJsZUxlZnQsXG4gIGZhQW5nbGVEb3VibGVSaWdodDogZmFBbmdsZURvdWJsZVJpZ2h0LFxuICBmYUFuZ2xlRG91YmxlVXA6IGZhQW5nbGVEb3VibGVVcCxcbiAgZmFBbmdsZURvd246IGZhQW5nbGVEb3duLFxuICBmYUFuZ2xlTGVmdDogZmFBbmdsZUxlZnQsXG4gIGZhQW5nbGVSaWdodDogZmFBbmdsZVJpZ2h0LFxuICBmYUFuZ2xlVXA6IGZhQW5nbGVVcCxcbiAgZmFBbmdyeTogZmFBbmdyeSxcbiAgZmFBbmtoOiBmYUFua2gsXG4gIGZhQXBwbGVBbHQ6IGZhQXBwbGVBbHQsXG4gIGZhQXJjaGl2ZTogZmFBcmNoaXZlLFxuICBmYUFyY2h3YXk6IGZhQXJjaHdheSxcbiAgZmFBcnJvd0FsdENpcmNsZURvd246IGZhQXJyb3dBbHRDaXJjbGVEb3duLFxuICBmYUFycm93QWx0Q2lyY2xlTGVmdDogZmFBcnJvd0FsdENpcmNsZUxlZnQsXG4gIGZhQXJyb3dBbHRDaXJjbGVSaWdodDogZmFBcnJvd0FsdENpcmNsZVJpZ2h0LFxuICBmYUFycm93QWx0Q2lyY2xlVXA6IGZhQXJyb3dBbHRDaXJjbGVVcCxcbiAgZmFBcnJvd0NpcmNsZURvd246IGZhQXJyb3dDaXJjbGVEb3duLFxuICBmYUFycm93Q2lyY2xlTGVmdDogZmFBcnJvd0NpcmNsZUxlZnQsXG4gIGZhQXJyb3dDaXJjbGVSaWdodDogZmFBcnJvd0NpcmNsZVJpZ2h0LFxuICBmYUFycm93Q2lyY2xlVXA6IGZhQXJyb3dDaXJjbGVVcCxcbiAgZmFBcnJvd0Rvd246IGZhQXJyb3dEb3duLFxuICBmYUFycm93TGVmdDogZmFBcnJvd0xlZnQsXG4gIGZhQXJyb3dSaWdodDogZmFBcnJvd1JpZ2h0LFxuICBmYUFycm93VXA6IGZhQXJyb3dVcCxcbiAgZmFBcnJvd3NBbHQ6IGZhQXJyb3dzQWx0LFxuICBmYUFycm93c0FsdEg6IGZhQXJyb3dzQWx0SCxcbiAgZmFBcnJvd3NBbHRWOiBmYUFycm93c0FsdFYsXG4gIGZhQXNzaXN0aXZlTGlzdGVuaW5nU3lzdGVtczogZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zLFxuICBmYUFzdGVyaXNrOiBmYUFzdGVyaXNrLFxuICBmYUF0OiBmYUF0LFxuICBmYUF0bGFzOiBmYUF0bGFzLFxuICBmYUF0b206IGZhQXRvbSxcbiAgZmFBdWRpb0Rlc2NyaXB0aW9uOiBmYUF1ZGlvRGVzY3JpcHRpb24sXG4gIGZhQXdhcmQ6IGZhQXdhcmQsXG4gIGZhQmFieTogZmFCYWJ5LFxuICBmYUJhYnlDYXJyaWFnZTogZmFCYWJ5Q2FycmlhZ2UsXG4gIGZhQmFja3NwYWNlOiBmYUJhY2tzcGFjZSxcbiAgZmFCYWNrd2FyZDogZmFCYWNrd2FyZCxcbiAgZmFCYWNvbjogZmFCYWNvbixcbiAgZmFCYWxhbmNlU2NhbGU6IGZhQmFsYW5jZVNjYWxlLFxuICBmYUJhbGFuY2VTY2FsZUxlZnQ6IGZhQmFsYW5jZVNjYWxlTGVmdCxcbiAgZmFCYWxhbmNlU2NhbGVSaWdodDogZmFCYWxhbmNlU2NhbGVSaWdodCxcbiAgZmFCYW46IGZhQmFuLFxuICBmYUJhbmRBaWQ6IGZhQmFuZEFpZCxcbiAgZmFCYXJjb2RlOiBmYUJhcmNvZGUsXG4gIGZhQmFyczogZmFCYXJzLFxuICBmYUJhc2ViYWxsQmFsbDogZmFCYXNlYmFsbEJhbGwsXG4gIGZhQmFza2V0YmFsbEJhbGw6IGZhQmFza2V0YmFsbEJhbGwsXG4gIGZhQmF0aDogZmFCYXRoLFxuICBmYUJhdHRlcnlFbXB0eTogZmFCYXR0ZXJ5RW1wdHksXG4gIGZhQmF0dGVyeUZ1bGw6IGZhQmF0dGVyeUZ1bGwsXG4gIGZhQmF0dGVyeUhhbGY6IGZhQmF0dGVyeUhhbGYsXG4gIGZhQmF0dGVyeVF1YXJ0ZXI6IGZhQmF0dGVyeVF1YXJ0ZXIsXG4gIGZhQmF0dGVyeVRocmVlUXVhcnRlcnM6IGZhQmF0dGVyeVRocmVlUXVhcnRlcnMsXG4gIGZhQmVkOiBmYUJlZCxcbiAgZmFCZWVyOiBmYUJlZXIsXG4gIGZhQmVsbDogZmFCZWxsLFxuICBmYUJlbGxTbGFzaDogZmFCZWxsU2xhc2gsXG4gIGZhQmV6aWVyQ3VydmU6IGZhQmV6aWVyQ3VydmUsXG4gIGZhQmlibGU6IGZhQmlibGUsXG4gIGZhQmljeWNsZTogZmFCaWN5Y2xlLFxuICBmYUJpa2luZzogZmFCaWtpbmcsXG4gIGZhQmlub2N1bGFyczogZmFCaW5vY3VsYXJzLFxuICBmYUJpb2hhemFyZDogZmFCaW9oYXphcmQsXG4gIGZhQmlydGhkYXlDYWtlOiBmYUJpcnRoZGF5Q2FrZSxcbiAgZmFCbGVuZGVyOiBmYUJsZW5kZXIsXG4gIGZhQmxlbmRlclBob25lOiBmYUJsZW5kZXJQaG9uZSxcbiAgZmFCbGluZDogZmFCbGluZCxcbiAgZmFCbG9nOiBmYUJsb2csXG4gIGZhQm9sZDogZmFCb2xkLFxuICBmYUJvbHQ6IGZhQm9sdCxcbiAgZmFCb21iOiBmYUJvbWIsXG4gIGZhQm9uZTogZmFCb25lLFxuICBmYUJvbmc6IGZhQm9uZyxcbiAgZmFCb29rOiBmYUJvb2ssXG4gIGZhQm9va0RlYWQ6IGZhQm9va0RlYWQsXG4gIGZhQm9va01lZGljYWw6IGZhQm9va01lZGljYWwsXG4gIGZhQm9va09wZW46IGZhQm9va09wZW4sXG4gIGZhQm9va1JlYWRlcjogZmFCb29rUmVhZGVyLFxuICBmYUJvb2ttYXJrOiBmYUJvb2ttYXJrLFxuICBmYUJvcmRlckFsbDogZmFCb3JkZXJBbGwsXG4gIGZhQm9yZGVyTm9uZTogZmFCb3JkZXJOb25lLFxuICBmYUJvcmRlclN0eWxlOiBmYUJvcmRlclN0eWxlLFxuICBmYUJvd2xpbmdCYWxsOiBmYUJvd2xpbmdCYWxsLFxuICBmYUJveDogZmFCb3gsXG4gIGZhQm94T3BlbjogZmFCb3hPcGVuLFxuICBmYUJveGVzOiBmYUJveGVzLFxuICBmYUJyYWlsbGU6IGZhQnJhaWxsZSxcbiAgZmFCcmFpbjogZmFCcmFpbixcbiAgZmFCcmVhZFNsaWNlOiBmYUJyZWFkU2xpY2UsXG4gIGZhQnJpZWZjYXNlOiBmYUJyaWVmY2FzZSxcbiAgZmFCcmllZmNhc2VNZWRpY2FsOiBmYUJyaWVmY2FzZU1lZGljYWwsXG4gIGZhQnJvYWRjYXN0VG93ZXI6IGZhQnJvYWRjYXN0VG93ZXIsXG4gIGZhQnJvb206IGZhQnJvb20sXG4gIGZhQnJ1c2g6IGZhQnJ1c2gsXG4gIGZhQnVnOiBmYUJ1ZyxcbiAgZmFCdWlsZGluZzogZmFCdWlsZGluZyxcbiAgZmFCdWxsaG9ybjogZmFCdWxsaG9ybixcbiAgZmFCdWxsc2V5ZTogZmFCdWxsc2V5ZSxcbiAgZmFCdXJuOiBmYUJ1cm4sXG4gIGZhQnVzOiBmYUJ1cyxcbiAgZmFCdXNBbHQ6IGZhQnVzQWx0LFxuICBmYUJ1c2luZXNzVGltZTogZmFCdXNpbmVzc1RpbWUsXG4gIGZhQ2FsY3VsYXRvcjogZmFDYWxjdWxhdG9yLFxuICBmYUNhbGVuZGFyOiBmYUNhbGVuZGFyLFxuICBmYUNhbGVuZGFyQWx0OiBmYUNhbGVuZGFyQWx0LFxuICBmYUNhbGVuZGFyQ2hlY2s6IGZhQ2FsZW5kYXJDaGVjayxcbiAgZmFDYWxlbmRhckRheTogZmFDYWxlbmRhckRheSxcbiAgZmFDYWxlbmRhck1pbnVzOiBmYUNhbGVuZGFyTWludXMsXG4gIGZhQ2FsZW5kYXJQbHVzOiBmYUNhbGVuZGFyUGx1cyxcbiAgZmFDYWxlbmRhclRpbWVzOiBmYUNhbGVuZGFyVGltZXMsXG4gIGZhQ2FsZW5kYXJXZWVrOiBmYUNhbGVuZGFyV2VlayxcbiAgZmFDYW1lcmE6IGZhQ2FtZXJhLFxuICBmYUNhbWVyYVJldHJvOiBmYUNhbWVyYVJldHJvLFxuICBmYUNhbXBncm91bmQ6IGZhQ2FtcGdyb3VuZCxcbiAgZmFDYW5keUNhbmU6IGZhQ2FuZHlDYW5lLFxuICBmYUNhbm5hYmlzOiBmYUNhbm5hYmlzLFxuICBmYUNhcHN1bGVzOiBmYUNhcHN1bGVzLFxuICBmYUNhcjogZmFDYXIsXG4gIGZhQ2FyQWx0OiBmYUNhckFsdCxcbiAgZmFDYXJCYXR0ZXJ5OiBmYUNhckJhdHRlcnksXG4gIGZhQ2FyQ3Jhc2g6IGZhQ2FyQ3Jhc2gsXG4gIGZhQ2FyU2lkZTogZmFDYXJTaWRlLFxuICBmYUNhcmV0RG93bjogZmFDYXJldERvd24sXG4gIGZhQ2FyZXRMZWZ0OiBmYUNhcmV0TGVmdCxcbiAgZmFDYXJldFJpZ2h0OiBmYUNhcmV0UmlnaHQsXG4gIGZhQ2FyZXRTcXVhcmVEb3duOiBmYUNhcmV0U3F1YXJlRG93bixcbiAgZmFDYXJldFNxdWFyZUxlZnQ6IGZhQ2FyZXRTcXVhcmVMZWZ0LFxuICBmYUNhcmV0U3F1YXJlUmlnaHQ6IGZhQ2FyZXRTcXVhcmVSaWdodCxcbiAgZmFDYXJldFNxdWFyZVVwOiBmYUNhcmV0U3F1YXJlVXAsXG4gIGZhQ2FyZXRVcDogZmFDYXJldFVwLFxuICBmYUNhcnJvdDogZmFDYXJyb3QsXG4gIGZhQ2FydEFycm93RG93bjogZmFDYXJ0QXJyb3dEb3duLFxuICBmYUNhcnRQbHVzOiBmYUNhcnRQbHVzLFxuICBmYUNhc2hSZWdpc3RlcjogZmFDYXNoUmVnaXN0ZXIsXG4gIGZhQ2F0OiBmYUNhdCxcbiAgZmFDZXJ0aWZpY2F0ZTogZmFDZXJ0aWZpY2F0ZSxcbiAgZmFDaGFpcjogZmFDaGFpcixcbiAgZmFDaGFsa2JvYXJkOiBmYUNoYWxrYm9hcmQsXG4gIGZhQ2hhbGtib2FyZFRlYWNoZXI6IGZhQ2hhbGtib2FyZFRlYWNoZXIsXG4gIGZhQ2hhcmdpbmdTdGF0aW9uOiBmYUNoYXJnaW5nU3RhdGlvbixcbiAgZmFDaGFydEFyZWE6IGZhQ2hhcnRBcmVhLFxuICBmYUNoYXJ0QmFyOiBmYUNoYXJ0QmFyLFxuICBmYUNoYXJ0TGluZTogZmFDaGFydExpbmUsXG4gIGZhQ2hhcnRQaWU6IGZhQ2hhcnRQaWUsXG4gIGZhQ2hlY2s6IGZhQ2hlY2ssXG4gIGZhQ2hlY2tDaXJjbGU6IGZhQ2hlY2tDaXJjbGUsXG4gIGZhQ2hlY2tEb3VibGU6IGZhQ2hlY2tEb3VibGUsXG4gIGZhQ2hlY2tTcXVhcmU6IGZhQ2hlY2tTcXVhcmUsXG4gIGZhQ2hlZXNlOiBmYUNoZWVzZSxcbiAgZmFDaGVzczogZmFDaGVzcyxcbiAgZmFDaGVzc0Jpc2hvcDogZmFDaGVzc0Jpc2hvcCxcbiAgZmFDaGVzc0JvYXJkOiBmYUNoZXNzQm9hcmQsXG4gIGZhQ2hlc3NLaW5nOiBmYUNoZXNzS2luZyxcbiAgZmFDaGVzc0tuaWdodDogZmFDaGVzc0tuaWdodCxcbiAgZmFDaGVzc1Bhd246IGZhQ2hlc3NQYXduLFxuICBmYUNoZXNzUXVlZW46IGZhQ2hlc3NRdWVlbixcbiAgZmFDaGVzc1Jvb2s6IGZhQ2hlc3NSb29rLFxuICBmYUNoZXZyb25DaXJjbGVEb3duOiBmYUNoZXZyb25DaXJjbGVEb3duLFxuICBmYUNoZXZyb25DaXJjbGVMZWZ0OiBmYUNoZXZyb25DaXJjbGVMZWZ0LFxuICBmYUNoZXZyb25DaXJjbGVSaWdodDogZmFDaGV2cm9uQ2lyY2xlUmlnaHQsXG4gIGZhQ2hldnJvbkNpcmNsZVVwOiBmYUNoZXZyb25DaXJjbGVVcCxcbiAgZmFDaGV2cm9uRG93bjogZmFDaGV2cm9uRG93bixcbiAgZmFDaGV2cm9uTGVmdDogZmFDaGV2cm9uTGVmdCxcbiAgZmFDaGV2cm9uUmlnaHQ6IGZhQ2hldnJvblJpZ2h0LFxuICBmYUNoZXZyb25VcDogZmFDaGV2cm9uVXAsXG4gIGZhQ2hpbGQ6IGZhQ2hpbGQsXG4gIGZhQ2h1cmNoOiBmYUNodXJjaCxcbiAgZmFDaXJjbGU6IGZhQ2lyY2xlLFxuICBmYUNpcmNsZU5vdGNoOiBmYUNpcmNsZU5vdGNoLFxuICBmYUNpdHk6IGZhQ2l0eSxcbiAgZmFDbGluaWNNZWRpY2FsOiBmYUNsaW5pY01lZGljYWwsXG4gIGZhQ2xpcGJvYXJkOiBmYUNsaXBib2FyZCxcbiAgZmFDbGlwYm9hcmRDaGVjazogZmFDbGlwYm9hcmRDaGVjayxcbiAgZmFDbGlwYm9hcmRMaXN0OiBmYUNsaXBib2FyZExpc3QsXG4gIGZhQ2xvY2s6IGZhQ2xvY2ssXG4gIGZhQ2xvbmU6IGZhQ2xvbmUsXG4gIGZhQ2xvc2VkQ2FwdGlvbmluZzogZmFDbG9zZWRDYXB0aW9uaW5nLFxuICBmYUNsb3VkOiBmYUNsb3VkLFxuICBmYUNsb3VkRG93bmxvYWRBbHQ6IGZhQ2xvdWREb3dubG9hZEFsdCxcbiAgZmFDbG91ZE1lYXRiYWxsOiBmYUNsb3VkTWVhdGJhbGwsXG4gIGZhQ2xvdWRNb29uOiBmYUNsb3VkTW9vbixcbiAgZmFDbG91ZE1vb25SYWluOiBmYUNsb3VkTW9vblJhaW4sXG4gIGZhQ2xvdWRSYWluOiBmYUNsb3VkUmFpbixcbiAgZmFDbG91ZFNob3dlcnNIZWF2eTogZmFDbG91ZFNob3dlcnNIZWF2eSxcbiAgZmFDbG91ZFN1bjogZmFDbG91ZFN1bixcbiAgZmFDbG91ZFN1blJhaW46IGZhQ2xvdWRTdW5SYWluLFxuICBmYUNsb3VkVXBsb2FkQWx0OiBmYUNsb3VkVXBsb2FkQWx0LFxuICBmYUNvY2t0YWlsOiBmYUNvY2t0YWlsLFxuICBmYUNvZGU6IGZhQ29kZSxcbiAgZmFDb2RlQnJhbmNoOiBmYUNvZGVCcmFuY2gsXG4gIGZhQ29mZmVlOiBmYUNvZmZlZSxcbiAgZmFDb2c6IGZhQ29nLFxuICBmYUNvZ3M6IGZhQ29ncyxcbiAgZmFDb2luczogZmFDb2lucyxcbiAgZmFDb2x1bW5zOiBmYUNvbHVtbnMsXG4gIGZhQ29tbWVudDogZmFDb21tZW50LFxuICBmYUNvbW1lbnRBbHQ6IGZhQ29tbWVudEFsdCxcbiAgZmFDb21tZW50RG9sbGFyOiBmYUNvbW1lbnREb2xsYXIsXG4gIGZhQ29tbWVudERvdHM6IGZhQ29tbWVudERvdHMsXG4gIGZhQ29tbWVudE1lZGljYWw6IGZhQ29tbWVudE1lZGljYWwsXG4gIGZhQ29tbWVudFNsYXNoOiBmYUNvbW1lbnRTbGFzaCxcbiAgZmFDb21tZW50czogZmFDb21tZW50cyxcbiAgZmFDb21tZW50c0RvbGxhcjogZmFDb21tZW50c0RvbGxhcixcbiAgZmFDb21wYWN0RGlzYzogZmFDb21wYWN0RGlzYyxcbiAgZmFDb21wYXNzOiBmYUNvbXBhc3MsXG4gIGZhQ29tcHJlc3M6IGZhQ29tcHJlc3MsXG4gIGZhQ29tcHJlc3NBcnJvd3NBbHQ6IGZhQ29tcHJlc3NBcnJvd3NBbHQsXG4gIGZhQ29uY2llcmdlQmVsbDogZmFDb25jaWVyZ2VCZWxsLFxuICBmYUNvb2tpZTogZmFDb29raWUsXG4gIGZhQ29va2llQml0ZTogZmFDb29raWVCaXRlLFxuICBmYUNvcHk6IGZhQ29weSxcbiAgZmFDb3B5cmlnaHQ6IGZhQ29weXJpZ2h0LFxuICBmYUNvdWNoOiBmYUNvdWNoLFxuICBmYUNyZWRpdENhcmQ6IGZhQ3JlZGl0Q2FyZCxcbiAgZmFDcm9wOiBmYUNyb3AsXG4gIGZhQ3JvcEFsdDogZmFDcm9wQWx0LFxuICBmYUNyb3NzOiBmYUNyb3NzLFxuICBmYUNyb3NzaGFpcnM6IGZhQ3Jvc3NoYWlycyxcbiAgZmFDcm93OiBmYUNyb3csXG4gIGZhQ3Jvd246IGZhQ3Jvd24sXG4gIGZhQ3J1dGNoOiBmYUNydXRjaCxcbiAgZmFDdWJlOiBmYUN1YmUsXG4gIGZhQ3ViZXM6IGZhQ3ViZXMsXG4gIGZhQ3V0OiBmYUN1dCxcbiAgZmFEYXRhYmFzZTogZmFEYXRhYmFzZSxcbiAgZmFEZWFmOiBmYURlYWYsXG4gIGZhRGVtb2NyYXQ6IGZhRGVtb2NyYXQsXG4gIGZhRGVza3RvcDogZmFEZXNrdG9wLFxuICBmYURoYXJtYWNoYWtyYTogZmFEaGFybWFjaGFrcmEsXG4gIGZhRGlhZ25vc2VzOiBmYURpYWdub3NlcyxcbiAgZmFEaWNlOiBmYURpY2UsXG4gIGZhRGljZUQyMDogZmFEaWNlRDIwLFxuICBmYURpY2VENjogZmFEaWNlRDYsXG4gIGZhRGljZUZpdmU6IGZhRGljZUZpdmUsXG4gIGZhRGljZUZvdXI6IGZhRGljZUZvdXIsXG4gIGZhRGljZU9uZTogZmFEaWNlT25lLFxuICBmYURpY2VTaXg6IGZhRGljZVNpeCxcbiAgZmFEaWNlVGhyZWU6IGZhRGljZVRocmVlLFxuICBmYURpY2VUd286IGZhRGljZVR3byxcbiAgZmFEaWdpdGFsVGFjaG9ncmFwaDogZmFEaWdpdGFsVGFjaG9ncmFwaCxcbiAgZmFEaXJlY3Rpb25zOiBmYURpcmVjdGlvbnMsXG4gIGZhRGl2aWRlOiBmYURpdmlkZSxcbiAgZmFEaXp6eTogZmFEaXp6eSxcbiAgZmFEbmE6IGZhRG5hLFxuICBmYURvZzogZmFEb2csXG4gIGZhRG9sbGFyU2lnbjogZmFEb2xsYXJTaWduLFxuICBmYURvbGx5OiBmYURvbGx5LFxuICBmYURvbGx5RmxhdGJlZDogZmFEb2xseUZsYXRiZWQsXG4gIGZhRG9uYXRlOiBmYURvbmF0ZSxcbiAgZmFEb29yQ2xvc2VkOiBmYURvb3JDbG9zZWQsXG4gIGZhRG9vck9wZW46IGZhRG9vck9wZW4sXG4gIGZhRG90Q2lyY2xlOiBmYURvdENpcmNsZSxcbiAgZmFEb3ZlOiBmYURvdmUsXG4gIGZhRG93bmxvYWQ6IGZhRG93bmxvYWQsXG4gIGZhRHJhZnRpbmdDb21wYXNzOiBmYURyYWZ0aW5nQ29tcGFzcyxcbiAgZmFEcmFnb246IGZhRHJhZ29uLFxuICBmYURyYXdQb2x5Z29uOiBmYURyYXdQb2x5Z29uLFxuICBmYURydW06IGZhRHJ1bSxcbiAgZmFEcnVtU3RlZWxwYW46IGZhRHJ1bVN0ZWVscGFuLFxuICBmYURydW1zdGlja0JpdGU6IGZhRHJ1bXN0aWNrQml0ZSxcbiAgZmFEdW1iYmVsbDogZmFEdW1iYmVsbCxcbiAgZmFEdW1wc3RlcjogZmFEdW1wc3RlcixcbiAgZmFEdW1wc3RlckZpcmU6IGZhRHVtcHN0ZXJGaXJlLFxuICBmYUR1bmdlb246IGZhRHVuZ2VvbixcbiAgZmFFZGl0OiBmYUVkaXQsXG4gIGZhRWdnOiBmYUVnZyxcbiAgZmFFamVjdDogZmFFamVjdCxcbiAgZmFFbGxpcHNpc0g6IGZhRWxsaXBzaXNILFxuICBmYUVsbGlwc2lzVjogZmFFbGxpcHNpc1YsXG4gIGZhRW52ZWxvcGU6IGZhRW52ZWxvcGUsXG4gIGZhRW52ZWxvcGVPcGVuOiBmYUVudmVsb3BlT3BlbixcbiAgZmFFbnZlbG9wZU9wZW5UZXh0OiBmYUVudmVsb3BlT3BlblRleHQsXG4gIGZhRW52ZWxvcGVTcXVhcmU6IGZhRW52ZWxvcGVTcXVhcmUsXG4gIGZhRXF1YWxzOiBmYUVxdWFscyxcbiAgZmFFcmFzZXI6IGZhRXJhc2VyLFxuICBmYUV0aGVybmV0OiBmYUV0aGVybmV0LFxuICBmYUV1cm9TaWduOiBmYUV1cm9TaWduLFxuICBmYUV4Y2hhbmdlQWx0OiBmYUV4Y2hhbmdlQWx0LFxuICBmYUV4Y2xhbWF0aW9uOiBmYUV4Y2xhbWF0aW9uLFxuICBmYUV4Y2xhbWF0aW9uQ2lyY2xlOiBmYUV4Y2xhbWF0aW9uQ2lyY2xlLFxuICBmYUV4Y2xhbWF0aW9uVHJpYW5nbGU6IGZhRXhjbGFtYXRpb25UcmlhbmdsZSxcbiAgZmFFeHBhbmQ6IGZhRXhwYW5kLFxuICBmYUV4cGFuZEFycm93c0FsdDogZmFFeHBhbmRBcnJvd3NBbHQsXG4gIGZhRXh0ZXJuYWxMaW5rQWx0OiBmYUV4dGVybmFsTGlua0FsdCxcbiAgZmFFeHRlcm5hbExpbmtTcXVhcmVBbHQ6IGZhRXh0ZXJuYWxMaW5rU3F1YXJlQWx0LFxuICBmYUV5ZTogZmFFeWUsXG4gIGZhRXllRHJvcHBlcjogZmFFeWVEcm9wcGVyLFxuICBmYUV5ZVNsYXNoOiBmYUV5ZVNsYXNoLFxuICBmYUZhbjogZmFGYW4sXG4gIGZhRmFzdEJhY2t3YXJkOiBmYUZhc3RCYWNrd2FyZCxcbiAgZmFGYXN0Rm9yd2FyZDogZmFGYXN0Rm9yd2FyZCxcbiAgZmFGYXg6IGZhRmF4LFxuICBmYUZlYXRoZXI6IGZhRmVhdGhlcixcbiAgZmFGZWF0aGVyQWx0OiBmYUZlYXRoZXJBbHQsXG4gIGZhRmVtYWxlOiBmYUZlbWFsZSxcbiAgZmFGaWdodGVySmV0OiBmYUZpZ2h0ZXJKZXQsXG4gIGZhRmlsZTogZmFGaWxlLFxuICBmYUZpbGVBbHQ6IGZhRmlsZUFsdCxcbiAgZmFGaWxlQXJjaGl2ZTogZmFGaWxlQXJjaGl2ZSxcbiAgZmFGaWxlQXVkaW86IGZhRmlsZUF1ZGlvLFxuICBmYUZpbGVDb2RlOiBmYUZpbGVDb2RlLFxuICBmYUZpbGVDb250cmFjdDogZmFGaWxlQ29udHJhY3QsXG4gIGZhRmlsZUNzdjogZmFGaWxlQ3N2LFxuICBmYUZpbGVEb3dubG9hZDogZmFGaWxlRG93bmxvYWQsXG4gIGZhRmlsZUV4Y2VsOiBmYUZpbGVFeGNlbCxcbiAgZmFGaWxlRXhwb3J0OiBmYUZpbGVFeHBvcnQsXG4gIGZhRmlsZUltYWdlOiBmYUZpbGVJbWFnZSxcbiAgZmFGaWxlSW1wb3J0OiBmYUZpbGVJbXBvcnQsXG4gIGZhRmlsZUludm9pY2U6IGZhRmlsZUludm9pY2UsXG4gIGZhRmlsZUludm9pY2VEb2xsYXI6IGZhRmlsZUludm9pY2VEb2xsYXIsXG4gIGZhRmlsZU1lZGljYWw6IGZhRmlsZU1lZGljYWwsXG4gIGZhRmlsZU1lZGljYWxBbHQ6IGZhRmlsZU1lZGljYWxBbHQsXG4gIGZhRmlsZVBkZjogZmFGaWxlUGRmLFxuICBmYUZpbGVQb3dlcnBvaW50OiBmYUZpbGVQb3dlcnBvaW50LFxuICBmYUZpbGVQcmVzY3JpcHRpb246IGZhRmlsZVByZXNjcmlwdGlvbixcbiAgZmFGaWxlU2lnbmF0dXJlOiBmYUZpbGVTaWduYXR1cmUsXG4gIGZhRmlsZVVwbG9hZDogZmFGaWxlVXBsb2FkLFxuICBmYUZpbGVWaWRlbzogZmFGaWxlVmlkZW8sXG4gIGZhRmlsZVdvcmQ6IGZhRmlsZVdvcmQsXG4gIGZhRmlsbDogZmFGaWxsLFxuICBmYUZpbGxEcmlwOiBmYUZpbGxEcmlwLFxuICBmYUZpbG06IGZhRmlsbSxcbiAgZmFGaWx0ZXI6IGZhRmlsdGVyLFxuICBmYUZpbmdlcnByaW50OiBmYUZpbmdlcnByaW50LFxuICBmYUZpcmU6IGZhRmlyZSxcbiAgZmFGaXJlQWx0OiBmYUZpcmVBbHQsXG4gIGZhRmlyZUV4dGluZ3Vpc2hlcjogZmFGaXJlRXh0aW5ndWlzaGVyLFxuICBmYUZpcnN0QWlkOiBmYUZpcnN0QWlkLFxuICBmYUZpc2g6IGZhRmlzaCxcbiAgZmFGaXN0UmFpc2VkOiBmYUZpc3RSYWlzZWQsXG4gIGZhRmxhZzogZmFGbGFnLFxuICBmYUZsYWdDaGVja2VyZWQ6IGZhRmxhZ0NoZWNrZXJlZCxcbiAgZmFGbGFnVXNhOiBmYUZsYWdVc2EsXG4gIGZhRmxhc2s6IGZhRmxhc2ssXG4gIGZhRmx1c2hlZDogZmFGbHVzaGVkLFxuICBmYUZvbGRlcjogZmFGb2xkZXIsXG4gIGZhRm9sZGVyTWludXM6IGZhRm9sZGVyTWludXMsXG4gIGZhRm9sZGVyT3BlbjogZmFGb2xkZXJPcGVuLFxuICBmYUZvbGRlclBsdXM6IGZhRm9sZGVyUGx1cyxcbiAgZmFGb250OiBmYUZvbnQsXG4gIGZhRm9udEF3ZXNvbWVMb2dvRnVsbDogZmFGb250QXdlc29tZUxvZ29GdWxsLFxuICBmYUZvb3RiYWxsQmFsbDogZmFGb290YmFsbEJhbGwsXG4gIGZhRm9yd2FyZDogZmFGb3J3YXJkLFxuICBmYUZyb2c6IGZhRnJvZyxcbiAgZmFGcm93bjogZmFGcm93bixcbiAgZmFGcm93bk9wZW46IGZhRnJvd25PcGVuLFxuICBmYUZ1bm5lbERvbGxhcjogZmFGdW5uZWxEb2xsYXIsXG4gIGZhRnV0Ym9sOiBmYUZ1dGJvbCxcbiAgZmFHYW1lcGFkOiBmYUdhbWVwYWQsXG4gIGZhR2FzUHVtcDogZmFHYXNQdW1wLFxuICBmYUdhdmVsOiBmYUdhdmVsLFxuICBmYUdlbTogZmFHZW0sXG4gIGZhR2VuZGVybGVzczogZmFHZW5kZXJsZXNzLFxuICBmYUdob3N0OiBmYUdob3N0LFxuICBmYUdpZnQ6IGZhR2lmdCxcbiAgZmFHaWZ0czogZmFHaWZ0cyxcbiAgZmFHbGFzc0NoZWVyczogZmFHbGFzc0NoZWVycyxcbiAgZmFHbGFzc01hcnRpbmk6IGZhR2xhc3NNYXJ0aW5pLFxuICBmYUdsYXNzTWFydGluaUFsdDogZmFHbGFzc01hcnRpbmlBbHQsXG4gIGZhR2xhc3NXaGlza2V5OiBmYUdsYXNzV2hpc2tleSxcbiAgZmFHbGFzc2VzOiBmYUdsYXNzZXMsXG4gIGZhR2xvYmU6IGZhR2xvYmUsXG4gIGZhR2xvYmVBZnJpY2E6IGZhR2xvYmVBZnJpY2EsXG4gIGZhR2xvYmVBbWVyaWNhczogZmFHbG9iZUFtZXJpY2FzLFxuICBmYUdsb2JlQXNpYTogZmFHbG9iZUFzaWEsXG4gIGZhR2xvYmVFdXJvcGU6IGZhR2xvYmVFdXJvcGUsXG4gIGZhR29sZkJhbGw6IGZhR29sZkJhbGwsXG4gIGZhR29wdXJhbTogZmFHb3B1cmFtLFxuICBmYUdyYWR1YXRpb25DYXA6IGZhR3JhZHVhdGlvbkNhcCxcbiAgZmFHcmVhdGVyVGhhbjogZmFHcmVhdGVyVGhhbixcbiAgZmFHcmVhdGVyVGhhbkVxdWFsOiBmYUdyZWF0ZXJUaGFuRXF1YWwsXG4gIGZhR3JpbWFjZTogZmFHcmltYWNlLFxuICBmYUdyaW46IGZhR3JpbixcbiAgZmFHcmluQWx0OiBmYUdyaW5BbHQsXG4gIGZhR3JpbkJlYW06IGZhR3JpbkJlYW0sXG4gIGZhR3JpbkJlYW1Td2VhdDogZmFHcmluQmVhbVN3ZWF0LFxuICBmYUdyaW5IZWFydHM6IGZhR3JpbkhlYXJ0cyxcbiAgZmFHcmluU3F1aW50OiBmYUdyaW5TcXVpbnQsXG4gIGZhR3JpblNxdWludFRlYXJzOiBmYUdyaW5TcXVpbnRUZWFycyxcbiAgZmFHcmluU3RhcnM6IGZhR3JpblN0YXJzLFxuICBmYUdyaW5UZWFyczogZmFHcmluVGVhcnMsXG4gIGZhR3JpblRvbmd1ZTogZmFHcmluVG9uZ3VlLFxuICBmYUdyaW5Ub25ndWVTcXVpbnQ6IGZhR3JpblRvbmd1ZVNxdWludCxcbiAgZmFHcmluVG9uZ3VlV2luazogZmFHcmluVG9uZ3VlV2luayxcbiAgZmFHcmluV2luazogZmFHcmluV2luayxcbiAgZmFHcmlwSG9yaXpvbnRhbDogZmFHcmlwSG9yaXpvbnRhbCxcbiAgZmFHcmlwTGluZXM6IGZhR3JpcExpbmVzLFxuICBmYUdyaXBMaW5lc1ZlcnRpY2FsOiBmYUdyaXBMaW5lc1ZlcnRpY2FsLFxuICBmYUdyaXBWZXJ0aWNhbDogZmFHcmlwVmVydGljYWwsXG4gIGZhR3VpdGFyOiBmYUd1aXRhcixcbiAgZmFIU3F1YXJlOiBmYUhTcXVhcmUsXG4gIGZhSGFtYnVyZ2VyOiBmYUhhbWJ1cmdlcixcbiAgZmFIYW1tZXI6IGZhSGFtbWVyLFxuICBmYUhhbXNhOiBmYUhhbXNhLFxuICBmYUhhbmRIb2xkaW5nOiBmYUhhbmRIb2xkaW5nLFxuICBmYUhhbmRIb2xkaW5nSGVhcnQ6IGZhSGFuZEhvbGRpbmdIZWFydCxcbiAgZmFIYW5kSG9sZGluZ1VzZDogZmFIYW5kSG9sZGluZ1VzZCxcbiAgZmFIYW5kTGl6YXJkOiBmYUhhbmRMaXphcmQsXG4gIGZhSGFuZE1pZGRsZUZpbmdlcjogZmFIYW5kTWlkZGxlRmluZ2VyLFxuICBmYUhhbmRQYXBlcjogZmFIYW5kUGFwZXIsXG4gIGZhSGFuZFBlYWNlOiBmYUhhbmRQZWFjZSxcbiAgZmFIYW5kUG9pbnREb3duOiBmYUhhbmRQb2ludERvd24sXG4gIGZhSGFuZFBvaW50TGVmdDogZmFIYW5kUG9pbnRMZWZ0LFxuICBmYUhhbmRQb2ludFJpZ2h0OiBmYUhhbmRQb2ludFJpZ2h0LFxuICBmYUhhbmRQb2ludFVwOiBmYUhhbmRQb2ludFVwLFxuICBmYUhhbmRQb2ludGVyOiBmYUhhbmRQb2ludGVyLFxuICBmYUhhbmRSb2NrOiBmYUhhbmRSb2NrLFxuICBmYUhhbmRTY2lzc29yczogZmFIYW5kU2Npc3NvcnMsXG4gIGZhSGFuZFNwb2NrOiBmYUhhbmRTcG9jayxcbiAgZmFIYW5kczogZmFIYW5kcyxcbiAgZmFIYW5kc0hlbHBpbmc6IGZhSGFuZHNIZWxwaW5nLFxuICBmYUhhbmRzaGFrZTogZmFIYW5kc2hha2UsXG4gIGZhSGFudWtpYWg6IGZhSGFudWtpYWgsXG4gIGZhSGFyZEhhdDogZmFIYXJkSGF0LFxuICBmYUhhc2h0YWc6IGZhSGFzaHRhZyxcbiAgZmFIYXRDb3dib3k6IGZhSGF0Q293Ym95LFxuICBmYUhhdENvd2JveVNpZGU6IGZhSGF0Q293Ym95U2lkZSxcbiAgZmFIYXRXaXphcmQ6IGZhSGF0V2l6YXJkLFxuICBmYUhheWthbDogZmFIYXlrYWwsXG4gIGZhSGRkOiBmYUhkZCxcbiAgZmFIZWFkaW5nOiBmYUhlYWRpbmcsXG4gIGZhSGVhZHBob25lczogZmFIZWFkcGhvbmVzLFxuICBmYUhlYWRwaG9uZXNBbHQ6IGZhSGVhZHBob25lc0FsdCxcbiAgZmFIZWFkc2V0OiBmYUhlYWRzZXQsXG4gIGZhSGVhcnQ6IGZhSGVhcnQsXG4gIGZhSGVhcnRCcm9rZW46IGZhSGVhcnRCcm9rZW4sXG4gIGZhSGVhcnRiZWF0OiBmYUhlYXJ0YmVhdCxcbiAgZmFIZWxpY29wdGVyOiBmYUhlbGljb3B0ZXIsXG4gIGZhSGlnaGxpZ2h0ZXI6IGZhSGlnaGxpZ2h0ZXIsXG4gIGZhSGlraW5nOiBmYUhpa2luZyxcbiAgZmFIaXBwbzogZmFIaXBwbyxcbiAgZmFIaXN0b3J5OiBmYUhpc3RvcnksXG4gIGZhSG9ja2V5UHVjazogZmFIb2NrZXlQdWNrLFxuICBmYUhvbGx5QmVycnk6IGZhSG9sbHlCZXJyeSxcbiAgZmFIb21lOiBmYUhvbWUsXG4gIGZhSG9yc2U6IGZhSG9yc2UsXG4gIGZhSG9yc2VIZWFkOiBmYUhvcnNlSGVhZCxcbiAgZmFIb3NwaXRhbDogZmFIb3NwaXRhbCxcbiAgZmFIb3NwaXRhbEFsdDogZmFIb3NwaXRhbEFsdCxcbiAgZmFIb3NwaXRhbFN5bWJvbDogZmFIb3NwaXRhbFN5bWJvbCxcbiAgZmFIb3RUdWI6IGZhSG90VHViLFxuICBmYUhvdGRvZzogZmFIb3Rkb2csXG4gIGZhSG90ZWw6IGZhSG90ZWwsXG4gIGZhSG91cmdsYXNzOiBmYUhvdXJnbGFzcyxcbiAgZmFIb3VyZ2xhc3NFbmQ6IGZhSG91cmdsYXNzRW5kLFxuICBmYUhvdXJnbGFzc0hhbGY6IGZhSG91cmdsYXNzSGFsZixcbiAgZmFIb3VyZ2xhc3NTdGFydDogZmFIb3VyZ2xhc3NTdGFydCxcbiAgZmFIb3VzZURhbWFnZTogZmFIb3VzZURhbWFnZSxcbiAgZmFIcnl2bmlhOiBmYUhyeXZuaWEsXG4gIGZhSUN1cnNvcjogZmFJQ3Vyc29yLFxuICBmYUljZUNyZWFtOiBmYUljZUNyZWFtLFxuICBmYUljaWNsZXM6IGZhSWNpY2xlcyxcbiAgZmFJY29uczogZmFJY29ucyxcbiAgZmFJZEJhZGdlOiBmYUlkQmFkZ2UsXG4gIGZhSWRDYXJkOiBmYUlkQ2FyZCxcbiAgZmFJZENhcmRBbHQ6IGZhSWRDYXJkQWx0LFxuICBmYUlnbG9vOiBmYUlnbG9vLFxuICBmYUltYWdlOiBmYUltYWdlLFxuICBmYUltYWdlczogZmFJbWFnZXMsXG4gIGZhSW5ib3g6IGZhSW5ib3gsXG4gIGZhSW5kZW50OiBmYUluZGVudCxcbiAgZmFJbmR1c3RyeTogZmFJbmR1c3RyeSxcbiAgZmFJbmZpbml0eTogZmFJbmZpbml0eSxcbiAgZmFJbmZvOiBmYUluZm8sXG4gIGZhSW5mb0NpcmNsZTogZmFJbmZvQ2lyY2xlLFxuICBmYUl0YWxpYzogZmFJdGFsaWMsXG4gIGZhSmVkaTogZmFKZWRpLFxuICBmYUpvaW50OiBmYUpvaW50LFxuICBmYUpvdXJuYWxXaGlsbHM6IGZhSm91cm5hbFdoaWxscyxcbiAgZmFLYWFiYTogZmFLYWFiYSxcbiAgZmFLZXk6IGZhS2V5LFxuICBmYUtleWJvYXJkOiBmYUtleWJvYXJkLFxuICBmYUtoYW5kYTogZmFLaGFuZGEsXG4gIGZhS2lzczogZmFLaXNzLFxuICBmYUtpc3NCZWFtOiBmYUtpc3NCZWFtLFxuICBmYUtpc3NXaW5rSGVhcnQ6IGZhS2lzc1dpbmtIZWFydCxcbiAgZmFLaXdpQmlyZDogZmFLaXdpQmlyZCxcbiAgZmFMYW5kbWFyazogZmFMYW5kbWFyayxcbiAgZmFMYW5ndWFnZTogZmFMYW5ndWFnZSxcbiAgZmFMYXB0b3A6IGZhTGFwdG9wLFxuICBmYUxhcHRvcENvZGU6IGZhTGFwdG9wQ29kZSxcbiAgZmFMYXB0b3BNZWRpY2FsOiBmYUxhcHRvcE1lZGljYWwsXG4gIGZhTGF1Z2g6IGZhTGF1Z2gsXG4gIGZhTGF1Z2hCZWFtOiBmYUxhdWdoQmVhbSxcbiAgZmFMYXVnaFNxdWludDogZmFMYXVnaFNxdWludCxcbiAgZmFMYXVnaFdpbms6IGZhTGF1Z2hXaW5rLFxuICBmYUxheWVyR3JvdXA6IGZhTGF5ZXJHcm91cCxcbiAgZmFMZWFmOiBmYUxlYWYsXG4gIGZhTGVtb246IGZhTGVtb24sXG4gIGZhTGVzc1RoYW46IGZhTGVzc1RoYW4sXG4gIGZhTGVzc1RoYW5FcXVhbDogZmFMZXNzVGhhbkVxdWFsLFxuICBmYUxldmVsRG93bkFsdDogZmFMZXZlbERvd25BbHQsXG4gIGZhTGV2ZWxVcEFsdDogZmFMZXZlbFVwQWx0LFxuICBmYUxpZmVSaW5nOiBmYUxpZmVSaW5nLFxuICBmYUxpZ2h0YnVsYjogZmFMaWdodGJ1bGIsXG4gIGZhTGluazogZmFMaW5rLFxuICBmYUxpcmFTaWduOiBmYUxpcmFTaWduLFxuICBmYUxpc3Q6IGZhTGlzdCxcbiAgZmFMaXN0QWx0OiBmYUxpc3RBbHQsXG4gIGZhTGlzdE9sOiBmYUxpc3RPbCxcbiAgZmFMaXN0VWw6IGZhTGlzdFVsLFxuICBmYUxvY2F0aW9uQXJyb3c6IGZhTG9jYXRpb25BcnJvdyxcbiAgZmFMb2NrOiBmYUxvY2ssXG4gIGZhTG9ja09wZW46IGZhTG9ja09wZW4sXG4gIGZhTG9uZ0Fycm93QWx0RG93bjogZmFMb25nQXJyb3dBbHREb3duLFxuICBmYUxvbmdBcnJvd0FsdExlZnQ6IGZhTG9uZ0Fycm93QWx0TGVmdCxcbiAgZmFMb25nQXJyb3dBbHRSaWdodDogZmFMb25nQXJyb3dBbHRSaWdodCxcbiAgZmFMb25nQXJyb3dBbHRVcDogZmFMb25nQXJyb3dBbHRVcCxcbiAgZmFMb3dWaXNpb246IGZhTG93VmlzaW9uLFxuICBmYUx1Z2dhZ2VDYXJ0OiBmYUx1Z2dhZ2VDYXJ0LFxuICBmYU1hZ2ljOiBmYU1hZ2ljLFxuICBmYU1hZ25ldDogZmFNYWduZXQsXG4gIGZhTWFpbEJ1bGs6IGZhTWFpbEJ1bGssXG4gIGZhTWFsZTogZmFNYWxlLFxuICBmYU1hcDogZmFNYXAsXG4gIGZhTWFwTWFya2VkOiBmYU1hcE1hcmtlZCxcbiAgZmFNYXBNYXJrZWRBbHQ6IGZhTWFwTWFya2VkQWx0LFxuICBmYU1hcE1hcmtlcjogZmFNYXBNYXJrZXIsXG4gIGZhTWFwTWFya2VyQWx0OiBmYU1hcE1hcmtlckFsdCxcbiAgZmFNYXBQaW46IGZhTWFwUGluLFxuICBmYU1hcFNpZ25zOiBmYU1hcFNpZ25zLFxuICBmYU1hcmtlcjogZmFNYXJrZXIsXG4gIGZhTWFyczogZmFNYXJzLFxuICBmYU1hcnNEb3VibGU6IGZhTWFyc0RvdWJsZSxcbiAgZmFNYXJzU3Ryb2tlOiBmYU1hcnNTdHJva2UsXG4gIGZhTWFyc1N0cm9rZUg6IGZhTWFyc1N0cm9rZUgsXG4gIGZhTWFyc1N0cm9rZVY6IGZhTWFyc1N0cm9rZVYsXG4gIGZhTWFzazogZmFNYXNrLFxuICBmYU1lZGFsOiBmYU1lZGFsLFxuICBmYU1lZGtpdDogZmFNZWRraXQsXG4gIGZhTWVoOiBmYU1laCxcbiAgZmFNZWhCbGFuazogZmFNZWhCbGFuayxcbiAgZmFNZWhSb2xsaW5nRXllczogZmFNZWhSb2xsaW5nRXllcyxcbiAgZmFNZW1vcnk6IGZhTWVtb3J5LFxuICBmYU1lbm9yYWg6IGZhTWVub3JhaCxcbiAgZmFNZXJjdXJ5OiBmYU1lcmN1cnksXG4gIGZhTWV0ZW9yOiBmYU1ldGVvcixcbiAgZmFNaWNyb2NoaXA6IGZhTWljcm9jaGlwLFxuICBmYU1pY3JvcGhvbmU6IGZhTWljcm9waG9uZSxcbiAgZmFNaWNyb3Bob25lQWx0OiBmYU1pY3JvcGhvbmVBbHQsXG4gIGZhTWljcm9waG9uZUFsdFNsYXNoOiBmYU1pY3JvcGhvbmVBbHRTbGFzaCxcbiAgZmFNaWNyb3Bob25lU2xhc2g6IGZhTWljcm9waG9uZVNsYXNoLFxuICBmYU1pY3Jvc2NvcGU6IGZhTWljcm9zY29wZSxcbiAgZmFNaW51czogZmFNaW51cyxcbiAgZmFNaW51c0NpcmNsZTogZmFNaW51c0NpcmNsZSxcbiAgZmFNaW51c1NxdWFyZTogZmFNaW51c1NxdWFyZSxcbiAgZmFNaXR0ZW46IGZhTWl0dGVuLFxuICBmYU1vYmlsZTogZmFNb2JpbGUsXG4gIGZhTW9iaWxlQWx0OiBmYU1vYmlsZUFsdCxcbiAgZmFNb25leUJpbGw6IGZhTW9uZXlCaWxsLFxuICBmYU1vbmV5QmlsbEFsdDogZmFNb25leUJpbGxBbHQsXG4gIGZhTW9uZXlCaWxsV2F2ZTogZmFNb25leUJpbGxXYXZlLFxuICBmYU1vbmV5QmlsbFdhdmVBbHQ6IGZhTW9uZXlCaWxsV2F2ZUFsdCxcbiAgZmFNb25leUNoZWNrOiBmYU1vbmV5Q2hlY2ssXG4gIGZhTW9uZXlDaGVja0FsdDogZmFNb25leUNoZWNrQWx0LFxuICBmYU1vbnVtZW50OiBmYU1vbnVtZW50LFxuICBmYU1vb246IGZhTW9vbixcbiAgZmFNb3J0YXJQZXN0bGU6IGZhTW9ydGFyUGVzdGxlLFxuICBmYU1vc3F1ZTogZmFNb3NxdWUsXG4gIGZhTW90b3JjeWNsZTogZmFNb3RvcmN5Y2xlLFxuICBmYU1vdW50YWluOiBmYU1vdW50YWluLFxuICBmYU1vdXNlOiBmYU1vdXNlLFxuICBmYU1vdXNlUG9pbnRlcjogZmFNb3VzZVBvaW50ZXIsXG4gIGZhTXVnSG90OiBmYU11Z0hvdCxcbiAgZmFNdXNpYzogZmFNdXNpYyxcbiAgZmFOZXR3b3JrV2lyZWQ6IGZhTmV0d29ya1dpcmVkLFxuICBmYU5ldXRlcjogZmFOZXV0ZXIsXG4gIGZhTmV3c3BhcGVyOiBmYU5ld3NwYXBlcixcbiAgZmFOb3RFcXVhbDogZmFOb3RFcXVhbCxcbiAgZmFOb3Rlc01lZGljYWw6IGZhTm90ZXNNZWRpY2FsLFxuICBmYU9iamVjdEdyb3VwOiBmYU9iamVjdEdyb3VwLFxuICBmYU9iamVjdFVuZ3JvdXA6IGZhT2JqZWN0VW5ncm91cCxcbiAgZmFPaWxDYW46IGZhT2lsQ2FuLFxuICBmYU9tOiBmYU9tLFxuICBmYU90dGVyOiBmYU90dGVyLFxuICBmYU91dGRlbnQ6IGZhT3V0ZGVudCxcbiAgZmFQYWdlcjogZmFQYWdlcixcbiAgZmFQYWludEJydXNoOiBmYVBhaW50QnJ1c2gsXG4gIGZhUGFpbnRSb2xsZXI6IGZhUGFpbnRSb2xsZXIsXG4gIGZhUGFsZXR0ZTogZmFQYWxldHRlLFxuICBmYVBhbGxldDogZmFQYWxsZXQsXG4gIGZhUGFwZXJQbGFuZTogZmFQYXBlclBsYW5lLFxuICBmYVBhcGVyY2xpcDogZmFQYXBlcmNsaXAsXG4gIGZhUGFyYWNodXRlQm94OiBmYVBhcmFjaHV0ZUJveCxcbiAgZmFQYXJhZ3JhcGg6IGZhUGFyYWdyYXBoLFxuICBmYVBhcmtpbmc6IGZhUGFya2luZyxcbiAgZmFQYXNzcG9ydDogZmFQYXNzcG9ydCxcbiAgZmFQYXN0YWZhcmlhbmlzbTogZmFQYXN0YWZhcmlhbmlzbSxcbiAgZmFQYXN0ZTogZmFQYXN0ZSxcbiAgZmFQYXVzZTogZmFQYXVzZSxcbiAgZmFQYXVzZUNpcmNsZTogZmFQYXVzZUNpcmNsZSxcbiAgZmFQYXc6IGZhUGF3LFxuICBmYVBlYWNlOiBmYVBlYWNlLFxuICBmYVBlbjogZmFQZW4sXG4gIGZhUGVuQWx0OiBmYVBlbkFsdCxcbiAgZmFQZW5GYW5jeTogZmFQZW5GYW5jeSxcbiAgZmFQZW5OaWI6IGZhUGVuTmliLFxuICBmYVBlblNxdWFyZTogZmFQZW5TcXVhcmUsXG4gIGZhUGVuY2lsQWx0OiBmYVBlbmNpbEFsdCxcbiAgZmFQZW5jaWxSdWxlcjogZmFQZW5jaWxSdWxlcixcbiAgZmFQZW9wbGVDYXJyeTogZmFQZW9wbGVDYXJyeSxcbiAgZmFQZXBwZXJIb3Q6IGZhUGVwcGVySG90LFxuICBmYVBlcmNlbnQ6IGZhUGVyY2VudCxcbiAgZmFQZXJjZW50YWdlOiBmYVBlcmNlbnRhZ2UsXG4gIGZhUGVyc29uQm9vdGg6IGZhUGVyc29uQm9vdGgsXG4gIGZhUGhvbmU6IGZhUGhvbmUsXG4gIGZhUGhvbmVBbHQ6IGZhUGhvbmVBbHQsXG4gIGZhUGhvbmVTbGFzaDogZmFQaG9uZVNsYXNoLFxuICBmYVBob25lU3F1YXJlOiBmYVBob25lU3F1YXJlLFxuICBmYVBob25lU3F1YXJlQWx0OiBmYVBob25lU3F1YXJlQWx0LFxuICBmYVBob25lVm9sdW1lOiBmYVBob25lVm9sdW1lLFxuICBmYVBob3RvVmlkZW86IGZhUGhvdG9WaWRlbyxcbiAgZmFQaWdneUJhbms6IGZhUGlnZ3lCYW5rLFxuICBmYVBpbGxzOiBmYVBpbGxzLFxuICBmYVBpenphU2xpY2U6IGZhUGl6emFTbGljZSxcbiAgZmFQbGFjZU9mV29yc2hpcDogZmFQbGFjZU9mV29yc2hpcCxcbiAgZmFQbGFuZTogZmFQbGFuZSxcbiAgZmFQbGFuZUFycml2YWw6IGZhUGxhbmVBcnJpdmFsLFxuICBmYVBsYW5lRGVwYXJ0dXJlOiBmYVBsYW5lRGVwYXJ0dXJlLFxuICBmYVBsYXk6IGZhUGxheSxcbiAgZmFQbGF5Q2lyY2xlOiBmYVBsYXlDaXJjbGUsXG4gIGZhUGx1ZzogZmFQbHVnLFxuICBmYVBsdXM6IGZhUGx1cyxcbiAgZmFQbHVzQ2lyY2xlOiBmYVBsdXNDaXJjbGUsXG4gIGZhUGx1c1NxdWFyZTogZmFQbHVzU3F1YXJlLFxuICBmYVBvZGNhc3Q6IGZhUG9kY2FzdCxcbiAgZmFQb2xsOiBmYVBvbGwsXG4gIGZhUG9sbEg6IGZhUG9sbEgsXG4gIGZhUG9vOiBmYVBvbyxcbiAgZmFQb29TdG9ybTogZmFQb29TdG9ybSxcbiAgZmFQb29wOiBmYVBvb3AsXG4gIGZhUG9ydHJhaXQ6IGZhUG9ydHJhaXQsXG4gIGZhUG91bmRTaWduOiBmYVBvdW5kU2lnbixcbiAgZmFQb3dlck9mZjogZmFQb3dlck9mZixcbiAgZmFQcmF5OiBmYVByYXksXG4gIGZhUHJheWluZ0hhbmRzOiBmYVByYXlpbmdIYW5kcyxcbiAgZmFQcmVzY3JpcHRpb246IGZhUHJlc2NyaXB0aW9uLFxuICBmYVByZXNjcmlwdGlvbkJvdHRsZTogZmFQcmVzY3JpcHRpb25Cb3R0bGUsXG4gIGZhUHJlc2NyaXB0aW9uQm90dGxlQWx0OiBmYVByZXNjcmlwdGlvbkJvdHRsZUFsdCxcbiAgZmFQcmludDogZmFQcmludCxcbiAgZmFQcm9jZWR1cmVzOiBmYVByb2NlZHVyZXMsXG4gIGZhUHJvamVjdERpYWdyYW06IGZhUHJvamVjdERpYWdyYW0sXG4gIGZhUHV6emxlUGllY2U6IGZhUHV6emxlUGllY2UsXG4gIGZhUXJjb2RlOiBmYVFyY29kZSxcbiAgZmFRdWVzdGlvbjogZmFRdWVzdGlvbixcbiAgZmFRdWVzdGlvbkNpcmNsZTogZmFRdWVzdGlvbkNpcmNsZSxcbiAgZmFRdWlkZGl0Y2g6IGZhUXVpZGRpdGNoLFxuICBmYVF1b3RlTGVmdDogZmFRdW90ZUxlZnQsXG4gIGZhUXVvdGVSaWdodDogZmFRdW90ZVJpZ2h0LFxuICBmYVF1cmFuOiBmYVF1cmFuLFxuICBmYVJhZGlhdGlvbjogZmFSYWRpYXRpb24sXG4gIGZhUmFkaWF0aW9uQWx0OiBmYVJhZGlhdGlvbkFsdCxcbiAgZmFSYWluYm93OiBmYVJhaW5ib3csXG4gIGZhUmFuZG9tOiBmYVJhbmRvbSxcbiAgZmFSZWNlaXB0OiBmYVJlY2VpcHQsXG4gIGZhUmVjb3JkVmlueWw6IGZhUmVjb3JkVmlueWwsXG4gIGZhUmVjeWNsZTogZmFSZWN5Y2xlLFxuICBmYVJlZG86IGZhUmVkbyxcbiAgZmFSZWRvQWx0OiBmYVJlZG9BbHQsXG4gIGZhUmVnaXN0ZXJlZDogZmFSZWdpc3RlcmVkLFxuICBmYVJlbW92ZUZvcm1hdDogZmFSZW1vdmVGb3JtYXQsXG4gIGZhUmVwbHk6IGZhUmVwbHksXG4gIGZhUmVwbHlBbGw6IGZhUmVwbHlBbGwsXG4gIGZhUmVwdWJsaWNhbjogZmFSZXB1YmxpY2FuLFxuICBmYVJlc3Ryb29tOiBmYVJlc3Ryb29tLFxuICBmYVJldHdlZXQ6IGZhUmV0d2VldCxcbiAgZmFSaWJib246IGZhUmliYm9uLFxuICBmYVJpbmc6IGZhUmluZyxcbiAgZmFSb2FkOiBmYVJvYWQsXG4gIGZhUm9ib3Q6IGZhUm9ib3QsXG4gIGZhUm9ja2V0OiBmYVJvY2tldCxcbiAgZmFSb3V0ZTogZmFSb3V0ZSxcbiAgZmFSc3M6IGZhUnNzLFxuICBmYVJzc1NxdWFyZTogZmFSc3NTcXVhcmUsXG4gIGZhUnVibGVTaWduOiBmYVJ1YmxlU2lnbixcbiAgZmFSdWxlcjogZmFSdWxlcixcbiAgZmFSdWxlckNvbWJpbmVkOiBmYVJ1bGVyQ29tYmluZWQsXG4gIGZhUnVsZXJIb3Jpem9udGFsOiBmYVJ1bGVySG9yaXpvbnRhbCxcbiAgZmFSdWxlclZlcnRpY2FsOiBmYVJ1bGVyVmVydGljYWwsXG4gIGZhUnVubmluZzogZmFSdW5uaW5nLFxuICBmYVJ1cGVlU2lnbjogZmFSdXBlZVNpZ24sXG4gIGZhU2FkQ3J5OiBmYVNhZENyeSxcbiAgZmFTYWRUZWFyOiBmYVNhZFRlYXIsXG4gIGZhU2F0ZWxsaXRlOiBmYVNhdGVsbGl0ZSxcbiAgZmFTYXRlbGxpdGVEaXNoOiBmYVNhdGVsbGl0ZURpc2gsXG4gIGZhU2F2ZTogZmFTYXZlLFxuICBmYVNjaG9vbDogZmFTY2hvb2wsXG4gIGZhU2NyZXdkcml2ZXI6IGZhU2NyZXdkcml2ZXIsXG4gIGZhU2Nyb2xsOiBmYVNjcm9sbCxcbiAgZmFTZENhcmQ6IGZhU2RDYXJkLFxuICBmYVNlYXJjaDogZmFTZWFyY2gsXG4gIGZhU2VhcmNoRG9sbGFyOiBmYVNlYXJjaERvbGxhcixcbiAgZmFTZWFyY2hMb2NhdGlvbjogZmFTZWFyY2hMb2NhdGlvbixcbiAgZmFTZWFyY2hNaW51czogZmFTZWFyY2hNaW51cyxcbiAgZmFTZWFyY2hQbHVzOiBmYVNlYXJjaFBsdXMsXG4gIGZhU2VlZGxpbmc6IGZhU2VlZGxpbmcsXG4gIGZhU2VydmVyOiBmYVNlcnZlcixcbiAgZmFTaGFwZXM6IGZhU2hhcGVzLFxuICBmYVNoYXJlOiBmYVNoYXJlLFxuICBmYVNoYXJlQWx0OiBmYVNoYXJlQWx0LFxuICBmYVNoYXJlQWx0U3F1YXJlOiBmYVNoYXJlQWx0U3F1YXJlLFxuICBmYVNoYXJlU3F1YXJlOiBmYVNoYXJlU3F1YXJlLFxuICBmYVNoZWtlbFNpZ246IGZhU2hla2VsU2lnbixcbiAgZmFTaGllbGRBbHQ6IGZhU2hpZWxkQWx0LFxuICBmYVNoaXA6IGZhU2hpcCxcbiAgZmFTaGlwcGluZ0Zhc3Q6IGZhU2hpcHBpbmdGYXN0LFxuICBmYVNob2VQcmludHM6IGZhU2hvZVByaW50cyxcbiAgZmFTaG9wcGluZ0JhZzogZmFTaG9wcGluZ0JhZyxcbiAgZmFTaG9wcGluZ0Jhc2tldDogZmFTaG9wcGluZ0Jhc2tldCxcbiAgZmFTaG9wcGluZ0NhcnQ6IGZhU2hvcHBpbmdDYXJ0LFxuICBmYVNob3dlcjogZmFTaG93ZXIsXG4gIGZhU2h1dHRsZVZhbjogZmFTaHV0dGxlVmFuLFxuICBmYVNpZ246IGZhU2lnbixcbiAgZmFTaWduSW5BbHQ6IGZhU2lnbkluQWx0LFxuICBmYVNpZ25MYW5ndWFnZTogZmFTaWduTGFuZ3VhZ2UsXG4gIGZhU2lnbk91dEFsdDogZmFTaWduT3V0QWx0LFxuICBmYVNpZ25hbDogZmFTaWduYWwsXG4gIGZhU2lnbmF0dXJlOiBmYVNpZ25hdHVyZSxcbiAgZmFTaW1DYXJkOiBmYVNpbUNhcmQsXG4gIGZhU2l0ZW1hcDogZmFTaXRlbWFwLFxuICBmYVNrYXRpbmc6IGZhU2thdGluZyxcbiAgZmFTa2lpbmc6IGZhU2tpaW5nLFxuICBmYVNraWluZ05vcmRpYzogZmFTa2lpbmdOb3JkaWMsXG4gIGZhU2t1bGw6IGZhU2t1bGwsXG4gIGZhU2t1bGxDcm9zc2JvbmVzOiBmYVNrdWxsQ3Jvc3Nib25lcyxcbiAgZmFTbGFzaDogZmFTbGFzaCxcbiAgZmFTbGVpZ2g6IGZhU2xlaWdoLFxuICBmYVNsaWRlcnNIOiBmYVNsaWRlcnNILFxuICBmYVNtaWxlOiBmYVNtaWxlLFxuICBmYVNtaWxlQmVhbTogZmFTbWlsZUJlYW0sXG4gIGZhU21pbGVXaW5rOiBmYVNtaWxlV2luayxcbiAgZmFTbW9nOiBmYVNtb2csXG4gIGZhU21va2luZzogZmFTbW9raW5nLFxuICBmYVNtb2tpbmdCYW46IGZhU21va2luZ0JhbixcbiAgZmFTbXM6IGZhU21zLFxuICBmYVNub3dib2FyZGluZzogZmFTbm93Ym9hcmRpbmcsXG4gIGZhU25vd2ZsYWtlOiBmYVNub3dmbGFrZSxcbiAgZmFTbm93bWFuOiBmYVNub3dtYW4sXG4gIGZhU25vd3Bsb3c6IGZhU25vd3Bsb3csXG4gIGZhU29ja3M6IGZhU29ja3MsXG4gIGZhU29sYXJQYW5lbDogZmFTb2xhclBhbmVsLFxuICBmYVNvcnQ6IGZhU29ydCxcbiAgZmFTb3J0QWxwaGFEb3duOiBmYVNvcnRBbHBoYURvd24sXG4gIGZhU29ydEFscGhhRG93bkFsdDogZmFTb3J0QWxwaGFEb3duQWx0LFxuICBmYVNvcnRBbHBoYVVwOiBmYVNvcnRBbHBoYVVwLFxuICBmYVNvcnRBbHBoYVVwQWx0OiBmYVNvcnRBbHBoYVVwQWx0LFxuICBmYVNvcnRBbW91bnREb3duOiBmYVNvcnRBbW91bnREb3duLFxuICBmYVNvcnRBbW91bnREb3duQWx0OiBmYVNvcnRBbW91bnREb3duQWx0LFxuICBmYVNvcnRBbW91bnRVcDogZmFTb3J0QW1vdW50VXAsXG4gIGZhU29ydEFtb3VudFVwQWx0OiBmYVNvcnRBbW91bnRVcEFsdCxcbiAgZmFTb3J0RG93bjogZmFTb3J0RG93bixcbiAgZmFTb3J0TnVtZXJpY0Rvd246IGZhU29ydE51bWVyaWNEb3duLFxuICBmYVNvcnROdW1lcmljRG93bkFsdDogZmFTb3J0TnVtZXJpY0Rvd25BbHQsXG4gIGZhU29ydE51bWVyaWNVcDogZmFTb3J0TnVtZXJpY1VwLFxuICBmYVNvcnROdW1lcmljVXBBbHQ6IGZhU29ydE51bWVyaWNVcEFsdCxcbiAgZmFTb3J0VXA6IGZhU29ydFVwLFxuICBmYVNwYTogZmFTcGEsXG4gIGZhU3BhY2VTaHV0dGxlOiBmYVNwYWNlU2h1dHRsZSxcbiAgZmFTcGVsbENoZWNrOiBmYVNwZWxsQ2hlY2ssXG4gIGZhU3BpZGVyOiBmYVNwaWRlcixcbiAgZmFTcGlubmVyOiBmYVNwaW5uZXIsXG4gIGZhU3Bsb3RjaDogZmFTcGxvdGNoLFxuICBmYVNwcmF5Q2FuOiBmYVNwcmF5Q2FuLFxuICBmYVNxdWFyZTogZmFTcXVhcmUsXG4gIGZhU3F1YXJlRnVsbDogZmFTcXVhcmVGdWxsLFxuICBmYVNxdWFyZVJvb3RBbHQ6IGZhU3F1YXJlUm9vdEFsdCxcbiAgZmFTdGFtcDogZmFTdGFtcCxcbiAgZmFTdGFyOiBmYVN0YXIsXG4gIGZhU3RhckFuZENyZXNjZW50OiBmYVN0YXJBbmRDcmVzY2VudCxcbiAgZmFTdGFySGFsZjogZmFTdGFySGFsZixcbiAgZmFTdGFySGFsZkFsdDogZmFTdGFySGFsZkFsdCxcbiAgZmFTdGFyT2ZEYXZpZDogZmFTdGFyT2ZEYXZpZCxcbiAgZmFTdGFyT2ZMaWZlOiBmYVN0YXJPZkxpZmUsXG4gIGZhU3RlcEJhY2t3YXJkOiBmYVN0ZXBCYWNrd2FyZCxcbiAgZmFTdGVwRm9yd2FyZDogZmFTdGVwRm9yd2FyZCxcbiAgZmFTdGV0aG9zY29wZTogZmFTdGV0aG9zY29wZSxcbiAgZmFTdGlja3lOb3RlOiBmYVN0aWNreU5vdGUsXG4gIGZhU3RvcDogZmFTdG9wLFxuICBmYVN0b3BDaXJjbGU6IGZhU3RvcENpcmNsZSxcbiAgZmFTdG9wd2F0Y2g6IGZhU3RvcHdhdGNoLFxuICBmYVN0b3JlOiBmYVN0b3JlLFxuICBmYVN0b3JlQWx0OiBmYVN0b3JlQWx0LFxuICBmYVN0cmVhbTogZmFTdHJlYW0sXG4gIGZhU3RyZWV0VmlldzogZmFTdHJlZXRWaWV3LFxuICBmYVN0cmlrZXRocm91Z2g6IGZhU3RyaWtldGhyb3VnaCxcbiAgZmFTdHJvb3B3YWZlbDogZmFTdHJvb3B3YWZlbCxcbiAgZmFTdWJzY3JpcHQ6IGZhU3Vic2NyaXB0LFxuICBmYVN1YndheTogZmFTdWJ3YXksXG4gIGZhU3VpdGNhc2U6IGZhU3VpdGNhc2UsXG4gIGZhU3VpdGNhc2VSb2xsaW5nOiBmYVN1aXRjYXNlUm9sbGluZyxcbiAgZmFTdW46IGZhU3VuLFxuICBmYVN1cGVyc2NyaXB0OiBmYVN1cGVyc2NyaXB0LFxuICBmYVN1cnByaXNlOiBmYVN1cnByaXNlLFxuICBmYVN3YXRjaGJvb2s6IGZhU3dhdGNoYm9vayxcbiAgZmFTd2ltbWVyOiBmYVN3aW1tZXIsXG4gIGZhU3dpbW1pbmdQb29sOiBmYVN3aW1taW5nUG9vbCxcbiAgZmFTeW5hZ29ndWU6IGZhU3luYWdvZ3VlLFxuICBmYVN5bmM6IGZhU3luYyxcbiAgZmFTeW5jQWx0OiBmYVN5bmNBbHQsXG4gIGZhU3lyaW5nZTogZmFTeXJpbmdlLFxuICBmYVRhYmxlOiBmYVRhYmxlLFxuICBmYVRhYmxlVGVubmlzOiBmYVRhYmxlVGVubmlzLFxuICBmYVRhYmxldDogZmFUYWJsZXQsXG4gIGZhVGFibGV0QWx0OiBmYVRhYmxldEFsdCxcbiAgZmFUYWJsZXRzOiBmYVRhYmxldHMsXG4gIGZhVGFjaG9tZXRlckFsdDogZmFUYWNob21ldGVyQWx0LFxuICBmYVRhZzogZmFUYWcsXG4gIGZhVGFnczogZmFUYWdzLFxuICBmYVRhcGU6IGZhVGFwZSxcbiAgZmFUYXNrczogZmFUYXNrcyxcbiAgZmFUYXhpOiBmYVRheGksXG4gIGZhVGVldGg6IGZhVGVldGgsXG4gIGZhVGVldGhPcGVuOiBmYVRlZXRoT3BlbixcbiAgZmFUZW1wZXJhdHVyZUhpZ2g6IGZhVGVtcGVyYXR1cmVIaWdoLFxuICBmYVRlbXBlcmF0dXJlTG93OiBmYVRlbXBlcmF0dXJlTG93LFxuICBmYVRlbmdlOiBmYVRlbmdlLFxuICBmYVRlcm1pbmFsOiBmYVRlcm1pbmFsLFxuICBmYVRleHRIZWlnaHQ6IGZhVGV4dEhlaWdodCxcbiAgZmFUZXh0V2lkdGg6IGZhVGV4dFdpZHRoLFxuICBmYVRoOiBmYVRoLFxuICBmYVRoTGFyZ2U6IGZhVGhMYXJnZSxcbiAgZmFUaExpc3Q6IGZhVGhMaXN0LFxuICBmYVRoZWF0ZXJNYXNrczogZmFUaGVhdGVyTWFza3MsXG4gIGZhVGhlcm1vbWV0ZXI6IGZhVGhlcm1vbWV0ZXIsXG4gIGZhVGhlcm1vbWV0ZXJFbXB0eTogZmFUaGVybW9tZXRlckVtcHR5LFxuICBmYVRoZXJtb21ldGVyRnVsbDogZmFUaGVybW9tZXRlckZ1bGwsXG4gIGZhVGhlcm1vbWV0ZXJIYWxmOiBmYVRoZXJtb21ldGVySGFsZixcbiAgZmFUaGVybW9tZXRlclF1YXJ0ZXI6IGZhVGhlcm1vbWV0ZXJRdWFydGVyLFxuICBmYVRoZXJtb21ldGVyVGhyZWVRdWFydGVyczogZmFUaGVybW9tZXRlclRocmVlUXVhcnRlcnMsXG4gIGZhVGh1bWJzRG93bjogZmFUaHVtYnNEb3duLFxuICBmYVRodW1ic1VwOiBmYVRodW1ic1VwLFxuICBmYVRodW1idGFjazogZmFUaHVtYnRhY2ssXG4gIGZhVGlja2V0QWx0OiBmYVRpY2tldEFsdCxcbiAgZmFUaW1lczogZmFUaW1lcyxcbiAgZmFUaW1lc0NpcmNsZTogZmFUaW1lc0NpcmNsZSxcbiAgZmFUaW50OiBmYVRpbnQsXG4gIGZhVGludFNsYXNoOiBmYVRpbnRTbGFzaCxcbiAgZmFUaXJlZDogZmFUaXJlZCxcbiAgZmFUb2dnbGVPZmY6IGZhVG9nZ2xlT2ZmLFxuICBmYVRvZ2dsZU9uOiBmYVRvZ2dsZU9uLFxuICBmYVRvaWxldDogZmFUb2lsZXQsXG4gIGZhVG9pbGV0UGFwZXI6IGZhVG9pbGV0UGFwZXIsXG4gIGZhVG9vbGJveDogZmFUb29sYm94LFxuICBmYVRvb2xzOiBmYVRvb2xzLFxuICBmYVRvb3RoOiBmYVRvb3RoLFxuICBmYVRvcmFoOiBmYVRvcmFoLFxuICBmYVRvcmlpR2F0ZTogZmFUb3JpaUdhdGUsXG4gIGZhVHJhY3RvcjogZmFUcmFjdG9yLFxuICBmYVRyYWRlbWFyazogZmFUcmFkZW1hcmssXG4gIGZhVHJhZmZpY0xpZ2h0OiBmYVRyYWZmaWNMaWdodCxcbiAgZmFUcmFpbjogZmFUcmFpbixcbiAgZmFUcmFtOiBmYVRyYW0sXG4gIGZhVHJhbnNnZW5kZXI6IGZhVHJhbnNnZW5kZXIsXG4gIGZhVHJhbnNnZW5kZXJBbHQ6IGZhVHJhbnNnZW5kZXJBbHQsXG4gIGZhVHJhc2g6IGZhVHJhc2gsXG4gIGZhVHJhc2hBbHQ6IGZhVHJhc2hBbHQsXG4gIGZhVHJhc2hSZXN0b3JlOiBmYVRyYXNoUmVzdG9yZSxcbiAgZmFUcmFzaFJlc3RvcmVBbHQ6IGZhVHJhc2hSZXN0b3JlQWx0LFxuICBmYVRyZWU6IGZhVHJlZSxcbiAgZmFUcm9waHk6IGZhVHJvcGh5LFxuICBmYVRydWNrOiBmYVRydWNrLFxuICBmYVRydWNrTG9hZGluZzogZmFUcnVja0xvYWRpbmcsXG4gIGZhVHJ1Y2tNb25zdGVyOiBmYVRydWNrTW9uc3RlcixcbiAgZmFUcnVja01vdmluZzogZmFUcnVja01vdmluZyxcbiAgZmFUcnVja1BpY2t1cDogZmFUcnVja1BpY2t1cCxcbiAgZmFUc2hpcnQ6IGZhVHNoaXJ0LFxuICBmYVR0eTogZmFUdHksXG4gIGZhVHY6IGZhVHYsXG4gIGZhVW1icmVsbGE6IGZhVW1icmVsbGEsXG4gIGZhVW1icmVsbGFCZWFjaDogZmFVbWJyZWxsYUJlYWNoLFxuICBmYVVuZGVybGluZTogZmFVbmRlcmxpbmUsXG4gIGZhVW5kbzogZmFVbmRvLFxuICBmYVVuZG9BbHQ6IGZhVW5kb0FsdCxcbiAgZmFVbml2ZXJzYWxBY2Nlc3M6IGZhVW5pdmVyc2FsQWNjZXNzLFxuICBmYVVuaXZlcnNpdHk6IGZhVW5pdmVyc2l0eSxcbiAgZmFVbmxpbms6IGZhVW5saW5rLFxuICBmYVVubG9jazogZmFVbmxvY2ssXG4gIGZhVW5sb2NrQWx0OiBmYVVubG9ja0FsdCxcbiAgZmFVcGxvYWQ6IGZhVXBsb2FkLFxuICBmYVVzZXI6IGZhVXNlcixcbiAgZmFVc2VyQWx0OiBmYVVzZXJBbHQsXG4gIGZhVXNlckFsdFNsYXNoOiBmYVVzZXJBbHRTbGFzaCxcbiAgZmFVc2VyQXN0cm9uYXV0OiBmYVVzZXJBc3Ryb25hdXQsXG4gIGZhVXNlckNoZWNrOiBmYVVzZXJDaGVjayxcbiAgZmFVc2VyQ2lyY2xlOiBmYVVzZXJDaXJjbGUsXG4gIGZhVXNlckNsb2NrOiBmYVVzZXJDbG9jayxcbiAgZmFVc2VyQ29nOiBmYVVzZXJDb2csXG4gIGZhVXNlckVkaXQ6IGZhVXNlckVkaXQsXG4gIGZhVXNlckZyaWVuZHM6IGZhVXNlckZyaWVuZHMsXG4gIGZhVXNlckdyYWR1YXRlOiBmYVVzZXJHcmFkdWF0ZSxcbiAgZmFVc2VySW5qdXJlZDogZmFVc2VySW5qdXJlZCxcbiAgZmFVc2VyTG9jazogZmFVc2VyTG9jayxcbiAgZmFVc2VyTWQ6IGZhVXNlck1kLFxuICBmYVVzZXJNaW51czogZmFVc2VyTWludXMsXG4gIGZhVXNlck5pbmphOiBmYVVzZXJOaW5qYSxcbiAgZmFVc2VyTnVyc2U6IGZhVXNlck51cnNlLFxuICBmYVVzZXJQbHVzOiBmYVVzZXJQbHVzLFxuICBmYVVzZXJTZWNyZXQ6IGZhVXNlclNlY3JldCxcbiAgZmFVc2VyU2hpZWxkOiBmYVVzZXJTaGllbGQsXG4gIGZhVXNlclNsYXNoOiBmYVVzZXJTbGFzaCxcbiAgZmFVc2VyVGFnOiBmYVVzZXJUYWcsXG4gIGZhVXNlclRpZTogZmFVc2VyVGllLFxuICBmYVVzZXJUaW1lczogZmFVc2VyVGltZXMsXG4gIGZhVXNlcnM6IGZhVXNlcnMsXG4gIGZhVXNlcnNDb2c6IGZhVXNlcnNDb2csXG4gIGZhVXRlbnNpbFNwb29uOiBmYVV0ZW5zaWxTcG9vbixcbiAgZmFVdGVuc2lsczogZmFVdGVuc2lscyxcbiAgZmFWZWN0b3JTcXVhcmU6IGZhVmVjdG9yU3F1YXJlLFxuICBmYVZlbnVzOiBmYVZlbnVzLFxuICBmYVZlbnVzRG91YmxlOiBmYVZlbnVzRG91YmxlLFxuICBmYVZlbnVzTWFyczogZmFWZW51c01hcnMsXG4gIGZhVmlhbDogZmFWaWFsLFxuICBmYVZpYWxzOiBmYVZpYWxzLFxuICBmYVZpZGVvOiBmYVZpZGVvLFxuICBmYVZpZGVvU2xhc2g6IGZhVmlkZW9TbGFzaCxcbiAgZmFWaWhhcmE6IGZhVmloYXJhLFxuICBmYVZvaWNlbWFpbDogZmFWb2ljZW1haWwsXG4gIGZhVm9sbGV5YmFsbEJhbGw6IGZhVm9sbGV5YmFsbEJhbGwsXG4gIGZhVm9sdW1lRG93bjogZmFWb2x1bWVEb3duLFxuICBmYVZvbHVtZU11dGU6IGZhVm9sdW1lTXV0ZSxcbiAgZmFWb2x1bWVPZmY6IGZhVm9sdW1lT2ZmLFxuICBmYVZvbHVtZVVwOiBmYVZvbHVtZVVwLFxuICBmYVZvdGVZZWE6IGZhVm90ZVllYSxcbiAgZmFWckNhcmRib2FyZDogZmFWckNhcmRib2FyZCxcbiAgZmFXYWxraW5nOiBmYVdhbGtpbmcsXG4gIGZhV2FsbGV0OiBmYVdhbGxldCxcbiAgZmFXYXJlaG91c2U6IGZhV2FyZWhvdXNlLFxuICBmYVdhdGVyOiBmYVdhdGVyLFxuICBmYVdhdmVTcXVhcmU6IGZhV2F2ZVNxdWFyZSxcbiAgZmFXZWlnaHQ6IGZhV2VpZ2h0LFxuICBmYVdlaWdodEhhbmdpbmc6IGZhV2VpZ2h0SGFuZ2luZyxcbiAgZmFXaGVlbGNoYWlyOiBmYVdoZWVsY2hhaXIsXG4gIGZhV2lmaTogZmFXaWZpLFxuICBmYVdpbmQ6IGZhV2luZCxcbiAgZmFXaW5kb3dDbG9zZTogZmFXaW5kb3dDbG9zZSxcbiAgZmFXaW5kb3dNYXhpbWl6ZTogZmFXaW5kb3dNYXhpbWl6ZSxcbiAgZmFXaW5kb3dNaW5pbWl6ZTogZmFXaW5kb3dNaW5pbWl6ZSxcbiAgZmFXaW5kb3dSZXN0b3JlOiBmYVdpbmRvd1Jlc3RvcmUsXG4gIGZhV2luZUJvdHRsZTogZmFXaW5lQm90dGxlLFxuICBmYVdpbmVHbGFzczogZmFXaW5lR2xhc3MsXG4gIGZhV2luZUdsYXNzQWx0OiBmYVdpbmVHbGFzc0FsdCxcbiAgZmFXb25TaWduOiBmYVdvblNpZ24sXG4gIGZhV3JlbmNoOiBmYVdyZW5jaCxcbiAgZmFYUmF5OiBmYVhSYXksXG4gIGZhWWVuU2lnbjogZmFZZW5TaWduLFxuICBmYVlpbllhbmc6IGZhWWluWWFuZ1xufTtcblxuZXhwb3J0IHsgX2ljb25zQ2FjaGUgYXMgZmFzLCBwcmVmaXgsIGZhQWQsIGZhQWRkcmVzc0Jvb2ssIGZhQWRkcmVzc0NhcmQsIGZhQWRqdXN0LCBmYUFpckZyZXNoZW5lciwgZmFBbGlnbkNlbnRlciwgZmFBbGlnbkp1c3RpZnksIGZhQWxpZ25MZWZ0LCBmYUFsaWduUmlnaHQsIGZhQWxsZXJnaWVzLCBmYUFtYnVsYW5jZSwgZmFBbWVyaWNhblNpZ25MYW5ndWFnZUludGVycHJldGluZywgZmFBbmNob3IsIGZhQW5nbGVEb3VibGVEb3duLCBmYUFuZ2xlRG91YmxlTGVmdCwgZmFBbmdsZURvdWJsZVJpZ2h0LCBmYUFuZ2xlRG91YmxlVXAsIGZhQW5nbGVEb3duLCBmYUFuZ2xlTGVmdCwgZmFBbmdsZVJpZ2h0LCBmYUFuZ2xlVXAsIGZhQW5ncnksIGZhQW5raCwgZmFBcHBsZUFsdCwgZmFBcmNoaXZlLCBmYUFyY2h3YXksIGZhQXJyb3dBbHRDaXJjbGVEb3duLCBmYUFycm93QWx0Q2lyY2xlTGVmdCwgZmFBcnJvd0FsdENpcmNsZVJpZ2h0LCBmYUFycm93QWx0Q2lyY2xlVXAsIGZhQXJyb3dDaXJjbGVEb3duLCBmYUFycm93Q2lyY2xlTGVmdCwgZmFBcnJvd0NpcmNsZVJpZ2h0LCBmYUFycm93Q2lyY2xlVXAsIGZhQXJyb3dEb3duLCBmYUFycm93TGVmdCwgZmFBcnJvd1JpZ2h0LCBmYUFycm93VXAsIGZhQXJyb3dzQWx0LCBmYUFycm93c0FsdEgsIGZhQXJyb3dzQWx0ViwgZmFBc3Npc3RpdmVMaXN0ZW5pbmdTeXN0ZW1zLCBmYUFzdGVyaXNrLCBmYUF0LCBmYUF0bGFzLCBmYUF0b20sIGZhQXVkaW9EZXNjcmlwdGlvbiwgZmFBd2FyZCwgZmFCYWJ5LCBmYUJhYnlDYXJyaWFnZSwgZmFCYWNrc3BhY2UsIGZhQmFja3dhcmQsIGZhQmFjb24sIGZhQmFsYW5jZVNjYWxlLCBmYUJhbGFuY2VTY2FsZUxlZnQsIGZhQmFsYW5jZVNjYWxlUmlnaHQsIGZhQmFuLCBmYUJhbmRBaWQsIGZhQmFyY29kZSwgZmFCYXJzLCBmYUJhc2ViYWxsQmFsbCwgZmFCYXNrZXRiYWxsQmFsbCwgZmFCYXRoLCBmYUJhdHRlcnlFbXB0eSwgZmFCYXR0ZXJ5RnVsbCwgZmFCYXR0ZXJ5SGFsZiwgZmFCYXR0ZXJ5UXVhcnRlciwgZmFCYXR0ZXJ5VGhyZWVRdWFydGVycywgZmFCZWQsIGZhQmVlciwgZmFCZWxsLCBmYUJlbGxTbGFzaCwgZmFCZXppZXJDdXJ2ZSwgZmFCaWJsZSwgZmFCaWN5Y2xlLCBmYUJpa2luZywgZmFCaW5vY3VsYXJzLCBmYUJpb2hhemFyZCwgZmFCaXJ0aGRheUNha2UsIGZhQmxlbmRlciwgZmFCbGVuZGVyUGhvbmUsIGZhQmxpbmQsIGZhQmxvZywgZmFCb2xkLCBmYUJvbHQsIGZhQm9tYiwgZmFCb25lLCBmYUJvbmcsIGZhQm9vaywgZmFCb29rRGVhZCwgZmFCb29rTWVkaWNhbCwgZmFCb29rT3BlbiwgZmFCb29rUmVhZGVyLCBmYUJvb2ttYXJrLCBmYUJvcmRlckFsbCwgZmFCb3JkZXJOb25lLCBmYUJvcmRlclN0eWxlLCBmYUJvd2xpbmdCYWxsLCBmYUJveCwgZmFCb3hPcGVuLCBmYUJveGVzLCBmYUJyYWlsbGUsIGZhQnJhaW4sIGZhQnJlYWRTbGljZSwgZmFCcmllZmNhc2UsIGZhQnJpZWZjYXNlTWVkaWNhbCwgZmFCcm9hZGNhc3RUb3dlciwgZmFCcm9vbSwgZmFCcnVzaCwgZmFCdWcsIGZhQnVpbGRpbmcsIGZhQnVsbGhvcm4sIGZhQnVsbHNleWUsIGZhQnVybiwgZmFCdXMsIGZhQnVzQWx0LCBmYUJ1c2luZXNzVGltZSwgZmFDYWxjdWxhdG9yLCBmYUNhbGVuZGFyLCBmYUNhbGVuZGFyQWx0LCBmYUNhbGVuZGFyQ2hlY2ssIGZhQ2FsZW5kYXJEYXksIGZhQ2FsZW5kYXJNaW51cywgZmFDYWxlbmRhclBsdXMsIGZhQ2FsZW5kYXJUaW1lcywgZmFDYWxlbmRhcldlZWssIGZhQ2FtZXJhLCBmYUNhbWVyYVJldHJvLCBmYUNhbXBncm91bmQsIGZhQ2FuZHlDYW5lLCBmYUNhbm5hYmlzLCBmYUNhcHN1bGVzLCBmYUNhciwgZmFDYXJBbHQsIGZhQ2FyQmF0dGVyeSwgZmFDYXJDcmFzaCwgZmFDYXJTaWRlLCBmYUNhcmV0RG93biwgZmFDYXJldExlZnQsIGZhQ2FyZXRSaWdodCwgZmFDYXJldFNxdWFyZURvd24sIGZhQ2FyZXRTcXVhcmVMZWZ0LCBmYUNhcmV0U3F1YXJlUmlnaHQsIGZhQ2FyZXRTcXVhcmVVcCwgZmFDYXJldFVwLCBmYUNhcnJvdCwgZmFDYXJ0QXJyb3dEb3duLCBmYUNhcnRQbHVzLCBmYUNhc2hSZWdpc3RlciwgZmFDYXQsIGZhQ2VydGlmaWNhdGUsIGZhQ2hhaXIsIGZhQ2hhbGtib2FyZCwgZmFDaGFsa2JvYXJkVGVhY2hlciwgZmFDaGFyZ2luZ1N0YXRpb24sIGZhQ2hhcnRBcmVhLCBmYUNoYXJ0QmFyLCBmYUNoYXJ0TGluZSwgZmFDaGFydFBpZSwgZmFDaGVjaywgZmFDaGVja0NpcmNsZSwgZmFDaGVja0RvdWJsZSwgZmFDaGVja1NxdWFyZSwgZmFDaGVlc2UsIGZhQ2hlc3MsIGZhQ2hlc3NCaXNob3AsIGZhQ2hlc3NCb2FyZCwgZmFDaGVzc0tpbmcsIGZhQ2hlc3NLbmlnaHQsIGZhQ2hlc3NQYXduLCBmYUNoZXNzUXVlZW4sIGZhQ2hlc3NSb29rLCBmYUNoZXZyb25DaXJjbGVEb3duLCBmYUNoZXZyb25DaXJjbGVMZWZ0LCBmYUNoZXZyb25DaXJjbGVSaWdodCwgZmFDaGV2cm9uQ2lyY2xlVXAsIGZhQ2hldnJvbkRvd24sIGZhQ2hldnJvbkxlZnQsIGZhQ2hldnJvblJpZ2h0LCBmYUNoZXZyb25VcCwgZmFDaGlsZCwgZmFDaHVyY2gsIGZhQ2lyY2xlLCBmYUNpcmNsZU5vdGNoLCBmYUNpdHksIGZhQ2xpbmljTWVkaWNhbCwgZmFDbGlwYm9hcmQsIGZhQ2xpcGJvYXJkQ2hlY2ssIGZhQ2xpcGJvYXJkTGlzdCwgZmFDbG9jaywgZmFDbG9uZSwgZmFDbG9zZWRDYXB0aW9uaW5nLCBmYUNsb3VkLCBmYUNsb3VkRG93bmxvYWRBbHQsIGZhQ2xvdWRNZWF0YmFsbCwgZmFDbG91ZE1vb24sIGZhQ2xvdWRNb29uUmFpbiwgZmFDbG91ZFJhaW4sIGZhQ2xvdWRTaG93ZXJzSGVhdnksIGZhQ2xvdWRTdW4sIGZhQ2xvdWRTdW5SYWluLCBmYUNsb3VkVXBsb2FkQWx0LCBmYUNvY2t0YWlsLCBmYUNvZGUsIGZhQ29kZUJyYW5jaCwgZmFDb2ZmZWUsIGZhQ29nLCBmYUNvZ3MsIGZhQ29pbnMsIGZhQ29sdW1ucywgZmFDb21tZW50LCBmYUNvbW1lbnRBbHQsIGZhQ29tbWVudERvbGxhciwgZmFDb21tZW50RG90cywgZmFDb21tZW50TWVkaWNhbCwgZmFDb21tZW50U2xhc2gsIGZhQ29tbWVudHMsIGZhQ29tbWVudHNEb2xsYXIsIGZhQ29tcGFjdERpc2MsIGZhQ29tcGFzcywgZmFDb21wcmVzcywgZmFDb21wcmVzc0Fycm93c0FsdCwgZmFDb25jaWVyZ2VCZWxsLCBmYUNvb2tpZSwgZmFDb29raWVCaXRlLCBmYUNvcHksIGZhQ29weXJpZ2h0LCBmYUNvdWNoLCBmYUNyZWRpdENhcmQsIGZhQ3JvcCwgZmFDcm9wQWx0LCBmYUNyb3NzLCBmYUNyb3NzaGFpcnMsIGZhQ3JvdywgZmFDcm93biwgZmFDcnV0Y2gsIGZhQ3ViZSwgZmFDdWJlcywgZmFDdXQsIGZhRGF0YWJhc2UsIGZhRGVhZiwgZmFEZW1vY3JhdCwgZmFEZXNrdG9wLCBmYURoYXJtYWNoYWtyYSwgZmFEaWFnbm9zZXMsIGZhRGljZSwgZmFEaWNlRDIwLCBmYURpY2VENiwgZmFEaWNlRml2ZSwgZmFEaWNlRm91ciwgZmFEaWNlT25lLCBmYURpY2VTaXgsIGZhRGljZVRocmVlLCBmYURpY2VUd28sIGZhRGlnaXRhbFRhY2hvZ3JhcGgsIGZhRGlyZWN0aW9ucywgZmFEaXZpZGUsIGZhRGl6enksIGZhRG5hLCBmYURvZywgZmFEb2xsYXJTaWduLCBmYURvbGx5LCBmYURvbGx5RmxhdGJlZCwgZmFEb25hdGUsIGZhRG9vckNsb3NlZCwgZmFEb29yT3BlbiwgZmFEb3RDaXJjbGUsIGZhRG92ZSwgZmFEb3dubG9hZCwgZmFEcmFmdGluZ0NvbXBhc3MsIGZhRHJhZ29uLCBmYURyYXdQb2x5Z29uLCBmYURydW0sIGZhRHJ1bVN0ZWVscGFuLCBmYURydW1zdGlja0JpdGUsIGZhRHVtYmJlbGwsIGZhRHVtcHN0ZXIsIGZhRHVtcHN0ZXJGaXJlLCBmYUR1bmdlb24sIGZhRWRpdCwgZmFFZ2csIGZhRWplY3QsIGZhRWxsaXBzaXNILCBmYUVsbGlwc2lzViwgZmFFbnZlbG9wZSwgZmFFbnZlbG9wZU9wZW4sIGZhRW52ZWxvcGVPcGVuVGV4dCwgZmFFbnZlbG9wZVNxdWFyZSwgZmFFcXVhbHMsIGZhRXJhc2VyLCBmYUV0aGVybmV0LCBmYUV1cm9TaWduLCBmYUV4Y2hhbmdlQWx0LCBmYUV4Y2xhbWF0aW9uLCBmYUV4Y2xhbWF0aW9uQ2lyY2xlLCBmYUV4Y2xhbWF0aW9uVHJpYW5nbGUsIGZhRXhwYW5kLCBmYUV4cGFuZEFycm93c0FsdCwgZmFFeHRlcm5hbExpbmtBbHQsIGZhRXh0ZXJuYWxMaW5rU3F1YXJlQWx0LCBmYUV5ZSwgZmFFeWVEcm9wcGVyLCBmYUV5ZVNsYXNoLCBmYUZhbiwgZmFGYXN0QmFja3dhcmQsIGZhRmFzdEZvcndhcmQsIGZhRmF4LCBmYUZlYXRoZXIsIGZhRmVhdGhlckFsdCwgZmFGZW1hbGUsIGZhRmlnaHRlckpldCwgZmFGaWxlLCBmYUZpbGVBbHQsIGZhRmlsZUFyY2hpdmUsIGZhRmlsZUF1ZGlvLCBmYUZpbGVDb2RlLCBmYUZpbGVDb250cmFjdCwgZmFGaWxlQ3N2LCBmYUZpbGVEb3dubG9hZCwgZmFGaWxlRXhjZWwsIGZhRmlsZUV4cG9ydCwgZmFGaWxlSW1hZ2UsIGZhRmlsZUltcG9ydCwgZmFGaWxlSW52b2ljZSwgZmFGaWxlSW52b2ljZURvbGxhciwgZmFGaWxlTWVkaWNhbCwgZmFGaWxlTWVkaWNhbEFsdCwgZmFGaWxlUGRmLCBmYUZpbGVQb3dlcnBvaW50LCBmYUZpbGVQcmVzY3JpcHRpb24sIGZhRmlsZVNpZ25hdHVyZSwgZmFGaWxlVXBsb2FkLCBmYUZpbGVWaWRlbywgZmFGaWxlV29yZCwgZmFGaWxsLCBmYUZpbGxEcmlwLCBmYUZpbG0sIGZhRmlsdGVyLCBmYUZpbmdlcnByaW50LCBmYUZpcmUsIGZhRmlyZUFsdCwgZmFGaXJlRXh0aW5ndWlzaGVyLCBmYUZpcnN0QWlkLCBmYUZpc2gsIGZhRmlzdFJhaXNlZCwgZmFGbGFnLCBmYUZsYWdDaGVja2VyZWQsIGZhRmxhZ1VzYSwgZmFGbGFzaywgZmFGbHVzaGVkLCBmYUZvbGRlciwgZmFGb2xkZXJNaW51cywgZmFGb2xkZXJPcGVuLCBmYUZvbGRlclBsdXMsIGZhRm9udCwgZmFGb250QXdlc29tZUxvZ29GdWxsLCBmYUZvb3RiYWxsQmFsbCwgZmFGb3J3YXJkLCBmYUZyb2csIGZhRnJvd24sIGZhRnJvd25PcGVuLCBmYUZ1bm5lbERvbGxhciwgZmFGdXRib2wsIGZhR2FtZXBhZCwgZmFHYXNQdW1wLCBmYUdhdmVsLCBmYUdlbSwgZmFHZW5kZXJsZXNzLCBmYUdob3N0LCBmYUdpZnQsIGZhR2lmdHMsIGZhR2xhc3NDaGVlcnMsIGZhR2xhc3NNYXJ0aW5pLCBmYUdsYXNzTWFydGluaUFsdCwgZmFHbGFzc1doaXNrZXksIGZhR2xhc3NlcywgZmFHbG9iZSwgZmFHbG9iZUFmcmljYSwgZmFHbG9iZUFtZXJpY2FzLCBmYUdsb2JlQXNpYSwgZmFHbG9iZUV1cm9wZSwgZmFHb2xmQmFsbCwgZmFHb3B1cmFtLCBmYUdyYWR1YXRpb25DYXAsIGZhR3JlYXRlclRoYW4sIGZhR3JlYXRlclRoYW5FcXVhbCwgZmFHcmltYWNlLCBmYUdyaW4sIGZhR3JpbkFsdCwgZmFHcmluQmVhbSwgZmFHcmluQmVhbVN3ZWF0LCBmYUdyaW5IZWFydHMsIGZhR3JpblNxdWludCwgZmFHcmluU3F1aW50VGVhcnMsIGZhR3JpblN0YXJzLCBmYUdyaW5UZWFycywgZmFHcmluVG9uZ3VlLCBmYUdyaW5Ub25ndWVTcXVpbnQsIGZhR3JpblRvbmd1ZVdpbmssIGZhR3JpbldpbmssIGZhR3JpcEhvcml6b250YWwsIGZhR3JpcExpbmVzLCBmYUdyaXBMaW5lc1ZlcnRpY2FsLCBmYUdyaXBWZXJ0aWNhbCwgZmFHdWl0YXIsIGZhSFNxdWFyZSwgZmFIYW1idXJnZXIsIGZhSGFtbWVyLCBmYUhhbXNhLCBmYUhhbmRIb2xkaW5nLCBmYUhhbmRIb2xkaW5nSGVhcnQsIGZhSGFuZEhvbGRpbmdVc2QsIGZhSGFuZExpemFyZCwgZmFIYW5kTWlkZGxlRmluZ2VyLCBmYUhhbmRQYXBlciwgZmFIYW5kUGVhY2UsIGZhSGFuZFBvaW50RG93biwgZmFIYW5kUG9pbnRMZWZ0LCBmYUhhbmRQb2ludFJpZ2h0LCBmYUhhbmRQb2ludFVwLCBmYUhhbmRQb2ludGVyLCBmYUhhbmRSb2NrLCBmYUhhbmRTY2lzc29ycywgZmFIYW5kU3BvY2ssIGZhSGFuZHMsIGZhSGFuZHNIZWxwaW5nLCBmYUhhbmRzaGFrZSwgZmFIYW51a2lhaCwgZmFIYXJkSGF0LCBmYUhhc2h0YWcsIGZhSGF0Q293Ym95LCBmYUhhdENvd2JveVNpZGUsIGZhSGF0V2l6YXJkLCBmYUhheWthbCwgZmFIZGQsIGZhSGVhZGluZywgZmFIZWFkcGhvbmVzLCBmYUhlYWRwaG9uZXNBbHQsIGZhSGVhZHNldCwgZmFIZWFydCwgZmFIZWFydEJyb2tlbiwgZmFIZWFydGJlYXQsIGZhSGVsaWNvcHRlciwgZmFIaWdobGlnaHRlciwgZmFIaWtpbmcsIGZhSGlwcG8sIGZhSGlzdG9yeSwgZmFIb2NrZXlQdWNrLCBmYUhvbGx5QmVycnksIGZhSG9tZSwgZmFIb3JzZSwgZmFIb3JzZUhlYWQsIGZhSG9zcGl0YWwsIGZhSG9zcGl0YWxBbHQsIGZhSG9zcGl0YWxTeW1ib2wsIGZhSG90VHViLCBmYUhvdGRvZywgZmFIb3RlbCwgZmFIb3VyZ2xhc3MsIGZhSG91cmdsYXNzRW5kLCBmYUhvdXJnbGFzc0hhbGYsIGZhSG91cmdsYXNzU3RhcnQsIGZhSG91c2VEYW1hZ2UsIGZhSHJ5dm5pYSwgZmFJQ3Vyc29yLCBmYUljZUNyZWFtLCBmYUljaWNsZXMsIGZhSWNvbnMsIGZhSWRCYWRnZSwgZmFJZENhcmQsIGZhSWRDYXJkQWx0LCBmYUlnbG9vLCBmYUltYWdlLCBmYUltYWdlcywgZmFJbmJveCwgZmFJbmRlbnQsIGZhSW5kdXN0cnksIGZhSW5maW5pdHksIGZhSW5mbywgZmFJbmZvQ2lyY2xlLCBmYUl0YWxpYywgZmFKZWRpLCBmYUpvaW50LCBmYUpvdXJuYWxXaGlsbHMsIGZhS2FhYmEsIGZhS2V5LCBmYUtleWJvYXJkLCBmYUtoYW5kYSwgZmFLaXNzLCBmYUtpc3NCZWFtLCBmYUtpc3NXaW5rSGVhcnQsIGZhS2l3aUJpcmQsIGZhTGFuZG1hcmssIGZhTGFuZ3VhZ2UsIGZhTGFwdG9wLCBmYUxhcHRvcENvZGUsIGZhTGFwdG9wTWVkaWNhbCwgZmFMYXVnaCwgZmFMYXVnaEJlYW0sIGZhTGF1Z2hTcXVpbnQsIGZhTGF1Z2hXaW5rLCBmYUxheWVyR3JvdXAsIGZhTGVhZiwgZmFMZW1vbiwgZmFMZXNzVGhhbiwgZmFMZXNzVGhhbkVxdWFsLCBmYUxldmVsRG93bkFsdCwgZmFMZXZlbFVwQWx0LCBmYUxpZmVSaW5nLCBmYUxpZ2h0YnVsYiwgZmFMaW5rLCBmYUxpcmFTaWduLCBmYUxpc3QsIGZhTGlzdEFsdCwgZmFMaXN0T2wsIGZhTGlzdFVsLCBmYUxvY2F0aW9uQXJyb3csIGZhTG9jaywgZmFMb2NrT3BlbiwgZmFMb25nQXJyb3dBbHREb3duLCBmYUxvbmdBcnJvd0FsdExlZnQsIGZhTG9uZ0Fycm93QWx0UmlnaHQsIGZhTG9uZ0Fycm93QWx0VXAsIGZhTG93VmlzaW9uLCBmYUx1Z2dhZ2VDYXJ0LCBmYU1hZ2ljLCBmYU1hZ25ldCwgZmFNYWlsQnVsaywgZmFNYWxlLCBmYU1hcCwgZmFNYXBNYXJrZWQsIGZhTWFwTWFya2VkQWx0LCBmYU1hcE1hcmtlciwgZmFNYXBNYXJrZXJBbHQsIGZhTWFwUGluLCBmYU1hcFNpZ25zLCBmYU1hcmtlciwgZmFNYXJzLCBmYU1hcnNEb3VibGUsIGZhTWFyc1N0cm9rZSwgZmFNYXJzU3Ryb2tlSCwgZmFNYXJzU3Ryb2tlViwgZmFNYXNrLCBmYU1lZGFsLCBmYU1lZGtpdCwgZmFNZWgsIGZhTWVoQmxhbmssIGZhTWVoUm9sbGluZ0V5ZXMsIGZhTWVtb3J5LCBmYU1lbm9yYWgsIGZhTWVyY3VyeSwgZmFNZXRlb3IsIGZhTWljcm9jaGlwLCBmYU1pY3JvcGhvbmUsIGZhTWljcm9waG9uZUFsdCwgZmFNaWNyb3Bob25lQWx0U2xhc2gsIGZhTWljcm9waG9uZVNsYXNoLCBmYU1pY3Jvc2NvcGUsIGZhTWludXMsIGZhTWludXNDaXJjbGUsIGZhTWludXNTcXVhcmUsIGZhTWl0dGVuLCBmYU1vYmlsZSwgZmFNb2JpbGVBbHQsIGZhTW9uZXlCaWxsLCBmYU1vbmV5QmlsbEFsdCwgZmFNb25leUJpbGxXYXZlLCBmYU1vbmV5QmlsbFdhdmVBbHQsIGZhTW9uZXlDaGVjaywgZmFNb25leUNoZWNrQWx0LCBmYU1vbnVtZW50LCBmYU1vb24sIGZhTW9ydGFyUGVzdGxlLCBmYU1vc3F1ZSwgZmFNb3RvcmN5Y2xlLCBmYU1vdW50YWluLCBmYU1vdXNlLCBmYU1vdXNlUG9pbnRlciwgZmFNdWdIb3QsIGZhTXVzaWMsIGZhTmV0d29ya1dpcmVkLCBmYU5ldXRlciwgZmFOZXdzcGFwZXIsIGZhTm90RXF1YWwsIGZhTm90ZXNNZWRpY2FsLCBmYU9iamVjdEdyb3VwLCBmYU9iamVjdFVuZ3JvdXAsIGZhT2lsQ2FuLCBmYU9tLCBmYU90dGVyLCBmYU91dGRlbnQsIGZhUGFnZXIsIGZhUGFpbnRCcnVzaCwgZmFQYWludFJvbGxlciwgZmFQYWxldHRlLCBmYVBhbGxldCwgZmFQYXBlclBsYW5lLCBmYVBhcGVyY2xpcCwgZmFQYXJhY2h1dGVCb3gsIGZhUGFyYWdyYXBoLCBmYVBhcmtpbmcsIGZhUGFzc3BvcnQsIGZhUGFzdGFmYXJpYW5pc20sIGZhUGFzdGUsIGZhUGF1c2UsIGZhUGF1c2VDaXJjbGUsIGZhUGF3LCBmYVBlYWNlLCBmYVBlbiwgZmFQZW5BbHQsIGZhUGVuRmFuY3ksIGZhUGVuTmliLCBmYVBlblNxdWFyZSwgZmFQZW5jaWxBbHQsIGZhUGVuY2lsUnVsZXIsIGZhUGVvcGxlQ2FycnksIGZhUGVwcGVySG90LCBmYVBlcmNlbnQsIGZhUGVyY2VudGFnZSwgZmFQZXJzb25Cb290aCwgZmFQaG9uZSwgZmFQaG9uZUFsdCwgZmFQaG9uZVNsYXNoLCBmYVBob25lU3F1YXJlLCBmYVBob25lU3F1YXJlQWx0LCBmYVBob25lVm9sdW1lLCBmYVBob3RvVmlkZW8sIGZhUGlnZ3lCYW5rLCBmYVBpbGxzLCBmYVBpenphU2xpY2UsIGZhUGxhY2VPZldvcnNoaXAsIGZhUGxhbmUsIGZhUGxhbmVBcnJpdmFsLCBmYVBsYW5lRGVwYXJ0dXJlLCBmYVBsYXksIGZhUGxheUNpcmNsZSwgZmFQbHVnLCBmYVBsdXMsIGZhUGx1c0NpcmNsZSwgZmFQbHVzU3F1YXJlLCBmYVBvZGNhc3QsIGZhUG9sbCwgZmFQb2xsSCwgZmFQb28sIGZhUG9vU3Rvcm0sIGZhUG9vcCwgZmFQb3J0cmFpdCwgZmFQb3VuZFNpZ24sIGZhUG93ZXJPZmYsIGZhUHJheSwgZmFQcmF5aW5nSGFuZHMsIGZhUHJlc2NyaXB0aW9uLCBmYVByZXNjcmlwdGlvbkJvdHRsZSwgZmFQcmVzY3JpcHRpb25Cb3R0bGVBbHQsIGZhUHJpbnQsIGZhUHJvY2VkdXJlcywgZmFQcm9qZWN0RGlhZ3JhbSwgZmFQdXp6bGVQaWVjZSwgZmFRcmNvZGUsIGZhUXVlc3Rpb24sIGZhUXVlc3Rpb25DaXJjbGUsIGZhUXVpZGRpdGNoLCBmYVF1b3RlTGVmdCwgZmFRdW90ZVJpZ2h0LCBmYVF1cmFuLCBmYVJhZGlhdGlvbiwgZmFSYWRpYXRpb25BbHQsIGZhUmFpbmJvdywgZmFSYW5kb20sIGZhUmVjZWlwdCwgZmFSZWNvcmRWaW55bCwgZmFSZWN5Y2xlLCBmYVJlZG8sIGZhUmVkb0FsdCwgZmFSZWdpc3RlcmVkLCBmYVJlbW92ZUZvcm1hdCwgZmFSZXBseSwgZmFSZXBseUFsbCwgZmFSZXB1YmxpY2FuLCBmYVJlc3Ryb29tLCBmYVJldHdlZXQsIGZhUmliYm9uLCBmYVJpbmcsIGZhUm9hZCwgZmFSb2JvdCwgZmFSb2NrZXQsIGZhUm91dGUsIGZhUnNzLCBmYVJzc1NxdWFyZSwgZmFSdWJsZVNpZ24sIGZhUnVsZXIsIGZhUnVsZXJDb21iaW5lZCwgZmFSdWxlckhvcml6b250YWwsIGZhUnVsZXJWZXJ0aWNhbCwgZmFSdW5uaW5nLCBmYVJ1cGVlU2lnbiwgZmFTYWRDcnksIGZhU2FkVGVhciwgZmFTYXRlbGxpdGUsIGZhU2F0ZWxsaXRlRGlzaCwgZmFTYXZlLCBmYVNjaG9vbCwgZmFTY3Jld2RyaXZlciwgZmFTY3JvbGwsIGZhU2RDYXJkLCBmYVNlYXJjaCwgZmFTZWFyY2hEb2xsYXIsIGZhU2VhcmNoTG9jYXRpb24sIGZhU2VhcmNoTWludXMsIGZhU2VhcmNoUGx1cywgZmFTZWVkbGluZywgZmFTZXJ2ZXIsIGZhU2hhcGVzLCBmYVNoYXJlLCBmYVNoYXJlQWx0LCBmYVNoYXJlQWx0U3F1YXJlLCBmYVNoYXJlU3F1YXJlLCBmYVNoZWtlbFNpZ24sIGZhU2hpZWxkQWx0LCBmYVNoaXAsIGZhU2hpcHBpbmdGYXN0LCBmYVNob2VQcmludHMsIGZhU2hvcHBpbmdCYWcsIGZhU2hvcHBpbmdCYXNrZXQsIGZhU2hvcHBpbmdDYXJ0LCBmYVNob3dlciwgZmFTaHV0dGxlVmFuLCBmYVNpZ24sIGZhU2lnbkluQWx0LCBmYVNpZ25MYW5ndWFnZSwgZmFTaWduT3V0QWx0LCBmYVNpZ25hbCwgZmFTaWduYXR1cmUsIGZhU2ltQ2FyZCwgZmFTaXRlbWFwLCBmYVNrYXRpbmcsIGZhU2tpaW5nLCBmYVNraWluZ05vcmRpYywgZmFTa3VsbCwgZmFTa3VsbENyb3NzYm9uZXMsIGZhU2xhc2gsIGZhU2xlaWdoLCBmYVNsaWRlcnNILCBmYVNtaWxlLCBmYVNtaWxlQmVhbSwgZmFTbWlsZVdpbmssIGZhU21vZywgZmFTbW9raW5nLCBmYVNtb2tpbmdCYW4sIGZhU21zLCBmYVNub3dib2FyZGluZywgZmFTbm93Zmxha2UsIGZhU25vd21hbiwgZmFTbm93cGxvdywgZmFTb2NrcywgZmFTb2xhclBhbmVsLCBmYVNvcnQsIGZhU29ydEFscGhhRG93biwgZmFTb3J0QWxwaGFEb3duQWx0LCBmYVNvcnRBbHBoYVVwLCBmYVNvcnRBbHBoYVVwQWx0LCBmYVNvcnRBbW91bnREb3duLCBmYVNvcnRBbW91bnREb3duQWx0LCBmYVNvcnRBbW91bnRVcCwgZmFTb3J0QW1vdW50VXBBbHQsIGZhU29ydERvd24sIGZhU29ydE51bWVyaWNEb3duLCBmYVNvcnROdW1lcmljRG93bkFsdCwgZmFTb3J0TnVtZXJpY1VwLCBmYVNvcnROdW1lcmljVXBBbHQsIGZhU29ydFVwLCBmYVNwYSwgZmFTcGFjZVNodXR0bGUsIGZhU3BlbGxDaGVjaywgZmFTcGlkZXIsIGZhU3Bpbm5lciwgZmFTcGxvdGNoLCBmYVNwcmF5Q2FuLCBmYVNxdWFyZSwgZmFTcXVhcmVGdWxsLCBmYVNxdWFyZVJvb3RBbHQsIGZhU3RhbXAsIGZhU3RhciwgZmFTdGFyQW5kQ3Jlc2NlbnQsIGZhU3RhckhhbGYsIGZhU3RhckhhbGZBbHQsIGZhU3Rhck9mRGF2aWQsIGZhU3Rhck9mTGlmZSwgZmFTdGVwQmFja3dhcmQsIGZhU3RlcEZvcndhcmQsIGZhU3RldGhvc2NvcGUsIGZhU3RpY2t5Tm90ZSwgZmFTdG9wLCBmYVN0b3BDaXJjbGUsIGZhU3RvcHdhdGNoLCBmYVN0b3JlLCBmYVN0b3JlQWx0LCBmYVN0cmVhbSwgZmFTdHJlZXRWaWV3LCBmYVN0cmlrZXRocm91Z2gsIGZhU3Ryb29wd2FmZWwsIGZhU3Vic2NyaXB0LCBmYVN1YndheSwgZmFTdWl0Y2FzZSwgZmFTdWl0Y2FzZVJvbGxpbmcsIGZhU3VuLCBmYVN1cGVyc2NyaXB0LCBmYVN1cnByaXNlLCBmYVN3YXRjaGJvb2ssIGZhU3dpbW1lciwgZmFTd2ltbWluZ1Bvb2wsIGZhU3luYWdvZ3VlLCBmYVN5bmMsIGZhU3luY0FsdCwgZmFTeXJpbmdlLCBmYVRhYmxlLCBmYVRhYmxlVGVubmlzLCBmYVRhYmxldCwgZmFUYWJsZXRBbHQsIGZhVGFibGV0cywgZmFUYWNob21ldGVyQWx0LCBmYVRhZywgZmFUYWdzLCBmYVRhcGUsIGZhVGFza3MsIGZhVGF4aSwgZmFUZWV0aCwgZmFUZWV0aE9wZW4sIGZhVGVtcGVyYXR1cmVIaWdoLCBmYVRlbXBlcmF0dXJlTG93LCBmYVRlbmdlLCBmYVRlcm1pbmFsLCBmYVRleHRIZWlnaHQsIGZhVGV4dFdpZHRoLCBmYVRoLCBmYVRoTGFyZ2UsIGZhVGhMaXN0LCBmYVRoZWF0ZXJNYXNrcywgZmFUaGVybW9tZXRlciwgZmFUaGVybW9tZXRlckVtcHR5LCBmYVRoZXJtb21ldGVyRnVsbCwgZmFUaGVybW9tZXRlckhhbGYsIGZhVGhlcm1vbWV0ZXJRdWFydGVyLCBmYVRoZXJtb21ldGVyVGhyZWVRdWFydGVycywgZmFUaHVtYnNEb3duLCBmYVRodW1ic1VwLCBmYVRodW1idGFjaywgZmFUaWNrZXRBbHQsIGZhVGltZXMsIGZhVGltZXNDaXJjbGUsIGZhVGludCwgZmFUaW50U2xhc2gsIGZhVGlyZWQsIGZhVG9nZ2xlT2ZmLCBmYVRvZ2dsZU9uLCBmYVRvaWxldCwgZmFUb2lsZXRQYXBlciwgZmFUb29sYm94LCBmYVRvb2xzLCBmYVRvb3RoLCBmYVRvcmFoLCBmYVRvcmlpR2F0ZSwgZmFUcmFjdG9yLCBmYVRyYWRlbWFyaywgZmFUcmFmZmljTGlnaHQsIGZhVHJhaW4sIGZhVHJhbSwgZmFUcmFuc2dlbmRlciwgZmFUcmFuc2dlbmRlckFsdCwgZmFUcmFzaCwgZmFUcmFzaEFsdCwgZmFUcmFzaFJlc3RvcmUsIGZhVHJhc2hSZXN0b3JlQWx0LCBmYVRyZWUsIGZhVHJvcGh5LCBmYVRydWNrLCBmYVRydWNrTG9hZGluZywgZmFUcnVja01vbnN0ZXIsIGZhVHJ1Y2tNb3ZpbmcsIGZhVHJ1Y2tQaWNrdXAsIGZhVHNoaXJ0LCBmYVR0eSwgZmFUdiwgZmFVbWJyZWxsYSwgZmFVbWJyZWxsYUJlYWNoLCBmYVVuZGVybGluZSwgZmFVbmRvLCBmYVVuZG9BbHQsIGZhVW5pdmVyc2FsQWNjZXNzLCBmYVVuaXZlcnNpdHksIGZhVW5saW5rLCBmYVVubG9jaywgZmFVbmxvY2tBbHQsIGZhVXBsb2FkLCBmYVVzZXIsIGZhVXNlckFsdCwgZmFVc2VyQWx0U2xhc2gsIGZhVXNlckFzdHJvbmF1dCwgZmFVc2VyQ2hlY2ssIGZhVXNlckNpcmNsZSwgZmFVc2VyQ2xvY2ssIGZhVXNlckNvZywgZmFVc2VyRWRpdCwgZmFVc2VyRnJpZW5kcywgZmFVc2VyR3JhZHVhdGUsIGZhVXNlckluanVyZWQsIGZhVXNlckxvY2ssIGZhVXNlck1kLCBmYVVzZXJNaW51cywgZmFVc2VyTmluamEsIGZhVXNlck51cnNlLCBmYVVzZXJQbHVzLCBmYVVzZXJTZWNyZXQsIGZhVXNlclNoaWVsZCwgZmFVc2VyU2xhc2gsIGZhVXNlclRhZywgZmFVc2VyVGllLCBmYVVzZXJUaW1lcywgZmFVc2VycywgZmFVc2Vyc0NvZywgZmFVdGVuc2lsU3Bvb24sIGZhVXRlbnNpbHMsIGZhVmVjdG9yU3F1YXJlLCBmYVZlbnVzLCBmYVZlbnVzRG91YmxlLCBmYVZlbnVzTWFycywgZmFWaWFsLCBmYVZpYWxzLCBmYVZpZGVvLCBmYVZpZGVvU2xhc2gsIGZhVmloYXJhLCBmYVZvaWNlbWFpbCwgZmFWb2xsZXliYWxsQmFsbCwgZmFWb2x1bWVEb3duLCBmYVZvbHVtZU11dGUsIGZhVm9sdW1lT2ZmLCBmYVZvbHVtZVVwLCBmYVZvdGVZZWEsIGZhVnJDYXJkYm9hcmQsIGZhV2Fsa2luZywgZmFXYWxsZXQsIGZhV2FyZWhvdXNlLCBmYVdhdGVyLCBmYVdhdmVTcXVhcmUsIGZhV2VpZ2h0LCBmYVdlaWdodEhhbmdpbmcsIGZhV2hlZWxjaGFpciwgZmFXaWZpLCBmYVdpbmQsIGZhV2luZG93Q2xvc2UsIGZhV2luZG93TWF4aW1pemUsIGZhV2luZG93TWluaW1pemUsIGZhV2luZG93UmVzdG9yZSwgZmFXaW5lQm90dGxlLCBmYVdpbmVHbGFzcywgZmFXaW5lR2xhc3NBbHQsIGZhV29uU2lnbiwgZmFXcmVuY2gsIGZhWFJheSwgZmFZZW5TaWduLCBmYVlpbllhbmcgfTtcbiIsIm1vZHVsZS5leHBvcnRzID0gYWZ0ZXJcblxuZnVuY3Rpb24gYWZ0ZXIoY291bnQsIGNhbGxiYWNrLCBlcnJfY2IpIHtcbiAgICB2YXIgYmFpbCA9IGZhbHNlXG4gICAgZXJyX2NiID0gZXJyX2NiIHx8IG5vb3BcbiAgICBwcm94eS5jb3VudCA9IGNvdW50XG5cbiAgICByZXR1cm4gKGNvdW50ID09PSAwKSA/IGNhbGxiYWNrKCkgOiBwcm94eVxuXG4gICAgZnVuY3Rpb24gcHJveHkoZXJyLCByZXN1bHQpIHtcbiAgICAgICAgaWYgKHByb3h5LmNvdW50IDw9IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYWZ0ZXIgY2FsbGVkIHRvbyBtYW55IHRpbWVzJylcbiAgICAgICAgfVxuICAgICAgICAtLXByb3h5LmNvdW50XG5cbiAgICAgICAgLy8gYWZ0ZXIgZmlyc3QgZXJyb3IsIHJlc3QgYXJlIHBhc3NlZCB0byBlcnJfY2JcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgYmFpbCA9IHRydWVcbiAgICAgICAgICAgIGNhbGxiYWNrKGVycilcbiAgICAgICAgICAgIC8vIGZ1dHVyZSBlcnJvciBjYWxsYmFja3Mgd2lsbCBnbyB0byBlcnJvciBoYW5kbGVyXG4gICAgICAgICAgICBjYWxsYmFjayA9IGVycl9jYlxuICAgICAgICB9IGVsc2UgaWYgKHByb3h5LmNvdW50ID09PSAwICYmICFiYWlsKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhudWxsLCByZXN1bHQpXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuIiwiLyoqXG4gKiBBbiBhYnN0cmFjdGlvbiBmb3Igc2xpY2luZyBhbiBhcnJheWJ1ZmZlciBldmVuIHdoZW5cbiAqIEFycmF5QnVmZmVyLnByb3RvdHlwZS5zbGljZSBpcyBub3Qgc3VwcG9ydGVkXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGFycmF5YnVmZmVyLCBzdGFydCwgZW5kKSB7XG4gIHZhciBieXRlcyA9IGFycmF5YnVmZmVyLmJ5dGVMZW5ndGg7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMDtcbiAgZW5kID0gZW5kIHx8IGJ5dGVzO1xuXG4gIGlmIChhcnJheWJ1ZmZlci5zbGljZSkgeyByZXR1cm4gYXJyYXlidWZmZXIuc2xpY2Uoc3RhcnQsIGVuZCk7IH1cblxuICBpZiAoc3RhcnQgPCAwKSB7IHN0YXJ0ICs9IGJ5dGVzOyB9XG4gIGlmIChlbmQgPCAwKSB7IGVuZCArPSBieXRlczsgfVxuICBpZiAoZW5kID4gYnl0ZXMpIHsgZW5kID0gYnl0ZXM7IH1cblxuICBpZiAoc3RhcnQgPj0gYnl0ZXMgfHwgc3RhcnQgPj0gZW5kIHx8IGJ5dGVzID09PSAwKSB7XG4gICAgcmV0dXJuIG5ldyBBcnJheUJ1ZmZlcigwKTtcbiAgfVxuXG4gIHZhciBhYnYgPSBuZXcgVWludDhBcnJheShhcnJheWJ1ZmZlcik7XG4gIHZhciByZXN1bHQgPSBuZXcgVWludDhBcnJheShlbmQgLSBzdGFydCk7XG4gIGZvciAodmFyIGkgPSBzdGFydCwgaWkgPSAwOyBpIDwgZW5kOyBpKyssIGlpKyspIHtcbiAgICByZXN1bHRbaWldID0gYWJ2W2ldO1xuICB9XG4gIHJldHVybiByZXN1bHQuYnVmZmVyO1xufTtcbiIsIlxuLyoqXG4gKiBFeHBvc2UgYEJhY2tvZmZgLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gQmFja29mZjtcblxuLyoqXG4gKiBJbml0aWFsaXplIGJhY2tvZmYgdGltZXIgd2l0aCBgb3B0c2AuXG4gKlxuICogLSBgbWluYCBpbml0aWFsIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIFsxMDBdXG4gKiAtIGBtYXhgIG1heCB0aW1lb3V0IFsxMDAwMF1cbiAqIC0gYGppdHRlcmAgWzBdXG4gKiAtIGBmYWN0b3JgIFsyXVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIEJhY2tvZmYob3B0cykge1xuICBvcHRzID0gb3B0cyB8fCB7fTtcbiAgdGhpcy5tcyA9IG9wdHMubWluIHx8IDEwMDtcbiAgdGhpcy5tYXggPSBvcHRzLm1heCB8fCAxMDAwMDtcbiAgdGhpcy5mYWN0b3IgPSBvcHRzLmZhY3RvciB8fCAyO1xuICB0aGlzLmppdHRlciA9IG9wdHMuaml0dGVyID4gMCAmJiBvcHRzLmppdHRlciA8PSAxID8gb3B0cy5qaXR0ZXIgOiAwO1xuICB0aGlzLmF0dGVtcHRzID0gMDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGJhY2tvZmYgZHVyYXRpb24uXG4gKlxuICogQHJldHVybiB7TnVtYmVyfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5CYWNrb2ZmLnByb3RvdHlwZS5kdXJhdGlvbiA9IGZ1bmN0aW9uKCl7XG4gIHZhciBtcyA9IHRoaXMubXMgKiBNYXRoLnBvdyh0aGlzLmZhY3RvciwgdGhpcy5hdHRlbXB0cysrKTtcbiAgaWYgKHRoaXMuaml0dGVyKSB7XG4gICAgdmFyIHJhbmQgPSAgTWF0aC5yYW5kb20oKTtcbiAgICB2YXIgZGV2aWF0aW9uID0gTWF0aC5mbG9vcihyYW5kICogdGhpcy5qaXR0ZXIgKiBtcyk7XG4gICAgbXMgPSAoTWF0aC5mbG9vcihyYW5kICogMTApICYgMSkgPT0gMCAgPyBtcyAtIGRldmlhdGlvbiA6IG1zICsgZGV2aWF0aW9uO1xuICB9XG4gIHJldHVybiBNYXRoLm1pbihtcywgdGhpcy5tYXgpIHwgMDtcbn07XG5cbi8qKlxuICogUmVzZXQgdGhlIG51bWJlciBvZiBhdHRlbXB0cy5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkJhY2tvZmYucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24oKXtcbiAgdGhpcy5hdHRlbXB0cyA9IDA7XG59O1xuXG4vKipcbiAqIFNldCB0aGUgbWluaW11bSBkdXJhdGlvblxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuQmFja29mZi5wcm90b3R5cGUuc2V0TWluID0gZnVuY3Rpb24obWluKXtcbiAgdGhpcy5tcyA9IG1pbjtcbn07XG5cbi8qKlxuICogU2V0IHRoZSBtYXhpbXVtIGR1cmF0aW9uXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5CYWNrb2ZmLnByb3RvdHlwZS5zZXRNYXggPSBmdW5jdGlvbihtYXgpe1xuICB0aGlzLm1heCA9IG1heDtcbn07XG5cbi8qKlxuICogU2V0IHRoZSBqaXR0ZXJcbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkJhY2tvZmYucHJvdG90eXBlLnNldEppdHRlciA9IGZ1bmN0aW9uKGppdHRlcil7XG4gIHRoaXMuaml0dGVyID0gaml0dGVyO1xufTtcblxuIiwiLypcbiAqIGJhc2U2NC1hcnJheWJ1ZmZlclxuICogaHR0cHM6Ly9naXRodWIuY29tL25pa2xhc3ZoL2Jhc2U2NC1hcnJheWJ1ZmZlclxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiBOaWtsYXMgdm9uIEhlcnR6ZW5cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqL1xuKGZ1bmN0aW9uKCl7XG4gIFwidXNlIHN0cmljdFwiO1xuXG4gIHZhciBjaGFycyA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL1wiO1xuXG4gIC8vIFVzZSBhIGxvb2t1cCB0YWJsZSB0byBmaW5kIHRoZSBpbmRleC5cbiAgdmFyIGxvb2t1cCA9IG5ldyBVaW50OEFycmF5KDI1Nik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY2hhcnMubGVuZ3RoOyBpKyspIHtcbiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpO1xuICB9XG5cbiAgZXhwb3J0cy5lbmNvZGUgPSBmdW5jdGlvbihhcnJheWJ1ZmZlcikge1xuICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSxcbiAgICBpLCBsZW4gPSBieXRlcy5sZW5ndGgsIGJhc2U2NCA9IFwiXCI7XG5cbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKz0zKSB7XG4gICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaV0gPj4gMl07XG4gICAgICBiYXNlNjQgKz0gY2hhcnNbKChieXRlc1tpXSAmIDMpIDw8IDQpIHwgKGJ5dGVzW2kgKyAxXSA+PiA0KV07XG4gICAgICBiYXNlNjQgKz0gY2hhcnNbKChieXRlc1tpICsgMV0gJiAxNSkgPDwgMikgfCAoYnl0ZXNbaSArIDJdID4+IDYpXTtcbiAgICAgIGJhc2U2NCArPSBjaGFyc1tieXRlc1tpICsgMl0gJiA2M107XG4gICAgfVxuXG4gICAgaWYgKChsZW4gJSAzKSA9PT0gMikge1xuICAgICAgYmFzZTY0ID0gYmFzZTY0LnN1YnN0cmluZygwLCBiYXNlNjQubGVuZ3RoIC0gMSkgKyBcIj1cIjtcbiAgICB9IGVsc2UgaWYgKGxlbiAlIDMgPT09IDEpIHtcbiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgXCI9PVwiO1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlNjQ7XG4gIH07XG5cbiAgZXhwb3J0cy5kZWNvZGUgPSAgZnVuY3Rpb24oYmFzZTY0KSB7XG4gICAgdmFyIGJ1ZmZlckxlbmd0aCA9IGJhc2U2NC5sZW5ndGggKiAwLjc1LFxuICAgIGxlbiA9IGJhc2U2NC5sZW5ndGgsIGksIHAgPSAwLFxuICAgIGVuY29kZWQxLCBlbmNvZGVkMiwgZW5jb2RlZDMsIGVuY29kZWQ0O1xuXG4gICAgaWYgKGJhc2U2NFtiYXNlNjQubGVuZ3RoIC0gMV0gPT09IFwiPVwiKSB7XG4gICAgICBidWZmZXJMZW5ndGgtLTtcbiAgICAgIGlmIChiYXNlNjRbYmFzZTY0Lmxlbmd0aCAtIDJdID09PSBcIj1cIikge1xuICAgICAgICBidWZmZXJMZW5ndGgtLTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgYXJyYXlidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoYnVmZmVyTGVuZ3RoKSxcbiAgICBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKTtcblxuICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrPTQpIHtcbiAgICAgIGVuY29kZWQxID0gbG9va3VwW2Jhc2U2NC5jaGFyQ29kZUF0KGkpXTtcbiAgICAgIGVuY29kZWQyID0gbG9va3VwW2Jhc2U2NC5jaGFyQ29kZUF0KGkrMSldO1xuICAgICAgZW5jb2RlZDMgPSBsb29rdXBbYmFzZTY0LmNoYXJDb2RlQXQoaSsyKV07XG4gICAgICBlbmNvZGVkNCA9IGxvb2t1cFtiYXNlNjQuY2hhckNvZGVBdChpKzMpXTtcblxuICAgICAgYnl0ZXNbcCsrXSA9IChlbmNvZGVkMSA8PCAyKSB8IChlbmNvZGVkMiA+PiA0KTtcbiAgICAgIGJ5dGVzW3ArK10gPSAoKGVuY29kZWQyICYgMTUpIDw8IDQpIHwgKGVuY29kZWQzID4+IDIpO1xuICAgICAgYnl0ZXNbcCsrXSA9ICgoZW5jb2RlZDMgJiAzKSA8PCA2KSB8IChlbmNvZGVkNCAmIDYzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyYXlidWZmZXI7XG4gIH07XG59KSgpO1xuIiwiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydHMuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGhcbmV4cG9ydHMudG9CeXRlQXJyYXkgPSB0b0J5dGVBcnJheVxuZXhwb3J0cy5mcm9tQnl0ZUFycmF5ID0gZnJvbUJ5dGVBcnJheVxuXG52YXIgbG9va3VwID0gW11cbnZhciByZXZMb29rdXAgPSBbXVxudmFyIEFyciA9IHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJyA/IFVpbnQ4QXJyYXkgOiBBcnJheVxuXG52YXIgY29kZSA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJ1xuZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNvZGUubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgbG9va3VwW2ldID0gY29kZVtpXVxuICByZXZMb29rdXBbY29kZS5jaGFyQ29kZUF0KGkpXSA9IGlcbn1cblxuLy8gU3VwcG9ydCBkZWNvZGluZyBVUkwtc2FmZSBiYXNlNjQgc3RyaW5ncywgYXMgTm9kZS5qcyBkb2VzLlxuLy8gU2VlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYXNlNjQjVVJMX2FwcGxpY2F0aW9uc1xucmV2TG9va3VwWyctJy5jaGFyQ29kZUF0KDApXSA9IDYyXG5yZXZMb29rdXBbJ18nLmNoYXJDb2RlQXQoMCldID0gNjNcblxuZnVuY3Rpb24gZ2V0TGVucyAoYjY0KSB7XG4gIHZhciBsZW4gPSBiNjQubGVuZ3RoXG5cbiAgaWYgKGxlbiAlIDQgPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0JylcbiAgfVxuXG4gIC8vIFRyaW0gb2ZmIGV4dHJhIGJ5dGVzIGFmdGVyIHBsYWNlaG9sZGVyIGJ5dGVzIGFyZSBmb3VuZFxuICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZWF0Z2FtbWl0L2Jhc2U2NC1qcy9pc3N1ZXMvNDJcbiAgdmFyIHZhbGlkTGVuID0gYjY0LmluZGV4T2YoJz0nKVxuICBpZiAodmFsaWRMZW4gPT09IC0xKSB2YWxpZExlbiA9IGxlblxuXG4gIHZhciBwbGFjZUhvbGRlcnNMZW4gPSB2YWxpZExlbiA9PT0gbGVuXG4gICAgPyAwXG4gICAgOiA0IC0gKHZhbGlkTGVuICUgNClcblxuICByZXR1cm4gW3ZhbGlkTGVuLCBwbGFjZUhvbGRlcnNMZW5dXG59XG5cbi8vIGJhc2U2NCBpcyA0LzMgKyB1cCB0byB0d28gY2hhcmFjdGVycyBvZiB0aGUgb3JpZ2luYWwgZGF0YVxuZnVuY3Rpb24gYnl0ZUxlbmd0aCAoYjY0KSB7XG4gIHZhciBsZW5zID0gZ2V0TGVucyhiNjQpXG4gIHZhciB2YWxpZExlbiA9IGxlbnNbMF1cbiAgdmFyIHBsYWNlSG9sZGVyc0xlbiA9IGxlbnNbMV1cbiAgcmV0dXJuICgodmFsaWRMZW4gKyBwbGFjZUhvbGRlcnNMZW4pICogMyAvIDQpIC0gcGxhY2VIb2xkZXJzTGVuXG59XG5cbmZ1bmN0aW9uIF9ieXRlTGVuZ3RoIChiNjQsIHZhbGlkTGVuLCBwbGFjZUhvbGRlcnNMZW4pIHtcbiAgcmV0dXJuICgodmFsaWRMZW4gKyBwbGFjZUhvbGRlcnNMZW4pICogMyAvIDQpIC0gcGxhY2VIb2xkZXJzTGVuXG59XG5cbmZ1bmN0aW9uIHRvQnl0ZUFycmF5IChiNjQpIHtcbiAgdmFyIHRtcFxuICB2YXIgbGVucyA9IGdldExlbnMoYjY0KVxuICB2YXIgdmFsaWRMZW4gPSBsZW5zWzBdXG4gIHZhciBwbGFjZUhvbGRlcnNMZW4gPSBsZW5zWzFdXG5cbiAgdmFyIGFyciA9IG5ldyBBcnIoX2J5dGVMZW5ndGgoYjY0LCB2YWxpZExlbiwgcGxhY2VIb2xkZXJzTGVuKSlcblxuICB2YXIgY3VyQnl0ZSA9IDBcblxuICAvLyBpZiB0aGVyZSBhcmUgcGxhY2Vob2xkZXJzLCBvbmx5IGdldCB1cCB0byB0aGUgbGFzdCBjb21wbGV0ZSA0IGNoYXJzXG4gIHZhciBsZW4gPSBwbGFjZUhvbGRlcnNMZW4gPiAwXG4gICAgPyB2YWxpZExlbiAtIDRcbiAgICA6IHZhbGlkTGVuXG5cbiAgdmFyIGlcbiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSA0KSB7XG4gICAgdG1wID1cbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSldIDw8IDE4KSB8XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAxKV0gPDwgMTIpIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDIpXSA8PCA2KSB8XG4gICAgICByZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDMpXVxuICAgIGFycltjdXJCeXRlKytdID0gKHRtcCA+PiAxNikgJiAweEZGXG4gICAgYXJyW2N1ckJ5dGUrK10gPSAodG1wID4+IDgpICYgMHhGRlxuICAgIGFycltjdXJCeXRlKytdID0gdG1wICYgMHhGRlxuICB9XG5cbiAgaWYgKHBsYWNlSG9sZGVyc0xlbiA9PT0gMikge1xuICAgIHRtcCA9XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkpXSA8PCAyKSB8XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAxKV0gPj4gNClcbiAgICBhcnJbY3VyQnl0ZSsrXSA9IHRtcCAmIDB4RkZcbiAgfVxuXG4gIGlmIChwbGFjZUhvbGRlcnNMZW4gPT09IDEpIHtcbiAgICB0bXAgPVxuICAgICAgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpKV0gPDwgMTApIHxcbiAgICAgIChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA8PCA0KSB8XG4gICAgICAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAyKV0gPj4gMilcbiAgICBhcnJbY3VyQnl0ZSsrXSA9ICh0bXAgPj4gOCkgJiAweEZGXG4gICAgYXJyW2N1ckJ5dGUrK10gPSB0bXAgJiAweEZGXG4gIH1cblxuICByZXR1cm4gYXJyXG59XG5cbmZ1bmN0aW9uIHRyaXBsZXRUb0Jhc2U2NCAobnVtKSB7XG4gIHJldHVybiBsb29rdXBbbnVtID4+IDE4ICYgMHgzRl0gK1xuICAgIGxvb2t1cFtudW0gPj4gMTIgJiAweDNGXSArXG4gICAgbG9va3VwW251bSA+PiA2ICYgMHgzRl0gK1xuICAgIGxvb2t1cFtudW0gJiAweDNGXVxufVxuXG5mdW5jdGlvbiBlbmNvZGVDaHVuayAodWludDgsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIHRtcFxuICB2YXIgb3V0cHV0ID0gW11cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpICs9IDMpIHtcbiAgICB0bXAgPVxuICAgICAgKCh1aW50OFtpXSA8PCAxNikgJiAweEZGMDAwMCkgK1xuICAgICAgKCh1aW50OFtpICsgMV0gPDwgOCkgJiAweEZGMDApICtcbiAgICAgICh1aW50OFtpICsgMl0gJiAweEZGKVxuICAgIG91dHB1dC5wdXNoKHRyaXBsZXRUb0Jhc2U2NCh0bXApKVxuICB9XG4gIHJldHVybiBvdXRwdXQuam9pbignJylcbn1cblxuZnVuY3Rpb24gZnJvbUJ5dGVBcnJheSAodWludDgpIHtcbiAgdmFyIHRtcFxuICB2YXIgbGVuID0gdWludDgubGVuZ3RoXG4gIHZhciBleHRyYUJ5dGVzID0gbGVuICUgMyAvLyBpZiB3ZSBoYXZlIDEgYnl0ZSBsZWZ0LCBwYWQgMiBieXRlc1xuICB2YXIgcGFydHMgPSBbXVxuICB2YXIgbWF4Q2h1bmtMZW5ndGggPSAxNjM4MyAvLyBtdXN0IGJlIG11bHRpcGxlIG9mIDNcblxuICAvLyBnbyB0aHJvdWdoIHRoZSBhcnJheSBldmVyeSB0aHJlZSBieXRlcywgd2UnbGwgZGVhbCB3aXRoIHRyYWlsaW5nIHN0dWZmIGxhdGVyXG4gIGZvciAodmFyIGkgPSAwLCBsZW4yID0gbGVuIC0gZXh0cmFCeXRlczsgaSA8IGxlbjI7IGkgKz0gbWF4Q2h1bmtMZW5ndGgpIHtcbiAgICBwYXJ0cy5wdXNoKGVuY29kZUNodW5rKFxuICAgICAgdWludDgsIGksIChpICsgbWF4Q2h1bmtMZW5ndGgpID4gbGVuMiA/IGxlbjIgOiAoaSArIG1heENodW5rTGVuZ3RoKVxuICAgICkpXG4gIH1cblxuICAvLyBwYWQgdGhlIGVuZCB3aXRoIHplcm9zLCBidXQgbWFrZSBzdXJlIHRvIG5vdCBmb3JnZXQgdGhlIGV4dHJhIGJ5dGVzXG4gIGlmIChleHRyYUJ5dGVzID09PSAxKSB7XG4gICAgdG1wID0gdWludDhbbGVuIC0gMV1cbiAgICBwYXJ0cy5wdXNoKFxuICAgICAgbG9va3VwW3RtcCA+PiAyXSArXG4gICAgICBsb29rdXBbKHRtcCA8PCA0KSAmIDB4M0ZdICtcbiAgICAgICc9PSdcbiAgICApXG4gIH0gZWxzZSBpZiAoZXh0cmFCeXRlcyA9PT0gMikge1xuICAgIHRtcCA9ICh1aW50OFtsZW4gLSAyXSA8PCA4KSArIHVpbnQ4W2xlbiAtIDFdXG4gICAgcGFydHMucHVzaChcbiAgICAgIGxvb2t1cFt0bXAgPj4gMTBdICtcbiAgICAgIGxvb2t1cFsodG1wID4+IDQpICYgMHgzRl0gK1xuICAgICAgbG9va3VwWyh0bXAgPDwgMikgJiAweDNGXSArXG4gICAgICAnPSdcbiAgICApXG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbignJylcbn1cbiIsIi8qKlxyXG4gKiBDcmVhdGUgYSBibG9iIGJ1aWxkZXIgZXZlbiB3aGVuIHZlbmRvciBwcmVmaXhlcyBleGlzdFxyXG4gKi9cclxuXHJcbnZhciBCbG9iQnVpbGRlciA9IHR5cGVvZiBCbG9iQnVpbGRlciAhPT0gJ3VuZGVmaW5lZCcgPyBCbG9iQnVpbGRlciA6XHJcbiAgdHlwZW9mIFdlYktpdEJsb2JCdWlsZGVyICE9PSAndW5kZWZpbmVkJyA/IFdlYktpdEJsb2JCdWlsZGVyIDpcclxuICB0eXBlb2YgTVNCbG9iQnVpbGRlciAhPT0gJ3VuZGVmaW5lZCcgPyBNU0Jsb2JCdWlsZGVyIDpcclxuICB0eXBlb2YgTW96QmxvYkJ1aWxkZXIgIT09ICd1bmRlZmluZWQnID8gTW96QmxvYkJ1aWxkZXIgOiBcclxuICBmYWxzZTtcclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiBCbG9iIGNvbnN0cnVjdG9yIGlzIHN1cHBvcnRlZFxyXG4gKi9cclxuXHJcbnZhciBibG9iU3VwcG9ydGVkID0gKGZ1bmN0aW9uKCkge1xyXG4gIHRyeSB7XHJcbiAgICB2YXIgYSA9IG5ldyBCbG9iKFsnaGknXSk7XHJcbiAgICByZXR1cm4gYS5zaXplID09PSAyO1xyXG4gIH0gY2F0Y2goZSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufSkoKTtcclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiBCbG9iIGNvbnN0cnVjdG9yIHN1cHBvcnRzIEFycmF5QnVmZmVyVmlld3NcclxuICogRmFpbHMgaW4gU2FmYXJpIDYsIHNvIHdlIG5lZWQgdG8gbWFwIHRvIEFycmF5QnVmZmVycyB0aGVyZS5cclxuICovXHJcblxyXG52YXIgYmxvYlN1cHBvcnRzQXJyYXlCdWZmZXJWaWV3ID0gYmxvYlN1cHBvcnRlZCAmJiAoZnVuY3Rpb24oKSB7XHJcbiAgdHJ5IHtcclxuICAgIHZhciBiID0gbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KFsxLDJdKV0pO1xyXG4gICAgcmV0dXJuIGIuc2l6ZSA9PT0gMjtcclxuICB9IGNhdGNoKGUpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn0pKCk7XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgQmxvYkJ1aWxkZXIgaXMgc3VwcG9ydGVkXHJcbiAqL1xyXG5cclxudmFyIGJsb2JCdWlsZGVyU3VwcG9ydGVkID0gQmxvYkJ1aWxkZXJcclxuICAmJiBCbG9iQnVpbGRlci5wcm90b3R5cGUuYXBwZW5kXHJcbiAgJiYgQmxvYkJ1aWxkZXIucHJvdG90eXBlLmdldEJsb2I7XHJcblxyXG4vKipcclxuICogSGVscGVyIGZ1bmN0aW9uIHRoYXQgbWFwcyBBcnJheUJ1ZmZlclZpZXdzIHRvIEFycmF5QnVmZmVyc1xyXG4gKiBVc2VkIGJ5IEJsb2JCdWlsZGVyIGNvbnN0cnVjdG9yIGFuZCBvbGQgYnJvd3NlcnMgdGhhdCBkaWRuJ3RcclxuICogc3VwcG9ydCBpdCBpbiB0aGUgQmxvYiBjb25zdHJ1Y3Rvci5cclxuICovXHJcblxyXG5mdW5jdGlvbiBtYXBBcnJheUJ1ZmZlclZpZXdzKGFyeSkge1xyXG4gIHJldHVybiBhcnkubWFwKGZ1bmN0aW9uKGNodW5rKSB7XHJcbiAgICBpZiAoY2h1bmsuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcclxuICAgICAgdmFyIGJ1ZiA9IGNodW5rLmJ1ZmZlcjtcclxuXHJcbiAgICAgIC8vIGlmIHRoaXMgaXMgYSBzdWJhcnJheSwgbWFrZSBhIGNvcHkgc28gd2Ugb25seVxyXG4gICAgICAvLyBpbmNsdWRlIHRoZSBzdWJhcnJheSByZWdpb24gZnJvbSB0aGUgdW5kZXJseWluZyBidWZmZXJcclxuICAgICAgaWYgKGNodW5rLmJ5dGVMZW5ndGggIT09IGJ1Zi5ieXRlTGVuZ3RoKSB7XHJcbiAgICAgICAgdmFyIGNvcHkgPSBuZXcgVWludDhBcnJheShjaHVuay5ieXRlTGVuZ3RoKTtcclxuICAgICAgICBjb3B5LnNldChuZXcgVWludDhBcnJheShidWYsIGNodW5rLmJ5dGVPZmZzZXQsIGNodW5rLmJ5dGVMZW5ndGgpKTtcclxuICAgICAgICBidWYgPSBjb3B5LmJ1ZmZlcjtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGJ1ZjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2h1bms7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIEJsb2JCdWlsZGVyQ29uc3RydWN0b3IoYXJ5LCBvcHRpb25zKSB7XHJcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XHJcblxyXG4gIHZhciBiYiA9IG5ldyBCbG9iQnVpbGRlcigpO1xyXG4gIG1hcEFycmF5QnVmZmVyVmlld3MoYXJ5KS5mb3JFYWNoKGZ1bmN0aW9uKHBhcnQpIHtcclxuICAgIGJiLmFwcGVuZChwYXJ0KTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIChvcHRpb25zLnR5cGUpID8gYmIuZ2V0QmxvYihvcHRpb25zLnR5cGUpIDogYmIuZ2V0QmxvYigpO1xyXG59O1xyXG5cclxuZnVuY3Rpb24gQmxvYkNvbnN0cnVjdG9yKGFyeSwgb3B0aW9ucykge1xyXG4gIHJldHVybiBuZXcgQmxvYihtYXBBcnJheUJ1ZmZlclZpZXdzKGFyeSksIG9wdGlvbnMgfHwge30pO1xyXG59O1xyXG5cclxuaWYgKHR5cGVvZiBCbG9iICE9PSAndW5kZWZpbmVkJykge1xyXG4gIEJsb2JCdWlsZGVyQ29uc3RydWN0b3IucHJvdG90eXBlID0gQmxvYi5wcm90b3R5cGU7XHJcbiAgQmxvYkNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IEJsb2IucHJvdG90eXBlO1xyXG59XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IChmdW5jdGlvbigpIHtcclxuICBpZiAoYmxvYlN1cHBvcnRlZCkge1xyXG4gICAgcmV0dXJuIGJsb2JTdXBwb3J0c0FycmF5QnVmZmVyVmlldyA/IEJsb2IgOiBCbG9iQ29uc3RydWN0b3I7XHJcbiAgfSBlbHNlIGlmIChibG9iQnVpbGRlclN1cHBvcnRlZCkge1xyXG4gICAgcmV0dXJuIEJsb2JCdWlsZGVyQ29uc3RydWN0b3I7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG59KSgpO1xyXG4iLCIvKiFcbiAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLlxuICpcbiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxmZXJvc3NAZmVyb3NzLm9yZz4gPGh0dHA6Ly9mZXJvc3Mub3JnPlxuICogQGxpY2Vuc2UgIE1JVFxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xuXG4ndXNlIHN0cmljdCdcblxudmFyIGJhc2U2NCA9IHJlcXVpcmUoJ2Jhc2U2NC1qcycpXG52YXIgaWVlZTc1NCA9IHJlcXVpcmUoJ2llZWU3NTQnKVxudmFyIGlzQXJyYXkgPSByZXF1aXJlKCdpc2FycmF5JylcblxuZXhwb3J0cy5CdWZmZXIgPSBCdWZmZXJcbmV4cG9ydHMuU2xvd0J1ZmZlciA9IFNsb3dCdWZmZXJcbmV4cG9ydHMuSU5TUEVDVF9NQVhfQllURVMgPSA1MFxuXG4vKipcbiAqIElmIGBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVGA6XG4gKiAgID09PSB0cnVlICAgIFVzZSBVaW50OEFycmF5IGltcGxlbWVudGF0aW9uIChmYXN0ZXN0KVxuICogICA9PT0gZmFsc2UgICBVc2UgT2JqZWN0IGltcGxlbWVudGF0aW9uIChtb3N0IGNvbXBhdGlibGUsIGV2ZW4gSUU2KVxuICpcbiAqIEJyb3dzZXJzIHRoYXQgc3VwcG9ydCB0eXBlZCBhcnJheXMgYXJlIElFIDEwKywgRmlyZWZveCA0KywgQ2hyb21lIDcrLCBTYWZhcmkgNS4xKyxcbiAqIE9wZXJhIDExLjYrLCBpT1MgNC4yKy5cbiAqXG4gKiBEdWUgdG8gdmFyaW91cyBicm93c2VyIGJ1Z3MsIHNvbWV0aW1lcyB0aGUgT2JqZWN0IGltcGxlbWVudGF0aW9uIHdpbGwgYmUgdXNlZCBldmVuXG4gKiB3aGVuIHRoZSBicm93c2VyIHN1cHBvcnRzIHR5cGVkIGFycmF5cy5cbiAqXG4gKiBOb3RlOlxuICpcbiAqICAgLSBGaXJlZm94IDQtMjkgbGFja3Mgc3VwcG9ydCBmb3IgYWRkaW5nIG5ldyBwcm9wZXJ0aWVzIHRvIGBVaW50OEFycmF5YCBpbnN0YW5jZXMsXG4gKiAgICAgU2VlOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU0MzguXG4gKlxuICogICAtIENocm9tZSA5LTEwIGlzIG1pc3NpbmcgdGhlIGBUeXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheWAgZnVuY3Rpb24uXG4gKlxuICogICAtIElFMTAgaGFzIGEgYnJva2VuIGBUeXBlZEFycmF5LnByb3RvdHlwZS5zdWJhcnJheWAgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBhcnJheXMgb2ZcbiAqICAgICBpbmNvcnJlY3QgbGVuZ3RoIGluIHNvbWUgc2l0dWF0aW9ucy5cblxuICogV2UgZGV0ZWN0IHRoZXNlIGJ1Z2d5IGJyb3dzZXJzIGFuZCBzZXQgYEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUYCB0byBgZmFsc2VgIHNvIHRoZXlcbiAqIGdldCB0aGUgT2JqZWN0IGltcGxlbWVudGF0aW9uLCB3aGljaCBpcyBzbG93ZXIgYnV0IGJlaGF2ZXMgY29ycmVjdGx5LlxuICovXG5CdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCA9IGdsb2JhbC5UWVBFRF9BUlJBWV9TVVBQT1JUICE9PSB1bmRlZmluZWRcbiAgPyBnbG9iYWwuVFlQRURfQVJSQVlfU1VQUE9SVFxuICA6IHR5cGVkQXJyYXlTdXBwb3J0KClcblxuLypcbiAqIEV4cG9ydCBrTWF4TGVuZ3RoIGFmdGVyIHR5cGVkIGFycmF5IHN1cHBvcnQgaXMgZGV0ZXJtaW5lZC5cbiAqL1xuZXhwb3J0cy5rTWF4TGVuZ3RoID0ga01heExlbmd0aCgpXG5cbmZ1bmN0aW9uIHR5cGVkQXJyYXlTdXBwb3J0ICgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkoMSlcbiAgICBhcnIuX19wcm90b19fID0ge19fcHJvdG9fXzogVWludDhBcnJheS5wcm90b3R5cGUsIGZvbzogZnVuY3Rpb24gKCkgeyByZXR1cm4gNDIgfX1cbiAgICByZXR1cm4gYXJyLmZvbygpID09PSA0MiAmJiAvLyB0eXBlZCBhcnJheSBpbnN0YW5jZXMgY2FuIGJlIGF1Z21lbnRlZFxuICAgICAgICB0eXBlb2YgYXJyLnN1YmFycmF5ID09PSAnZnVuY3Rpb24nICYmIC8vIGNocm9tZSA5LTEwIGxhY2sgYHN1YmFycmF5YFxuICAgICAgICBhcnIuc3ViYXJyYXkoMSwgMSkuYnl0ZUxlbmd0aCA9PT0gMCAvLyBpZTEwIGhhcyBicm9rZW4gYHN1YmFycmF5YFxuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuZnVuY3Rpb24ga01heExlbmd0aCAoKSB7XG4gIHJldHVybiBCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVFxuICAgID8gMHg3ZmZmZmZmZlxuICAgIDogMHgzZmZmZmZmZlxufVxuXG5mdW5jdGlvbiBjcmVhdGVCdWZmZXIgKHRoYXQsIGxlbmd0aCkge1xuICBpZiAoa01heExlbmd0aCgpIDwgbGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0ludmFsaWQgdHlwZWQgYXJyYXkgbGVuZ3RoJylcbiAgfVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICAvLyBSZXR1cm4gYW4gYXVnbWVudGVkIGBVaW50OEFycmF5YCBpbnN0YW5jZSwgZm9yIGJlc3QgcGVyZm9ybWFuY2VcbiAgICB0aGF0ID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKVxuICAgIHRoYXQuX19wcm90b19fID0gQnVmZmVyLnByb3RvdHlwZVxuICB9IGVsc2Uge1xuICAgIC8vIEZhbGxiYWNrOiBSZXR1cm4gYW4gb2JqZWN0IGluc3RhbmNlIG9mIHRoZSBCdWZmZXIgY2xhc3NcbiAgICBpZiAodGhhdCA9PT0gbnVsbCkge1xuICAgICAgdGhhdCA9IG5ldyBCdWZmZXIobGVuZ3RoKVxuICAgIH1cbiAgICB0aGF0Lmxlbmd0aCA9IGxlbmd0aFxuICB9XG5cbiAgcmV0dXJuIHRoYXRcbn1cblxuLyoqXG4gKiBUaGUgQnVmZmVyIGNvbnN0cnVjdG9yIHJldHVybnMgaW5zdGFuY2VzIG9mIGBVaW50OEFycmF5YCB0aGF0IGhhdmUgdGhlaXJcbiAqIHByb3RvdHlwZSBjaGFuZ2VkIHRvIGBCdWZmZXIucHJvdG90eXBlYC4gRnVydGhlcm1vcmUsIGBCdWZmZXJgIGlzIGEgc3ViY2xhc3Mgb2ZcbiAqIGBVaW50OEFycmF5YCwgc28gdGhlIHJldHVybmVkIGluc3RhbmNlcyB3aWxsIGhhdmUgYWxsIHRoZSBub2RlIGBCdWZmZXJgIG1ldGhvZHNcbiAqIGFuZCB0aGUgYFVpbnQ4QXJyYXlgIG1ldGhvZHMuIFNxdWFyZSBicmFja2V0IG5vdGF0aW9uIHdvcmtzIGFzIGV4cGVjdGVkIC0tIGl0XG4gKiByZXR1cm5zIGEgc2luZ2xlIG9jdGV0LlxuICpcbiAqIFRoZSBgVWludDhBcnJheWAgcHJvdG90eXBlIHJlbWFpbnMgdW5tb2RpZmllZC5cbiAqL1xuXG5mdW5jdGlvbiBCdWZmZXIgKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQgJiYgISh0aGlzIGluc3RhbmNlb2YgQnVmZmVyKSkge1xuICAgIHJldHVybiBuZXcgQnVmZmVyKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKVxuICB9XG5cbiAgLy8gQ29tbW9uIGNhc2UuXG4gIGlmICh0eXBlb2YgYXJnID09PSAnbnVtYmVyJykge1xuICAgIGlmICh0eXBlb2YgZW5jb2RpbmdPck9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0lmIGVuY29kaW5nIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJ1xuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gYWxsb2NVbnNhZmUodGhpcywgYXJnKVxuICB9XG4gIHJldHVybiBmcm9tKHRoaXMsIGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKVxufVxuXG5CdWZmZXIucG9vbFNpemUgPSA4MTkyIC8vIG5vdCB1c2VkIGJ5IHRoaXMgaW1wbGVtZW50YXRpb25cblxuLy8gVE9ETzogTGVnYWN5LCBub3QgbmVlZGVkIGFueW1vcmUuIFJlbW92ZSBpbiBuZXh0IG1ham9yIHZlcnNpb24uXG5CdWZmZXIuX2F1Z21lbnQgPSBmdW5jdGlvbiAoYXJyKSB7XG4gIGFyci5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlXG4gIHJldHVybiBhcnJcbn1cblxuZnVuY3Rpb24gZnJvbSAodGhhdCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1widmFsdWVcIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlcicpXG4gIH1cblxuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XG4gICAgcmV0dXJuIGZyb21BcnJheUJ1ZmZlcih0aGF0LCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKVxuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZnJvbVN0cmluZyh0aGF0LCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldClcbiAgfVxuXG4gIHJldHVybiBmcm9tT2JqZWN0KHRoYXQsIHZhbHVlKVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIEJ1ZmZlcihhcmcsIGVuY29kaW5nKSBidXQgdGhyb3dzIGEgVHlwZUVycm9yXG4gKiBpZiB2YWx1ZSBpcyBhIG51bWJlci5cbiAqIEJ1ZmZlci5mcm9tKHN0clssIGVuY29kaW5nXSlcbiAqIEJ1ZmZlci5mcm9tKGFycmF5KVxuICogQnVmZmVyLmZyb20oYnVmZmVyKVxuICogQnVmZmVyLmZyb20oYXJyYXlCdWZmZXJbLCBieXRlT2Zmc2V0WywgbGVuZ3RoXV0pXG4gKiovXG5CdWZmZXIuZnJvbSA9IGZ1bmN0aW9uICh2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBmcm9tKG51bGwsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpXG59XG5cbmlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICBCdWZmZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFVpbnQ4QXJyYXkucHJvdG90eXBlXG4gIEJ1ZmZlci5fX3Byb3RvX18gPSBVaW50OEFycmF5XG4gIGlmICh0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wuc3BlY2llcyAmJlxuICAgICAgQnVmZmVyW1N5bWJvbC5zcGVjaWVzXSA9PT0gQnVmZmVyKSB7XG4gICAgLy8gRml4IHN1YmFycmF5KCkgaW4gRVMyMDE2LiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyL3B1bGwvOTdcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQnVmZmVyLCBTeW1ib2wuc3BlY2llcywge1xuICAgICAgdmFsdWU6IG51bGwsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydFNpemUgKHNpemUpIHtcbiAgaWYgKHR5cGVvZiBzaXplICE9PSAnbnVtYmVyJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wic2l6ZVwiIGFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXInKVxuICB9IGVsc2UgaWYgKHNpemUgPCAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1wic2l6ZVwiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlJylcbiAgfVxufVxuXG5mdW5jdGlvbiBhbGxvYyAodGhhdCwgc2l6ZSwgZmlsbCwgZW5jb2RpbmcpIHtcbiAgYXNzZXJ0U2l6ZShzaXplKVxuICBpZiAoc2l6ZSA8PSAwKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUJ1ZmZlcih0aGF0LCBzaXplKVxuICB9XG4gIGlmIChmaWxsICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyBPbmx5IHBheSBhdHRlbnRpb24gdG8gZW5jb2RpbmcgaWYgaXQncyBhIHN0cmluZy4gVGhpc1xuICAgIC8vIHByZXZlbnRzIGFjY2lkZW50YWxseSBzZW5kaW5nIGluIGEgbnVtYmVyIHRoYXQgd291bGRcbiAgICAvLyBiZSBpbnRlcnByZXR0ZWQgYXMgYSBzdGFydCBvZmZzZXQuXG4gICAgcmV0dXJuIHR5cGVvZiBlbmNvZGluZyA9PT0gJ3N0cmluZydcbiAgICAgID8gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpLmZpbGwoZmlsbCwgZW5jb2RpbmcpXG4gICAgICA6IGNyZWF0ZUJ1ZmZlcih0aGF0LCBzaXplKS5maWxsKGZpbGwpXG4gIH1cbiAgcmV0dXJuIGNyZWF0ZUJ1ZmZlcih0aGF0LCBzaXplKVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuZXcgZmlsbGVkIEJ1ZmZlciBpbnN0YW5jZS5cbiAqIGFsbG9jKHNpemVbLCBmaWxsWywgZW5jb2RpbmddXSlcbiAqKi9cbkJ1ZmZlci5hbGxvYyA9IGZ1bmN0aW9uIChzaXplLCBmaWxsLCBlbmNvZGluZykge1xuICByZXR1cm4gYWxsb2MobnVsbCwgc2l6ZSwgZmlsbCwgZW5jb2RpbmcpXG59XG5cbmZ1bmN0aW9uIGFsbG9jVW5zYWZlICh0aGF0LCBzaXplKSB7XG4gIGFzc2VydFNpemUoc2l6ZSlcbiAgdGhhdCA9IGNyZWF0ZUJ1ZmZlcih0aGF0LCBzaXplIDwgMCA/IDAgOiBjaGVja2VkKHNpemUpIHwgMClcbiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7XG4gICAgICB0aGF0W2ldID0gMFxuICAgIH1cbiAgfVxuICByZXR1cm4gdGhhdFxufVxuXG4vKipcbiAqIEVxdWl2YWxlbnQgdG8gQnVmZmVyKG51bSksIGJ5IGRlZmF1bHQgY3JlYXRlcyBhIG5vbi16ZXJvLWZpbGxlZCBCdWZmZXIgaW5zdGFuY2UuXG4gKiAqL1xuQnVmZmVyLmFsbG9jVW5zYWZlID0gZnVuY3Rpb24gKHNpemUpIHtcbiAgcmV0dXJuIGFsbG9jVW5zYWZlKG51bGwsIHNpemUpXG59XG4vKipcbiAqIEVxdWl2YWxlbnQgdG8gU2xvd0J1ZmZlcihudW0pLCBieSBkZWZhdWx0IGNyZWF0ZXMgYSBub24temVyby1maWxsZWQgQnVmZmVyIGluc3RhbmNlLlxuICovXG5CdWZmZXIuYWxsb2NVbnNhZmVTbG93ID0gZnVuY3Rpb24gKHNpemUpIHtcbiAgcmV0dXJuIGFsbG9jVW5zYWZlKG51bGwsIHNpemUpXG59XG5cbmZ1bmN0aW9uIGZyb21TdHJpbmcgKHRoYXQsIHN0cmluZywgZW5jb2RpbmcpIHtcbiAgaWYgKHR5cGVvZiBlbmNvZGluZyAhPT0gJ3N0cmluZycgfHwgZW5jb2RpbmcgPT09ICcnKSB7XG4gICAgZW5jb2RpbmcgPSAndXRmOCdcbiAgfVxuXG4gIGlmICghQnVmZmVyLmlzRW5jb2RpbmcoZW5jb2RpbmcpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignXCJlbmNvZGluZ1wiIG11c3QgYmUgYSB2YWxpZCBzdHJpbmcgZW5jb2RpbmcnKVxuICB9XG5cbiAgdmFyIGxlbmd0aCA9IGJ5dGVMZW5ndGgoc3RyaW5nLCBlbmNvZGluZykgfCAwXG4gIHRoYXQgPSBjcmVhdGVCdWZmZXIodGhhdCwgbGVuZ3RoKVxuXG4gIHZhciBhY3R1YWwgPSB0aGF0LndyaXRlKHN0cmluZywgZW5jb2RpbmcpXG5cbiAgaWYgKGFjdHVhbCAhPT0gbGVuZ3RoKSB7XG4gICAgLy8gV3JpdGluZyBhIGhleCBzdHJpbmcsIGZvciBleGFtcGxlLCB0aGF0IGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVycyB3aWxsXG4gICAgLy8gY2F1c2UgZXZlcnl0aGluZyBhZnRlciB0aGUgZmlyc3QgaW52YWxpZCBjaGFyYWN0ZXIgdG8gYmUgaWdub3JlZC4gKGUuZy5cbiAgICAvLyAnYWJ4eGNkJyB3aWxsIGJlIHRyZWF0ZWQgYXMgJ2FiJylcbiAgICB0aGF0ID0gdGhhdC5zbGljZSgwLCBhY3R1YWwpXG4gIH1cblxuICByZXR1cm4gdGhhdFxufVxuXG5mdW5jdGlvbiBmcm9tQXJyYXlMaWtlICh0aGF0LCBhcnJheSkge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoIDwgMCA/IDAgOiBjaGVja2VkKGFycmF5Lmxlbmd0aCkgfCAwXG4gIHRoYXQgPSBjcmVhdGVCdWZmZXIodGhhdCwgbGVuZ3RoKVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAxKSB7XG4gICAgdGhhdFtpXSA9IGFycmF5W2ldICYgMjU1XG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbUFycmF5QnVmZmVyICh0aGF0LCBhcnJheSwgYnl0ZU9mZnNldCwgbGVuZ3RoKSB7XG4gIGFycmF5LmJ5dGVMZW5ndGggLy8gdGhpcyB0aHJvd3MgaWYgYGFycmF5YCBpcyBub3QgYSB2YWxpZCBBcnJheUJ1ZmZlclxuXG4gIGlmIChieXRlT2Zmc2V0IDwgMCB8fCBhcnJheS5ieXRlTGVuZ3RoIDwgYnl0ZU9mZnNldCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdcXCdvZmZzZXRcXCcgaXMgb3V0IG9mIGJvdW5kcycpXG4gIH1cblxuICBpZiAoYXJyYXkuYnl0ZUxlbmd0aCA8IGJ5dGVPZmZzZXQgKyAobGVuZ3RoIHx8IDApKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1xcJ2xlbmd0aFxcJyBpcyBvdXQgb2YgYm91bmRzJylcbiAgfVxuXG4gIGlmIChieXRlT2Zmc2V0ID09PSB1bmRlZmluZWQgJiYgbGVuZ3RoID09PSB1bmRlZmluZWQpIHtcbiAgICBhcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5KVxuICB9IGVsc2UgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheSwgYnl0ZU9mZnNldClcbiAgfSBlbHNlIHtcbiAgICBhcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5LCBieXRlT2Zmc2V0LCBsZW5ndGgpXG4gIH1cblxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICAvLyBSZXR1cm4gYW4gYXVnbWVudGVkIGBVaW50OEFycmF5YCBpbnN0YW5jZSwgZm9yIGJlc3QgcGVyZm9ybWFuY2VcbiAgICB0aGF0ID0gYXJyYXlcbiAgICB0aGF0Ll9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGVcbiAgfSBlbHNlIHtcbiAgICAvLyBGYWxsYmFjazogUmV0dXJuIGFuIG9iamVjdCBpbnN0YW5jZSBvZiB0aGUgQnVmZmVyIGNsYXNzXG4gICAgdGhhdCA9IGZyb21BcnJheUxpa2UodGhhdCwgYXJyYXkpXG4gIH1cbiAgcmV0dXJuIHRoYXRcbn1cblxuZnVuY3Rpb24gZnJvbU9iamVjdCAodGhhdCwgb2JqKSB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIob2JqKSkge1xuICAgIHZhciBsZW4gPSBjaGVja2VkKG9iai5sZW5ndGgpIHwgMFxuICAgIHRoYXQgPSBjcmVhdGVCdWZmZXIodGhhdCwgbGVuKVxuXG4gICAgaWYgKHRoYXQubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdGhhdFxuICAgIH1cblxuICAgIG9iai5jb3B5KHRoYXQsIDAsIDAsIGxlbilcbiAgICByZXR1cm4gdGhhdFxuICB9XG5cbiAgaWYgKG9iaikge1xuICAgIGlmICgodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICBvYmouYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHx8ICdsZW5ndGgnIGluIG9iaikge1xuICAgICAgaWYgKHR5cGVvZiBvYmoubGVuZ3RoICE9PSAnbnVtYmVyJyB8fCBpc25hbihvYmoubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQnVmZmVyKHRoYXQsIDApXG4gICAgICB9XG4gICAgICByZXR1cm4gZnJvbUFycmF5TGlrZSh0aGF0LCBvYmopXG4gICAgfVxuXG4gICAgaWYgKG9iai50eXBlID09PSAnQnVmZmVyJyAmJiBpc0FycmF5KG9iai5kYXRhKSkge1xuICAgICAgcmV0dXJuIGZyb21BcnJheUxpa2UodGhhdCwgb2JqLmRhdGEpXG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcignRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIGFycmF5LWxpa2Ugb2JqZWN0LicpXG59XG5cbmZ1bmN0aW9uIGNoZWNrZWQgKGxlbmd0aCkge1xuICAvLyBOb3RlOiBjYW5ub3QgdXNlIGBsZW5ndGggPCBrTWF4TGVuZ3RoKClgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW5cbiAgLy8gbGVuZ3RoIGlzIE5hTiAod2hpY2ggaXMgb3RoZXJ3aXNlIGNvZXJjZWQgdG8gemVyby4pXG4gIGlmIChsZW5ndGggPj0ga01heExlbmd0aCgpKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgJ3NpemU6IDB4JyArIGtNYXhMZW5ndGgoKS50b1N0cmluZygxNikgKyAnIGJ5dGVzJylcbiAgfVxuICByZXR1cm4gbGVuZ3RoIHwgMFxufVxuXG5mdW5jdGlvbiBTbG93QnVmZmVyIChsZW5ndGgpIHtcbiAgaWYgKCtsZW5ndGggIT0gbGVuZ3RoKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgZXFlcWVxXG4gICAgbGVuZ3RoID0gMFxuICB9XG4gIHJldHVybiBCdWZmZXIuYWxsb2MoK2xlbmd0aClcbn1cblxuQnVmZmVyLmlzQnVmZmVyID0gZnVuY3Rpb24gaXNCdWZmZXIgKGIpIHtcbiAgcmV0dXJuICEhKGIgIT0gbnVsbCAmJiBiLl9pc0J1ZmZlcilcbn1cblxuQnVmZmVyLmNvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlIChhLCBiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGEpIHx8ICFCdWZmZXIuaXNCdWZmZXIoYikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudHMgbXVzdCBiZSBCdWZmZXJzJylcbiAgfVxuXG4gIGlmIChhID09PSBiKSByZXR1cm4gMFxuXG4gIHZhciB4ID0gYS5sZW5ndGhcbiAgdmFyIHkgPSBiLmxlbmd0aFxuXG4gIGZvciAodmFyIGkgPSAwLCBsZW4gPSBNYXRoLm1pbih4LCB5KTsgaSA8IGxlbjsgKytpKSB7XG4gICAgaWYgKGFbaV0gIT09IGJbaV0pIHtcbiAgICAgIHggPSBhW2ldXG4gICAgICB5ID0gYltpXVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICBpZiAoeCA8IHkpIHJldHVybiAtMVxuICBpZiAoeSA8IHgpIHJldHVybiAxXG4gIHJldHVybiAwXG59XG5cbkJ1ZmZlci5pc0VuY29kaW5nID0gZnVuY3Rpb24gaXNFbmNvZGluZyAoZW5jb2RpbmcpIHtcbiAgc3dpdGNoIChTdHJpbmcoZW5jb2RpbmcpLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlICdoZXgnOlxuICAgIGNhc2UgJ3V0ZjgnOlxuICAgIGNhc2UgJ3V0Zi04JzpcbiAgICBjYXNlICdhc2NpaSc6XG4gICAgY2FzZSAnbGF0aW4xJzpcbiAgICBjYXNlICdiaW5hcnknOlxuICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgY2FzZSAndWNzMic6XG4gICAgY2FzZSAndWNzLTInOlxuICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgIHJldHVybiB0cnVlXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbkJ1ZmZlci5jb25jYXQgPSBmdW5jdGlvbiBjb25jYXQgKGxpc3QsIGxlbmd0aCkge1xuICBpZiAoIWlzQXJyYXkobGlzdCkpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImxpc3RcIiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKVxuICB9XG5cbiAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5hbGxvYygwKVxuICB9XG5cbiAgdmFyIGlcbiAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbGVuZ3RoID0gMFxuICAgIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7XG4gICAgICBsZW5ndGggKz0gbGlzdFtpXS5sZW5ndGhcbiAgICB9XG4gIH1cblxuICB2YXIgYnVmZmVyID0gQnVmZmVyLmFsbG9jVW5zYWZlKGxlbmd0aClcbiAgdmFyIHBvcyA9IDBcbiAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHtcbiAgICB2YXIgYnVmID0gbGlzdFtpXVxuICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKGJ1ZikpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1wibGlzdFwiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpXG4gICAgfVxuICAgIGJ1Zi5jb3B5KGJ1ZmZlciwgcG9zKVxuICAgIHBvcyArPSBidWYubGVuZ3RoXG4gIH1cbiAgcmV0dXJuIGJ1ZmZlclxufVxuXG5mdW5jdGlvbiBieXRlTGVuZ3RoIChzdHJpbmcsIGVuY29kaW5nKSB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmcubGVuZ3RoXG4gIH1cbiAgaWYgKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgKEFycmF5QnVmZmVyLmlzVmlldyhzdHJpbmcpIHx8IHN0cmluZyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSkge1xuICAgIHJldHVybiBzdHJpbmcuYnl0ZUxlbmd0aFxuICB9XG4gIGlmICh0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJykge1xuICAgIHN0cmluZyA9ICcnICsgc3RyaW5nXG4gIH1cblxuICB2YXIgbGVuID0gc3RyaW5nLmxlbmd0aFxuICBpZiAobGVuID09PSAwKSByZXR1cm4gMFxuXG4gIC8vIFVzZSBhIGZvciBsb29wIHRvIGF2b2lkIHJlY3Vyc2lvblxuICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZVxuICBmb3IgKDs7KSB7XG4gICAgc3dpdGNoIChlbmNvZGluZykge1xuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgY2FzZSAnbGF0aW4xJzpcbiAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgIHJldHVybiBsZW5cbiAgICAgIGNhc2UgJ3V0ZjgnOlxuICAgICAgY2FzZSAndXRmLTgnOlxuICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgIHJldHVybiB1dGY4VG9CeXRlcyhzdHJpbmcpLmxlbmd0aFxuICAgICAgY2FzZSAndWNzMic6XG4gICAgICBjYXNlICd1Y3MtMic6XG4gICAgICBjYXNlICd1dGYxNmxlJzpcbiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzpcbiAgICAgICAgcmV0dXJuIGxlbiAqIDJcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBsZW4gPj4+IDFcbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIHJldHVybiBiYXNlNjRUb0J5dGVzKHN0cmluZykubGVuZ3RoXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBpZiAobG93ZXJlZENhc2UpIHJldHVybiB1dGY4VG9CeXRlcyhzdHJpbmcpLmxlbmd0aCAvLyBhc3N1bWUgdXRmOFxuICAgICAgICBlbmNvZGluZyA9ICgnJyArIGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuQnVmZmVyLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoXG5cbmZ1bmN0aW9uIHNsb3dUb1N0cmluZyAoZW5jb2RpbmcsIHN0YXJ0LCBlbmQpIHtcbiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2VcblxuICAvLyBObyBuZWVkIHRvIHZlcmlmeSB0aGF0IFwidGhpcy5sZW5ndGggPD0gTUFYX1VJTlQzMlwiIHNpbmNlIGl0J3MgYSByZWFkLW9ubHlcbiAgLy8gcHJvcGVydHkgb2YgYSB0eXBlZCBhcnJheS5cblxuICAvLyBUaGlzIGJlaGF2ZXMgbmVpdGhlciBsaWtlIFN0cmluZyBub3IgVWludDhBcnJheSBpbiB0aGF0IHdlIHNldCBzdGFydC9lbmRcbiAgLy8gdG8gdGhlaXIgdXBwZXIvbG93ZXIgYm91bmRzIGlmIHRoZSB2YWx1ZSBwYXNzZWQgaXMgb3V0IG9mIHJhbmdlLlxuICAvLyB1bmRlZmluZWQgaXMgaGFuZGxlZCBzcGVjaWFsbHkgYXMgcGVyIEVDTUEtMjYyIDZ0aCBFZGl0aW9uLFxuICAvLyBTZWN0aW9uIDEzLjMuMy43IFJ1bnRpbWUgU2VtYW50aWNzOiBLZXllZEJpbmRpbmdJbml0aWFsaXphdGlvbi5cbiAgaWYgKHN0YXJ0ID09PSB1bmRlZmluZWQgfHwgc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgPSAwXG4gIH1cbiAgLy8gUmV0dXJuIGVhcmx5IGlmIHN0YXJ0ID4gdGhpcy5sZW5ndGguIERvbmUgaGVyZSB0byBwcmV2ZW50IHBvdGVudGlhbCB1aW50MzJcbiAgLy8gY29lcmNpb24gZmFpbCBiZWxvdy5cbiAgaWYgKHN0YXJ0ID4gdGhpcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmIChlbmQgPT09IHVuZGVmaW5lZCB8fCBlbmQgPiB0aGlzLmxlbmd0aCkge1xuICAgIGVuZCA9IHRoaXMubGVuZ3RoXG4gIH1cblxuICBpZiAoZW5kIDw9IDApIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIC8vIEZvcmNlIGNvZXJzaW9uIHRvIHVpbnQzMi4gVGhpcyB3aWxsIGFsc28gY29lcmNlIGZhbHNleS9OYU4gdmFsdWVzIHRvIDAuXG4gIGVuZCA+Pj49IDBcbiAgc3RhcnQgPj4+PSAwXG5cbiAgaWYgKGVuZCA8PSBzdGFydCkge1xuICAgIHJldHVybiAnJ1xuICB9XG5cbiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCdcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIHN3aXRjaCAoZW5jb2RpbmcpIHtcbiAgICAgIGNhc2UgJ2hleCc6XG4gICAgICAgIHJldHVybiBoZXhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICd1dGY4JzpcbiAgICAgIGNhc2UgJ3V0Zi04JzpcbiAgICAgICAgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCBzdGFydCwgZW5kKVxuXG4gICAgICBjYXNlICdhc2NpaSc6XG4gICAgICAgIHJldHVybiBhc2NpaVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ2xhdGluMSc6XG4gICAgICBjYXNlICdiaW5hcnknOlxuICAgICAgICByZXR1cm4gbGF0aW4xU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgY2FzZSAnYmFzZTY0JzpcbiAgICAgICAgcmV0dXJuIGJhc2U2NFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpXG5cbiAgICAgIGNhc2UgJ3VjczInOlxuICAgICAgY2FzZSAndWNzLTInOlxuICAgICAgY2FzZSAndXRmMTZsZSc6XG4gICAgICBjYXNlICd1dGYtMTZsZSc6XG4gICAgICAgIHJldHVybiB1dGYxNmxlU2xpY2UodGhpcywgc3RhcnQsIGVuZClcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYgKGxvd2VyZWRDYXNlKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpXG4gICAgICAgIGVuY29kaW5nID0gKGVuY29kaW5nICsgJycpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlXG4gICAgfVxuICB9XG59XG5cbi8vIFRoZSBwcm9wZXJ0eSBpcyB1c2VkIGJ5IGBCdWZmZXIuaXNCdWZmZXJgIGFuZCBgaXMtYnVmZmVyYCAoaW4gU2FmYXJpIDUtNykgdG8gZGV0ZWN0XG4vLyBCdWZmZXIgaW5zdGFuY2VzLlxuQnVmZmVyLnByb3RvdHlwZS5faXNCdWZmZXIgPSB0cnVlXG5cbmZ1bmN0aW9uIHN3YXAgKGIsIG4sIG0pIHtcbiAgdmFyIGkgPSBiW25dXG4gIGJbbl0gPSBiW21dXG4gIGJbbV0gPSBpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc3dhcDE2ID0gZnVuY3Rpb24gc3dhcDE2ICgpIHtcbiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoXG4gIGlmIChsZW4gJSAyICE9PSAwKSB7XG4gICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0J1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi1iaXRzJylcbiAgfVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSAyKSB7XG4gICAgc3dhcCh0aGlzLCBpLCBpICsgMSlcbiAgfVxuICByZXR1cm4gdGhpc1xufVxuXG5CdWZmZXIucHJvdG90eXBlLnN3YXAzMiA9IGZ1bmN0aW9uIHN3YXAzMiAoKSB7XG4gIHZhciBsZW4gPSB0aGlzLmxlbmd0aFxuICBpZiAobGVuICUgNCAhPT0gMCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cycpXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkgKz0gNCkge1xuICAgIHN3YXAodGhpcywgaSwgaSArIDMpXG4gICAgc3dhcCh0aGlzLCBpICsgMSwgaSArIDIpXG4gIH1cbiAgcmV0dXJuIHRoaXNcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5zd2FwNjQgPSBmdW5jdGlvbiBzd2FwNjQgKCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgaWYgKGxlbiAlIDggIT09IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMnKVxuICB9XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpICs9IDgpIHtcbiAgICBzd2FwKHRoaXMsIGksIGkgKyA3KVxuICAgIHN3YXAodGhpcywgaSArIDEsIGkgKyA2KVxuICAgIHN3YXAodGhpcywgaSArIDIsIGkgKyA1KVxuICAgIHN3YXAodGhpcywgaSArIDMsIGkgKyA0KVxuICB9XG4gIHJldHVybiB0aGlzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyAoKSB7XG4gIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aCB8IDBcbiAgaWYgKGxlbmd0aCA9PT0gMCkgcmV0dXJuICcnXG4gIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIDAsIGxlbmd0aClcbiAgcmV0dXJuIHNsb3dUb1N0cmluZy5hcHBseSh0aGlzLCBhcmd1bWVudHMpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzIChiKSB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKGIpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyJylcbiAgaWYgKHRoaXMgPT09IGIpIHJldHVybiB0cnVlXG4gIHJldHVybiBCdWZmZXIuY29tcGFyZSh0aGlzLCBiKSA9PT0gMFxufVxuXG5CdWZmZXIucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0ICgpIHtcbiAgdmFyIHN0ciA9ICcnXG4gIHZhciBtYXggPSBleHBvcnRzLklOU1BFQ1RfTUFYX0JZVEVTXG4gIGlmICh0aGlzLmxlbmd0aCA+IDApIHtcbiAgICBzdHIgPSB0aGlzLnRvU3RyaW5nKCdoZXgnLCAwLCBtYXgpLm1hdGNoKC8uezJ9L2cpLmpvaW4oJyAnKVxuICAgIGlmICh0aGlzLmxlbmd0aCA+IG1heCkgc3RyICs9ICcgLi4uICdcbiAgfVxuICByZXR1cm4gJzxCdWZmZXIgJyArIHN0ciArICc+J1xufVxuXG5CdWZmZXIucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlICh0YXJnZXQsIHN0YXJ0LCBlbmQsIHRoaXNTdGFydCwgdGhpc0VuZCkge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcih0YXJnZXQpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlcicpXG4gIH1cblxuICBpZiAoc3RhcnQgPT09IHVuZGVmaW5lZCkge1xuICAgIHN0YXJ0ID0gMFxuICB9XG4gIGlmIChlbmQgPT09IHVuZGVmaW5lZCkge1xuICAgIGVuZCA9IHRhcmdldCA/IHRhcmdldC5sZW5ndGggOiAwXG4gIH1cbiAgaWYgKHRoaXNTdGFydCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpc1N0YXJ0ID0gMFxuICB9XG4gIGlmICh0aGlzRW5kID09PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzRW5kID0gdGhpcy5sZW5ndGhcbiAgfVxuXG4gIGlmIChzdGFydCA8IDAgfHwgZW5kID4gdGFyZ2V0Lmxlbmd0aCB8fCB0aGlzU3RhcnQgPCAwIHx8IHRoaXNFbmQgPiB0aGlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdvdXQgb2YgcmFuZ2UgaW5kZXgnKVxuICB9XG5cbiAgaWYgKHRoaXNTdGFydCA+PSB0aGlzRW5kICYmIHN0YXJ0ID49IGVuZCkge1xuICAgIHJldHVybiAwXG4gIH1cbiAgaWYgKHRoaXNTdGFydCA+PSB0aGlzRW5kKSB7XG4gICAgcmV0dXJuIC0xXG4gIH1cbiAgaWYgKHN0YXJ0ID49IGVuZCkge1xuICAgIHJldHVybiAxXG4gIH1cblxuICBzdGFydCA+Pj49IDBcbiAgZW5kID4+Pj0gMFxuICB0aGlzU3RhcnQgPj4+PSAwXG4gIHRoaXNFbmQgPj4+PSAwXG5cbiAgaWYgKHRoaXMgPT09IHRhcmdldCkgcmV0dXJuIDBcblxuICB2YXIgeCA9IHRoaXNFbmQgLSB0aGlzU3RhcnRcbiAgdmFyIHkgPSBlbmQgLSBzdGFydFxuICB2YXIgbGVuID0gTWF0aC5taW4oeCwgeSlcblxuICB2YXIgdGhpc0NvcHkgPSB0aGlzLnNsaWNlKHRoaXNTdGFydCwgdGhpc0VuZClcbiAgdmFyIHRhcmdldENvcHkgPSB0YXJnZXQuc2xpY2Uoc3RhcnQsIGVuZClcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKSB7XG4gICAgaWYgKHRoaXNDb3B5W2ldICE9PSB0YXJnZXRDb3B5W2ldKSB7XG4gICAgICB4ID0gdGhpc0NvcHlbaV1cbiAgICAgIHkgPSB0YXJnZXRDb3B5W2ldXG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIGlmICh4IDwgeSkgcmV0dXJuIC0xXG4gIGlmICh5IDwgeCkgcmV0dXJuIDFcbiAgcmV0dXJuIDBcbn1cblxuLy8gRmluZHMgZWl0aGVyIHRoZSBmaXJzdCBpbmRleCBvZiBgdmFsYCBpbiBgYnVmZmVyYCBhdCBvZmZzZXQgPj0gYGJ5dGVPZmZzZXRgLFxuLy8gT1IgdGhlIGxhc3QgaW5kZXggb2YgYHZhbGAgaW4gYGJ1ZmZlcmAgYXQgb2Zmc2V0IDw9IGBieXRlT2Zmc2V0YC5cbi8vXG4vLyBBcmd1bWVudHM6XG4vLyAtIGJ1ZmZlciAtIGEgQnVmZmVyIHRvIHNlYXJjaFxuLy8gLSB2YWwgLSBhIHN0cmluZywgQnVmZmVyLCBvciBudW1iZXJcbi8vIC0gYnl0ZU9mZnNldCAtIGFuIGluZGV4IGludG8gYGJ1ZmZlcmA7IHdpbGwgYmUgY2xhbXBlZCB0byBhbiBpbnQzMlxuLy8gLSBlbmNvZGluZyAtIGFuIG9wdGlvbmFsIGVuY29kaW5nLCByZWxldmFudCBpcyB2YWwgaXMgYSBzdHJpbmdcbi8vIC0gZGlyIC0gdHJ1ZSBmb3IgaW5kZXhPZiwgZmFsc2UgZm9yIGxhc3RJbmRleE9mXG5mdW5jdGlvbiBiaWRpcmVjdGlvbmFsSW5kZXhPZiAoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpIHtcbiAgLy8gRW1wdHkgYnVmZmVyIG1lYW5zIG5vIG1hdGNoXG4gIGlmIChidWZmZXIubGVuZ3RoID09PSAwKSByZXR1cm4gLTFcblxuICAvLyBOb3JtYWxpemUgYnl0ZU9mZnNldFxuICBpZiAodHlwZW9mIGJ5dGVPZmZzZXQgPT09ICdzdHJpbmcnKSB7XG4gICAgZW5jb2RpbmcgPSBieXRlT2Zmc2V0XG4gICAgYnl0ZU9mZnNldCA9IDBcbiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0ID4gMHg3ZmZmZmZmZikge1xuICAgIGJ5dGVPZmZzZXQgPSAweDdmZmZmZmZmXG4gIH0gZWxzZSBpZiAoYnl0ZU9mZnNldCA8IC0weDgwMDAwMDAwKSB7XG4gICAgYnl0ZU9mZnNldCA9IC0weDgwMDAwMDAwXG4gIH1cbiAgYnl0ZU9mZnNldCA9ICtieXRlT2Zmc2V0ICAvLyBDb2VyY2UgdG8gTnVtYmVyLlxuICBpZiAoaXNOYU4oYnl0ZU9mZnNldCkpIHtcbiAgICAvLyBieXRlT2Zmc2V0OiBpdCBpdCdzIHVuZGVmaW5lZCwgbnVsbCwgTmFOLCBcImZvb1wiLCBldGMsIHNlYXJjaCB3aG9sZSBidWZmZXJcbiAgICBieXRlT2Zmc2V0ID0gZGlyID8gMCA6IChidWZmZXIubGVuZ3RoIC0gMSlcbiAgfVxuXG4gIC8vIE5vcm1hbGl6ZSBieXRlT2Zmc2V0OiBuZWdhdGl2ZSBvZmZzZXRzIHN0YXJ0IGZyb20gdGhlIGVuZCBvZiB0aGUgYnVmZmVyXG4gIGlmIChieXRlT2Zmc2V0IDwgMCkgYnl0ZU9mZnNldCA9IGJ1ZmZlci5sZW5ndGggKyBieXRlT2Zmc2V0XG4gIGlmIChieXRlT2Zmc2V0ID49IGJ1ZmZlci5sZW5ndGgpIHtcbiAgICBpZiAoZGlyKSByZXR1cm4gLTFcbiAgICBlbHNlIGJ5dGVPZmZzZXQgPSBidWZmZXIubGVuZ3RoIC0gMVxuICB9IGVsc2UgaWYgKGJ5dGVPZmZzZXQgPCAwKSB7XG4gICAgaWYgKGRpcikgYnl0ZU9mZnNldCA9IDBcbiAgICBlbHNlIHJldHVybiAtMVxuICB9XG5cbiAgLy8gTm9ybWFsaXplIHZhbFxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICB2YWwgPSBCdWZmZXIuZnJvbSh2YWwsIGVuY29kaW5nKVxuICB9XG5cbiAgLy8gRmluYWxseSwgc2VhcmNoIGVpdGhlciBpbmRleE9mIChpZiBkaXIgaXMgdHJ1ZSkgb3IgbGFzdEluZGV4T2ZcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih2YWwpKSB7XG4gICAgLy8gU3BlY2lhbCBjYXNlOiBsb29raW5nIGZvciBlbXB0eSBzdHJpbmcvYnVmZmVyIGFsd2F5cyBmYWlsc1xuICAgIGlmICh2YWwubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gLTFcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5SW5kZXhPZihidWZmZXIsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcilcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIHZhbCA9IHZhbCAmIDB4RkYgLy8gU2VhcmNoIGZvciBhIGJ5dGUgdmFsdWUgWzAtMjU1XVxuICAgIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJlxuICAgICAgICB0eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgaWYgKGRpcikge1xuICAgICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhcnJheUluZGV4T2YoYnVmZmVyLCBbIHZhbCBdLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZGlyKVxuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcigndmFsIG11c3QgYmUgc3RyaW5nLCBudW1iZXIgb3IgQnVmZmVyJylcbn1cblxuZnVuY3Rpb24gYXJyYXlJbmRleE9mIChhcnIsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcikge1xuICB2YXIgaW5kZXhTaXplID0gMVxuICB2YXIgYXJyTGVuZ3RoID0gYXJyLmxlbmd0aFxuICB2YXIgdmFsTGVuZ3RoID0gdmFsLmxlbmd0aFxuXG4gIGlmIChlbmNvZGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZW5jb2RpbmcgPSBTdHJpbmcoZW5jb2RpbmcpLnRvTG93ZXJDYXNlKClcbiAgICBpZiAoZW5jb2RpbmcgPT09ICd1Y3MyJyB8fCBlbmNvZGluZyA9PT0gJ3Vjcy0yJyB8fFxuICAgICAgICBlbmNvZGluZyA9PT0gJ3V0ZjE2bGUnIHx8IGVuY29kaW5nID09PSAndXRmLTE2bGUnKSB7XG4gICAgICBpZiAoYXJyLmxlbmd0aCA8IDIgfHwgdmFsLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgcmV0dXJuIC0xXG4gICAgICB9XG4gICAgICBpbmRleFNpemUgPSAyXG4gICAgICBhcnJMZW5ndGggLz0gMlxuICAgICAgdmFsTGVuZ3RoIC89IDJcbiAgICAgIGJ5dGVPZmZzZXQgLz0gMlxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWQgKGJ1ZiwgaSkge1xuICAgIGlmIChpbmRleFNpemUgPT09IDEpIHtcbiAgICAgIHJldHVybiBidWZbaV1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGJ1Zi5yZWFkVUludDE2QkUoaSAqIGluZGV4U2l6ZSlcbiAgICB9XG4gIH1cblxuICB2YXIgaVxuICBpZiAoZGlyKSB7XG4gICAgdmFyIGZvdW5kSW5kZXggPSAtMVxuICAgIGZvciAoaSA9IGJ5dGVPZmZzZXQ7IGkgPCBhcnJMZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHJlYWQoYXJyLCBpKSA9PT0gcmVhZCh2YWwsIGZvdW5kSW5kZXggPT09IC0xID8gMCA6IGkgLSBmb3VuZEluZGV4KSkge1xuICAgICAgICBpZiAoZm91bmRJbmRleCA9PT0gLTEpIGZvdW5kSW5kZXggPSBpXG4gICAgICAgIGlmIChpIC0gZm91bmRJbmRleCArIDEgPT09IHZhbExlbmd0aCkgcmV0dXJuIGZvdW5kSW5kZXggKiBpbmRleFNpemVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ICE9PSAtMSkgaSAtPSBpIC0gZm91bmRJbmRleFxuICAgICAgICBmb3VuZEluZGV4ID0gLTFcbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKGJ5dGVPZmZzZXQgKyB2YWxMZW5ndGggPiBhcnJMZW5ndGgpIGJ5dGVPZmZzZXQgPSBhcnJMZW5ndGggLSB2YWxMZW5ndGhcbiAgICBmb3IgKGkgPSBieXRlT2Zmc2V0OyBpID49IDA7IGktLSkge1xuICAgICAgdmFyIGZvdW5kID0gdHJ1ZVxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWxMZW5ndGg7IGorKykge1xuICAgICAgICBpZiAocmVhZChhcnIsIGkgKyBqKSAhPT0gcmVhZCh2YWwsIGopKSB7XG4gICAgICAgICAgZm91bmQgPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChmb3VuZCkgcmV0dXJuIGlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gLTFcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5pbmNsdWRlcyA9IGZ1bmN0aW9uIGluY2x1ZGVzICh2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSB7XG4gIHJldHVybiB0aGlzLmluZGV4T2YodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykgIT09IC0xXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuaW5kZXhPZiA9IGZ1bmN0aW9uIGluZGV4T2YgKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpIHtcbiAgcmV0dXJuIGJpZGlyZWN0aW9uYWxJbmRleE9mKHRoaXMsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIHRydWUpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUubGFzdEluZGV4T2YgPSBmdW5jdGlvbiBsYXN0SW5kZXhPZiAodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykge1xuICByZXR1cm4gYmlkaXJlY3Rpb25hbEluZGV4T2YodGhpcywgdmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZywgZmFsc2UpXG59XG5cbmZ1bmN0aW9uIGhleFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgb2Zmc2V0ID0gTnVtYmVyKG9mZnNldCkgfHwgMFxuICB2YXIgcmVtYWluaW5nID0gYnVmLmxlbmd0aCAtIG9mZnNldFxuICBpZiAoIWxlbmd0aCkge1xuICAgIGxlbmd0aCA9IHJlbWFpbmluZ1xuICB9IGVsc2Uge1xuICAgIGxlbmd0aCA9IE51bWJlcihsZW5ndGgpXG4gICAgaWYgKGxlbmd0aCA+IHJlbWFpbmluZykge1xuICAgICAgbGVuZ3RoID0gcmVtYWluaW5nXG4gICAgfVxuICB9XG5cbiAgLy8gbXVzdCBiZSBhbiBldmVuIG51bWJlciBvZiBkaWdpdHNcbiAgdmFyIHN0ckxlbiA9IHN0cmluZy5sZW5ndGhcbiAgaWYgKHN0ckxlbiAlIDIgIT09IDApIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgaGV4IHN0cmluZycpXG5cbiAgaWYgKGxlbmd0aCA+IHN0ckxlbiAvIDIpIHtcbiAgICBsZW5ndGggPSBzdHJMZW4gLyAyXG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgIHZhciBwYXJzZWQgPSBwYXJzZUludChzdHJpbmcuc3Vic3RyKGkgKiAyLCAyKSwgMTYpXG4gICAgaWYgKGlzTmFOKHBhcnNlZCkpIHJldHVybiBpXG4gICAgYnVmW29mZnNldCArIGldID0gcGFyc2VkXG4gIH1cbiAgcmV0dXJuIGlcbn1cblxuZnVuY3Rpb24gdXRmOFdyaXRlIChidWYsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpIHtcbiAgcmV0dXJuIGJsaXRCdWZmZXIodXRmOFRvQnl0ZXMoc3RyaW5nLCBidWYubGVuZ3RoIC0gb2Zmc2V0KSwgYnVmLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYXNjaWlXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKGFzY2lpVG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKVxufVxuXG5mdW5jdGlvbiBsYXRpbjFXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBhc2NpaVdyaXRlKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcbn1cblxuZnVuY3Rpb24gYmFzZTY0V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkge1xuICByZXR1cm4gYmxpdEJ1ZmZlcihiYXNlNjRUb0J5dGVzKHN0cmluZyksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbmZ1bmN0aW9uIHVjczJXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7XG4gIHJldHVybiBibGl0QnVmZmVyKHV0ZjE2bGVUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiB3cml0ZSAoc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCwgZW5jb2RpbmcpIHtcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZylcbiAgaWYgKG9mZnNldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZW5jb2RpbmcgPSAndXRmOCdcbiAgICBsZW5ndGggPSB0aGlzLmxlbmd0aFxuICAgIG9mZnNldCA9IDBcbiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgZW5jb2RpbmcpXG4gIH0gZWxzZSBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9mZnNldCA9PT0gJ3N0cmluZycpIHtcbiAgICBlbmNvZGluZyA9IG9mZnNldFxuICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoXG4gICAgb2Zmc2V0ID0gMFxuICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nLCBvZmZzZXRbLCBsZW5ndGhdWywgZW5jb2RpbmddKVxuICB9IGVsc2UgaWYgKGlzRmluaXRlKG9mZnNldCkpIHtcbiAgICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gICAgaWYgKGlzRmluaXRlKGxlbmd0aCkpIHtcbiAgICAgIGxlbmd0aCA9IGxlbmd0aCB8IDBcbiAgICAgIGlmIChlbmNvZGluZyA9PT0gdW5kZWZpbmVkKSBlbmNvZGluZyA9ICd1dGY4J1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmNvZGluZyA9IGxlbmd0aFxuICAgICAgbGVuZ3RoID0gdW5kZWZpbmVkXG4gICAgfVxuICAvLyBsZWdhY3kgd3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0LCBsZW5ndGgpIC0gcmVtb3ZlIGluIHYwLjEzXG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0J1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkJ1xuICAgIClcbiAgfVxuXG4gIHZhciByZW1haW5pbmcgPSB0aGlzLmxlbmd0aCAtIG9mZnNldFxuICBpZiAobGVuZ3RoID09PSB1bmRlZmluZWQgfHwgbGVuZ3RoID4gcmVtYWluaW5nKSBsZW5ndGggPSByZW1haW5pbmdcblxuICBpZiAoKHN0cmluZy5sZW5ndGggPiAwICYmIChsZW5ndGggPCAwIHx8IG9mZnNldCA8IDApKSB8fCBvZmZzZXQgPiB0aGlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcycpXG4gIH1cblxuICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4J1xuXG4gIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlXG4gIGZvciAoOzspIHtcbiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7XG4gICAgICBjYXNlICdoZXgnOlxuICAgICAgICByZXR1cm4gaGV4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAndXRmOCc6XG4gICAgICBjYXNlICd1dGYtOCc6XG4gICAgICAgIHJldHVybiB1dGY4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aClcblxuICAgICAgY2FzZSAnYXNjaWknOlxuICAgICAgICByZXR1cm4gYXNjaWlXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICdsYXRpbjEnOlxuICAgICAgY2FzZSAnYmluYXJ5JzpcbiAgICAgICAgcmV0dXJuIGxhdGluMVdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGNhc2UgJ2Jhc2U2NCc6XG4gICAgICAgIC8vIFdhcm5pbmc6IG1heExlbmd0aCBub3QgdGFrZW4gaW50byBhY2NvdW50IGluIGJhc2U2NFdyaXRlXG4gICAgICAgIHJldHVybiBiYXNlNjRXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKVxuXG4gICAgICBjYXNlICd1Y3MyJzpcbiAgICAgIGNhc2UgJ3Vjcy0yJzpcbiAgICAgIGNhc2UgJ3V0ZjE2bGUnOlxuICAgICAgY2FzZSAndXRmLTE2bGUnOlxuICAgICAgICByZXR1cm4gdWNzMldyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpXG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKVxuICAgICAgICBlbmNvZGluZyA9ICgnJyArIGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZVxuICAgIH1cbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTiAoKSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ0J1ZmZlcicsXG4gICAgZGF0YTogQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyIHx8IHRoaXMsIDApXG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZTY0U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICBpZiAoc3RhcnQgPT09IDAgJiYgZW5kID09PSBidWYubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1ZilcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYmFzZTY0LmZyb21CeXRlQXJyYXkoYnVmLnNsaWNlKHN0YXJ0LCBlbmQpKVxuICB9XG59XG5cbmZ1bmN0aW9uIHV0ZjhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZClcbiAgdmFyIHJlcyA9IFtdXG5cbiAgdmFyIGkgPSBzdGFydFxuICB3aGlsZSAoaSA8IGVuZCkge1xuICAgIHZhciBmaXJzdEJ5dGUgPSBidWZbaV1cbiAgICB2YXIgY29kZVBvaW50ID0gbnVsbFxuICAgIHZhciBieXRlc1BlclNlcXVlbmNlID0gKGZpcnN0Qnl0ZSA+IDB4RUYpID8gNFxuICAgICAgOiAoZmlyc3RCeXRlID4gMHhERikgPyAzXG4gICAgICA6IChmaXJzdEJ5dGUgPiAweEJGKSA/IDJcbiAgICAgIDogMVxuXG4gICAgaWYgKGkgKyBieXRlc1BlclNlcXVlbmNlIDw9IGVuZCkge1xuICAgICAgdmFyIHNlY29uZEJ5dGUsIHRoaXJkQnl0ZSwgZm91cnRoQnl0ZSwgdGVtcENvZGVQb2ludFxuXG4gICAgICBzd2l0Y2ggKGJ5dGVzUGVyU2VxdWVuY2UpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAweDgwKSB7XG4gICAgICAgICAgICBjb2RlUG9pbnQgPSBmaXJzdEJ5dGVcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHNlY29uZEJ5dGUgPSBidWZbaSArIDFdXG4gICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODApIHtcbiAgICAgICAgICAgIHRlbXBDb2RlUG9pbnQgPSAoZmlyc3RCeXRlICYgMHgxRikgPDwgMHg2IHwgKHNlY29uZEJ5dGUgJiAweDNGKVxuICAgICAgICAgICAgaWYgKHRlbXBDb2RlUG9pbnQgPiAweDdGKSB7XG4gICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRlbXBDb2RlUG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIHNlY29uZEJ5dGUgPSBidWZbaSArIDFdXG4gICAgICAgICAgdGhpcmRCeXRlID0gYnVmW2kgKyAyXVxuICAgICAgICAgIGlmICgoc2Vjb25kQnl0ZSAmIDB4QzApID09PSAweDgwICYmICh0aGlyZEJ5dGUgJiAweEMwKSA9PT0gMHg4MCkge1xuICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweEYpIDw8IDB4QyB8IChzZWNvbmRCeXRlICYgMHgzRikgPDwgMHg2IHwgKHRoaXJkQnl0ZSAmIDB4M0YpXG4gICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4N0ZGICYmICh0ZW1wQ29kZVBvaW50IDwgMHhEODAwIHx8IHRlbXBDb2RlUG9pbnQgPiAweERGRkYpKSB7XG4gICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRlbXBDb2RlUG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHNlY29uZEJ5dGUgPSBidWZbaSArIDFdXG4gICAgICAgICAgdGhpcmRCeXRlID0gYnVmW2kgKyAyXVxuICAgICAgICAgIGZvdXJ0aEJ5dGUgPSBidWZbaSArIDNdXG4gICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKHRoaXJkQnl0ZSAmIDB4QzApID09PSAweDgwICYmIChmb3VydGhCeXRlICYgMHhDMCkgPT09IDB4ODApIHtcbiAgICAgICAgICAgIHRlbXBDb2RlUG9pbnQgPSAoZmlyc3RCeXRlICYgMHhGKSA8PCAweDEyIHwgKHNlY29uZEJ5dGUgJiAweDNGKSA8PCAweEMgfCAodGhpcmRCeXRlICYgMHgzRikgPDwgMHg2IHwgKGZvdXJ0aEJ5dGUgJiAweDNGKVxuICAgICAgICAgICAgaWYgKHRlbXBDb2RlUG9pbnQgPiAweEZGRkYgJiYgdGVtcENvZGVQb2ludCA8IDB4MTEwMDAwKSB7XG4gICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRlbXBDb2RlUG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvZGVQb2ludCA9PT0gbnVsbCkge1xuICAgICAgLy8gd2UgZGlkIG5vdCBnZW5lcmF0ZSBhIHZhbGlkIGNvZGVQb2ludCBzbyBpbnNlcnQgYVxuICAgICAgLy8gcmVwbGFjZW1lbnQgY2hhciAoVStGRkZEKSBhbmQgYWR2YW5jZSBvbmx5IDEgYnl0ZVxuICAgICAgY29kZVBvaW50ID0gMHhGRkZEXG4gICAgICBieXRlc1BlclNlcXVlbmNlID0gMVxuICAgIH0gZWxzZSBpZiAoY29kZVBvaW50ID4gMHhGRkZGKSB7XG4gICAgICAvLyBlbmNvZGUgdG8gdXRmMTYgKHN1cnJvZ2F0ZSBwYWlyIGRhbmNlKVxuICAgICAgY29kZVBvaW50IC09IDB4MTAwMDBcbiAgICAgIHJlcy5wdXNoKGNvZGVQb2ludCA+Pj4gMTAgJiAweDNGRiB8IDB4RDgwMClcbiAgICAgIGNvZGVQb2ludCA9IDB4REMwMCB8IGNvZGVQb2ludCAmIDB4M0ZGXG4gICAgfVxuXG4gICAgcmVzLnB1c2goY29kZVBvaW50KVxuICAgIGkgKz0gYnl0ZXNQZXJTZXF1ZW5jZVxuICB9XG5cbiAgcmV0dXJuIGRlY29kZUNvZGVQb2ludHNBcnJheShyZXMpXG59XG5cbi8vIEJhc2VkIG9uIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzIyNzQ3MjcyLzY4MDc0MiwgdGhlIGJyb3dzZXIgd2l0aFxuLy8gdGhlIGxvd2VzdCBsaW1pdCBpcyBDaHJvbWUsIHdpdGggMHgxMDAwMCBhcmdzLlxuLy8gV2UgZ28gMSBtYWduaXR1ZGUgbGVzcywgZm9yIHNhZmV0eVxudmFyIE1BWF9BUkdVTUVOVFNfTEVOR1RIID0gMHgxMDAwXG5cbmZ1bmN0aW9uIGRlY29kZUNvZGVQb2ludHNBcnJheSAoY29kZVBvaW50cykge1xuICB2YXIgbGVuID0gY29kZVBvaW50cy5sZW5ndGhcbiAgaWYgKGxlbiA8PSBNQVhfQVJHVU1FTlRTX0xFTkdUSCkge1xuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywgY29kZVBvaW50cykgLy8gYXZvaWQgZXh0cmEgc2xpY2UoKVxuICB9XG5cbiAgLy8gRGVjb2RlIGluIGNodW5rcyB0byBhdm9pZCBcImNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZFwiLlxuICB2YXIgcmVzID0gJydcbiAgdmFyIGkgPSAwXG4gIHdoaWxlIChpIDwgbGVuKSB7XG4gICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoXG4gICAgICBTdHJpbmcsXG4gICAgICBjb2RlUG9pbnRzLnNsaWNlKGksIGkgKz0gTUFYX0FSR1VNRU5UU19MRU5HVEgpXG4gICAgKVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuZnVuY3Rpb24gYXNjaWlTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7XG4gIHZhciByZXQgPSAnJ1xuICBlbmQgPSBNYXRoLm1pbihidWYubGVuZ3RoLCBlbmQpXG5cbiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHtcbiAgICByZXQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShidWZbaV0gJiAweDdGKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gbGF0aW4xU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgcmV0ID0gJydcbiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKVxuXG4gIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgcmV0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKVxuICB9XG4gIHJldHVybiByZXRcbn1cblxuZnVuY3Rpb24gaGV4U2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gYnVmLmxlbmd0aFxuXG4gIGlmICghc3RhcnQgfHwgc3RhcnQgPCAwKSBzdGFydCA9IDBcbiAgaWYgKCFlbmQgfHwgZW5kIDwgMCB8fCBlbmQgPiBsZW4pIGVuZCA9IGxlblxuXG4gIHZhciBvdXQgPSAnJ1xuICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkge1xuICAgIG91dCArPSB0b0hleChidWZbaV0pXG4gIH1cbiAgcmV0dXJuIG91dFxufVxuXG5mdW5jdGlvbiB1dGYxNmxlU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkge1xuICB2YXIgYnl0ZXMgPSBidWYuc2xpY2Uoc3RhcnQsIGVuZClcbiAgdmFyIHJlcyA9ICcnXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYnl0ZXMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSArIGJ5dGVzW2kgKyAxXSAqIDI1NilcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbiBzbGljZSAoc3RhcnQsIGVuZCkge1xuICB2YXIgbGVuID0gdGhpcy5sZW5ndGhcbiAgc3RhcnQgPSB+fnN0YXJ0XG4gIGVuZCA9IGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuIDogfn5lbmRcblxuICBpZiAoc3RhcnQgPCAwKSB7XG4gICAgc3RhcnQgKz0gbGVuXG4gICAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwXG4gIH0gZWxzZSBpZiAoc3RhcnQgPiBsZW4pIHtcbiAgICBzdGFydCA9IGxlblxuICB9XG5cbiAgaWYgKGVuZCA8IDApIHtcbiAgICBlbmQgKz0gbGVuXG4gICAgaWYgKGVuZCA8IDApIGVuZCA9IDBcbiAgfSBlbHNlIGlmIChlbmQgPiBsZW4pIHtcbiAgICBlbmQgPSBsZW5cbiAgfVxuXG4gIGlmIChlbmQgPCBzdGFydCkgZW5kID0gc3RhcnRcblxuICB2YXIgbmV3QnVmXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIG5ld0J1ZiA9IHRoaXMuc3ViYXJyYXkoc3RhcnQsIGVuZClcbiAgICBuZXdCdWYuX19wcm90b19fID0gQnVmZmVyLnByb3RvdHlwZVxuICB9IGVsc2Uge1xuICAgIHZhciBzbGljZUxlbiA9IGVuZCAtIHN0YXJ0XG4gICAgbmV3QnVmID0gbmV3IEJ1ZmZlcihzbGljZUxlbiwgdW5kZWZpbmVkKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2VMZW47ICsraSkge1xuICAgICAgbmV3QnVmW2ldID0gdGhpc1tpICsgc3RhcnRdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld0J1ZlxufVxuXG4vKlxuICogTmVlZCB0byBtYWtlIHN1cmUgdGhhdCBidWZmZXIgaXNuJ3QgdHJ5aW5nIHRvIHdyaXRlIG91dCBvZiBib3VuZHMuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrT2Zmc2V0IChvZmZzZXQsIGV4dCwgbGVuZ3RoKSB7XG4gIGlmICgob2Zmc2V0ICUgMSkgIT09IDAgfHwgb2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ29mZnNldCBpcyBub3QgdWludCcpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBsZW5ndGgpIHRocm93IG5ldyBSYW5nZUVycm9yKCdUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludExFID0gZnVuY3Rpb24gcmVhZFVJbnRMRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIGJ5dGVMZW5ndGgsIHRoaXMubGVuZ3RoKVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldF1cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgaV0gKiBtdWxcbiAgfVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludEJFID0gZnVuY3Rpb24gcmVhZFVJbnRCRSAob2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcbiAgfVxuXG4gIHZhciB2YWwgPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF1cbiAgdmFyIG11bCA9IDFcbiAgd2hpbGUgKGJ5dGVMZW5ndGggPiAwICYmIChtdWwgKj0gMHgxMDApKSB7XG4gICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1ieXRlTGVuZ3RoXSAqIG11bFxuICB9XG5cbiAgcmV0dXJuIHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50OCA9IGZ1bmN0aW9uIHJlYWRVSW50OCAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gdGhpc1tvZmZzZXRdXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQxNkxFID0gZnVuY3Rpb24gcmVhZFVJbnQxNkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICByZXR1cm4gKHRoaXNbb2Zmc2V0XSA8PCA4KSB8IHRoaXNbb2Zmc2V0ICsgMV1cbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDMyTEUgPSBmdW5jdGlvbiByZWFkVUludDMyTEUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aClcblxuICByZXR1cm4gKCh0aGlzW29mZnNldF0pIHxcbiAgICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHxcbiAgICAgICh0aGlzW29mZnNldCArIDJdIDw8IDE2KSkgK1xuICAgICAgKHRoaXNbb2Zmc2V0ICsgM10gKiAweDEwMDAwMDApXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkJFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gKiAweDEwMDAwMDApICtcbiAgICAoKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCA4KSB8XG4gICAgdGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50TEUgPSBmdW5jdGlvbiByZWFkSW50TEUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdXG4gIHZhciBtdWwgPSAxXG4gIHZhciBpID0gMFxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHZhbCArPSB0aGlzW29mZnNldCArIGldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50QkUgPSBmdW5jdGlvbiByZWFkSW50QkUgKG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHtcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCBieXRlTGVuZ3RoLCB0aGlzLmxlbmd0aClcblxuICB2YXIgaSA9IGJ5dGVMZW5ndGhcbiAgdmFyIG11bCA9IDFcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1pXVxuICB3aGlsZSAoaSA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHtcbiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyAtLWldICogbXVsXG4gIH1cbiAgbXVsICo9IDB4ODBcblxuICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKVxuXG4gIHJldHVybiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50OCA9IGZ1bmN0aW9uIHJlYWRJbnQ4IChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpXG4gIGlmICghKHRoaXNbb2Zmc2V0XSAmIDB4ODApKSByZXR1cm4gKHRoaXNbb2Zmc2V0XSlcbiAgcmV0dXJuICgoMHhmZiAtIHRoaXNbb2Zmc2V0XSArIDEpICogLTEpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDE2TEUgPSBmdW5jdGlvbiByZWFkSW50MTZMRSAob2Zmc2V0LCBub0Fzc2VydCkge1xuICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKVxuICB2YXIgdmFsID0gdGhpc1tvZmZzZXRdIHwgKHRoaXNbb2Zmc2V0ICsgMV0gPDwgOClcbiAgcmV0dXJuICh2YWwgJiAweDgwMDApID8gdmFsIHwgMHhGRkZGMDAwMCA6IHZhbFxufVxuXG5CdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkJFID0gZnVuY3Rpb24gcmVhZEludDE2QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aClcbiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgMV0gfCAodGhpc1tvZmZzZXRdIDw8IDgpXG4gIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWxcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJMRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0pIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8XG4gICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSA8PCAyNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRJbnQzMkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG5cbiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgMjQpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfFxuICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHxcbiAgICAodGhpc1tvZmZzZXQgKyAzXSlcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRMRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdExFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCAyMywgNClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRmxvYXRCRSA9IGZ1bmN0aW9uIHJlYWRGbG9hdEJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgMjMsIDQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUxFID0gZnVuY3Rpb24gcmVhZERvdWJsZUxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgOCwgdGhpcy5sZW5ndGgpXG4gIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCB0cnVlLCA1MiwgOClcbn1cblxuQnVmZmVyLnByb3RvdHlwZS5yZWFkRG91YmxlQkUgPSBmdW5jdGlvbiByZWFkRG91YmxlQkUgKG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aClcbiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIGZhbHNlLCA1MiwgOClcbn1cblxuZnVuY3Rpb24gY2hlY2tJbnQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihidWYpKSB0aHJvdyBuZXcgVHlwZUVycm9yKCdcImJ1ZmZlclwiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKVxuICBpZiAodmFsdWUgPiBtYXggfHwgdmFsdWUgPCBtaW4pIHRocm93IG5ldyBSYW5nZUVycm9yKCdcInZhbHVlXCIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpXG4gIGlmIChvZmZzZXQgKyBleHQgPiBidWYubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW5kZXggb3V0IG9mIHJhbmdlJylcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlVUludExFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIG1heEJ5dGVzID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpIC0gMVxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG1heEJ5dGVzLCAwKVxuICB9XG5cbiAgdmFyIG11bCA9IDFcbiAgdmFyIGkgPSAwXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAodmFsdWUgLyBtdWwpICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlVUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMFxuICBpZiAoIW5vQXNzZXJ0KSB7XG4gICAgdmFyIG1heEJ5dGVzID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGgpIC0gMVxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG1heEJ5dGVzLCAwKVxuICB9XG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoIC0gMVxuICB2YXIgbXVsID0gMVxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAodmFsdWUgLyBtdWwpICYgMHhGRlxuICB9XG5cbiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGhcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVVSW50OCAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAxLCAweGZmLCAwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gIHJldHVybiBvZmZzZXQgKyAxXG59XG5cbmZ1bmN0aW9uIG9iamVjdFdyaXRlVUludDE2IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbikge1xuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZiArIHZhbHVlICsgMVxuICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDIpOyBpIDwgajsgKytpKSB7XG4gICAgYnVmW29mZnNldCArIGldID0gKHZhbHVlICYgKDB4ZmYgPDwgKDggKiAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSkpKSA+Pj5cbiAgICAgIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpICogOFxuICB9XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MTYodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgMlxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDE2QkUgPSBmdW5jdGlvbiB3cml0ZVVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4ZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbmZ1bmN0aW9uIG9iamVjdFdyaXRlVUludDMyIChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbikge1xuICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDFcbiAgZm9yICh2YXIgaSA9IDAsIGogPSBNYXRoLm1pbihidWYubGVuZ3RoIC0gb2Zmc2V0LCA0KTsgaSA8IGo7ICsraSkge1xuICAgIGJ1ZltvZmZzZXQgKyBpXSA9ICh2YWx1ZSA+Pj4gKGxpdHRsZUVuZGlhbiA/IGkgOiAzIC0gaSkgKiA4KSAmIDB4ZmZcbiAgfVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgPj4+IDI0KVxuICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNClcbiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNilcbiAgICB0aGlzW29mZnNldCArIDJdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyA0XG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgdmFyIGkgPSAwXG4gIHZhciBtdWwgPSAxXG4gIHZhciBzdWIgPSAwXG4gIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRlxuICB3aGlsZSAoKytpIDwgYnl0ZUxlbmd0aCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIGlmICh2YWx1ZSA8IDAgJiYgc3ViID09PSAwICYmIHRoaXNbb2Zmc2V0ICsgaSAtIDFdICE9PSAwKSB7XG4gICAgICBzdWIgPSAxXG4gICAgfVxuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlSW50QkUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7XG4gIHZhbHVlID0gK3ZhbHVlXG4gIG9mZnNldCA9IG9mZnNldCB8IDBcbiAgaWYgKCFub0Fzc2VydCkge1xuICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoIC0gMSlcblxuICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KVxuICB9XG5cbiAgdmFyIGkgPSBieXRlTGVuZ3RoIC0gMVxuICB2YXIgbXVsID0gMVxuICB2YXIgc3ViID0gMFxuICB0aGlzW29mZnNldCArIGldID0gdmFsdWUgJiAweEZGXG4gIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkge1xuICAgIGlmICh2YWx1ZSA8IDAgJiYgc3ViID09PSAwICYmIHRoaXNbb2Zmc2V0ICsgaSArIDFdICE9PSAwKSB7XG4gICAgICBzdWIgPSAxXG4gICAgfVxuICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAoKHZhbHVlIC8gbXVsKSA+PiAwKSAtIHN1YiAmIDB4RkZcbiAgfVxuXG4gIHJldHVybiBvZmZzZXQgKyBieXRlTGVuZ3RoXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQ4ID0gZnVuY3Rpb24gd3JpdGVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4N2YsIC0weDgwKVxuICBpZiAoIUJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB2YWx1ZSA9IE1hdGguZmxvb3IodmFsdWUpXG4gIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZiArIHZhbHVlICsgMVxuICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICByZXR1cm4gb2Zmc2V0ICsgMVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlSW50MTZMRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCAyLCAweDdmZmYsIC0weDgwMDApXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOClcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCB0cnVlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMClcbiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7XG4gICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgJiAweGZmKVxuICB9IGVsc2Uge1xuICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKVxuICB9XG4gIHJldHVybiBvZmZzZXQgKyAyXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkxFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICB2YWx1ZSA9ICt2YWx1ZVxuICBvZmZzZXQgPSBvZmZzZXQgfCAwXG4gIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKVxuICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKVxuICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpXG4gIH0gZWxzZSB7XG4gICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlSW50MzJCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgdmFsdWUgPSArdmFsdWVcbiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMFxuICBpZiAoIW5vQXNzZXJ0KSBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCA0LCAweDdmZmZmZmZmLCAtMHg4MDAwMDAwMClcbiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmZmZmZmICsgdmFsdWUgKyAxXG4gIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkge1xuICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpXG4gICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gMTYpXG4gICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOClcbiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlICYgMHhmZilcbiAgfSBlbHNlIHtcbiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSlcbiAgfVxuICByZXR1cm4gb2Zmc2V0ICsgNFxufVxuXG5mdW5jdGlvbiBjaGVja0lFRUU3NTQgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgZXh0LCBtYXgsIG1pbikge1xuICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0luZGV4IG91dCBvZiByYW5nZScpXG4gIGlmIChvZmZzZXQgPCAwKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignSW5kZXggb3V0IG9mIHJhbmdlJylcbn1cblxuZnVuY3Rpb24gd3JpdGVGbG9hdCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA0LCAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LCAtMy40MDI4MjM0NjYzODUyODg2ZSszOClcbiAgfVxuICBpZWVlNzU0LndyaXRlKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCAyMywgNClcbiAgcmV0dXJuIG9mZnNldCArIDRcbn1cblxuQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0TEUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KVxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRmxvYXRCRSA9IGZ1bmN0aW9uIHdyaXRlRmxvYXRCRSAodmFsdWUsIG9mZnNldCwgbm9Bc3NlcnQpIHtcbiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UsIG5vQXNzZXJ0KVxufVxuXG5mdW5jdGlvbiB3cml0ZURvdWJsZSAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIG5vQXNzZXJ0KSB7XG4gIGlmICghbm9Bc3NlcnQpIHtcbiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA4LCAxLjc5NzY5MzEzNDg2MjMxNTdFKzMwOCwgLTEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4KVxuICB9XG4gIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDUyLCA4KVxuICByZXR1cm4gb2Zmc2V0ICsgOFxufVxuXG5CdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlTEUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkge1xuICByZXR1cm4gd3JpdGVEb3VibGUodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpXG59XG5cbkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVCRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7XG4gIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpXG59XG5cbi8vIGNvcHkodGFyZ2V0QnVmZmVyLCB0YXJnZXRTdGFydD0wLCBzb3VyY2VTdGFydD0wLCBzb3VyY2VFbmQ9YnVmZmVyLmxlbmd0aClcbkJ1ZmZlci5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uIGNvcHkgKHRhcmdldCwgdGFyZ2V0U3RhcnQsIHN0YXJ0LCBlbmQpIHtcbiAgaWYgKCFzdGFydCkgc3RhcnQgPSAwXG4gIGlmICghZW5kICYmIGVuZCAhPT0gMCkgZW5kID0gdGhpcy5sZW5ndGhcbiAgaWYgKHRhcmdldFN0YXJ0ID49IHRhcmdldC5sZW5ndGgpIHRhcmdldFN0YXJ0ID0gdGFyZ2V0Lmxlbmd0aFxuICBpZiAoIXRhcmdldFN0YXJ0KSB0YXJnZXRTdGFydCA9IDBcbiAgaWYgKGVuZCA+IDAgJiYgZW5kIDwgc3RhcnQpIGVuZCA9IHN0YXJ0XG5cbiAgLy8gQ29weSAwIGJ5dGVzOyB3ZSdyZSBkb25lXG4gIGlmIChlbmQgPT09IHN0YXJ0KSByZXR1cm4gMFxuICBpZiAodGFyZ2V0Lmxlbmd0aCA9PT0gMCB8fCB0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIDBcblxuICAvLyBGYXRhbCBlcnJvciBjb25kaXRpb25zXG4gIGlmICh0YXJnZXRTdGFydCA8IDApIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcigndGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcycpXG4gIH1cbiAgaWYgKHN0YXJ0IDwgMCB8fCBzdGFydCA+PSB0aGlzLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NvdXJjZVN0YXJ0IG91dCBvZiBib3VuZHMnKVxuICBpZiAoZW5kIDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3NvdXJjZUVuZCBvdXQgb2YgYm91bmRzJylcblxuICAvLyBBcmUgd2Ugb29iP1xuICBpZiAoZW5kID4gdGhpcy5sZW5ndGgpIGVuZCA9IHRoaXMubGVuZ3RoXG4gIGlmICh0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgPCBlbmQgLSBzdGFydCkge1xuICAgIGVuZCA9IHRhcmdldC5sZW5ndGggLSB0YXJnZXRTdGFydCArIHN0YXJ0XG4gIH1cblxuICB2YXIgbGVuID0gZW5kIC0gc3RhcnRcbiAgdmFyIGlcblxuICBpZiAodGhpcyA9PT0gdGFyZ2V0ICYmIHN0YXJ0IDwgdGFyZ2V0U3RhcnQgJiYgdGFyZ2V0U3RhcnQgPCBlbmQpIHtcbiAgICAvLyBkZXNjZW5kaW5nIGNvcHkgZnJvbSBlbmRcbiAgICBmb3IgKGkgPSBsZW4gLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgdGFyZ2V0W2kgKyB0YXJnZXRTdGFydF0gPSB0aGlzW2kgKyBzdGFydF1cbiAgICB9XG4gIH0gZWxzZSBpZiAobGVuIDwgMTAwMCB8fCAhQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHtcbiAgICAvLyBhc2NlbmRpbmcgY29weSBmcm9tIHN0YXJ0XG4gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKSB7XG4gICAgICB0YXJnZXRbaSArIHRhcmdldFN0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbChcbiAgICAgIHRhcmdldCxcbiAgICAgIHRoaXMuc3ViYXJyYXkoc3RhcnQsIHN0YXJ0ICsgbGVuKSxcbiAgICAgIHRhcmdldFN0YXJ0XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGxlblxufVxuXG4vLyBVc2FnZTpcbi8vICAgIGJ1ZmZlci5maWxsKG51bWJlclssIG9mZnNldFssIGVuZF1dKVxuLy8gICAgYnVmZmVyLmZpbGwoYnVmZmVyWywgb2Zmc2V0WywgZW5kXV0pXG4vLyAgICBidWZmZXIuZmlsbChzdHJpbmdbLCBvZmZzZXRbLCBlbmRdXVssIGVuY29kaW5nXSlcbkJ1ZmZlci5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uIGZpbGwgKHZhbCwgc3RhcnQsIGVuZCwgZW5jb2RpbmcpIHtcbiAgLy8gSGFuZGxlIHN0cmluZyBjYXNlczpcbiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHR5cGVvZiBzdGFydCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGVuY29kaW5nID0gc3RhcnRcbiAgICAgIHN0YXJ0ID0gMFxuICAgICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlbmNvZGluZyA9IGVuZFxuICAgICAgZW5kID0gdGhpcy5sZW5ndGhcbiAgICB9XG4gICAgaWYgKHZhbC5sZW5ndGggPT09IDEpIHtcbiAgICAgIHZhciBjb2RlID0gdmFsLmNoYXJDb2RlQXQoMClcbiAgICAgIGlmIChjb2RlIDwgMjU2KSB7XG4gICAgICAgIHZhbCA9IGNvZGVcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVuY29kaW5nICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGVuY29kaW5nICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignZW5jb2RpbmcgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnICYmICFCdWZmZXIuaXNFbmNvZGluZyhlbmNvZGluZykpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZylcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICB2YWwgPSB2YWwgJiAyNTVcbiAgfVxuXG4gIC8vIEludmFsaWQgcmFuZ2VzIGFyZSBub3Qgc2V0IHRvIGEgZGVmYXVsdCwgc28gY2FuIHJhbmdlIGNoZWNrIGVhcmx5LlxuICBpZiAoc3RhcnQgPCAwIHx8IHRoaXMubGVuZ3RoIDwgc3RhcnQgfHwgdGhpcy5sZW5ndGggPCBlbmQpIHtcbiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignT3V0IG9mIHJhbmdlIGluZGV4JylcbiAgfVxuXG4gIGlmIChlbmQgPD0gc3RhcnQpIHtcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc3RhcnQgPSBzdGFydCA+Pj4gMFxuICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IHRoaXMubGVuZ3RoIDogZW5kID4+PiAwXG5cbiAgaWYgKCF2YWwpIHZhbCA9IDBcblxuICB2YXIgaVxuICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7XG4gICAgICB0aGlzW2ldID0gdmFsXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBieXRlcyA9IEJ1ZmZlci5pc0J1ZmZlcih2YWwpXG4gICAgICA/IHZhbFxuICAgICAgOiB1dGY4VG9CeXRlcyhuZXcgQnVmZmVyKHZhbCwgZW5jb2RpbmcpLnRvU3RyaW5nKCkpXG4gICAgdmFyIGxlbiA9IGJ5dGVzLmxlbmd0aFxuICAgIGZvciAoaSA9IDA7IGkgPCBlbmQgLSBzdGFydDsgKytpKSB7XG4gICAgICB0aGlzW2kgKyBzdGFydF0gPSBieXRlc1tpICUgbGVuXVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0aGlzXG59XG5cbi8vIEhFTFBFUiBGVU5DVElPTlNcbi8vID09PT09PT09PT09PT09PT1cblxudmFyIElOVkFMSURfQkFTRTY0X1JFID0gL1teK1xcLzAtOUEtWmEtei1fXS9nXG5cbmZ1bmN0aW9uIGJhc2U2NGNsZWFuIChzdHIpIHtcbiAgLy8gTm9kZSBzdHJpcHMgb3V0IGludmFsaWQgY2hhcmFjdGVycyBsaWtlIFxcbiBhbmQgXFx0IGZyb20gdGhlIHN0cmluZywgYmFzZTY0LWpzIGRvZXMgbm90XG4gIHN0ciA9IHN0cmluZ3RyaW0oc3RyKS5yZXBsYWNlKElOVkFMSURfQkFTRTY0X1JFLCAnJylcbiAgLy8gTm9kZSBjb252ZXJ0cyBzdHJpbmdzIHdpdGggbGVuZ3RoIDwgMiB0byAnJ1xuICBpZiAoc3RyLmxlbmd0aCA8IDIpIHJldHVybiAnJ1xuICAvLyBOb2RlIGFsbG93cyBmb3Igbm9uLXBhZGRlZCBiYXNlNjQgc3RyaW5ncyAobWlzc2luZyB0cmFpbGluZyA9PT0pLCBiYXNlNjQtanMgZG9lcyBub3RcbiAgd2hpbGUgKHN0ci5sZW5ndGggJSA0ICE9PSAwKSB7XG4gICAgc3RyID0gc3RyICsgJz0nXG4gIH1cbiAgcmV0dXJuIHN0clxufVxuXG5mdW5jdGlvbiBzdHJpbmd0cmltIChzdHIpIHtcbiAgaWYgKHN0ci50cmltKSByZXR1cm4gc3RyLnRyaW0oKVxuICByZXR1cm4gc3RyLnJlcGxhY2UoL15cXHMrfFxccyskL2csICcnKVxufVxuXG5mdW5jdGlvbiB0b0hleCAobikge1xuICBpZiAobiA8IDE2KSByZXR1cm4gJzAnICsgbi50b1N0cmluZygxNilcbiAgcmV0dXJuIG4udG9TdHJpbmcoMTYpXG59XG5cbmZ1bmN0aW9uIHV0ZjhUb0J5dGVzIChzdHJpbmcsIHVuaXRzKSB7XG4gIHVuaXRzID0gdW5pdHMgfHwgSW5maW5pdHlcbiAgdmFyIGNvZGVQb2ludFxuICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aFxuICB2YXIgbGVhZFN1cnJvZ2F0ZSA9IG51bGxcbiAgdmFyIGJ5dGVzID0gW11cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgY29kZVBvaW50ID0gc3RyaW5nLmNoYXJDb2RlQXQoaSlcblxuICAgIC8vIGlzIHN1cnJvZ2F0ZSBjb21wb25lbnRcbiAgICBpZiAoY29kZVBvaW50ID4gMHhEN0ZGICYmIGNvZGVQb2ludCA8IDB4RTAwMCkge1xuICAgICAgLy8gbGFzdCBjaGFyIHdhcyBhIGxlYWRcbiAgICAgIGlmICghbGVhZFN1cnJvZ2F0ZSkge1xuICAgICAgICAvLyBubyBsZWFkIHlldFxuICAgICAgICBpZiAoY29kZVBvaW50ID4gMHhEQkZGKSB7XG4gICAgICAgICAgLy8gdW5leHBlY3RlZCB0cmFpbFxuICAgICAgICAgIGlmICgodW5pdHMgLT0gMykgPiAtMSkgYnl0ZXMucHVzaCgweEVGLCAweEJGLCAweEJEKVxuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH0gZWxzZSBpZiAoaSArIDEgPT09IGxlbmd0aCkge1xuICAgICAgICAgIC8vIHVucGFpcmVkIGxlYWRcbiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gdmFsaWQgbGVhZFxuICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50XG5cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgLy8gMiBsZWFkcyBpbiBhIHJvd1xuICAgICAgaWYgKGNvZGVQb2ludCA8IDB4REMwMCkge1xuICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRClcbiAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IGNvZGVQb2ludFxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyB2YWxpZCBzdXJyb2dhdGUgcGFpclxuICAgICAgY29kZVBvaW50ID0gKGxlYWRTdXJyb2dhdGUgLSAweEQ4MDAgPDwgMTAgfCBjb2RlUG9pbnQgLSAweERDMDApICsgMHgxMDAwMFxuICAgIH0gZWxzZSBpZiAobGVhZFN1cnJvZ2F0ZSkge1xuICAgICAgLy8gdmFsaWQgYm1wIGNoYXIsIGJ1dCBsYXN0IGNoYXIgd2FzIGEgbGVhZFxuICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpXG4gICAgfVxuXG4gICAgbGVhZFN1cnJvZ2F0ZSA9IG51bGxcblxuICAgIC8vIGVuY29kZSB1dGY4XG4gICAgaWYgKGNvZGVQb2ludCA8IDB4ODApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMSkgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChjb2RlUG9pbnQpXG4gICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDgwMCkge1xuICAgICAgaWYgKCh1bml0cyAtPSAyKSA8IDApIGJyZWFrXG4gICAgICBieXRlcy5wdXNoKFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2IHwgMHhDMCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4MTAwMDApIHtcbiAgICAgIGlmICgodW5pdHMgLT0gMykgPCAwKSBicmVha1xuICAgICAgYnl0ZXMucHVzaChcbiAgICAgICAgY29kZVBvaW50ID4+IDB4QyB8IDB4RTAsXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDYgJiAweDNGIHwgMHg4MCxcbiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODBcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4MTEwMDAwKSB7XG4gICAgICBpZiAoKHVuaXRzIC09IDQpIDwgMCkgYnJlYWtcbiAgICAgIGJ5dGVzLnB1c2goXG4gICAgICAgIGNvZGVQb2ludCA+PiAweDEyIHwgMHhGMCxcbiAgICAgICAgY29kZVBvaW50ID4+IDB4QyAmIDB4M0YgfCAweDgwLFxuICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsXG4gICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb2RlIHBvaW50JylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gYnl0ZXNcbn1cblxuZnVuY3Rpb24gYXNjaWlUb0J5dGVzIChzdHIpIHtcbiAgdmFyIGJ5dGVBcnJheSA9IFtdXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7XG4gICAgLy8gTm9kZSdzIGNvZGUgc2VlbXMgdG8gYmUgZG9pbmcgdGhpcyBhbmQgbm90ICYgMHg3Ri4uXG4gICAgYnl0ZUFycmF5LnB1c2goc3RyLmNoYXJDb2RlQXQoaSkgJiAweEZGKVxuICB9XG4gIHJldHVybiBieXRlQXJyYXlcbn1cblxuZnVuY3Rpb24gdXRmMTZsZVRvQnl0ZXMgKHN0ciwgdW5pdHMpIHtcbiAgdmFyIGMsIGhpLCBsb1xuICB2YXIgYnl0ZUFycmF5ID0gW11cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWtcblxuICAgIGMgPSBzdHIuY2hhckNvZGVBdChpKVxuICAgIGhpID0gYyA+PiA4XG4gICAgbG8gPSBjICUgMjU2XG4gICAgYnl0ZUFycmF5LnB1c2gobG8pXG4gICAgYnl0ZUFycmF5LnB1c2goaGkpXG4gIH1cblxuICByZXR1cm4gYnl0ZUFycmF5XG59XG5cbmZ1bmN0aW9uIGJhc2U2NFRvQnl0ZXMgKHN0cikge1xuICByZXR1cm4gYmFzZTY0LnRvQnl0ZUFycmF5KGJhc2U2NGNsZWFuKHN0cikpXG59XG5cbmZ1bmN0aW9uIGJsaXRCdWZmZXIgKHNyYywgZHN0LCBvZmZzZXQsIGxlbmd0aCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgaWYgKChpICsgb2Zmc2V0ID49IGRzdC5sZW5ndGgpIHx8IChpID49IHNyYy5sZW5ndGgpKSBicmVha1xuICAgIGRzdFtpICsgb2Zmc2V0XSA9IHNyY1tpXVxuICB9XG4gIHJldHVybiBpXG59XG5cbmZ1bmN0aW9uIGlzbmFuICh2YWwpIHtcbiAgcmV0dXJuIHZhbCAhPT0gdmFsIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2VsZi1jb21wYXJlXG59XG4iLCJ2YXIgdG9TdHJpbmcgPSB7fS50b1N0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIChhcnIpIHtcbiAgcmV0dXJuIHRvU3RyaW5nLmNhbGwoYXJyKSA9PSAnW29iamVjdCBBcnJheV0nO1xufTtcbiIsIi8qKlxuICogU2xpY2UgcmVmZXJlbmNlLlxuICovXG5cbnZhciBzbGljZSA9IFtdLnNsaWNlO1xuXG4vKipcbiAqIEJpbmQgYG9iamAgdG8gYGZuYC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufFN0cmluZ30gZm4gb3Igc3RyaW5nXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihvYmosIGZuKXtcbiAgaWYgKCdzdHJpbmcnID09IHR5cGVvZiBmbikgZm4gPSBvYmpbZm5dO1xuICBpZiAoJ2Z1bmN0aW9uJyAhPSB0eXBlb2YgZm4pIHRocm93IG5ldyBFcnJvcignYmluZCgpIHJlcXVpcmVzIGEgZnVuY3Rpb24nKTtcbiAgdmFyIGFyZ3MgPSBzbGljZS5jYWxsKGFyZ3VtZW50cywgMik7XG4gIHJldHVybiBmdW5jdGlvbigpe1xuICAgIHJldHVybiBmbi5hcHBseShvYmosIGFyZ3MuY29uY2F0KHNsaWNlLmNhbGwoYXJndW1lbnRzKSkpO1xuICB9XG59O1xuIiwiXHJcbi8qKlxyXG4gKiBFeHBvc2UgYEVtaXR0ZXJgLlxyXG4gKi9cclxuXHJcbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJykge1xyXG4gIG1vZHVsZS5leHBvcnRzID0gRW1pdHRlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEluaXRpYWxpemUgYSBuZXcgYEVtaXR0ZXJgLlxyXG4gKlxyXG4gKiBAYXBpIHB1YmxpY1xyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIEVtaXR0ZXIob2JqKSB7XHJcbiAgaWYgKG9iaikgcmV0dXJuIG1peGluKG9iaik7XHJcbn07XHJcblxyXG4vKipcclxuICogTWl4aW4gdGhlIGVtaXR0ZXIgcHJvcGVydGllcy5cclxuICpcclxuICogQHBhcmFtIHtPYmplY3R9IG9ialxyXG4gKiBAcmV0dXJuIHtPYmplY3R9XHJcbiAqIEBhcGkgcHJpdmF0ZVxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIG1peGluKG9iaikge1xyXG4gIGZvciAodmFyIGtleSBpbiBFbWl0dGVyLnByb3RvdHlwZSkge1xyXG4gICAgb2JqW2tleV0gPSBFbWl0dGVyLnByb3RvdHlwZVtrZXldO1xyXG4gIH1cclxuICByZXR1cm4gb2JqO1xyXG59XHJcblxyXG4vKipcclxuICogTGlzdGVuIG9uIHRoZSBnaXZlbiBgZXZlbnRgIHdpdGggYGZuYC5cclxuICpcclxuICogQHBhcmFtIHtTdHJpbmd9IGV2ZW50XHJcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGZuXHJcbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XHJcbiAqIEBhcGkgcHVibGljXHJcbiAqL1xyXG5cclxuRW1pdHRlci5wcm90b3R5cGUub24gPVxyXG5FbWl0dGVyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcclxuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XHJcbiAgKHRoaXMuX2NhbGxiYWNrc1snJCcgKyBldmVudF0gPSB0aGlzLl9jYWxsYmFja3NbJyQnICsgZXZlbnRdIHx8IFtdKVxyXG4gICAgLnB1c2goZm4pO1xyXG4gIHJldHVybiB0aGlzO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEFkZHMgYW4gYGV2ZW50YCBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCBhIHNpbmdsZVxyXG4gKiB0aW1lIHRoZW4gYXV0b21hdGljYWxseSByZW1vdmVkLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcclxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cclxuICogQHJldHVybiB7RW1pdHRlcn1cclxuICogQGFwaSBwdWJsaWNcclxuICovXHJcblxyXG5FbWl0dGVyLnByb3RvdHlwZS5vbmNlID0gZnVuY3Rpb24oZXZlbnQsIGZuKXtcclxuICBmdW5jdGlvbiBvbigpIHtcclxuICAgIHRoaXMub2ZmKGV2ZW50LCBvbik7XHJcbiAgICBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xyXG4gIH1cclxuXHJcbiAgb24uZm4gPSBmbjtcclxuICB0aGlzLm9uKGV2ZW50LCBvbik7XHJcbiAgcmV0dXJuIHRoaXM7XHJcbn07XHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBnaXZlbiBjYWxsYmFjayBmb3IgYGV2ZW50YCBvciBhbGxcclxuICogcmVnaXN0ZXJlZCBjYWxsYmFja3MuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxyXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmblxyXG4gKiBAcmV0dXJuIHtFbWl0dGVyfVxyXG4gKiBAYXBpIHB1YmxpY1xyXG4gKi9cclxuXHJcbkVtaXR0ZXIucHJvdG90eXBlLm9mZiA9XHJcbkVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID1cclxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID1cclxuRW1pdHRlci5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKGV2ZW50LCBmbil7XHJcbiAgdGhpcy5fY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzIHx8IHt9O1xyXG5cclxuICAvLyBhbGxcclxuICBpZiAoMCA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICB0aGlzLl9jYWxsYmFja3MgPSB7fTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLy8gc3BlY2lmaWMgZXZlbnRcclxuICB2YXIgY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XTtcclxuICBpZiAoIWNhbGxiYWNrcykgcmV0dXJuIHRoaXM7XHJcblxyXG4gIC8vIHJlbW92ZSBhbGwgaGFuZGxlcnNcclxuICBpZiAoMSA9PSBhcmd1bWVudHMubGVuZ3RoKSB7XHJcbiAgICBkZWxldGUgdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLy8gcmVtb3ZlIHNwZWNpZmljIGhhbmRsZXJcclxuICB2YXIgY2I7XHJcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsYmFja3MubGVuZ3RoOyBpKyspIHtcclxuICAgIGNiID0gY2FsbGJhY2tzW2ldO1xyXG4gICAgaWYgKGNiID09PSBmbiB8fCBjYi5mbiA9PT0gZm4pIHtcclxuICAgICAgY2FsbGJhY2tzLnNwbGljZShpLCAxKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB0aGlzO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEVtaXQgYGV2ZW50YCB3aXRoIHRoZSBnaXZlbiBhcmdzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcclxuICogQHBhcmFtIHtNaXhlZH0gLi4uXHJcbiAqIEByZXR1cm4ge0VtaXR0ZXJ9XHJcbiAqL1xyXG5cclxuRW1pdHRlci5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uKGV2ZW50KXtcclxuICB0aGlzLl9jYWxsYmFja3MgPSB0aGlzLl9jYWxsYmFja3MgfHwge307XHJcbiAgdmFyIGFyZ3MgPSBbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSlcclxuICAgICwgY2FsbGJhY2tzID0gdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XTtcclxuXHJcbiAgaWYgKGNhbGxiYWNrcykge1xyXG4gICAgY2FsbGJhY2tzID0gY2FsbGJhY2tzLnNsaWNlKDApO1xyXG4gICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNhbGxiYWNrcy5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xyXG4gICAgICBjYWxsYmFja3NbaV0uYXBwbHkodGhpcywgYXJncyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdGhpcztcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gYXJyYXkgb2YgY2FsbGJhY2tzIGZvciBgZXZlbnRgLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnRcclxuICogQHJldHVybiB7QXJyYXl9XHJcbiAqIEBhcGkgcHVibGljXHJcbiAqL1xyXG5cclxuRW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24oZXZlbnQpe1xyXG4gIHRoaXMuX2NhbGxiYWNrcyA9IHRoaXMuX2NhbGxiYWNrcyB8fCB7fTtcclxuICByZXR1cm4gdGhpcy5fY2FsbGJhY2tzWyckJyArIGV2ZW50XSB8fCBbXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiB0aGlzIGVtaXR0ZXIgaGFzIGBldmVudGAgaGFuZGxlcnMuXHJcbiAqXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudFxyXG4gKiBAcmV0dXJuIHtCb29sZWFufVxyXG4gKiBAYXBpIHB1YmxpY1xyXG4gKi9cclxuXHJcbkVtaXR0ZXIucHJvdG90eXBlLmhhc0xpc3RlbmVycyA9IGZ1bmN0aW9uKGV2ZW50KXtcclxuICByZXR1cm4gISEgdGhpcy5saXN0ZW5lcnMoZXZlbnQpLmxlbmd0aDtcclxufTtcclxuIiwiXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKGEsIGIpe1xuICB2YXIgZm4gPSBmdW5jdGlvbigpe307XG4gIGZuLnByb3RvdHlwZSA9IGIucHJvdG90eXBlO1xuICBhLnByb3RvdHlwZSA9IG5ldyBmbjtcbiAgYS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBhO1xufTsiLCIvKipcbiAqIEhlbHBlcnMuXG4gKi9cblxudmFyIHMgPSAxMDAwO1xudmFyIG0gPSBzICogNjA7XG52YXIgaCA9IG0gKiA2MDtcbnZhciBkID0gaCAqIDI0O1xudmFyIHcgPSBkICogNztcbnZhciB5ID0gZCAqIDM2NS4yNTtcblxuLyoqXG4gKiBQYXJzZSBvciBmb3JtYXQgdGhlIGdpdmVuIGB2YWxgLlxuICpcbiAqIE9wdGlvbnM6XG4gKlxuICogIC0gYGxvbmdgIHZlcmJvc2UgZm9ybWF0dGluZyBbZmFsc2VdXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8TnVtYmVyfSB2YWxcbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9uc11cbiAqIEB0aHJvd3Mge0Vycm9yfSB0aHJvdyBhbiBlcnJvciBpZiB2YWwgaXMgbm90IGEgbm9uLWVtcHR5IHN0cmluZyBvciBhIG51bWJlclxuICogQHJldHVybiB7U3RyaW5nfE51bWJlcn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbih2YWwsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHZhciB0eXBlID0gdHlwZW9mIHZhbDtcbiAgaWYgKHR5cGUgPT09ICdzdHJpbmcnICYmIHZhbC5sZW5ndGggPiAwKSB7XG4gICAgcmV0dXJuIHBhcnNlKHZhbCk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ251bWJlcicgJiYgaXNGaW5pdGUodmFsKSkge1xuICAgIHJldHVybiBvcHRpb25zLmxvbmcgPyBmbXRMb25nKHZhbCkgOiBmbXRTaG9ydCh2YWwpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICAndmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD0nICtcbiAgICAgIEpTT04uc3RyaW5naWZ5KHZhbClcbiAgKTtcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGBzdHJgIGFuZCByZXR1cm4gbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlKHN0cikge1xuICBzdHIgPSBTdHJpbmcoc3RyKTtcbiAgaWYgKHN0ci5sZW5ndGggPiAxMDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIG1hdGNoID0gL14oLT8oPzpcXGQrKT9cXC4/XFxkKykgKihtaWxsaXNlY29uZHM/fG1zZWNzP3xtc3xzZWNvbmRzP3xzZWNzP3xzfG1pbnV0ZXM/fG1pbnM/fG18aG91cnM/fGhycz98aHxkYXlzP3xkfHdlZWtzP3x3fHllYXJzP3x5cnM/fHkpPyQvaS5leGVjKFxuICAgIHN0clxuICApO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHZhciBuID0gcGFyc2VGbG9hdChtYXRjaFsxXSk7XG4gIHZhciB0eXBlID0gKG1hdGNoWzJdIHx8ICdtcycpLnRvTG93ZXJDYXNlKCk7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ3llYXJzJzpcbiAgICBjYXNlICd5ZWFyJzpcbiAgICBjYXNlICd5cnMnOlxuICAgIGNhc2UgJ3lyJzpcbiAgICBjYXNlICd5JzpcbiAgICAgIHJldHVybiBuICogeTtcbiAgICBjYXNlICd3ZWVrcyc6XG4gICAgY2FzZSAnd2Vlayc6XG4gICAgY2FzZSAndyc6XG4gICAgICByZXR1cm4gbiAqIHc7XG4gICAgY2FzZSAnZGF5cyc6XG4gICAgY2FzZSAnZGF5JzpcbiAgICBjYXNlICdkJzpcbiAgICAgIHJldHVybiBuICogZDtcbiAgICBjYXNlICdob3Vycyc6XG4gICAgY2FzZSAnaG91cic6XG4gICAgY2FzZSAnaHJzJzpcbiAgICBjYXNlICdocic6XG4gICAgY2FzZSAnaCc6XG4gICAgICByZXR1cm4gbiAqIGg7XG4gICAgY2FzZSAnbWludXRlcyc6XG4gICAgY2FzZSAnbWludXRlJzpcbiAgICBjYXNlICdtaW5zJzpcbiAgICBjYXNlICdtaW4nOlxuICAgIGNhc2UgJ20nOlxuICAgICAgcmV0dXJuIG4gKiBtO1xuICAgIGNhc2UgJ3NlY29uZHMnOlxuICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgY2FzZSAnc2Vjcyc6XG4gICAgY2FzZSAnc2VjJzpcbiAgICBjYXNlICdzJzpcbiAgICAgIHJldHVybiBuICogcztcbiAgICBjYXNlICdtaWxsaXNlY29uZHMnOlxuICAgIGNhc2UgJ21pbGxpc2Vjb25kJzpcbiAgICBjYXNlICdtc2Vjcyc6XG4gICAgY2FzZSAnbXNlYyc6XG4gICAgY2FzZSAnbXMnOlxuICAgICAgcmV0dXJuIG47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBTaG9ydCBmb3JtYXQgZm9yIGBtc2AuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG1zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBmbXRTaG9ydChtcykge1xuICB2YXIgbXNBYnMgPSBNYXRoLmFicyhtcyk7XG4gIGlmIChtc0FicyA+PSBkKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBkKSArICdkJztcbiAgfVxuICBpZiAobXNBYnMgPj0gaCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gaCkgKyAnaCc7XG4gIH1cbiAgaWYgKG1zQWJzID49IG0pIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIG0pICsgJ20nO1xuICB9XG4gIGlmIChtc0FicyA+PSBzKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBzKSArICdzJztcbiAgfVxuICByZXR1cm4gbXMgKyAnbXMnO1xufVxuXG4vKipcbiAqIExvbmcgZm9ybWF0IGZvciBgbXNgLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBtc1xuICogQHJldHVybiB7U3RyaW5nfVxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZm10TG9uZyhtcykge1xuICB2YXIgbXNBYnMgPSBNYXRoLmFicyhtcyk7XG4gIGlmIChtc0FicyA+PSBkKSB7XG4gICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIGQsICdkYXknKTtcbiAgfVxuICBpZiAobXNBYnMgPj0gaCkge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBoLCAnaG91cicpO1xuICB9XG4gIGlmIChtc0FicyA+PSBtKSB7XG4gICAgcmV0dXJuIHBsdXJhbChtcywgbXNBYnMsIG0sICdtaW51dGUnKTtcbiAgfVxuICBpZiAobXNBYnMgPj0gcykge1xuICAgIHJldHVybiBwbHVyYWwobXMsIG1zQWJzLCBzLCAnc2Vjb25kJyk7XG4gIH1cbiAgcmV0dXJuIG1zICsgJyBtcyc7XG59XG5cbi8qKlxuICogUGx1cmFsaXphdGlvbiBoZWxwZXIuXG4gKi9cblxuZnVuY3Rpb24gcGx1cmFsKG1zLCBtc0FicywgbiwgbmFtZSkge1xuICB2YXIgaXNQbHVyYWwgPSBtc0FicyA+PSBuICogMS41O1xuICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIG4pICsgJyAnICsgbmFtZSArIChpc1BsdXJhbCA/ICdzJyA6ICcnKTtcbn1cbiIsIi8qIGVzbGludC1lbnYgYnJvd3NlciAqL1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIHdlYiBicm93c2VyIGltcGxlbWVudGF0aW9uIG9mIGBkZWJ1ZygpYC5cbiAqL1xuXG5leHBvcnRzLmxvZyA9IGxvZztcbmV4cG9ydHMuZm9ybWF0QXJncyA9IGZvcm1hdEFyZ3M7XG5leHBvcnRzLnNhdmUgPSBzYXZlO1xuZXhwb3J0cy5sb2FkID0gbG9hZDtcbmV4cG9ydHMudXNlQ29sb3JzID0gdXNlQ29sb3JzO1xuZXhwb3J0cy5zdG9yYWdlID0gbG9jYWxzdG9yYWdlKCk7XG5cbi8qKlxuICogQ29sb3JzLlxuICovXG5cbmV4cG9ydHMuY29sb3JzID0gW1xuXHQnIzAwMDBDQycsXG5cdCcjMDAwMEZGJyxcblx0JyMwMDMzQ0MnLFxuXHQnIzAwMzNGRicsXG5cdCcjMDA2NkNDJyxcblx0JyMwMDY2RkYnLFxuXHQnIzAwOTlDQycsXG5cdCcjMDA5OUZGJyxcblx0JyMwMENDMDAnLFxuXHQnIzAwQ0MzMycsXG5cdCcjMDBDQzY2Jyxcblx0JyMwMENDOTknLFxuXHQnIzAwQ0NDQycsXG5cdCcjMDBDQ0ZGJyxcblx0JyMzMzAwQ0MnLFxuXHQnIzMzMDBGRicsXG5cdCcjMzMzM0NDJyxcblx0JyMzMzMzRkYnLFxuXHQnIzMzNjZDQycsXG5cdCcjMzM2NkZGJyxcblx0JyMzMzk5Q0MnLFxuXHQnIzMzOTlGRicsXG5cdCcjMzNDQzAwJyxcblx0JyMzM0NDMzMnLFxuXHQnIzMzQ0M2NicsXG5cdCcjMzNDQzk5Jyxcblx0JyMzM0NDQ0MnLFxuXHQnIzMzQ0NGRicsXG5cdCcjNjYwMENDJyxcblx0JyM2NjAwRkYnLFxuXHQnIzY2MzNDQycsXG5cdCcjNjYzM0ZGJyxcblx0JyM2NkNDMDAnLFxuXHQnIzY2Q0MzMycsXG5cdCcjOTkwMENDJyxcblx0JyM5OTAwRkYnLFxuXHQnIzk5MzNDQycsXG5cdCcjOTkzM0ZGJyxcblx0JyM5OUNDMDAnLFxuXHQnIzk5Q0MzMycsXG5cdCcjQ0MwMDAwJyxcblx0JyNDQzAwMzMnLFxuXHQnI0NDMDA2NicsXG5cdCcjQ0MwMDk5Jyxcblx0JyNDQzAwQ0MnLFxuXHQnI0NDMDBGRicsXG5cdCcjQ0MzMzAwJyxcblx0JyNDQzMzMzMnLFxuXHQnI0NDMzM2NicsXG5cdCcjQ0MzMzk5Jyxcblx0JyNDQzMzQ0MnLFxuXHQnI0NDMzNGRicsXG5cdCcjQ0M2NjAwJyxcblx0JyNDQzY2MzMnLFxuXHQnI0NDOTkwMCcsXG5cdCcjQ0M5OTMzJyxcblx0JyNDQ0NDMDAnLFxuXHQnI0NDQ0MzMycsXG5cdCcjRkYwMDAwJyxcblx0JyNGRjAwMzMnLFxuXHQnI0ZGMDA2NicsXG5cdCcjRkYwMDk5Jyxcblx0JyNGRjAwQ0MnLFxuXHQnI0ZGMDBGRicsXG5cdCcjRkYzMzAwJyxcblx0JyNGRjMzMzMnLFxuXHQnI0ZGMzM2NicsXG5cdCcjRkYzMzk5Jyxcblx0JyNGRjMzQ0MnLFxuXHQnI0ZGMzNGRicsXG5cdCcjRkY2NjAwJyxcblx0JyNGRjY2MzMnLFxuXHQnI0ZGOTkwMCcsXG5cdCcjRkY5OTMzJyxcblx0JyNGRkNDMDAnLFxuXHQnI0ZGQ0MzMydcbl07XG5cbi8qKlxuICogQ3VycmVudGx5IG9ubHkgV2ViS2l0LWJhc2VkIFdlYiBJbnNwZWN0b3JzLCBGaXJlZm94ID49IHYzMSxcbiAqIGFuZCB0aGUgRmlyZWJ1ZyBleHRlbnNpb24gKGFueSBGaXJlZm94IHZlcnNpb24pIGFyZSBrbm93blxuICogdG8gc3VwcG9ydCBcIiVjXCIgQ1NTIGN1c3RvbWl6YXRpb25zLlxuICpcbiAqIFRPRE86IGFkZCBhIGBsb2NhbFN0b3JhZ2VgIHZhcmlhYmxlIHRvIGV4cGxpY2l0bHkgZW5hYmxlL2Rpc2FibGUgY29sb3JzXG4gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmZ1bmN0aW9uIHVzZUNvbG9ycygpIHtcblx0Ly8gTkI6IEluIGFuIEVsZWN0cm9uIHByZWxvYWQgc2NyaXB0LCBkb2N1bWVudCB3aWxsIGJlIGRlZmluZWQgYnV0IG5vdCBmdWxseVxuXHQvLyBpbml0aWFsaXplZC4gU2luY2Ugd2Uga25vdyB3ZSdyZSBpbiBDaHJvbWUsIHdlJ2xsIGp1c3QgZGV0ZWN0IHRoaXMgY2FzZVxuXHQvLyBleHBsaWNpdGx5XG5cdGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cucHJvY2VzcyAmJiAod2luZG93LnByb2Nlc3MudHlwZSA9PT0gJ3JlbmRlcmVyJyB8fCB3aW5kb3cucHJvY2Vzcy5fX253anMpKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHQvLyBJbnRlcm5ldCBFeHBsb3JlciBhbmQgRWRnZSBkbyBub3Qgc3VwcG9ydCBjb2xvcnMuXG5cdGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcXC8oXFxkKykvKSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8vIElzIHdlYmtpdD8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTY0NTk2MDYvMzc2NzczXG5cdC8vIGRvY3VtZW50IGlzIHVuZGVmaW5lZCBpbiByZWFjdC1uYXRpdmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC1uYXRpdmUvcHVsbC8xNjMyXG5cdHJldHVybiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJyAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlKSB8fFxuXHRcdC8vIElzIGZpcmVidWc/IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzM5ODEyMC8zNzY3NzNcblx0XHQodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmNvbnNvbGUgJiYgKHdpbmRvdy5jb25zb2xlLmZpcmVidWcgfHwgKHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiAmJiB3aW5kb3cuY29uc29sZS50YWJsZSkpKSB8fFxuXHRcdC8vIElzIGZpcmVmb3ggPj0gdjMxP1xuXHRcdC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvVG9vbHMvV2ViX0NvbnNvbGUjU3R5bGluZ19tZXNzYWdlc1xuXHRcdCh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFxcLyhcXGQrKS8pICYmIHBhcnNlSW50KFJlZ0V4cC4kMSwgMTApID49IDMxKSB8fFxuXHRcdC8vIERvdWJsZSBjaGVjayB3ZWJraXQgaW4gdXNlckFnZW50IGp1c3QgaW4gY2FzZSB3ZSBhcmUgaW4gYSB3b3JrZXJcblx0XHQodHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJiBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XFwvKFxcZCspLykpO1xufVxuXG4vKipcbiAqIENvbG9yaXplIGxvZyBhcmd1bWVudHMgaWYgZW5hYmxlZC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGZvcm1hdEFyZ3MoYXJncykge1xuXHRhcmdzWzBdID0gKHRoaXMudXNlQ29sb3JzID8gJyVjJyA6ICcnKSArXG5cdFx0dGhpcy5uYW1lc3BhY2UgK1xuXHRcdCh0aGlzLnVzZUNvbG9ycyA/ICcgJWMnIDogJyAnKSArXG5cdFx0YXJnc1swXSArXG5cdFx0KHRoaXMudXNlQ29sb3JzID8gJyVjICcgOiAnICcpICtcblx0XHQnKycgKyBtb2R1bGUuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpO1xuXG5cdGlmICghdGhpcy51c2VDb2xvcnMpIHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRjb25zdCBjID0gJ2NvbG9yOiAnICsgdGhpcy5jb2xvcjtcblx0YXJncy5zcGxpY2UoMSwgMCwgYywgJ2NvbG9yOiBpbmhlcml0Jyk7XG5cblx0Ly8gVGhlIGZpbmFsIFwiJWNcIiBpcyBzb21ld2hhdCB0cmlja3ksIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgb3RoZXJcblx0Ly8gYXJndW1lbnRzIHBhc3NlZCBlaXRoZXIgYmVmb3JlIG9yIGFmdGVyIHRoZSAlYywgc28gd2UgbmVlZCB0b1xuXHQvLyBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0IGluZGV4IHRvIGluc2VydCB0aGUgQ1NTIGludG9cblx0bGV0IGluZGV4ID0gMDtcblx0bGV0IGxhc3RDID0gMDtcblx0YXJnc1swXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csIG1hdGNoID0+IHtcblx0XHRpZiAobWF0Y2ggPT09ICclJScpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aW5kZXgrKztcblx0XHRpZiAobWF0Y2ggPT09ICclYycpIHtcblx0XHRcdC8vIFdlIG9ubHkgYXJlIGludGVyZXN0ZWQgaW4gdGhlICpsYXN0KiAlY1xuXHRcdFx0Ly8gKHRoZSB1c2VyIG1heSBoYXZlIHByb3ZpZGVkIHRoZWlyIG93bilcblx0XHRcdGxhc3RDID0gaW5kZXg7XG5cdFx0fVxuXHR9KTtcblxuXHRhcmdzLnNwbGljZShsYXN0QywgMCwgYyk7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5sb2coKWAgd2hlbiBhdmFpbGFibGUuXG4gKiBOby1vcCB3aGVuIGBjb25zb2xlLmxvZ2AgaXMgbm90IGEgXCJmdW5jdGlvblwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cbmZ1bmN0aW9uIGxvZyguLi5hcmdzKSB7XG5cdC8vIFRoaXMgaGFja2VyeSBpcyByZXF1aXJlZCBmb3IgSUU4LzksIHdoZXJlXG5cdC8vIHRoZSBgY29uc29sZS5sb2dgIGZ1bmN0aW9uIGRvZXNuJ3QgaGF2ZSAnYXBwbHknXG5cdHJldHVybiB0eXBlb2YgY29uc29sZSA9PT0gJ29iamVjdCcgJiZcblx0XHRjb25zb2xlLmxvZyAmJlxuXHRcdGNvbnNvbGUubG9nKC4uLmFyZ3MpO1xufVxuXG4vKipcbiAqIFNhdmUgYG5hbWVzcGFjZXNgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG5cdHRyeSB7XG5cdFx0aWYgKG5hbWVzcGFjZXMpIHtcblx0XHRcdGV4cG9ydHMuc3RvcmFnZS5zZXRJdGVtKCdkZWJ1ZycsIG5hbWVzcGFjZXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRleHBvcnRzLnN0b3JhZ2UucmVtb3ZlSXRlbSgnZGVidWcnKTtcblx0XHR9XG5cdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0Ly8gU3dhbGxvd1xuXHRcdC8vIFhYWCAoQFFpeC0pIHNob3VsZCB3ZSBiZSBsb2dnaW5nIHRoZXNlP1xuXHR9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGxvYWQoKSB7XG5cdGxldCByO1xuXHR0cnkge1xuXHRcdHIgPSBleHBvcnRzLnN0b3JhZ2UuZ2V0SXRlbSgnZGVidWcnKTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHQvLyBTd2FsbG93XG5cdFx0Ly8gWFhYIChAUWl4LSkgc2hvdWxkIHdlIGJlIGxvZ2dpbmcgdGhlc2U/XG5cdH1cblxuXHQvLyBJZiBkZWJ1ZyBpc24ndCBzZXQgaW4gTFMsIGFuZCB3ZSdyZSBpbiBFbGVjdHJvbiwgdHJ5IHRvIGxvYWQgJERFQlVHXG5cdGlmICghciAmJiB0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ2VudicgaW4gcHJvY2Vzcykge1xuXHRcdHIgPSBwcm9jZXNzLmVudi5ERUJVRztcblx0fVxuXG5cdHJldHVybiByO1xufVxuXG4vKipcbiAqIExvY2Fsc3RvcmFnZSBhdHRlbXB0cyB0byByZXR1cm4gdGhlIGxvY2Fsc3RvcmFnZS5cbiAqXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHNhZmFyaSB0aHJvd3NcbiAqIHdoZW4gYSB1c2VyIGRpc2FibGVzIGNvb2tpZXMvbG9jYWxzdG9yYWdlXG4gKiBhbmQgeW91IGF0dGVtcHQgdG8gYWNjZXNzIGl0LlxuICpcbiAqIEByZXR1cm4ge0xvY2FsU3RvcmFnZX1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGxvY2Fsc3RvcmFnZSgpIHtcblx0dHJ5IHtcblx0XHQvLyBUVk1MS2l0IChBcHBsZSBUViBKUyBSdW50aW1lKSBkb2VzIG5vdCBoYXZlIGEgd2luZG93IG9iamVjdCwganVzdCBsb2NhbFN0b3JhZ2UgaW4gdGhlIGdsb2JhbCBjb250ZXh0XG5cdFx0Ly8gVGhlIEJyb3dzZXIgYWxzbyBoYXMgbG9jYWxTdG9yYWdlIGluIHRoZSBnbG9iYWwgY29udGV4dC5cblx0XHRyZXR1cm4gbG9jYWxTdG9yYWdlO1xuXHR9IGNhdGNoIChlcnJvcikge1xuXHRcdC8vIFN3YWxsb3dcblx0XHQvLyBYWFggKEBRaXgtKSBzaG91bGQgd2UgYmUgbG9nZ2luZyB0aGVzZT9cblx0fVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY29tbW9uJykoZXhwb3J0cyk7XG5cbmNvbnN0IHtmb3JtYXR0ZXJzfSA9IG1vZHVsZS5leHBvcnRzO1xuXG4vKipcbiAqIE1hcCAlaiB0byBgSlNPTi5zdHJpbmdpZnkoKWAsIHNpbmNlIG5vIFdlYiBJbnNwZWN0b3JzIGRvIHRoYXQgYnkgZGVmYXVsdC5cbiAqL1xuXG5mb3JtYXR0ZXJzLmogPSBmdW5jdGlvbiAodikge1xuXHR0cnkge1xuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeSh2KTtcblx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRyZXR1cm4gJ1tVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiAnICsgZXJyb3IubWVzc2FnZTtcblx0fVxufTtcbiIsIlxuLyoqXG4gKiBUaGlzIGlzIHRoZSBjb21tb24gbG9naWMgZm9yIGJvdGggdGhlIE5vZGUuanMgYW5kIHdlYiBicm93c2VyXG4gKiBpbXBsZW1lbnRhdGlvbnMgb2YgYGRlYnVnKClgLlxuICovXG5cbmZ1bmN0aW9uIHNldHVwKGVudikge1xuXHRjcmVhdGVEZWJ1Zy5kZWJ1ZyA9IGNyZWF0ZURlYnVnO1xuXHRjcmVhdGVEZWJ1Zy5kZWZhdWx0ID0gY3JlYXRlRGVidWc7XG5cdGNyZWF0ZURlYnVnLmNvZXJjZSA9IGNvZXJjZTtcblx0Y3JlYXRlRGVidWcuZGlzYWJsZSA9IGRpc2FibGU7XG5cdGNyZWF0ZURlYnVnLmVuYWJsZSA9IGVuYWJsZTtcblx0Y3JlYXRlRGVidWcuZW5hYmxlZCA9IGVuYWJsZWQ7XG5cdGNyZWF0ZURlYnVnLmh1bWFuaXplID0gcmVxdWlyZSgnbXMnKTtcblxuXHRPYmplY3Qua2V5cyhlbnYpLmZvckVhY2goa2V5ID0+IHtcblx0XHRjcmVhdGVEZWJ1Z1trZXldID0gZW52W2tleV07XG5cdH0pO1xuXG5cdC8qKlxuXHQqIEFjdGl2ZSBgZGVidWdgIGluc3RhbmNlcy5cblx0Ki9cblx0Y3JlYXRlRGVidWcuaW5zdGFuY2VzID0gW107XG5cblx0LyoqXG5cdCogVGhlIGN1cnJlbnRseSBhY3RpdmUgZGVidWcgbW9kZSBuYW1lcywgYW5kIG5hbWVzIHRvIHNraXAuXG5cdCovXG5cblx0Y3JlYXRlRGVidWcubmFtZXMgPSBbXTtcblx0Y3JlYXRlRGVidWcuc2tpcHMgPSBbXTtcblxuXHQvKipcblx0KiBNYXAgb2Ygc3BlY2lhbCBcIiVuXCIgaGFuZGxpbmcgZnVuY3Rpb25zLCBmb3IgdGhlIGRlYnVnIFwiZm9ybWF0XCIgYXJndW1lbnQuXG5cdCpcblx0KiBWYWxpZCBrZXkgbmFtZXMgYXJlIGEgc2luZ2xlLCBsb3dlciBvciB1cHBlci1jYXNlIGxldHRlciwgaS5lLiBcIm5cIiBhbmQgXCJOXCIuXG5cdCovXG5cdGNyZWF0ZURlYnVnLmZvcm1hdHRlcnMgPSB7fTtcblxuXHQvKipcblx0KiBTZWxlY3RzIGEgY29sb3IgZm9yIGEgZGVidWcgbmFtZXNwYWNlXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZSBUaGUgbmFtZXNwYWNlIHN0cmluZyBmb3IgdGhlIGZvciB0aGUgZGVidWcgaW5zdGFuY2UgdG8gYmUgY29sb3JlZFxuXHQqIEByZXR1cm4ge051bWJlcnxTdHJpbmd9IEFuIEFOU0kgY29sb3IgY29kZSBmb3IgdGhlIGdpdmVuIG5hbWVzcGFjZVxuXHQqIEBhcGkgcHJpdmF0ZVxuXHQqL1xuXHRmdW5jdGlvbiBzZWxlY3RDb2xvcihuYW1lc3BhY2UpIHtcblx0XHRsZXQgaGFzaCA9IDA7XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IG5hbWVzcGFjZS5sZW5ndGg7IGkrKykge1xuXHRcdFx0aGFzaCA9ICgoaGFzaCA8PCA1KSAtIGhhc2gpICsgbmFtZXNwYWNlLmNoYXJDb2RlQXQoaSk7XG5cdFx0XHRoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuXHRcdH1cblxuXHRcdHJldHVybiBjcmVhdGVEZWJ1Zy5jb2xvcnNbTWF0aC5hYnMoaGFzaCkgJSBjcmVhdGVEZWJ1Zy5jb2xvcnMubGVuZ3RoXTtcblx0fVxuXHRjcmVhdGVEZWJ1Zy5zZWxlY3RDb2xvciA9IHNlbGVjdENvbG9yO1xuXG5cdC8qKlxuXHQqIENyZWF0ZSBhIGRlYnVnZ2VyIHdpdGggdGhlIGdpdmVuIGBuYW1lc3BhY2VgLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZVxuXHQqIEByZXR1cm4ge0Z1bmN0aW9ufVxuXHQqIEBhcGkgcHVibGljXG5cdCovXG5cdGZ1bmN0aW9uIGNyZWF0ZURlYnVnKG5hbWVzcGFjZSkge1xuXHRcdGxldCBwcmV2VGltZTtcblxuXHRcdGZ1bmN0aW9uIGRlYnVnKC4uLmFyZ3MpIHtcblx0XHRcdC8vIERpc2FibGVkP1xuXHRcdFx0aWYgKCFkZWJ1Zy5lbmFibGVkKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3Qgc2VsZiA9IGRlYnVnO1xuXG5cdFx0XHQvLyBTZXQgYGRpZmZgIHRpbWVzdGFtcFxuXHRcdFx0Y29uc3QgY3VyciA9IE51bWJlcihuZXcgRGF0ZSgpKTtcblx0XHRcdGNvbnN0IG1zID0gY3VyciAtIChwcmV2VGltZSB8fCBjdXJyKTtcblx0XHRcdHNlbGYuZGlmZiA9IG1zO1xuXHRcdFx0c2VsZi5wcmV2ID0gcHJldlRpbWU7XG5cdFx0XHRzZWxmLmN1cnIgPSBjdXJyO1xuXHRcdFx0cHJldlRpbWUgPSBjdXJyO1xuXG5cdFx0XHRhcmdzWzBdID0gY3JlYXRlRGVidWcuY29lcmNlKGFyZ3NbMF0pO1xuXG5cdFx0XHRpZiAodHlwZW9mIGFyZ3NbMF0gIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdC8vIEFueXRoaW5nIGVsc2UgbGV0J3MgaW5zcGVjdCB3aXRoICVPXG5cdFx0XHRcdGFyZ3MudW5zaGlmdCgnJU8nKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQXBwbHkgYW55IGBmb3JtYXR0ZXJzYCB0cmFuc2Zvcm1hdGlvbnNcblx0XHRcdGxldCBpbmRleCA9IDA7XG5cdFx0XHRhcmdzWzBdID0gYXJnc1swXS5yZXBsYWNlKC8lKFthLXpBLVolXSkvZywgKG1hdGNoLCBmb3JtYXQpID0+IHtcblx0XHRcdFx0Ly8gSWYgd2UgZW5jb3VudGVyIGFuIGVzY2FwZWQgJSB0aGVuIGRvbid0IGluY3JlYXNlIHRoZSBhcnJheSBpbmRleFxuXHRcdFx0XHRpZiAobWF0Y2ggPT09ICclJScpIHtcblx0XHRcdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0XHRcdH1cblx0XHRcdFx0aW5kZXgrKztcblx0XHRcdFx0Y29uc3QgZm9ybWF0dGVyID0gY3JlYXRlRGVidWcuZm9ybWF0dGVyc1tmb3JtYXRdO1xuXHRcdFx0XHRpZiAodHlwZW9mIGZvcm1hdHRlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdGNvbnN0IHZhbCA9IGFyZ3NbaW5kZXhdO1xuXHRcdFx0XHRcdG1hdGNoID0gZm9ybWF0dGVyLmNhbGwoc2VsZiwgdmFsKTtcblxuXHRcdFx0XHRcdC8vIE5vdyB3ZSBuZWVkIHRvIHJlbW92ZSBgYXJnc1tpbmRleF1gIHNpbmNlIGl0J3MgaW5saW5lZCBpbiB0aGUgYGZvcm1hdGBcblx0XHRcdFx0XHRhcmdzLnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHRcdFx0aW5kZXgtLTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0XHR9KTtcblxuXHRcdFx0Ly8gQXBwbHkgZW52LXNwZWNpZmljIGZvcm1hdHRpbmcgKGNvbG9ycywgZXRjLilcblx0XHRcdGNyZWF0ZURlYnVnLmZvcm1hdEFyZ3MuY2FsbChzZWxmLCBhcmdzKTtcblxuXHRcdFx0Y29uc3QgbG9nRm4gPSBzZWxmLmxvZyB8fCBjcmVhdGVEZWJ1Zy5sb2c7XG5cdFx0XHRsb2dGbi5hcHBseShzZWxmLCBhcmdzKTtcblx0XHR9XG5cblx0XHRkZWJ1Zy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG5cdFx0ZGVidWcuZW5hYmxlZCA9IGNyZWF0ZURlYnVnLmVuYWJsZWQobmFtZXNwYWNlKTtcblx0XHRkZWJ1Zy51c2VDb2xvcnMgPSBjcmVhdGVEZWJ1Zy51c2VDb2xvcnMoKTtcblx0XHRkZWJ1Zy5jb2xvciA9IHNlbGVjdENvbG9yKG5hbWVzcGFjZSk7XG5cdFx0ZGVidWcuZGVzdHJveSA9IGRlc3Ryb3k7XG5cdFx0ZGVidWcuZXh0ZW5kID0gZXh0ZW5kO1xuXHRcdC8vIERlYnVnLmZvcm1hdEFyZ3MgPSBmb3JtYXRBcmdzO1xuXHRcdC8vIGRlYnVnLnJhd0xvZyA9IHJhd0xvZztcblxuXHRcdC8vIGVudi1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiBsb2dpYyBmb3IgZGVidWcgaW5zdGFuY2VzXG5cdFx0aWYgKHR5cGVvZiBjcmVhdGVEZWJ1Zy5pbml0ID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRjcmVhdGVEZWJ1Zy5pbml0KGRlYnVnKTtcblx0XHR9XG5cblx0XHRjcmVhdGVEZWJ1Zy5pbnN0YW5jZXMucHVzaChkZWJ1Zyk7XG5cblx0XHRyZXR1cm4gZGVidWc7XG5cdH1cblxuXHRmdW5jdGlvbiBkZXN0cm95KCkge1xuXHRcdGNvbnN0IGluZGV4ID0gY3JlYXRlRGVidWcuaW5zdGFuY2VzLmluZGV4T2YodGhpcyk7XG5cdFx0aWYgKGluZGV4ICE9PSAtMSkge1xuXHRcdFx0Y3JlYXRlRGVidWcuaW5zdGFuY2VzLnNwbGljZShpbmRleCwgMSk7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0ZnVuY3Rpb24gZXh0ZW5kKG5hbWVzcGFjZSwgZGVsaW1pdGVyKSB7XG5cdFx0Y29uc3QgbmV3RGVidWcgPSBjcmVhdGVEZWJ1Zyh0aGlzLm5hbWVzcGFjZSArICh0eXBlb2YgZGVsaW1pdGVyID09PSAndW5kZWZpbmVkJyA/ICc6JyA6IGRlbGltaXRlcikgKyBuYW1lc3BhY2UpO1xuXHRcdG5ld0RlYnVnLmxvZyA9IHRoaXMubG9nO1xuXHRcdHJldHVybiBuZXdEZWJ1Zztcblx0fVxuXG5cdC8qKlxuXHQqIEVuYWJsZXMgYSBkZWJ1ZyBtb2RlIGJ5IG5hbWVzcGFjZXMuIFRoaXMgY2FuIGluY2x1ZGUgbW9kZXNcblx0KiBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBhbmQgd2lsZGNhcmRzLlxuXHQqXG5cdCogQHBhcmFtIHtTdHJpbmd9IG5hbWVzcGFjZXNcblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBlbmFibGUobmFtZXNwYWNlcykge1xuXHRcdGNyZWF0ZURlYnVnLnNhdmUobmFtZXNwYWNlcyk7XG5cblx0XHRjcmVhdGVEZWJ1Zy5uYW1lcyA9IFtdO1xuXHRcdGNyZWF0ZURlYnVnLnNraXBzID0gW107XG5cblx0XHRsZXQgaTtcblx0XHRjb25zdCBzcGxpdCA9ICh0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzIDogJycpLnNwbGl0KC9bXFxzLF0rLyk7XG5cdFx0Y29uc3QgbGVuID0gc3BsaXQubGVuZ3RoO1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoIXNwbGl0W2ldKSB7XG5cdFx0XHRcdC8vIGlnbm9yZSBlbXB0eSBzdHJpbmdzXG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcblxuXHRcdFx0aWYgKG5hbWVzcGFjZXNbMF0gPT09ICctJykge1xuXHRcdFx0XHRjcmVhdGVEZWJ1Zy5za2lwcy5wdXNoKG5ldyBSZWdFeHAoJ14nICsgbmFtZXNwYWNlcy5zdWJzdHIoMSkgKyAnJCcpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNyZWF0ZURlYnVnLm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzICsgJyQnKSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGNyZWF0ZURlYnVnLmluc3RhbmNlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgaW5zdGFuY2UgPSBjcmVhdGVEZWJ1Zy5pbnN0YW5jZXNbaV07XG5cdFx0XHRpbnN0YW5jZS5lbmFibGVkID0gY3JlYXRlRGVidWcuZW5hYmxlZChpbnN0YW5jZS5uYW1lc3BhY2UpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQqIERpc2FibGUgZGVidWcgb3V0cHV0LlxuXHQqXG5cdCogQHJldHVybiB7U3RyaW5nfSBuYW1lc3BhY2VzXG5cdCogQGFwaSBwdWJsaWNcblx0Ki9cblx0ZnVuY3Rpb24gZGlzYWJsZSgpIHtcblx0XHRjb25zdCBuYW1lc3BhY2VzID0gW1xuXHRcdFx0Li4uY3JlYXRlRGVidWcubmFtZXMubWFwKHRvTmFtZXNwYWNlKSxcblx0XHRcdC4uLmNyZWF0ZURlYnVnLnNraXBzLm1hcCh0b05hbWVzcGFjZSkubWFwKG5hbWVzcGFjZSA9PiAnLScgKyBuYW1lc3BhY2UpXG5cdFx0XS5qb2luKCcsJyk7XG5cdFx0Y3JlYXRlRGVidWcuZW5hYmxlKCcnKTtcblx0XHRyZXR1cm4gbmFtZXNwYWNlcztcblx0fVxuXG5cdC8qKlxuXHQqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gbW9kZSBuYW1lIGlzIGVuYWJsZWQsIGZhbHNlIG90aGVyd2lzZS5cblx0KlxuXHQqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG5cdCogQHJldHVybiB7Qm9vbGVhbn1cblx0KiBAYXBpIHB1YmxpY1xuXHQqL1xuXHRmdW5jdGlvbiBlbmFibGVkKG5hbWUpIHtcblx0XHRpZiAobmFtZVtuYW1lLmxlbmd0aCAtIDFdID09PSAnKicpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdGxldCBpO1xuXHRcdGxldCBsZW47XG5cblx0XHRmb3IgKGkgPSAwLCBsZW4gPSBjcmVhdGVEZWJ1Zy5za2lwcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuXHRcdFx0aWYgKGNyZWF0ZURlYnVnLnNraXBzW2ldLnRlc3QobmFtZSkpIHtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGZvciAoaSA9IDAsIGxlbiA9IGNyZWF0ZURlYnVnLm5hbWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG5cdFx0XHRpZiAoY3JlYXRlRGVidWcubmFtZXNbaV0udGVzdChuYW1lKSkge1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0KiBDb252ZXJ0IHJlZ2V4cCB0byBuYW1lc3BhY2Vcblx0KlxuXHQqIEBwYXJhbSB7UmVnRXhwfSByZWd4ZXBcblx0KiBAcmV0dXJuIHtTdHJpbmd9IG5hbWVzcGFjZVxuXHQqIEBhcGkgcHJpdmF0ZVxuXHQqL1xuXHRmdW5jdGlvbiB0b05hbWVzcGFjZShyZWdleHApIHtcblx0XHRyZXR1cm4gcmVnZXhwLnRvU3RyaW5nKClcblx0XHRcdC5zdWJzdHJpbmcoMiwgcmVnZXhwLnRvU3RyaW5nKCkubGVuZ3RoIC0gMilcblx0XHRcdC5yZXBsYWNlKC9cXC5cXCpcXD8kLywgJyonKTtcblx0fVxuXG5cdC8qKlxuXHQqIENvZXJjZSBgdmFsYC5cblx0KlxuXHQqIEBwYXJhbSB7TWl4ZWR9IHZhbFxuXHQqIEByZXR1cm4ge01peGVkfVxuXHQqIEBhcGkgcHJpdmF0ZVxuXHQqL1xuXHRmdW5jdGlvbiBjb2VyY2UodmFsKSB7XG5cdFx0aWYgKHZhbCBpbnN0YW5jZW9mIEVycm9yKSB7XG5cdFx0XHRyZXR1cm4gdmFsLnN0YWNrIHx8IHZhbC5tZXNzYWdlO1xuXHRcdH1cblx0XHRyZXR1cm4gdmFsO1xuXHR9XG5cblx0Y3JlYXRlRGVidWcuZW5hYmxlKGNyZWF0ZURlYnVnLmxvYWQoKSk7XG5cblx0cmV0dXJuIGNyZWF0ZURlYnVnO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldHVwO1xuIiwiXG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vc29ja2V0Jyk7XG5cbi8qKlxuICogRXhwb3J0cyBwYXJzZXJcbiAqXG4gKiBAYXBpIHB1YmxpY1xuICpcbiAqL1xubW9kdWxlLmV4cG9ydHMucGFyc2VyID0gcmVxdWlyZSgnZW5naW5lLmlvLXBhcnNlcicpO1xuIiwiLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICovXG5cbnZhciB0cmFuc3BvcnRzID0gcmVxdWlyZSgnLi90cmFuc3BvcnRzL2luZGV4Jyk7XG52YXIgRW1pdHRlciA9IHJlcXVpcmUoJ2NvbXBvbmVudC1lbWl0dGVyJyk7XG52YXIgZGVidWcgPSByZXF1aXJlKCdkZWJ1ZycpKCdlbmdpbmUuaW8tY2xpZW50OnNvY2tldCcpO1xudmFyIGluZGV4ID0gcmVxdWlyZSgnaW5kZXhvZicpO1xudmFyIHBhcnNlciA9IHJlcXVpcmUoJ2VuZ2luZS5pby1wYXJzZXInKTtcbnZhciBwYXJzZXVyaSA9IHJlcXVpcmUoJ3BhcnNldXJpJyk7XG52YXIgcGFyc2VxcyA9IHJlcXVpcmUoJ3BhcnNlcXMnKTtcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNvY2tldDtcblxuLyoqXG4gKiBTb2NrZXQgY29uc3RydWN0b3IuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd8T2JqZWN0fSB1cmkgb3Igb3B0aW9uc1xuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gU29ja2V0ICh1cmksIG9wdHMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIFNvY2tldCkpIHJldHVybiBuZXcgU29ja2V0KHVyaSwgb3B0cyk7XG5cbiAgb3B0cyA9IG9wdHMgfHwge307XG5cbiAgaWYgKHVyaSAmJiAnb2JqZWN0JyA9PT0gdHlwZW9mIHVyaSkge1xuICAgIG9wdHMgPSB1cmk7XG4gICAgdXJpID0gbnVsbDtcbiAgfVxuXG4gIGlmICh1cmkpIHtcbiAgICB1cmkgPSBwYXJzZXVyaSh1cmkpO1xuICAgIG9wdHMuaG9zdG5hbWUgPSB1cmkuaG9zdDtcbiAgICBvcHRzLnNlY3VyZSA9IHVyaS5wcm90b2NvbCA9PT0gJ2h0dHBzJyB8fCB1cmkucHJvdG9jb2wgPT09ICd3c3MnO1xuICAgIG9wdHMucG9ydCA9IHVyaS5wb3J0O1xuICAgIGlmICh1cmkucXVlcnkpIG9wdHMucXVlcnkgPSB1cmkucXVlcnk7XG4gIH0gZWxzZSBpZiAob3B0cy5ob3N0KSB7XG4gICAgb3B0cy5ob3N0bmFtZSA9IHBhcnNldXJpKG9wdHMuaG9zdCkuaG9zdDtcbiAgfVxuXG4gIHRoaXMuc2VjdXJlID0gbnVsbCAhPSBvcHRzLnNlY3VyZSA/IG9wdHMuc2VjdXJlXG4gICAgOiAodHlwZW9mIGxvY2F0aW9uICE9PSAndW5kZWZpbmVkJyAmJiAnaHR0cHM6JyA9PT0gbG9jYXRpb24ucHJvdG9jb2wpO1xuXG4gIGlmIChvcHRzLmhvc3RuYW1lICYmICFvcHRzLnBvcnQpIHtcbiAgICAvLyBpZiBubyBwb3J0IGlzIHNwZWNpZmllZCBtYW51YWxseSwgdXNlIHRoZSBwcm90b2NvbCBkZWZhdWx0XG4gICAgb3B0cy5wb3J0ID0gdGhpcy5zZWN1cmUgPyAnNDQzJyA6ICc4MCc7XG4gIH1cblxuICB0aGlzLmFnZW50ID0gb3B0cy5hZ2VudCB8fCBmYWxzZTtcbiAgdGhpcy5ob3N0bmFtZSA9IG9wdHMuaG9zdG5hbWUgfHxcbiAgICAodHlwZW9mIGxvY2F0aW9uICE9PSAndW5kZWZpbmVkJyA/IGxvY2F0aW9uLmhvc3RuYW1lIDogJ2xvY2FsaG9zdCcpO1xuICB0aGlzLnBvcnQgPSBvcHRzLnBvcnQgfHwgKHR5cGVvZiBsb2NhdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgbG9jYXRpb24ucG9ydFxuICAgICAgPyBsb2NhdGlvbi5wb3J0XG4gICAgICA6ICh0aGlzLnNlY3VyZSA/IDQ0MyA6IDgwKSk7XG4gIHRoaXMucXVlcnkgPSBvcHRzLnF1ZXJ5IHx8IHt9O1xuICBpZiAoJ3N0cmluZycgPT09IHR5cGVvZiB0aGlzLnF1ZXJ5KSB0aGlzLnF1ZXJ5ID0gcGFyc2Vxcy5kZWNvZGUodGhpcy5xdWVyeSk7XG4gIHRoaXMudXBncmFkZSA9IGZhbHNlICE9PSBvcHRzLnVwZ3JhZGU7XG4gIHRoaXMucGF0aCA9IChvcHRzLnBhdGggfHwgJy9lbmdpbmUuaW8nKS5yZXBsYWNlKC9cXC8kLywgJycpICsgJy8nO1xuICB0aGlzLmZvcmNlSlNPTlAgPSAhIW9wdHMuZm9yY2VKU09OUDtcbiAgdGhpcy5qc29ucCA9IGZhbHNlICE9PSBvcHRzLmpzb25wO1xuICB0aGlzLmZvcmNlQmFzZTY0ID0gISFvcHRzLmZvcmNlQmFzZTY0O1xuICB0aGlzLmVuYWJsZXNYRFIgPSAhIW9wdHMuZW5hYmxlc1hEUjtcbiAgdGhpcy53aXRoQ3JlZGVudGlhbHMgPSBmYWxzZSAhPT0gb3B0cy53aXRoQ3JlZGVudGlhbHM7XG4gIHRoaXMudGltZXN0YW1wUGFyYW0gPSBvcHRzLnRpbWVzdGFtcFBhcmFtIHx8ICd0JztcbiAgdGhpcy50aW1lc3RhbXBSZXF1ZXN0cyA9IG9wdHMudGltZXN0YW1wUmVxdWVzdHM7XG4gIHRoaXMudHJhbnNwb3J0cyA9IG9wdHMudHJhbnNwb3J0cyB8fCBbJ3BvbGxpbmcnLCAnd2Vic29ja2V0J107XG4gIHRoaXMudHJhbnNwb3J0T3B0aW9ucyA9IG9wdHMudHJhbnNwb3J0T3B0aW9ucyB8fCB7fTtcbiAgdGhpcy5yZWFkeVN0YXRlID0gJyc7XG4gIHRoaXMud3JpdGVCdWZmZXIgPSBbXTtcbiAgdGhpcy5wcmV2QnVmZmVyTGVuID0gMDtcbiAgdGhpcy5wb2xpY3lQb3J0ID0gb3B0cy5wb2xpY3lQb3J0IHx8IDg0MztcbiAgdGhpcy5yZW1lbWJlclVwZ3JhZGUgPSBvcHRzLnJlbWVtYmVyVXBncmFkZSB8fCBmYWxzZTtcbiAgdGhpcy5iaW5hcnlUeXBlID0gbnVsbDtcbiAgdGhpcy5vbmx5QmluYXJ5VXBncmFkZXMgPSBvcHRzLm9ubHlCaW5hcnlVcGdyYWRlcztcbiAgdGhpcy5wZXJNZXNzYWdlRGVmbGF0ZSA9IGZhbHNlICE9PSBvcHRzLnBlck1lc3NhZ2VEZWZsYXRlID8gKG9wdHMucGVyTWVzc2FnZURlZmxhdGUgfHwge30pIDogZmFsc2U7XG5cbiAgaWYgKHRydWUgPT09IHRoaXMucGVyTWVzc2FnZURlZmxhdGUpIHRoaXMucGVyTWVzc2FnZURlZmxhdGUgPSB7fTtcbiAgaWYgKHRoaXMucGVyTWVzc2FnZURlZmxhdGUgJiYgbnVsbCA9PSB0aGlzLnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZCkge1xuICAgIHRoaXMucGVyTWVzc2FnZURlZmxhdGUudGhyZXNob2xkID0gMTAyNDtcbiAgfVxuXG4gIC8vIFNTTCBvcHRpb25zIGZvciBOb2RlLmpzIGNsaWVudFxuICB0aGlzLnBmeCA9IG9wdHMucGZ4IHx8IG51bGw7XG4gIHRoaXMua2V5ID0gb3B0cy5rZXkgfHwgbnVsbDtcbiAgdGhpcy5wYXNzcGhyYXNlID0gb3B0cy5wYXNzcGhyYXNlIHx8IG51bGw7XG4gIHRoaXMuY2VydCA9IG9wdHMuY2VydCB8fCBudWxsO1xuICB0aGlzLmNhID0gb3B0cy5jYSB8fCBudWxsO1xuICB0aGlzLmNpcGhlcnMgPSBvcHRzLmNpcGhlcnMgfHwgbnVsbDtcbiAgdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQgPSBvcHRzLnJlamVjdFVuYXV0aG9yaXplZCA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IG9wdHMucmVqZWN0VW5hdXRob3JpemVkO1xuICB0aGlzLmZvcmNlTm9kZSA9ICEhb3B0cy5mb3JjZU5vZGU7XG5cbiAgLy8gZGV0ZWN0IFJlYWN0TmF0aXZlIGVudmlyb25tZW50XG4gIHRoaXMuaXNSZWFjdE5hdGl2ZSA9ICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgbmF2aWdhdG9yLnByb2R1Y3QgPT09ICdzdHJpbmcnICYmIG5hdmlnYXRvci5wcm9kdWN0LnRvTG93ZXJDYXNlKCkgPT09ICdyZWFjdG5hdGl2ZScpO1xuXG4gIC8vIG90aGVyIG9wdGlvbnMgZm9yIE5vZGUuanMgb3IgUmVhY3ROYXRpdmUgY2xpZW50XG4gIGlmICh0eXBlb2Ygc2VsZiA9PT0gJ3VuZGVmaW5lZCcgfHwgdGhpcy5pc1JlYWN0TmF0aXZlKSB7XG4gICAgaWYgKG9wdHMuZXh0cmFIZWFkZXJzICYmIE9iamVjdC5rZXlzKG9wdHMuZXh0cmFIZWFkZXJzKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmV4dHJhSGVhZGVycyA9IG9wdHMuZXh0cmFIZWFkZXJzO1xuICAgIH1cblxuICAgIGlmIChvcHRzLmxvY2FsQWRkcmVzcykge1xuICAgICAgdGhpcy5sb2NhbEFkZHJlc3MgPSBvcHRzLmxvY2FsQWRkcmVzcztcbiAgICB9XG4gIH1cblxuICAvLyBzZXQgb24gaGFuZHNoYWtlXG4gIHRoaXMuaWQgPSBudWxsO1xuICB0aGlzLnVwZ3JhZGVzID0gbnVsbDtcbiAgdGhpcy5waW5nSW50ZXJ2YWwgPSBudWxsO1xuICB0aGlzLnBpbmdUaW1lb3V0ID0gbnVsbDtcblxuICAvLyBzZXQgb24gaGVhcnRiZWF0XG4gIHRoaXMucGluZ0ludGVydmFsVGltZXIgPSBudWxsO1xuICB0aGlzLnBpbmdUaW1lb3V0VGltZXIgPSBudWxsO1xuXG4gIHRoaXMub3BlbigpO1xufVxuXG5Tb2NrZXQucHJpb3JXZWJzb2NrZXRTdWNjZXNzID0gZmFsc2U7XG5cbi8qKlxuICogTWl4IGluIGBFbWl0dGVyYC5cbiAqL1xuXG5FbWl0dGVyKFNvY2tldC5wcm90b3R5cGUpO1xuXG4vKipcbiAqIFByb3RvY29sIHZlcnNpb24uXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5Tb2NrZXQucHJvdG9jb2wgPSBwYXJzZXIucHJvdG9jb2w7IC8vIHRoaXMgaXMgYW4gaW50XG5cbi8qKlxuICogRXhwb3NlIGRlcHMgZm9yIGxlZ2FjeSBjb21wYXRpYmlsaXR5XG4gKiBhbmQgc3RhbmRhbG9uZSBicm93c2VyIGFjY2Vzcy5cbiAqL1xuXG5Tb2NrZXQuU29ja2V0ID0gU29ja2V0O1xuU29ja2V0LlRyYW5zcG9ydCA9IHJlcXVpcmUoJy4vdHJhbnNwb3J0Jyk7XG5Tb2NrZXQudHJhbnNwb3J0cyA9IHJlcXVpcmUoJy4vdHJhbnNwb3J0cy9pbmRleCcpO1xuU29ja2V0LnBhcnNlciA9IHJlcXVpcmUoJ2VuZ2luZS5pby1wYXJzZXInKTtcblxuLyoqXG4gKiBDcmVhdGVzIHRyYW5zcG9ydCBvZiB0aGUgZ2l2ZW4gdHlwZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHJhbnNwb3J0IG5hbWVcbiAqIEByZXR1cm4ge1RyYW5zcG9ydH1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblNvY2tldC5wcm90b3R5cGUuY3JlYXRlVHJhbnNwb3J0ID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgZGVidWcoJ2NyZWF0aW5nIHRyYW5zcG9ydCBcIiVzXCInLCBuYW1lKTtcbiAgdmFyIHF1ZXJ5ID0gY2xvbmUodGhpcy5xdWVyeSk7XG5cbiAgLy8gYXBwZW5kIGVuZ2luZS5pbyBwcm90b2NvbCBpZGVudGlmaWVyXG4gIHF1ZXJ5LkVJTyA9IHBhcnNlci5wcm90b2NvbDtcblxuICAvLyB0cmFuc3BvcnQgbmFtZVxuICBxdWVyeS50cmFuc3BvcnQgPSBuYW1lO1xuXG4gIC8vIHBlci10cmFuc3BvcnQgb3B0aW9uc1xuICB2YXIgb3B0aW9ucyA9IHRoaXMudHJhbnNwb3J0T3B0aW9uc1tuYW1lXSB8fCB7fTtcblxuICAvLyBzZXNzaW9uIGlkIGlmIHdlIGFscmVhZHkgaGF2ZSBvbmVcbiAgaWYgKHRoaXMuaWQpIHF1ZXJ5LnNpZCA9IHRoaXMuaWQ7XG5cbiAgdmFyIHRyYW5zcG9ydCA9IG5ldyB0cmFuc3BvcnRzW25hbWVdKHtcbiAgICBxdWVyeTogcXVlcnksXG4gICAgc29ja2V0OiB0aGlzLFxuICAgIGFnZW50OiBvcHRpb25zLmFnZW50IHx8IHRoaXMuYWdlbnQsXG4gICAgaG9zdG5hbWU6IG9wdGlvbnMuaG9zdG5hbWUgfHwgdGhpcy5ob3N0bmFtZSxcbiAgICBwb3J0OiBvcHRpb25zLnBvcnQgfHwgdGhpcy5wb3J0LFxuICAgIHNlY3VyZTogb3B0aW9ucy5zZWN1cmUgfHwgdGhpcy5zZWN1cmUsXG4gICAgcGF0aDogb3B0aW9ucy5wYXRoIHx8IHRoaXMucGF0aCxcbiAgICBmb3JjZUpTT05QOiBvcHRpb25zLmZvcmNlSlNPTlAgfHwgdGhpcy5mb3JjZUpTT05QLFxuICAgIGpzb25wOiBvcHRpb25zLmpzb25wIHx8IHRoaXMuanNvbnAsXG4gICAgZm9yY2VCYXNlNjQ6IG9wdGlvbnMuZm9yY2VCYXNlNjQgfHwgdGhpcy5mb3JjZUJhc2U2NCxcbiAgICBlbmFibGVzWERSOiBvcHRpb25zLmVuYWJsZXNYRFIgfHwgdGhpcy5lbmFibGVzWERSLFxuICAgIHdpdGhDcmVkZW50aWFsczogb3B0aW9ucy53aXRoQ3JlZGVudGlhbHMgfHwgdGhpcy53aXRoQ3JlZGVudGlhbHMsXG4gICAgdGltZXN0YW1wUmVxdWVzdHM6IG9wdGlvbnMudGltZXN0YW1wUmVxdWVzdHMgfHwgdGhpcy50aW1lc3RhbXBSZXF1ZXN0cyxcbiAgICB0aW1lc3RhbXBQYXJhbTogb3B0aW9ucy50aW1lc3RhbXBQYXJhbSB8fCB0aGlzLnRpbWVzdGFtcFBhcmFtLFxuICAgIHBvbGljeVBvcnQ6IG9wdGlvbnMucG9saWN5UG9ydCB8fCB0aGlzLnBvbGljeVBvcnQsXG4gICAgcGZ4OiBvcHRpb25zLnBmeCB8fCB0aGlzLnBmeCxcbiAgICBrZXk6IG9wdGlvbnMua2V5IHx8IHRoaXMua2V5LFxuICAgIHBhc3NwaHJhc2U6IG9wdGlvbnMucGFzc3BocmFzZSB8fCB0aGlzLnBhc3NwaHJhc2UsXG4gICAgY2VydDogb3B0aW9ucy5jZXJ0IHx8IHRoaXMuY2VydCxcbiAgICBjYTogb3B0aW9ucy5jYSB8fCB0aGlzLmNhLFxuICAgIGNpcGhlcnM6IG9wdGlvbnMuY2lwaGVycyB8fCB0aGlzLmNpcGhlcnMsXG4gICAgcmVqZWN0VW5hdXRob3JpemVkOiBvcHRpb25zLnJlamVjdFVuYXV0aG9yaXplZCB8fCB0aGlzLnJlamVjdFVuYXV0aG9yaXplZCxcbiAgICBwZXJNZXNzYWdlRGVmbGF0ZTogb3B0aW9ucy5wZXJNZXNzYWdlRGVmbGF0ZSB8fCB0aGlzLnBlck1lc3NhZ2VEZWZsYXRlLFxuICAgIGV4dHJhSGVhZGVyczogb3B0aW9ucy5leHRyYUhlYWRlcnMgfHwgdGhpcy5leHRyYUhlYWRlcnMsXG4gICAgZm9yY2VOb2RlOiBvcHRpb25zLmZvcmNlTm9kZSB8fCB0aGlzLmZvcmNlTm9kZSxcbiAgICBsb2NhbEFkZHJlc3M6IG9wdGlvbnMubG9jYWxBZGRyZXNzIHx8IHRoaXMubG9jYWxBZGRyZXNzLFxuICAgIHJlcXVlc3RUaW1lb3V0OiBvcHRpb25zLnJlcXVlc3RUaW1lb3V0IHx8IHRoaXMucmVxdWVzdFRpbWVvdXQsXG4gICAgcHJvdG9jb2xzOiBvcHRpb25zLnByb3RvY29scyB8fCB2b2lkICgwKSxcbiAgICBpc1JlYWN0TmF0aXZlOiB0aGlzLmlzUmVhY3ROYXRpdmVcbiAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zcG9ydDtcbn07XG5cbmZ1bmN0aW9uIGNsb25lIChvYmopIHtcbiAgdmFyIG8gPSB7fTtcbiAgZm9yICh2YXIgaSBpbiBvYmopIHtcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7XG4gICAgICBvW2ldID0gb2JqW2ldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbztcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplcyB0cmFuc3BvcnQgdG8gdXNlIGFuZCBzdGFydHMgcHJvYmUuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblNvY2tldC5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRyYW5zcG9ydDtcbiAgaWYgKHRoaXMucmVtZW1iZXJVcGdyYWRlICYmIFNvY2tldC5wcmlvcldlYnNvY2tldFN1Y2Nlc3MgJiYgdGhpcy50cmFuc3BvcnRzLmluZGV4T2YoJ3dlYnNvY2tldCcpICE9PSAtMSkge1xuICAgIHRyYW5zcG9ydCA9ICd3ZWJzb2NrZXQnO1xuICB9IGVsc2UgaWYgKDAgPT09IHRoaXMudHJhbnNwb3J0cy5sZW5ndGgpIHtcbiAgICAvLyBFbWl0IGVycm9yIG9uIG5leHQgdGljayBzbyBpdCBjYW4gYmUgbGlzdGVuZWQgdG9cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLmVtaXQoJ2Vycm9yJywgJ05vIHRyYW5zcG9ydHMgYXZhaWxhYmxlJyk7XG4gICAgfSwgMCk7XG4gICAgcmV0dXJuO1xuICB9IGVsc2Uge1xuICAgIHRyYW5zcG9ydCA9IHRoaXMudHJhbnNwb3J0c1swXTtcbiAgfVxuICB0aGlzLnJlYWR5U3RhdGUgPSAnb3BlbmluZyc7XG5cbiAgLy8gUmV0cnkgd2l0aCB0aGUgbmV4dCB0cmFuc3BvcnQgaWYgdGhlIHRyYW5zcG9ydCBpcyBkaXNhYmxlZCAoanNvbnA6IGZhbHNlKVxuICB0cnkge1xuICAgIHRyYW5zcG9ydCA9IHRoaXMuY3JlYXRlVHJhbnNwb3J0KHRyYW5zcG9ydCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aGlzLnRyYW5zcG9ydHMuc2hpZnQoKTtcbiAgICB0aGlzLm9wZW4oKTtcbiAgICByZXR1cm47XG4gIH1cblxuICB0cmFuc3BvcnQub3BlbigpO1xuICB0aGlzLnNldFRyYW5zcG9ydCh0cmFuc3BvcnQpO1xufTtcblxuLyoqXG4gKiBTZXRzIHRoZSBjdXJyZW50IHRyYW5zcG9ydC4gRGlzYWJsZXMgdGhlIGV4aXN0aW5nIG9uZSAoaWYgYW55KS5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLnNldFRyYW5zcG9ydCA9IGZ1bmN0aW9uICh0cmFuc3BvcnQpIHtcbiAgZGVidWcoJ3NldHRpbmcgdHJhbnNwb3J0ICVzJywgdHJhbnNwb3J0Lm5hbWUpO1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgaWYgKHRoaXMudHJhbnNwb3J0KSB7XG4gICAgZGVidWcoJ2NsZWFyaW5nIGV4aXN0aW5nIHRyYW5zcG9ydCAlcycsIHRoaXMudHJhbnNwb3J0Lm5hbWUpO1xuICAgIHRoaXMudHJhbnNwb3J0LnJlbW92ZUFsbExpc3RlbmVycygpO1xuICB9XG5cbiAgLy8gc2V0IHVwIHRyYW5zcG9ydFxuICB0aGlzLnRyYW5zcG9ydCA9IHRyYW5zcG9ydDtcblxuICAvLyBzZXQgdXAgdHJhbnNwb3J0IGxpc3RlbmVyc1xuICB0cmFuc3BvcnRcbiAgLm9uKCdkcmFpbicsIGZ1bmN0aW9uICgpIHtcbiAgICBzZWxmLm9uRHJhaW4oKTtcbiAgfSlcbiAgLm9uKCdwYWNrZXQnLCBmdW5jdGlvbiAocGFja2V0KSB7XG4gICAgc2VsZi5vblBhY2tldChwYWNrZXQpO1xuICB9KVxuICAub24oJ2Vycm9yJywgZnVuY3Rpb24gKGUpIHtcbiAgICBzZWxmLm9uRXJyb3IoZSk7XG4gIH0pXG4gIC5vbignY2xvc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgc2VsZi5vbkNsb3NlKCd0cmFuc3BvcnQgY2xvc2UnKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIFByb2JlcyBhIHRyYW5zcG9ydC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdHJhbnNwb3J0IG5hbWVcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblNvY2tldC5wcm90b3R5cGUucHJvYmUgPSBmdW5jdGlvbiAobmFtZSkge1xuICBkZWJ1ZygncHJvYmluZyB0cmFuc3BvcnQgXCIlc1wiJywgbmFtZSk7XG4gIHZhciB0cmFuc3BvcnQgPSB0aGlzLmNyZWF0ZVRyYW5zcG9ydChuYW1lLCB7IHByb2JlOiAxIH0pO1xuICB2YXIgZmFpbGVkID0gZmFsc2U7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICBTb2NrZXQucHJpb3JXZWJzb2NrZXRTdWNjZXNzID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gb25UcmFuc3BvcnRPcGVuICgpIHtcbiAgICBpZiAoc2VsZi5vbmx5QmluYXJ5VXBncmFkZXMpIHtcbiAgICAgIHZhciB1cGdyYWRlTG9zZXNCaW5hcnkgPSAhdGhpcy5zdXBwb3J0c0JpbmFyeSAmJiBzZWxmLnRyYW5zcG9ydC5zdXBwb3J0c0JpbmFyeTtcbiAgICAgIGZhaWxlZCA9IGZhaWxlZCB8fCB1cGdyYWRlTG9zZXNCaW5hcnk7XG4gICAgfVxuICAgIGlmIChmYWlsZWQpIHJldHVybjtcblxuICAgIGRlYnVnKCdwcm9iZSB0cmFuc3BvcnQgXCIlc1wiIG9wZW5lZCcsIG5hbWUpO1xuICAgIHRyYW5zcG9ydC5zZW5kKFt7IHR5cGU6ICdwaW5nJywgZGF0YTogJ3Byb2JlJyB9XSk7XG4gICAgdHJhbnNwb3J0Lm9uY2UoJ3BhY2tldCcsIGZ1bmN0aW9uIChtc2cpIHtcbiAgICAgIGlmIChmYWlsZWQpIHJldHVybjtcbiAgICAgIGlmICgncG9uZycgPT09IG1zZy50eXBlICYmICdwcm9iZScgPT09IG1zZy5kYXRhKSB7XG4gICAgICAgIGRlYnVnKCdwcm9iZSB0cmFuc3BvcnQgXCIlc1wiIHBvbmcnLCBuYW1lKTtcbiAgICAgICAgc2VsZi51cGdyYWRpbmcgPSB0cnVlO1xuICAgICAgICBzZWxmLmVtaXQoJ3VwZ3JhZGluZycsIHRyYW5zcG9ydCk7XG4gICAgICAgIGlmICghdHJhbnNwb3J0KSByZXR1cm47XG4gICAgICAgIFNvY2tldC5wcmlvcldlYnNvY2tldFN1Y2Nlc3MgPSAnd2Vic29ja2V0JyA9PT0gdHJhbnNwb3J0Lm5hbWU7XG5cbiAgICAgICAgZGVidWcoJ3BhdXNpbmcgY3VycmVudCB0cmFuc3BvcnQgXCIlc1wiJywgc2VsZi50cmFuc3BvcnQubmFtZSk7XG4gICAgICAgIHNlbGYudHJhbnNwb3J0LnBhdXNlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAoZmFpbGVkKSByZXR1cm47XG4gICAgICAgICAgaWYgKCdjbG9zZWQnID09PSBzZWxmLnJlYWR5U3RhdGUpIHJldHVybjtcbiAgICAgICAgICBkZWJ1ZygnY2hhbmdpbmcgdHJhbnNwb3J0IGFuZCBzZW5kaW5nIHVwZ3JhZGUgcGFja2V0Jyk7XG5cbiAgICAgICAgICBjbGVhbnVwKCk7XG5cbiAgICAgICAgICBzZWxmLnNldFRyYW5zcG9ydCh0cmFuc3BvcnQpO1xuICAgICAgICAgIHRyYW5zcG9ydC5zZW5kKFt7IHR5cGU6ICd1cGdyYWRlJyB9XSk7XG4gICAgICAgICAgc2VsZi5lbWl0KCd1cGdyYWRlJywgdHJhbnNwb3J0KTtcbiAgICAgICAgICB0cmFuc3BvcnQgPSBudWxsO1xuICAgICAgICAgIHNlbGYudXBncmFkaW5nID0gZmFsc2U7XG4gICAgICAgICAgc2VsZi5mbHVzaCgpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlYnVnKCdwcm9iZSB0cmFuc3BvcnQgXCIlc1wiIGZhaWxlZCcsIG5hbWUpO1xuICAgICAgICB2YXIgZXJyID0gbmV3IEVycm9yKCdwcm9iZSBlcnJvcicpO1xuICAgICAgICBlcnIudHJhbnNwb3J0ID0gdHJhbnNwb3J0Lm5hbWU7XG4gICAgICAgIHNlbGYuZW1pdCgndXBncmFkZUVycm9yJywgZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZyZWV6ZVRyYW5zcG9ydCAoKSB7XG4gICAgaWYgKGZhaWxlZCkgcmV0dXJuO1xuXG4gICAgLy8gQW55IGNhbGxiYWNrIGNhbGxlZCBieSB0cmFuc3BvcnQgc2hvdWxkIGJlIGlnbm9yZWQgc2luY2Ugbm93XG4gICAgZmFpbGVkID0gdHJ1ZTtcblxuICAgIGNsZWFudXAoKTtcblxuICAgIHRyYW5zcG9ydC5jbG9zZSgpO1xuICAgIHRyYW5zcG9ydCA9IG51bGw7XG4gIH1cblxuICAvLyBIYW5kbGUgYW55IGVycm9yIHRoYXQgaGFwcGVucyB3aGlsZSBwcm9iaW5nXG4gIGZ1bmN0aW9uIG9uZXJyb3IgKGVycikge1xuICAgIHZhciBlcnJvciA9IG5ldyBFcnJvcigncHJvYmUgZXJyb3I6ICcgKyBlcnIpO1xuICAgIGVycm9yLnRyYW5zcG9ydCA9IHRyYW5zcG9ydC5uYW1lO1xuXG4gICAgZnJlZXplVHJhbnNwb3J0KCk7XG5cbiAgICBkZWJ1ZygncHJvYmUgdHJhbnNwb3J0IFwiJXNcIiBmYWlsZWQgYmVjYXVzZSBvZiBlcnJvcjogJXMnLCBuYW1lLCBlcnIpO1xuXG4gICAgc2VsZi5lbWl0KCd1cGdyYWRlRXJyb3InLCBlcnJvcik7XG4gIH1cblxuICBmdW5jdGlvbiBvblRyYW5zcG9ydENsb3NlICgpIHtcbiAgICBvbmVycm9yKCd0cmFuc3BvcnQgY2xvc2VkJyk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSBzb2NrZXQgaXMgY2xvc2VkIHdoaWxlIHdlJ3JlIHByb2JpbmdcbiAgZnVuY3Rpb24gb25jbG9zZSAoKSB7XG4gICAgb25lcnJvcignc29ja2V0IGNsb3NlZCcpO1xuICB9XG5cbiAgLy8gV2hlbiB0aGUgc29ja2V0IGlzIHVwZ3JhZGVkIHdoaWxlIHdlJ3JlIHByb2JpbmdcbiAgZnVuY3Rpb24gb251cGdyYWRlICh0bykge1xuICAgIGlmICh0cmFuc3BvcnQgJiYgdG8ubmFtZSAhPT0gdHJhbnNwb3J0Lm5hbWUpIHtcbiAgICAgIGRlYnVnKCdcIiVzXCIgd29ya3MgLSBhYm9ydGluZyBcIiVzXCInLCB0by5uYW1lLCB0cmFuc3BvcnQubmFtZSk7XG4gICAgICBmcmVlemVUcmFuc3BvcnQoKTtcbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgYWxsIGxpc3RlbmVycyBvbiB0aGUgdHJhbnNwb3J0IGFuZCBvbiBzZWxmXG4gIGZ1bmN0aW9uIGNsZWFudXAgKCkge1xuICAgIHRyYW5zcG9ydC5yZW1vdmVMaXN0ZW5lcignb3BlbicsIG9uVHJhbnNwb3J0T3Blbik7XG4gICAgdHJhbnNwb3J0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uZXJyb3IpO1xuICAgIHRyYW5zcG9ydC5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBvblRyYW5zcG9ydENsb3NlKTtcbiAgICBzZWxmLnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIG9uY2xvc2UpO1xuICAgIHNlbGYucmVtb3ZlTGlzdGVuZXIoJ3VwZ3JhZGluZycsIG9udXBncmFkZSk7XG4gIH1cblxuICB0cmFuc3BvcnQub25jZSgnb3BlbicsIG9uVHJhbnNwb3J0T3Blbik7XG4gIHRyYW5zcG9ydC5vbmNlKCdlcnJvcicsIG9uZXJyb3IpO1xuICB0cmFuc3BvcnQub25jZSgnY2xvc2UnLCBvblRyYW5zcG9ydENsb3NlKTtcblxuICB0aGlzLm9uY2UoJ2Nsb3NlJywgb25jbG9zZSk7XG4gIHRoaXMub25jZSgndXBncmFkaW5nJywgb251cGdyYWRlKTtcblxuICB0cmFuc3BvcnQub3BlbigpO1xufTtcblxuLyoqXG4gKiBDYWxsZWQgd2hlbiBjb25uZWN0aW9uIGlzIGRlZW1lZCBvcGVuLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5vbk9wZW4gPSBmdW5jdGlvbiAoKSB7XG4gIGRlYnVnKCdzb2NrZXQgb3BlbicpO1xuICB0aGlzLnJlYWR5U3RhdGUgPSAnb3Blbic7XG4gIFNvY2tldC5wcmlvcldlYnNvY2tldFN1Y2Nlc3MgPSAnd2Vic29ja2V0JyA9PT0gdGhpcy50cmFuc3BvcnQubmFtZTtcbiAgdGhpcy5lbWl0KCdvcGVuJyk7XG4gIHRoaXMuZmx1c2goKTtcblxuICAvLyB3ZSBjaGVjayBmb3IgYHJlYWR5U3RhdGVgIGluIGNhc2UgYW4gYG9wZW5gXG4gIC8vIGxpc3RlbmVyIGFscmVhZHkgY2xvc2VkIHRoZSBzb2NrZXRcbiAgaWYgKCdvcGVuJyA9PT0gdGhpcy5yZWFkeVN0YXRlICYmIHRoaXMudXBncmFkZSAmJiB0aGlzLnRyYW5zcG9ydC5wYXVzZSkge1xuICAgIGRlYnVnKCdzdGFydGluZyB1cGdyYWRlIHByb2JlcycpO1xuICAgIGZvciAodmFyIGkgPSAwLCBsID0gdGhpcy51cGdyYWRlcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHRoaXMucHJvYmUodGhpcy51cGdyYWRlc1tpXSk7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIEhhbmRsZXMgYSBwYWNrZXQuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5vblBhY2tldCA9IGZ1bmN0aW9uIChwYWNrZXQpIHtcbiAgaWYgKCdvcGVuaW5nJyA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8ICdvcGVuJyA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8XG4gICAgICAnY2xvc2luZycgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgIGRlYnVnKCdzb2NrZXQgcmVjZWl2ZTogdHlwZSBcIiVzXCIsIGRhdGEgXCIlc1wiJywgcGFja2V0LnR5cGUsIHBhY2tldC5kYXRhKTtcblxuICAgIHRoaXMuZW1pdCgncGFja2V0JywgcGFja2V0KTtcblxuICAgIC8vIFNvY2tldCBpcyBsaXZlIC0gYW55IHBhY2tldCBjb3VudHNcbiAgICB0aGlzLmVtaXQoJ2hlYXJ0YmVhdCcpO1xuXG4gICAgc3dpdGNoIChwYWNrZXQudHlwZSkge1xuICAgICAgY2FzZSAnb3Blbic6XG4gICAgICAgIHRoaXMub25IYW5kc2hha2UoSlNPTi5wYXJzZShwYWNrZXQuZGF0YSkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncG9uZyc6XG4gICAgICAgIHRoaXMuc2V0UGluZygpO1xuICAgICAgICB0aGlzLmVtaXQoJ3BvbmcnKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcignc2VydmVyIGVycm9yJyk7XG4gICAgICAgIGVyci5jb2RlID0gcGFja2V0LmRhdGE7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnIpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnbWVzc2FnZSc6XG4gICAgICAgIHRoaXMuZW1pdCgnZGF0YScsIHBhY2tldC5kYXRhKTtcbiAgICAgICAgdGhpcy5lbWl0KCdtZXNzYWdlJywgcGFja2V0LmRhdGEpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZGVidWcoJ3BhY2tldCByZWNlaXZlZCB3aXRoIHNvY2tldCByZWFkeVN0YXRlIFwiJXNcIicsIHRoaXMucmVhZHlTdGF0ZSk7XG4gIH1cbn07XG5cbi8qKlxuICogQ2FsbGVkIHVwb24gaGFuZHNoYWtlIGNvbXBsZXRpb24uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGhhbmRzaGFrZSBvYmpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblNvY2tldC5wcm90b3R5cGUub25IYW5kc2hha2UgPSBmdW5jdGlvbiAoZGF0YSkge1xuICB0aGlzLmVtaXQoJ2hhbmRzaGFrZScsIGRhdGEpO1xuICB0aGlzLmlkID0gZGF0YS5zaWQ7XG4gIHRoaXMudHJhbnNwb3J0LnF1ZXJ5LnNpZCA9IGRhdGEuc2lkO1xuICB0aGlzLnVwZ3JhZGVzID0gdGhpcy5maWx0ZXJVcGdyYWRlcyhkYXRhLnVwZ3JhZGVzKTtcbiAgdGhpcy5waW5nSW50ZXJ2YWwgPSBkYXRhLnBpbmdJbnRlcnZhbDtcbiAgdGhpcy5waW5nVGltZW91dCA9IGRhdGEucGluZ1RpbWVvdXQ7XG4gIHRoaXMub25PcGVuKCk7XG4gIC8vIEluIGNhc2Ugb3BlbiBoYW5kbGVyIGNsb3NlcyBzb2NrZXRcbiAgaWYgKCdjbG9zZWQnID09PSB0aGlzLnJlYWR5U3RhdGUpIHJldHVybjtcbiAgdGhpcy5zZXRQaW5nKCk7XG5cbiAgLy8gUHJvbG9uZyBsaXZlbmVzcyBvZiBzb2NrZXQgb24gaGVhcnRiZWF0XG4gIHRoaXMucmVtb3ZlTGlzdGVuZXIoJ2hlYXJ0YmVhdCcsIHRoaXMub25IZWFydGJlYXQpO1xuICB0aGlzLm9uKCdoZWFydGJlYXQnLCB0aGlzLm9uSGVhcnRiZWF0KTtcbn07XG5cbi8qKlxuICogUmVzZXRzIHBpbmcgdGltZW91dC5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9uSGVhcnRiZWF0ID0gZnVuY3Rpb24gKHRpbWVvdXQpIHtcbiAgY2xlYXJUaW1lb3V0KHRoaXMucGluZ1RpbWVvdXRUaW1lcik7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgc2VsZi5waW5nVGltZW91dFRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCdjbG9zZWQnID09PSBzZWxmLnJlYWR5U3RhdGUpIHJldHVybjtcbiAgICBzZWxmLm9uQ2xvc2UoJ3BpbmcgdGltZW91dCcpO1xuICB9LCB0aW1lb3V0IHx8IChzZWxmLnBpbmdJbnRlcnZhbCArIHNlbGYucGluZ1RpbWVvdXQpKTtcbn07XG5cbi8qKlxuICogUGluZ3Mgc2VydmVyIGV2ZXJ5IGB0aGlzLnBpbmdJbnRlcnZhbGAgYW5kIGV4cGVjdHMgcmVzcG9uc2VcbiAqIHdpdGhpbiBgdGhpcy5waW5nVGltZW91dGAgb3IgY2xvc2VzIGNvbm5lY3Rpb24uXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5zZXRQaW5nID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGNsZWFyVGltZW91dChzZWxmLnBpbmdJbnRlcnZhbFRpbWVyKTtcbiAgc2VsZi5waW5nSW50ZXJ2YWxUaW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgIGRlYnVnKCd3cml0aW5nIHBpbmcgcGFja2V0IC0gZXhwZWN0aW5nIHBvbmcgd2l0aGluICVzbXMnLCBzZWxmLnBpbmdUaW1lb3V0KTtcbiAgICBzZWxmLnBpbmcoKTtcbiAgICBzZWxmLm9uSGVhcnRiZWF0KHNlbGYucGluZ1RpbWVvdXQpO1xuICB9LCBzZWxmLnBpbmdJbnRlcnZhbCk7XG59O1xuXG4vKipcbiogU2VuZHMgYSBwaW5nIHBhY2tldC5cbipcbiogQGFwaSBwcml2YXRlXG4qL1xuXG5Tb2NrZXQucHJvdG90eXBlLnBpbmcgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdGhpcy5zZW5kUGFja2V0KCdwaW5nJywgZnVuY3Rpb24gKCkge1xuICAgIHNlbGYuZW1pdCgncGluZycpO1xuICB9KTtcbn07XG5cbi8qKlxuICogQ2FsbGVkIG9uIGBkcmFpbmAgZXZlbnRcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9uRHJhaW4gPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMud3JpdGVCdWZmZXIuc3BsaWNlKDAsIHRoaXMucHJldkJ1ZmZlckxlbik7XG5cbiAgLy8gc2V0dGluZyBwcmV2QnVmZmVyTGVuID0gMCBpcyB2ZXJ5IGltcG9ydGFudFxuICAvLyBmb3IgZXhhbXBsZSwgd2hlbiB1cGdyYWRpbmcsIHVwZ3JhZGUgcGFja2V0IGlzIHNlbnQgb3ZlcixcbiAgLy8gYW5kIGEgbm9uemVybyBwcmV2QnVmZmVyTGVuIGNvdWxkIGNhdXNlIHByb2JsZW1zIG9uIGBkcmFpbmBcbiAgdGhpcy5wcmV2QnVmZmVyTGVuID0gMDtcblxuICBpZiAoMCA9PT0gdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgpIHtcbiAgICB0aGlzLmVtaXQoJ2RyYWluJyk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5mbHVzaCgpO1xuICB9XG59O1xuXG4vKipcbiAqIEZsdXNoIHdyaXRlIGJ1ZmZlcnMuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKCdjbG9zZWQnICE9PSB0aGlzLnJlYWR5U3RhdGUgJiYgdGhpcy50cmFuc3BvcnQud3JpdGFibGUgJiZcbiAgICAhdGhpcy51cGdyYWRpbmcgJiYgdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgpIHtcbiAgICBkZWJ1ZygnZmx1c2hpbmcgJWQgcGFja2V0cyBpbiBzb2NrZXQnLCB0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCk7XG4gICAgdGhpcy50cmFuc3BvcnQuc2VuZCh0aGlzLndyaXRlQnVmZmVyKTtcbiAgICAvLyBrZWVwIHRyYWNrIG9mIGN1cnJlbnQgbGVuZ3RoIG9mIHdyaXRlQnVmZmVyXG4gICAgLy8gc3BsaWNlIHdyaXRlQnVmZmVyIGFuZCBjYWxsYmFja0J1ZmZlciBvbiBgZHJhaW5gXG4gICAgdGhpcy5wcmV2QnVmZmVyTGVuID0gdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg7XG4gICAgdGhpcy5lbWl0KCdmbHVzaCcpO1xuICB9XG59O1xuXG4vKipcbiAqIFNlbmRzIGEgbWVzc2FnZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbWVzc2FnZS5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIGZ1bmN0aW9uLlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMuXG4gKiBAcmV0dXJuIHtTb2NrZXR9IGZvciBjaGFpbmluZy5cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS53cml0ZSA9XG5Tb2NrZXQucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlvbiAobXNnLCBvcHRpb25zLCBmbikge1xuICB0aGlzLnNlbmRQYWNrZXQoJ21lc3NhZ2UnLCBtc2csIG9wdGlvbnMsIGZuKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNlbmRzIGEgcGFja2V0LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBwYWNrZXQgdHlwZS5cbiAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhLlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayBmdW5jdGlvbi5cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblNvY2tldC5wcm90b3R5cGUuc2VuZFBhY2tldCA9IGZ1bmN0aW9uICh0eXBlLCBkYXRhLCBvcHRpb25zLCBmbikge1xuICBpZiAoJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIGRhdGEpIHtcbiAgICBmbiA9IGRhdGE7XG4gICAgZGF0YSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2Ygb3B0aW9ucykge1xuICAgIGZuID0gb3B0aW9ucztcbiAgICBvcHRpb25zID0gbnVsbDtcbiAgfVxuXG4gIGlmICgnY2xvc2luZycgPT09IHRoaXMucmVhZHlTdGF0ZSB8fCAnY2xvc2VkJyA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIG9wdGlvbnMuY29tcHJlc3MgPSBmYWxzZSAhPT0gb3B0aW9ucy5jb21wcmVzcztcblxuICB2YXIgcGFja2V0ID0ge1xuICAgIHR5cGU6IHR5cGUsXG4gICAgZGF0YTogZGF0YSxcbiAgICBvcHRpb25zOiBvcHRpb25zXG4gIH07XG4gIHRoaXMuZW1pdCgncGFja2V0Q3JlYXRlJywgcGFja2V0KTtcbiAgdGhpcy53cml0ZUJ1ZmZlci5wdXNoKHBhY2tldCk7XG4gIGlmIChmbikgdGhpcy5vbmNlKCdmbHVzaCcsIGZuKTtcbiAgdGhpcy5mbHVzaCgpO1xufTtcblxuLyoqXG4gKiBDbG9zZXMgdGhlIGNvbm5lY3Rpb24uXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKCdvcGVuaW5nJyA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8ICdvcGVuJyA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgdGhpcy5yZWFkeVN0YXRlID0gJ2Nsb3NpbmcnO1xuXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgaWYgKHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoKSB7XG4gICAgICB0aGlzLm9uY2UoJ2RyYWluJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy51cGdyYWRpbmcpIHtcbiAgICAgICAgICB3YWl0Rm9yVXBncmFkZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAodGhpcy51cGdyYWRpbmcpIHtcbiAgICAgIHdhaXRGb3JVcGdyYWRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY2xvc2UgKCkge1xuICAgIHNlbGYub25DbG9zZSgnZm9yY2VkIGNsb3NlJyk7XG4gICAgZGVidWcoJ3NvY2tldCBjbG9zaW5nIC0gdGVsbGluZyB0cmFuc3BvcnQgdG8gY2xvc2UnKTtcbiAgICBzZWxmLnRyYW5zcG9ydC5jbG9zZSgpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2xlYW51cEFuZENsb3NlICgpIHtcbiAgICBzZWxmLnJlbW92ZUxpc3RlbmVyKCd1cGdyYWRlJywgY2xlYW51cEFuZENsb3NlKTtcbiAgICBzZWxmLnJlbW92ZUxpc3RlbmVyKCd1cGdyYWRlRXJyb3InLCBjbGVhbnVwQW5kQ2xvc2UpO1xuICAgIGNsb3NlKCk7XG4gIH1cblxuICBmdW5jdGlvbiB3YWl0Rm9yVXBncmFkZSAoKSB7XG4gICAgLy8gd2FpdCBmb3IgdXBncmFkZSB0byBmaW5pc2ggc2luY2Ugd2UgY2FuJ3Qgc2VuZCBwYWNrZXRzIHdoaWxlIHBhdXNpbmcgYSB0cmFuc3BvcnRcbiAgICBzZWxmLm9uY2UoJ3VwZ3JhZGUnLCBjbGVhbnVwQW5kQ2xvc2UpO1xuICAgIHNlbGYub25jZSgndXBncmFkZUVycm9yJywgY2xlYW51cEFuZENsb3NlKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiB0cmFuc3BvcnQgZXJyb3JcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9uRXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4gIGRlYnVnKCdzb2NrZXQgZXJyb3IgJWonLCBlcnIpO1xuICBTb2NrZXQucHJpb3JXZWJzb2NrZXRTdWNjZXNzID0gZmFsc2U7XG4gIHRoaXMuZW1pdCgnZXJyb3InLCBlcnIpO1xuICB0aGlzLm9uQ2xvc2UoJ3RyYW5zcG9ydCBlcnJvcicsIGVycik7XG59O1xuXG4vKipcbiAqIENhbGxlZCB1cG9uIHRyYW5zcG9ydCBjbG9zZS5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9uQ2xvc2UgPSBmdW5jdGlvbiAocmVhc29uLCBkZXNjKSB7XG4gIGlmICgnb3BlbmluZycgPT09IHRoaXMucmVhZHlTdGF0ZSB8fCAnb3BlbicgPT09IHRoaXMucmVhZHlTdGF0ZSB8fCAnY2xvc2luZycgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgIGRlYnVnKCdzb2NrZXQgY2xvc2Ugd2l0aCByZWFzb246IFwiJXNcIicsIHJlYXNvbik7XG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgLy8gY2xlYXIgdGltZXJzXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMucGluZ0ludGVydmFsVGltZXIpO1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnBpbmdUaW1lb3V0VGltZXIpO1xuXG4gICAgLy8gc3RvcCBldmVudCBmcm9tIGZpcmluZyBhZ2FpbiBmb3IgdHJhbnNwb3J0XG4gICAgdGhpcy50cmFuc3BvcnQucmVtb3ZlQWxsTGlzdGVuZXJzKCdjbG9zZScpO1xuXG4gICAgLy8gZW5zdXJlIHRyYW5zcG9ydCB3b24ndCBzdGF5IG9wZW5cbiAgICB0aGlzLnRyYW5zcG9ydC5jbG9zZSgpO1xuXG4gICAgLy8gaWdub3JlIGZ1cnRoZXIgdHJhbnNwb3J0IGNvbW11bmljYXRpb25cbiAgICB0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcblxuICAgIC8vIHNldCByZWFkeSBzdGF0ZVxuICAgIHRoaXMucmVhZHlTdGF0ZSA9ICdjbG9zZWQnO1xuXG4gICAgLy8gY2xlYXIgc2Vzc2lvbiBpZFxuICAgIHRoaXMuaWQgPSBudWxsO1xuXG4gICAgLy8gZW1pdCBjbG9zZSBldmVudFxuICAgIHRoaXMuZW1pdCgnY2xvc2UnLCByZWFzb24sIGRlc2MpO1xuXG4gICAgLy8gY2xlYW4gYnVmZmVycyBhZnRlciwgc28gdXNlcnMgY2FuIHN0aWxsXG4gICAgLy8gZ3JhYiB0aGUgYnVmZmVycyBvbiBgY2xvc2VgIGV2ZW50XG4gICAgc2VsZi53cml0ZUJ1ZmZlciA9IFtdO1xuICAgIHNlbGYucHJldkJ1ZmZlckxlbiA9IDA7XG4gIH1cbn07XG5cbi8qKlxuICogRmlsdGVycyB1cGdyYWRlcywgcmV0dXJuaW5nIG9ubHkgdGhvc2UgbWF0Y2hpbmcgY2xpZW50IHRyYW5zcG9ydHMuXG4gKlxuICogQHBhcmFtIHtBcnJheX0gc2VydmVyIHVwZ3JhZGVzXG4gKiBAYXBpIHByaXZhdGVcbiAqXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5maWx0ZXJVcGdyYWRlcyA9IGZ1bmN0aW9uICh1cGdyYWRlcykge1xuICB2YXIgZmlsdGVyZWRVcGdyYWRlcyA9IFtdO1xuICBmb3IgKHZhciBpID0gMCwgaiA9IHVwZ3JhZGVzLmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgIGlmICh+aW5kZXgodGhpcy50cmFuc3BvcnRzLCB1cGdyYWRlc1tpXSkpIGZpbHRlcmVkVXBncmFkZXMucHVzaCh1cGdyYWRlc1tpXSk7XG4gIH1cbiAgcmV0dXJuIGZpbHRlcmVkVXBncmFkZXM7XG59O1xuIiwiLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICovXG5cbnZhciBwYXJzZXIgPSByZXF1aXJlKCdlbmdpbmUuaW8tcGFyc2VyJyk7XG52YXIgRW1pdHRlciA9IHJlcXVpcmUoJ2NvbXBvbmVudC1lbWl0dGVyJyk7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBUcmFuc3BvcnQ7XG5cbi8qKlxuICogVHJhbnNwb3J0IGFic3RyYWN0IGNvbnN0cnVjdG9yLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zLlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gVHJhbnNwb3J0IChvcHRzKSB7XG4gIHRoaXMucGF0aCA9IG9wdHMucGF0aDtcbiAgdGhpcy5ob3N0bmFtZSA9IG9wdHMuaG9zdG5hbWU7XG4gIHRoaXMucG9ydCA9IG9wdHMucG9ydDtcbiAgdGhpcy5zZWN1cmUgPSBvcHRzLnNlY3VyZTtcbiAgdGhpcy5xdWVyeSA9IG9wdHMucXVlcnk7XG4gIHRoaXMudGltZXN0YW1wUGFyYW0gPSBvcHRzLnRpbWVzdGFtcFBhcmFtO1xuICB0aGlzLnRpbWVzdGFtcFJlcXVlc3RzID0gb3B0cy50aW1lc3RhbXBSZXF1ZXN0cztcbiAgdGhpcy5yZWFkeVN0YXRlID0gJyc7XG4gIHRoaXMuYWdlbnQgPSBvcHRzLmFnZW50IHx8IGZhbHNlO1xuICB0aGlzLnNvY2tldCA9IG9wdHMuc29ja2V0O1xuICB0aGlzLmVuYWJsZXNYRFIgPSBvcHRzLmVuYWJsZXNYRFI7XG4gIHRoaXMud2l0aENyZWRlbnRpYWxzID0gb3B0cy53aXRoQ3JlZGVudGlhbHM7XG5cbiAgLy8gU1NMIG9wdGlvbnMgZm9yIE5vZGUuanMgY2xpZW50XG4gIHRoaXMucGZ4ID0gb3B0cy5wZng7XG4gIHRoaXMua2V5ID0gb3B0cy5rZXk7XG4gIHRoaXMucGFzc3BocmFzZSA9IG9wdHMucGFzc3BocmFzZTtcbiAgdGhpcy5jZXJ0ID0gb3B0cy5jZXJ0O1xuICB0aGlzLmNhID0gb3B0cy5jYTtcbiAgdGhpcy5jaXBoZXJzID0gb3B0cy5jaXBoZXJzO1xuICB0aGlzLnJlamVjdFVuYXV0aG9yaXplZCA9IG9wdHMucmVqZWN0VW5hdXRob3JpemVkO1xuICB0aGlzLmZvcmNlTm9kZSA9IG9wdHMuZm9yY2VOb2RlO1xuXG4gIC8vIHJlc3VsdHMgb2YgUmVhY3ROYXRpdmUgZW52aXJvbm1lbnQgZGV0ZWN0aW9uXG4gIHRoaXMuaXNSZWFjdE5hdGl2ZSA9IG9wdHMuaXNSZWFjdE5hdGl2ZTtcblxuICAvLyBvdGhlciBvcHRpb25zIGZvciBOb2RlLmpzIGNsaWVudFxuICB0aGlzLmV4dHJhSGVhZGVycyA9IG9wdHMuZXh0cmFIZWFkZXJzO1xuICB0aGlzLmxvY2FsQWRkcmVzcyA9IG9wdHMubG9jYWxBZGRyZXNzO1xufVxuXG4vKipcbiAqIE1peCBpbiBgRW1pdHRlcmAuXG4gKi9cblxuRW1pdHRlcihUcmFuc3BvcnQucHJvdG90eXBlKTtcblxuLyoqXG4gKiBFbWl0cyBhbiBlcnJvci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc3RyXG4gKiBAcmV0dXJuIHtUcmFuc3BvcnR9IGZvciBjaGFpbmluZ1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5UcmFuc3BvcnQucHJvdG90eXBlLm9uRXJyb3IgPSBmdW5jdGlvbiAobXNnLCBkZXNjKSB7XG4gIHZhciBlcnIgPSBuZXcgRXJyb3IobXNnKTtcbiAgZXJyLnR5cGUgPSAnVHJhbnNwb3J0RXJyb3InO1xuICBlcnIuZGVzY3JpcHRpb24gPSBkZXNjO1xuICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIE9wZW5zIHRoZSB0cmFuc3BvcnQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5UcmFuc3BvcnQucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbiAoKSB7XG4gIGlmICgnY2xvc2VkJyA9PT0gdGhpcy5yZWFkeVN0YXRlIHx8ICcnID09PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICB0aGlzLnJlYWR5U3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5kb09wZW4oKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDbG9zZXMgdGhlIHRyYW5zcG9ydC5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5UcmFuc3BvcnQucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24gKCkge1xuICBpZiAoJ29wZW5pbmcnID09PSB0aGlzLnJlYWR5U3RhdGUgfHwgJ29wZW4nID09PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICB0aGlzLmRvQ2xvc2UoKTtcbiAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZW5kcyBtdWx0aXBsZSBwYWNrZXRzLlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IHBhY2tldHNcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblRyYW5zcG9ydC5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uIChwYWNrZXRzKSB7XG4gIGlmICgnb3BlbicgPT09IHRoaXMucmVhZHlTdGF0ZSkge1xuICAgIHRoaXMud3JpdGUocGFja2V0cyk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUcmFuc3BvcnQgbm90IG9wZW4nKTtcbiAgfVxufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiBvcGVuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuVHJhbnNwb3J0LnByb3RvdHlwZS5vbk9wZW4gPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMucmVhZHlTdGF0ZSA9ICdvcGVuJztcbiAgdGhpcy53cml0YWJsZSA9IHRydWU7XG4gIHRoaXMuZW1pdCgnb3BlbicpO1xufTtcblxuLyoqXG4gKiBDYWxsZWQgd2l0aCBkYXRhLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5UcmFuc3BvcnQucHJvdG90eXBlLm9uRGF0YSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHZhciBwYWNrZXQgPSBwYXJzZXIuZGVjb2RlUGFja2V0KGRhdGEsIHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpO1xuICB0aGlzLm9uUGFja2V0KHBhY2tldCk7XG59O1xuXG4vKipcbiAqIENhbGxlZCB3aXRoIGEgZGVjb2RlZCBwYWNrZXQuXG4gKi9cblxuVHJhbnNwb3J0LnByb3RvdHlwZS5vblBhY2tldCA9IGZ1bmN0aW9uIChwYWNrZXQpIHtcbiAgdGhpcy5lbWl0KCdwYWNrZXQnLCBwYWNrZXQpO1xufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiBjbG9zZS5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5UcmFuc3BvcnQucHJvdG90eXBlLm9uQ2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMucmVhZHlTdGF0ZSA9ICdjbG9zZWQnO1xuICB0aGlzLmVtaXQoJ2Nsb3NlJyk7XG59O1xuIiwiLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzXG4gKi9cblxudmFyIFhNTEh0dHBSZXF1ZXN0ID0gcmVxdWlyZSgneG1saHR0cHJlcXVlc3Qtc3NsJyk7XG52YXIgWEhSID0gcmVxdWlyZSgnLi9wb2xsaW5nLXhocicpO1xudmFyIEpTT05QID0gcmVxdWlyZSgnLi9wb2xsaW5nLWpzb25wJyk7XG52YXIgd2Vic29ja2V0ID0gcmVxdWlyZSgnLi93ZWJzb2NrZXQnKTtcblxuLyoqXG4gKiBFeHBvcnQgdHJhbnNwb3J0cy5cbiAqL1xuXG5leHBvcnRzLnBvbGxpbmcgPSBwb2xsaW5nO1xuZXhwb3J0cy53ZWJzb2NrZXQgPSB3ZWJzb2NrZXQ7XG5cbi8qKlxuICogUG9sbGluZyB0cmFuc3BvcnQgcG9seW1vcnBoaWMgY29uc3RydWN0b3IuXG4gKiBEZWNpZGVzIG9uIHhociB2cyBqc29ucCBiYXNlZCBvbiBmZWF0dXJlIGRldGVjdGlvbi5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBwb2xsaW5nIChvcHRzKSB7XG4gIHZhciB4aHI7XG4gIHZhciB4ZCA9IGZhbHNlO1xuICB2YXIgeHMgPSBmYWxzZTtcbiAgdmFyIGpzb25wID0gZmFsc2UgIT09IG9wdHMuanNvbnA7XG5cbiAgaWYgKHR5cGVvZiBsb2NhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB2YXIgaXNTU0wgPSAnaHR0cHM6JyA9PT0gbG9jYXRpb24ucHJvdG9jb2w7XG4gICAgdmFyIHBvcnQgPSBsb2NhdGlvbi5wb3J0O1xuXG4gICAgLy8gc29tZSB1c2VyIGFnZW50cyBoYXZlIGVtcHR5IGBsb2NhdGlvbi5wb3J0YFxuICAgIGlmICghcG9ydCkge1xuICAgICAgcG9ydCA9IGlzU1NMID8gNDQzIDogODA7XG4gICAgfVxuXG4gICAgeGQgPSBvcHRzLmhvc3RuYW1lICE9PSBsb2NhdGlvbi5ob3N0bmFtZSB8fCBwb3J0ICE9PSBvcHRzLnBvcnQ7XG4gICAgeHMgPSBvcHRzLnNlY3VyZSAhPT0gaXNTU0w7XG4gIH1cblxuICBvcHRzLnhkb21haW4gPSB4ZDtcbiAgb3B0cy54c2NoZW1lID0geHM7XG4gIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdChvcHRzKTtcblxuICBpZiAoJ29wZW4nIGluIHhociAmJiAhb3B0cy5mb3JjZUpTT05QKSB7XG4gICAgcmV0dXJuIG5ldyBYSFIob3B0cyk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCFqc29ucCkgdGhyb3cgbmV3IEVycm9yKCdKU09OUCBkaXNhYmxlZCcpO1xuICAgIHJldHVybiBuZXcgSlNPTlAob3B0cyk7XG4gIH1cbn1cbiIsIi8qKlxuICogTW9kdWxlIHJlcXVpcmVtZW50cy5cbiAqL1xuXG52YXIgUG9sbGluZyA9IHJlcXVpcmUoJy4vcG9sbGluZycpO1xudmFyIGluaGVyaXQgPSByZXF1aXJlKCdjb21wb25lbnQtaW5oZXJpdCcpO1xuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gSlNPTlBQb2xsaW5nO1xuXG4vKipcbiAqIENhY2hlZCByZWd1bGFyIGV4cHJlc3Npb25zLlxuICovXG5cbnZhciByTmV3bGluZSA9IC9cXG4vZztcbnZhciByRXNjYXBlZE5ld2xpbmUgPSAvXFxcXG4vZztcblxuLyoqXG4gKiBHbG9iYWwgSlNPTlAgY2FsbGJhY2tzLlxuICovXG5cbnZhciBjYWxsYmFja3M7XG5cbi8qKlxuICogTm9vcC5cbiAqL1xuXG5mdW5jdGlvbiBlbXB0eSAoKSB7IH1cblxuLyoqXG4gKiBVbnRpbCBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC1nbG9iYWwgaXMgc2hpcHBlZC5cbiAqL1xuZnVuY3Rpb24gZ2xvYiAoKSB7XG4gIHJldHVybiB0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgPyBzZWxmXG4gICAgICA6IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93XG4gICAgICA6IHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDoge307XG59XG5cbi8qKlxuICogSlNPTlAgUG9sbGluZyBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cy5cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gSlNPTlBQb2xsaW5nIChvcHRzKSB7XG4gIFBvbGxpbmcuY2FsbCh0aGlzLCBvcHRzKTtcblxuICB0aGlzLnF1ZXJ5ID0gdGhpcy5xdWVyeSB8fCB7fTtcblxuICAvLyBkZWZpbmUgZ2xvYmFsIGNhbGxiYWNrcyBhcnJheSBpZiBub3QgcHJlc2VudFxuICAvLyB3ZSBkbyB0aGlzIGhlcmUgKGxhemlseSkgdG8gYXZvaWQgdW5uZWVkZWQgZ2xvYmFsIHBvbGx1dGlvblxuICBpZiAoIWNhbGxiYWNrcykge1xuICAgIC8vIHdlIG5lZWQgdG8gY29uc2lkZXIgbXVsdGlwbGUgZW5naW5lcyBpbiB0aGUgc2FtZSBwYWdlXG4gICAgdmFyIGdsb2JhbCA9IGdsb2IoKTtcbiAgICBjYWxsYmFja3MgPSBnbG9iYWwuX19fZWlvID0gKGdsb2JhbC5fX19laW8gfHwgW10pO1xuICB9XG5cbiAgLy8gY2FsbGJhY2sgaWRlbnRpZmllclxuICB0aGlzLmluZGV4ID0gY2FsbGJhY2tzLmxlbmd0aDtcblxuICAvLyBhZGQgY2FsbGJhY2sgdG8ganNvbnAgZ2xvYmFsXG4gIHZhciBzZWxmID0gdGhpcztcbiAgY2FsbGJhY2tzLnB1c2goZnVuY3Rpb24gKG1zZykge1xuICAgIHNlbGYub25EYXRhKG1zZyk7XG4gIH0pO1xuXG4gIC8vIGFwcGVuZCB0byBxdWVyeSBzdHJpbmdcbiAgdGhpcy5xdWVyeS5qID0gdGhpcy5pbmRleDtcblxuICAvLyBwcmV2ZW50IHNwdXJpb3VzIGVycm9ycyBmcm9tIGJlaW5nIGVtaXR0ZWQgd2hlbiB0aGUgd2luZG93IGlzIHVubG9hZGVkXG4gIGlmICh0eXBlb2YgYWRkRXZlbnRMaXN0ZW5lciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChzZWxmLnNjcmlwdCkgc2VsZi5zY3JpcHQub25lcnJvciA9IGVtcHR5O1xuICAgIH0sIGZhbHNlKTtcbiAgfVxufVxuXG4vKipcbiAqIEluaGVyaXRzIGZyb20gUG9sbGluZy5cbiAqL1xuXG5pbmhlcml0KEpTT05QUG9sbGluZywgUG9sbGluZyk7XG5cbi8qXG4gKiBKU09OUCBvbmx5IHN1cHBvcnRzIGJpbmFyeSBhcyBiYXNlNjQgZW5jb2RlZCBzdHJpbmdzXG4gKi9cblxuSlNPTlBQb2xsaW5nLnByb3RvdHlwZS5zdXBwb3J0c0JpbmFyeSA9IGZhbHNlO1xuXG4vKipcbiAqIENsb3NlcyB0aGUgc29ja2V0LlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbkpTT05QUG9sbGluZy5wcm90b3R5cGUuZG9DbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuc2NyaXB0KSB7XG4gICAgdGhpcy5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnNjcmlwdCk7XG4gICAgdGhpcy5zY3JpcHQgPSBudWxsO1xuICB9XG5cbiAgaWYgKHRoaXMuZm9ybSkge1xuICAgIHRoaXMuZm9ybS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZm9ybSk7XG4gICAgdGhpcy5mb3JtID0gbnVsbDtcbiAgICB0aGlzLmlmcmFtZSA9IG51bGw7XG4gIH1cblxuICBQb2xsaW5nLnByb3RvdHlwZS5kb0Nsb3NlLmNhbGwodGhpcyk7XG59O1xuXG4vKipcbiAqIFN0YXJ0cyBhIHBvbGwgY3ljbGUuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuSlNPTlBQb2xsaW5nLnByb3RvdHlwZS5kb1BvbGwgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXG4gIGlmICh0aGlzLnNjcmlwdCkge1xuICAgIHRoaXMuc2NyaXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zY3JpcHQpO1xuICAgIHRoaXMuc2NyaXB0ID0gbnVsbDtcbiAgfVxuXG4gIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gIHNjcmlwdC5zcmMgPSB0aGlzLnVyaSgpO1xuICBzY3JpcHQub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgc2VsZi5vbkVycm9yKCdqc29ucCBwb2xsIGVycm9yJywgZSk7XG4gIH07XG5cbiAgdmFyIGluc2VydEF0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdO1xuICBpZiAoaW5zZXJ0QXQpIHtcbiAgICBpbnNlcnRBdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzY3JpcHQsIGluc2VydEF0KTtcbiAgfSBlbHNlIHtcbiAgICAoZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9XG4gIHRoaXMuc2NyaXB0ID0gc2NyaXB0O1xuXG4gIHZhciBpc1VBZ2Vja28gPSAndW5kZWZpbmVkJyAhPT0gdHlwZW9mIG5hdmlnYXRvciAmJiAvZ2Vja28vaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuXG4gIGlmIChpc1VBZ2Vja28pIHtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTtcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaWZyYW1lKTtcbiAgICB9LCAxMDApO1xuICB9XG59O1xuXG4vKipcbiAqIFdyaXRlcyB3aXRoIGEgaGlkZGVuIGlmcmFtZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZGF0YSB0byBzZW5kXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsZWQgdXBvbiBmbHVzaC5cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbkpTT05QUG9sbGluZy5wcm90b3R5cGUuZG9Xcml0ZSA9IGZ1bmN0aW9uIChkYXRhLCBmbikge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgaWYgKCF0aGlzLmZvcm0pIHtcbiAgICB2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcbiAgICB2YXIgYXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XG4gICAgdmFyIGlkID0gdGhpcy5pZnJhbWVJZCA9ICdlaW9faWZyYW1lXycgKyB0aGlzLmluZGV4O1xuICAgIHZhciBpZnJhbWU7XG5cbiAgICBmb3JtLmNsYXNzTmFtZSA9ICdzb2NrZXRpbyc7XG4gICAgZm9ybS5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgZm9ybS5zdHlsZS50b3AgPSAnLTEwMDBweCc7XG4gICAgZm9ybS5zdHlsZS5sZWZ0ID0gJy0xMDAwcHgnO1xuICAgIGZvcm0udGFyZ2V0ID0gaWQ7XG4gICAgZm9ybS5tZXRob2QgPSAnUE9TVCc7XG4gICAgZm9ybS5zZXRBdHRyaWJ1dGUoJ2FjY2VwdC1jaGFyc2V0JywgJ3V0Zi04Jyk7XG4gICAgYXJlYS5uYW1lID0gJ2QnO1xuICAgIGZvcm0uYXBwZW5kQ2hpbGQoYXJlYSk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcblxuICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgdGhpcy5hcmVhID0gYXJlYTtcbiAgfVxuXG4gIHRoaXMuZm9ybS5hY3Rpb24gPSB0aGlzLnVyaSgpO1xuXG4gIGZ1bmN0aW9uIGNvbXBsZXRlICgpIHtcbiAgICBpbml0SWZyYW1lKCk7XG4gICAgZm4oKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRJZnJhbWUgKCkge1xuICAgIGlmIChzZWxmLmlmcmFtZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgc2VsZi5mb3JtLnJlbW92ZUNoaWxkKHNlbGYuaWZyYW1lKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2VsZi5vbkVycm9yKCdqc29ucCBwb2xsaW5nIGlmcmFtZSByZW1vdmFsIGVycm9yJywgZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIGllNiBkeW5hbWljIGlmcmFtZXMgd2l0aCB0YXJnZXQ9XCJcIiBzdXBwb3J0ICh0aGFua3MgQ2hyaXMgTGFtYmFjaGVyKVxuICAgICAgdmFyIGh0bWwgPSAnPGlmcmFtZSBzcmM9XCJqYXZhc2NyaXB0OjBcIiBuYW1lPVwiJyArIHNlbGYuaWZyYW1lSWQgKyAnXCI+JztcbiAgICAgIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoaHRtbCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7XG4gICAgICBpZnJhbWUubmFtZSA9IHNlbGYuaWZyYW1lSWQ7XG4gICAgICBpZnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6MCc7XG4gICAgfVxuXG4gICAgaWZyYW1lLmlkID0gc2VsZi5pZnJhbWVJZDtcblxuICAgIHNlbGYuZm9ybS5hcHBlbmRDaGlsZChpZnJhbWUpO1xuICAgIHNlbGYuaWZyYW1lID0gaWZyYW1lO1xuICB9XG5cbiAgaW5pdElmcmFtZSgpO1xuXG4gIC8vIGVzY2FwZSBcXG4gdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIGNvbnZlcnRlZCBpbnRvIFxcclxcbiBieSBzb21lIFVBc1xuICAvLyBkb3VibGUgZXNjYXBpbmcgaXMgcmVxdWlyZWQgZm9yIGVzY2FwZWQgbmV3IGxpbmVzIGJlY2F1c2UgdW5lc2NhcGluZyBvZiBuZXcgbGluZXMgY2FuIGJlIGRvbmUgc2FmZWx5IG9uIHNlcnZlci1zaWRlXG4gIGRhdGEgPSBkYXRhLnJlcGxhY2UockVzY2FwZWROZXdsaW5lLCAnXFxcXFxcbicpO1xuICB0aGlzLmFyZWEudmFsdWUgPSBkYXRhLnJlcGxhY2Uock5ld2xpbmUsICdcXFxcbicpO1xuXG4gIHRyeSB7XG4gICAgdGhpcy5mb3JtLnN1Ym1pdCgpO1xuICB9IGNhdGNoIChlKSB7fVxuXG4gIGlmICh0aGlzLmlmcmFtZS5hdHRhY2hFdmVudCkge1xuICAgIHRoaXMuaWZyYW1lLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChzZWxmLmlmcmFtZS5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgIGNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmlmcmFtZS5vbmxvYWQgPSBjb21wbGV0ZTtcbiAgfVxufTtcbiIsIi8qIGdsb2JhbCBhdHRhY2hFdmVudCAqL1xuXG4vKipcbiAqIE1vZHVsZSByZXF1aXJlbWVudHMuXG4gKi9cblxudmFyIFhNTEh0dHBSZXF1ZXN0ID0gcmVxdWlyZSgneG1saHR0cHJlcXVlc3Qtc3NsJyk7XG52YXIgUG9sbGluZyA9IHJlcXVpcmUoJy4vcG9sbGluZycpO1xudmFyIEVtaXR0ZXIgPSByZXF1aXJlKCdjb21wb25lbnQtZW1pdHRlcicpO1xudmFyIGluaGVyaXQgPSByZXF1aXJlKCdjb21wb25lbnQtaW5oZXJpdCcpO1xudmFyIGRlYnVnID0gcmVxdWlyZSgnZGVidWcnKSgnZW5naW5lLmlvLWNsaWVudDpwb2xsaW5nLXhocicpO1xuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gWEhSO1xubW9kdWxlLmV4cG9ydHMuUmVxdWVzdCA9IFJlcXVlc3Q7XG5cbi8qKlxuICogRW1wdHkgZnVuY3Rpb25cbiAqL1xuXG5mdW5jdGlvbiBlbXB0eSAoKSB7fVxuXG4vKipcbiAqIFhIUiBQb2xsaW5nIGNvbnN0cnVjdG9yLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIFhIUiAob3B0cykge1xuICBQb2xsaW5nLmNhbGwodGhpcywgb3B0cyk7XG4gIHRoaXMucmVxdWVzdFRpbWVvdXQgPSBvcHRzLnJlcXVlc3RUaW1lb3V0O1xuICB0aGlzLmV4dHJhSGVhZGVycyA9IG9wdHMuZXh0cmFIZWFkZXJzO1xuXG4gIGlmICh0eXBlb2YgbG9jYXRpb24gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgdmFyIGlzU1NMID0gJ2h0dHBzOicgPT09IGxvY2F0aW9uLnByb3RvY29sO1xuICAgIHZhciBwb3J0ID0gbG9jYXRpb24ucG9ydDtcblxuICAgIC8vIHNvbWUgdXNlciBhZ2VudHMgaGF2ZSBlbXB0eSBgbG9jYXRpb24ucG9ydGBcbiAgICBpZiAoIXBvcnQpIHtcbiAgICAgIHBvcnQgPSBpc1NTTCA/IDQ0MyA6IDgwO1xuICAgIH1cblxuICAgIHRoaXMueGQgPSAodHlwZW9mIGxvY2F0aW9uICE9PSAndW5kZWZpbmVkJyAmJiBvcHRzLmhvc3RuYW1lICE9PSBsb2NhdGlvbi5ob3N0bmFtZSkgfHxcbiAgICAgIHBvcnQgIT09IG9wdHMucG9ydDtcbiAgICB0aGlzLnhzID0gb3B0cy5zZWN1cmUgIT09IGlzU1NMO1xuICB9XG59XG5cbi8qKlxuICogSW5oZXJpdHMgZnJvbSBQb2xsaW5nLlxuICovXG5cbmluaGVyaXQoWEhSLCBQb2xsaW5nKTtcblxuLyoqXG4gKiBYSFIgc3VwcG9ydHMgYmluYXJ5XG4gKi9cblxuWEhSLnByb3RvdHlwZS5zdXBwb3J0c0JpbmFyeSA9IHRydWU7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHJlcXVlc3QuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IG1ldGhvZFxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuWEhSLnByb3RvdHlwZS5yZXF1ZXN0ID0gZnVuY3Rpb24gKG9wdHMpIHtcbiAgb3B0cyA9IG9wdHMgfHwge307XG4gIG9wdHMudXJpID0gdGhpcy51cmkoKTtcbiAgb3B0cy54ZCA9IHRoaXMueGQ7XG4gIG9wdHMueHMgPSB0aGlzLnhzO1xuICBvcHRzLmFnZW50ID0gdGhpcy5hZ2VudCB8fCBmYWxzZTtcbiAgb3B0cy5zdXBwb3J0c0JpbmFyeSA9IHRoaXMuc3VwcG9ydHNCaW5hcnk7XG4gIG9wdHMuZW5hYmxlc1hEUiA9IHRoaXMuZW5hYmxlc1hEUjtcbiAgb3B0cy53aXRoQ3JlZGVudGlhbHMgPSB0aGlzLndpdGhDcmVkZW50aWFscztcblxuICAvLyBTU0wgb3B0aW9ucyBmb3IgTm9kZS5qcyBjbGllbnRcbiAgb3B0cy5wZnggPSB0aGlzLnBmeDtcbiAgb3B0cy5rZXkgPSB0aGlzLmtleTtcbiAgb3B0cy5wYXNzcGhyYXNlID0gdGhpcy5wYXNzcGhyYXNlO1xuICBvcHRzLmNlcnQgPSB0aGlzLmNlcnQ7XG4gIG9wdHMuY2EgPSB0aGlzLmNhO1xuICBvcHRzLmNpcGhlcnMgPSB0aGlzLmNpcGhlcnM7XG4gIG9wdHMucmVqZWN0VW5hdXRob3JpemVkID0gdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ7XG4gIG9wdHMucmVxdWVzdFRpbWVvdXQgPSB0aGlzLnJlcXVlc3RUaW1lb3V0O1xuXG4gIC8vIG90aGVyIG9wdGlvbnMgZm9yIE5vZGUuanMgY2xpZW50XG4gIG9wdHMuZXh0cmFIZWFkZXJzID0gdGhpcy5leHRyYUhlYWRlcnM7XG5cbiAgcmV0dXJuIG5ldyBSZXF1ZXN0KG9wdHMpO1xufTtcblxuLyoqXG4gKiBTZW5kcyBkYXRhLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhIHRvIHNlbmQuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsZWQgdXBvbiBmbHVzaC5cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblhIUi5wcm90b3R5cGUuZG9Xcml0ZSA9IGZ1bmN0aW9uIChkYXRhLCBmbikge1xuICB2YXIgaXNCaW5hcnkgPSB0eXBlb2YgZGF0YSAhPT0gJ3N0cmluZycgJiYgZGF0YSAhPT0gdW5kZWZpbmVkO1xuICB2YXIgcmVxID0gdGhpcy5yZXF1ZXN0KHsgbWV0aG9kOiAnUE9TVCcsIGRhdGE6IGRhdGEsIGlzQmluYXJ5OiBpc0JpbmFyeSB9KTtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICByZXEub24oJ3N1Y2Nlc3MnLCBmbik7XG4gIHJlcS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgc2VsZi5vbkVycm9yKCd4aHIgcG9zdCBlcnJvcicsIGVycik7XG4gIH0pO1xuICB0aGlzLnNlbmRYaHIgPSByZXE7XG59O1xuXG4vKipcbiAqIFN0YXJ0cyBhIHBvbGwgY3ljbGUuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuWEhSLnByb3RvdHlwZS5kb1BvbGwgPSBmdW5jdGlvbiAoKSB7XG4gIGRlYnVnKCd4aHIgcG9sbCcpO1xuICB2YXIgcmVxID0gdGhpcy5yZXF1ZXN0KCk7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgcmVxLm9uKCdkYXRhJywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBzZWxmLm9uRGF0YShkYXRhKTtcbiAgfSk7XG4gIHJlcS5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyKSB7XG4gICAgc2VsZi5vbkVycm9yKCd4aHIgcG9sbCBlcnJvcicsIGVycik7XG4gIH0pO1xuICB0aGlzLnBvbGxYaHIgPSByZXE7XG59O1xuXG4vKipcbiAqIFJlcXVlc3QgY29uc3RydWN0b3JcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBSZXF1ZXN0IChvcHRzKSB7XG4gIHRoaXMubWV0aG9kID0gb3B0cy5tZXRob2QgfHwgJ0dFVCc7XG4gIHRoaXMudXJpID0gb3B0cy51cmk7XG4gIHRoaXMueGQgPSAhIW9wdHMueGQ7XG4gIHRoaXMueHMgPSAhIW9wdHMueHM7XG4gIHRoaXMuYXN5bmMgPSBmYWxzZSAhPT0gb3B0cy5hc3luYztcbiAgdGhpcy5kYXRhID0gdW5kZWZpbmVkICE9PSBvcHRzLmRhdGEgPyBvcHRzLmRhdGEgOiBudWxsO1xuICB0aGlzLmFnZW50ID0gb3B0cy5hZ2VudDtcbiAgdGhpcy5pc0JpbmFyeSA9IG9wdHMuaXNCaW5hcnk7XG4gIHRoaXMuc3VwcG9ydHNCaW5hcnkgPSBvcHRzLnN1cHBvcnRzQmluYXJ5O1xuICB0aGlzLmVuYWJsZXNYRFIgPSBvcHRzLmVuYWJsZXNYRFI7XG4gIHRoaXMud2l0aENyZWRlbnRpYWxzID0gb3B0cy53aXRoQ3JlZGVudGlhbHM7XG4gIHRoaXMucmVxdWVzdFRpbWVvdXQgPSBvcHRzLnJlcXVlc3RUaW1lb3V0O1xuXG4gIC8vIFNTTCBvcHRpb25zIGZvciBOb2RlLmpzIGNsaWVudFxuICB0aGlzLnBmeCA9IG9wdHMucGZ4O1xuICB0aGlzLmtleSA9IG9wdHMua2V5O1xuICB0aGlzLnBhc3NwaHJhc2UgPSBvcHRzLnBhc3NwaHJhc2U7XG4gIHRoaXMuY2VydCA9IG9wdHMuY2VydDtcbiAgdGhpcy5jYSA9IG9wdHMuY2E7XG4gIHRoaXMuY2lwaGVycyA9IG9wdHMuY2lwaGVycztcbiAgdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQgPSBvcHRzLnJlamVjdFVuYXV0aG9yaXplZDtcblxuICAvLyBvdGhlciBvcHRpb25zIGZvciBOb2RlLmpzIGNsaWVudFxuICB0aGlzLmV4dHJhSGVhZGVycyA9IG9wdHMuZXh0cmFIZWFkZXJzO1xuXG4gIHRoaXMuY3JlYXRlKCk7XG59XG5cbi8qKlxuICogTWl4IGluIGBFbWl0dGVyYC5cbiAqL1xuXG5FbWl0dGVyKFJlcXVlc3QucHJvdG90eXBlKTtcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBYSFIgb2JqZWN0IGFuZCBzZW5kcyB0aGUgcmVxdWVzdC5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5jcmVhdGUgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBvcHRzID0geyBhZ2VudDogdGhpcy5hZ2VudCwgeGRvbWFpbjogdGhpcy54ZCwgeHNjaGVtZTogdGhpcy54cywgZW5hYmxlc1hEUjogdGhpcy5lbmFibGVzWERSIH07XG5cbiAgLy8gU1NMIG9wdGlvbnMgZm9yIE5vZGUuanMgY2xpZW50XG4gIG9wdHMucGZ4ID0gdGhpcy5wZng7XG4gIG9wdHMua2V5ID0gdGhpcy5rZXk7XG4gIG9wdHMucGFzc3BocmFzZSA9IHRoaXMucGFzc3BocmFzZTtcbiAgb3B0cy5jZXJ0ID0gdGhpcy5jZXJ0O1xuICBvcHRzLmNhID0gdGhpcy5jYTtcbiAgb3B0cy5jaXBoZXJzID0gdGhpcy5jaXBoZXJzO1xuICBvcHRzLnJlamVjdFVuYXV0aG9yaXplZCA9IHRoaXMucmVqZWN0VW5hdXRob3JpemVkO1xuXG4gIHZhciB4aHIgPSB0aGlzLnhociA9IG5ldyBYTUxIdHRwUmVxdWVzdChvcHRzKTtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gIHRyeSB7XG4gICAgZGVidWcoJ3hociBvcGVuICVzOiAlcycsIHRoaXMubWV0aG9kLCB0aGlzLnVyaSk7XG4gICAgeGhyLm9wZW4odGhpcy5tZXRob2QsIHRoaXMudXJpLCB0aGlzLmFzeW5jKTtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuZXh0cmFIZWFkZXJzKSB7XG4gICAgICAgIHhoci5zZXREaXNhYmxlSGVhZGVyQ2hlY2sgJiYgeGhyLnNldERpc2FibGVIZWFkZXJDaGVjayh0cnVlKTtcbiAgICAgICAgZm9yICh2YXIgaSBpbiB0aGlzLmV4dHJhSGVhZGVycykge1xuICAgICAgICAgIGlmICh0aGlzLmV4dHJhSGVhZGVycy5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoaSwgdGhpcy5leHRyYUhlYWRlcnNbaV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICBpZiAoJ1BPU1QnID09PSB0aGlzLm1ldGhvZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHRoaXMuaXNCaW5hcnkpIHtcbiAgICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC10eXBlJywgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdDb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Jyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdBY2NlcHQnLCAnKi8qJyk7XG4gICAgfSBjYXRjaCAoZSkge31cblxuICAgIC8vIGllNiBjaGVja1xuICAgIGlmICgnd2l0aENyZWRlbnRpYWxzJyBpbiB4aHIpIHtcbiAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB0aGlzLndpdGhDcmVkZW50aWFscztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXF1ZXN0VGltZW91dCkge1xuICAgICAgeGhyLnRpbWVvdXQgPSB0aGlzLnJlcXVlc3RUaW1lb3V0O1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc1hEUigpKSB7XG4gICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBzZWxmLm9uTG9hZCgpO1xuICAgICAgfTtcbiAgICAgIHhoci5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBzZWxmLm9uRXJyb3IoeGhyLnJlc3BvbnNlVGV4dCk7XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgPT09IDIpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIGNvbnRlbnRUeXBlID0geGhyLmdldFJlc3BvbnNlSGVhZGVyKCdDb250ZW50LVR5cGUnKTtcbiAgICAgICAgICAgIGlmIChzZWxmLnN1cHBvcnRzQmluYXJ5ICYmIGNvbnRlbnRUeXBlID09PSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyB8fCBjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTsgY2hhcnNldD1VVEYtOCcpIHtcbiAgICAgICAgICAgICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdhcnJheWJ1ZmZlcic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfVxuICAgICAgICBpZiAoNCAhPT0geGhyLnJlYWR5U3RhdGUpIHJldHVybjtcbiAgICAgICAgaWYgKDIwMCA9PT0geGhyLnN0YXR1cyB8fCAxMjIzID09PSB4aHIuc3RhdHVzKSB7XG4gICAgICAgICAgc2VsZi5vbkxvYWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIGBlcnJvcmAgZXZlbnQgaGFuZGxlciB0aGF0J3MgdXNlci1zZXRcbiAgICAgICAgICAvLyBkb2VzIG5vdCB0aHJvdyBpbiB0aGUgc2FtZSB0aWNrIGFuZCBnZXRzIGNhdWdodCBoZXJlXG4gICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzZWxmLm9uRXJyb3IodHlwZW9mIHhoci5zdGF0dXMgPT09ICdudW1iZXInID8geGhyLnN0YXR1cyA6IDApO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGRlYnVnKCd4aHIgZGF0YSAlcycsIHRoaXMuZGF0YSk7XG4gICAgeGhyLnNlbmQodGhpcy5kYXRhKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIE5lZWQgdG8gZGVmZXIgc2luY2UgLmNyZWF0ZSgpIGlzIGNhbGxlZCBkaXJlY3RseSBmaHJvbSB0aGUgY29uc3RydWN0b3JcbiAgICAvLyBhbmQgdGh1cyB0aGUgJ2Vycm9yJyBldmVudCBjYW4gb25seSBiZSBvbmx5IGJvdW5kICphZnRlciogdGhpcyBleGNlcHRpb25cbiAgICAvLyBvY2N1cnMuICBUaGVyZWZvcmUsIGFsc28sIHdlIGNhbm5vdCB0aHJvdyBoZXJlIGF0IGFsbC5cbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIHNlbGYub25FcnJvcihlKTtcbiAgICB9LCAwKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHRoaXMuaW5kZXggPSBSZXF1ZXN0LnJlcXVlc3RzQ291bnQrKztcbiAgICBSZXF1ZXN0LnJlcXVlc3RzW3RoaXMuaW5kZXhdID0gdGhpcztcbiAgfVxufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiBzdWNjZXNzZnVsIHJlc3BvbnNlLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLm9uU3VjY2VzcyA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5lbWl0KCdzdWNjZXNzJyk7XG4gIHRoaXMuY2xlYW51cCgpO1xufTtcblxuLyoqXG4gKiBDYWxsZWQgaWYgd2UgaGF2ZSBkYXRhLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblJlcXVlc3QucHJvdG90eXBlLm9uRGF0YSA9IGZ1bmN0aW9uIChkYXRhKSB7XG4gIHRoaXMuZW1pdCgnZGF0YScsIGRhdGEpO1xuICB0aGlzLm9uU3VjY2VzcygpO1xufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiBlcnJvci5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5SZXF1ZXN0LnByb3RvdHlwZS5vbkVycm9yID0gZnVuY3Rpb24gKGVycikge1xuICB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgdGhpcy5jbGVhbnVwKHRydWUpO1xufTtcblxuLyoqXG4gKiBDbGVhbnMgdXAgaG91c2UuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuY2xlYW51cCA9IGZ1bmN0aW9uIChmcm9tRXJyb3IpIHtcbiAgaWYgKCd1bmRlZmluZWQnID09PSB0eXBlb2YgdGhpcy54aHIgfHwgbnVsbCA9PT0gdGhpcy54aHIpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8geG1saHR0cHJlcXVlc3RcbiAgaWYgKHRoaXMuaGFzWERSKCkpIHtcbiAgICB0aGlzLnhoci5vbmxvYWQgPSB0aGlzLnhoci5vbmVycm9yID0gZW1wdHk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZW1wdHk7XG4gIH1cblxuICBpZiAoZnJvbUVycm9yKSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMueGhyLmFib3J0KCk7XG4gICAgfSBjYXRjaCAoZSkge31cbiAgfVxuXG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgZGVsZXRlIFJlcXVlc3QucmVxdWVzdHNbdGhpcy5pbmRleF07XG4gIH1cblxuICB0aGlzLnhociA9IG51bGw7XG59O1xuXG4vKipcbiAqIENhbGxlZCB1cG9uIGxvYWQuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUub25Mb2FkID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZGF0YTtcbiAgdHJ5IHtcbiAgICB2YXIgY29udGVudFR5cGU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnRlbnRUeXBlID0gdGhpcy54aHIuZ2V0UmVzcG9uc2VIZWFkZXIoJ0NvbnRlbnQtVHlwZScpO1xuICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgaWYgKGNvbnRlbnRUeXBlID09PSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyB8fCBjb250ZW50VHlwZSA9PT0gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTsgY2hhcnNldD1VVEYtOCcpIHtcbiAgICAgIGRhdGEgPSB0aGlzLnhoci5yZXNwb25zZSB8fCB0aGlzLnhoci5yZXNwb25zZVRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGEgPSB0aGlzLnhoci5yZXNwb25zZVRleHQ7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgdGhpcy5vbkVycm9yKGUpO1xuICB9XG4gIGlmIChudWxsICE9IGRhdGEpIHtcbiAgICB0aGlzLm9uRGF0YShkYXRhKTtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVjayBpZiBpdCBoYXMgWERvbWFpblJlcXVlc3QuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUmVxdWVzdC5wcm90b3R5cGUuaGFzWERSID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdHlwZW9mIFhEb21haW5SZXF1ZXN0ICE9PSAndW5kZWZpbmVkJyAmJiAhdGhpcy54cyAmJiB0aGlzLmVuYWJsZXNYRFI7XG59O1xuXG4vKipcbiAqIEFib3J0cyB0aGUgcmVxdWVzdC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblJlcXVlc3QucHJvdG90eXBlLmFib3J0ID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmNsZWFudXAoKTtcbn07XG5cbi8qKlxuICogQWJvcnRzIHBlbmRpbmcgcmVxdWVzdHMgd2hlbiB1bmxvYWRpbmcgdGhlIHdpbmRvdy4gVGhpcyBpcyBuZWVkZWQgdG8gcHJldmVudFxuICogbWVtb3J5IGxlYWtzIChlLmcuIHdoZW4gdXNpbmcgSUUpIGFuZCB0byBlbnN1cmUgdGhhdCBubyBzcHVyaW91cyBlcnJvciBpc1xuICogZW1pdHRlZC5cbiAqL1xuXG5SZXF1ZXN0LnJlcXVlc3RzQ291bnQgPSAwO1xuUmVxdWVzdC5yZXF1ZXN0cyA9IHt9O1xuXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICBpZiAodHlwZW9mIGF0dGFjaEV2ZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXR0YWNoRXZlbnQoJ29udW5sb2FkJywgdW5sb2FkSGFuZGxlcik7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGFkZEV2ZW50TGlzdGVuZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgdGVybWluYXRpb25FdmVudCA9ICdvbnBhZ2VoaWRlJyBpbiBzZWxmID8gJ3BhZ2VoaWRlJyA6ICd1bmxvYWQnO1xuICAgIGFkZEV2ZW50TGlzdGVuZXIodGVybWluYXRpb25FdmVudCwgdW5sb2FkSGFuZGxlciwgZmFsc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVubG9hZEhhbmRsZXIgKCkge1xuICBmb3IgKHZhciBpIGluIFJlcXVlc3QucmVxdWVzdHMpIHtcbiAgICBpZiAoUmVxdWVzdC5yZXF1ZXN0cy5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgUmVxdWVzdC5yZXF1ZXN0c1tpXS5hYm9ydCgpO1xuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICovXG5cbnZhciBUcmFuc3BvcnQgPSByZXF1aXJlKCcuLi90cmFuc3BvcnQnKTtcbnZhciBwYXJzZXFzID0gcmVxdWlyZSgncGFyc2VxcycpO1xudmFyIHBhcnNlciA9IHJlcXVpcmUoJ2VuZ2luZS5pby1wYXJzZXInKTtcbnZhciBpbmhlcml0ID0gcmVxdWlyZSgnY29tcG9uZW50LWluaGVyaXQnKTtcbnZhciB5ZWFzdCA9IHJlcXVpcmUoJ3llYXN0Jyk7XG52YXIgZGVidWcgPSByZXF1aXJlKCdkZWJ1ZycpKCdlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmcnKTtcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IFBvbGxpbmc7XG5cbi8qKlxuICogSXMgWEhSMiBzdXBwb3J0ZWQ/XG4gKi9cblxudmFyIGhhc1hIUjIgPSAoZnVuY3Rpb24gKCkge1xuICB2YXIgWE1MSHR0cFJlcXVlc3QgPSByZXF1aXJlKCd4bWxodHRwcmVxdWVzdC1zc2wnKTtcbiAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCh7IHhkb21haW46IGZhbHNlIH0pO1xuICByZXR1cm4gbnVsbCAhPSB4aHIucmVzcG9uc2VUeXBlO1xufSkoKTtcblxuLyoqXG4gKiBQb2xsaW5nIGludGVyZmFjZS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0c1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gUG9sbGluZyAob3B0cykge1xuICB2YXIgZm9yY2VCYXNlNjQgPSAob3B0cyAmJiBvcHRzLmZvcmNlQmFzZTY0KTtcbiAgaWYgKCFoYXNYSFIyIHx8IGZvcmNlQmFzZTY0KSB7XG4gICAgdGhpcy5zdXBwb3J0c0JpbmFyeSA9IGZhbHNlO1xuICB9XG4gIFRyYW5zcG9ydC5jYWxsKHRoaXMsIG9wdHMpO1xufVxuXG4vKipcbiAqIEluaGVyaXRzIGZyb20gVHJhbnNwb3J0LlxuICovXG5cbmluaGVyaXQoUG9sbGluZywgVHJhbnNwb3J0KTtcblxuLyoqXG4gKiBUcmFuc3BvcnQgbmFtZS5cbiAqL1xuXG5Qb2xsaW5nLnByb3RvdHlwZS5uYW1lID0gJ3BvbGxpbmcnO1xuXG4vKipcbiAqIE9wZW5zIHRoZSBzb2NrZXQgKHRyaWdnZXJzIHBvbGxpbmcpLiBXZSB3cml0ZSBhIFBJTkcgbWVzc2FnZSB0byBkZXRlcm1pbmVcbiAqIHdoZW4gdGhlIHRyYW5zcG9ydCBpcyBvcGVuLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblBvbGxpbmcucHJvdG90eXBlLmRvT3BlbiA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5wb2xsKCk7XG59O1xuXG4vKipcbiAqIFBhdXNlcyBwb2xsaW5nLlxuICpcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIHVwb24gYnVmZmVycyBhcmUgZmx1c2hlZCBhbmQgdHJhbnNwb3J0IGlzIHBhdXNlZFxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUG9sbGluZy5wcm90b3R5cGUucGF1c2UgPSBmdW5jdGlvbiAob25QYXVzZSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgdGhpcy5yZWFkeVN0YXRlID0gJ3BhdXNpbmcnO1xuXG4gIGZ1bmN0aW9uIHBhdXNlICgpIHtcbiAgICBkZWJ1ZygncGF1c2VkJyk7XG4gICAgc2VsZi5yZWFkeVN0YXRlID0gJ3BhdXNlZCc7XG4gICAgb25QYXVzZSgpO1xuICB9XG5cbiAgaWYgKHRoaXMucG9sbGluZyB8fCAhdGhpcy53cml0YWJsZSkge1xuICAgIHZhciB0b3RhbCA9IDA7XG5cbiAgICBpZiAodGhpcy5wb2xsaW5nKSB7XG4gICAgICBkZWJ1Zygnd2UgYXJlIGN1cnJlbnRseSBwb2xsaW5nIC0gd2FpdGluZyB0byBwYXVzZScpO1xuICAgICAgdG90YWwrKztcbiAgICAgIHRoaXMub25jZSgncG9sbENvbXBsZXRlJywgZnVuY3Rpb24gKCkge1xuICAgICAgICBkZWJ1ZygncHJlLXBhdXNlIHBvbGxpbmcgY29tcGxldGUnKTtcbiAgICAgICAgLS10b3RhbCB8fCBwYXVzZSgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndyaXRhYmxlKSB7XG4gICAgICBkZWJ1Zygnd2UgYXJlIGN1cnJlbnRseSB3cml0aW5nIC0gd2FpdGluZyB0byBwYXVzZScpO1xuICAgICAgdG90YWwrKztcbiAgICAgIHRoaXMub25jZSgnZHJhaW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGRlYnVnKCdwcmUtcGF1c2Ugd3JpdGluZyBjb21wbGV0ZScpO1xuICAgICAgICAtLXRvdGFsIHx8IHBhdXNlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcGF1c2UoKTtcbiAgfVxufTtcblxuLyoqXG4gKiBTdGFydHMgcG9sbGluZyBjeWNsZS5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblBvbGxpbmcucHJvdG90eXBlLnBvbGwgPSBmdW5jdGlvbiAoKSB7XG4gIGRlYnVnKCdwb2xsaW5nJyk7XG4gIHRoaXMucG9sbGluZyA9IHRydWU7XG4gIHRoaXMuZG9Qb2xsKCk7XG4gIHRoaXMuZW1pdCgncG9sbCcpO1xufTtcblxuLyoqXG4gKiBPdmVybG9hZHMgb25EYXRhIHRvIGRldGVjdCBwYXlsb2Fkcy5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Qb2xsaW5nLnByb3RvdHlwZS5vbkRhdGEgPSBmdW5jdGlvbiAoZGF0YSkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGRlYnVnKCdwb2xsaW5nIGdvdCBkYXRhICVzJywgZGF0YSk7XG4gIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9uIChwYWNrZXQsIGluZGV4LCB0b3RhbCkge1xuICAgIC8vIGlmIGl0cyB0aGUgZmlyc3QgbWVzc2FnZSB3ZSBjb25zaWRlciB0aGUgdHJhbnNwb3J0IG9wZW5cbiAgICBpZiAoJ29wZW5pbmcnID09PSBzZWxmLnJlYWR5U3RhdGUpIHtcbiAgICAgIHNlbGYub25PcGVuKCk7XG4gICAgfVxuXG4gICAgLy8gaWYgaXRzIGEgY2xvc2UgcGFja2V0LCB3ZSBjbG9zZSB0aGUgb25nb2luZyByZXF1ZXN0c1xuICAgIGlmICgnY2xvc2UnID09PSBwYWNrZXQudHlwZSkge1xuICAgICAgc2VsZi5vbkNsb3NlKCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gb3RoZXJ3aXNlIGJ5cGFzcyBvbkRhdGEgYW5kIGhhbmRsZSB0aGUgbWVzc2FnZVxuICAgIHNlbGYub25QYWNrZXQocGFja2V0KTtcbiAgfTtcblxuICAvLyBkZWNvZGUgcGF5bG9hZFxuICBwYXJzZXIuZGVjb2RlUGF5bG9hZChkYXRhLCB0aGlzLnNvY2tldC5iaW5hcnlUeXBlLCBjYWxsYmFjayk7XG5cbiAgLy8gaWYgYW4gZXZlbnQgZGlkIG5vdCB0cmlnZ2VyIGNsb3NpbmdcbiAgaWYgKCdjbG9zZWQnICE9PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICAvLyBpZiB3ZSBnb3QgZGF0YSB3ZSdyZSBub3QgcG9sbGluZ1xuICAgIHRoaXMucG9sbGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZW1pdCgncG9sbENvbXBsZXRlJyk7XG5cbiAgICBpZiAoJ29wZW4nID09PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICAgIHRoaXMucG9sbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWJ1ZygnaWdub3JpbmcgcG9sbCAtIHRyYW5zcG9ydCBzdGF0ZSBcIiVzXCInLCB0aGlzLnJlYWR5U3RhdGUpO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBGb3IgcG9sbGluZywgc2VuZCBhIGNsb3NlIHBhY2tldC5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Qb2xsaW5nLnByb3RvdHlwZS5kb0Nsb3NlID0gZnVuY3Rpb24gKCkge1xuICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgZnVuY3Rpb24gY2xvc2UgKCkge1xuICAgIGRlYnVnKCd3cml0aW5nIGNsb3NlIHBhY2tldCcpO1xuICAgIHNlbGYud3JpdGUoW3sgdHlwZTogJ2Nsb3NlJyB9XSk7XG4gIH1cblxuICBpZiAoJ29wZW4nID09PSB0aGlzLnJlYWR5U3RhdGUpIHtcbiAgICBkZWJ1ZygndHJhbnNwb3J0IG9wZW4gLSBjbG9zaW5nJyk7XG4gICAgY2xvc2UoKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBpbiBjYXNlIHdlJ3JlIHRyeWluZyB0byBjbG9zZSB3aGlsZVxuICAgIC8vIGhhbmRzaGFraW5nIGlzIGluIHByb2dyZXNzIChHSC0xNjQpXG4gICAgZGVidWcoJ3RyYW5zcG9ydCBub3Qgb3BlbiAtIGRlZmVycmluZyBjbG9zZScpO1xuICAgIHRoaXMub25jZSgnb3BlbicsIGNsb3NlKTtcbiAgfVxufTtcblxuLyoqXG4gKiBXcml0ZXMgYSBwYWNrZXRzIHBheWxvYWQuXG4gKlxuICogQHBhcmFtIHtBcnJheX0gZGF0YSBwYWNrZXRzXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBkcmFpbiBjYWxsYmFja1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuUG9sbGluZy5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAocGFja2V0cykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMud3JpdGFibGUgPSBmYWxzZTtcbiAgdmFyIGNhbGxiYWNrZm4gPSBmdW5jdGlvbiAoKSB7XG4gICAgc2VsZi53cml0YWJsZSA9IHRydWU7XG4gICAgc2VsZi5lbWl0KCdkcmFpbicpO1xuICB9O1xuXG4gIHBhcnNlci5lbmNvZGVQYXlsb2FkKHBhY2tldHMsIHRoaXMuc3VwcG9ydHNCaW5hcnksIGZ1bmN0aW9uIChkYXRhKSB7XG4gICAgc2VsZi5kb1dyaXRlKGRhdGEsIGNhbGxiYWNrZm4pO1xuICB9KTtcbn07XG5cbi8qKlxuICogR2VuZXJhdGVzIHVyaSBmb3IgY29ubmVjdGlvbi5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Qb2xsaW5nLnByb3RvdHlwZS51cmkgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBxdWVyeSA9IHRoaXMucXVlcnkgfHwge307XG4gIHZhciBzY2hlbWEgPSB0aGlzLnNlY3VyZSA/ICdodHRwcycgOiAnaHR0cCc7XG4gIHZhciBwb3J0ID0gJyc7XG5cbiAgLy8gY2FjaGUgYnVzdGluZyBpcyBmb3JjZWRcbiAgaWYgKGZhbHNlICE9PSB0aGlzLnRpbWVzdGFtcFJlcXVlc3RzKSB7XG4gICAgcXVlcnlbdGhpcy50aW1lc3RhbXBQYXJhbV0gPSB5ZWFzdCgpO1xuICB9XG5cbiAgaWYgKCF0aGlzLnN1cHBvcnRzQmluYXJ5ICYmICFxdWVyeS5zaWQpIHtcbiAgICBxdWVyeS5iNjQgPSAxO1xuICB9XG5cbiAgcXVlcnkgPSBwYXJzZXFzLmVuY29kZShxdWVyeSk7XG5cbiAgLy8gYXZvaWQgcG9ydCBpZiBkZWZhdWx0IGZvciBzY2hlbWFcbiAgaWYgKHRoaXMucG9ydCAmJiAoKCdodHRwcycgPT09IHNjaGVtYSAmJiBOdW1iZXIodGhpcy5wb3J0KSAhPT0gNDQzKSB8fFxuICAgICAoJ2h0dHAnID09PSBzY2hlbWEgJiYgTnVtYmVyKHRoaXMucG9ydCkgIT09IDgwKSkpIHtcbiAgICBwb3J0ID0gJzonICsgdGhpcy5wb3J0O1xuICB9XG5cbiAgLy8gcHJlcGVuZCA/IHRvIHF1ZXJ5XG4gIGlmIChxdWVyeS5sZW5ndGgpIHtcbiAgICBxdWVyeSA9ICc/JyArIHF1ZXJ5O1xuICB9XG5cbiAgdmFyIGlwdjYgPSB0aGlzLmhvc3RuYW1lLmluZGV4T2YoJzonKSAhPT0gLTE7XG4gIHJldHVybiBzY2hlbWEgKyAnOi8vJyArIChpcHY2ID8gJ1snICsgdGhpcy5ob3N0bmFtZSArICddJyA6IHRoaXMuaG9zdG5hbWUpICsgcG9ydCArIHRoaXMucGF0aCArIHF1ZXJ5O1xufTtcbiIsIi8qKlxuICogTW9kdWxlIGRlcGVuZGVuY2llcy5cbiAqL1xuXG52YXIgVHJhbnNwb3J0ID0gcmVxdWlyZSgnLi4vdHJhbnNwb3J0Jyk7XG52YXIgcGFyc2VyID0gcmVxdWlyZSgnZW5naW5lLmlvLXBhcnNlcicpO1xudmFyIHBhcnNlcXMgPSByZXF1aXJlKCdwYXJzZXFzJyk7XG52YXIgaW5oZXJpdCA9IHJlcXVpcmUoJ2NvbXBvbmVudC1pbmhlcml0Jyk7XG52YXIgeWVhc3QgPSByZXF1aXJlKCd5ZWFzdCcpO1xudmFyIGRlYnVnID0gcmVxdWlyZSgnZGVidWcnKSgnZW5naW5lLmlvLWNsaWVudDp3ZWJzb2NrZXQnKTtcblxudmFyIEJyb3dzZXJXZWJTb2NrZXQsIE5vZGVXZWJTb2NrZXQ7XG5cbmlmICh0eXBlb2YgV2ViU29ja2V0ICE9PSAndW5kZWZpbmVkJykge1xuICBCcm93c2VyV2ViU29ja2V0ID0gV2ViU29ja2V0O1xufSBlbHNlIGlmICh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgQnJvd3NlcldlYlNvY2tldCA9IHNlbGYuV2ViU29ja2V0IHx8IHNlbGYuTW96V2ViU29ja2V0O1xufVxuXG5pZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgdHJ5IHtcbiAgICBOb2RlV2ViU29ja2V0ID0gcmVxdWlyZSgnd3MnKTtcbiAgfSBjYXRjaCAoZSkgeyB9XG59XG5cbi8qKlxuICogR2V0IGVpdGhlciB0aGUgYFdlYlNvY2tldGAgb3IgYE1veldlYlNvY2tldGAgZ2xvYmFsc1xuICogaW4gdGhlIGJyb3dzZXIgb3IgdHJ5IHRvIHJlc29sdmUgV2ViU29ja2V0LWNvbXBhdGlibGVcbiAqIGludGVyZmFjZSBleHBvc2VkIGJ5IGB3c2AgZm9yIE5vZGUtbGlrZSBlbnZpcm9ubWVudC5cbiAqL1xuXG52YXIgV2ViU29ja2V0SW1wbCA9IEJyb3dzZXJXZWJTb2NrZXQgfHwgTm9kZVdlYlNvY2tldDtcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IFdTO1xuXG4vKipcbiAqIFdlYlNvY2tldCB0cmFuc3BvcnQgY29uc3RydWN0b3IuXG4gKlxuICogQGFwaSB7T2JqZWN0fSBjb25uZWN0aW9uIG9wdGlvbnNcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gV1MgKG9wdHMpIHtcbiAgdmFyIGZvcmNlQmFzZTY0ID0gKG9wdHMgJiYgb3B0cy5mb3JjZUJhc2U2NCk7XG4gIGlmIChmb3JjZUJhc2U2NCkge1xuICAgIHRoaXMuc3VwcG9ydHNCaW5hcnkgPSBmYWxzZTtcbiAgfVxuICB0aGlzLnBlck1lc3NhZ2VEZWZsYXRlID0gb3B0cy5wZXJNZXNzYWdlRGVmbGF0ZTtcbiAgdGhpcy51c2luZ0Jyb3dzZXJXZWJTb2NrZXQgPSBCcm93c2VyV2ViU29ja2V0ICYmICFvcHRzLmZvcmNlTm9kZTtcbiAgdGhpcy5wcm90b2NvbHMgPSBvcHRzLnByb3RvY29scztcbiAgaWYgKCF0aGlzLnVzaW5nQnJvd3NlcldlYlNvY2tldCkge1xuICAgIFdlYlNvY2tldEltcGwgPSBOb2RlV2ViU29ja2V0O1xuICB9XG4gIFRyYW5zcG9ydC5jYWxsKHRoaXMsIG9wdHMpO1xufVxuXG4vKipcbiAqIEluaGVyaXRzIGZyb20gVHJhbnNwb3J0LlxuICovXG5cbmluaGVyaXQoV1MsIFRyYW5zcG9ydCk7XG5cbi8qKlxuICogVHJhbnNwb3J0IG5hbWUuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5XUy5wcm90b3R5cGUubmFtZSA9ICd3ZWJzb2NrZXQnO1xuXG4vKlxuICogV2ViU29ja2V0cyBzdXBwb3J0IGJpbmFyeVxuICovXG5cbldTLnByb3RvdHlwZS5zdXBwb3J0c0JpbmFyeSA9IHRydWU7XG5cbi8qKlxuICogT3BlbnMgc29ja2V0LlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbldTLnByb3RvdHlwZS5kb09wZW4gPSBmdW5jdGlvbiAoKSB7XG4gIGlmICghdGhpcy5jaGVjaygpKSB7XG4gICAgLy8gbGV0IHByb2JlIHRpbWVvdXRcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgdXJpID0gdGhpcy51cmkoKTtcbiAgdmFyIHByb3RvY29scyA9IHRoaXMucHJvdG9jb2xzO1xuICB2YXIgb3B0cyA9IHtcbiAgICBhZ2VudDogdGhpcy5hZ2VudCxcbiAgICBwZXJNZXNzYWdlRGVmbGF0ZTogdGhpcy5wZXJNZXNzYWdlRGVmbGF0ZVxuICB9O1xuXG4gIC8vIFNTTCBvcHRpb25zIGZvciBOb2RlLmpzIGNsaWVudFxuICBvcHRzLnBmeCA9IHRoaXMucGZ4O1xuICBvcHRzLmtleSA9IHRoaXMua2V5O1xuICBvcHRzLnBhc3NwaHJhc2UgPSB0aGlzLnBhc3NwaHJhc2U7XG4gIG9wdHMuY2VydCA9IHRoaXMuY2VydDtcbiAgb3B0cy5jYSA9IHRoaXMuY2E7XG4gIG9wdHMuY2lwaGVycyA9IHRoaXMuY2lwaGVycztcbiAgb3B0cy5yZWplY3RVbmF1dGhvcml6ZWQgPSB0aGlzLnJlamVjdFVuYXV0aG9yaXplZDtcbiAgaWYgKHRoaXMuZXh0cmFIZWFkZXJzKSB7XG4gICAgb3B0cy5oZWFkZXJzID0gdGhpcy5leHRyYUhlYWRlcnM7XG4gIH1cbiAgaWYgKHRoaXMubG9jYWxBZGRyZXNzKSB7XG4gICAgb3B0cy5sb2NhbEFkZHJlc3MgPSB0aGlzLmxvY2FsQWRkcmVzcztcbiAgfVxuXG4gIHRyeSB7XG4gICAgdGhpcy53cyA9XG4gICAgICB0aGlzLnVzaW5nQnJvd3NlcldlYlNvY2tldCAmJiAhdGhpcy5pc1JlYWN0TmF0aXZlXG4gICAgICAgID8gcHJvdG9jb2xzXG4gICAgICAgICAgPyBuZXcgV2ViU29ja2V0SW1wbCh1cmksIHByb3RvY29scylcbiAgICAgICAgICA6IG5ldyBXZWJTb2NrZXRJbXBsKHVyaSlcbiAgICAgICAgOiBuZXcgV2ViU29ja2V0SW1wbCh1cmksIHByb3RvY29scywgb3B0cyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKTtcbiAgfVxuXG4gIGlmICh0aGlzLndzLmJpbmFyeVR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc3VwcG9ydHNCaW5hcnkgPSBmYWxzZTtcbiAgfVxuXG4gIGlmICh0aGlzLndzLnN1cHBvcnRzICYmIHRoaXMud3Muc3VwcG9ydHMuYmluYXJ5KSB7XG4gICAgdGhpcy5zdXBwb3J0c0JpbmFyeSA9IHRydWU7XG4gICAgdGhpcy53cy5iaW5hcnlUeXBlID0gJ25vZGVidWZmZXInO1xuICB9IGVsc2Uge1xuICAgIHRoaXMud3MuYmluYXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7XG4gIH1cblxuICB0aGlzLmFkZEV2ZW50TGlzdGVuZXJzKCk7XG59O1xuXG4vKipcbiAqIEFkZHMgZXZlbnQgbGlzdGVuZXJzIHRvIHRoZSBzb2NrZXRcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5XUy5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcnMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBzZWxmID0gdGhpcztcblxuICB0aGlzLndzLm9ub3BlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICBzZWxmLm9uT3BlbigpO1xuICB9O1xuICB0aGlzLndzLm9uY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgc2VsZi5vbkNsb3NlKCk7XG4gIH07XG4gIHRoaXMud3Mub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2KSB7XG4gICAgc2VsZi5vbkRhdGEoZXYuZGF0YSk7XG4gIH07XG4gIHRoaXMud3Mub25lcnJvciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgc2VsZi5vbkVycm9yKCd3ZWJzb2NrZXQgZXJyb3InLCBlKTtcbiAgfTtcbn07XG5cbi8qKlxuICogV3JpdGVzIGRhdGEgdG8gc29ja2V0LlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IG9mIHBhY2tldHMuXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5XUy5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAocGFja2V0cykge1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIHRoaXMud3JpdGFibGUgPSBmYWxzZTtcblxuICAvLyBlbmNvZGVQYWNrZXQgZWZmaWNpZW50IGFzIGl0IHVzZXMgV1MgZnJhbWluZ1xuICAvLyBubyBuZWVkIGZvciBlbmNvZGVQYXlsb2FkXG4gIHZhciB0b3RhbCA9IHBhY2tldHMubGVuZ3RoO1xuICBmb3IgKHZhciBpID0gMCwgbCA9IHRvdGFsOyBpIDwgbDsgaSsrKSB7XG4gICAgKGZ1bmN0aW9uIChwYWNrZXQpIHtcbiAgICAgIHBhcnNlci5lbmNvZGVQYWNrZXQocGFja2V0LCBzZWxmLnN1cHBvcnRzQmluYXJ5LCBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICBpZiAoIXNlbGYudXNpbmdCcm93c2VyV2ViU29ja2V0KSB7XG4gICAgICAgICAgLy8gYWx3YXlzIGNyZWF0ZSBhIG5ldyBvYmplY3QgKEdILTQzNylcbiAgICAgICAgICB2YXIgb3B0cyA9IHt9O1xuICAgICAgICAgIGlmIChwYWNrZXQub3B0aW9ucykge1xuICAgICAgICAgICAgb3B0cy5jb21wcmVzcyA9IHBhY2tldC5vcHRpb25zLmNvbXByZXNzO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzZWxmLnBlck1lc3NhZ2VEZWZsYXRlKSB7XG4gICAgICAgICAgICB2YXIgbGVuID0gJ3N0cmluZycgPT09IHR5cGVvZiBkYXRhID8gQnVmZmVyLmJ5dGVMZW5ndGgoZGF0YSkgOiBkYXRhLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChsZW4gPCBzZWxmLnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZCkge1xuICAgICAgICAgICAgICBvcHRzLmNvbXByZXNzID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gU29tZXRpbWVzIHRoZSB3ZWJzb2NrZXQgaGFzIGFscmVhZHkgYmVlbiBjbG9zZWQgYnV0IHRoZSBicm93c2VyIGRpZG4ndFxuICAgICAgICAvLyBoYXZlIGEgY2hhbmNlIG9mIGluZm9ybWluZyB1cyBhYm91dCBpdCB5ZXQsIGluIHRoYXQgY2FzZSBzZW5kIHdpbGxcbiAgICAgICAgLy8gdGhyb3cgYW4gZXJyb3JcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoc2VsZi51c2luZ0Jyb3dzZXJXZWJTb2NrZXQpIHtcbiAgICAgICAgICAgIC8vIFR5cGVFcnJvciBpcyB0aHJvd24gd2hlbiBwYXNzaW5nIHRoZSBzZWNvbmQgYXJndW1lbnQgb24gU2FmYXJpXG4gICAgICAgICAgICBzZWxmLndzLnNlbmQoZGF0YSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGYud3Muc2VuZChkYXRhLCBvcHRzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBkZWJ1Zygnd2Vic29ja2V0IGNsb3NlZCBiZWZvcmUgb25jbG9zZSBldmVudCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLS10b3RhbCB8fCBkb25lKCk7XG4gICAgICB9KTtcbiAgICB9KShwYWNrZXRzW2ldKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGRvbmUgKCkge1xuICAgIHNlbGYuZW1pdCgnZmx1c2gnKTtcblxuICAgIC8vIGZha2UgZHJhaW5cbiAgICAvLyBkZWZlciB0byBuZXh0IHRpY2sgdG8gYWxsb3cgU29ja2V0IHRvIGNsZWFyIHdyaXRlQnVmZmVyXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICBzZWxmLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgIHNlbGYuZW1pdCgnZHJhaW4nKTtcbiAgICB9LCAwKTtcbiAgfVxufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiBjbG9zZVxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbldTLnByb3RvdHlwZS5vbkNsb3NlID0gZnVuY3Rpb24gKCkge1xuICBUcmFuc3BvcnQucHJvdG90eXBlLm9uQ2xvc2UuY2FsbCh0aGlzKTtcbn07XG5cbi8qKlxuICogQ2xvc2VzIHNvY2tldC5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5XUy5wcm90b3R5cGUuZG9DbG9zZSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHR5cGVvZiB0aGlzLndzICE9PSAndW5kZWZpbmVkJykge1xuICAgIHRoaXMud3MuY2xvc2UoKTtcbiAgfVxufTtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgdXJpIGZvciBjb25uZWN0aW9uLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbldTLnByb3RvdHlwZS51cmkgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBxdWVyeSA9IHRoaXMucXVlcnkgfHwge307XG4gIHZhciBzY2hlbWEgPSB0aGlzLnNlY3VyZSA/ICd3c3MnIDogJ3dzJztcbiAgdmFyIHBvcnQgPSAnJztcblxuICAvLyBhdm9pZCBwb3J0IGlmIGRlZmF1bHQgZm9yIHNjaGVtYVxuICBpZiAodGhpcy5wb3J0ICYmICgoJ3dzcycgPT09IHNjaGVtYSAmJiBOdW1iZXIodGhpcy5wb3J0KSAhPT0gNDQzKSB8fFxuICAgICgnd3MnID09PSBzY2hlbWEgJiYgTnVtYmVyKHRoaXMucG9ydCkgIT09IDgwKSkpIHtcbiAgICBwb3J0ID0gJzonICsgdGhpcy5wb3J0O1xuICB9XG5cbiAgLy8gYXBwZW5kIHRpbWVzdGFtcCB0byBVUklcbiAgaWYgKHRoaXMudGltZXN0YW1wUmVxdWVzdHMpIHtcbiAgICBxdWVyeVt0aGlzLnRpbWVzdGFtcFBhcmFtXSA9IHllYXN0KCk7XG4gIH1cblxuICAvLyBjb21tdW5pY2F0ZSBiaW5hcnkgc3VwcG9ydCBjYXBhYmlsaXRpZXNcbiAgaWYgKCF0aGlzLnN1cHBvcnRzQmluYXJ5KSB7XG4gICAgcXVlcnkuYjY0ID0gMTtcbiAgfVxuXG4gIHF1ZXJ5ID0gcGFyc2Vxcy5lbmNvZGUocXVlcnkpO1xuXG4gIC8vIHByZXBlbmQgPyB0byBxdWVyeVxuICBpZiAocXVlcnkubGVuZ3RoKSB7XG4gICAgcXVlcnkgPSAnPycgKyBxdWVyeTtcbiAgfVxuXG4gIHZhciBpcHY2ID0gdGhpcy5ob3N0bmFtZS5pbmRleE9mKCc6JykgIT09IC0xO1xuICByZXR1cm4gc2NoZW1hICsgJzovLycgKyAoaXB2NiA/ICdbJyArIHRoaXMuaG9zdG5hbWUgKyAnXScgOiB0aGlzLmhvc3RuYW1lKSArIHBvcnQgKyB0aGlzLnBhdGggKyBxdWVyeTtcbn07XG5cbi8qKlxuICogRmVhdHVyZSBkZXRlY3Rpb24gZm9yIFdlYlNvY2tldC5cbiAqXG4gKiBAcmV0dXJuIHtCb29sZWFufSB3aGV0aGVyIHRoaXMgdHJhbnNwb3J0IGlzIGF2YWlsYWJsZS5cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuV1MucHJvdG90eXBlLmNoZWNrID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gISFXZWJTb2NrZXRJbXBsICYmICEoJ19faW5pdGlhbGl6ZScgaW4gV2ViU29ja2V0SW1wbCAmJiB0aGlzLm5hbWUgPT09IFdTLnByb3RvdHlwZS5uYW1lKTtcbn07XG4iLCIvLyBicm93c2VyIHNoaW0gZm9yIHhtbGh0dHByZXF1ZXN0IG1vZHVsZVxuXG52YXIgaGFzQ09SUyA9IHJlcXVpcmUoJ2hhcy1jb3JzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdHMpIHtcbiAgdmFyIHhkb21haW4gPSBvcHRzLnhkb21haW47XG5cbiAgLy8gc2NoZW1lIG11c3QgYmUgc2FtZSB3aGVuIHVzaWduIFhEb21haW5SZXF1ZXN0XG4gIC8vIGh0dHA6Ly9ibG9ncy5tc2RuLmNvbS9iL2llaW50ZXJuYWxzL2FyY2hpdmUvMjAxMC8wNS8xMy94ZG9tYWlucmVxdWVzdC1yZXN0cmljdGlvbnMtbGltaXRhdGlvbnMtYW5kLXdvcmthcm91bmRzLmFzcHhcbiAgdmFyIHhzY2hlbWUgPSBvcHRzLnhzY2hlbWU7XG5cbiAgLy8gWERvbWFpblJlcXVlc3QgaGFzIGEgZmxvdyBvZiBub3Qgc2VuZGluZyBjb29raWUsIHRoZXJlZm9yZSBpdCBzaG91bGQgYmUgZGlzYWJsZWQgYXMgYSBkZWZhdWx0LlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vQXV0b21hdHRpYy9lbmdpbmUuaW8tY2xpZW50L3B1bGwvMjE3XG4gIHZhciBlbmFibGVzWERSID0gb3B0cy5lbmFibGVzWERSO1xuXG4gIC8vIFhNTEh0dHBSZXF1ZXN0IGNhbiBiZSBkaXNhYmxlZCBvbiBJRVxuICB0cnkge1xuICAgIGlmICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICYmICgheGRvbWFpbiB8fCBoYXNDT1JTKSkge1xuICAgICAgcmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkgeyB9XG5cbiAgLy8gVXNlIFhEb21haW5SZXF1ZXN0IGZvciBJRTggaWYgZW5hYmxlc1hEUiBpcyB0cnVlXG4gIC8vIGJlY2F1c2UgbG9hZGluZyBiYXIga2VlcHMgZmxhc2hpbmcgd2hlbiB1c2luZyBqc29ucC1wb2xsaW5nXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS95dWppb3Nha2Evc29ja2UuaW8taWU4LWxvYWRpbmctZXhhbXBsZVxuICB0cnkge1xuICAgIGlmICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mIFhEb21haW5SZXF1ZXN0ICYmICF4c2NoZW1lICYmIGVuYWJsZXNYRFIpIHtcbiAgICAgIHJldHVybiBuZXcgWERvbWFpblJlcXVlc3QoKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHsgfVxuXG4gIGlmICgheGRvbWFpbikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbmV3IHNlbGZbWydBY3RpdmUnXS5jb25jYXQoJ09iamVjdCcpLmpvaW4oJ1gnKV0oJ01pY3Jvc29mdC5YTUxIVFRQJyk7XG4gICAgfSBjYXRjaCAoZSkgeyB9XG4gIH1cbn07XG4iLCIvKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIGtleXMgPSByZXF1aXJlKCcuL2tleXMnKTtcbnZhciBoYXNCaW5hcnkgPSByZXF1aXJlKCdoYXMtYmluYXJ5MicpO1xudmFyIHNsaWNlQnVmZmVyID0gcmVxdWlyZSgnYXJyYXlidWZmZXIuc2xpY2UnKTtcbnZhciBhZnRlciA9IHJlcXVpcmUoJ2FmdGVyJyk7XG52YXIgdXRmOCA9IHJlcXVpcmUoJy4vdXRmOCcpO1xuXG52YXIgYmFzZTY0ZW5jb2RlcjtcbmlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gIGJhc2U2NGVuY29kZXIgPSByZXF1aXJlKCdiYXNlNjQtYXJyYXlidWZmZXInKTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB3ZSBhcmUgcnVubmluZyBhbiBhbmRyb2lkIGJyb3dzZXIuIFRoYXQgcmVxdWlyZXMgdXMgdG8gdXNlXG4gKiBBcnJheUJ1ZmZlciB3aXRoIHBvbGxpbmcgdHJhbnNwb3J0cy4uLlxuICpcbiAqIGh0dHA6Ly9naGluZGEubmV0L2pwZWctYmxvYi1hamF4LWFuZHJvaWQvXG4gKi9cblxudmFyIGlzQW5kcm9pZCA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIC9BbmRyb2lkL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLyoqXG4gKiBDaGVjayBpZiB3ZSBhcmUgcnVubmluZyBpbiBQaGFudG9tSlMuXG4gKiBVcGxvYWRpbmcgYSBCbG9iIHdpdGggUGhhbnRvbUpTIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5LCBhcyByZXBvcnRlZCBoZXJlOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2FyaXlhL3BoYW50b21qcy9pc3N1ZXMvMTEzOTVcbiAqIEB0eXBlIGJvb2xlYW5cbiAqL1xudmFyIGlzUGhhbnRvbUpTID0gdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgL1BoYW50b21KUy9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8qKlxuICogV2hlbiB0cnVlLCBhdm9pZHMgdXNpbmcgQmxvYnMgdG8gZW5jb2RlIHBheWxvYWRzLlxuICogQHR5cGUgYm9vbGVhblxuICovXG52YXIgZG9udFNlbmRCbG9icyA9IGlzQW5kcm9pZCB8fCBpc1BoYW50b21KUztcblxuLyoqXG4gKiBDdXJyZW50IHByb3RvY29sIHZlcnNpb24uXG4gKi9cblxuZXhwb3J0cy5wcm90b2NvbCA9IDM7XG5cbi8qKlxuICogUGFja2V0IHR5cGVzLlxuICovXG5cbnZhciBwYWNrZXRzID0gZXhwb3J0cy5wYWNrZXRzID0ge1xuICAgIG9wZW46ICAgICAwICAgIC8vIG5vbi13c1xuICAsIGNsb3NlOiAgICAxICAgIC8vIG5vbi13c1xuICAsIHBpbmc6ICAgICAyXG4gICwgcG9uZzogICAgIDNcbiAgLCBtZXNzYWdlOiAgNFxuICAsIHVwZ3JhZGU6ICA1XG4gICwgbm9vcDogICAgIDZcbn07XG5cbnZhciBwYWNrZXRzbGlzdCA9IGtleXMocGFja2V0cyk7XG5cbi8qKlxuICogUHJlbWFkZSBlcnJvciBwYWNrZXQuXG4gKi9cblxudmFyIGVyciA9IHsgdHlwZTogJ2Vycm9yJywgZGF0YTogJ3BhcnNlciBlcnJvcicgfTtcblxuLyoqXG4gKiBDcmVhdGUgYSBibG9iIGFwaSBldmVuIGZvciBibG9iIGJ1aWxkZXIgd2hlbiB2ZW5kb3IgcHJlZml4ZXMgZXhpc3RcbiAqL1xuXG52YXIgQmxvYiA9IHJlcXVpcmUoJ2Jsb2InKTtcblxuLyoqXG4gKiBFbmNvZGVzIGEgcGFja2V0LlxuICpcbiAqICAgICA8cGFja2V0IHR5cGUgaWQ+IFsgPGRhdGE+IF1cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqICAgICA1aGVsbG8gd29ybGRcbiAqICAgICAzXG4gKiAgICAgNFxuICpcbiAqIEJpbmFyeSBpcyBlbmNvZGVkIGluIGFuIGlkZW50aWNhbCBwcmluY2lwbGVcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLmVuY29kZVBhY2tldCA9IGZ1bmN0aW9uIChwYWNrZXQsIHN1cHBvcnRzQmluYXJ5LCB1dGY4ZW5jb2RlLCBjYWxsYmFjaykge1xuICBpZiAodHlwZW9mIHN1cHBvcnRzQmluYXJ5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2FsbGJhY2sgPSBzdXBwb3J0c0JpbmFyeTtcbiAgICBzdXBwb3J0c0JpbmFyeSA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB1dGY4ZW5jb2RlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2FsbGJhY2sgPSB1dGY4ZW5jb2RlO1xuICAgIHV0ZjhlbmNvZGUgPSBudWxsO1xuICB9XG5cbiAgdmFyIGRhdGEgPSAocGFja2V0LmRhdGEgPT09IHVuZGVmaW5lZClcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogcGFja2V0LmRhdGEuYnVmZmVyIHx8IHBhY2tldC5kYXRhO1xuXG4gIGlmICh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmIGRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgIHJldHVybiBlbmNvZGVBcnJheUJ1ZmZlcihwYWNrZXQsIHN1cHBvcnRzQmluYXJ5LCBjYWxsYmFjayk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIEJsb2IgIT09ICd1bmRlZmluZWQnICYmIGRhdGEgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgcmV0dXJuIGVuY29kZUJsb2IocGFja2V0LCBzdXBwb3J0c0JpbmFyeSwgY2FsbGJhY2spO1xuICB9XG5cbiAgLy8gbWlnaHQgYmUgYW4gb2JqZWN0IHdpdGggeyBiYXNlNjQ6IHRydWUsIGRhdGE6IGRhdGFBc0Jhc2U2NFN0cmluZyB9XG4gIGlmIChkYXRhICYmIGRhdGEuYmFzZTY0KSB7XG4gICAgcmV0dXJuIGVuY29kZUJhc2U2NE9iamVjdChwYWNrZXQsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIFNlbmRpbmcgZGF0YSBhcyBhIHV0Zi04IHN0cmluZ1xuICB2YXIgZW5jb2RlZCA9IHBhY2tldHNbcGFja2V0LnR5cGVdO1xuXG4gIC8vIGRhdGEgZnJhZ21lbnQgaXMgb3B0aW9uYWxcbiAgaWYgKHVuZGVmaW5lZCAhPT0gcGFja2V0LmRhdGEpIHtcbiAgICBlbmNvZGVkICs9IHV0ZjhlbmNvZGUgPyB1dGY4LmVuY29kZShTdHJpbmcocGFja2V0LmRhdGEpLCB7IHN0cmljdDogZmFsc2UgfSkgOiBTdHJpbmcocGFja2V0LmRhdGEpO1xuICB9XG5cbiAgcmV0dXJuIGNhbGxiYWNrKCcnICsgZW5jb2RlZCk7XG5cbn07XG5cbmZ1bmN0aW9uIGVuY29kZUJhc2U2NE9iamVjdChwYWNrZXQsIGNhbGxiYWNrKSB7XG4gIC8vIHBhY2tldCBkYXRhIGlzIGFuIG9iamVjdCB7IGJhc2U2NDogdHJ1ZSwgZGF0YTogZGF0YUFzQmFzZTY0U3RyaW5nIH1cbiAgdmFyIG1lc3NhZ2UgPSAnYicgKyBleHBvcnRzLnBhY2tldHNbcGFja2V0LnR5cGVdICsgcGFja2V0LmRhdGEuZGF0YTtcbiAgcmV0dXJuIGNhbGxiYWNrKG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIEVuY29kZSBwYWNrZXQgaGVscGVycyBmb3IgYmluYXJ5IHR5cGVzXG4gKi9cblxuZnVuY3Rpb24gZW5jb2RlQXJyYXlCdWZmZXIocGFja2V0LCBzdXBwb3J0c0JpbmFyeSwgY2FsbGJhY2spIHtcbiAgaWYgKCFzdXBwb3J0c0JpbmFyeSkge1xuICAgIHJldHVybiBleHBvcnRzLmVuY29kZUJhc2U2NFBhY2tldChwYWNrZXQsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHZhciBkYXRhID0gcGFja2V0LmRhdGE7XG4gIHZhciBjb250ZW50QXJyYXkgPSBuZXcgVWludDhBcnJheShkYXRhKTtcbiAgdmFyIHJlc3VsdEJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KDEgKyBkYXRhLmJ5dGVMZW5ndGgpO1xuXG4gIHJlc3VsdEJ1ZmZlclswXSA9IHBhY2tldHNbcGFja2V0LnR5cGVdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRlbnRBcnJheS5sZW5ndGg7IGkrKykge1xuICAgIHJlc3VsdEJ1ZmZlcltpKzFdID0gY29udGVudEFycmF5W2ldO1xuICB9XG5cbiAgcmV0dXJuIGNhbGxiYWNrKHJlc3VsdEJ1ZmZlci5idWZmZXIpO1xufVxuXG5mdW5jdGlvbiBlbmNvZGVCbG9iQXNBcnJheUJ1ZmZlcihwYWNrZXQsIHN1cHBvcnRzQmluYXJ5LCBjYWxsYmFjaykge1xuICBpZiAoIXN1cHBvcnRzQmluYXJ5KSB7XG4gICAgcmV0dXJuIGV4cG9ydHMuZW5jb2RlQmFzZTY0UGFja2V0KHBhY2tldCwgY2FsbGJhY2spO1xuICB9XG5cbiAgdmFyIGZyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgZnIub25sb2FkID0gZnVuY3Rpb24oKSB7XG4gICAgZXhwb3J0cy5lbmNvZGVQYWNrZXQoeyB0eXBlOiBwYWNrZXQudHlwZSwgZGF0YTogZnIucmVzdWx0IH0sIHN1cHBvcnRzQmluYXJ5LCB0cnVlLCBjYWxsYmFjayk7XG4gIH07XG4gIHJldHVybiBmci5yZWFkQXNBcnJheUJ1ZmZlcihwYWNrZXQuZGF0YSk7XG59XG5cbmZ1bmN0aW9uIGVuY29kZUJsb2IocGFja2V0LCBzdXBwb3J0c0JpbmFyeSwgY2FsbGJhY2spIHtcbiAgaWYgKCFzdXBwb3J0c0JpbmFyeSkge1xuICAgIHJldHVybiBleHBvcnRzLmVuY29kZUJhc2U2NFBhY2tldChwYWNrZXQsIGNhbGxiYWNrKTtcbiAgfVxuXG4gIGlmIChkb250U2VuZEJsb2JzKSB7XG4gICAgcmV0dXJuIGVuY29kZUJsb2JBc0FycmF5QnVmZmVyKHBhY2tldCwgc3VwcG9ydHNCaW5hcnksIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHZhciBsZW5ndGggPSBuZXcgVWludDhBcnJheSgxKTtcbiAgbGVuZ3RoWzBdID0gcGFja2V0c1twYWNrZXQudHlwZV07XG4gIHZhciBibG9iID0gbmV3IEJsb2IoW2xlbmd0aC5idWZmZXIsIHBhY2tldC5kYXRhXSk7XG5cbiAgcmV0dXJuIGNhbGxiYWNrKGJsb2IpO1xufVxuXG4vKipcbiAqIEVuY29kZXMgYSBwYWNrZXQgd2l0aCBiaW5hcnkgZGF0YSBpbiBhIGJhc2U2NCBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0LCBoYXMgYHR5cGVgIGFuZCBgZGF0YWBcbiAqIEByZXR1cm4ge1N0cmluZ30gYmFzZTY0IGVuY29kZWQgbWVzc2FnZVxuICovXG5cbmV4cG9ydHMuZW5jb2RlQmFzZTY0UGFja2V0ID0gZnVuY3Rpb24ocGFja2V0LCBjYWxsYmFjaykge1xuICB2YXIgbWVzc2FnZSA9ICdiJyArIGV4cG9ydHMucGFja2V0c1twYWNrZXQudHlwZV07XG4gIGlmICh0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgJiYgcGFja2V0LmRhdGEgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgdmFyIGZyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICBmci5vbmxvYWQgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBiNjQgPSBmci5yZXN1bHQuc3BsaXQoJywnKVsxXTtcbiAgICAgIGNhbGxiYWNrKG1lc3NhZ2UgKyBiNjQpO1xuICAgIH07XG4gICAgcmV0dXJuIGZyLnJlYWRBc0RhdGFVUkwocGFja2V0LmRhdGEpO1xuICB9XG5cbiAgdmFyIGI2NGRhdGE7XG4gIHRyeSB7XG4gICAgYjY0ZGF0YSA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgbmV3IFVpbnQ4QXJyYXkocGFja2V0LmRhdGEpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIGlQaG9uZSBTYWZhcmkgZG9lc24ndCBsZXQgeW91IGFwcGx5IHdpdGggdHlwZWQgYXJyYXlzXG4gICAgdmFyIHR5cGVkID0gbmV3IFVpbnQ4QXJyYXkocGFja2V0LmRhdGEpO1xuICAgIHZhciBiYXNpYyA9IG5ldyBBcnJheSh0eXBlZC5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGJhc2ljW2ldID0gdHlwZWRbaV07XG4gICAgfVxuICAgIGI2NGRhdGEgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGJhc2ljKTtcbiAgfVxuICBtZXNzYWdlICs9IGJ0b2EoYjY0ZGF0YSk7XG4gIHJldHVybiBjYWxsYmFjayhtZXNzYWdlKTtcbn07XG5cbi8qKlxuICogRGVjb2RlcyBhIHBhY2tldC4gQ2hhbmdlcyBmb3JtYXQgdG8gQmxvYiBpZiByZXF1ZXN0ZWQuXG4gKlxuICogQHJldHVybiB7T2JqZWN0fSB3aXRoIGB0eXBlYCBhbmQgYGRhdGFgIChpZiBhbnkpXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLmRlY29kZVBhY2tldCA9IGZ1bmN0aW9uIChkYXRhLCBiaW5hcnlUeXBlLCB1dGY4ZGVjb2RlKSB7XG4gIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZXJyO1xuICB9XG4gIC8vIFN0cmluZyBkYXRhXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoZGF0YS5jaGFyQXQoMCkgPT09ICdiJykge1xuICAgICAgcmV0dXJuIGV4cG9ydHMuZGVjb2RlQmFzZTY0UGFja2V0KGRhdGEuc3Vic3RyKDEpLCBiaW5hcnlUeXBlKTtcbiAgICB9XG5cbiAgICBpZiAodXRmOGRlY29kZSkge1xuICAgICAgZGF0YSA9IHRyeURlY29kZShkYXRhKTtcbiAgICAgIGlmIChkYXRhID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gZXJyO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgdHlwZSA9IGRhdGEuY2hhckF0KDApO1xuXG4gICAgaWYgKE51bWJlcih0eXBlKSAhPSB0eXBlIHx8ICFwYWNrZXRzbGlzdFt0eXBlXSkge1xuICAgICAgcmV0dXJuIGVycjtcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiBwYWNrZXRzbGlzdFt0eXBlXSwgZGF0YTogZGF0YS5zdWJzdHJpbmcoMSkgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgdHlwZTogcGFja2V0c2xpc3RbdHlwZV0gfTtcbiAgICB9XG4gIH1cblxuICB2YXIgYXNBcnJheSA9IG5ldyBVaW50OEFycmF5KGRhdGEpO1xuICB2YXIgdHlwZSA9IGFzQXJyYXlbMF07XG4gIHZhciByZXN0ID0gc2xpY2VCdWZmZXIoZGF0YSwgMSk7XG4gIGlmIChCbG9iICYmIGJpbmFyeVR5cGUgPT09ICdibG9iJykge1xuICAgIHJlc3QgPSBuZXcgQmxvYihbcmVzdF0pO1xuICB9XG4gIHJldHVybiB7IHR5cGU6IHBhY2tldHNsaXN0W3R5cGVdLCBkYXRhOiByZXN0IH07XG59O1xuXG5mdW5jdGlvbiB0cnlEZWNvZGUoZGF0YSkge1xuICB0cnkge1xuICAgIGRhdGEgPSB1dGY4LmRlY29kZShkYXRhLCB7IHN0cmljdDogZmFsc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8qKlxuICogRGVjb2RlcyBhIHBhY2tldCBlbmNvZGVkIGluIGEgYmFzZTY0IHN0cmluZ1xuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBiYXNlNjQgZW5jb2RlZCBtZXNzYWdlXG4gKiBAcmV0dXJuIHtPYmplY3R9IHdpdGggYHR5cGVgIGFuZCBgZGF0YWAgKGlmIGFueSlcbiAqL1xuXG5leHBvcnRzLmRlY29kZUJhc2U2NFBhY2tldCA9IGZ1bmN0aW9uKG1zZywgYmluYXJ5VHlwZSkge1xuICB2YXIgdHlwZSA9IHBhY2tldHNsaXN0W21zZy5jaGFyQXQoMCldO1xuICBpZiAoIWJhc2U2NGVuY29kZXIpIHtcbiAgICByZXR1cm4geyB0eXBlOiB0eXBlLCBkYXRhOiB7IGJhc2U2NDogdHJ1ZSwgZGF0YTogbXNnLnN1YnN0cigxKSB9IH07XG4gIH1cblxuICB2YXIgZGF0YSA9IGJhc2U2NGVuY29kZXIuZGVjb2RlKG1zZy5zdWJzdHIoMSkpO1xuXG4gIGlmIChiaW5hcnlUeXBlID09PSAnYmxvYicgJiYgQmxvYikge1xuICAgIGRhdGEgPSBuZXcgQmxvYihbZGF0YV0pO1xuICB9XG5cbiAgcmV0dXJuIHsgdHlwZTogdHlwZSwgZGF0YTogZGF0YSB9O1xufTtcblxuLyoqXG4gKiBFbmNvZGVzIG11bHRpcGxlIG1lc3NhZ2VzIChwYXlsb2FkKS5cbiAqXG4gKiAgICAgPGxlbmd0aD46ZGF0YVxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogICAgIDExOmhlbGxvIHdvcmxkMjpoaVxuICpcbiAqIElmIGFueSBjb250ZW50cyBhcmUgYmluYXJ5LCB0aGV5IHdpbGwgYmUgZW5jb2RlZCBhcyBiYXNlNjQgc3RyaW5ncy4gQmFzZTY0XG4gKiBlbmNvZGVkIHN0cmluZ3MgYXJlIG1hcmtlZCB3aXRoIGEgYiBiZWZvcmUgdGhlIGxlbmd0aCBzcGVjaWZpZXJcbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBwYWNrZXRzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLmVuY29kZVBheWxvYWQgPSBmdW5jdGlvbiAocGFja2V0cywgc3VwcG9ydHNCaW5hcnksIGNhbGxiYWNrKSB7XG4gIGlmICh0eXBlb2Ygc3VwcG9ydHNCaW5hcnkgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYWxsYmFjayA9IHN1cHBvcnRzQmluYXJ5O1xuICAgIHN1cHBvcnRzQmluYXJ5ID0gbnVsbDtcbiAgfVxuXG4gIHZhciBpc0JpbmFyeSA9IGhhc0JpbmFyeShwYWNrZXRzKTtcblxuICBpZiAoc3VwcG9ydHNCaW5hcnkgJiYgaXNCaW5hcnkpIHtcbiAgICBpZiAoQmxvYiAmJiAhZG9udFNlbmRCbG9icykge1xuICAgICAgcmV0dXJuIGV4cG9ydHMuZW5jb2RlUGF5bG9hZEFzQmxvYihwYWNrZXRzLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4cG9ydHMuZW5jb2RlUGF5bG9hZEFzQXJyYXlCdWZmZXIocGFja2V0cywgY2FsbGJhY2spO1xuICB9XG5cbiAgaWYgKCFwYWNrZXRzLmxlbmd0aCkge1xuICAgIHJldHVybiBjYWxsYmFjaygnMDonKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNldExlbmd0aEhlYWRlcihtZXNzYWdlKSB7XG4gICAgcmV0dXJuIG1lc3NhZ2UubGVuZ3RoICsgJzonICsgbWVzc2FnZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGVuY29kZU9uZShwYWNrZXQsIGRvbmVDYWxsYmFjaykge1xuICAgIGV4cG9ydHMuZW5jb2RlUGFja2V0KHBhY2tldCwgIWlzQmluYXJ5ID8gZmFsc2UgOiBzdXBwb3J0c0JpbmFyeSwgZmFsc2UsIGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICAgIGRvbmVDYWxsYmFjayhudWxsLCBzZXRMZW5ndGhIZWFkZXIobWVzc2FnZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgbWFwKHBhY2tldHMsIGVuY29kZU9uZSwgZnVuY3Rpb24oZXJyLCByZXN1bHRzKSB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKHJlc3VsdHMuam9pbignJykpO1xuICB9KTtcbn07XG5cbi8qKlxuICogQXN5bmMgYXJyYXkgbWFwIHVzaW5nIGFmdGVyXG4gKi9cblxuZnVuY3Rpb24gbWFwKGFyeSwgZWFjaCwgZG9uZSkge1xuICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5KGFyeS5sZW5ndGgpO1xuICB2YXIgbmV4dCA9IGFmdGVyKGFyeS5sZW5ndGgsIGRvbmUpO1xuXG4gIHZhciBlYWNoV2l0aEluZGV4ID0gZnVuY3Rpb24oaSwgZWwsIGNiKSB7XG4gICAgZWFjaChlbCwgZnVuY3Rpb24oZXJyb3IsIG1zZykge1xuICAgICAgcmVzdWx0W2ldID0gbXNnO1xuICAgICAgY2IoZXJyb3IsIHJlc3VsdCk7XG4gICAgfSk7XG4gIH07XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnkubGVuZ3RoOyBpKyspIHtcbiAgICBlYWNoV2l0aEluZGV4KGksIGFyeVtpXSwgbmV4dCk7XG4gIH1cbn1cblxuLypcbiAqIERlY29kZXMgZGF0YSB3aGVuIGEgcGF5bG9hZCBpcyBtYXliZSBleHBlY3RlZC4gUG9zc2libGUgYmluYXJ5IGNvbnRlbnRzIGFyZVxuICogZGVjb2RlZCBmcm9tIHRoZWlyIGJhc2U2NCByZXByZXNlbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBkYXRhLCBjYWxsYmFjayBtZXRob2RcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZXhwb3J0cy5kZWNvZGVQYXlsb2FkID0gZnVuY3Rpb24gKGRhdGEsIGJpbmFyeVR5cGUsIGNhbGxiYWNrKSB7XG4gIGlmICh0eXBlb2YgZGF0YSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXhwb3J0cy5kZWNvZGVQYXlsb2FkQXNCaW5hcnkoZGF0YSwgYmluYXJ5VHlwZSwgY2FsbGJhY2spO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBiaW5hcnlUeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY2FsbGJhY2sgPSBiaW5hcnlUeXBlO1xuICAgIGJpbmFyeVR5cGUgPSBudWxsO1xuICB9XG5cbiAgdmFyIHBhY2tldDtcbiAgaWYgKGRhdGEgPT09ICcnKSB7XG4gICAgLy8gcGFyc2VyIGVycm9yIC0gaWdub3JpbmcgcGF5bG9hZFxuICAgIHJldHVybiBjYWxsYmFjayhlcnIsIDAsIDEpO1xuICB9XG5cbiAgdmFyIGxlbmd0aCA9ICcnLCBuLCBtc2c7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBkYXRhLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHZhciBjaHIgPSBkYXRhLmNoYXJBdChpKTtcblxuICAgIGlmIChjaHIgIT09ICc6Jykge1xuICAgICAgbGVuZ3RoICs9IGNocjtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGlmIChsZW5ndGggPT09ICcnIHx8IChsZW5ndGggIT0gKG4gPSBOdW1iZXIobGVuZ3RoKSkpKSB7XG4gICAgICAvLyBwYXJzZXIgZXJyb3IgLSBpZ25vcmluZyBwYXlsb2FkXG4gICAgICByZXR1cm4gY2FsbGJhY2soZXJyLCAwLCAxKTtcbiAgICB9XG5cbiAgICBtc2cgPSBkYXRhLnN1YnN0cihpICsgMSwgbik7XG5cbiAgICBpZiAobGVuZ3RoICE9IG1zZy5sZW5ndGgpIHtcbiAgICAgIC8vIHBhcnNlciBlcnJvciAtIGlnbm9yaW5nIHBheWxvYWRcbiAgICAgIHJldHVybiBjYWxsYmFjayhlcnIsIDAsIDEpO1xuICAgIH1cblxuICAgIGlmIChtc2cubGVuZ3RoKSB7XG4gICAgICBwYWNrZXQgPSBleHBvcnRzLmRlY29kZVBhY2tldChtc2csIGJpbmFyeVR5cGUsIGZhbHNlKTtcblxuICAgICAgaWYgKGVyci50eXBlID09PSBwYWNrZXQudHlwZSAmJiBlcnIuZGF0YSA9PT0gcGFja2V0LmRhdGEpIHtcbiAgICAgICAgLy8gcGFyc2VyIGVycm9yIGluIGluZGl2aWR1YWwgcGFja2V0IC0gaWdub3JpbmcgcGF5bG9hZFxuICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyLCAwLCAxKTtcbiAgICAgIH1cblxuICAgICAgdmFyIHJldCA9IGNhbGxiYWNrKHBhY2tldCwgaSArIG4sIGwpO1xuICAgICAgaWYgKGZhbHNlID09PSByZXQpIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBhZHZhbmNlIGN1cnNvclxuICAgIGkgKz0gbjtcbiAgICBsZW5ndGggPSAnJztcbiAgfVxuXG4gIGlmIChsZW5ndGggIT09ICcnKSB7XG4gICAgLy8gcGFyc2VyIGVycm9yIC0gaWdub3JpbmcgcGF5bG9hZFxuICAgIHJldHVybiBjYWxsYmFjayhlcnIsIDAsIDEpO1xuICB9XG5cbn07XG5cbi8qKlxuICogRW5jb2RlcyBtdWx0aXBsZSBtZXNzYWdlcyAocGF5bG9hZCkgYXMgYmluYXJ5LlxuICpcbiAqIDwxID0gYmluYXJ5LCAwID0gc3RyaW5nPjxudW1iZXIgZnJvbSAwLTk+PG51bWJlciBmcm9tIDAtOT5bLi4uXTxudW1iZXJcbiAqIDI1NT48ZGF0YT5cbiAqXG4gKiBFeGFtcGxlOlxuICogMSAzIDI1NSAxIDIgMywgaWYgdGhlIGJpbmFyeSBjb250ZW50cyBhcmUgaW50ZXJwcmV0ZWQgYXMgOCBiaXQgaW50ZWdlcnNcbiAqXG4gKiBAcGFyYW0ge0FycmF5fSBwYWNrZXRzXG4gKiBAcmV0dXJuIHtBcnJheUJ1ZmZlcn0gZW5jb2RlZCBwYXlsb2FkXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5leHBvcnRzLmVuY29kZVBheWxvYWRBc0FycmF5QnVmZmVyID0gZnVuY3Rpb24ocGFja2V0cywgY2FsbGJhY2spIHtcbiAgaWYgKCFwYWNrZXRzLmxlbmd0aCkge1xuICAgIHJldHVybiBjYWxsYmFjayhuZXcgQXJyYXlCdWZmZXIoMCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gZW5jb2RlT25lKHBhY2tldCwgZG9uZUNhbGxiYWNrKSB7XG4gICAgZXhwb3J0cy5lbmNvZGVQYWNrZXQocGFja2V0LCB0cnVlLCB0cnVlLCBmdW5jdGlvbihkYXRhKSB7XG4gICAgICByZXR1cm4gZG9uZUNhbGxiYWNrKG51bGwsIGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgbWFwKHBhY2tldHMsIGVuY29kZU9uZSwgZnVuY3Rpb24oZXJyLCBlbmNvZGVkUGFja2V0cykge1xuICAgIHZhciB0b3RhbExlbmd0aCA9IGVuY29kZWRQYWNrZXRzLnJlZHVjZShmdW5jdGlvbihhY2MsIHApIHtcbiAgICAgIHZhciBsZW47XG4gICAgICBpZiAodHlwZW9mIHAgPT09ICdzdHJpbmcnKXtcbiAgICAgICAgbGVuID0gcC5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZW4gPSBwLmJ5dGVMZW5ndGg7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjICsgbGVuLnRvU3RyaW5nKCkubGVuZ3RoICsgbGVuICsgMjsgLy8gc3RyaW5nL2JpbmFyeSBpZGVudGlmaWVyICsgc2VwYXJhdG9yID0gMlxuICAgIH0sIDApO1xuXG4gICAgdmFyIHJlc3VsdEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkodG90YWxMZW5ndGgpO1xuXG4gICAgdmFyIGJ1ZmZlckluZGV4ID0gMDtcbiAgICBlbmNvZGVkUGFja2V0cy5mb3JFYWNoKGZ1bmN0aW9uKHApIHtcbiAgICAgIHZhciBpc1N0cmluZyA9IHR5cGVvZiBwID09PSAnc3RyaW5nJztcbiAgICAgIHZhciBhYiA9IHA7XG4gICAgICBpZiAoaXNTdHJpbmcpIHtcbiAgICAgICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShwLmxlbmd0aCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZpZXdbaV0gPSBwLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIH1cbiAgICAgICAgYWIgPSB2aWV3LmJ1ZmZlcjtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzU3RyaW5nKSB7IC8vIG5vdCB0cnVlIGJpbmFyeVxuICAgICAgICByZXN1bHRBcnJheVtidWZmZXJJbmRleCsrXSA9IDA7XG4gICAgICB9IGVsc2UgeyAvLyB0cnVlIGJpbmFyeVxuICAgICAgICByZXN1bHRBcnJheVtidWZmZXJJbmRleCsrXSA9IDE7XG4gICAgICB9XG5cbiAgICAgIHZhciBsZW5TdHIgPSBhYi5ieXRlTGVuZ3RoLnRvU3RyaW5nKCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlblN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICByZXN1bHRBcnJheVtidWZmZXJJbmRleCsrXSA9IHBhcnNlSW50KGxlblN0cltpXSk7XG4gICAgICB9XG4gICAgICByZXN1bHRBcnJheVtidWZmZXJJbmRleCsrXSA9IDI1NTtcblxuICAgICAgdmFyIHZpZXcgPSBuZXcgVWludDhBcnJheShhYik7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZpZXcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgcmVzdWx0QXJyYXlbYnVmZmVySW5kZXgrK10gPSB2aWV3W2ldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKHJlc3VsdEFycmF5LmJ1ZmZlcik7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBFbmNvZGUgYXMgQmxvYlxuICovXG5cbmV4cG9ydHMuZW5jb2RlUGF5bG9hZEFzQmxvYiA9IGZ1bmN0aW9uKHBhY2tldHMsIGNhbGxiYWNrKSB7XG4gIGZ1bmN0aW9uIGVuY29kZU9uZShwYWNrZXQsIGRvbmVDYWxsYmFjaykge1xuICAgIGV4cG9ydHMuZW5jb2RlUGFja2V0KHBhY2tldCwgdHJ1ZSwgdHJ1ZSwgZnVuY3Rpb24oZW5jb2RlZCkge1xuICAgICAgdmFyIGJpbmFyeUlkZW50aWZpZXIgPSBuZXcgVWludDhBcnJheSgxKTtcbiAgICAgIGJpbmFyeUlkZW50aWZpZXJbMF0gPSAxO1xuICAgICAgaWYgKHR5cGVvZiBlbmNvZGVkID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YXIgdmlldyA9IG5ldyBVaW50OEFycmF5KGVuY29kZWQubGVuZ3RoKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbmNvZGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgdmlld1tpXSA9IGVuY29kZWQuY2hhckNvZGVBdChpKTtcbiAgICAgICAgfVxuICAgICAgICBlbmNvZGVkID0gdmlldy5idWZmZXI7XG4gICAgICAgIGJpbmFyeUlkZW50aWZpZXJbMF0gPSAwO1xuICAgICAgfVxuXG4gICAgICB2YXIgbGVuID0gKGVuY29kZWQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilcbiAgICAgICAgPyBlbmNvZGVkLmJ5dGVMZW5ndGhcbiAgICAgICAgOiBlbmNvZGVkLnNpemU7XG5cbiAgICAgIHZhciBsZW5TdHIgPSBsZW4udG9TdHJpbmcoKTtcbiAgICAgIHZhciBsZW5ndGhBcnkgPSBuZXcgVWludDhBcnJheShsZW5TdHIubGVuZ3RoICsgMSk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlblN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZW5ndGhBcnlbaV0gPSBwYXJzZUludChsZW5TdHJbaV0pO1xuICAgICAgfVxuICAgICAgbGVuZ3RoQXJ5W2xlblN0ci5sZW5ndGhdID0gMjU1O1xuXG4gICAgICBpZiAoQmxvYikge1xuICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtiaW5hcnlJZGVudGlmaWVyLmJ1ZmZlciwgbGVuZ3RoQXJ5LmJ1ZmZlciwgZW5jb2RlZF0pO1xuICAgICAgICBkb25lQ2FsbGJhY2sobnVsbCwgYmxvYik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBtYXAocGFja2V0cywgZW5jb2RlT25lLCBmdW5jdGlvbihlcnIsIHJlc3VsdHMpIHtcbiAgICByZXR1cm4gY2FsbGJhY2sobmV3IEJsb2IocmVzdWx0cykpO1xuICB9KTtcbn07XG5cbi8qXG4gKiBEZWNvZGVzIGRhdGEgd2hlbiBhIHBheWxvYWQgaXMgbWF5YmUgZXhwZWN0ZWQuIFN0cmluZ3MgYXJlIGRlY29kZWQgYnlcbiAqIGludGVycHJldGluZyBlYWNoIGJ5dGUgYXMgYSBrZXkgY29kZSBmb3IgZW50cmllcyBtYXJrZWQgdG8gc3RhcnQgd2l0aCAwLiBTZWVcbiAqIGRlc2NyaXB0aW9uIG9mIGVuY29kZVBheWxvYWRBc0JpbmFyeVxuICpcbiAqIEBwYXJhbSB7QXJyYXlCdWZmZXJ9IGRhdGEsIGNhbGxiYWNrIG1ldGhvZFxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5leHBvcnRzLmRlY29kZVBheWxvYWRBc0JpbmFyeSA9IGZ1bmN0aW9uIChkYXRhLCBiaW5hcnlUeXBlLCBjYWxsYmFjaykge1xuICBpZiAodHlwZW9mIGJpbmFyeVR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjYWxsYmFjayA9IGJpbmFyeVR5cGU7XG4gICAgYmluYXJ5VHlwZSA9IG51bGw7XG4gIH1cblxuICB2YXIgYnVmZmVyVGFpbCA9IGRhdGE7XG4gIHZhciBidWZmZXJzID0gW107XG5cbiAgd2hpbGUgKGJ1ZmZlclRhaWwuYnl0ZUxlbmd0aCA+IDApIHtcbiAgICB2YXIgdGFpbEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyVGFpbCk7XG4gICAgdmFyIGlzU3RyaW5nID0gdGFpbEFycmF5WzBdID09PSAwO1xuICAgIHZhciBtc2dMZW5ndGggPSAnJztcblxuICAgIGZvciAodmFyIGkgPSAxOyA7IGkrKykge1xuICAgICAgaWYgKHRhaWxBcnJheVtpXSA9PT0gMjU1KSBicmVhaztcblxuICAgICAgLy8gMzEwID0gY2hhciBsZW5ndGggb2YgTnVtYmVyLk1BWF9WQUxVRVxuICAgICAgaWYgKG1zZ0xlbmd0aC5sZW5ndGggPiAzMTApIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVyciwgMCwgMSk7XG4gICAgICB9XG5cbiAgICAgIG1zZ0xlbmd0aCArPSB0YWlsQXJyYXlbaV07XG4gICAgfVxuXG4gICAgYnVmZmVyVGFpbCA9IHNsaWNlQnVmZmVyKGJ1ZmZlclRhaWwsIDIgKyBtc2dMZW5ndGgubGVuZ3RoKTtcbiAgICBtc2dMZW5ndGggPSBwYXJzZUludChtc2dMZW5ndGgpO1xuXG4gICAgdmFyIG1zZyA9IHNsaWNlQnVmZmVyKGJ1ZmZlclRhaWwsIDAsIG1zZ0xlbmd0aCk7XG4gICAgaWYgKGlzU3RyaW5nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBtc2cgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50OEFycmF5KG1zZykpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpUGhvbmUgU2FmYXJpIGRvZXNuJ3QgbGV0IHlvdSBhcHBseSB0byB0eXBlZCBhcnJheXNcbiAgICAgICAgdmFyIHR5cGVkID0gbmV3IFVpbnQ4QXJyYXkobXNnKTtcbiAgICAgICAgbXNnID0gJyc7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBtc2cgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSh0eXBlZFtpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBidWZmZXJzLnB1c2gobXNnKTtcbiAgICBidWZmZXJUYWlsID0gc2xpY2VCdWZmZXIoYnVmZmVyVGFpbCwgbXNnTGVuZ3RoKTtcbiAgfVxuXG4gIHZhciB0b3RhbCA9IGJ1ZmZlcnMubGVuZ3RoO1xuICBidWZmZXJzLmZvckVhY2goZnVuY3Rpb24oYnVmZmVyLCBpKSB7XG4gICAgY2FsbGJhY2soZXhwb3J0cy5kZWNvZGVQYWNrZXQoYnVmZmVyLCBiaW5hcnlUeXBlLCB0cnVlKSwgaSwgdG90YWwpO1xuICB9KTtcbn07XG4iLCJcbi8qKlxuICogR2V0cyB0aGUga2V5cyBmb3IgYW4gb2JqZWN0LlxuICpcbiAqIEByZXR1cm4ge0FycmF5fSBrZXlzXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMgKG9iail7XG4gIHZhciBhcnIgPSBbXTtcbiAgdmFyIGhhcyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbiAgZm9yICh2YXIgaSBpbiBvYmopIHtcbiAgICBpZiAoaGFzLmNhbGwob2JqLCBpKSkge1xuICAgICAgYXJyLnB1c2goaSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBhcnI7XG59O1xuIiwiLyohIGh0dHBzOi8vbXRocy5iZS91dGY4anMgdjIuMS4yIGJ5IEBtYXRoaWFzICovXG5cbnZhciBzdHJpbmdGcm9tQ2hhckNvZGUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlO1xuXG4vLyBUYWtlbiBmcm9tIGh0dHBzOi8vbXRocy5iZS9wdW55Y29kZVxuZnVuY3Rpb24gdWNzMmRlY29kZShzdHJpbmcpIHtcblx0dmFyIG91dHB1dCA9IFtdO1xuXHR2YXIgY291bnRlciA9IDA7XG5cdHZhciBsZW5ndGggPSBzdHJpbmcubGVuZ3RoO1xuXHR2YXIgdmFsdWU7XG5cdHZhciBleHRyYTtcblx0d2hpbGUgKGNvdW50ZXIgPCBsZW5ndGgpIHtcblx0XHR2YWx1ZSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG5cdFx0aWYgKHZhbHVlID49IDB4RDgwMCAmJiB2YWx1ZSA8PSAweERCRkYgJiYgY291bnRlciA8IGxlbmd0aCkge1xuXHRcdFx0Ly8gaGlnaCBzdXJyb2dhdGUsIGFuZCB0aGVyZSBpcyBhIG5leHQgY2hhcmFjdGVyXG5cdFx0XHRleHRyYSA9IHN0cmluZy5jaGFyQ29kZUF0KGNvdW50ZXIrKyk7XG5cdFx0XHRpZiAoKGV4dHJhICYgMHhGQzAwKSA9PSAweERDMDApIHsgLy8gbG93IHN1cnJvZ2F0ZVxuXHRcdFx0XHRvdXRwdXQucHVzaCgoKHZhbHVlICYgMHgzRkYpIDw8IDEwKSArIChleHRyYSAmIDB4M0ZGKSArIDB4MTAwMDApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gdW5tYXRjaGVkIHN1cnJvZ2F0ZTsgb25seSBhcHBlbmQgdGhpcyBjb2RlIHVuaXQsIGluIGNhc2UgdGhlIG5leHRcblx0XHRcdFx0Ly8gY29kZSB1bml0IGlzIHRoZSBoaWdoIHN1cnJvZ2F0ZSBvZiBhIHN1cnJvZ2F0ZSBwYWlyXG5cdFx0XHRcdG91dHB1dC5wdXNoKHZhbHVlKTtcblx0XHRcdFx0Y291bnRlci0tO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRvdXRwdXQucHVzaCh2YWx1ZSk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBvdXRwdXQ7XG59XG5cbi8vIFRha2VuIGZyb20gaHR0cHM6Ly9tdGhzLmJlL3B1bnljb2RlXG5mdW5jdGlvbiB1Y3MyZW5jb2RlKGFycmF5KSB7XG5cdHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cdHZhciBpbmRleCA9IC0xO1xuXHR2YXIgdmFsdWU7XG5cdHZhciBvdXRwdXQgPSAnJztcblx0d2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcblx0XHR2YWx1ZSA9IGFycmF5W2luZGV4XTtcblx0XHRpZiAodmFsdWUgPiAweEZGRkYpIHtcblx0XHRcdHZhbHVlIC09IDB4MTAwMDA7XG5cdFx0XHRvdXRwdXQgKz0gc3RyaW5nRnJvbUNoYXJDb2RlKHZhbHVlID4+PiAxMCAmIDB4M0ZGIHwgMHhEODAwKTtcblx0XHRcdHZhbHVlID0gMHhEQzAwIHwgdmFsdWUgJiAweDNGRjtcblx0XHR9XG5cdFx0b3V0cHV0ICs9IHN0cmluZ0Zyb21DaGFyQ29kZSh2YWx1ZSk7XG5cdH1cblx0cmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gY2hlY2tTY2FsYXJWYWx1ZShjb2RlUG9pbnQsIHN0cmljdCkge1xuXHRpZiAoY29kZVBvaW50ID49IDB4RDgwMCAmJiBjb2RlUG9pbnQgPD0gMHhERkZGKSB7XG5cdFx0aWYgKHN0cmljdCkge1xuXHRcdFx0dGhyb3cgRXJyb3IoXG5cdFx0XHRcdCdMb25lIHN1cnJvZ2F0ZSBVKycgKyBjb2RlUG9pbnQudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkgK1xuXHRcdFx0XHQnIGlzIG5vdCBhIHNjYWxhciB2YWx1ZSdcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRyZXR1cm4gdHJ1ZTtcbn1cbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG5mdW5jdGlvbiBjcmVhdGVCeXRlKGNvZGVQb2ludCwgc2hpZnQpIHtcblx0cmV0dXJuIHN0cmluZ0Zyb21DaGFyQ29kZSgoKGNvZGVQb2ludCA+PiBzaGlmdCkgJiAweDNGKSB8IDB4ODApO1xufVxuXG5mdW5jdGlvbiBlbmNvZGVDb2RlUG9pbnQoY29kZVBvaW50LCBzdHJpY3QpIHtcblx0aWYgKChjb2RlUG9pbnQgJiAweEZGRkZGRjgwKSA9PSAwKSB7IC8vIDEtYnl0ZSBzZXF1ZW5jZVxuXHRcdHJldHVybiBzdHJpbmdGcm9tQ2hhckNvZGUoY29kZVBvaW50KTtcblx0fVxuXHR2YXIgc3ltYm9sID0gJyc7XG5cdGlmICgoY29kZVBvaW50ICYgMHhGRkZGRjgwMCkgPT0gMCkgeyAvLyAyLWJ5dGUgc2VxdWVuY2Vcblx0XHRzeW1ib2wgPSBzdHJpbmdGcm9tQ2hhckNvZGUoKChjb2RlUG9pbnQgPj4gNikgJiAweDFGKSB8IDB4QzApO1xuXHR9XG5cdGVsc2UgaWYgKChjb2RlUG9pbnQgJiAweEZGRkYwMDAwKSA9PSAwKSB7IC8vIDMtYnl0ZSBzZXF1ZW5jZVxuXHRcdGlmICghY2hlY2tTY2FsYXJWYWx1ZShjb2RlUG9pbnQsIHN0cmljdCkpIHtcblx0XHRcdGNvZGVQb2ludCA9IDB4RkZGRDtcblx0XHR9XG5cdFx0c3ltYm9sID0gc3RyaW5nRnJvbUNoYXJDb2RlKCgoY29kZVBvaW50ID4+IDEyKSAmIDB4MEYpIHwgMHhFMCk7XG5cdFx0c3ltYm9sICs9IGNyZWF0ZUJ5dGUoY29kZVBvaW50LCA2KTtcblx0fVxuXHRlbHNlIGlmICgoY29kZVBvaW50ICYgMHhGRkUwMDAwMCkgPT0gMCkgeyAvLyA0LWJ5dGUgc2VxdWVuY2Vcblx0XHRzeW1ib2wgPSBzdHJpbmdGcm9tQ2hhckNvZGUoKChjb2RlUG9pbnQgPj4gMTgpICYgMHgwNykgfCAweEYwKTtcblx0XHRzeW1ib2wgKz0gY3JlYXRlQnl0ZShjb2RlUG9pbnQsIDEyKTtcblx0XHRzeW1ib2wgKz0gY3JlYXRlQnl0ZShjb2RlUG9pbnQsIDYpO1xuXHR9XG5cdHN5bWJvbCArPSBzdHJpbmdGcm9tQ2hhckNvZGUoKGNvZGVQb2ludCAmIDB4M0YpIHwgMHg4MCk7XG5cdHJldHVybiBzeW1ib2w7XG59XG5cbmZ1bmN0aW9uIHV0ZjhlbmNvZGUoc3RyaW5nLCBvcHRzKSB7XG5cdG9wdHMgPSBvcHRzIHx8IHt9O1xuXHR2YXIgc3RyaWN0ID0gZmFsc2UgIT09IG9wdHMuc3RyaWN0O1xuXG5cdHZhciBjb2RlUG9pbnRzID0gdWNzMmRlY29kZShzdHJpbmcpO1xuXHR2YXIgbGVuZ3RoID0gY29kZVBvaW50cy5sZW5ndGg7XG5cdHZhciBpbmRleCA9IC0xO1xuXHR2YXIgY29kZVBvaW50O1xuXHR2YXIgYnl0ZVN0cmluZyA9ICcnO1xuXHR3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuXHRcdGNvZGVQb2ludCA9IGNvZGVQb2ludHNbaW5kZXhdO1xuXHRcdGJ5dGVTdHJpbmcgKz0gZW5jb2RlQ29kZVBvaW50KGNvZGVQb2ludCwgc3RyaWN0KTtcblx0fVxuXHRyZXR1cm4gYnl0ZVN0cmluZztcbn1cblxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbmZ1bmN0aW9uIHJlYWRDb250aW51YXRpb25CeXRlKCkge1xuXHRpZiAoYnl0ZUluZGV4ID49IGJ5dGVDb3VudCkge1xuXHRcdHRocm93IEVycm9yKCdJbnZhbGlkIGJ5dGUgaW5kZXgnKTtcblx0fVxuXG5cdHZhciBjb250aW51YXRpb25CeXRlID0gYnl0ZUFycmF5W2J5dGVJbmRleF0gJiAweEZGO1xuXHRieXRlSW5kZXgrKztcblxuXHRpZiAoKGNvbnRpbnVhdGlvbkJ5dGUgJiAweEMwKSA9PSAweDgwKSB7XG5cdFx0cmV0dXJuIGNvbnRpbnVhdGlvbkJ5dGUgJiAweDNGO1xuXHR9XG5cblx0Ly8gSWYgd2UgZW5kIHVwIGhlcmUsIGl04oCZcyBub3QgYSBjb250aW51YXRpb24gYnl0ZVxuXHR0aHJvdyBFcnJvcignSW52YWxpZCBjb250aW51YXRpb24gYnl0ZScpO1xufVxuXG5mdW5jdGlvbiBkZWNvZGVTeW1ib2woc3RyaWN0KSB7XG5cdHZhciBieXRlMTtcblx0dmFyIGJ5dGUyO1xuXHR2YXIgYnl0ZTM7XG5cdHZhciBieXRlNDtcblx0dmFyIGNvZGVQb2ludDtcblxuXHRpZiAoYnl0ZUluZGV4ID4gYnl0ZUNvdW50KSB7XG5cdFx0dGhyb3cgRXJyb3IoJ0ludmFsaWQgYnl0ZSBpbmRleCcpO1xuXHR9XG5cblx0aWYgKGJ5dGVJbmRleCA9PSBieXRlQ291bnQpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvLyBSZWFkIGZpcnN0IGJ5dGVcblx0Ynl0ZTEgPSBieXRlQXJyYXlbYnl0ZUluZGV4XSAmIDB4RkY7XG5cdGJ5dGVJbmRleCsrO1xuXG5cdC8vIDEtYnl0ZSBzZXF1ZW5jZSAobm8gY29udGludWF0aW9uIGJ5dGVzKVxuXHRpZiAoKGJ5dGUxICYgMHg4MCkgPT0gMCkge1xuXHRcdHJldHVybiBieXRlMTtcblx0fVxuXG5cdC8vIDItYnl0ZSBzZXF1ZW5jZVxuXHRpZiAoKGJ5dGUxICYgMHhFMCkgPT0gMHhDMCkge1xuXHRcdGJ5dGUyID0gcmVhZENvbnRpbnVhdGlvbkJ5dGUoKTtcblx0XHRjb2RlUG9pbnQgPSAoKGJ5dGUxICYgMHgxRikgPDwgNikgfCBieXRlMjtcblx0XHRpZiAoY29kZVBvaW50ID49IDB4ODApIHtcblx0XHRcdHJldHVybiBjb2RlUG9pbnQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IEVycm9yKCdJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlJyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gMy1ieXRlIHNlcXVlbmNlIChtYXkgaW5jbHVkZSB1bnBhaXJlZCBzdXJyb2dhdGVzKVxuXHRpZiAoKGJ5dGUxICYgMHhGMCkgPT0gMHhFMCkge1xuXHRcdGJ5dGUyID0gcmVhZENvbnRpbnVhdGlvbkJ5dGUoKTtcblx0XHRieXRlMyA9IHJlYWRDb250aW51YXRpb25CeXRlKCk7XG5cdFx0Y29kZVBvaW50ID0gKChieXRlMSAmIDB4MEYpIDw8IDEyKSB8IChieXRlMiA8PCA2KSB8IGJ5dGUzO1xuXHRcdGlmIChjb2RlUG9pbnQgPj0gMHgwODAwKSB7XG5cdFx0XHRyZXR1cm4gY2hlY2tTY2FsYXJWYWx1ZShjb2RlUG9pbnQsIHN0cmljdCkgPyBjb2RlUG9pbnQgOiAweEZGRkQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IEVycm9yKCdJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlJyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gNC1ieXRlIHNlcXVlbmNlXG5cdGlmICgoYnl0ZTEgJiAweEY4KSA9PSAweEYwKSB7XG5cdFx0Ynl0ZTIgPSByZWFkQ29udGludWF0aW9uQnl0ZSgpO1xuXHRcdGJ5dGUzID0gcmVhZENvbnRpbnVhdGlvbkJ5dGUoKTtcblx0XHRieXRlNCA9IHJlYWRDb250aW51YXRpb25CeXRlKCk7XG5cdFx0Y29kZVBvaW50ID0gKChieXRlMSAmIDB4MDcpIDw8IDB4MTIpIHwgKGJ5dGUyIDw8IDB4MEMpIHxcblx0XHRcdChieXRlMyA8PCAweDA2KSB8IGJ5dGU0O1xuXHRcdGlmIChjb2RlUG9pbnQgPj0gMHgwMTAwMDAgJiYgY29kZVBvaW50IDw9IDB4MTBGRkZGKSB7XG5cdFx0XHRyZXR1cm4gY29kZVBvaW50O1xuXHRcdH1cblx0fVxuXG5cdHRocm93IEVycm9yKCdJbnZhbGlkIFVURi04IGRldGVjdGVkJyk7XG59XG5cbnZhciBieXRlQXJyYXk7XG52YXIgYnl0ZUNvdW50O1xudmFyIGJ5dGVJbmRleDtcbmZ1bmN0aW9uIHV0ZjhkZWNvZGUoYnl0ZVN0cmluZywgb3B0cykge1xuXHRvcHRzID0gb3B0cyB8fCB7fTtcblx0dmFyIHN0cmljdCA9IGZhbHNlICE9PSBvcHRzLnN0cmljdDtcblxuXHRieXRlQXJyYXkgPSB1Y3MyZGVjb2RlKGJ5dGVTdHJpbmcpO1xuXHRieXRlQ291bnQgPSBieXRlQXJyYXkubGVuZ3RoO1xuXHRieXRlSW5kZXggPSAwO1xuXHR2YXIgY29kZVBvaW50cyA9IFtdO1xuXHR2YXIgdG1wO1xuXHR3aGlsZSAoKHRtcCA9IGRlY29kZVN5bWJvbChzdHJpY3QpKSAhPT0gZmFsc2UpIHtcblx0XHRjb2RlUG9pbnRzLnB1c2godG1wKTtcblx0fVxuXHRyZXR1cm4gdWNzMmVuY29kZShjb2RlUG9pbnRzKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSB7XG5cdHZlcnNpb246ICcyLjEuMicsXG5cdGVuY29kZTogdXRmOGVuY29kZSxcblx0ZGVjb2RlOiB1dGY4ZGVjb2RlXG59O1xuIiwiLyogZ2xvYmFsIEJsb2IgRmlsZSAqL1xuXG4vKlxuICogTW9kdWxlIHJlcXVpcmVtZW50cy5cbiAqL1xuXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzYXJyYXknKTtcblxudmFyIHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcbnZhciB3aXRoTmF0aXZlQmxvYiA9IHR5cGVvZiBCbG9iID09PSAnZnVuY3Rpb24nIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgJiYgdG9TdHJpbmcuY2FsbChCbG9iKSA9PT0gJ1tvYmplY3QgQmxvYkNvbnN0cnVjdG9yXSc7XG52YXIgd2l0aE5hdGl2ZUZpbGUgPSB0eXBlb2YgRmlsZSA9PT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mIEZpbGUgIT09ICd1bmRlZmluZWQnICYmIHRvU3RyaW5nLmNhbGwoRmlsZSkgPT09ICdbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl0nO1xuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gaGFzQmluYXJ5O1xuXG4vKipcbiAqIENoZWNrcyBmb3IgYmluYXJ5IGRhdGEuXG4gKlxuICogU3VwcG9ydHMgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQmxvYiBhbmQgRmlsZS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gYW55dGhpbmdcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gaGFzQmluYXJ5IChvYmopIHtcbiAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoaXNBcnJheShvYmopKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGwgPSBvYmoubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoaGFzQmluYXJ5KG9ialtpXSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICgodHlwZW9mIEJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBCdWZmZXIuaXNCdWZmZXIgJiYgQnVmZmVyLmlzQnVmZmVyKG9iaikpIHx8XG4gICAgKHR5cGVvZiBBcnJheUJ1ZmZlciA9PT0gJ2Z1bmN0aW9uJyAmJiBvYmogaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgfHxcbiAgICAod2l0aE5hdGl2ZUJsb2IgJiYgb2JqIGluc3RhbmNlb2YgQmxvYikgfHxcbiAgICAod2l0aE5hdGl2ZUZpbGUgJiYgb2JqIGluc3RhbmNlb2YgRmlsZSlcbiAgKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9BdXRvbWF0dGljL2hhcy1iaW5hcnkvcHVsbC80XG4gIGlmIChvYmoudG9KU09OICYmIHR5cGVvZiBvYmoudG9KU09OID09PSAnZnVuY3Rpb24nICYmIGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gaGFzQmluYXJ5KG9iai50b0pTT04oKSwgdHJ1ZSk7XG4gIH1cblxuICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkgJiYgaGFzQmluYXJ5KG9ialtrZXldKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuIiwiXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICpcbiAqIExvZ2ljIGJvcnJvd2VkIGZyb20gTW9kZXJuaXpyOlxuICpcbiAqICAgLSBodHRwczovL2dpdGh1Yi5jb20vTW9kZXJuaXpyL01vZGVybml6ci9ibG9iL21hc3Rlci9mZWF0dXJlLWRldGVjdHMvY29ycy5qc1xuICovXG5cbnRyeSB7XG4gIG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICd3aXRoQ3JlZGVudGlhbHMnIGluIG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xufSBjYXRjaCAoZXJyKSB7XG4gIC8vIGlmIFhNTEh0dHAgc3VwcG9ydCBpcyBkaXNhYmxlZCBpbiBJRSB0aGVuIGl0IHdpbGwgdGhyb3dcbiAgLy8gd2hlbiB0cnlpbmcgdG8gY3JlYXRlXG4gIG1vZHVsZS5leHBvcnRzID0gZmFsc2U7XG59XG4iLCJleHBvcnRzLnJlYWQgPSBmdW5jdGlvbiAoYnVmZmVyLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykge1xuICB2YXIgZSwgbVxuICB2YXIgZUxlbiA9IChuQnl0ZXMgKiA4KSAtIG1MZW4gLSAxXG4gIHZhciBlTWF4ID0gKDEgPDwgZUxlbikgLSAxXG4gIHZhciBlQmlhcyA9IGVNYXggPj4gMVxuICB2YXIgbkJpdHMgPSAtN1xuICB2YXIgaSA9IGlzTEUgPyAobkJ5dGVzIC0gMSkgOiAwXG4gIHZhciBkID0gaXNMRSA/IC0xIDogMVxuICB2YXIgcyA9IGJ1ZmZlcltvZmZzZXQgKyBpXVxuXG4gIGkgKz0gZFxuXG4gIGUgPSBzICYgKCgxIDw8ICgtbkJpdHMpKSAtIDEpXG4gIHMgPj49ICgtbkJpdHMpXG4gIG5CaXRzICs9IGVMZW5cbiAgZm9yICg7IG5CaXRzID4gMDsgZSA9IChlICogMjU2KSArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIG0gPSBlICYgKCgxIDw8ICgtbkJpdHMpKSAtIDEpXG4gIGUgPj49ICgtbkJpdHMpXG4gIG5CaXRzICs9IG1MZW5cbiAgZm9yICg7IG5CaXRzID4gMDsgbSA9IChtICogMjU2KSArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fVxuXG4gIGlmIChlID09PSAwKSB7XG4gICAgZSA9IDEgLSBlQmlhc1xuICB9IGVsc2UgaWYgKGUgPT09IGVNYXgpIHtcbiAgICByZXR1cm4gbSA/IE5hTiA6ICgocyA/IC0xIDogMSkgKiBJbmZpbml0eSlcbiAgfSBlbHNlIHtcbiAgICBtID0gbSArIE1hdGgucG93KDIsIG1MZW4pXG4gICAgZSA9IGUgLSBlQmlhc1xuICB9XG4gIHJldHVybiAocyA/IC0xIDogMSkgKiBtICogTWF0aC5wb3coMiwgZSAtIG1MZW4pXG59XG5cbmV4cG9ydHMud3JpdGUgPSBmdW5jdGlvbiAoYnVmZmVyLCB2YWx1ZSwgb2Zmc2V0LCBpc0xFLCBtTGVuLCBuQnl0ZXMpIHtcbiAgdmFyIGUsIG0sIGNcbiAgdmFyIGVMZW4gPSAobkJ5dGVzICogOCkgLSBtTGVuIC0gMVxuICB2YXIgZU1heCA9ICgxIDw8IGVMZW4pIC0gMVxuICB2YXIgZUJpYXMgPSBlTWF4ID4+IDFcbiAgdmFyIHJ0ID0gKG1MZW4gPT09IDIzID8gTWF0aC5wb3coMiwgLTI0KSAtIE1hdGgucG93KDIsIC03NykgOiAwKVxuICB2YXIgaSA9IGlzTEUgPyAwIDogKG5CeXRlcyAtIDEpXG4gIHZhciBkID0gaXNMRSA/IDEgOiAtMVxuICB2YXIgcyA9IHZhbHVlIDwgMCB8fCAodmFsdWUgPT09IDAgJiYgMSAvIHZhbHVlIDwgMCkgPyAxIDogMFxuXG4gIHZhbHVlID0gTWF0aC5hYnModmFsdWUpXG5cbiAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gSW5maW5pdHkpIHtcbiAgICBtID0gaXNOYU4odmFsdWUpID8gMSA6IDBcbiAgICBlID0gZU1heFxuICB9IGVsc2Uge1xuICAgIGUgPSBNYXRoLmZsb29yKE1hdGgubG9nKHZhbHVlKSAvIE1hdGguTE4yKVxuICAgIGlmICh2YWx1ZSAqIChjID0gTWF0aC5wb3coMiwgLWUpKSA8IDEpIHtcbiAgICAgIGUtLVxuICAgICAgYyAqPSAyXG4gICAgfVxuICAgIGlmIChlICsgZUJpYXMgPj0gMSkge1xuICAgICAgdmFsdWUgKz0gcnQgLyBjXG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlICs9IHJ0ICogTWF0aC5wb3coMiwgMSAtIGVCaWFzKVxuICAgIH1cbiAgICBpZiAodmFsdWUgKiBjID49IDIpIHtcbiAgICAgIGUrK1xuICAgICAgYyAvPSAyXG4gICAgfVxuXG4gICAgaWYgKGUgKyBlQmlhcyA+PSBlTWF4KSB7XG4gICAgICBtID0gMFxuICAgICAgZSA9IGVNYXhcbiAgICB9IGVsc2UgaWYgKGUgKyBlQmlhcyA+PSAxKSB7XG4gICAgICBtID0gKCh2YWx1ZSAqIGMpIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKVxuICAgICAgZSA9IGUgKyBlQmlhc1xuICAgIH0gZWxzZSB7XG4gICAgICBtID0gdmFsdWUgKiBNYXRoLnBvdygyLCBlQmlhcyAtIDEpICogTWF0aC5wb3coMiwgbUxlbilcbiAgICAgIGUgPSAwXG4gICAgfVxuICB9XG5cbiAgZm9yICg7IG1MZW4gPj0gODsgYnVmZmVyW29mZnNldCArIGldID0gbSAmIDB4ZmYsIGkgKz0gZCwgbSAvPSAyNTYsIG1MZW4gLT0gOCkge31cblxuICBlID0gKGUgPDwgbUxlbikgfCBtXG4gIGVMZW4gKz0gbUxlblxuICBmb3IgKDsgZUxlbiA+IDA7IGJ1ZmZlcltvZmZzZXQgKyBpXSA9IGUgJiAweGZmLCBpICs9IGQsIGUgLz0gMjU2LCBlTGVuIC09IDgpIHt9XG5cbiAgYnVmZmVyW29mZnNldCArIGkgLSBkXSB8PSBzICogMTI4XG59XG4iLCJcbnZhciBpbmRleE9mID0gW10uaW5kZXhPZjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihhcnIsIG9iail7XG4gIGlmIChpbmRleE9mKSByZXR1cm4gYXJyLmluZGV4T2Yob2JqKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyArK2kpIHtcbiAgICBpZiAoYXJyW2ldID09PSBvYmopIHJldHVybiBpO1xuICB9XG4gIHJldHVybiAtMTtcbn07IiwidmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiAoYXJyKSB7XG4gIHJldHVybiB0b1N0cmluZy5jYWxsKGFycikgPT0gJ1tvYmplY3QgQXJyYXldJztcbn07XG4iLCIvKipcbiAqIEhlbHBlcnMuXG4gKi9cblxudmFyIHMgPSAxMDAwO1xudmFyIG0gPSBzICogNjA7XG52YXIgaCA9IG0gKiA2MDtcbnZhciBkID0gaCAqIDI0O1xudmFyIHkgPSBkICogMzY1LjI1O1xuXG4vKipcbiAqIFBhcnNlIG9yIGZvcm1hdCB0aGUgZ2l2ZW4gYHZhbGAuXG4gKlxuICogT3B0aW9uczpcbiAqXG4gKiAgLSBgbG9uZ2AgdmVyYm9zZSBmb3JtYXR0aW5nIFtmYWxzZV1cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ3xOdW1iZXJ9IHZhbFxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRpb25zXVxuICogQHRocm93cyB7RXJyb3J9IHRocm93IGFuIGVycm9yIGlmIHZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgbnVtYmVyXG4gKiBAcmV0dXJuIHtTdHJpbmd8TnVtYmVyfVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKHZhbCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgdmFsO1xuICBpZiAodHlwZSA9PT0gJ3N0cmluZycgJiYgdmFsLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gcGFyc2UodmFsKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnbnVtYmVyJyAmJiBpc05hTih2YWwpID09PSBmYWxzZSkge1xuICAgIHJldHVybiBvcHRpb25zLmxvbmcgPyBmbXRMb25nKHZhbCkgOiBmbXRTaG9ydCh2YWwpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICAndmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD0nICtcbiAgICAgIEpTT04uc3RyaW5naWZ5KHZhbClcbiAgKTtcbn07XG5cbi8qKlxuICogUGFyc2UgdGhlIGdpdmVuIGBzdHJgIGFuZCByZXR1cm4gbWlsbGlzZWNvbmRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHBhcnNlKHN0cikge1xuICBzdHIgPSBTdHJpbmcoc3RyKTtcbiAgaWYgKHN0ci5sZW5ndGggPiAxMDApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgdmFyIG1hdGNoID0gL14oKD86XFxkKyk/XFwuP1xcZCspICoobWlsbGlzZWNvbmRzP3xtc2Vjcz98bXN8c2Vjb25kcz98c2Vjcz98c3xtaW51dGVzP3xtaW5zP3xtfGhvdXJzP3xocnM/fGh8ZGF5cz98ZHx5ZWFycz98eXJzP3x5KT8kL2kuZXhlYyhcbiAgICBzdHJcbiAgKTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgbiA9IHBhcnNlRmxvYXQobWF0Y2hbMV0pO1xuICB2YXIgdHlwZSA9IChtYXRjaFsyXSB8fCAnbXMnKS50b0xvd2VyQ2FzZSgpO1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICd5ZWFycyc6XG4gICAgY2FzZSAneWVhcic6XG4gICAgY2FzZSAneXJzJzpcbiAgICBjYXNlICd5cic6XG4gICAgY2FzZSAneSc6XG4gICAgICByZXR1cm4gbiAqIHk7XG4gICAgY2FzZSAnZGF5cyc6XG4gICAgY2FzZSAnZGF5JzpcbiAgICBjYXNlICdkJzpcbiAgICAgIHJldHVybiBuICogZDtcbiAgICBjYXNlICdob3Vycyc6XG4gICAgY2FzZSAnaG91cic6XG4gICAgY2FzZSAnaHJzJzpcbiAgICBjYXNlICdocic6XG4gICAgY2FzZSAnaCc6XG4gICAgICByZXR1cm4gbiAqIGg7XG4gICAgY2FzZSAnbWludXRlcyc6XG4gICAgY2FzZSAnbWludXRlJzpcbiAgICBjYXNlICdtaW5zJzpcbiAgICBjYXNlICdtaW4nOlxuICAgIGNhc2UgJ20nOlxuICAgICAgcmV0dXJuIG4gKiBtO1xuICAgIGNhc2UgJ3NlY29uZHMnOlxuICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgY2FzZSAnc2Vjcyc6XG4gICAgY2FzZSAnc2VjJzpcbiAgICBjYXNlICdzJzpcbiAgICAgIHJldHVybiBuICogcztcbiAgICBjYXNlICdtaWxsaXNlY29uZHMnOlxuICAgIGNhc2UgJ21pbGxpc2Vjb25kJzpcbiAgICBjYXNlICdtc2Vjcyc6XG4gICAgY2FzZSAnbXNlYyc6XG4gICAgY2FzZSAnbXMnOlxuICAgICAgcmV0dXJuIG47XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBTaG9ydCBmb3JtYXQgZm9yIGBtc2AuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IG1zXG4gKiBAcmV0dXJuIHtTdHJpbmd9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBmbXRTaG9ydChtcykge1xuICBpZiAobXMgPj0gZCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gZCkgKyAnZCc7XG4gIH1cbiAgaWYgKG1zID49IGgpIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChtcyAvIGgpICsgJ2gnO1xuICB9XG4gIGlmIChtcyA+PSBtKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobXMgLyBtKSArICdtJztcbiAgfVxuICBpZiAobXMgPj0gcykge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKG1zIC8gcykgKyAncyc7XG4gIH1cbiAgcmV0dXJuIG1zICsgJ21zJztcbn1cblxuLyoqXG4gKiBMb25nIGZvcm1hdCBmb3IgYG1zYC5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbXNcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGZtdExvbmcobXMpIHtcbiAgcmV0dXJuIHBsdXJhbChtcywgZCwgJ2RheScpIHx8XG4gICAgcGx1cmFsKG1zLCBoLCAnaG91cicpIHx8XG4gICAgcGx1cmFsKG1zLCBtLCAnbWludXRlJykgfHxcbiAgICBwbHVyYWwobXMsIHMsICdzZWNvbmQnKSB8fFxuICAgIG1zICsgJyBtcyc7XG59XG5cbi8qKlxuICogUGx1cmFsaXphdGlvbiBoZWxwZXIuXG4gKi9cblxuZnVuY3Rpb24gcGx1cmFsKG1zLCBuLCBuYW1lKSB7XG4gIGlmIChtcyA8IG4pIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKG1zIDwgbiAqIDEuNSkge1xuICAgIHJldHVybiBNYXRoLmZsb29yKG1zIC8gbikgKyAnICcgKyBuYW1lO1xuICB9XG4gIHJldHVybiBNYXRoLmNlaWwobXMgLyBuKSArICcgJyArIG5hbWUgKyAncyc7XG59XG4iLCIvKipcclxuICogQ29tcGlsZXMgYSBxdWVyeXN0cmluZ1xyXG4gKiBSZXR1cm5zIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0XHJcbiAqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fVxyXG4gKiBAYXBpIHByaXZhdGVcclxuICovXHJcblxyXG5leHBvcnRzLmVuY29kZSA9IGZ1bmN0aW9uIChvYmopIHtcclxuICB2YXIgc3RyID0gJyc7XHJcblxyXG4gIGZvciAodmFyIGkgaW4gb2JqKSB7XHJcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGkpKSB7XHJcbiAgICAgIGlmIChzdHIubGVuZ3RoKSBzdHIgKz0gJyYnO1xyXG4gICAgICBzdHIgKz0gZW5jb2RlVVJJQ29tcG9uZW50KGkpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KG9ialtpXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gc3RyO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIFBhcnNlcyBhIHNpbXBsZSBxdWVyeXN0cmluZyBpbnRvIGFuIG9iamVjdFxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gcXNcclxuICogQGFwaSBwcml2YXRlXHJcbiAqL1xyXG5cclxuZXhwb3J0cy5kZWNvZGUgPSBmdW5jdGlvbihxcyl7XHJcbiAgdmFyIHFyeSA9IHt9O1xyXG4gIHZhciBwYWlycyA9IHFzLnNwbGl0KCcmJyk7XHJcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBwYWlycy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgIHZhciBwYWlyID0gcGFpcnNbaV0uc3BsaXQoJz0nKTtcclxuICAgIHFyeVtkZWNvZGVVUklDb21wb25lbnQocGFpclswXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KHBhaXJbMV0pO1xyXG4gIH1cclxuICByZXR1cm4gcXJ5O1xyXG59O1xyXG4iLCIvKipcclxuICogUGFyc2VzIGFuIFVSSVxyXG4gKlxyXG4gKiBAYXV0aG9yIFN0ZXZlbiBMZXZpdGhhbiA8c3RldmVubGV2aXRoYW4uY29tPiAoTUlUIGxpY2Vuc2UpXHJcbiAqIEBhcGkgcHJpdmF0ZVxyXG4gKi9cclxuXHJcbnZhciByZSA9IC9eKD86KD8hW146QF0rOlteOkBcXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcXC9cXC8pPygoPzooKFteOkBdKikoPzo6KFteOkBdKikpPyk/QCk/KCg/OlthLWYwLTldezAsNH06KXsyLDd9W2EtZjAtOV17MCw0fXxbXjpcXC8/I10qKSg/OjooXFxkKikpPykoKChcXC8oPzpbXj8jXSg/IVtePyNcXC9dKlxcLltePyNcXC8uXSsoPzpbPyNdfCQpKSkqXFwvPyk/KFtePyNcXC9dKikpKD86XFw/KFteI10qKSk/KD86IyguKikpPykvO1xyXG5cclxudmFyIHBhcnRzID0gW1xyXG4gICAgJ3NvdXJjZScsICdwcm90b2NvbCcsICdhdXRob3JpdHknLCAndXNlckluZm8nLCAndXNlcicsICdwYXNzd29yZCcsICdob3N0JywgJ3BvcnQnLCAncmVsYXRpdmUnLCAncGF0aCcsICdkaXJlY3RvcnknLCAnZmlsZScsICdxdWVyeScsICdhbmNob3InXHJcbl07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHBhcnNldXJpKHN0cikge1xyXG4gICAgdmFyIHNyYyA9IHN0cixcclxuICAgICAgICBiID0gc3RyLmluZGV4T2YoJ1snKSxcclxuICAgICAgICBlID0gc3RyLmluZGV4T2YoJ10nKTtcclxuXHJcbiAgICBpZiAoYiAhPSAtMSAmJiBlICE9IC0xKSB7XHJcbiAgICAgICAgc3RyID0gc3RyLnN1YnN0cmluZygwLCBiKSArIHN0ci5zdWJzdHJpbmcoYiwgZSkucmVwbGFjZSgvOi9nLCAnOycpICsgc3RyLnN1YnN0cmluZyhlLCBzdHIubGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgbSA9IHJlLmV4ZWMoc3RyIHx8ICcnKSxcclxuICAgICAgICB1cmkgPSB7fSxcclxuICAgICAgICBpID0gMTQ7XHJcblxyXG4gICAgd2hpbGUgKGktLSkge1xyXG4gICAgICAgIHVyaVtwYXJ0c1tpXV0gPSBtW2ldIHx8ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiICE9IC0xICYmIGUgIT0gLTEpIHtcclxuICAgICAgICB1cmkuc291cmNlID0gc3JjO1xyXG4gICAgICAgIHVyaS5ob3N0ID0gdXJpLmhvc3Quc3Vic3RyaW5nKDEsIHVyaS5ob3N0Lmxlbmd0aCAtIDEpLnJlcGxhY2UoLzsvZywgJzonKTtcclxuICAgICAgICB1cmkuYXV0aG9yaXR5ID0gdXJpLmF1dGhvcml0eS5yZXBsYWNlKCdbJywgJycpLnJlcGxhY2UoJ10nLCAnJykucmVwbGFjZSgvOy9nLCAnOicpO1xyXG4gICAgICAgIHVyaS5pcHY2dXJpID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdXJpO1xyXG59O1xyXG4iLCIvLyBzaGltIGZvciB1c2luZyBwcm9jZXNzIGluIGJyb3dzZXJcbnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTtcblxuLy8gY2FjaGVkIGZyb20gd2hhdGV2ZXIgZ2xvYmFsIGlzIHByZXNlbnQgc28gdGhhdCB0ZXN0IHJ1bm5lcnMgdGhhdCBzdHViIGl0XG4vLyBkb24ndCBicmVhayB0aGluZ3MuICBCdXQgd2UgbmVlZCB0byB3cmFwIGl0IGluIGEgdHJ5IGNhdGNoIGluIGNhc2UgaXQgaXNcbi8vIHdyYXBwZWQgaW4gc3RyaWN0IG1vZGUgY29kZSB3aGljaCBkb2Vzbid0IGRlZmluZSBhbnkgZ2xvYmFscy4gIEl0J3MgaW5zaWRlIGFcbi8vIGZ1bmN0aW9uIGJlY2F1c2UgdHJ5L2NhdGNoZXMgZGVvcHRpbWl6ZSBpbiBjZXJ0YWluIGVuZ2luZXMuXG5cbnZhciBjYWNoZWRTZXRUaW1lb3V0O1xudmFyIGNhY2hlZENsZWFyVGltZW91dDtcblxuZnVuY3Rpb24gZGVmYXVsdFNldFRpbW91dCgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQnKTtcbn1cbmZ1bmN0aW9uIGRlZmF1bHRDbGVhclRpbWVvdXQgKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7XG59XG4oZnVuY3Rpb24gKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICAgIGlmICh0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0O1xuICAgIH1cbn0gKCkpXG5mdW5jdGlvbiBydW5UaW1lb3V0KGZ1bikge1xuICAgIGlmIChjYWNoZWRTZXRUaW1lb3V0ID09PSBzZXRUaW1lb3V0KSB7XG4gICAgICAgIC8vbm9ybWFsIGVudmlyb21lbnRzIGluIHNhbmUgc2l0dWF0aW9uc1xuICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApO1xuICAgIH1cbiAgICAvLyBpZiBzZXRUaW1lb3V0IHdhc24ndCBhdmFpbGFibGUgYnV0IHdhcyBsYXR0ZXIgZGVmaW5lZFxuICAgIGlmICgoY2FjaGVkU2V0VGltZW91dCA9PT0gZGVmYXVsdFNldFRpbW91dCB8fCAhY2FjaGVkU2V0VGltZW91dCkgJiYgc2V0VGltZW91dCkge1xuICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDtcbiAgICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuLCAwKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgICAgLy8gd2hlbiB3aGVuIHNvbWVib2R5IGhhcyBzY3Jld2VkIHdpdGggc2V0VGltZW91dCBidXQgbm8gSS5FLiBtYWRkbmVzc1xuICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dChmdW4sIDApO1xuICAgIH0gY2F0Y2goZSl7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwobnVsbCwgZnVuLCAwKTtcbiAgICAgICAgfSBjYXRjaChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yXG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dC5jYWxsKHRoaXMsIGZ1biwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxufVxuZnVuY3Rpb24gcnVuQ2xlYXJUaW1lb3V0KG1hcmtlcikge1xuICAgIGlmIChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGNsZWFyVGltZW91dCkge1xuICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnNcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICAvLyBpZiBjbGVhclRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkXG4gICAgaWYgKChjYWNoZWRDbGVhclRpbWVvdXQgPT09IGRlZmF1bHRDbGVhclRpbWVvdXQgfHwgIWNhY2hlZENsZWFyVGltZW91dCkgJiYgY2xlYXJUaW1lb3V0KSB7XG4gICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDtcbiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzXG4gICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQobWFya2VyKTtcbiAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UgYXJlIGluIEkuRS4gYnV0IHRoZSBzY3JpcHQgaGFzIGJlZW4gZXZhbGVkIHNvIEkuRS4gZG9lc24ndCAgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHlcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWRDbGVhclRpbWVvdXQuY2FsbChudWxsLCBtYXJrZXIpO1xuICAgICAgICB9IGNhdGNoIChlKXtcbiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yLlxuICAgICAgICAgICAgLy8gU29tZSB2ZXJzaW9ucyBvZiBJLkUuIGhhdmUgZGlmZmVyZW50IHJ1bGVzIGZvciBjbGVhclRpbWVvdXQgdnMgc2V0VGltZW91dFxuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKHRoaXMsIG1hcmtlcik7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG59XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBpZiAoIWRyYWluaW5nIHx8ICFjdXJyZW50UXVldWUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBydW5UaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UXVldWUpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UXVldWVbcXVldWVJbmRleF0ucnVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgICAgICBsZW4gPSBxdWV1ZS5sZW5ndGg7XG4gICAgfVxuICAgIGN1cnJlbnRRdWV1ZSA9IG51bGw7XG4gICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICBydW5DbGVhclRpbWVvdXQodGltZW91dCk7XG59XG5cbnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcXVldWUucHVzaChuZXcgSXRlbShmdW4sIGFyZ3MpKTtcbiAgICBpZiAocXVldWUubGVuZ3RoID09PSAxICYmICFkcmFpbmluZykge1xuICAgICAgICBydW5UaW1lb3V0KGRyYWluUXVldWUpO1xuICAgIH1cbn07XG5cbi8vIHY4IGxpa2VzIHByZWRpY3RpYmxlIG9iamVjdHNcbmZ1bmN0aW9uIEl0ZW0oZnVuLCBhcnJheSkge1xuICAgIHRoaXMuZnVuID0gZnVuO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbn1cbkl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLmZ1bi5hcHBseShudWxsLCB0aGlzLmFycmF5KTtcbn07XG5wcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInO1xucHJvY2Vzcy5icm93c2VyID0gdHJ1ZTtcbnByb2Nlc3MuZW52ID0ge307XG5wcm9jZXNzLmFyZ3YgPSBbXTtcbnByb2Nlc3MudmVyc2lvbiA9ICcnOyAvLyBlbXB0eSBzdHJpbmcgdG8gYXZvaWQgcmVnZXhwIGlzc3Vlc1xucHJvY2Vzcy52ZXJzaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBub29wKCkge31cblxucHJvY2Vzcy5vbiA9IG5vb3A7XG5wcm9jZXNzLmFkZExpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3Mub25jZSA9IG5vb3A7XG5wcm9jZXNzLm9mZiA9IG5vb3A7XG5wcm9jZXNzLnJlbW92ZUxpc3RlbmVyID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlQWxsTGlzdGVuZXJzID0gbm9vcDtcbnByb2Nlc3MuZW1pdCA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRMaXN0ZW5lciA9IG5vb3A7XG5wcm9jZXNzLnByZXBlbmRPbmNlTGlzdGVuZXIgPSBub29wO1xuXG5wcm9jZXNzLmxpc3RlbmVycyA9IGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBbXSB9XG5cbnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCcpO1xufTtcblxucHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTtcbnByb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5wcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9O1xuIiwiKGZ1bmN0aW9uIChnbG9iYWwsIHVuZGVmaW5lZCkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuXG4gICAgaWYgKGdsb2JhbC5zZXRJbW1lZGlhdGUpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBuZXh0SGFuZGxlID0gMTsgLy8gU3BlYyBzYXlzIGdyZWF0ZXIgdGhhbiB6ZXJvXG4gICAgdmFyIHRhc2tzQnlIYW5kbGUgPSB7fTtcbiAgICB2YXIgY3VycmVudGx5UnVubmluZ0FUYXNrID0gZmFsc2U7XG4gICAgdmFyIGRvYyA9IGdsb2JhbC5kb2N1bWVudDtcbiAgICB2YXIgcmVnaXN0ZXJJbW1lZGlhdGU7XG5cbiAgICBmdW5jdGlvbiBzZXRJbW1lZGlhdGUoY2FsbGJhY2spIHtcbiAgICAgIC8vIENhbGxiYWNrIGNhbiBlaXRoZXIgYmUgYSBmdW5jdGlvbiBvciBhIHN0cmluZ1xuICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNhbGxiYWNrID0gbmV3IEZ1bmN0aW9uKFwiXCIgKyBjYWxsYmFjayk7XG4gICAgICB9XG4gICAgICAvLyBDb3B5IGZ1bmN0aW9uIGFyZ3VtZW50c1xuICAgICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCAtIDEpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgYXJnc1tpXSA9IGFyZ3VtZW50c1tpICsgMV07XG4gICAgICB9XG4gICAgICAvLyBTdG9yZSBhbmQgcmVnaXN0ZXIgdGhlIHRhc2tcbiAgICAgIHZhciB0YXNrID0geyBjYWxsYmFjazogY2FsbGJhY2ssIGFyZ3M6IGFyZ3MgfTtcbiAgICAgIHRhc2tzQnlIYW5kbGVbbmV4dEhhbmRsZV0gPSB0YXNrO1xuICAgICAgcmVnaXN0ZXJJbW1lZGlhdGUobmV4dEhhbmRsZSk7XG4gICAgICByZXR1cm4gbmV4dEhhbmRsZSsrO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNsZWFySW1tZWRpYXRlKGhhbmRsZSkge1xuICAgICAgICBkZWxldGUgdGFza3NCeUhhbmRsZVtoYW5kbGVdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJ1bih0YXNrKSB7XG4gICAgICAgIHZhciBjYWxsYmFjayA9IHRhc2suY2FsbGJhY2s7XG4gICAgICAgIHZhciBhcmdzID0gdGFzay5hcmdzO1xuICAgICAgICBzd2l0Y2ggKGFyZ3MubGVuZ3RoKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgY2FsbGJhY2soYXJnc1swXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgY2FsbGJhY2soYXJnc1swXSwgYXJnc1sxXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgY2FsbGJhY2soYXJnc1swXSwgYXJnc1sxXSwgYXJnc1syXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KHVuZGVmaW5lZCwgYXJncyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJ1bklmUHJlc2VudChoYW5kbGUpIHtcbiAgICAgICAgLy8gRnJvbSB0aGUgc3BlYzogXCJXYWl0IHVudGlsIGFueSBpbnZvY2F0aW9ucyBvZiB0aGlzIGFsZ29yaXRobSBzdGFydGVkIGJlZm9yZSB0aGlzIG9uZSBoYXZlIGNvbXBsZXRlZC5cIlxuICAgICAgICAvLyBTbyBpZiB3ZSdyZSBjdXJyZW50bHkgcnVubmluZyBhIHRhc2ssIHdlJ2xsIG5lZWQgdG8gZGVsYXkgdGhpcyBpbnZvY2F0aW9uLlxuICAgICAgICBpZiAoY3VycmVudGx5UnVubmluZ0FUYXNrKSB7XG4gICAgICAgICAgICAvLyBEZWxheSBieSBkb2luZyBhIHNldFRpbWVvdXQuIHNldEltbWVkaWF0ZSB3YXMgdHJpZWQgaW5zdGVhZCwgYnV0IGluIEZpcmVmb3ggNyBpdCBnZW5lcmF0ZWQgYVxuICAgICAgICAgICAgLy8gXCJ0b28gbXVjaCByZWN1cnNpb25cIiBlcnJvci5cbiAgICAgICAgICAgIHNldFRpbWVvdXQocnVuSWZQcmVzZW50LCAwLCBoYW5kbGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIHRhc2sgPSB0YXNrc0J5SGFuZGxlW2hhbmRsZV07XG4gICAgICAgICAgICBpZiAodGFzaykge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRseVJ1bm5pbmdBVGFzayA9IHRydWU7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcnVuKHRhc2spO1xuICAgICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW1tZWRpYXRlKGhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRseVJ1bm5pbmdBVGFzayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluc3RhbGxOZXh0VGlja0ltcGxlbWVudGF0aW9uKCkge1xuICAgICAgICByZWdpc3RlckltbWVkaWF0ZSA9IGZ1bmN0aW9uKGhhbmRsZSkge1xuICAgICAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7IHJ1bklmUHJlc2VudChoYW5kbGUpOyB9KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjYW5Vc2VQb3N0TWVzc2FnZSgpIHtcbiAgICAgICAgLy8gVGhlIHRlc3QgYWdhaW5zdCBgaW1wb3J0U2NyaXB0c2AgcHJldmVudHMgdGhpcyBpbXBsZW1lbnRhdGlvbiBmcm9tIGJlaW5nIGluc3RhbGxlZCBpbnNpZGUgYSB3ZWIgd29ya2VyLFxuICAgICAgICAvLyB3aGVyZSBgZ2xvYmFsLnBvc3RNZXNzYWdlYCBtZWFucyBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnQgYW5kIGNhbid0IGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZS5cbiAgICAgICAgaWYgKGdsb2JhbC5wb3N0TWVzc2FnZSAmJiAhZ2xvYmFsLmltcG9ydFNjcmlwdHMpIHtcbiAgICAgICAgICAgIHZhciBwb3N0TWVzc2FnZUlzQXN5bmNocm9ub3VzID0gdHJ1ZTtcbiAgICAgICAgICAgIHZhciBvbGRPbk1lc3NhZ2UgPSBnbG9iYWwub25tZXNzYWdlO1xuICAgICAgICAgICAgZ2xvYmFsLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHBvc3RNZXNzYWdlSXNBc3luY2hyb25vdXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBnbG9iYWwucG9zdE1lc3NhZ2UoXCJcIiwgXCIqXCIpO1xuICAgICAgICAgICAgZ2xvYmFsLm9ubWVzc2FnZSA9IG9sZE9uTWVzc2FnZTtcbiAgICAgICAgICAgIHJldHVybiBwb3N0TWVzc2FnZUlzQXN5bmNocm9ub3VzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW5zdGFsbFBvc3RNZXNzYWdlSW1wbGVtZW50YXRpb24oKSB7XG4gICAgICAgIC8vIEluc3RhbGxzIGFuIGV2ZW50IGhhbmRsZXIgb24gYGdsb2JhbGAgZm9yIHRoZSBgbWVzc2FnZWAgZXZlbnQ6IHNlZVxuICAgICAgICAvLyAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL0RPTS93aW5kb3cucG9zdE1lc3NhZ2VcbiAgICAgICAgLy8gKiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9jb21tcy5odG1sI2Nyb3NzRG9jdW1lbnRNZXNzYWdlc1xuXG4gICAgICAgIHZhciBtZXNzYWdlUHJlZml4ID0gXCJzZXRJbW1lZGlhdGUkXCIgKyBNYXRoLnJhbmRvbSgpICsgXCIkXCI7XG4gICAgICAgIHZhciBvbkdsb2JhbE1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnNvdXJjZSA9PT0gZ2xvYmFsICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGV2ZW50LmRhdGEgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICBldmVudC5kYXRhLmluZGV4T2YobWVzc2FnZVByZWZpeCkgPT09IDApIHtcbiAgICAgICAgICAgICAgICBydW5JZlByZXNlbnQoK2V2ZW50LmRhdGEuc2xpY2UobWVzc2FnZVByZWZpeC5sZW5ndGgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoZ2xvYmFsLmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgICAgIGdsb2JhbC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBvbkdsb2JhbE1lc3NhZ2UsIGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdsb2JhbC5hdHRhY2hFdmVudChcIm9ubWVzc2FnZVwiLCBvbkdsb2JhbE1lc3NhZ2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVnaXN0ZXJJbW1lZGlhdGUgPSBmdW5jdGlvbihoYW5kbGUpIHtcbiAgICAgICAgICAgIGdsb2JhbC5wb3N0TWVzc2FnZShtZXNzYWdlUHJlZml4ICsgaGFuZGxlLCBcIipcIik7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW5zdGFsbE1lc3NhZ2VDaGFubmVsSW1wbGVtZW50YXRpb24oKSB7XG4gICAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XG4gICAgICAgIGNoYW5uZWwucG9ydDEub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGUgPSBldmVudC5kYXRhO1xuICAgICAgICAgICAgcnVuSWZQcmVzZW50KGhhbmRsZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmVnaXN0ZXJJbW1lZGlhdGUgPSBmdW5jdGlvbihoYW5kbGUpIHtcbiAgICAgICAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2UoaGFuZGxlKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsUmVhZHlTdGF0ZUNoYW5nZUltcGxlbWVudGF0aW9uKCkge1xuICAgICAgICB2YXIgaHRtbCA9IGRvYy5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIHJlZ2lzdGVySW1tZWRpYXRlID0gZnVuY3Rpb24oaGFuZGxlKSB7XG4gICAgICAgICAgICAvLyBDcmVhdGUgYSA8c2NyaXB0PiBlbGVtZW50OyBpdHMgcmVhZHlzdGF0ZWNoYW5nZSBldmVudCB3aWxsIGJlIGZpcmVkIGFzeW5jaHJvbm91c2x5IG9uY2UgaXQgaXMgaW5zZXJ0ZWRcbiAgICAgICAgICAgIC8vIGludG8gdGhlIGRvY3VtZW50LiBEbyBzbywgdGh1cyBxdWV1aW5nIHVwIHRoZSB0YXNrLiBSZW1lbWJlciB0byBjbGVhbiB1cCBvbmNlIGl0J3MgYmVlbiBjYWxsZWQuXG4gICAgICAgICAgICB2YXIgc2NyaXB0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XG4gICAgICAgICAgICBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJ1bklmUHJlc2VudChoYW5kbGUpO1xuICAgICAgICAgICAgICAgIHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO1xuICAgICAgICAgICAgICAgIGh0bWwucmVtb3ZlQ2hpbGQoc2NyaXB0KTtcbiAgICAgICAgICAgICAgICBzY3JpcHQgPSBudWxsO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGh0bWwuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU2V0VGltZW91dEltcGxlbWVudGF0aW9uKCkge1xuICAgICAgICByZWdpc3RlckltbWVkaWF0ZSA9IGZ1bmN0aW9uKGhhbmRsZSkge1xuICAgICAgICAgICAgc2V0VGltZW91dChydW5JZlByZXNlbnQsIDAsIGhhbmRsZSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gSWYgc3VwcG9ydGVkLCB3ZSBzaG91bGQgYXR0YWNoIHRvIHRoZSBwcm90b3R5cGUgb2YgZ2xvYmFsLCBzaW5jZSB0aGF0IGlzIHdoZXJlIHNldFRpbWVvdXQgZXQgYWwuIGxpdmUuXG4gICAgdmFyIGF0dGFjaFRvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihnbG9iYWwpO1xuICAgIGF0dGFjaFRvID0gYXR0YWNoVG8gJiYgYXR0YWNoVG8uc2V0VGltZW91dCA/IGF0dGFjaFRvIDogZ2xvYmFsO1xuXG4gICAgLy8gRG9uJ3QgZ2V0IGZvb2xlZCBieSBlLmcuIGJyb3dzZXJpZnkgZW52aXJvbm1lbnRzLlxuICAgIGlmICh7fS50b1N0cmluZy5jYWxsKGdsb2JhbC5wcm9jZXNzKSA9PT0gXCJbb2JqZWN0IHByb2Nlc3NdXCIpIHtcbiAgICAgICAgLy8gRm9yIE5vZGUuanMgYmVmb3JlIDAuOVxuICAgICAgICBpbnN0YWxsTmV4dFRpY2tJbXBsZW1lbnRhdGlvbigpO1xuXG4gICAgfSBlbHNlIGlmIChjYW5Vc2VQb3N0TWVzc2FnZSgpKSB7XG4gICAgICAgIC8vIEZvciBub24tSUUxMCBtb2Rlcm4gYnJvd3NlcnNcbiAgICAgICAgaW5zdGFsbFBvc3RNZXNzYWdlSW1wbGVtZW50YXRpb24oKTtcblxuICAgIH0gZWxzZSBpZiAoZ2xvYmFsLk1lc3NhZ2VDaGFubmVsKSB7XG4gICAgICAgIC8vIEZvciB3ZWIgd29ya2Vycywgd2hlcmUgc3VwcG9ydGVkXG4gICAgICAgIGluc3RhbGxNZXNzYWdlQ2hhbm5lbEltcGxlbWVudGF0aW9uKCk7XG5cbiAgICB9IGVsc2UgaWYgKGRvYyAmJiBcIm9ucmVhZHlzdGF0ZWNoYW5nZVwiIGluIGRvYy5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpKSB7XG4gICAgICAgIC8vIEZvciBJRSA24oCTOFxuICAgICAgICBpbnN0YWxsUmVhZHlTdGF0ZUNoYW5nZUltcGxlbWVudGF0aW9uKCk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3Igb2xkZXIgYnJvd3NlcnNcbiAgICAgICAgaW5zdGFsbFNldFRpbWVvdXRJbXBsZW1lbnRhdGlvbigpO1xuICAgIH1cblxuICAgIGF0dGFjaFRvLnNldEltbWVkaWF0ZSA9IHNldEltbWVkaWF0ZTtcbiAgICBhdHRhY2hUby5jbGVhckltbWVkaWF0ZSA9IGNsZWFySW1tZWRpYXRlO1xufSh0eXBlb2Ygc2VsZiA9PT0gXCJ1bmRlZmluZWRcIiA/IHR5cGVvZiBnbG9iYWwgPT09IFwidW5kZWZpbmVkXCIgPyB0aGlzIDogZ2xvYmFsIDogc2VsZikpO1xuIiwiXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIHVybCA9IHJlcXVpcmUoJy4vdXJsJyk7XG52YXIgcGFyc2VyID0gcmVxdWlyZSgnc29ja2V0LmlvLXBhcnNlcicpO1xudmFyIE1hbmFnZXIgPSByZXF1aXJlKCcuL21hbmFnZXInKTtcbnZhciBkZWJ1ZyA9IHJlcXVpcmUoJ2RlYnVnJykoJ3NvY2tldC5pby1jbGllbnQnKTtcblxuLyoqXG4gKiBNb2R1bGUgZXhwb3J0cy5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHMgPSBsb29rdXA7XG5cbi8qKlxuICogTWFuYWdlcnMgY2FjaGUuXG4gKi9cblxudmFyIGNhY2hlID0gZXhwb3J0cy5tYW5hZ2VycyA9IHt9O1xuXG4vKipcbiAqIExvb2tzIHVwIGFuIGV4aXN0aW5nIGBNYW5hZ2VyYCBmb3IgbXVsdGlwbGV4aW5nLlxuICogSWYgdGhlIHVzZXIgc3VtbW9uczpcbiAqXG4gKiAgIGBpbygnaHR0cDovL2xvY2FsaG9zdC9hJyk7YFxuICogICBgaW8oJ2h0dHA6Ly9sb2NhbGhvc3QvYicpO2BcbiAqXG4gKiBXZSByZXVzZSB0aGUgZXhpc3RpbmcgaW5zdGFuY2UgYmFzZWQgb24gc2FtZSBzY2hlbWUvcG9ydC9ob3N0LFxuICogYW5kIHdlIGluaXRpYWxpemUgc29ja2V0cyBmb3IgZWFjaCBuYW1lc3BhY2UuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBsb29rdXAgKHVyaSwgb3B0cykge1xuICBpZiAodHlwZW9mIHVyaSA9PT0gJ29iamVjdCcpIHtcbiAgICBvcHRzID0gdXJpO1xuICAgIHVyaSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIG9wdHMgPSBvcHRzIHx8IHt9O1xuXG4gIHZhciBwYXJzZWQgPSB1cmwodXJpKTtcbiAgdmFyIHNvdXJjZSA9IHBhcnNlZC5zb3VyY2U7XG4gIHZhciBpZCA9IHBhcnNlZC5pZDtcbiAgdmFyIHBhdGggPSBwYXJzZWQucGF0aDtcbiAgdmFyIHNhbWVOYW1lc3BhY2UgPSBjYWNoZVtpZF0gJiYgcGF0aCBpbiBjYWNoZVtpZF0ubnNwcztcbiAgdmFyIG5ld0Nvbm5lY3Rpb24gPSBvcHRzLmZvcmNlTmV3IHx8IG9wdHNbJ2ZvcmNlIG5ldyBjb25uZWN0aW9uJ10gfHxcbiAgICAgICAgICAgICAgICAgICAgICBmYWxzZSA9PT0gb3B0cy5tdWx0aXBsZXggfHwgc2FtZU5hbWVzcGFjZTtcblxuICB2YXIgaW87XG5cbiAgaWYgKG5ld0Nvbm5lY3Rpb24pIHtcbiAgICBkZWJ1ZygnaWdub3Jpbmcgc29ja2V0IGNhY2hlIGZvciAlcycsIHNvdXJjZSk7XG4gICAgaW8gPSBNYW5hZ2VyKHNvdXJjZSwgb3B0cyk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCFjYWNoZVtpZF0pIHtcbiAgICAgIGRlYnVnKCduZXcgaW8gaW5zdGFuY2UgZm9yICVzJywgc291cmNlKTtcbiAgICAgIGNhY2hlW2lkXSA9IE1hbmFnZXIoc291cmNlLCBvcHRzKTtcbiAgICB9XG4gICAgaW8gPSBjYWNoZVtpZF07XG4gIH1cbiAgaWYgKHBhcnNlZC5xdWVyeSAmJiAhb3B0cy5xdWVyeSkge1xuICAgIG9wdHMucXVlcnkgPSBwYXJzZWQucXVlcnk7XG4gIH1cbiAgcmV0dXJuIGlvLnNvY2tldChwYXJzZWQucGF0aCwgb3B0cyk7XG59XG5cbi8qKlxuICogUHJvdG9jb2wgdmVyc2lvbi5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmV4cG9ydHMucHJvdG9jb2wgPSBwYXJzZXIucHJvdG9jb2w7XG5cbi8qKlxuICogYGNvbm5lY3RgLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB1cmlcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZXhwb3J0cy5jb25uZWN0ID0gbG9va3VwO1xuXG4vKipcbiAqIEV4cG9zZSBjb25zdHJ1Y3RvcnMgZm9yIHN0YW5kYWxvbmUgYnVpbGQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5leHBvcnRzLk1hbmFnZXIgPSByZXF1aXJlKCcuL21hbmFnZXInKTtcbmV4cG9ydHMuU29ja2V0ID0gcmVxdWlyZSgnLi9zb2NrZXQnKTtcbiIsIlxuLyoqXG4gKiBNb2R1bGUgZGVwZW5kZW5jaWVzLlxuICovXG5cbnZhciBlaW8gPSByZXF1aXJlKCdlbmdpbmUuaW8tY2xpZW50Jyk7XG52YXIgU29ja2V0ID0gcmVxdWlyZSgnLi9zb2NrZXQnKTtcbnZhciBFbWl0dGVyID0gcmVxdWlyZSgnY29tcG9uZW50LWVtaXR0ZXInKTtcbnZhciBwYXJzZXIgPSByZXF1aXJlKCdzb2NrZXQuaW8tcGFyc2VyJyk7XG52YXIgb24gPSByZXF1aXJlKCcuL29uJyk7XG52YXIgYmluZCA9IHJlcXVpcmUoJ2NvbXBvbmVudC1iaW5kJyk7XG52YXIgZGVidWcgPSByZXF1aXJlKCdkZWJ1ZycpKCdzb2NrZXQuaW8tY2xpZW50Om1hbmFnZXInKTtcbnZhciBpbmRleE9mID0gcmVxdWlyZSgnaW5kZXhvZicpO1xudmFyIEJhY2tvZmYgPSByZXF1aXJlKCdiYWNrbzInKTtcblxuLyoqXG4gKiBJRTYrIGhhc093blByb3BlcnR5XG4gKi9cblxudmFyIGhhcyA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHNcbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IE1hbmFnZXI7XG5cbi8qKlxuICogYE1hbmFnZXJgIGNvbnN0cnVjdG9yLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBlbmdpbmUgaW5zdGFuY2Ugb3IgZW5naW5lIHVyaS9vcHRzXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uc1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBNYW5hZ2VyICh1cmksIG9wdHMpIHtcbiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIE1hbmFnZXIpKSByZXR1cm4gbmV3IE1hbmFnZXIodXJpLCBvcHRzKTtcbiAgaWYgKHVyaSAmJiAoJ29iamVjdCcgPT09IHR5cGVvZiB1cmkpKSB7XG4gICAgb3B0cyA9IHVyaTtcbiAgICB1cmkgPSB1bmRlZmluZWQ7XG4gIH1cbiAgb3B0cyA9IG9wdHMgfHwge307XG5cbiAgb3B0cy5wYXRoID0gb3B0cy5wYXRoIHx8ICcvc29ja2V0LmlvJztcbiAgdGhpcy5uc3BzID0ge307XG4gIHRoaXMuc3VicyA9IFtdO1xuICB0aGlzLm9wdHMgPSBvcHRzO1xuICB0aGlzLnJlY29ubmVjdGlvbihvcHRzLnJlY29ubmVjdGlvbiAhPT0gZmFsc2UpO1xuICB0aGlzLnJlY29ubmVjdGlvbkF0dGVtcHRzKG9wdHMucmVjb25uZWN0aW9uQXR0ZW1wdHMgfHwgSW5maW5pdHkpO1xuICB0aGlzLnJlY29ubmVjdGlvbkRlbGF5KG9wdHMucmVjb25uZWN0aW9uRGVsYXkgfHwgMTAwMCk7XG4gIHRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgob3B0cy5yZWNvbm5lY3Rpb25EZWxheU1heCB8fCA1MDAwKTtcbiAgdGhpcy5yYW5kb21pemF0aW9uRmFjdG9yKG9wdHMucmFuZG9taXphdGlvbkZhY3RvciB8fCAwLjUpO1xuICB0aGlzLmJhY2tvZmYgPSBuZXcgQmFja29mZih7XG4gICAgbWluOiB0aGlzLnJlY29ubmVjdGlvbkRlbGF5KCksXG4gICAgbWF4OiB0aGlzLnJlY29ubmVjdGlvbkRlbGF5TWF4KCksXG4gICAgaml0dGVyOiB0aGlzLnJhbmRvbWl6YXRpb25GYWN0b3IoKVxuICB9KTtcbiAgdGhpcy50aW1lb3V0KG51bGwgPT0gb3B0cy50aW1lb3V0ID8gMjAwMDAgOiBvcHRzLnRpbWVvdXQpO1xuICB0aGlzLnJlYWR5U3RhdGUgPSAnY2xvc2VkJztcbiAgdGhpcy51cmkgPSB1cmk7XG4gIHRoaXMuY29ubmVjdGluZyA9IFtdO1xuICB0aGlzLmxhc3RQaW5nID0gbnVsbDtcbiAgdGhpcy5lbmNvZGluZyA9IGZhbHNlO1xuICB0aGlzLnBhY2tldEJ1ZmZlciA9IFtdO1xuICB2YXIgX3BhcnNlciA9IG9wdHMucGFyc2VyIHx8IHBhcnNlcjtcbiAgdGhpcy5lbmNvZGVyID0gbmV3IF9wYXJzZXIuRW5jb2RlcigpO1xuICB0aGlzLmRlY29kZXIgPSBuZXcgX3BhcnNlci5EZWNvZGVyKCk7XG4gIHRoaXMuYXV0b0Nvbm5lY3QgPSBvcHRzLmF1dG9Db25uZWN0ICE9PSBmYWxzZTtcbiAgaWYgKHRoaXMuYXV0b0Nvbm5lY3QpIHRoaXMub3BlbigpO1xufVxuXG4vKipcbiAqIFByb3BhZ2F0ZSBnaXZlbiBldmVudCB0byBzb2NrZXRzIGFuZCBlbWl0IG9uIGB0aGlzYFxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbk1hbmFnZXIucHJvdG90eXBlLmVtaXRBbGwgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuZW1pdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICBmb3IgKHZhciBuc3AgaW4gdGhpcy5uc3BzKSB7XG4gICAgaWYgKGhhcy5jYWxsKHRoaXMubnNwcywgbnNwKSkge1xuICAgICAgdGhpcy5uc3BzW25zcF0uZW1pdC5hcHBseSh0aGlzLm5zcHNbbnNwXSwgYXJndW1lbnRzKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogVXBkYXRlIGBzb2NrZXQuaWRgIG9mIGFsbCBzb2NrZXRzXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUudXBkYXRlU29ja2V0SWRzID0gZnVuY3Rpb24gKCkge1xuICBmb3IgKHZhciBuc3AgaW4gdGhpcy5uc3BzKSB7XG4gICAgaWYgKGhhcy5jYWxsKHRoaXMubnNwcywgbnNwKSkge1xuICAgICAgdGhpcy5uc3BzW25zcF0uaWQgPSB0aGlzLmdlbmVyYXRlSWQobnNwKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogZ2VuZXJhdGUgYHNvY2tldC5pZGAgZm9yIHRoZSBnaXZlbiBgbnNwYFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuc3BcbiAqIEByZXR1cm4ge1N0cmluZ31cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbk1hbmFnZXIucHJvdG90eXBlLmdlbmVyYXRlSWQgPSBmdW5jdGlvbiAobnNwKSB7XG4gIHJldHVybiAobnNwID09PSAnLycgPyAnJyA6IChuc3AgKyAnIycpKSArIHRoaXMuZW5naW5lLmlkO1xufTtcblxuLyoqXG4gKiBNaXggaW4gYEVtaXR0ZXJgLlxuICovXG5cbkVtaXR0ZXIoTWFuYWdlci5wcm90b3R5cGUpO1xuXG4vKipcbiAqIFNldHMgdGhlIGByZWNvbm5lY3Rpb25gIGNvbmZpZy5cbiAqXG4gKiBAcGFyYW0ge0Jvb2xlYW59IHRydWUvZmFsc2UgaWYgaXQgc2hvdWxkIGF1dG9tYXRpY2FsbHkgcmVjb25uZWN0XG4gKiBAcmV0dXJuIHtNYW5hZ2VyfSBzZWxmIG9yIHZhbHVlXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbk1hbmFnZXIucHJvdG90eXBlLnJlY29ubmVjdGlvbiA9IGZ1bmN0aW9uICh2KSB7XG4gIGlmICghYXJndW1lbnRzLmxlbmd0aCkgcmV0dXJuIHRoaXMuX3JlY29ubmVjdGlvbjtcbiAgdGhpcy5fcmVjb25uZWN0aW9uID0gISF2O1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0cyB0aGUgcmVjb25uZWN0aW9uIGF0dGVtcHRzIGNvbmZpZy5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gbWF4IHJlY29ubmVjdGlvbiBhdHRlbXB0cyBiZWZvcmUgZ2l2aW5nIHVwXG4gKiBAcmV0dXJuIHtNYW5hZ2VyfSBzZWxmIG9yIHZhbHVlXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbk1hbmFnZXIucHJvdG90eXBlLnJlY29ubmVjdGlvbkF0dGVtcHRzID0gZnVuY3Rpb24gKHYpIHtcbiAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4gdGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHM7XG4gIHRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzID0gdjtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNldHMgdGhlIGRlbGF5IGJldHdlZW4gcmVjb25uZWN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gZGVsYXlcbiAqIEByZXR1cm4ge01hbmFnZXJ9IHNlbGYgb3IgdmFsdWVcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUucmVjb25uZWN0aW9uRGVsYXkgPSBmdW5jdGlvbiAodikge1xuICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHJldHVybiB0aGlzLl9yZWNvbm5lY3Rpb25EZWxheTtcbiAgdGhpcy5fcmVjb25uZWN0aW9uRGVsYXkgPSB2O1xuICB0aGlzLmJhY2tvZmYgJiYgdGhpcy5iYWNrb2ZmLnNldE1pbih2KTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuXG5NYW5hZ2VyLnByb3RvdHlwZS5yYW5kb21pemF0aW9uRmFjdG9yID0gZnVuY3Rpb24gKHYpIHtcbiAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4gdGhpcy5fcmFuZG9taXphdGlvbkZhY3RvcjtcbiAgdGhpcy5fcmFuZG9taXphdGlvbkZhY3RvciA9IHY7XG4gIHRoaXMuYmFja29mZiAmJiB0aGlzLmJhY2tvZmYuc2V0Sml0dGVyKHYpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0cyB0aGUgbWF4aW11bSBkZWxheSBiZXR3ZWVuIHJlY29ubmVjdGlvbnMuXG4gKlxuICogQHBhcmFtIHtOdW1iZXJ9IGRlbGF5XG4gKiBAcmV0dXJuIHtNYW5hZ2VyfSBzZWxmIG9yIHZhbHVlXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbk1hbmFnZXIucHJvdG90eXBlLnJlY29ubmVjdGlvbkRlbGF5TWF4ID0gZnVuY3Rpb24gKHYpIHtcbiAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSByZXR1cm4gdGhpcy5fcmVjb25uZWN0aW9uRGVsYXlNYXg7XG4gIHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4ID0gdjtcbiAgdGhpcy5iYWNrb2ZmICYmIHRoaXMuYmFja29mZi5zZXRNYXgodik7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXRzIHRoZSBjb25uZWN0aW9uIHRpbWVvdXQuIGBmYWxzZWAgdG8gZGlzYWJsZVxuICpcbiAqIEByZXR1cm4ge01hbmFnZXJ9IHNlbGYgb3IgdmFsdWVcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUudGltZW91dCA9IGZ1bmN0aW9uICh2KSB7XG4gIGlmICghYXJndW1lbnRzLmxlbmd0aCkgcmV0dXJuIHRoaXMuX3RpbWVvdXQ7XG4gIHRoaXMuX3RpbWVvdXQgPSB2O1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU3RhcnRzIHRyeWluZyB0byByZWNvbm5lY3QgaWYgcmVjb25uZWN0aW9uIGlzIGVuYWJsZWQgYW5kIHdlIGhhdmUgbm90XG4gKiBzdGFydGVkIHJlY29ubmVjdGluZyB5ZXRcbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5NYW5hZ2VyLnByb3RvdHlwZS5tYXliZVJlY29ubmVjdE9uT3BlbiA9IGZ1bmN0aW9uICgpIHtcbiAgLy8gT25seSB0cnkgdG8gcmVjb25uZWN0IGlmIGl0J3MgdGhlIGZpcnN0IHRpbWUgd2UncmUgY29ubmVjdGluZ1xuICBpZiAoIXRoaXMucmVjb25uZWN0aW5nICYmIHRoaXMuX3JlY29ubmVjdGlvbiAmJiB0aGlzLmJhY2tvZmYuYXR0ZW1wdHMgPT09IDApIHtcbiAgICAvLyBrZWVwcyByZWNvbm5lY3Rpb24gZnJvbSBmaXJpbmcgdHdpY2UgZm9yIHRoZSBzYW1lIHJlY29ubmVjdGlvbiBsb29wXG4gICAgdGhpcy5yZWNvbm5lY3QoKTtcbiAgfVxufTtcblxuLyoqXG4gKiBTZXRzIHRoZSBjdXJyZW50IHRyYW5zcG9ydCBgc29ja2V0YC5cbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvcHRpb25hbCwgY2FsbGJhY2tcbiAqIEByZXR1cm4ge01hbmFnZXJ9IHNlbGZcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUub3BlbiA9XG5NYW5hZ2VyLnByb3RvdHlwZS5jb25uZWN0ID0gZnVuY3Rpb24gKGZuLCBvcHRzKSB7XG4gIGRlYnVnKCdyZWFkeVN0YXRlICVzJywgdGhpcy5yZWFkeVN0YXRlKTtcbiAgaWYgKH50aGlzLnJlYWR5U3RhdGUuaW5kZXhPZignb3BlbicpKSByZXR1cm4gdGhpcztcblxuICBkZWJ1Zygnb3BlbmluZyAlcycsIHRoaXMudXJpKTtcbiAgdGhpcy5lbmdpbmUgPSBlaW8odGhpcy51cmksIHRoaXMub3B0cyk7XG4gIHZhciBzb2NrZXQgPSB0aGlzLmVuZ2luZTtcbiAgdmFyIHNlbGYgPSB0aGlzO1xuICB0aGlzLnJlYWR5U3RhdGUgPSAnb3BlbmluZyc7XG4gIHRoaXMuc2tpcFJlY29ubmVjdCA9IGZhbHNlO1xuXG4gIC8vIGVtaXQgYG9wZW5gXG4gIHZhciBvcGVuU3ViID0gb24oc29ja2V0LCAnb3BlbicsIGZ1bmN0aW9uICgpIHtcbiAgICBzZWxmLm9ub3BlbigpO1xuICAgIGZuICYmIGZuKCk7XG4gIH0pO1xuXG4gIC8vIGVtaXQgYGNvbm5lY3RfZXJyb3JgXG4gIHZhciBlcnJvclN1YiA9IG9uKHNvY2tldCwgJ2Vycm9yJywgZnVuY3Rpb24gKGRhdGEpIHtcbiAgICBkZWJ1ZygnY29ubmVjdF9lcnJvcicpO1xuICAgIHNlbGYuY2xlYW51cCgpO1xuICAgIHNlbGYucmVhZHlTdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHNlbGYuZW1pdEFsbCgnY29ubmVjdF9lcnJvcicsIGRhdGEpO1xuICAgIGlmIChmbikge1xuICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcignQ29ubmVjdGlvbiBlcnJvcicpO1xuICAgICAgZXJyLmRhdGEgPSBkYXRhO1xuICAgICAgZm4oZXJyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT25seSBkbyB0aGlzIGlmIHRoZXJlIGlzIG5vIGZuIHRvIGhhbmRsZSB0aGUgZXJyb3JcbiAgICAgIHNlbGYubWF5YmVSZWNvbm5lY3RPbk9wZW4oKTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vIGVtaXQgYGNvbm5lY3RfdGltZW91dGBcbiAgaWYgKGZhbHNlICE9PSB0aGlzLl90aW1lb3V0KSB7XG4gICAgdmFyIHRpbWVvdXQgPSB0aGlzLl90aW1lb3V0O1xuICAgIGRlYnVnKCdjb25uZWN0IGF0dGVtcHQgd2lsbCB0aW1lb3V0IGFmdGVyICVkJywgdGltZW91dCk7XG5cbiAgICAvLyBzZXQgdGltZXJcbiAgICB2YXIgdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGRlYnVnKCdjb25uZWN0IGF0dGVtcHQgdGltZWQgb3V0IGFmdGVyICVkJywgdGltZW91dCk7XG4gICAgICBvcGVuU3ViLmRlc3Ryb3koKTtcbiAgICAgIHNvY2tldC5jbG9zZSgpO1xuICAgICAgc29ja2V0LmVtaXQoJ2Vycm9yJywgJ3RpbWVvdXQnKTtcbiAgICAgIHNlbGYuZW1pdEFsbCgnY29ubmVjdF90aW1lb3V0JywgdGltZW91dCk7XG4gICAgfSwgdGltZW91dCk7XG5cbiAgICB0aGlzLnN1YnMucHVzaCh7XG4gICAgICBkZXN0cm95OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB0aGlzLnN1YnMucHVzaChvcGVuU3ViKTtcbiAgdGhpcy5zdWJzLnB1c2goZXJyb3JTdWIpO1xuXG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiB0cmFuc3BvcnQgb3Blbi5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5NYW5hZ2VyLnByb3RvdHlwZS5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7XG4gIGRlYnVnKCdvcGVuJyk7XG5cbiAgLy8gY2xlYXIgb2xkIHN1YnNcbiAgdGhpcy5jbGVhbnVwKCk7XG5cbiAgLy8gbWFyayBhcyBvcGVuXG4gIHRoaXMucmVhZHlTdGF0ZSA9ICdvcGVuJztcbiAgdGhpcy5lbWl0KCdvcGVuJyk7XG5cbiAgLy8gYWRkIG5ldyBzdWJzXG4gIHZhciBzb2NrZXQgPSB0aGlzLmVuZ2luZTtcbiAgdGhpcy5zdWJzLnB1c2gob24oc29ja2V0LCAnZGF0YScsIGJpbmQodGhpcywgJ29uZGF0YScpKSk7XG4gIHRoaXMuc3Vicy5wdXNoKG9uKHNvY2tldCwgJ3BpbmcnLCBiaW5kKHRoaXMsICdvbnBpbmcnKSkpO1xuICB0aGlzLnN1YnMucHVzaChvbihzb2NrZXQsICdwb25nJywgYmluZCh0aGlzLCAnb25wb25nJykpKTtcbiAgdGhpcy5zdWJzLnB1c2gob24oc29ja2V0LCAnZXJyb3InLCBiaW5kKHRoaXMsICdvbmVycm9yJykpKTtcbiAgdGhpcy5zdWJzLnB1c2gob24oc29ja2V0LCAnY2xvc2UnLCBiaW5kKHRoaXMsICdvbmNsb3NlJykpKTtcbiAgdGhpcy5zdWJzLnB1c2gob24odGhpcy5kZWNvZGVyLCAnZGVjb2RlZCcsIGJpbmQodGhpcywgJ29uZGVjb2RlZCcpKSk7XG59O1xuXG4vKipcbiAqIENhbGxlZCB1cG9uIGEgcGluZy5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5NYW5hZ2VyLnByb3RvdHlwZS5vbnBpbmcgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMubGFzdFBpbmcgPSBuZXcgRGF0ZSgpO1xuICB0aGlzLmVtaXRBbGwoJ3BpbmcnKTtcbn07XG5cbi8qKlxuICogQ2FsbGVkIHVwb24gYSBwYWNrZXQuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUub25wb25nID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmVtaXRBbGwoJ3BvbmcnLCBuZXcgRGF0ZSgpIC0gdGhpcy5sYXN0UGluZyk7XG59O1xuXG4vKipcbiAqIENhbGxlZCB3aXRoIGRhdGEuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUub25kYXRhID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgdGhpcy5kZWNvZGVyLmFkZChkYXRhKTtcbn07XG5cbi8qKlxuICogQ2FsbGVkIHdoZW4gcGFyc2VyIGZ1bGx5IGRlY29kZXMgYSBwYWNrZXQuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUub25kZWNvZGVkID0gZnVuY3Rpb24gKHBhY2tldCkge1xuICB0aGlzLmVtaXQoJ3BhY2tldCcsIHBhY2tldCk7XG59O1xuXG4vKipcbiAqIENhbGxlZCB1cG9uIHNvY2tldCBlcnJvci5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5NYW5hZ2VyLnByb3RvdHlwZS5vbmVycm9yID0gZnVuY3Rpb24gKGVycikge1xuICBkZWJ1ZygnZXJyb3InLCBlcnIpO1xuICB0aGlzLmVtaXRBbGwoJ2Vycm9yJywgZXJyKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBzb2NrZXQgZm9yIHRoZSBnaXZlbiBgbnNwYC5cbiAqXG4gKiBAcmV0dXJuIHtTb2NrZXR9XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbk1hbmFnZXIucHJvdG90eXBlLnNvY2tldCA9IGZ1bmN0aW9uIChuc3AsIG9wdHMpIHtcbiAgdmFyIHNvY2tldCA9IHRoaXMubnNwc1tuc3BdO1xuICBpZiAoIXNvY2tldCkge1xuICAgIHNvY2tldCA9IG5ldyBTb2NrZXQodGhpcywgbnNwLCBvcHRzKTtcbiAgICB0aGlzLm5zcHNbbnNwXSA9IHNvY2tldDtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgc29ja2V0Lm9uKCdjb25uZWN0aW5nJywgb25Db25uZWN0aW5nKTtcbiAgICBzb2NrZXQub24oJ2Nvbm5lY3QnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBzb2NrZXQuaWQgPSBzZWxmLmdlbmVyYXRlSWQobnNwKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmF1dG9Db25uZWN0KSB7XG4gICAgICAvLyBtYW51YWxseSBjYWxsIGhlcmUgc2luY2UgY29ubmVjdGluZyBldmVudCBpcyBmaXJlZCBiZWZvcmUgbGlzdGVuaW5nXG4gICAgICBvbkNvbm5lY3RpbmcoKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBvbkNvbm5lY3RpbmcgKCkge1xuICAgIGlmICghfmluZGV4T2Yoc2VsZi5jb25uZWN0aW5nLCBzb2NrZXQpKSB7XG4gICAgICBzZWxmLmNvbm5lY3RpbmcucHVzaChzb2NrZXQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzb2NrZXQ7XG59O1xuXG4vKipcbiAqIENhbGxlZCB1cG9uIGEgc29ja2V0IGNsb3NlLlxuICpcbiAqIEBwYXJhbSB7U29ja2V0fSBzb2NrZXRcbiAqL1xuXG5NYW5hZ2VyLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24gKHNvY2tldCkge1xuICB2YXIgaW5kZXggPSBpbmRleE9mKHRoaXMuY29ubmVjdGluZywgc29ja2V0KTtcbiAgaWYgKH5pbmRleCkgdGhpcy5jb25uZWN0aW5nLnNwbGljZShpbmRleCwgMSk7XG4gIGlmICh0aGlzLmNvbm5lY3RpbmcubGVuZ3RoKSByZXR1cm47XG5cbiAgdGhpcy5jbG9zZSgpO1xufTtcblxuLyoqXG4gKiBXcml0ZXMgYSBwYWNrZXQuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHBhY2tldFxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUucGFja2V0ID0gZnVuY3Rpb24gKHBhY2tldCkge1xuICBkZWJ1Zygnd3JpdGluZyBwYWNrZXQgJWonLCBwYWNrZXQpO1xuICB2YXIgc2VsZiA9IHRoaXM7XG4gIGlmIChwYWNrZXQucXVlcnkgJiYgcGFja2V0LnR5cGUgPT09IDApIHBhY2tldC5uc3AgKz0gJz8nICsgcGFja2V0LnF1ZXJ5O1xuXG4gIGlmICghc2VsZi5lbmNvZGluZykge1xuICAgIC8vIGVuY29kZSwgdGhlbiB3cml0ZSB0byBlbmdpbmUgd2l0aCByZXN1bHRcbiAgICBzZWxmLmVuY29kaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmVuY29kZXIuZW5jb2RlKHBhY2tldCwgZnVuY3Rpb24gKGVuY29kZWRQYWNrZXRzKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVuY29kZWRQYWNrZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHNlbGYuZW5naW5lLndyaXRlKGVuY29kZWRQYWNrZXRzW2ldLCBwYWNrZXQub3B0aW9ucyk7XG4gICAgICB9XG4gICAgICBzZWxmLmVuY29kaW5nID0gZmFsc2U7XG4gICAgICBzZWxmLnByb2Nlc3NQYWNrZXRRdWV1ZSgpO1xuICAgIH0pO1xuICB9IGVsc2UgeyAvLyBhZGQgcGFja2V0IHRvIHRoZSBxdWV1ZVxuICAgIHNlbGYucGFja2V0QnVmZmVyLnB1c2gocGFja2V0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBJZiBwYWNrZXQgYnVmZmVyIGlzIG5vbi1lbXB0eSwgYmVnaW5zIGVuY29kaW5nIHRoZVxuICogbmV4dCBwYWNrZXQgaW4gbGluZS5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5NYW5hZ2VyLnByb3RvdHlwZS5wcm9jZXNzUGFja2V0UXVldWUgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLnBhY2tldEJ1ZmZlci5sZW5ndGggPiAwICYmICF0aGlzLmVuY29kaW5nKSB7XG4gICAgdmFyIHBhY2sgPSB0aGlzLnBhY2tldEJ1ZmZlci5zaGlmdCgpO1xuICAgIHRoaXMucGFja2V0KHBhY2spO1xuICB9XG59O1xuXG4vKipcbiAqIENsZWFuIHVwIHRyYW5zcG9ydCBzdWJzY3JpcHRpb25zIGFuZCBwYWNrZXQgYnVmZmVyLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbk1hbmFnZXIucHJvdG90eXBlLmNsZWFudXAgPSBmdW5jdGlvbiAoKSB7XG4gIGRlYnVnKCdjbGVhbnVwJyk7XG5cbiAgdmFyIHN1YnNMZW5ndGggPSB0aGlzLnN1YnMubGVuZ3RoO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN1YnNMZW5ndGg7IGkrKykge1xuICAgIHZhciBzdWIgPSB0aGlzLnN1YnMuc2hpZnQoKTtcbiAgICBzdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgdGhpcy5wYWNrZXRCdWZmZXIgPSBbXTtcbiAgdGhpcy5lbmNvZGluZyA9IGZhbHNlO1xuICB0aGlzLmxhc3RQaW5nID0gbnVsbDtcblxuICB0aGlzLmRlY29kZXIuZGVzdHJveSgpO1xufTtcblxuLyoqXG4gKiBDbG9zZSB0aGUgY3VycmVudCBzb2NrZXQuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUuY2xvc2UgPVxuTWFuYWdlci5wcm90b3R5cGUuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcbiAgZGVidWcoJ2Rpc2Nvbm5lY3QnKTtcbiAgdGhpcy5za2lwUmVjb25uZWN0ID0gdHJ1ZTtcbiAgdGhpcy5yZWNvbm5lY3RpbmcgPSBmYWxzZTtcbiAgaWYgKCdvcGVuaW5nJyA9PT0gdGhpcy5yZWFkeVN0YXRlKSB7XG4gICAgLy8gYG9uY2xvc2VgIHdpbGwgbm90IGZpcmUgYmVjYXVzZVxuICAgIC8vIGFuIG9wZW4gZXZlbnQgbmV2ZXIgaGFwcGVuZWRcbiAgICB0aGlzLmNsZWFudXAoKTtcbiAgfVxuICB0aGlzLmJhY2tvZmYucmVzZXQoKTtcbiAgdGhpcy5yZWFkeVN0YXRlID0gJ2Nsb3NlZCc7XG4gIGlmICh0aGlzLmVuZ2luZSkgdGhpcy5lbmdpbmUuY2xvc2UoKTtcbn07XG5cbi8qKlxuICogQ2FsbGVkIHVwb24gZW5naW5lIGNsb3NlLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbk1hbmFnZXIucHJvdG90eXBlLm9uY2xvc2UgPSBmdW5jdGlvbiAocmVhc29uKSB7XG4gIGRlYnVnKCdvbmNsb3NlJyk7XG5cbiAgdGhpcy5jbGVhbnVwKCk7XG4gIHRoaXMuYmFja29mZi5yZXNldCgpO1xuICB0aGlzLnJlYWR5U3RhdGUgPSAnY2xvc2VkJztcbiAgdGhpcy5lbWl0KCdjbG9zZScsIHJlYXNvbik7XG5cbiAgaWYgKHRoaXMuX3JlY29ubmVjdGlvbiAmJiAhdGhpcy5za2lwUmVjb25uZWN0KSB7XG4gICAgdGhpcy5yZWNvbm5lY3QoKTtcbiAgfVxufTtcblxuLyoqXG4gKiBBdHRlbXB0IGEgcmVjb25uZWN0aW9uLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbk1hbmFnZXIucHJvdG90eXBlLnJlY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMucmVjb25uZWN0aW5nIHx8IHRoaXMuc2tpcFJlY29ubmVjdCkgcmV0dXJuIHRoaXM7XG5cbiAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gIGlmICh0aGlzLmJhY2tvZmYuYXR0ZW1wdHMgPj0gdGhpcy5fcmVjb25uZWN0aW9uQXR0ZW1wdHMpIHtcbiAgICBkZWJ1ZygncmVjb25uZWN0IGZhaWxlZCcpO1xuICAgIHRoaXMuYmFja29mZi5yZXNldCgpO1xuICAgIHRoaXMuZW1pdEFsbCgncmVjb25uZWN0X2ZhaWxlZCcpO1xuICAgIHRoaXMucmVjb25uZWN0aW5nID0gZmFsc2U7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGRlbGF5ID0gdGhpcy5iYWNrb2ZmLmR1cmF0aW9uKCk7XG4gICAgZGVidWcoJ3dpbGwgd2FpdCAlZG1zIGJlZm9yZSByZWNvbm5lY3QgYXR0ZW1wdCcsIGRlbGF5KTtcblxuICAgIHRoaXMucmVjb25uZWN0aW5nID0gdHJ1ZTtcbiAgICB2YXIgdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGlmIChzZWxmLnNraXBSZWNvbm5lY3QpIHJldHVybjtcblxuICAgICAgZGVidWcoJ2F0dGVtcHRpbmcgcmVjb25uZWN0Jyk7XG4gICAgICBzZWxmLmVtaXRBbGwoJ3JlY29ubmVjdF9hdHRlbXB0Jywgc2VsZi5iYWNrb2ZmLmF0dGVtcHRzKTtcbiAgICAgIHNlbGYuZW1pdEFsbCgncmVjb25uZWN0aW5nJywgc2VsZi5iYWNrb2ZmLmF0dGVtcHRzKTtcblxuICAgICAgLy8gY2hlY2sgYWdhaW4gZm9yIHRoZSBjYXNlIHNvY2tldCBjbG9zZWQgaW4gYWJvdmUgZXZlbnRzXG4gICAgICBpZiAoc2VsZi5za2lwUmVjb25uZWN0KSByZXR1cm47XG5cbiAgICAgIHNlbGYub3BlbihmdW5jdGlvbiAoZXJyKSB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBkZWJ1ZygncmVjb25uZWN0IGF0dGVtcHQgZXJyb3InKTtcbiAgICAgICAgICBzZWxmLnJlY29ubmVjdGluZyA9IGZhbHNlO1xuICAgICAgICAgIHNlbGYucmVjb25uZWN0KCk7XG4gICAgICAgICAgc2VsZi5lbWl0QWxsKCdyZWNvbm5lY3RfZXJyb3InLCBlcnIuZGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGVidWcoJ3JlY29ubmVjdCBzdWNjZXNzJyk7XG4gICAgICAgICAgc2VsZi5vbnJlY29ubmVjdCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCBkZWxheSk7XG5cbiAgICB0aGlzLnN1YnMucHVzaCh7XG4gICAgICBkZXN0cm95OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn07XG5cbi8qKlxuICogQ2FsbGVkIHVwb24gc3VjY2Vzc2Z1bCByZWNvbm5lY3QuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuTWFuYWdlci5wcm90b3R5cGUub25yZWNvbm5lY3QgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBhdHRlbXB0ID0gdGhpcy5iYWNrb2ZmLmF0dGVtcHRzO1xuICB0aGlzLnJlY29ubmVjdGluZyA9IGZhbHNlO1xuICB0aGlzLmJhY2tvZmYucmVzZXQoKTtcbiAgdGhpcy51cGRhdGVTb2NrZXRJZHMoKTtcbiAgdGhpcy5lbWl0QWxsKCdyZWNvbm5lY3QnLCBhdHRlbXB0KTtcbn07XG4iLCJcbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSBvbjtcblxuLyoqXG4gKiBIZWxwZXIgZm9yIHN1YnNjcmlwdGlvbnMuXG4gKlxuICogQHBhcmFtIHtPYmplY3R8RXZlbnRFbWl0dGVyfSBvYmogd2l0aCBgRW1pdHRlcmAgbWl4aW4gb3IgYEV2ZW50RW1pdHRlcmBcbiAqIEBwYXJhbSB7U3RyaW5nfSBldmVudCBuYW1lXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBvbiAob2JqLCBldiwgZm4pIHtcbiAgb2JqLm9uKGV2LCBmbik7XG4gIHJldHVybiB7XG4gICAgZGVzdHJveTogZnVuY3Rpb24gKCkge1xuICAgICAgb2JqLnJlbW92ZUxpc3RlbmVyKGV2LCBmbik7XG4gICAgfVxuICB9O1xufVxuIiwiXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIHBhcnNlciA9IHJlcXVpcmUoJ3NvY2tldC5pby1wYXJzZXInKTtcbnZhciBFbWl0dGVyID0gcmVxdWlyZSgnY29tcG9uZW50LWVtaXR0ZXInKTtcbnZhciB0b0FycmF5ID0gcmVxdWlyZSgndG8tYXJyYXknKTtcbnZhciBvbiA9IHJlcXVpcmUoJy4vb24nKTtcbnZhciBiaW5kID0gcmVxdWlyZSgnY29tcG9uZW50LWJpbmQnKTtcbnZhciBkZWJ1ZyA9IHJlcXVpcmUoJ2RlYnVnJykoJ3NvY2tldC5pby1jbGllbnQ6c29ja2V0Jyk7XG52YXIgcGFyc2VxcyA9IHJlcXVpcmUoJ3BhcnNlcXMnKTtcbnZhciBoYXNCaW4gPSByZXF1aXJlKCdoYXMtYmluYXJ5MicpO1xuXG4vKipcbiAqIE1vZHVsZSBleHBvcnRzLlxuICovXG5cbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0cyA9IFNvY2tldDtcblxuLyoqXG4gKiBJbnRlcm5hbCBldmVudHMgKGJsYWNrbGlzdGVkKS5cbiAqIFRoZXNlIGV2ZW50cyBjYW4ndCBiZSBlbWl0dGVkIGJ5IHRoZSB1c2VyLlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbnZhciBldmVudHMgPSB7XG4gIGNvbm5lY3Q6IDEsXG4gIGNvbm5lY3RfZXJyb3I6IDEsXG4gIGNvbm5lY3RfdGltZW91dDogMSxcbiAgY29ubmVjdGluZzogMSxcbiAgZGlzY29ubmVjdDogMSxcbiAgZXJyb3I6IDEsXG4gIHJlY29ubmVjdDogMSxcbiAgcmVjb25uZWN0X2F0dGVtcHQ6IDEsXG4gIHJlY29ubmVjdF9mYWlsZWQ6IDEsXG4gIHJlY29ubmVjdF9lcnJvcjogMSxcbiAgcmVjb25uZWN0aW5nOiAxLFxuICBwaW5nOiAxLFxuICBwb25nOiAxXG59O1xuXG4vKipcbiAqIFNob3J0Y3V0IHRvIGBFbWl0dGVyI2VtaXRgLlxuICovXG5cbnZhciBlbWl0ID0gRW1pdHRlci5wcm90b3R5cGUuZW1pdDtcblxuLyoqXG4gKiBgU29ja2V0YCBjb25zdHJ1Y3Rvci5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIFNvY2tldCAoaW8sIG5zcCwgb3B0cykge1xuICB0aGlzLmlvID0gaW87XG4gIHRoaXMubnNwID0gbnNwO1xuICB0aGlzLmpzb24gPSB0aGlzOyAvLyBjb21wYXRcbiAgdGhpcy5pZHMgPSAwO1xuICB0aGlzLmFja3MgPSB7fTtcbiAgdGhpcy5yZWNlaXZlQnVmZmVyID0gW107XG4gIHRoaXMuc2VuZEJ1ZmZlciA9IFtdO1xuICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlO1xuICB0aGlzLmRpc2Nvbm5lY3RlZCA9IHRydWU7XG4gIHRoaXMuZmxhZ3MgPSB7fTtcbiAgaWYgKG9wdHMgJiYgb3B0cy5xdWVyeSkge1xuICAgIHRoaXMucXVlcnkgPSBvcHRzLnF1ZXJ5O1xuICB9XG4gIGlmICh0aGlzLmlvLmF1dG9Db25uZWN0KSB0aGlzLm9wZW4oKTtcbn1cblxuLyoqXG4gKiBNaXggaW4gYEVtaXR0ZXJgLlxuICovXG5cbkVtaXR0ZXIoU29ja2V0LnByb3RvdHlwZSk7XG5cbi8qKlxuICogU3Vic2NyaWJlIHRvIG9wZW4sIGNsb3NlIGFuZCBwYWNrZXQgZXZlbnRzXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5zdWJFdmVudHMgPSBmdW5jdGlvbiAoKSB7XG4gIGlmICh0aGlzLnN1YnMpIHJldHVybjtcblxuICB2YXIgaW8gPSB0aGlzLmlvO1xuICB0aGlzLnN1YnMgPSBbXG4gICAgb24oaW8sICdvcGVuJywgYmluZCh0aGlzLCAnb25vcGVuJykpLFxuICAgIG9uKGlvLCAncGFja2V0JywgYmluZCh0aGlzLCAnb25wYWNrZXQnKSksXG4gICAgb24oaW8sICdjbG9zZScsIGJpbmQodGhpcywgJ29uY2xvc2UnKSlcbiAgXTtcbn07XG5cbi8qKlxuICogXCJPcGVuc1wiIHRoZSBzb2NrZXQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9wZW4gPVxuU29ja2V0LnByb3RvdHlwZS5jb25uZWN0ID0gZnVuY3Rpb24gKCkge1xuICBpZiAodGhpcy5jb25uZWN0ZWQpIHJldHVybiB0aGlzO1xuXG4gIHRoaXMuc3ViRXZlbnRzKCk7XG4gIHRoaXMuaW8ub3BlbigpOyAvLyBlbnN1cmUgb3BlblxuICBpZiAoJ29wZW4nID09PSB0aGlzLmlvLnJlYWR5U3RhdGUpIHRoaXMub25vcGVuKCk7XG4gIHRoaXMuZW1pdCgnY29ubmVjdGluZycpO1xuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2VuZHMgYSBgbWVzc2FnZWAgZXZlbnQuXG4gKlxuICogQHJldHVybiB7U29ja2V0fSBzZWxmXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblNvY2tldC5wcm90b3R5cGUuc2VuZCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGFyZ3MgPSB0b0FycmF5KGFyZ3VtZW50cyk7XG4gIGFyZ3MudW5zaGlmdCgnbWVzc2FnZScpO1xuICB0aGlzLmVtaXQuYXBwbHkodGhpcywgYXJncyk7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBPdmVycmlkZSBgZW1pdGAuXG4gKiBJZiB0aGUgZXZlbnQgaXMgaW4gYGV2ZW50c2AsIGl0J3MgZW1pdHRlZCBub3JtYWxseS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZXZlbnQgbmFtZVxuICogQHJldHVybiB7U29ja2V0fSBzZWxmXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblNvY2tldC5wcm90b3R5cGUuZW1pdCA9IGZ1bmN0aW9uIChldikge1xuICBpZiAoZXZlbnRzLmhhc093blByb3BlcnR5KGV2KSkge1xuICAgIGVtaXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHZhciBhcmdzID0gdG9BcnJheShhcmd1bWVudHMpO1xuICB2YXIgcGFja2V0ID0ge1xuICAgIHR5cGU6ICh0aGlzLmZsYWdzLmJpbmFyeSAhPT0gdW5kZWZpbmVkID8gdGhpcy5mbGFncy5iaW5hcnkgOiBoYXNCaW4oYXJncykpID8gcGFyc2VyLkJJTkFSWV9FVkVOVCA6IHBhcnNlci5FVkVOVCxcbiAgICBkYXRhOiBhcmdzXG4gIH07XG5cbiAgcGFja2V0Lm9wdGlvbnMgPSB7fTtcbiAgcGFja2V0Lm9wdGlvbnMuY29tcHJlc3MgPSAhdGhpcy5mbGFncyB8fCBmYWxzZSAhPT0gdGhpcy5mbGFncy5jb21wcmVzcztcblxuICAvLyBldmVudCBhY2sgY2FsbGJhY2tcbiAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0pIHtcbiAgICBkZWJ1ZygnZW1pdHRpbmcgcGFja2V0IHdpdGggYWNrIGlkICVkJywgdGhpcy5pZHMpO1xuICAgIHRoaXMuYWNrc1t0aGlzLmlkc10gPSBhcmdzLnBvcCgpO1xuICAgIHBhY2tldC5pZCA9IHRoaXMuaWRzKys7XG4gIH1cblxuICBpZiAodGhpcy5jb25uZWN0ZWQpIHtcbiAgICB0aGlzLnBhY2tldChwYWNrZXQpO1xuICB9IGVsc2Uge1xuICAgIHRoaXMuc2VuZEJ1ZmZlci5wdXNoKHBhY2tldCk7XG4gIH1cblxuICB0aGlzLmZsYWdzID0ge307XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vKipcbiAqIFNlbmRzIGEgcGFja2V0LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYWNrZXRcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblNvY2tldC5wcm90b3R5cGUucGFja2V0ID0gZnVuY3Rpb24gKHBhY2tldCkge1xuICBwYWNrZXQubnNwID0gdGhpcy5uc3A7XG4gIHRoaXMuaW8ucGFja2V0KHBhY2tldCk7XG59O1xuXG4vKipcbiAqIENhbGxlZCB1cG9uIGVuZ2luZSBgb3BlbmAuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5vbm9wZW4gPSBmdW5jdGlvbiAoKSB7XG4gIGRlYnVnKCd0cmFuc3BvcnQgaXMgb3BlbiAtIGNvbm5lY3RpbmcnKTtcblxuICAvLyB3cml0ZSBjb25uZWN0IHBhY2tldCBpZiBuZWNlc3NhcnlcbiAgaWYgKCcvJyAhPT0gdGhpcy5uc3ApIHtcbiAgICBpZiAodGhpcy5xdWVyeSkge1xuICAgICAgdmFyIHF1ZXJ5ID0gdHlwZW9mIHRoaXMucXVlcnkgPT09ICdvYmplY3QnID8gcGFyc2Vxcy5lbmNvZGUodGhpcy5xdWVyeSkgOiB0aGlzLnF1ZXJ5O1xuICAgICAgZGVidWcoJ3NlbmRpbmcgY29ubmVjdCBwYWNrZXQgd2l0aCBxdWVyeSAlcycsIHF1ZXJ5KTtcbiAgICAgIHRoaXMucGFja2V0KHt0eXBlOiBwYXJzZXIuQ09OTkVDVCwgcXVlcnk6IHF1ZXJ5fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFja2V0KHt0eXBlOiBwYXJzZXIuQ09OTkVDVH0pO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiBlbmdpbmUgYGNsb3NlYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gcmVhc29uXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9uY2xvc2UgPSBmdW5jdGlvbiAocmVhc29uKSB7XG4gIGRlYnVnKCdjbG9zZSAoJXMpJywgcmVhc29uKTtcbiAgdGhpcy5jb25uZWN0ZWQgPSBmYWxzZTtcbiAgdGhpcy5kaXNjb25uZWN0ZWQgPSB0cnVlO1xuICBkZWxldGUgdGhpcy5pZDtcbiAgdGhpcy5lbWl0KCdkaXNjb25uZWN0JywgcmVhc29uKTtcbn07XG5cbi8qKlxuICogQ2FsbGVkIHdpdGggc29ja2V0IHBhY2tldC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9ucGFja2V0ID0gZnVuY3Rpb24gKHBhY2tldCkge1xuICB2YXIgc2FtZU5hbWVzcGFjZSA9IHBhY2tldC5uc3AgPT09IHRoaXMubnNwO1xuICB2YXIgcm9vdE5hbWVzcGFjZUVycm9yID0gcGFja2V0LnR5cGUgPT09IHBhcnNlci5FUlJPUiAmJiBwYWNrZXQubnNwID09PSAnLyc7XG5cbiAgaWYgKCFzYW1lTmFtZXNwYWNlICYmICFyb290TmFtZXNwYWNlRXJyb3IpIHJldHVybjtcblxuICBzd2l0Y2ggKHBhY2tldC50eXBlKSB7XG4gICAgY2FzZSBwYXJzZXIuQ09OTkVDVDpcbiAgICAgIHRoaXMub25jb25uZWN0KCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgcGFyc2VyLkVWRU5UOlxuICAgICAgdGhpcy5vbmV2ZW50KHBhY2tldCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgcGFyc2VyLkJJTkFSWV9FVkVOVDpcbiAgICAgIHRoaXMub25ldmVudChwYWNrZXQpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIHBhcnNlci5BQ0s6XG4gICAgICB0aGlzLm9uYWNrKHBhY2tldCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgcGFyc2VyLkJJTkFSWV9BQ0s6XG4gICAgICB0aGlzLm9uYWNrKHBhY2tldCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgcGFyc2VyLkRJU0NPTk5FQ1Q6XG4gICAgICB0aGlzLm9uZGlzY29ubmVjdCgpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIHBhcnNlci5FUlJPUjpcbiAgICAgIHRoaXMuZW1pdCgnZXJyb3InLCBwYWNrZXQuZGF0YSk7XG4gICAgICBicmVhaztcbiAgfVxufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiBhIHNlcnZlciBldmVudC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9uZXZlbnQgPSBmdW5jdGlvbiAocGFja2V0KSB7XG4gIHZhciBhcmdzID0gcGFja2V0LmRhdGEgfHwgW107XG4gIGRlYnVnKCdlbWl0dGluZyBldmVudCAlaicsIGFyZ3MpO1xuXG4gIGlmIChudWxsICE9IHBhY2tldC5pZCkge1xuICAgIGRlYnVnKCdhdHRhY2hpbmcgYWNrIGNhbGxiYWNrIHRvIGV2ZW50Jyk7XG4gICAgYXJncy5wdXNoKHRoaXMuYWNrKHBhY2tldC5pZCkpO1xuICB9XG5cbiAgaWYgKHRoaXMuY29ubmVjdGVkKSB7XG4gICAgZW1pdC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnJlY2VpdmVCdWZmZXIucHVzaChhcmdzKTtcbiAgfVxufTtcblxuLyoqXG4gKiBQcm9kdWNlcyBhbiBhY2sgY2FsbGJhY2sgdG8gZW1pdCB3aXRoIGFuIGV2ZW50LlxuICpcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cblNvY2tldC5wcm90b3R5cGUuYWNrID0gZnVuY3Rpb24gKGlkKSB7XG4gIHZhciBzZWxmID0gdGhpcztcbiAgdmFyIHNlbnQgPSBmYWxzZTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAvLyBwcmV2ZW50IGRvdWJsZSBjYWxsYmFja3NcbiAgICBpZiAoc2VudCkgcmV0dXJuO1xuICAgIHNlbnQgPSB0cnVlO1xuICAgIHZhciBhcmdzID0gdG9BcnJheShhcmd1bWVudHMpO1xuICAgIGRlYnVnKCdzZW5kaW5nIGFjayAlaicsIGFyZ3MpO1xuXG4gICAgc2VsZi5wYWNrZXQoe1xuICAgICAgdHlwZTogaGFzQmluKGFyZ3MpID8gcGFyc2VyLkJJTkFSWV9BQ0sgOiBwYXJzZXIuQUNLLFxuICAgICAgaWQ6IGlkLFxuICAgICAgZGF0YTogYXJnc1xuICAgIH0pO1xuICB9O1xufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiBhIHNlcnZlciBhY2tub3dsZWdlbWVudC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9uYWNrID0gZnVuY3Rpb24gKHBhY2tldCkge1xuICB2YXIgYWNrID0gdGhpcy5hY2tzW3BhY2tldC5pZF07XG4gIGlmICgnZnVuY3Rpb24nID09PSB0eXBlb2YgYWNrKSB7XG4gICAgZGVidWcoJ2NhbGxpbmcgYWNrICVzIHdpdGggJWonLCBwYWNrZXQuaWQsIHBhY2tldC5kYXRhKTtcbiAgICBhY2suYXBwbHkodGhpcywgcGFja2V0LmRhdGEpO1xuICAgIGRlbGV0ZSB0aGlzLmFja3NbcGFja2V0LmlkXTtcbiAgfSBlbHNlIHtcbiAgICBkZWJ1ZygnYmFkIGFjayAlcycsIHBhY2tldC5pZCk7XG4gIH1cbn07XG5cbi8qKlxuICogQ2FsbGVkIHVwb24gc2VydmVyIGNvbm5lY3QuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5vbmNvbm5lY3QgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuY29ubmVjdGVkID0gdHJ1ZTtcbiAgdGhpcy5kaXNjb25uZWN0ZWQgPSBmYWxzZTtcbiAgdGhpcy5lbWl0KCdjb25uZWN0Jyk7XG4gIHRoaXMuZW1pdEJ1ZmZlcmVkKCk7XG59O1xuXG4vKipcbiAqIEVtaXQgYnVmZmVyZWQgZXZlbnRzIChyZWNlaXZlZCBhbmQgZW1pdHRlZCkuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5lbWl0QnVmZmVyZWQgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBpO1xuICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5yZWNlaXZlQnVmZmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgZW1pdC5hcHBseSh0aGlzLCB0aGlzLnJlY2VpdmVCdWZmZXJbaV0pO1xuICB9XG4gIHRoaXMucmVjZWl2ZUJ1ZmZlciA9IFtdO1xuXG4gIGZvciAoaSA9IDA7IGkgPCB0aGlzLnNlbmRCdWZmZXIubGVuZ3RoOyBpKyspIHtcbiAgICB0aGlzLnBhY2tldCh0aGlzLnNlbmRCdWZmZXJbaV0pO1xuICB9XG4gIHRoaXMuc2VuZEJ1ZmZlciA9IFtdO1xufTtcblxuLyoqXG4gKiBDYWxsZWQgdXBvbiBzZXJ2ZXIgZGlzY29ubmVjdC5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLm9uZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcbiAgZGVidWcoJ3NlcnZlciBkaXNjb25uZWN0ICglcyknLCB0aGlzLm5zcCk7XG4gIHRoaXMuZGVzdHJveSgpO1xuICB0aGlzLm9uY2xvc2UoJ2lvIHNlcnZlciBkaXNjb25uZWN0Jyk7XG59O1xuXG4vKipcbiAqIENhbGxlZCB1cG9uIGZvcmNlZCBjbGllbnQvc2VydmVyIHNpZGUgZGlzY29ubmVjdGlvbnMsXG4gKiB0aGlzIG1ldGhvZCBlbnN1cmVzIHRoZSBtYW5hZ2VyIHN0b3BzIHRyYWNraW5nIHVzIGFuZFxuICogdGhhdCByZWNvbm5lY3Rpb25zIGRvbid0IGdldCB0cmlnZ2VyZWQgZm9yIHRoaXMuXG4gKlxuICogQGFwaSBwcml2YXRlLlxuICovXG5cblNvY2tldC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuc3Vicykge1xuICAgIC8vIGNsZWFuIHN1YnNjcmlwdGlvbnMgdG8gYXZvaWQgcmVjb25uZWN0aW9uc1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zdWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLnN1YnNbaV0uZGVzdHJveSgpO1xuICAgIH1cbiAgICB0aGlzLnN1YnMgPSBudWxsO1xuICB9XG5cbiAgdGhpcy5pby5kZXN0cm95KHRoaXMpO1xufTtcblxuLyoqXG4gKiBEaXNjb25uZWN0cyB0aGUgc29ja2V0IG1hbnVhbGx5LlxuICpcbiAqIEByZXR1cm4ge1NvY2tldH0gc2VsZlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5Tb2NrZXQucHJvdG90eXBlLmNsb3NlID1cblNvY2tldC5wcm90b3R5cGUuZGlzY29ubmVjdCA9IGZ1bmN0aW9uICgpIHtcbiAgaWYgKHRoaXMuY29ubmVjdGVkKSB7XG4gICAgZGVidWcoJ3BlcmZvcm1pbmcgZGlzY29ubmVjdCAoJXMpJywgdGhpcy5uc3ApO1xuICAgIHRoaXMucGFja2V0KHsgdHlwZTogcGFyc2VyLkRJU0NPTk5FQ1QgfSk7XG4gIH1cblxuICAvLyByZW1vdmUgc29ja2V0IGZyb20gcG9vbFxuICB0aGlzLmRlc3Ryb3koKTtcblxuICBpZiAodGhpcy5jb25uZWN0ZWQpIHtcbiAgICAvLyBmaXJlIGV2ZW50c1xuICAgIHRoaXMub25jbG9zZSgnaW8gY2xpZW50IGRpc2Nvbm5lY3QnKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn07XG5cbi8qKlxuICogU2V0cyB0aGUgY29tcHJlc3MgZmxhZy5cbiAqXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGlmIGB0cnVlYCwgY29tcHJlc3NlcyB0aGUgc2VuZGluZyBkYXRhXG4gKiBAcmV0dXJuIHtTb2NrZXR9IHNlbGZcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuU29ja2V0LnByb3RvdHlwZS5jb21wcmVzcyA9IGZ1bmN0aW9uIChjb21wcmVzcykge1xuICB0aGlzLmZsYWdzLmNvbXByZXNzID0gY29tcHJlc3M7XG4gIHJldHVybiB0aGlzO1xufTtcblxuLyoqXG4gKiBTZXRzIHRoZSBiaW5hcnkgZmxhZ1xuICpcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gd2hldGhlciB0aGUgZW1pdHRlZCBkYXRhIGNvbnRhaW5zIGJpbmFyeVxuICogQHJldHVybiB7U29ja2V0fSBzZWxmXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cblNvY2tldC5wcm90b3R5cGUuYmluYXJ5ID0gZnVuY3Rpb24gKGJpbmFyeSkge1xuICB0aGlzLmZsYWdzLmJpbmFyeSA9IGJpbmFyeTtcbiAgcmV0dXJuIHRoaXM7XG59O1xuIiwiXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIHBhcnNldXJpID0gcmVxdWlyZSgncGFyc2V1cmknKTtcbnZhciBkZWJ1ZyA9IHJlcXVpcmUoJ2RlYnVnJykoJ3NvY2tldC5pby1jbGllbnQ6dXJsJyk7XG5cbi8qKlxuICogTW9kdWxlIGV4cG9ydHMuXG4gKi9cblxubW9kdWxlLmV4cG9ydHMgPSB1cmw7XG5cbi8qKlxuICogVVJMIHBhcnNlci5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdXJsXG4gKiBAcGFyYW0ge09iamVjdH0gQW4gb2JqZWN0IG1lYW50IHRvIG1pbWljIHdpbmRvdy5sb2NhdGlvbi5cbiAqICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byB3aW5kb3cubG9jYXRpb24uXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIHVybCAodXJpLCBsb2MpIHtcbiAgdmFyIG9iaiA9IHVyaTtcblxuICAvLyBkZWZhdWx0IHRvIHdpbmRvdy5sb2NhdGlvblxuICBsb2MgPSBsb2MgfHwgKHR5cGVvZiBsb2NhdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgbG9jYXRpb24pO1xuICBpZiAobnVsbCA9PSB1cmkpIHVyaSA9IGxvYy5wcm90b2NvbCArICcvLycgKyBsb2MuaG9zdDtcblxuICAvLyByZWxhdGl2ZSBwYXRoIHN1cHBvcnRcbiAgaWYgKCdzdHJpbmcnID09PSB0eXBlb2YgdXJpKSB7XG4gICAgaWYgKCcvJyA9PT0gdXJpLmNoYXJBdCgwKSkge1xuICAgICAgaWYgKCcvJyA9PT0gdXJpLmNoYXJBdCgxKSkge1xuICAgICAgICB1cmkgPSBsb2MucHJvdG9jb2wgKyB1cmk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB1cmkgPSBsb2MuaG9zdCArIHVyaTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIS9eKGh0dHBzP3x3c3M/KTpcXC9cXC8vLnRlc3QodXJpKSkge1xuICAgICAgZGVidWcoJ3Byb3RvY29sLWxlc3MgdXJsICVzJywgdXJpKTtcbiAgICAgIGlmICgndW5kZWZpbmVkJyAhPT0gdHlwZW9mIGxvYykge1xuICAgICAgICB1cmkgPSBsb2MucHJvdG9jb2wgKyAnLy8nICsgdXJpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXJpID0gJ2h0dHBzOi8vJyArIHVyaTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBwYXJzZVxuICAgIGRlYnVnKCdwYXJzZSAlcycsIHVyaSk7XG4gICAgb2JqID0gcGFyc2V1cmkodXJpKTtcbiAgfVxuXG4gIC8vIG1ha2Ugc3VyZSB3ZSB0cmVhdCBgbG9jYWxob3N0OjgwYCBhbmQgYGxvY2FsaG9zdGAgZXF1YWxseVxuICBpZiAoIW9iai5wb3J0KSB7XG4gICAgaWYgKC9eKGh0dHB8d3MpJC8udGVzdChvYmoucHJvdG9jb2wpKSB7XG4gICAgICBvYmoucG9ydCA9ICc4MCc7XG4gICAgfSBlbHNlIGlmICgvXihodHRwfHdzKXMkLy50ZXN0KG9iai5wcm90b2NvbCkpIHtcbiAgICAgIG9iai5wb3J0ID0gJzQ0Myc7XG4gICAgfVxuICB9XG5cbiAgb2JqLnBhdGggPSBvYmoucGF0aCB8fCAnLyc7XG5cbiAgdmFyIGlwdjYgPSBvYmouaG9zdC5pbmRleE9mKCc6JykgIT09IC0xO1xuICB2YXIgaG9zdCA9IGlwdjYgPyAnWycgKyBvYmouaG9zdCArICddJyA6IG9iai5ob3N0O1xuXG4gIC8vIGRlZmluZSB1bmlxdWUgaWRcbiAgb2JqLmlkID0gb2JqLnByb3RvY29sICsgJzovLycgKyBob3N0ICsgJzonICsgb2JqLnBvcnQ7XG4gIC8vIGRlZmluZSBocmVmXG4gIG9iai5ocmVmID0gb2JqLnByb3RvY29sICsgJzovLycgKyBob3N0ICsgKGxvYyAmJiBsb2MucG9ydCA9PT0gb2JqLnBvcnQgPyAnJyA6ICgnOicgKyBvYmoucG9ydCkpO1xuXG4gIHJldHVybiBvYmo7XG59XG4iLCIvKmdsb2JhbCBCbG9iLEZpbGUqL1xuXG4vKipcbiAqIE1vZHVsZSByZXF1aXJlbWVudHNcbiAqL1xuXG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzYXJyYXknKTtcbnZhciBpc0J1ZiA9IHJlcXVpcmUoJy4vaXMtYnVmZmVyJyk7XG52YXIgdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xudmFyIHdpdGhOYXRpdmVCbG9iID0gdHlwZW9mIEJsb2IgPT09ICdmdW5jdGlvbicgfHwgKHR5cGVvZiBCbG9iICE9PSAndW5kZWZpbmVkJyAmJiB0b1N0cmluZy5jYWxsKEJsb2IpID09PSAnW29iamVjdCBCbG9iQ29uc3RydWN0b3JdJyk7XG52YXIgd2l0aE5hdGl2ZUZpbGUgPSB0eXBlb2YgRmlsZSA9PT0gJ2Z1bmN0aW9uJyB8fCAodHlwZW9mIEZpbGUgIT09ICd1bmRlZmluZWQnICYmIHRvU3RyaW5nLmNhbGwoRmlsZSkgPT09ICdbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl0nKTtcblxuLyoqXG4gKiBSZXBsYWNlcyBldmVyeSBCdWZmZXIgfCBBcnJheUJ1ZmZlciBpbiBwYWNrZXQgd2l0aCBhIG51bWJlcmVkIHBsYWNlaG9sZGVyLlxuICogQW55dGhpbmcgd2l0aCBibG9icyBvciBmaWxlcyBzaG91bGQgYmUgZmVkIHRocm91Z2ggcmVtb3ZlQmxvYnMgYmVmb3JlIGNvbWluZ1xuICogaGVyZS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0IC0gc29ja2V0LmlvIGV2ZW50IHBhY2tldFxuICogQHJldHVybiB7T2JqZWN0fSB3aXRoIGRlY29uc3RydWN0ZWQgcGFja2V0IGFuZCBsaXN0IG9mIGJ1ZmZlcnNcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZXhwb3J0cy5kZWNvbnN0cnVjdFBhY2tldCA9IGZ1bmN0aW9uKHBhY2tldCkge1xuICB2YXIgYnVmZmVycyA9IFtdO1xuICB2YXIgcGFja2V0RGF0YSA9IHBhY2tldC5kYXRhO1xuICB2YXIgcGFjayA9IHBhY2tldDtcbiAgcGFjay5kYXRhID0gX2RlY29uc3RydWN0UGFja2V0KHBhY2tldERhdGEsIGJ1ZmZlcnMpO1xuICBwYWNrLmF0dGFjaG1lbnRzID0gYnVmZmVycy5sZW5ndGg7IC8vIG51bWJlciBvZiBiaW5hcnkgJ2F0dGFjaG1lbnRzJ1xuICByZXR1cm4ge3BhY2tldDogcGFjaywgYnVmZmVyczogYnVmZmVyc307XG59O1xuXG5mdW5jdGlvbiBfZGVjb25zdHJ1Y3RQYWNrZXQoZGF0YSwgYnVmZmVycykge1xuICBpZiAoIWRhdGEpIHJldHVybiBkYXRhO1xuXG4gIGlmIChpc0J1ZihkYXRhKSkge1xuICAgIHZhciBwbGFjZWhvbGRlciA9IHsgX3BsYWNlaG9sZGVyOiB0cnVlLCBudW06IGJ1ZmZlcnMubGVuZ3RoIH07XG4gICAgYnVmZmVycy5wdXNoKGRhdGEpO1xuICAgIHJldHVybiBwbGFjZWhvbGRlcjtcbiAgfSBlbHNlIGlmIChpc0FycmF5KGRhdGEpKSB7XG4gICAgdmFyIG5ld0RhdGEgPSBuZXcgQXJyYXkoZGF0YS5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgbmV3RGF0YVtpXSA9IF9kZWNvbnN0cnVjdFBhY2tldChkYXRhW2ldLCBidWZmZXJzKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ld0RhdGE7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICEoZGF0YSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgdmFyIG5ld0RhdGEgPSB7fTtcbiAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSkge1xuICAgICAgbmV3RGF0YVtrZXldID0gX2RlY29uc3RydWN0UGFja2V0KGRhdGFba2V5XSwgYnVmZmVycyk7XG4gICAgfVxuICAgIHJldHVybiBuZXdEYXRhO1xuICB9XG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIFJlY29uc3RydWN0cyBhIGJpbmFyeSBwYWNrZXQgZnJvbSBpdHMgcGxhY2Vob2xkZXIgcGFja2V0IGFuZCBidWZmZXJzXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHBhY2tldCAtIGV2ZW50IHBhY2tldCB3aXRoIHBsYWNlaG9sZGVyc1xuICogQHBhcmFtIHtBcnJheX0gYnVmZmVycyAtIGJpbmFyeSBidWZmZXJzIHRvIHB1dCBpbiBwbGFjZWhvbGRlciBwb3NpdGlvbnNcbiAqIEByZXR1cm4ge09iamVjdH0gcmVjb25zdHJ1Y3RlZCBwYWNrZXRcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZXhwb3J0cy5yZWNvbnN0cnVjdFBhY2tldCA9IGZ1bmN0aW9uKHBhY2tldCwgYnVmZmVycykge1xuICBwYWNrZXQuZGF0YSA9IF9yZWNvbnN0cnVjdFBhY2tldChwYWNrZXQuZGF0YSwgYnVmZmVycyk7XG4gIHBhY2tldC5hdHRhY2htZW50cyA9IHVuZGVmaW5lZDsgLy8gbm8gbG9uZ2VyIHVzZWZ1bFxuICByZXR1cm4gcGFja2V0O1xufTtcblxuZnVuY3Rpb24gX3JlY29uc3RydWN0UGFja2V0KGRhdGEsIGJ1ZmZlcnMpIHtcbiAgaWYgKCFkYXRhKSByZXR1cm4gZGF0YTtcblxuICBpZiAoZGF0YSAmJiBkYXRhLl9wbGFjZWhvbGRlcikge1xuICAgIHJldHVybiBidWZmZXJzW2RhdGEubnVtXTsgLy8gYXBwcm9wcmlhdGUgYnVmZmVyIChzaG91bGQgYmUgbmF0dXJhbCBvcmRlciBhbnl3YXkpXG4gIH0gZWxzZSBpZiAoaXNBcnJheShkYXRhKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgZGF0YVtpXSA9IF9yZWNvbnN0cnVjdFBhY2tldChkYXRhW2ldLCBidWZmZXJzKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRhdGEpIHtcbiAgICAgIGRhdGFba2V5XSA9IF9yZWNvbnN0cnVjdFBhY2tldChkYXRhW2tleV0sIGJ1ZmZlcnMpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIEFzeW5jaHJvbm91c2x5IHJlbW92ZXMgQmxvYnMgb3IgRmlsZXMgZnJvbSBkYXRhIHZpYVxuICogRmlsZVJlYWRlcidzIHJlYWRBc0FycmF5QnVmZmVyIG1ldGhvZC4gVXNlZCBiZWZvcmUgZW5jb2RpbmdcbiAqIGRhdGEgYXMgbXNncGFjay4gQ2FsbHMgY2FsbGJhY2sgd2l0aCB0aGUgYmxvYmxlc3MgZGF0YS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gZGF0YVxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2tcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmV4cG9ydHMucmVtb3ZlQmxvYnMgPSBmdW5jdGlvbihkYXRhLCBjYWxsYmFjaykge1xuICBmdW5jdGlvbiBfcmVtb3ZlQmxvYnMob2JqLCBjdXJLZXksIGNvbnRhaW5pbmdPYmplY3QpIHtcbiAgICBpZiAoIW9iaikgcmV0dXJuIG9iajtcblxuICAgIC8vIGNvbnZlcnQgYW55IGJsb2JcbiAgICBpZiAoKHdpdGhOYXRpdmVCbG9iICYmIG9iaiBpbnN0YW5jZW9mIEJsb2IpIHx8XG4gICAgICAgICh3aXRoTmF0aXZlRmlsZSAmJiBvYmogaW5zdGFuY2VvZiBGaWxlKSkge1xuICAgICAgcGVuZGluZ0Jsb2JzKys7XG5cbiAgICAgIC8vIGFzeW5jIGZpbGVyZWFkZXJcbiAgICAgIHZhciBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgIGZpbGVSZWFkZXIub25sb2FkID0gZnVuY3Rpb24oKSB7IC8vIHRoaXMucmVzdWx0ID09IGFycmF5YnVmZmVyXG4gICAgICAgIGlmIChjb250YWluaW5nT2JqZWN0KSB7XG4gICAgICAgICAgY29udGFpbmluZ09iamVjdFtjdXJLZXldID0gdGhpcy5yZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgYmxvYmxlc3NEYXRhID0gdGhpcy5yZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBub3RoaW5nIHBlbmRpbmcgaXRzIGNhbGxiYWNrIHRpbWVcbiAgICAgICAgaWYoISAtLXBlbmRpbmdCbG9icykge1xuICAgICAgICAgIGNhbGxiYWNrKGJsb2JsZXNzRGF0YSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIob2JqKTsgLy8gYmxvYiAtPiBhcnJheWJ1ZmZlclxuICAgIH0gZWxzZSBpZiAoaXNBcnJheShvYmopKSB7IC8vIGhhbmRsZSBhcnJheVxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvYmoubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgX3JlbW92ZUJsb2JzKG9ialtpXSwgaSwgb2JqKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmICFpc0J1ZihvYmopKSB7IC8vIGFuZCBvYmplY3RcbiAgICAgIGZvciAodmFyIGtleSBpbiBvYmopIHtcbiAgICAgICAgX3JlbW92ZUJsb2JzKG9ialtrZXldLCBrZXksIG9iaik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIHBlbmRpbmdCbG9icyA9IDA7XG4gIHZhciBibG9ibGVzc0RhdGEgPSBkYXRhO1xuICBfcmVtb3ZlQmxvYnMoYmxvYmxlc3NEYXRhKTtcbiAgaWYgKCFwZW5kaW5nQmxvYnMpIHtcbiAgICBjYWxsYmFjayhibG9ibGVzc0RhdGEpO1xuICB9XG59O1xuIiwiXG4vKipcbiAqIE1vZHVsZSBkZXBlbmRlbmNpZXMuXG4gKi9cblxudmFyIGRlYnVnID0gcmVxdWlyZSgnZGVidWcnKSgnc29ja2V0LmlvLXBhcnNlcicpO1xudmFyIEVtaXR0ZXIgPSByZXF1aXJlKCdjb21wb25lbnQtZW1pdHRlcicpO1xudmFyIGJpbmFyeSA9IHJlcXVpcmUoJy4vYmluYXJ5Jyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJ2lzYXJyYXknKTtcbnZhciBpc0J1ZiA9IHJlcXVpcmUoJy4vaXMtYnVmZmVyJyk7XG5cbi8qKlxuICogUHJvdG9jb2wgdmVyc2lvbi5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmV4cG9ydHMucHJvdG9jb2wgPSA0O1xuXG4vKipcbiAqIFBhY2tldCB0eXBlcy5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmV4cG9ydHMudHlwZXMgPSBbXG4gICdDT05ORUNUJyxcbiAgJ0RJU0NPTk5FQ1QnLFxuICAnRVZFTlQnLFxuICAnQUNLJyxcbiAgJ0VSUk9SJyxcbiAgJ0JJTkFSWV9FVkVOVCcsXG4gICdCSU5BUllfQUNLJ1xuXTtcblxuLyoqXG4gKiBQYWNrZXQgdHlwZSBgY29ubmVjdGAuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5leHBvcnRzLkNPTk5FQ1QgPSAwO1xuXG4vKipcbiAqIFBhY2tldCB0eXBlIGBkaXNjb25uZWN0YC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmV4cG9ydHMuRElTQ09OTkVDVCA9IDE7XG5cbi8qKlxuICogUGFja2V0IHR5cGUgYGV2ZW50YC5cbiAqXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmV4cG9ydHMuRVZFTlQgPSAyO1xuXG4vKipcbiAqIFBhY2tldCB0eXBlIGBhY2tgLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZXhwb3J0cy5BQ0sgPSAzO1xuXG4vKipcbiAqIFBhY2tldCB0eXBlIGBlcnJvcmAuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5leHBvcnRzLkVSUk9SID0gNDtcblxuLyoqXG4gKiBQYWNrZXQgdHlwZSAnYmluYXJ5IGV2ZW50J1xuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZXhwb3J0cy5CSU5BUllfRVZFTlQgPSA1O1xuXG4vKipcbiAqIFBhY2tldCB0eXBlIGBiaW5hcnkgYWNrYC4gRm9yIGFja3Mgd2l0aCBiaW5hcnkgYXJndW1lbnRzLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZXhwb3J0cy5CSU5BUllfQUNLID0gNjtcblxuLyoqXG4gKiBFbmNvZGVyIGNvbnN0cnVjdG9yLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZXhwb3J0cy5FbmNvZGVyID0gRW5jb2RlcjtcblxuLyoqXG4gKiBEZWNvZGVyIGNvbnN0cnVjdG9yLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZXhwb3J0cy5EZWNvZGVyID0gRGVjb2RlcjtcblxuLyoqXG4gKiBBIHNvY2tldC5pbyBFbmNvZGVyIGluc3RhbmNlXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBFbmNvZGVyKCkge31cblxudmFyIEVSUk9SX1BBQ0tFVCA9IGV4cG9ydHMuRVJST1IgKyAnXCJlbmNvZGUgZXJyb3JcIic7XG5cbi8qKlxuICogRW5jb2RlIGEgcGFja2V0IGFzIGEgc2luZ2xlIHN0cmluZyBpZiBub24tYmluYXJ5LCBvciBhcyBhXG4gKiBidWZmZXIgc2VxdWVuY2UsIGRlcGVuZGluZyBvbiBwYWNrZXQgdHlwZS5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqIC0gcGFja2V0IG9iamVjdFxuICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBmdW5jdGlvbiB0byBoYW5kbGUgZW5jb2RpbmdzIChsaWtlbHkgZW5naW5lLndyaXRlKVxuICogQHJldHVybiBDYWxscyBjYWxsYmFjayB3aXRoIEFycmF5IG9mIGVuY29kaW5nc1xuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5FbmNvZGVyLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbihvYmosIGNhbGxiYWNrKXtcbiAgZGVidWcoJ2VuY29kaW5nIHBhY2tldCAlaicsIG9iaik7XG5cbiAgaWYgKGV4cG9ydHMuQklOQVJZX0VWRU5UID09PSBvYmoudHlwZSB8fCBleHBvcnRzLkJJTkFSWV9BQ0sgPT09IG9iai50eXBlKSB7XG4gICAgZW5jb2RlQXNCaW5hcnkob2JqLCBjYWxsYmFjayk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGVuY29kaW5nID0gZW5jb2RlQXNTdHJpbmcob2JqKTtcbiAgICBjYWxsYmFjayhbZW5jb2RpbmddKTtcbiAgfVxufTtcblxuLyoqXG4gKiBFbmNvZGUgcGFja2V0IGFzIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0XG4gKiBAcmV0dXJuIHtTdHJpbmd9IGVuY29kZWRcbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGVuY29kZUFzU3RyaW5nKG9iaikge1xuXG4gIC8vIGZpcnN0IGlzIHR5cGVcbiAgdmFyIHN0ciA9ICcnICsgb2JqLnR5cGU7XG5cbiAgLy8gYXR0YWNobWVudHMgaWYgd2UgaGF2ZSB0aGVtXG4gIGlmIChleHBvcnRzLkJJTkFSWV9FVkVOVCA9PT0gb2JqLnR5cGUgfHwgZXhwb3J0cy5CSU5BUllfQUNLID09PSBvYmoudHlwZSkge1xuICAgIHN0ciArPSBvYmouYXR0YWNobWVudHMgKyAnLSc7XG4gIH1cblxuICAvLyBpZiB3ZSBoYXZlIGEgbmFtZXNwYWNlIG90aGVyIHRoYW4gYC9gXG4gIC8vIHdlIGFwcGVuZCBpdCBmb2xsb3dlZCBieSBhIGNvbW1hIGAsYFxuICBpZiAob2JqLm5zcCAmJiAnLycgIT09IG9iai5uc3ApIHtcbiAgICBzdHIgKz0gb2JqLm5zcCArICcsJztcbiAgfVxuXG4gIC8vIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IHRoZSBpZFxuICBpZiAobnVsbCAhPSBvYmouaWQpIHtcbiAgICBzdHIgKz0gb2JqLmlkO1xuICB9XG5cbiAgLy8ganNvbiBkYXRhXG4gIGlmIChudWxsICE9IG9iai5kYXRhKSB7XG4gICAgdmFyIHBheWxvYWQgPSB0cnlTdHJpbmdpZnkob2JqLmRhdGEpO1xuICAgIGlmIChwYXlsb2FkICE9PSBmYWxzZSkge1xuICAgICAgc3RyICs9IHBheWxvYWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBFUlJPUl9QQUNLRVQ7XG4gICAgfVxuICB9XG5cbiAgZGVidWcoJ2VuY29kZWQgJWogYXMgJXMnLCBvYmosIHN0cik7XG4gIHJldHVybiBzdHI7XG59XG5cbmZ1bmN0aW9uIHRyeVN0cmluZ2lmeShzdHIpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoc3RyKTtcbiAgfSBjYXRjaChlKXtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBFbmNvZGUgcGFja2V0IGFzICdidWZmZXIgc2VxdWVuY2UnIGJ5IHJlbW92aW5nIGJsb2JzLCBhbmRcbiAqIGRlY29uc3RydWN0aW5nIHBhY2tldCBpbnRvIG9iamVjdCB3aXRoIHBsYWNlaG9sZGVycyBhbmRcbiAqIGEgbGlzdCBvZiBidWZmZXJzLlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYWNrZXRcbiAqIEByZXR1cm4ge0J1ZmZlcn0gZW5jb2RlZFxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gZW5jb2RlQXNCaW5hcnkob2JqLCBjYWxsYmFjaykge1xuXG4gIGZ1bmN0aW9uIHdyaXRlRW5jb2RpbmcoYmxvYmxlc3NEYXRhKSB7XG4gICAgdmFyIGRlY29uc3RydWN0aW9uID0gYmluYXJ5LmRlY29uc3RydWN0UGFja2V0KGJsb2JsZXNzRGF0YSk7XG4gICAgdmFyIHBhY2sgPSBlbmNvZGVBc1N0cmluZyhkZWNvbnN0cnVjdGlvbi5wYWNrZXQpO1xuICAgIHZhciBidWZmZXJzID0gZGVjb25zdHJ1Y3Rpb24uYnVmZmVycztcblxuICAgIGJ1ZmZlcnMudW5zaGlmdChwYWNrKTsgLy8gYWRkIHBhY2tldCBpbmZvIHRvIGJlZ2lubmluZyBvZiBkYXRhIGxpc3RcbiAgICBjYWxsYmFjayhidWZmZXJzKTsgLy8gd3JpdGUgYWxsIHRoZSBidWZmZXJzXG4gIH1cblxuICBiaW5hcnkucmVtb3ZlQmxvYnMob2JqLCB3cml0ZUVuY29kaW5nKTtcbn1cblxuLyoqXG4gKiBBIHNvY2tldC5pbyBEZWNvZGVyIGluc3RhbmNlXG4gKlxuICogQHJldHVybiB7T2JqZWN0fSBkZWNvZGVyXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIERlY29kZXIoKSB7XG4gIHRoaXMucmVjb25zdHJ1Y3RvciA9IG51bGw7XG59XG5cbi8qKlxuICogTWl4IGluIGBFbWl0dGVyYCB3aXRoIERlY29kZXIuXG4gKi9cblxuRW1pdHRlcihEZWNvZGVyLnByb3RvdHlwZSk7XG5cbi8qKlxuICogRGVjb2RlcyBhbiBlbmNvZGVkIHBhY2tldCBzdHJpbmcgaW50byBwYWNrZXQgSlNPTi5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gb2JqIC0gZW5jb2RlZCBwYWNrZXRcbiAqIEByZXR1cm4ge09iamVjdH0gcGFja2V0XG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbkRlY29kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uKG9iaikge1xuICB2YXIgcGFja2V0O1xuICBpZiAodHlwZW9mIG9iaiA9PT0gJ3N0cmluZycpIHtcbiAgICBwYWNrZXQgPSBkZWNvZGVTdHJpbmcob2JqKTtcbiAgICBpZiAoZXhwb3J0cy5CSU5BUllfRVZFTlQgPT09IHBhY2tldC50eXBlIHx8IGV4cG9ydHMuQklOQVJZX0FDSyA9PT0gcGFja2V0LnR5cGUpIHsgLy8gYmluYXJ5IHBhY2tldCdzIGpzb25cbiAgICAgIHRoaXMucmVjb25zdHJ1Y3RvciA9IG5ldyBCaW5hcnlSZWNvbnN0cnVjdG9yKHBhY2tldCk7XG5cbiAgICAgIC8vIG5vIGF0dGFjaG1lbnRzLCBsYWJlbGVkIGJpbmFyeSBidXQgbm8gYmluYXJ5IGRhdGEgdG8gZm9sbG93XG4gICAgICBpZiAodGhpcy5yZWNvbnN0cnVjdG9yLnJlY29uUGFjay5hdHRhY2htZW50cyA9PT0gMCkge1xuICAgICAgICB0aGlzLmVtaXQoJ2RlY29kZWQnLCBwYWNrZXQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7IC8vIG5vbi1iaW5hcnkgZnVsbCBwYWNrZXRcbiAgICAgIHRoaXMuZW1pdCgnZGVjb2RlZCcsIHBhY2tldCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzQnVmKG9iaikgfHwgb2JqLmJhc2U2NCkgeyAvLyByYXcgYmluYXJ5IGRhdGFcbiAgICBpZiAoIXRoaXMucmVjb25zdHJ1Y3Rvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdnb3QgYmluYXJ5IGRhdGEgd2hlbiBub3QgcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFja2V0ID0gdGhpcy5yZWNvbnN0cnVjdG9yLnRha2VCaW5hcnlEYXRhKG9iaik7XG4gICAgICBpZiAocGFja2V0KSB7IC8vIHJlY2VpdmVkIGZpbmFsIGJ1ZmZlclxuICAgICAgICB0aGlzLnJlY29uc3RydWN0b3IgPSBudWxsO1xuICAgICAgICB0aGlzLmVtaXQoJ2RlY29kZWQnLCBwYWNrZXQpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gdHlwZTogJyArIG9iaik7XG4gIH1cbn07XG5cbi8qKlxuICogRGVjb2RlIGEgcGFja2V0IFN0cmluZyAoSlNPTiBkYXRhKVxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHJcbiAqIEByZXR1cm4ge09iamVjdH0gcGFja2V0XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBkZWNvZGVTdHJpbmcoc3RyKSB7XG4gIHZhciBpID0gMDtcbiAgLy8gbG9vayB1cCB0eXBlXG4gIHZhciBwID0ge1xuICAgIHR5cGU6IE51bWJlcihzdHIuY2hhckF0KDApKVxuICB9O1xuXG4gIGlmIChudWxsID09IGV4cG9ydHMudHlwZXNbcC50eXBlXSkge1xuICAgIHJldHVybiBlcnJvcigndW5rbm93biBwYWNrZXQgdHlwZSAnICsgcC50eXBlKTtcbiAgfVxuXG4gIC8vIGxvb2sgdXAgYXR0YWNobWVudHMgaWYgdHlwZSBiaW5hcnlcbiAgaWYgKGV4cG9ydHMuQklOQVJZX0VWRU5UID09PSBwLnR5cGUgfHwgZXhwb3J0cy5CSU5BUllfQUNLID09PSBwLnR5cGUpIHtcbiAgICB2YXIgYnVmID0gJyc7XG4gICAgd2hpbGUgKHN0ci5jaGFyQXQoKytpKSAhPT0gJy0nKSB7XG4gICAgICBidWYgKz0gc3RyLmNoYXJBdChpKTtcbiAgICAgIGlmIChpID09IHN0ci5sZW5ndGgpIGJyZWFrO1xuICAgIH1cbiAgICBpZiAoYnVmICE9IE51bWJlcihidWYpIHx8IHN0ci5jaGFyQXQoaSkgIT09ICctJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbGxlZ2FsIGF0dGFjaG1lbnRzJyk7XG4gICAgfVxuICAgIHAuYXR0YWNobWVudHMgPSBOdW1iZXIoYnVmKTtcbiAgfVxuXG4gIC8vIGxvb2sgdXAgbmFtZXNwYWNlIChpZiBhbnkpXG4gIGlmICgnLycgPT09IHN0ci5jaGFyQXQoaSArIDEpKSB7XG4gICAgcC5uc3AgPSAnJztcbiAgICB3aGlsZSAoKytpKSB7XG4gICAgICB2YXIgYyA9IHN0ci5jaGFyQXQoaSk7XG4gICAgICBpZiAoJywnID09PSBjKSBicmVhaztcbiAgICAgIHAubnNwICs9IGM7XG4gICAgICBpZiAoaSA9PT0gc3RyLmxlbmd0aCkgYnJlYWs7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHAubnNwID0gJy8nO1xuICB9XG5cbiAgLy8gbG9vayB1cCBpZFxuICB2YXIgbmV4dCA9IHN0ci5jaGFyQXQoaSArIDEpO1xuICBpZiAoJycgIT09IG5leHQgJiYgTnVtYmVyKG5leHQpID09IG5leHQpIHtcbiAgICBwLmlkID0gJyc7XG4gICAgd2hpbGUgKCsraSkge1xuICAgICAgdmFyIGMgPSBzdHIuY2hhckF0KGkpO1xuICAgICAgaWYgKG51bGwgPT0gYyB8fCBOdW1iZXIoYykgIT0gYykge1xuICAgICAgICAtLWk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcC5pZCArPSBzdHIuY2hhckF0KGkpO1xuICAgICAgaWYgKGkgPT09IHN0ci5sZW5ndGgpIGJyZWFrO1xuICAgIH1cbiAgICBwLmlkID0gTnVtYmVyKHAuaWQpO1xuICB9XG5cbiAgLy8gbG9vayB1cCBqc29uIGRhdGFcbiAgaWYgKHN0ci5jaGFyQXQoKytpKSkge1xuICAgIHZhciBwYXlsb2FkID0gdHJ5UGFyc2Uoc3RyLnN1YnN0cihpKSk7XG4gICAgdmFyIGlzUGF5bG9hZFZhbGlkID0gcGF5bG9hZCAhPT0gZmFsc2UgJiYgKHAudHlwZSA9PT0gZXhwb3J0cy5FUlJPUiB8fCBpc0FycmF5KHBheWxvYWQpKTtcbiAgICBpZiAoaXNQYXlsb2FkVmFsaWQpIHtcbiAgICAgIHAuZGF0YSA9IHBheWxvYWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlcnJvcignaW52YWxpZCBwYXlsb2FkJyk7XG4gICAgfVxuICB9XG5cbiAgZGVidWcoJ2RlY29kZWQgJXMgYXMgJWonLCBzdHIsIHApO1xuICByZXR1cm4gcDtcbn1cblxuZnVuY3Rpb24gdHJ5UGFyc2Uoc3RyKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyKTtcbiAgfSBjYXRjaChlKXtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWFsbG9jYXRlcyBhIHBhcnNlcidzIHJlc291cmNlc1xuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuRGVjb2Rlci5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkge1xuICBpZiAodGhpcy5yZWNvbnN0cnVjdG9yKSB7XG4gICAgdGhpcy5yZWNvbnN0cnVjdG9yLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKTtcbiAgfVxufTtcblxuLyoqXG4gKiBBIG1hbmFnZXIgb2YgYSBiaW5hcnkgZXZlbnQncyAnYnVmZmVyIHNlcXVlbmNlJy4gU2hvdWxkXG4gKiBiZSBjb25zdHJ1Y3RlZCB3aGVuZXZlciBhIHBhY2tldCBvZiB0eXBlIEJJTkFSWV9FVkVOVCBpc1xuICogZGVjb2RlZC5cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcGFja2V0XG4gKiBAcmV0dXJuIHtCaW5hcnlSZWNvbnN0cnVjdG9yfSBpbml0aWFsaXplZCByZWNvbnN0cnVjdG9yXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBCaW5hcnlSZWNvbnN0cnVjdG9yKHBhY2tldCkge1xuICB0aGlzLnJlY29uUGFjayA9IHBhY2tldDtcbiAgdGhpcy5idWZmZXJzID0gW107XG59XG5cbi8qKlxuICogTWV0aG9kIHRvIGJlIGNhbGxlZCB3aGVuIGJpbmFyeSBkYXRhIHJlY2VpdmVkIGZyb20gY29ubmVjdGlvblxuICogYWZ0ZXIgYSBCSU5BUllfRVZFTlQgcGFja2V0LlxuICpcbiAqIEBwYXJhbSB7QnVmZmVyIHwgQXJyYXlCdWZmZXJ9IGJpbkRhdGEgLSB0aGUgcmF3IGJpbmFyeSBkYXRhIHJlY2VpdmVkXG4gKiBAcmV0dXJuIHtudWxsIHwgT2JqZWN0fSByZXR1cm5zIG51bGwgaWYgbW9yZSBiaW5hcnkgZGF0YSBpcyBleHBlY3RlZCBvclxuICogICBhIHJlY29uc3RydWN0ZWQgcGFja2V0IG9iamVjdCBpZiBhbGwgYnVmZmVycyBoYXZlIGJlZW4gcmVjZWl2ZWQuXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5CaW5hcnlSZWNvbnN0cnVjdG9yLnByb3RvdHlwZS50YWtlQmluYXJ5RGF0YSA9IGZ1bmN0aW9uKGJpbkRhdGEpIHtcbiAgdGhpcy5idWZmZXJzLnB1c2goYmluRGF0YSk7XG4gIGlmICh0aGlzLmJ1ZmZlcnMubGVuZ3RoID09PSB0aGlzLnJlY29uUGFjay5hdHRhY2htZW50cykgeyAvLyBkb25lIHdpdGggYnVmZmVyIGxpc3RcbiAgICB2YXIgcGFja2V0ID0gYmluYXJ5LnJlY29uc3RydWN0UGFja2V0KHRoaXMucmVjb25QYWNrLCB0aGlzLmJ1ZmZlcnMpO1xuICAgIHRoaXMuZmluaXNoZWRSZWNvbnN0cnVjdGlvbigpO1xuICAgIHJldHVybiBwYWNrZXQ7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIENsZWFucyB1cCBiaW5hcnkgcGFja2V0IHJlY29uc3RydWN0aW9uIHZhcmlhYmxlcy5cbiAqXG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5CaW5hcnlSZWNvbnN0cnVjdG9yLnByb3RvdHlwZS5maW5pc2hlZFJlY29uc3RydWN0aW9uID0gZnVuY3Rpb24oKSB7XG4gIHRoaXMucmVjb25QYWNrID0gbnVsbDtcbiAgdGhpcy5idWZmZXJzID0gW107XG59O1xuXG5mdW5jdGlvbiBlcnJvcihtc2cpIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBleHBvcnRzLkVSUk9SLFxuICAgIGRhdGE6ICdwYXJzZXIgZXJyb3I6ICcgKyBtc2dcbiAgfTtcbn1cbiIsIlxubW9kdWxlLmV4cG9ydHMgPSBpc0J1ZjtcblxudmFyIHdpdGhOYXRpdmVCdWZmZXIgPSB0eXBlb2YgQnVmZmVyID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBCdWZmZXIuaXNCdWZmZXIgPT09ICdmdW5jdGlvbic7XG52YXIgd2l0aE5hdGl2ZUFycmF5QnVmZmVyID0gdHlwZW9mIEFycmF5QnVmZmVyID09PSAnZnVuY3Rpb24nO1xuXG52YXIgaXNWaWV3ID0gZnVuY3Rpb24gKG9iaikge1xuICByZXR1cm4gdHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyA9PT0gJ2Z1bmN0aW9uJyA/IEFycmF5QnVmZmVyLmlzVmlldyhvYmopIDogKG9iai5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcik7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiBvYmogaXMgYSBidWZmZXIgb3IgYW4gYXJyYXlidWZmZXIuXG4gKlxuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gaXNCdWYob2JqKSB7XG4gIHJldHVybiAod2l0aE5hdGl2ZUJ1ZmZlciAmJiBCdWZmZXIuaXNCdWZmZXIob2JqKSkgfHxcbiAgICAgICAgICAod2l0aE5hdGl2ZUFycmF5QnVmZmVyICYmIChvYmogaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciB8fCBpc1ZpZXcob2JqKSkpO1xufVxuIiwiLyoqXG4gKiBUaGlzIGlzIHRoZSB3ZWIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbiBvZiBgZGVidWcoKWAuXG4gKlxuICogRXhwb3NlIGBkZWJ1ZygpYCBhcyB0aGUgbW9kdWxlLlxuICovXG5cbmV4cG9ydHMgPSBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZGVidWcnKTtcbmV4cG9ydHMubG9nID0gbG9nO1xuZXhwb3J0cy5mb3JtYXRBcmdzID0gZm9ybWF0QXJncztcbmV4cG9ydHMuc2F2ZSA9IHNhdmU7XG5leHBvcnRzLmxvYWQgPSBsb2FkO1xuZXhwb3J0cy51c2VDb2xvcnMgPSB1c2VDb2xvcnM7XG5leHBvcnRzLnN0b3JhZ2UgPSAndW5kZWZpbmVkJyAhPSB0eXBlb2YgY2hyb21lXG4gICAgICAgICAgICAgICAmJiAndW5kZWZpbmVkJyAhPSB0eXBlb2YgY2hyb21lLnN0b3JhZ2VcbiAgICAgICAgICAgICAgICAgID8gY2hyb21lLnN0b3JhZ2UubG9jYWxcbiAgICAgICAgICAgICAgICAgIDogbG9jYWxzdG9yYWdlKCk7XG5cbi8qKlxuICogQ29sb3JzLlxuICovXG5cbmV4cG9ydHMuY29sb3JzID0gW1xuICAnIzAwMDBDQycsICcjMDAwMEZGJywgJyMwMDMzQ0MnLCAnIzAwMzNGRicsICcjMDA2NkNDJywgJyMwMDY2RkYnLCAnIzAwOTlDQycsXG4gICcjMDA5OUZGJywgJyMwMENDMDAnLCAnIzAwQ0MzMycsICcjMDBDQzY2JywgJyMwMENDOTknLCAnIzAwQ0NDQycsICcjMDBDQ0ZGJyxcbiAgJyMzMzAwQ0MnLCAnIzMzMDBGRicsICcjMzMzM0NDJywgJyMzMzMzRkYnLCAnIzMzNjZDQycsICcjMzM2NkZGJywgJyMzMzk5Q0MnLFxuICAnIzMzOTlGRicsICcjMzNDQzAwJywgJyMzM0NDMzMnLCAnIzMzQ0M2NicsICcjMzNDQzk5JywgJyMzM0NDQ0MnLCAnIzMzQ0NGRicsXG4gICcjNjYwMENDJywgJyM2NjAwRkYnLCAnIzY2MzNDQycsICcjNjYzM0ZGJywgJyM2NkNDMDAnLCAnIzY2Q0MzMycsICcjOTkwMENDJyxcbiAgJyM5OTAwRkYnLCAnIzk5MzNDQycsICcjOTkzM0ZGJywgJyM5OUNDMDAnLCAnIzk5Q0MzMycsICcjQ0MwMDAwJywgJyNDQzAwMzMnLFxuICAnI0NDMDA2NicsICcjQ0MwMDk5JywgJyNDQzAwQ0MnLCAnI0NDMDBGRicsICcjQ0MzMzAwJywgJyNDQzMzMzMnLCAnI0NDMzM2NicsXG4gICcjQ0MzMzk5JywgJyNDQzMzQ0MnLCAnI0NDMzNGRicsICcjQ0M2NjAwJywgJyNDQzY2MzMnLCAnI0NDOTkwMCcsICcjQ0M5OTMzJyxcbiAgJyNDQ0NDMDAnLCAnI0NDQ0MzMycsICcjRkYwMDAwJywgJyNGRjAwMzMnLCAnI0ZGMDA2NicsICcjRkYwMDk5JywgJyNGRjAwQ0MnLFxuICAnI0ZGMDBGRicsICcjRkYzMzAwJywgJyNGRjMzMzMnLCAnI0ZGMzM2NicsICcjRkYzMzk5JywgJyNGRjMzQ0MnLCAnI0ZGMzNGRicsXG4gICcjRkY2NjAwJywgJyNGRjY2MzMnLCAnI0ZGOTkwMCcsICcjRkY5OTMzJywgJyNGRkNDMDAnLCAnI0ZGQ0MzMydcbl07XG5cbi8qKlxuICogQ3VycmVudGx5IG9ubHkgV2ViS2l0LWJhc2VkIFdlYiBJbnNwZWN0b3JzLCBGaXJlZm94ID49IHYzMSxcbiAqIGFuZCB0aGUgRmlyZWJ1ZyBleHRlbnNpb24gKGFueSBGaXJlZm94IHZlcnNpb24pIGFyZSBrbm93blxuICogdG8gc3VwcG9ydCBcIiVjXCIgQ1NTIGN1c3RvbWl6YXRpb25zLlxuICpcbiAqIFRPRE86IGFkZCBhIGBsb2NhbFN0b3JhZ2VgIHZhcmlhYmxlIHRvIGV4cGxpY2l0bHkgZW5hYmxlL2Rpc2FibGUgY29sb3JzXG4gKi9cblxuZnVuY3Rpb24gdXNlQ29sb3JzKCkge1xuICAvLyBOQjogSW4gYW4gRWxlY3Ryb24gcHJlbG9hZCBzY3JpcHQsIGRvY3VtZW50IHdpbGwgYmUgZGVmaW5lZCBidXQgbm90IGZ1bGx5XG4gIC8vIGluaXRpYWxpemVkLiBTaW5jZSB3ZSBrbm93IHdlJ3JlIGluIENocm9tZSwgd2UnbGwganVzdCBkZXRlY3QgdGhpcyBjYXNlXG4gIC8vIGV4cGxpY2l0bHlcbiAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5wcm9jZXNzICYmIHdpbmRvdy5wcm9jZXNzLnR5cGUgPT09ICdyZW5kZXJlcicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIEludGVybmV0IEV4cGxvcmVyIGFuZCBFZGdlIGRvIG5vdCBzdXBwb3J0IGNvbG9ycy5cbiAgaWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oZWRnZXx0cmlkZW50KVxcLyhcXGQrKS8pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gaXMgd2Via2l0PyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xNjQ1OTYwNi8zNzY3NzNcbiAgLy8gZG9jdW1lbnQgaXMgdW5kZWZpbmVkIGluIHJlYWN0LW5hdGl2ZTogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0LW5hdGl2ZS9wdWxsLzE2MzJcbiAgcmV0dXJuICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2UpIHx8XG4gICAgLy8gaXMgZmlyZWJ1Zz8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMzk4MTIwLzM3Njc3M1xuICAgICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuY29uc29sZSAmJiAod2luZG93LmNvbnNvbGUuZmlyZWJ1ZyB8fCAod2luZG93LmNvbnNvbGUuZXhjZXB0aW9uICYmIHdpbmRvdy5jb25zb2xlLnRhYmxlKSkpIHx8XG4gICAgLy8gaXMgZmlyZWZveCA+PSB2MzE/XG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9Ub29scy9XZWJfQ29uc29sZSNTdHlsaW5nX21lc3NhZ2VzXG4gICAgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnICYmIG5hdmlnYXRvci51c2VyQWdlbnQgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XFwvKFxcZCspLykgJiYgcGFyc2VJbnQoUmVnRXhwLiQxLCAxMCkgPj0gMzEpIHx8XG4gICAgLy8gZG91YmxlIGNoZWNrIHdlYmtpdCBpbiB1c2VyQWdlbnQganVzdCBpbiBjYXNlIHdlIGFyZSBpbiBhIHdvcmtlclxuICAgICh0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiBuYXZpZ2F0b3IudXNlckFnZW50ICYmIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcXC8oXFxkKykvKSk7XG59XG5cbi8qKlxuICogTWFwICVqIHRvIGBKU09OLnN0cmluZ2lmeSgpYCwgc2luY2Ugbm8gV2ViIEluc3BlY3RvcnMgZG8gdGhhdCBieSBkZWZhdWx0LlxuICovXG5cbmV4cG9ydHMuZm9ybWF0dGVycy5qID0gZnVuY3Rpb24odikge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuICdbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogJyArIGVyci5tZXNzYWdlO1xuICB9XG59O1xuXG5cbi8qKlxuICogQ29sb3JpemUgbG9nIGFyZ3VtZW50cyBpZiBlbmFibGVkLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0QXJncyhhcmdzKSB7XG4gIHZhciB1c2VDb2xvcnMgPSB0aGlzLnVzZUNvbG9ycztcblxuICBhcmdzWzBdID0gKHVzZUNvbG9ycyA/ICclYycgOiAnJylcbiAgICArIHRoaXMubmFtZXNwYWNlXG4gICAgKyAodXNlQ29sb3JzID8gJyAlYycgOiAnICcpXG4gICAgKyBhcmdzWzBdXG4gICAgKyAodXNlQ29sb3JzID8gJyVjICcgOiAnICcpXG4gICAgKyAnKycgKyBleHBvcnRzLmh1bWFuaXplKHRoaXMuZGlmZik7XG5cbiAgaWYgKCF1c2VDb2xvcnMpIHJldHVybjtcblxuICB2YXIgYyA9ICdjb2xvcjogJyArIHRoaXMuY29sb3I7XG4gIGFyZ3Muc3BsaWNlKDEsIDAsIGMsICdjb2xvcjogaW5oZXJpdCcpXG5cbiAgLy8gdGhlIGZpbmFsIFwiJWNcIiBpcyBzb21ld2hhdCB0cmlja3ksIGJlY2F1c2UgdGhlcmUgY291bGQgYmUgb3RoZXJcbiAgLy8gYXJndW1lbnRzIHBhc3NlZCBlaXRoZXIgYmVmb3JlIG9yIGFmdGVyIHRoZSAlYywgc28gd2UgbmVlZCB0b1xuICAvLyBmaWd1cmUgb3V0IHRoZSBjb3JyZWN0IGluZGV4IHRvIGluc2VydCB0aGUgQ1NTIGludG9cbiAgdmFyIGluZGV4ID0gMDtcbiAgdmFyIGxhc3RDID0gMDtcbiAgYXJnc1swXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csIGZ1bmN0aW9uKG1hdGNoKSB7XG4gICAgaWYgKCclJScgPT09IG1hdGNoKSByZXR1cm47XG4gICAgaW5kZXgrKztcbiAgICBpZiAoJyVjJyA9PT0gbWF0Y2gpIHtcbiAgICAgIC8vIHdlIG9ubHkgYXJlIGludGVyZXN0ZWQgaW4gdGhlICpsYXN0KiAlY1xuICAgICAgLy8gKHRoZSB1c2VyIG1heSBoYXZlIHByb3ZpZGVkIHRoZWlyIG93bilcbiAgICAgIGxhc3RDID0gaW5kZXg7XG4gICAgfVxuICB9KTtcblxuICBhcmdzLnNwbGljZShsYXN0QywgMCwgYyk7XG59XG5cbi8qKlxuICogSW52b2tlcyBgY29uc29sZS5sb2coKWAgd2hlbiBhdmFpbGFibGUuXG4gKiBOby1vcCB3aGVuIGBjb25zb2xlLmxvZ2AgaXMgbm90IGEgXCJmdW5jdGlvblwiLlxuICpcbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gbG9nKCkge1xuICAvLyB0aGlzIGhhY2tlcnkgaXMgcmVxdWlyZWQgZm9yIElFOC85LCB3aGVyZVxuICAvLyB0aGUgYGNvbnNvbGUubG9nYCBmdW5jdGlvbiBkb2Vzbid0IGhhdmUgJ2FwcGx5J1xuICByZXR1cm4gJ29iamVjdCcgPT09IHR5cGVvZiBjb25zb2xlXG4gICAgJiYgY29uc29sZS5sb2dcbiAgICAmJiBGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlLmxvZywgY29uc29sZSwgYXJndW1lbnRzKTtcbn1cblxuLyoqXG4gKiBTYXZlIGBuYW1lc3BhY2VzYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gc2F2ZShuYW1lc3BhY2VzKSB7XG4gIHRyeSB7XG4gICAgaWYgKG51bGwgPT0gbmFtZXNwYWNlcykge1xuICAgICAgZXhwb3J0cy5zdG9yYWdlLnJlbW92ZUl0ZW0oJ2RlYnVnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZyA9IG5hbWVzcGFjZXM7XG4gICAgfVxuICB9IGNhdGNoKGUpIHt9XG59XG5cbi8qKlxuICogTG9hZCBgbmFtZXNwYWNlc2AuXG4gKlxuICogQHJldHVybiB7U3RyaW5nfSByZXR1cm5zIHRoZSBwcmV2aW91c2x5IHBlcnNpc3RlZCBkZWJ1ZyBtb2Rlc1xuICogQGFwaSBwcml2YXRlXG4gKi9cblxuZnVuY3Rpb24gbG9hZCgpIHtcbiAgdmFyIHI7XG4gIHRyeSB7XG4gICAgciA9IGV4cG9ydHMuc3RvcmFnZS5kZWJ1ZztcbiAgfSBjYXRjaChlKSB7fVxuXG4gIC8vIElmIGRlYnVnIGlzbid0IHNldCBpbiBMUywgYW5kIHdlJ3JlIGluIEVsZWN0cm9uLCB0cnkgdG8gbG9hZCAkREVCVUdcbiAgaWYgKCFyICYmIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiAnZW52JyBpbiBwcm9jZXNzKSB7XG4gICAgciA9IHByb2Nlc3MuZW52LkRFQlVHO1xuICB9XG5cbiAgcmV0dXJuIHI7XG59XG5cbi8qKlxuICogRW5hYmxlIG5hbWVzcGFjZXMgbGlzdGVkIGluIGBsb2NhbFN0b3JhZ2UuZGVidWdgIGluaXRpYWxseS5cbiAqL1xuXG5leHBvcnRzLmVuYWJsZShsb2FkKCkpO1xuXG4vKipcbiAqIExvY2Fsc3RvcmFnZSBhdHRlbXB0cyB0byByZXR1cm4gdGhlIGxvY2Fsc3RvcmFnZS5cbiAqXG4gKiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHNhZmFyaSB0aHJvd3NcbiAqIHdoZW4gYSB1c2VyIGRpc2FibGVzIGNvb2tpZXMvbG9jYWxzdG9yYWdlXG4gKiBhbmQgeW91IGF0dGVtcHQgdG8gYWNjZXNzIGl0LlxuICpcbiAqIEByZXR1cm4ge0xvY2FsU3RvcmFnZX1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIGxvY2Fsc3RvcmFnZSgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgfSBjYXRjaCAoZSkge31cbn1cbiIsIlxuLyoqXG4gKiBUaGlzIGlzIHRoZSBjb21tb24gbG9naWMgZm9yIGJvdGggdGhlIE5vZGUuanMgYW5kIHdlYiBicm93c2VyXG4gKiBpbXBsZW1lbnRhdGlvbnMgb2YgYGRlYnVnKClgLlxuICpcbiAqIEV4cG9zZSBgZGVidWcoKWAgYXMgdGhlIG1vZHVsZS5cbiAqL1xuXG5leHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVEZWJ1Zy5kZWJ1ZyA9IGNyZWF0ZURlYnVnWydkZWZhdWx0J10gPSBjcmVhdGVEZWJ1ZztcbmV4cG9ydHMuY29lcmNlID0gY29lcmNlO1xuZXhwb3J0cy5kaXNhYmxlID0gZGlzYWJsZTtcbmV4cG9ydHMuZW5hYmxlID0gZW5hYmxlO1xuZXhwb3J0cy5lbmFibGVkID0gZW5hYmxlZDtcbmV4cG9ydHMuaHVtYW5pemUgPSByZXF1aXJlKCdtcycpO1xuXG4vKipcbiAqIEFjdGl2ZSBgZGVidWdgIGluc3RhbmNlcy5cbiAqL1xuZXhwb3J0cy5pbnN0YW5jZXMgPSBbXTtcblxuLyoqXG4gKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBkZWJ1ZyBtb2RlIG5hbWVzLCBhbmQgbmFtZXMgdG8gc2tpcC5cbiAqL1xuXG5leHBvcnRzLm5hbWVzID0gW107XG5leHBvcnRzLnNraXBzID0gW107XG5cbi8qKlxuICogTWFwIG9mIHNwZWNpYWwgXCIlblwiIGhhbmRsaW5nIGZ1bmN0aW9ucywgZm9yIHRoZSBkZWJ1ZyBcImZvcm1hdFwiIGFyZ3VtZW50LlxuICpcbiAqIFZhbGlkIGtleSBuYW1lcyBhcmUgYSBzaW5nbGUsIGxvd2VyIG9yIHVwcGVyLWNhc2UgbGV0dGVyLCBpLmUuIFwiblwiIGFuZCBcIk5cIi5cbiAqL1xuXG5leHBvcnRzLmZvcm1hdHRlcnMgPSB7fTtcblxuLyoqXG4gKiBTZWxlY3QgYSBjb2xvci5cbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqIEBhcGkgcHJpdmF0ZVxuICovXG5cbmZ1bmN0aW9uIHNlbGVjdENvbG9yKG5hbWVzcGFjZSkge1xuICB2YXIgaGFzaCA9IDAsIGk7XG5cbiAgZm9yIChpIGluIG5hbWVzcGFjZSkge1xuICAgIGhhc2ggID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBuYW1lc3BhY2UuY2hhckNvZGVBdChpKTtcbiAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuICB9XG5cbiAgcmV0dXJuIGV4cG9ydHMuY29sb3JzW01hdGguYWJzKGhhc2gpICUgZXhwb3J0cy5jb2xvcnMubGVuZ3RoXTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBkZWJ1Z2dlciB3aXRoIHRoZSBnaXZlbiBgbmFtZXNwYWNlYC5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZXNwYWNlXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn1cbiAqIEBhcGkgcHVibGljXG4gKi9cblxuZnVuY3Rpb24gY3JlYXRlRGVidWcobmFtZXNwYWNlKSB7XG5cbiAgdmFyIHByZXZUaW1lO1xuXG4gIGZ1bmN0aW9uIGRlYnVnKCkge1xuICAgIC8vIGRpc2FibGVkP1xuICAgIGlmICghZGVidWcuZW5hYmxlZCkgcmV0dXJuO1xuXG4gICAgdmFyIHNlbGYgPSBkZWJ1ZztcblxuICAgIC8vIHNldCBgZGlmZmAgdGltZXN0YW1wXG4gICAgdmFyIGN1cnIgPSArbmV3IERhdGUoKTtcbiAgICB2YXIgbXMgPSBjdXJyIC0gKHByZXZUaW1lIHx8IGN1cnIpO1xuICAgIHNlbGYuZGlmZiA9IG1zO1xuICAgIHNlbGYucHJldiA9IHByZXZUaW1lO1xuICAgIHNlbGYuY3VyciA9IGN1cnI7XG4gICAgcHJldlRpbWUgPSBjdXJyO1xuXG4gICAgLy8gdHVybiB0aGUgYGFyZ3VtZW50c2AgaW50byBhIHByb3BlciBBcnJheVxuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgYXJnc1tpXSA9IGFyZ3VtZW50c1tpXTtcbiAgICB9XG5cbiAgICBhcmdzWzBdID0gZXhwb3J0cy5jb2VyY2UoYXJnc1swXSk7XG5cbiAgICBpZiAoJ3N0cmluZycgIT09IHR5cGVvZiBhcmdzWzBdKSB7XG4gICAgICAvLyBhbnl0aGluZyBlbHNlIGxldCdzIGluc3BlY3Qgd2l0aCAlT1xuICAgICAgYXJncy51bnNoaWZ0KCclTycpO1xuICAgIH1cblxuICAgIC8vIGFwcGx5IGFueSBgZm9ybWF0dGVyc2AgdHJhbnNmb3JtYXRpb25zXG4gICAgdmFyIGluZGV4ID0gMDtcbiAgICBhcmdzWzBdID0gYXJnc1swXS5yZXBsYWNlKC8lKFthLXpBLVolXSkvZywgZnVuY3Rpb24obWF0Y2gsIGZvcm1hdCkge1xuICAgICAgLy8gaWYgd2UgZW5jb3VudGVyIGFuIGVzY2FwZWQgJSB0aGVuIGRvbid0IGluY3JlYXNlIHRoZSBhcnJheSBpbmRleFxuICAgICAgaWYgKG1hdGNoID09PSAnJSUnKSByZXR1cm4gbWF0Y2g7XG4gICAgICBpbmRleCsrO1xuICAgICAgdmFyIGZvcm1hdHRlciA9IGV4cG9ydHMuZm9ybWF0dGVyc1tmb3JtYXRdO1xuICAgICAgaWYgKCdmdW5jdGlvbicgPT09IHR5cGVvZiBmb3JtYXR0ZXIpIHtcbiAgICAgICAgdmFyIHZhbCA9IGFyZ3NbaW5kZXhdO1xuICAgICAgICBtYXRjaCA9IGZvcm1hdHRlci5jYWxsKHNlbGYsIHZhbCk7XG5cbiAgICAgICAgLy8gbm93IHdlIG5lZWQgdG8gcmVtb3ZlIGBhcmdzW2luZGV4XWAgc2luY2UgaXQncyBpbmxpbmVkIGluIHRoZSBgZm9ybWF0YFxuICAgICAgICBhcmdzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIGluZGV4LS07XG4gICAgICB9XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfSk7XG5cbiAgICAvLyBhcHBseSBlbnYtc3BlY2lmaWMgZm9ybWF0dGluZyAoY29sb3JzLCBldGMuKVxuICAgIGV4cG9ydHMuZm9ybWF0QXJncy5jYWxsKHNlbGYsIGFyZ3MpO1xuXG4gICAgdmFyIGxvZ0ZuID0gZGVidWcubG9nIHx8IGV4cG9ydHMubG9nIHx8IGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7XG4gICAgbG9nRm4uYXBwbHkoc2VsZiwgYXJncyk7XG4gIH1cblxuICBkZWJ1Zy5uYW1lc3BhY2UgPSBuYW1lc3BhY2U7XG4gIGRlYnVnLmVuYWJsZWQgPSBleHBvcnRzLmVuYWJsZWQobmFtZXNwYWNlKTtcbiAgZGVidWcudXNlQ29sb3JzID0gZXhwb3J0cy51c2VDb2xvcnMoKTtcbiAgZGVidWcuY29sb3IgPSBzZWxlY3RDb2xvcihuYW1lc3BhY2UpO1xuICBkZWJ1Zy5kZXN0cm95ID0gZGVzdHJveTtcblxuICAvLyBlbnYtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gbG9naWMgZm9yIGRlYnVnIGluc3RhbmNlc1xuICBpZiAoJ2Z1bmN0aW9uJyA9PT0gdHlwZW9mIGV4cG9ydHMuaW5pdCkge1xuICAgIGV4cG9ydHMuaW5pdChkZWJ1Zyk7XG4gIH1cblxuICBleHBvcnRzLmluc3RhbmNlcy5wdXNoKGRlYnVnKTtcblxuICByZXR1cm4gZGVidWc7XG59XG5cbmZ1bmN0aW9uIGRlc3Ryb3kgKCkge1xuICB2YXIgaW5kZXggPSBleHBvcnRzLmluc3RhbmNlcy5pbmRleE9mKHRoaXMpO1xuICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgZXhwb3J0cy5pbnN0YW5jZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBFbmFibGVzIGEgZGVidWcgbW9kZSBieSBuYW1lc3BhY2VzLiBUaGlzIGNhbiBpbmNsdWRlIG1vZGVzXG4gKiBzZXBhcmF0ZWQgYnkgYSBjb2xvbiBhbmQgd2lsZGNhcmRzLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lc3BhY2VzXG4gKiBAYXBpIHB1YmxpY1xuICovXG5cbmZ1bmN0aW9uIGVuYWJsZShuYW1lc3BhY2VzKSB7XG4gIGV4cG9ydHMuc2F2ZShuYW1lc3BhY2VzKTtcblxuICBleHBvcnRzLm5hbWVzID0gW107XG4gIGV4cG9ydHMuc2tpcHMgPSBbXTtcblxuICB2YXIgaTtcbiAgdmFyIHNwbGl0ID0gKHR5cGVvZiBuYW1lc3BhY2VzID09PSAnc3RyaW5nJyA/IG5hbWVzcGFjZXMgOiAnJykuc3BsaXQoL1tcXHMsXSsvKTtcbiAgdmFyIGxlbiA9IHNwbGl0Lmxlbmd0aDtcblxuICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoIXNwbGl0W2ldKSBjb250aW51ZTsgLy8gaWdub3JlIGVtcHR5IHN0cmluZ3NcbiAgICBuYW1lc3BhY2VzID0gc3BsaXRbaV0ucmVwbGFjZSgvXFwqL2csICcuKj8nKTtcbiAgICBpZiAobmFtZXNwYWNlc1swXSA9PT0gJy0nKSB7XG4gICAgICBleHBvcnRzLnNraXBzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzLnN1YnN0cigxKSArICckJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBleHBvcnRzLm5hbWVzLnB1c2gobmV3IFJlZ0V4cCgnXicgKyBuYW1lc3BhY2VzICsgJyQnKSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChpID0gMDsgaSA8IGV4cG9ydHMuaW5zdGFuY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGluc3RhbmNlID0gZXhwb3J0cy5pbnN0YW5jZXNbaV07XG4gICAgaW5zdGFuY2UuZW5hYmxlZCA9IGV4cG9ydHMuZW5hYmxlZChpbnN0YW5jZS5uYW1lc3BhY2UpO1xuICB9XG59XG5cbi8qKlxuICogRGlzYWJsZSBkZWJ1ZyBvdXRwdXQuXG4gKlxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBkaXNhYmxlKCkge1xuICBleHBvcnRzLmVuYWJsZSgnJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBtb2RlIG5hbWUgaXMgZW5hYmxlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lXG4gKiBAcmV0dXJuIHtCb29sZWFufVxuICogQGFwaSBwdWJsaWNcbiAqL1xuXG5mdW5jdGlvbiBlbmFibGVkKG5hbWUpIHtcbiAgaWYgKG5hbWVbbmFtZS5sZW5ndGggLSAxXSA9PT0gJyonKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgdmFyIGksIGxlbjtcbiAgZm9yIChpID0gMCwgbGVuID0gZXhwb3J0cy5za2lwcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChleHBvcnRzLnNraXBzW2ldLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbiAgZm9yIChpID0gMCwgbGVuID0gZXhwb3J0cy5uYW1lcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChleHBvcnRzLm5hbWVzW2ldLnRlc3QobmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogQ29lcmNlIGB2YWxgLlxuICpcbiAqIEBwYXJhbSB7TWl4ZWR9IHZhbFxuICogQHJldHVybiB7TWl4ZWR9XG4gKiBAYXBpIHByaXZhdGVcbiAqL1xuXG5mdW5jdGlvbiBjb2VyY2UodmFsKSB7XG4gIGlmICh2YWwgaW5zdGFuY2VvZiBFcnJvcikgcmV0dXJuIHZhbC5zdGFjayB8fCB2YWwubWVzc2FnZTtcbiAgcmV0dXJuIHZhbDtcbn1cbiIsInZhciBzY29wZSA9ICh0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiICYmIGdsb2JhbCkgfHxcbiAgICAgICAgICAgICh0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIiAmJiBzZWxmKSB8fFxuICAgICAgICAgICAgd2luZG93O1xudmFyIGFwcGx5ID0gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5O1xuXG4vLyBET00gQVBJcywgZm9yIGNvbXBsZXRlbmVzc1xuXG5leHBvcnRzLnNldFRpbWVvdXQgPSBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIG5ldyBUaW1lb3V0KGFwcGx5LmNhbGwoc2V0VGltZW91dCwgc2NvcGUsIGFyZ3VtZW50cyksIGNsZWFyVGltZW91dCk7XG59O1xuZXhwb3J0cy5zZXRJbnRlcnZhbCA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gbmV3IFRpbWVvdXQoYXBwbHkuY2FsbChzZXRJbnRlcnZhbCwgc2NvcGUsIGFyZ3VtZW50cyksIGNsZWFySW50ZXJ2YWwpO1xufTtcbmV4cG9ydHMuY2xlYXJUaW1lb3V0ID1cbmV4cG9ydHMuY2xlYXJJbnRlcnZhbCA9IGZ1bmN0aW9uKHRpbWVvdXQpIHtcbiAgaWYgKHRpbWVvdXQpIHtcbiAgICB0aW1lb3V0LmNsb3NlKCk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIFRpbWVvdXQoaWQsIGNsZWFyRm4pIHtcbiAgdGhpcy5faWQgPSBpZDtcbiAgdGhpcy5fY2xlYXJGbiA9IGNsZWFyRm47XG59XG5UaW1lb3V0LnByb3RvdHlwZS51bnJlZiA9IFRpbWVvdXQucHJvdG90eXBlLnJlZiA9IGZ1bmN0aW9uKCkge307XG5UaW1lb3V0LnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uKCkge1xuICB0aGlzLl9jbGVhckZuLmNhbGwoc2NvcGUsIHRoaXMuX2lkKTtcbn07XG5cbi8vIERvZXMgbm90IHN0YXJ0IHRoZSB0aW1lLCBqdXN0IHNldHMgdXAgdGhlIG1lbWJlcnMgbmVlZGVkLlxuZXhwb3J0cy5lbnJvbGwgPSBmdW5jdGlvbihpdGVtLCBtc2Vjcykge1xuICBjbGVhclRpbWVvdXQoaXRlbS5faWRsZVRpbWVvdXRJZCk7XG4gIGl0ZW0uX2lkbGVUaW1lb3V0ID0gbXNlY3M7XG59O1xuXG5leHBvcnRzLnVuZW5yb2xsID0gZnVuY3Rpb24oaXRlbSkge1xuICBjbGVhclRpbWVvdXQoaXRlbS5faWRsZVRpbWVvdXRJZCk7XG4gIGl0ZW0uX2lkbGVUaW1lb3V0ID0gLTE7XG59O1xuXG5leHBvcnRzLl91bnJlZkFjdGl2ZSA9IGV4cG9ydHMuYWN0aXZlID0gZnVuY3Rpb24oaXRlbSkge1xuICBjbGVhclRpbWVvdXQoaXRlbS5faWRsZVRpbWVvdXRJZCk7XG5cbiAgdmFyIG1zZWNzID0gaXRlbS5faWRsZVRpbWVvdXQ7XG4gIGlmIChtc2VjcyA+PSAwKSB7XG4gICAgaXRlbS5faWRsZVRpbWVvdXRJZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gb25UaW1lb3V0KCkge1xuICAgICAgaWYgKGl0ZW0uX29uVGltZW91dClcbiAgICAgICAgaXRlbS5fb25UaW1lb3V0KCk7XG4gICAgfSwgbXNlY3MpO1xuICB9XG59O1xuXG4vLyBzZXRpbW1lZGlhdGUgYXR0YWNoZXMgaXRzZWxmIHRvIHRoZSBnbG9iYWwgb2JqZWN0XG5yZXF1aXJlKFwic2V0aW1tZWRpYXRlXCIpO1xuLy8gT24gc29tZSBleG90aWMgZW52aXJvbm1lbnRzLCBpdCdzIG5vdCBjbGVhciB3aGljaCBvYmplY3QgYHNldGltbWVkaWF0ZWAgd2FzXG4vLyBhYmxlIHRvIGluc3RhbGwgb250by4gIFNlYXJjaCBlYWNoIHBvc3NpYmlsaXR5IGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZVxuLy8gYHNldGltbWVkaWF0ZWAgbGlicmFyeS5cbmV4cG9ydHMuc2V0SW1tZWRpYXRlID0gKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiICYmIHNlbGYuc2V0SW1tZWRpYXRlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBnbG9iYWwuc2V0SW1tZWRpYXRlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAodGhpcyAmJiB0aGlzLnNldEltbWVkaWF0ZSk7XG5leHBvcnRzLmNsZWFySW1tZWRpYXRlID0gKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiICYmIHNlbGYuY2xlYXJJbW1lZGlhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgJiYgZ2xvYmFsLmNsZWFySW1tZWRpYXRlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzICYmIHRoaXMuY2xlYXJJbW1lZGlhdGUpO1xuIiwibW9kdWxlLmV4cG9ydHMgPSB0b0FycmF5XG5cbmZ1bmN0aW9uIHRvQXJyYXkobGlzdCwgaW5kZXgpIHtcbiAgICB2YXIgYXJyYXkgPSBbXVxuXG4gICAgaW5kZXggPSBpbmRleCB8fCAwXG5cbiAgICBmb3IgKHZhciBpID0gaW5kZXggfHwgMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgYXJyYXlbaSAtIGluZGV4XSA9IGxpc3RbaV1cbiAgICB9XG5cbiAgICByZXR1cm4gYXJyYXlcbn1cbiIsInZhciBnO1xuXG4vLyBUaGlzIHdvcmtzIGluIG5vbi1zdHJpY3QgbW9kZVxuZyA9IChmdW5jdGlvbigpIHtcblx0cmV0dXJuIHRoaXM7XG59KSgpO1xuXG50cnkge1xuXHQvLyBUaGlzIHdvcmtzIGlmIGV2YWwgaXMgYWxsb3dlZCAoc2VlIENTUClcblx0ZyA9IGcgfHwgbmV3IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKTtcbn0gY2F0Y2ggKGUpIHtcblx0Ly8gVGhpcyB3b3JrcyBpZiB0aGUgd2luZG93IHJlZmVyZW5jZSBpcyBhdmFpbGFibGVcblx0aWYgKHR5cGVvZiB3aW5kb3cgPT09IFwib2JqZWN0XCIpIGcgPSB3aW5kb3c7XG59XG5cbi8vIGcgY2FuIHN0aWxsIGJlIHVuZGVmaW5lZCwgYnV0IG5vdGhpbmcgdG8gZG8gYWJvdXQgaXQuLi5cbi8vIFdlIHJldHVybiB1bmRlZmluZWQsIGluc3RlYWQgb2Ygbm90aGluZyBoZXJlLCBzbyBpdCdzXG4vLyBlYXNpZXIgdG8gaGFuZGxlIHRoaXMgY2FzZS4gaWYoIWdsb2JhbCkgeyAuLi59XG5cbm1vZHVsZS5leHBvcnRzID0gZztcbiIsIiFmdW5jdGlvbihlLHQpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzJiZcIm9iamVjdFwiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKTpcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLHQpOlwib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuRml0QWRkb249dCgpOmUuRml0QWRkb249dCgpfSh3aW5kb3csZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9e307ZnVuY3Rpb24gcihuKXtpZih0W25dKXJldHVybiB0W25dLmV4cG9ydHM7dmFyIG89dFtuXT17aTpuLGw6ITEsZXhwb3J0czp7fX07cmV0dXJuIGVbbl0uY2FsbChvLmV4cG9ydHMsbyxvLmV4cG9ydHMsciksby5sPSEwLG8uZXhwb3J0c31yZXR1cm4gci5tPWUsci5jPXQsci5kPWZ1bmN0aW9uKGUsdCxuKXtyLm8oZSx0KXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6bn0pfSxyLnI9ZnVuY3Rpb24oZSl7XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOlwiTW9kdWxlXCJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KX0sci50PWZ1bmN0aW9uKGUsdCl7aWYoMSZ0JiYoZT1yKGUpKSw4JnQpcmV0dXJuIGU7aWYoNCZ0JiZcIm9iamVjdFwiPT10eXBlb2YgZSYmZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciBuPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoci5yKG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLFwiZGVmYXVsdFwiLHtlbnVtZXJhYmxlOiEwLHZhbHVlOmV9KSwyJnQmJlwic3RyaW5nXCIhPXR5cGVvZiBlKWZvcih2YXIgbyBpbiBlKXIuZChuLG8sZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19LmJpbmQobnVsbCxvKSk7cmV0dXJuIG59LHIubj1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLl9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gZS5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBlfTtyZXR1cm4gci5kKHQsXCJhXCIsdCksdH0sci5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxyLnA9XCJcIixyKHIucz0wKX0oW2Z1bmN0aW9uKGUsdCxyKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIGUucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGUpe3RoaXMuX3Rlcm1pbmFsPWV9LGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLmZpdD1mdW5jdGlvbigpe3ZhciBlPXRoaXMucHJvcG9zZURpbWVuc2lvbnMoKTtpZihlJiZ0aGlzLl90ZXJtaW5hbCl7dmFyIHQ9dGhpcy5fdGVybWluYWwuX2NvcmU7dGhpcy5fdGVybWluYWwucm93cz09PWUucm93cyYmdGhpcy5fdGVybWluYWwuY29scz09PWUuY29sc3x8KHQuX3JlbmRlclNlcnZpY2UuY2xlYXIoKSx0aGlzLl90ZXJtaW5hbC5yZXNpemUoZS5jb2xzLGUucm93cykpfX0sZS5wcm90b3R5cGUucHJvcG9zZURpbWVuc2lvbnM9ZnVuY3Rpb24oKXtpZih0aGlzLl90ZXJtaW5hbCYmdGhpcy5fdGVybWluYWwuZWxlbWVudC5wYXJlbnRFbGVtZW50KXt2YXIgZT10aGlzLl90ZXJtaW5hbC5fY29yZSx0PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX3Rlcm1pbmFsLmVsZW1lbnQucGFyZW50RWxlbWVudCkscj1wYXJzZUludCh0LmdldFByb3BlcnR5VmFsdWUoXCJoZWlnaHRcIikpLG49TWF0aC5tYXgoMCxwYXJzZUludCh0LmdldFByb3BlcnR5VmFsdWUoXCJ3aWR0aFwiKSkpLG89d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fdGVybWluYWwuZWxlbWVudCksaT1yLShwYXJzZUludChvLmdldFByb3BlcnR5VmFsdWUoXCJwYWRkaW5nLXRvcFwiKSkrcGFyc2VJbnQoby5nZXRQcm9wZXJ0eVZhbHVlKFwicGFkZGluZy1ib3R0b21cIikpKSxsPW4tKHBhcnNlSW50KG8uZ2V0UHJvcGVydHlWYWx1ZShcInBhZGRpbmctcmlnaHRcIikpK3BhcnNlSW50KG8uZ2V0UHJvcGVydHlWYWx1ZShcInBhZGRpbmctbGVmdFwiKSkpLWUudmlld3BvcnQuc2Nyb2xsQmFyV2lkdGg7cmV0dXJue2NvbHM6TWF0aC5mbG9vcihsL2UuX3JlbmRlclNlcnZpY2UuZGltZW5zaW9ucy5hY3R1YWxDZWxsV2lkdGgpLHJvd3M6TWF0aC5mbG9vcihpL2UuX3JlbmRlclNlcnZpY2UuZGltZW5zaW9ucy5hY3R1YWxDZWxsSGVpZ2h0KX19fSxlfSgpO3QuRml0QWRkb249bn1dKX0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9eHRlcm0tYWRkb24tZml0LmpzLm1hcCIsIi8vIHJlbW92ZWQgYnkgZXh0cmFjdC10ZXh0LXdlYnBhY2stcGx1Z2luIiwiIWZ1bmN0aW9uKGUsdCl7aWYoXCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHMmJlwib2JqZWN0XCI9PXR5cGVvZiBtb2R1bGUpbW9kdWxlLmV4cG9ydHM9dCgpO2Vsc2UgaWYoXCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNle3ZhciBpPXQoKTtmb3IodmFyIHIgaW4gaSkoXCJvYmplY3RcIj09dHlwZW9mIGV4cG9ydHM/ZXhwb3J0czplKVtyXT1pW3JdfX0od2luZG93LGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Z1bmN0aW9uIGkocil7aWYodFtyXSlyZXR1cm4gdFtyXS5leHBvcnRzO3ZhciBuPXRbcl09e2k6cixsOiExLGV4cG9ydHM6e319O3JldHVybiBlW3JdLmNhbGwobi5leHBvcnRzLG4sbi5leHBvcnRzLGkpLG4ubD0hMCxuLmV4cG9ydHN9cmV0dXJuIGkubT1lLGkuYz10LGkuZD1mdW5jdGlvbihlLHQscil7aS5vKGUsdCl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsZ2V0OnJ9KX0saS5yPWZ1bmN0aW9uKGUpe1widW5kZWZpbmVkXCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZTpcIk1vZHVsZVwifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSl9LGkudD1mdW5jdGlvbihlLHQpe2lmKDEmdCYmKGU9aShlKSksOCZ0KXJldHVybiBlO2lmKDQmdCYmXCJvYmplY3RcIj09dHlwZW9mIGUmJmUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTt2YXIgcj1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGkucihyKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocixcImRlZmF1bHRcIix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSksMiZ0JiZcInN0cmluZ1wiIT10eXBlb2YgZSlmb3IodmFyIG4gaW4gZSlpLmQocixuLGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfS5iaW5kKG51bGwsbikpO3JldHVybiByfSxpLm49ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGUuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZX07cmV0dXJuIGkuZCh0LFwiYVwiLHQpLHR9LGkubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0saS5wPVwiXCIsaShpLnM9MzIpfShbZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWkoMTMpO3QuSUJ1ZmZlclNlcnZpY2U9ci5jcmVhdGVEZWNvcmF0b3IoXCJCdWZmZXJTZXJ2aWNlXCIpLHQuSUNvcmVNb3VzZVNlcnZpY2U9ci5jcmVhdGVEZWNvcmF0b3IoXCJDb3JlTW91c2VTZXJ2aWNlXCIpLHQuSUNvcmVTZXJ2aWNlPXIuY3JlYXRlRGVjb3JhdG9yKFwiQ29yZVNlcnZpY2VcIiksdC5JRGlydHlSb3dTZXJ2aWNlPXIuY3JlYXRlRGVjb3JhdG9yKFwiRGlydHlSb3dTZXJ2aWNlXCIpLHQuSUluc3RhbnRpYXRpb25TZXJ2aWNlPXIuY3JlYXRlRGVjb3JhdG9yKFwiSW5zdGFudGlhdGlvblNlcnZpY2VcIiksdC5JTG9nU2VydmljZT1yLmNyZWF0ZURlY29yYXRvcihcIkxvZ1NlcnZpY2VcIiksdC5JT3B0aW9uc1NlcnZpY2U9ci5jcmVhdGVEZWNvcmF0b3IoXCJPcHRpb25zU2VydmljZVwiKX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuX2xpc3RlbmVycz1bXX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiZXZlbnRcIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5fZXZlbnR8fCh0aGlzLl9ldmVudD1mdW5jdGlvbih0KXtyZXR1cm4gZS5fbGlzdGVuZXJzLnB1c2godCkse2Rpc3Bvc2U6ZnVuY3Rpb24oKXtmb3IodmFyIGk9MDtpPGUuX2xpc3RlbmVycy5sZW5ndGg7aSsrKWlmKGUuX2xpc3RlbmVyc1tpXT09PXQpcmV0dXJuIHZvaWQgZS5fbGlzdGVuZXJzLnNwbGljZShpLDEpfX19KSx0aGlzLl9ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5maXJlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxpPTA7aTx0aGlzLl9saXN0ZW5lcnMubGVuZ3RoO2krKyl0LnB1c2godGhpcy5fbGlzdGVuZXJzW2ldKTtmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKXRbaV0uY2FsbCh2b2lkIDAsZSl9LGV9KCk7dC5FdmVudEVtaXR0ZXI9cn0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuX2Rpc3Bvc2FibGVzPVtdLHRoaXMuX2lzRGlzcG9zZWQ9ITF9cmV0dXJuIGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9pc0Rpc3Bvc2VkPSEwLHRoaXMuX2Rpc3Bvc2FibGVzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuZGlzcG9zZSgpfSksdGhpcy5fZGlzcG9zYWJsZXMubGVuZ3RoPTB9LGUucHJvdG90eXBlLnJlZ2lzdGVyPWZ1bmN0aW9uKGUpe3RoaXMuX2Rpc3Bvc2FibGVzLnB1c2goZSl9LGUucHJvdG90eXBlLnVucmVnaXN0ZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZGlzcG9zYWJsZXMuaW5kZXhPZihlKTstMSE9PXQmJnRoaXMuX2Rpc3Bvc2FibGVzLnNwbGljZSh0LDEpfSxlfSgpO3QuRGlzcG9zYWJsZT1yfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5ERUZBVUxUX0NPTE9SPTI1Nix0LkRFRkFVTFRfQVRUUj0yNTZ8dC5ERUZBVUxUX0NPTE9SPDw5LHQuQ0hBUl9EQVRBX0FUVFJfSU5ERVg9MCx0LkNIQVJfREFUQV9DSEFSX0lOREVYPTEsdC5DSEFSX0RBVEFfV0lEVEhfSU5ERVg9Mix0LkNIQVJfREFUQV9DT0RFX0lOREVYPTMsdC5OVUxMX0NFTExfQ0hBUj1cIlwiLHQuTlVMTF9DRUxMX1dJRFRIPTEsdC5OVUxMX0NFTExfQ09ERT0wLHQuV0hJVEVTUEFDRV9DRUxMX0NIQVI9XCIgXCIsdC5XSElURVNQQUNFX0NFTExfV0lEVEg9MSx0LldISVRFU1BBQ0VfQ0VMTF9DT0RFPTMyfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ocj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYoZVtpXT10W2ldKX0pKGUsdCl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KTooaS5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IGkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHM9aSg4KSxvPWkoMyksYT1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7dmFyIHQ9bnVsbCE9PWUmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiB0LmNvbnRlbnQ9MCx0LmZnPTAsdC5iZz0wLHQuY29tYmluZWREYXRhPVwiXCIsdH1yZXR1cm4gbih0LGUpLHQuZnJvbUNoYXJEYXRhPWZ1bmN0aW9uKGUpe3ZhciBpPW5ldyB0O3JldHVybiBpLnNldEZyb21DaGFyRGF0YShlKSxpfSx0LnByb3RvdHlwZS5pc0NvbWJpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIDIwOTcxNTImdGhpcy5jb250ZW50fSx0LnByb3RvdHlwZS5nZXRXaWR0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRlbnQ+PjIyfSx0LnByb3RvdHlwZS5nZXRDaGFycz1mdW5jdGlvbigpe3JldHVybiAyMDk3MTUyJnRoaXMuY29udGVudD90aGlzLmNvbWJpbmVkRGF0YToyMDk3MTUxJnRoaXMuY29udGVudD9zLnN0cmluZ0Zyb21Db2RlUG9pbnQoMjA5NzE1MSZ0aGlzLmNvbnRlbnQpOlwiXCJ9LHQucHJvdG90eXBlLmdldENvZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0NvbWJpbmVkKCk/dGhpcy5jb21iaW5lZERhdGEuY2hhckNvZGVBdCh0aGlzLmNvbWJpbmVkRGF0YS5sZW5ndGgtMSk6MjA5NzE1MSZ0aGlzLmNvbnRlbnR9LHQucHJvdG90eXBlLnNldEZyb21DaGFyRGF0YT1mdW5jdGlvbihlKXt0aGlzLmZnPWVbby5DSEFSX0RBVEFfQVRUUl9JTkRFWF0sdGhpcy5iZz0wO3ZhciB0PSExO2lmKGVbby5DSEFSX0RBVEFfQ0hBUl9JTkRFWF0ubGVuZ3RoPjIpdD0hMDtlbHNlIGlmKDI9PT1lW28uQ0hBUl9EQVRBX0NIQVJfSU5ERVhdLmxlbmd0aCl7dmFyIGk9ZVtvLkNIQVJfREFUQV9DSEFSX0lOREVYXS5jaGFyQ29kZUF0KDApO2lmKDU1Mjk2PD1pJiZpPD01NjMxOSl7dmFyIHI9ZVtvLkNIQVJfREFUQV9DSEFSX0lOREVYXS5jaGFyQ29kZUF0KDEpOzU2MzIwPD1yJiZyPD01NzM0Mz90aGlzLmNvbnRlbnQ9MTAyNCooaS01NTI5Nikrci01NjMyMCs2NTUzNnxlW28uQ0hBUl9EQVRBX1dJRFRIX0lOREVYXTw8MjI6dD0hMH1lbHNlIHQ9ITB9ZWxzZSB0aGlzLmNvbnRlbnQ9ZVtvLkNIQVJfREFUQV9DSEFSX0lOREVYXS5jaGFyQ29kZUF0KDApfGVbby5DSEFSX0RBVEFfV0lEVEhfSU5ERVhdPDwyMjt0JiYodGhpcy5jb21iaW5lZERhdGE9ZVtvLkNIQVJfREFUQV9DSEFSX0lOREVYXSx0aGlzLmNvbnRlbnQ9MjA5NzE1MnxlW28uQ0hBUl9EQVRBX1dJRFRIX0lOREVYXTw8MjIpfSx0LnByb3RvdHlwZS5nZXRBc0NoYXJEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuZmcsdGhpcy5nZXRDaGFycygpLHRoaXMuZ2V0V2lkdGgoKSx0aGlzLmdldENvZGUoKV19LHR9KGkoNikuQXR0cmlidXRlRGF0YSk7dC5DZWxsRGF0YT1hfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9aSgxMyk7dC5JQ2hhclNpemVTZXJ2aWNlPXIuY3JlYXRlRGVjb3JhdG9yKFwiQ2hhclNpemVTZXJ2aWNlXCIpLHQuSU1vdXNlU2VydmljZT1yLmNyZWF0ZURlY29yYXRvcihcIk1vdXNlU2VydmljZVwiKSx0LklSZW5kZXJTZXJ2aWNlPXIuY3JlYXRlRGVjb3JhdG9yKFwiUmVuZGVyU2VydmljZVwiKSx0LklTZWxlY3Rpb25TZXJ2aWNlPXIuY3JlYXRlRGVjb3JhdG9yKFwiU2VsZWN0aW9uU2VydmljZVwiKSx0LklTb3VuZFNlcnZpY2U9ci5jcmVhdGVEZWNvcmF0b3IoXCJTb3VuZFNlcnZpY2VcIil9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLmZnPTAsdGhpcy5iZz0wfXJldHVybiBlLnRvQ29sb3JSR0I9ZnVuY3Rpb24oZSl7cmV0dXJuW2U+Pj4xNiYyNTUsZT4+PjgmMjU1LDI1NSZlXX0sZS5mcm9tQ29sb3JSR0I9ZnVuY3Rpb24oZSl7cmV0dXJuKDI1NSZlWzBdKTw8MTZ8KDI1NSZlWzFdKTw8OHwyNTUmZVsyXX0sZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgZTtyZXR1cm4gdC5mZz10aGlzLmZnLHQuYmc9dGhpcy5iZyx0fSxlLnByb3RvdHlwZS5pc0ludmVyc2U9ZnVuY3Rpb24oKXtyZXR1cm4gNjcxMDg4NjQmdGhpcy5mZ30sZS5wcm90b3R5cGUuaXNCb2xkPWZ1bmN0aW9uKCl7cmV0dXJuIDEzNDIxNzcyOCZ0aGlzLmZnfSxlLnByb3RvdHlwZS5pc1VuZGVybGluZT1mdW5jdGlvbigpe3JldHVybiAyNjg0MzU0NTYmdGhpcy5mZ30sZS5wcm90b3R5cGUuaXNCbGluaz1mdW5jdGlvbigpe3JldHVybiA1MzY4NzA5MTImdGhpcy5mZ30sZS5wcm90b3R5cGUuaXNJbnZpc2libGU9ZnVuY3Rpb24oKXtyZXR1cm4gMTA3Mzc0MTgyNCZ0aGlzLmZnfSxlLnByb3RvdHlwZS5pc0l0YWxpYz1mdW5jdGlvbigpe3JldHVybiA2NzEwODg2NCZ0aGlzLmJnfSxlLnByb3RvdHlwZS5pc0RpbT1mdW5jdGlvbigpe3JldHVybiAxMzQyMTc3MjgmdGhpcy5iZ30sZS5wcm90b3R5cGUuZ2V0RmdDb2xvck1vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gNTAzMzE2NDgmdGhpcy5mZ30sZS5wcm90b3R5cGUuZ2V0QmdDb2xvck1vZGU9ZnVuY3Rpb24oKXtyZXR1cm4gNTAzMzE2NDgmdGhpcy5iZ30sZS5wcm90b3R5cGUuaXNGZ1JHQj1mdW5jdGlvbigpe3JldHVybiA1MDMzMTY0OD09KDUwMzMxNjQ4JnRoaXMuZmcpfSxlLnByb3RvdHlwZS5pc0JnUkdCPWZ1bmN0aW9uKCl7cmV0dXJuIDUwMzMxNjQ4PT0oNTAzMzE2NDgmdGhpcy5iZyl9LGUucHJvdG90eXBlLmlzRmdQYWxldHRlPWZ1bmN0aW9uKCl7cmV0dXJuIDE2Nzc3MjE2PT0oNTAzMzE2NDgmdGhpcy5mZyl8fDMzNTU0NDMyPT0oNTAzMzE2NDgmdGhpcy5mZyl9LGUucHJvdG90eXBlLmlzQmdQYWxldHRlPWZ1bmN0aW9uKCl7cmV0dXJuIDE2Nzc3MjE2PT0oNTAzMzE2NDgmdGhpcy5iZyl8fDMzNTU0NDMyPT0oNTAzMzE2NDgmdGhpcy5iZyl9LGUucHJvdG90eXBlLmlzRmdEZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSg1MDMzMTY0OCZ0aGlzLmZnKX0sZS5wcm90b3R5cGUuaXNCZ0RlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDUwMzMxNjQ4JnRoaXMuYmcpfSxlLnByb3RvdHlwZS5nZXRGZ0NvbG9yPWZ1bmN0aW9uKCl7c3dpdGNoKDUwMzMxNjQ4JnRoaXMuZmcpe2Nhc2UgMTY3NzcyMTY6Y2FzZSAzMzU1NDQzMjpyZXR1cm4gMjU1JnRoaXMuZmc7Y2FzZSA1MDMzMTY0ODpyZXR1cm4gMTY3NzcyMTUmdGhpcy5mZztkZWZhdWx0OnJldHVybi0xfX0sZS5wcm90b3R5cGUuZ2V0QmdDb2xvcj1mdW5jdGlvbigpe3N3aXRjaCg1MDMzMTY0OCZ0aGlzLmJnKXtjYXNlIDE2Nzc3MjE2OmNhc2UgMzM1NTQ0MzI6cmV0dXJuIDI1NSZ0aGlzLmJnO2Nhc2UgNTAzMzE2NDg6cmV0dXJuIDE2Nzc3MjE1JnRoaXMuYmc7ZGVmYXVsdDpyZXR1cm4tMX19LGV9KCk7dC5BdHRyaWJ1dGVEYXRhPXJ9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LmFkZERpc3Bvc2FibGVEb21MaXN0ZW5lcj1mdW5jdGlvbihlLHQsaSxyKXtyZXR1cm4gZS5hZGRFdmVudExpc3RlbmVyKHQsaSxyKSx7ZGlzcG9zZTpmdW5jdGlvbigpe2kmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGkscil9fX19LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnN0cmluZ0Zyb21Db2RlUG9pbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGU+NjU1MzU/KGUtPTY1NTM2LFN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGU+PjEwKSkrU3RyaW5nLmZyb21DaGFyQ29kZShlJTEwMjQrNTYzMjApKTpTdHJpbmcuZnJvbUNoYXJDb2RlKGUpfSx0LnV0ZjMyVG9TdHJpbmc9ZnVuY3Rpb24oZSx0LGkpe3ZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PWkmJihpPWUubGVuZ3RoKTtmb3IodmFyIHI9XCJcIixuPXQ7bjxpOysrbil7dmFyIHM9ZVtuXTtzPjY1NTM1PyhzLT02NTUzNixyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhzPj4xMCkpK1N0cmluZy5mcm9tQ2hhckNvZGUocyUxMDI0KzU2MzIwKSk6cis9U3RyaW5nLmZyb21DaGFyQ29kZShzKX1yZXR1cm4gcn07dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5faW50ZXJpbT0wfXJldHVybiBlLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX2ludGVyaW09MH0sZS5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKGUsdCl7dmFyIGk9ZS5sZW5ndGg7aWYoIWkpcmV0dXJuIDA7dmFyIHI9MCxuPTA7dGhpcy5faW50ZXJpbSYmKDU2MzIwPD0oYT1lLmNoYXJDb2RlQXQobisrKSkmJmE8PTU3MzQzP3RbcisrXT0xMDI0Kih0aGlzLl9pbnRlcmltLTU1Mjk2KSthLTU2MzIwKzY1NTM2Oih0W3IrK109dGhpcy5faW50ZXJpbSx0W3IrK109YSksdGhpcy5faW50ZXJpbT0wKTtmb3IodmFyIHM9bjtzPGk7KytzKXt2YXIgbz1lLmNoYXJDb2RlQXQocyk7aWYoNTUyOTY8PW8mJm88PTU2MzE5KXtpZigrK3M+PWkpcmV0dXJuIHRoaXMuX2ludGVyaW09byxyO3ZhciBhOzU2MzIwPD0oYT1lLmNoYXJDb2RlQXQocykpJiZhPD01NzM0Mz90W3IrK109MTAyNCooby01NTI5NikrYS01NjMyMCs2NTUzNjoodFtyKytdPW8sdFtyKytdPWEpfWVsc2UgdFtyKytdPW99cmV0dXJuIHJ9LGV9KCk7dC5TdHJpbmdUb1V0ZjMyPXI7dmFyIG49ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5pbnRlcmltPW5ldyBVaW50OEFycmF5KDMpfXJldHVybiBlLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuaW50ZXJpbS5maWxsKDApfSxlLnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oZSx0KXt2YXIgaT1lLmxlbmd0aDtpZighaSlyZXR1cm4gMDt2YXIgcixuLHMsbyxhPTAsYz0wLGw9MDtpZih0aGlzLmludGVyaW1bMF0pe3ZhciBoPSExLHU9dGhpcy5pbnRlcmltWzBdO3UmPTE5Mj09KDIyNCZ1KT8zMToyMjQ9PSgyNDAmdSk/MTU6Nztmb3IodmFyIGY9MCxfPXZvaWQgMDsoXz02MyZ0aGlzLmludGVyaW1bKytmXSkmJmY8NDspdTw8PTYsdXw9Xztmb3IodmFyIGQ9MTkyPT0oMjI0JnRoaXMuaW50ZXJpbVswXSk/MjoyMjQ9PSgyNDAmdGhpcy5pbnRlcmltWzBdKT8zOjQscD1kLWY7bDxwOyl7aWYobD49aSlyZXR1cm4gMDtpZigxMjghPSgxOTImKF89ZVtsKytdKSkpe2wtLSxoPSEwO2JyZWFrfXRoaXMuaW50ZXJpbVtmKytdPV8sdTw8PTYsdXw9NjMmX31ofHwoMj09PWQ/dTwxMjg/bC0tOnRbYSsrXT11OjM9PT1kP3U8MjA0OHx8dT49NTUyOTYmJnU8PTU3MzQzfHwodFthKytdPXUpOmM8NjU1MzZ8fGM+MTExNDExMXx8KHRbYSsrXT11KSksdGhpcy5pbnRlcmltLmZpbGwoMCl9Zm9yKHZhciB2PWktNCxnPWw7ZzxpOyl7Zm9yKDshKCEoZzx2KXx8MTI4JihyPWVbZ10pfHwxMjgmKG49ZVtnKzFdKXx8MTI4JihzPWVbZysyXSl8fDEyOCYobz1lW2crM10pKTspdFthKytdPXIsdFthKytdPW4sdFthKytdPXMsdFthKytdPW8sZys9NDtpZigocj1lW2crK10pPDEyOCl0W2ErK109cjtlbHNlIGlmKDE5Mj09KDIyNCZyKSl7aWYoZz49aSlyZXR1cm4gdGhpcy5pbnRlcmltWzBdPXIsYTtpZigxMjghPSgxOTImKG49ZVtnKytdKSkpe2ctLTtjb250aW51ZX1pZigoYz0oMzEmcik8PDZ8NjMmbik8MTI4KXtnLS07Y29udGludWV9dFthKytdPWN9ZWxzZSBpZigyMjQ9PSgyNDAmcikpe2lmKGc+PWkpcmV0dXJuIHRoaXMuaW50ZXJpbVswXT1yLGE7aWYoMTI4IT0oMTkyJihuPWVbZysrXSkpKXtnLS07Y29udGludWV9aWYoZz49aSlyZXR1cm4gdGhpcy5pbnRlcmltWzBdPXIsdGhpcy5pbnRlcmltWzFdPW4sYTtpZigxMjghPSgxOTImKHM9ZVtnKytdKSkpe2ctLTtjb250aW51ZX1pZigoYz0oMTUmcik8PDEyfCg2MyZuKTw8Nnw2MyZzKTwyMDQ4fHxjPj01NTI5NiYmYzw9NTczNDMpY29udGludWU7dFthKytdPWN9ZWxzZSBpZigyNDA9PSgyNDgmcikpe2lmKGc+PWkpcmV0dXJuIHRoaXMuaW50ZXJpbVswXT1yLGE7aWYoMTI4IT0oMTkyJihuPWVbZysrXSkpKXtnLS07Y29udGludWV9aWYoZz49aSlyZXR1cm4gdGhpcy5pbnRlcmltWzBdPXIsdGhpcy5pbnRlcmltWzFdPW4sYTtpZigxMjghPSgxOTImKHM9ZVtnKytdKSkpe2ctLTtjb250aW51ZX1pZihnPj1pKXJldHVybiB0aGlzLmludGVyaW1bMF09cix0aGlzLmludGVyaW1bMV09bix0aGlzLmludGVyaW1bMl09cyxhO2lmKDEyOCE9KDE5MiYobz1lW2crK10pKSl7Zy0tO2NvbnRpbnVlfWlmKChjPSg3JnIpPDwxOHwoNjMmbik8PDEyfCg2MyZzKTw8Nnw2MyZvKTw2NTUzNnx8Yz4xMTE0MTExKWNvbnRpbnVlO3RbYSsrXT1jfX1yZXR1cm4gYX0sZX0oKTt0LlV0ZjhUb1V0ZjMyPW59LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LklOVkVSVEVEX0RFRkFVTFRfQ09MT1I9MjU3LHQuRElNX09QQUNJVFk9LjUsdC5DSEFSX0FUTEFTX0NFTExfU1BBQ0lORz0xfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9XCJ1bmRlZmluZWRcIj09dHlwZW9mIG5hdmlnYXRvcixuPXI/XCJub2RlXCI6bmF2aWdhdG9yLnVzZXJBZ2VudCxzPXI/XCJub2RlXCI6bmF2aWdhdG9yLnBsYXRmb3JtO2Z1bmN0aW9uIG8oZSx0KXtyZXR1cm4gZS5pbmRleE9mKHQpPj0wfXQuaXNGaXJlZm94PSEhfm4uaW5kZXhPZihcIkZpcmVmb3hcIiksdC5pc1NhZmFyaT0vXigoPyFjaHJvbWV8YW5kcm9pZCkuKSpzYWZhcmkvaS50ZXN0KG4pLHQuaXNNYWM9byhbXCJNYWNpbnRvc2hcIixcIk1hY0ludGVsXCIsXCJNYWNQUENcIixcIk1hYzY4S1wiXSxzKSx0LmlzSXBhZD1cImlQYWRcIj09PXMsdC5pc0lwaG9uZT1cImlQaG9uZVwiPT09cyx0LmlzV2luZG93cz1vKFtcIldpbmRvd3NcIixcIldpbjE2XCIsXCJXaW4zMlwiLFwiV2luQ0VcIl0scyksdC5pc0xpbnV4PXMuaW5kZXhPZihcIkxpbnV4XCIpPj0wfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksZnVuY3Rpb24oZSl7ZS5OVUw9XCJcXDBcIixlLlNPSD1cIlx1MDAwMVwiLGUuU1RYPVwiXHUwMDAyXCIsZS5FVFg9XCJcdTAwMDNcIixlLkVPVD1cIlx1MDAwNFwiLGUuRU5RPVwiXHUwMDA1XCIsZS5BQ0s9XCJcdTAwMDZcIixlLkJFTD1cIlx1MDAwN1wiLGUuQlM9XCJcXGJcIixlLkhUPVwiXFx0XCIsZS5MRj1cIlxcblwiLGUuVlQ9XCJcXHZcIixlLkZGPVwiXFxmXCIsZS5DUj1cIlxcclwiLGUuU089XCJcdTAwMGVcIixlLlNJPVwiXHUwMDBmXCIsZS5ETEU9XCJcdTAwMTBcIixlLkRDMT1cIlx1MDAxMVwiLGUuREMyPVwiXHUwMDEyXCIsZS5EQzM9XCJcdTAwMTNcIixlLkRDND1cIlx1MDAxNFwiLGUuTkFLPVwiXHUwMDE1XCIsZS5TWU49XCJcdTAwMTZcIixlLkVUQj1cIlx1MDAxN1wiLGUuQ0FOPVwiXHUwMDE4XCIsZS5FTT1cIlx1MDAxOVwiLGUuU1VCPVwiXHUwMDFhXCIsZS5FU0M9XCJcdTAwMWJcIixlLkZTPVwiXHUwMDFjXCIsZS5HUz1cIlx1MDAxZFwiLGUuUlM9XCJcdTAwMWVcIixlLlVTPVwiXHUwMDFmXCIsZS5TUD1cIiBcIixlLkRFTD1cIn9cIn0odC5DMHx8KHQuQzA9e30pKSxmdW5jdGlvbihlKXtlLlBBRD1cIsKAXCIsZS5IT1A9XCLCgVwiLGUuQlBIPVwiwoJcIixlLk5CSD1cIsKDXCIsZS5JTkQ9XCLChFwiLGUuTkVMPVwiwoVcIixlLlNTQT1cIsKGXCIsZS5FU0E9XCLCh1wiLGUuSFRTPVwiwohcIixlLkhUSj1cIsKJXCIsZS5WVFM9XCLCilwiLGUuUExEPVwiwotcIixlLlBMVT1cIsKMXCIsZS5SST1cIsKNXCIsZS5TUzI9XCLCjlwiLGUuU1MzPVwiwo9cIixlLkRDUz1cIsKQXCIsZS5QVTE9XCLCkVwiLGUuUFUyPVwiwpJcIixlLlNUUz1cIsKTXCIsZS5DQ0g9XCLClFwiLGUuTVc9XCLClVwiLGUuU1BBPVwiwpZcIixlLkVQQT1cIsKXXCIsZS5TT1M9XCLCmFwiLGUuU0dDST1cIsKZXCIsZS5TQ0k9XCLCmlwiLGUuQ1NJPVwiwptcIixlLlNUPVwiwpxcIixlLk9TQz1cIsKdXCIsZS5QTT1cIsKeXCIsZS5BUEM9XCLCn1wifSh0LkMxfHwodC5DMT17fSkpfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9aSgzKSxuPWkoOSkscz1pKDIzKSxvPWkoNiksYT1pKDI2KSxjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsaSxyLG4scyxvLGEpe3RoaXMuX2NvbnRhaW5lcj1lLHRoaXMuX2FscGhhPXIsdGhpcy5fY29sb3JzPW4sdGhpcy5fcmVuZGVyZXJJZD1zLHRoaXMuX2J1ZmZlclNlcnZpY2U9byx0aGlzLl9vcHRpb25zU2VydmljZT1hLHRoaXMuX3NjYWxlZENoYXJXaWR0aD0wLHRoaXMuX3NjYWxlZENoYXJIZWlnaHQ9MCx0aGlzLl9zY2FsZWRDZWxsV2lkdGg9MCx0aGlzLl9zY2FsZWRDZWxsSGVpZ2h0PTAsdGhpcy5fc2NhbGVkQ2hhckxlZnQ9MCx0aGlzLl9zY2FsZWRDaGFyVG9wPTAsdGhpcy5fY3VycmVudEdseXBoSWRlbnRpZmllcj17Y2hhcnM6XCJcIixjb2RlOjAsYmc6MCxmZzowLGJvbGQ6ITEsZGltOiExLGl0YWxpYzohMX0sdGhpcy5fY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIiksdGhpcy5fY2FudmFzLmNsYXNzTGlzdC5hZGQoXCJ4dGVybS1cIit0K1wiLWxheWVyXCIpLHRoaXMuX2NhbnZhcy5zdHlsZS56SW5kZXg9aS50b1N0cmluZygpLHRoaXMuX2luaXRDYW52YXMoKSx0aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fY2FudmFzKX1yZXR1cm4gZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2NvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLl9jYW52YXMpLHRoaXMuX2NoYXJBdGxhcyYmdGhpcy5fY2hhckF0bGFzLmRpc3Bvc2UoKX0sZS5wcm90b3R5cGUuX2luaXRDYW52YXM9ZnVuY3Rpb24oKXt0aGlzLl9jdHg9YS50aHJvd0lmRmFsc3kodGhpcy5fY2FudmFzLmdldENvbnRleHQoXCIyZFwiLHthbHBoYTp0aGlzLl9hbHBoYX0pKSx0aGlzLl9hbHBoYXx8dGhpcy5fY2xlYXJBbGwoKX0sZS5wcm90b3R5cGUub25PcHRpb25zQ2hhbmdlZD1mdW5jdGlvbigpe30sZS5wcm90b3R5cGUub25CbHVyPWZ1bmN0aW9uKCl7fSxlLnByb3RvdHlwZS5vbkZvY3VzPWZ1bmN0aW9uKCl7fSxlLnByb3RvdHlwZS5vbkN1cnNvck1vdmU9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLm9uR3JpZENoYW5nZWQ9ZnVuY3Rpb24oZSx0KXt9LGUucHJvdG90eXBlLm9uU2VsZWN0aW9uQ2hhbmdlZD1mdW5jdGlvbihlLHQsaSl7dm9pZCAwPT09aSYmKGk9ITEpfSxlLnByb3RvdHlwZS5zZXRDb2xvcnM9ZnVuY3Rpb24oZSl7dGhpcy5fcmVmcmVzaENoYXJBdGxhcyhlKX0sZS5wcm90b3R5cGUuX3NldFRyYW5zcGFyZW5jeT1mdW5jdGlvbihlKXtpZihlIT09dGhpcy5fYWxwaGEpe3ZhciB0PXRoaXMuX2NhbnZhczt0aGlzLl9hbHBoYT1lLHRoaXMuX2NhbnZhcz10aGlzLl9jYW52YXMuY2xvbmVOb2RlKCksdGhpcy5faW5pdENhbnZhcygpLHRoaXMuX2NvbnRhaW5lci5yZXBsYWNlQ2hpbGQodGhpcy5fY2FudmFzLHQpLHRoaXMuX3JlZnJlc2hDaGFyQXRsYXModGhpcy5fY29sb3JzKSx0aGlzLm9uR3JpZENoYW5nZWQoMCx0aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MtMSl9fSxlLnByb3RvdHlwZS5fcmVmcmVzaENoYXJBdGxhcz1mdW5jdGlvbihlKXt0aGlzLl9zY2FsZWRDaGFyV2lkdGg8PTAmJnRoaXMuX3NjYWxlZENoYXJIZWlnaHQ8PTB8fCh0aGlzLl9jaGFyQXRsYXM9cy5hY3F1aXJlQ2hhckF0bGFzKHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMsdGhpcy5fcmVuZGVyZXJJZCxlLHRoaXMuX3NjYWxlZENoYXJXaWR0aCx0aGlzLl9zY2FsZWRDaGFySGVpZ2h0KSx0aGlzLl9jaGFyQXRsYXMud2FybVVwKCkpfSxlLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oZSl7dGhpcy5fc2NhbGVkQ2VsbFdpZHRoPWUuc2NhbGVkQ2VsbFdpZHRoLHRoaXMuX3NjYWxlZENlbGxIZWlnaHQ9ZS5zY2FsZWRDZWxsSGVpZ2h0LHRoaXMuX3NjYWxlZENoYXJXaWR0aD1lLnNjYWxlZENoYXJXaWR0aCx0aGlzLl9zY2FsZWRDaGFySGVpZ2h0PWUuc2NhbGVkQ2hhckhlaWdodCx0aGlzLl9zY2FsZWRDaGFyTGVmdD1lLnNjYWxlZENoYXJMZWZ0LHRoaXMuX3NjYWxlZENoYXJUb3A9ZS5zY2FsZWRDaGFyVG9wLHRoaXMuX2NhbnZhcy53aWR0aD1lLnNjYWxlZENhbnZhc1dpZHRoLHRoaXMuX2NhbnZhcy5oZWlnaHQ9ZS5zY2FsZWRDYW52YXNIZWlnaHQsdGhpcy5fY2FudmFzLnN0eWxlLndpZHRoPWUuY2FudmFzV2lkdGgrXCJweFwiLHRoaXMuX2NhbnZhcy5zdHlsZS5oZWlnaHQ9ZS5jYW52YXNIZWlnaHQrXCJweFwiLHRoaXMuX2FscGhhfHx0aGlzLl9jbGVhckFsbCgpLHRoaXMuX3JlZnJlc2hDaGFyQXRsYXModGhpcy5fY29sb3JzKX0sZS5wcm90b3R5cGUuX2ZpbGxDZWxscz1mdW5jdGlvbihlLHQsaSxyKXt0aGlzLl9jdHguZmlsbFJlY3QoZSp0aGlzLl9zY2FsZWRDZWxsV2lkdGgsdCp0aGlzLl9zY2FsZWRDZWxsSGVpZ2h0LGkqdGhpcy5fc2NhbGVkQ2VsbFdpZHRoLHIqdGhpcy5fc2NhbGVkQ2VsbEhlaWdodCl9LGUucHJvdG90eXBlLl9maWxsQm90dG9tTGluZUF0Q2VsbHM9ZnVuY3Rpb24oZSx0LGkpe3ZvaWQgMD09PWkmJihpPTEpLHRoaXMuX2N0eC5maWxsUmVjdChlKnRoaXMuX3NjYWxlZENlbGxXaWR0aCwodCsxKSp0aGlzLl9zY2FsZWRDZWxsSGVpZ2h0LXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLTEsaSp0aGlzLl9zY2FsZWRDZWxsV2lkdGgsd2luZG93LmRldmljZVBpeGVsUmF0aW8pfSxlLnByb3RvdHlwZS5fZmlsbExlZnRMaW5lQXRDZWxsPWZ1bmN0aW9uKGUsdCl7dGhpcy5fY3R4LmZpbGxSZWN0KGUqdGhpcy5fc2NhbGVkQ2VsbFdpZHRoLHQqdGhpcy5fc2NhbGVkQ2VsbEhlaWdodCx3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyx0aGlzLl9zY2FsZWRDZWxsSGVpZ2h0KX0sZS5wcm90b3R5cGUuX3N0cm9rZVJlY3RBdENlbGw9ZnVuY3Rpb24oZSx0LGkscil7dGhpcy5fY3R4LmxpbmVXaWR0aD13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyx0aGlzLl9jdHguc3Ryb2tlUmVjdChlKnRoaXMuX3NjYWxlZENlbGxXaWR0aCt3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpby8yLHQqdGhpcy5fc2NhbGVkQ2VsbEhlaWdodCt3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpby8yLGkqdGhpcy5fc2NhbGVkQ2VsbFdpZHRoLXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLHIqdGhpcy5fc2NhbGVkQ2VsbEhlaWdodC13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyl9LGUucHJvdG90eXBlLl9jbGVhckFsbD1mdW5jdGlvbigpe3RoaXMuX2FscGhhP3RoaXMuX2N0eC5jbGVhclJlY3QoMCwwLHRoaXMuX2NhbnZhcy53aWR0aCx0aGlzLl9jYW52YXMuaGVpZ2h0KToodGhpcy5fY3R4LmZpbGxTdHlsZT10aGlzLl9jb2xvcnMuYmFja2dyb3VuZC5jc3MsdGhpcy5fY3R4LmZpbGxSZWN0KDAsMCx0aGlzLl9jYW52YXMud2lkdGgsdGhpcy5fY2FudmFzLmhlaWdodCkpfSxlLnByb3RvdHlwZS5fY2xlYXJDZWxscz1mdW5jdGlvbihlLHQsaSxyKXt0aGlzLl9hbHBoYT90aGlzLl9jdHguY2xlYXJSZWN0KGUqdGhpcy5fc2NhbGVkQ2VsbFdpZHRoLHQqdGhpcy5fc2NhbGVkQ2VsbEhlaWdodCxpKnRoaXMuX3NjYWxlZENlbGxXaWR0aCxyKnRoaXMuX3NjYWxlZENlbGxIZWlnaHQpOih0aGlzLl9jdHguZmlsbFN0eWxlPXRoaXMuX2NvbG9ycy5iYWNrZ3JvdW5kLmNzcyx0aGlzLl9jdHguZmlsbFJlY3QoZSp0aGlzLl9zY2FsZWRDZWxsV2lkdGgsdCp0aGlzLl9zY2FsZWRDZWxsSGVpZ2h0LGkqdGhpcy5fc2NhbGVkQ2VsbFdpZHRoLHIqdGhpcy5fc2NhbGVkQ2VsbEhlaWdodCkpfSxlLnByb3RvdHlwZS5fZmlsbENoYXJUcnVlQ29sb3I9ZnVuY3Rpb24oZSx0LGkpe3RoaXMuX2N0eC5mb250PXRoaXMuX2dldEZvbnQoITEsITEpLHRoaXMuX2N0eC50ZXh0QmFzZWxpbmU9XCJtaWRkbGVcIix0aGlzLl9jbGlwUm93KGkpLHRoaXMuX2N0eC5maWxsVGV4dChlLmdldENoYXJzKCksdCp0aGlzLl9zY2FsZWRDZWxsV2lkdGgrdGhpcy5fc2NhbGVkQ2hhckxlZnQsaSp0aGlzLl9zY2FsZWRDZWxsSGVpZ2h0K3RoaXMuX3NjYWxlZENoYXJUb3ArdGhpcy5fc2NhbGVkQ2hhckhlaWdodC8yKX0sZS5wcm90b3R5cGUuX2RyYXdDaGFycz1mdW5jdGlvbihlLHQsaSl7dmFyIHMsbztlLmlzRmdSR0IoKXx8ZS5pc0JnUkdCKCk/dGhpcy5fZHJhd1VuY2FjaGVkQ2hhcnMoZSx0LGkpOihlLmlzSW52ZXJzZSgpPyhzPWUuaXNCZ0RlZmF1bHQoKT9uLklOVkVSVEVEX0RFRkFVTFRfQ09MT1I6ZS5nZXRCZ0NvbG9yKCksbz1lLmlzRmdEZWZhdWx0KCk/bi5JTlZFUlRFRF9ERUZBVUxUX0NPTE9SOmUuZ2V0RmdDb2xvcigpKToobz1lLmlzQmdEZWZhdWx0KCk/ci5ERUZBVUxUX0NPTE9SOmUuZ2V0QmdDb2xvcigpLHM9ZS5pc0ZnRGVmYXVsdCgpP3IuREVGQVVMVF9DT0xPUjplLmdldEZnQ29sb3IoKSkscys9dGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5kcmF3Qm9sZFRleHRJbkJyaWdodENvbG9ycyYmZS5pc0JvbGQoKSYmczw4JiZzIT09bi5JTlZFUlRFRF9ERUZBVUxUX0NPTE9SPzg6MCx0aGlzLl9jdXJyZW50R2x5cGhJZGVudGlmaWVyLmNoYXJzPWUuZ2V0Q2hhcnMoKXx8ci5XSElURVNQQUNFX0NFTExfQ0hBUix0aGlzLl9jdXJyZW50R2x5cGhJZGVudGlmaWVyLmNvZGU9ZS5nZXRDb2RlKCl8fHIuV0hJVEVTUEFDRV9DRUxMX0NPREUsdGhpcy5fY3VycmVudEdseXBoSWRlbnRpZmllci5iZz1vLHRoaXMuX2N1cnJlbnRHbHlwaElkZW50aWZpZXIuZmc9cyx0aGlzLl9jdXJyZW50R2x5cGhJZGVudGlmaWVyLmJvbGQ9ISFlLmlzQm9sZCgpLHRoaXMuX2N1cnJlbnRHbHlwaElkZW50aWZpZXIuZGltPSEhZS5pc0RpbSgpLHRoaXMuX2N1cnJlbnRHbHlwaElkZW50aWZpZXIuaXRhbGljPSEhZS5pc0l0YWxpYygpLHRoaXMuX2NoYXJBdGxhcyYmdGhpcy5fY2hhckF0bGFzLmRyYXcodGhpcy5fY3R4LHRoaXMuX2N1cnJlbnRHbHlwaElkZW50aWZpZXIsdCp0aGlzLl9zY2FsZWRDZWxsV2lkdGgrdGhpcy5fc2NhbGVkQ2hhckxlZnQsaSp0aGlzLl9zY2FsZWRDZWxsSGVpZ2h0K3RoaXMuX3NjYWxlZENoYXJUb3ApfHx0aGlzLl9kcmF3VW5jYWNoZWRDaGFycyhlLHQsaSkpfSxlLnByb3RvdHlwZS5fZHJhd1VuY2FjaGVkQ2hhcnM9ZnVuY3Rpb24oZSx0LGkpe2lmKHRoaXMuX2N0eC5zYXZlKCksdGhpcy5fY3R4LmZvbnQ9dGhpcy5fZ2V0Rm9udCghIWUuaXNCb2xkKCksISFlLmlzSXRhbGljKCkpLHRoaXMuX2N0eC50ZXh0QmFzZWxpbmU9XCJtaWRkbGVcIixlLmlzSW52ZXJzZSgpKWUuaXNCZ0RlZmF1bHQoKT90aGlzLl9jdHguZmlsbFN0eWxlPXRoaXMuX2NvbG9ycy5iYWNrZ3JvdW5kLmNzczplLmlzQmdSR0IoKT90aGlzLl9jdHguZmlsbFN0eWxlPVwicmdiKFwiK28uQXR0cmlidXRlRGF0YS50b0NvbG9yUkdCKGUuZ2V0QmdDb2xvcigpKS5qb2luKFwiLFwiKStcIilcIjp0aGlzLl9jdHguZmlsbFN0eWxlPXRoaXMuX2NvbG9ycy5hbnNpW2UuZ2V0QmdDb2xvcigpXS5jc3M7ZWxzZSBpZihlLmlzRmdEZWZhdWx0KCkpdGhpcy5fY3R4LmZpbGxTdHlsZT10aGlzLl9jb2xvcnMuZm9yZWdyb3VuZC5jc3M7ZWxzZSBpZihlLmlzRmdSR0IoKSl0aGlzLl9jdHguZmlsbFN0eWxlPVwicmdiKFwiK28uQXR0cmlidXRlRGF0YS50b0NvbG9yUkdCKGUuZ2V0RmdDb2xvcigpKS5qb2luKFwiLFwiKStcIilcIjtlbHNle3ZhciByPWUuZ2V0RmdDb2xvcigpO3RoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuZHJhd0JvbGRUZXh0SW5CcmlnaHRDb2xvcnMmJmUuaXNCb2xkKCkmJnI8OCYmKHIrPTgpLHRoaXMuX2N0eC5maWxsU3R5bGU9dGhpcy5fY29sb3JzLmFuc2lbcl0uY3NzfXRoaXMuX2NsaXBSb3coaSksZS5pc0RpbSgpJiYodGhpcy5fY3R4Lmdsb2JhbEFscGhhPW4uRElNX09QQUNJVFkpLHRoaXMuX2N0eC5maWxsVGV4dChlLmdldENoYXJzKCksdCp0aGlzLl9zY2FsZWRDZWxsV2lkdGgrdGhpcy5fc2NhbGVkQ2hhckxlZnQsaSp0aGlzLl9zY2FsZWRDZWxsSGVpZ2h0K3RoaXMuX3NjYWxlZENoYXJUb3ArdGhpcy5fc2NhbGVkQ2hhckhlaWdodC8yKSx0aGlzLl9jdHgucmVzdG9yZSgpfSxlLnByb3RvdHlwZS5fY2xpcFJvdz1mdW5jdGlvbihlKXt0aGlzLl9jdHguYmVnaW5QYXRoKCksdGhpcy5fY3R4LnJlY3QoMCxlKnRoaXMuX3NjYWxlZENlbGxIZWlnaHQsdGhpcy5fYnVmZmVyU2VydmljZS5jb2xzKnRoaXMuX3NjYWxlZENlbGxXaWR0aCx0aGlzLl9zY2FsZWRDZWxsSGVpZ2h0KSx0aGlzLl9jdHguY2xpcCgpfSxlLnByb3RvdHlwZS5fZ2V0Rm9udD1mdW5jdGlvbihlLHQpe3JldHVybih0P1wiaXRhbGljXCI6XCJcIikrXCIgXCIrKGU/dGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5mb250V2VpZ2h0Qm9sZDp0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmZvbnRXZWlnaHQpK1wiIFwiK3RoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuZm9udFNpemUqd2luZG93LmRldmljZVBpeGVsUmF0aW8rXCJweCBcIit0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmZvbnRGYW1pbHl9LGV9KCk7dC5CYXNlUmVuZGVyTGF5ZXI9Y30sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPVwiZGkkdGFyZ2V0XCIsbj1cImRpJGRlcGVuZGVuY2llc1wiO2Z1bmN0aW9uIHMoZSx0LGkpe3Rbcl09PT10P3Rbbl0ucHVzaCh7aWQ6ZSxpbmRleDppfSk6KHRbbl09W3tpZDplLGluZGV4Oml9XSx0W3JdPXQpfXQuc2VydmljZVJlZ2lzdHJ5PW5ldyBNYXAsdC5nZXRTZXJ2aWNlRGVwZW5kZW5jaWVzPWZ1bmN0aW9uKGUpe3JldHVybiBlW25dfHxbXX0sdC5jcmVhdGVEZWNvcmF0b3I9ZnVuY3Rpb24oZSl7aWYodC5zZXJ2aWNlUmVnaXN0cnkuaGFzKGUpKXJldHVybiB0LnNlcnZpY2VSZWdpc3RyeS5nZXQoZSk7dmFyIGk9ZnVuY3Rpb24oZSx0LHIpe2lmKDMhPT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBFcnJvcihcIkBJU2VydmljZU5hbWUtZGVjb3JhdG9yIGNhbiBvbmx5IGJlIHVzZWQgdG8gZGVjb3JhdGUgYSBwYXJhbWV0ZXJcIik7cyhpLGUscil9O3JldHVybiBpLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LHQuc2VydmljZVJlZ2lzdHJ5LnNldChlLGkpLGl9fSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcihlLHQsaSxyKXtpZih2b2lkIDA9PT1pJiYoaT0wKSx2b2lkIDA9PT1yJiYocj1lLmxlbmd0aCksaT49ZS5sZW5ndGgpcmV0dXJuIGU7aT0oZS5sZW5ndGgraSklZS5sZW5ndGgscj1yPj1lLmxlbmd0aD9lLmxlbmd0aDooZS5sZW5ndGgrciklZS5sZW5ndGg7Zm9yKHZhciBuPWk7bjxyOysrbillW25dPXQ7cmV0dXJuIGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5maWxsPWZ1bmN0aW9uKGUsdCxpLG4pe3JldHVybiBlLmZpbGw/ZS5maWxsKHQsaSxuKTpyKGUsdCxpLG4pfSx0LmZpbGxGYWxsYmFjaz1yLHQuY29uY2F0PWZ1bmN0aW9uKGUsdCl7dmFyIGk9bmV3IGUuY29uc3RydWN0b3IoZS5sZW5ndGgrdC5sZW5ndGgpO3JldHVybiBpLnNldChlKSxpLnNldCh0LGUubGVuZ3RoKSxpfX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWkoOCksbj1pKDMpLHM9aSg0KSxvPWkoNiksYT0zO3QuREVGQVVMVF9BVFRSX0RBVEE9T2JqZWN0LmZyZWV6ZShuZXcgby5BdHRyaWJ1dGVEYXRhKTt2YXIgYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LGkpe3ZvaWQgMD09PWkmJihpPSExKSx0aGlzLmlzV3JhcHBlZD1pLHRoaXMuX2NvbWJpbmVkPXt9LHRoaXMuX2RhdGE9bmV3IFVpbnQzMkFycmF5KGUqYSk7Zm9yKHZhciByPXR8fHMuQ2VsbERhdGEuZnJvbUNoYXJEYXRhKFswLG4uTlVMTF9DRUxMX0NIQVIsbi5OVUxMX0NFTExfV0lEVEgsbi5OVUxMX0NFTExfQ09ERV0pLG89MDtvPGU7KytvKXRoaXMuc2V0Q2VsbChvLHIpO3RoaXMubGVuZ3RoPWV9cmV0dXJuIGUucHJvdG90eXBlLmdldD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9kYXRhW2UqYSswXSxpPTIwOTcxNTEmdDtyZXR1cm5bdGhpcy5fZGF0YVtlKmErMV0sMjA5NzE1MiZ0P3RoaXMuX2NvbWJpbmVkW2VdOmk/ci5zdHJpbmdGcm9tQ29kZVBvaW50KGkpOlwiXCIsdD4+MjIsMjA5NzE1MiZ0P3RoaXMuX2NvbWJpbmVkW2VdLmNoYXJDb2RlQXQodGhpcy5fY29tYmluZWRbZV0ubGVuZ3RoLTEpOmldfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSx0KXt0aGlzLl9kYXRhW2UqYSsxXT10W24uQ0hBUl9EQVRBX0FUVFJfSU5ERVhdLHRbbi5DSEFSX0RBVEFfQ0hBUl9JTkRFWF0ubGVuZ3RoPjE/KHRoaXMuX2NvbWJpbmVkW2VdPXRbMV0sdGhpcy5fZGF0YVtlKmErMF09MjA5NzE1MnxlfHRbbi5DSEFSX0RBVEFfV0lEVEhfSU5ERVhdPDwyMik6dGhpcy5fZGF0YVtlKmErMF09dFtuLkNIQVJfREFUQV9DSEFSX0lOREVYXS5jaGFyQ29kZUF0KDApfHRbbi5DSEFSX0RBVEFfV0lEVEhfSU5ERVhdPDwyMn0sZS5wcm90b3R5cGUuZ2V0V2lkdGg9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2RhdGFbZSphKzBdPj4yMn0sZS5wcm90b3R5cGUuaGFzV2lkdGg9ZnVuY3Rpb24oZSl7cmV0dXJuIDEyNTgyOTEyJnRoaXMuX2RhdGFbZSphKzBdfSxlLnByb3RvdHlwZS5nZXRGZz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fZGF0YVtlKmErMV19LGUucHJvdG90eXBlLmdldEJnPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9kYXRhW2UqYSsyXX0sZS5wcm90b3R5cGUuaGFzQ29udGVudD1mdW5jdGlvbihlKXtyZXR1cm4gNDE5NDMwMyZ0aGlzLl9kYXRhW2UqYSswXX0sZS5wcm90b3R5cGUuZ2V0Q29kZVBvaW50PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2RhdGFbZSphKzBdO3JldHVybiAyMDk3MTUyJnQ/dGhpcy5fY29tYmluZWRbZV0uY2hhckNvZGVBdCh0aGlzLl9jb21iaW5lZFtlXS5sZW5ndGgtMSk6MjA5NzE1MSZ0fSxlLnByb3RvdHlwZS5pc0NvbWJpbmVkPWZ1bmN0aW9uKGUpe3JldHVybiAyMDk3MTUyJnRoaXMuX2RhdGFbZSphKzBdfSxlLnByb3RvdHlwZS5nZXRTdHJpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZGF0YVtlKmErMF07cmV0dXJuIDIwOTcxNTImdD90aGlzLl9jb21iaW5lZFtlXToyMDk3MTUxJnQ/ci5zdHJpbmdGcm9tQ29kZVBvaW50KDIwOTcxNTEmdCk6XCJcIn0sZS5wcm90b3R5cGUubG9hZENlbGw9ZnVuY3Rpb24oZSx0KXt2YXIgaT1lKmE7cmV0dXJuIHQuY29udGVudD10aGlzLl9kYXRhW2krMF0sdC5mZz10aGlzLl9kYXRhW2krMV0sdC5iZz10aGlzLl9kYXRhW2krMl0sMjA5NzE1MiZ0LmNvbnRlbnQmJih0LmNvbWJpbmVkRGF0YT10aGlzLl9jb21iaW5lZFtlXSksdH0sZS5wcm90b3R5cGUuc2V0Q2VsbD1mdW5jdGlvbihlLHQpezIwOTcxNTImdC5jb250ZW50JiYodGhpcy5fY29tYmluZWRbZV09dC5jb21iaW5lZERhdGEpLHRoaXMuX2RhdGFbZSphKzBdPXQuY29udGVudCx0aGlzLl9kYXRhW2UqYSsxXT10LmZnLHRoaXMuX2RhdGFbZSphKzJdPXQuYmd9LGUucHJvdG90eXBlLnNldENlbGxGcm9tQ29kZVBvaW50PWZ1bmN0aW9uKGUsdCxpLHIsbil7dGhpcy5fZGF0YVtlKmErMF09dHxpPDwyMix0aGlzLl9kYXRhW2UqYSsxXT1yLHRoaXMuX2RhdGFbZSphKzJdPW59LGUucHJvdG90eXBlLmFkZENvZGVwb2ludFRvQ2VsbD1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuX2RhdGFbZSphKzBdOzIwOTcxNTImaT90aGlzLl9jb21iaW5lZFtlXSs9ci5zdHJpbmdGcm9tQ29kZVBvaW50KHQpOigyMDk3MTUxJmk/KHRoaXMuX2NvbWJpbmVkW2VdPXIuc3RyaW5nRnJvbUNvZGVQb2ludCgyMDk3MTUxJmkpK3Iuc3RyaW5nRnJvbUNvZGVQb2ludCh0KSxpJj0tMjA5NzE1MixpfD0yMDk3MTUyKTppPXR8MTw8MjIsdGhpcy5fZGF0YVtlKmErMF09aSl9LGUucHJvdG90eXBlLmluc2VydENlbGxzPWZ1bmN0aW9uKGUsdCxpKXtpZihlJT10aGlzLmxlbmd0aCx0PHRoaXMubGVuZ3RoLWUpe2Zvcih2YXIgcj1uZXcgcy5DZWxsRGF0YSxuPXRoaXMubGVuZ3RoLWUtdC0xO24+PTA7LS1uKXRoaXMuc2V0Q2VsbChlK3Qrbix0aGlzLmxvYWRDZWxsKGUrbixyKSk7Zm9yKG49MDtuPHQ7KytuKXRoaXMuc2V0Q2VsbChlK24saSl9ZWxzZSBmb3Iobj1lO248dGhpcy5sZW5ndGg7KytuKXRoaXMuc2V0Q2VsbChuLGkpfSxlLnByb3RvdHlwZS5kZWxldGVDZWxscz1mdW5jdGlvbihlLHQsaSl7aWYoZSU9dGhpcy5sZW5ndGgsdDx0aGlzLmxlbmd0aC1lKXtmb3IodmFyIHI9bmV3IHMuQ2VsbERhdGEsbj0wO248dGhpcy5sZW5ndGgtZS10Oysrbil0aGlzLnNldENlbGwoZStuLHRoaXMubG9hZENlbGwoZSt0K24scikpO2ZvcihuPXRoaXMubGVuZ3RoLXQ7bjx0aGlzLmxlbmd0aDsrK24pdGhpcy5zZXRDZWxsKG4saSl9ZWxzZSBmb3Iobj1lO248dGhpcy5sZW5ndGg7KytuKXRoaXMuc2V0Q2VsbChuLGkpfSxlLnByb3RvdHlwZS5yZXBsYWNlQ2VsbHM9ZnVuY3Rpb24oZSx0LGkpe2Zvcig7ZTx0JiZlPHRoaXMubGVuZ3RoOyl0aGlzLnNldENlbGwoZSsrLGkpfSxlLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oZSx0KXtpZihlIT09dGhpcy5sZW5ndGgpe2lmKGU+dGhpcy5sZW5ndGgpe3ZhciBpPW5ldyBVaW50MzJBcnJheShlKmEpO3RoaXMubGVuZ3RoJiYoZSphPHRoaXMuX2RhdGEubGVuZ3RoP2kuc2V0KHRoaXMuX2RhdGEuc3ViYXJyYXkoMCxlKmEpKTppLnNldCh0aGlzLl9kYXRhKSksdGhpcy5fZGF0YT1pO2Zvcih2YXIgcj10aGlzLmxlbmd0aDtyPGU7KytyKXRoaXMuc2V0Q2VsbChyLHQpfWVsc2UgaWYoZSl7KGk9bmV3IFVpbnQzMkFycmF5KGUqYSkpLnNldCh0aGlzLl9kYXRhLnN1YmFycmF5KDAsZSphKSksdGhpcy5fZGF0YT1pO3ZhciBuPU9iamVjdC5rZXlzKHRoaXMuX2NvbWJpbmVkKTtmb3Iocj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgcz1wYXJzZUludChuW3JdLDEwKTtzPj1lJiZkZWxldGUgdGhpcy5fY29tYmluZWRbc119fWVsc2UgdGhpcy5fZGF0YT1uZXcgVWludDMyQXJyYXkoMCksdGhpcy5fY29tYmluZWQ9e307dGhpcy5sZW5ndGg9ZX19LGUucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24oZSl7dGhpcy5fY29tYmluZWQ9e307Zm9yKHZhciB0PTA7dDx0aGlzLmxlbmd0aDsrK3QpdGhpcy5zZXRDZWxsKHQsZSl9LGUucHJvdG90eXBlLmNvcHlGcm9tPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiB0aGlzLmxlbmd0aCE9PWUubGVuZ3RoP3RoaXMuX2RhdGE9bmV3IFVpbnQzMkFycmF5KGUuX2RhdGEpOnRoaXMuX2RhdGEuc2V0KGUuX2RhdGEpLHRoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuX2NvbWJpbmVkPXt9LGUuX2NvbWJpbmVkKXRoaXMuX2NvbWJpbmVkW3RdPWUuX2NvbWJpbmVkW3RdO3RoaXMuaXNXcmFwcGVkPWUuaXNXcmFwcGVkfSxlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBlKDApO2Zvcih2YXIgaSBpbiB0Ll9kYXRhPW5ldyBVaW50MzJBcnJheSh0aGlzLl9kYXRhKSx0Lmxlbmd0aD10aGlzLmxlbmd0aCx0aGlzLl9jb21iaW5lZCl0Ll9jb21iaW5lZFtpXT10aGlzLl9jb21iaW5lZFtpXTtyZXR1cm4gdC5pc1dyYXBwZWQ9dGhpcy5pc1dyYXBwZWQsdH0sZS5wcm90b3R5cGUuZ2V0VHJpbW1lZExlbmd0aD1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmxlbmd0aC0xO2U+PTA7LS1lKWlmKDQxOTQzMDMmdGhpcy5fZGF0YVtlKmErMF0pcmV0dXJuIGUrKHRoaXMuX2RhdGFbZSphKzBdPj4yMik7cmV0dXJuIDB9LGUucHJvdG90eXBlLmNvcHlDZWxsc0Zyb209ZnVuY3Rpb24oZSx0LGkscixuKXt2YXIgcz1lLl9kYXRhO2lmKG4pZm9yKHZhciBvPXItMTtvPj0wO28tLSlmb3IodmFyIGM9MDtjPGE7YysrKXRoaXMuX2RhdGFbKGkrbykqYStjXT1zWyh0K28pKmErY107ZWxzZSBmb3Iobz0wO288cjtvKyspZm9yKGM9MDtjPGE7YysrKXRoaXMuX2RhdGFbKGkrbykqYStjXT1zWyh0K28pKmErY107dmFyIGw9T2JqZWN0LmtleXMoZS5fY29tYmluZWQpO2ZvcihjPTA7YzxsLmxlbmd0aDtjKyspe3ZhciBoPXBhcnNlSW50KGxbY10sMTApO2g+PXQmJih0aGlzLl9jb21iaW5lZFtoLXQraV09ZS5fY29tYmluZWRbaF0pfX0sZS5wcm90b3R5cGUudHJhbnNsYXRlVG9TdHJpbmc9ZnVuY3Rpb24oZSx0LGkpe3ZvaWQgMD09PWUmJihlPSExKSx2b2lkIDA9PT10JiYodD0wKSx2b2lkIDA9PT1pJiYoaT10aGlzLmxlbmd0aCksZSYmKGk9TWF0aC5taW4oaSx0aGlzLmdldFRyaW1tZWRMZW5ndGgoKSkpO2Zvcih2YXIgcz1cIlwiO3Q8aTspe3ZhciBvPXRoaXMuX2RhdGFbdCphKzBdLGM9MjA5NzE1MSZvO3MrPTIwOTcxNTImbz90aGlzLl9jb21iaW5lZFt0XTpjP3Iuc3RyaW5nRnJvbUNvZGVQb2ludChjKTpuLldISVRFU1BBQ0VfQ0VMTF9DSEFSLHQrPW8+PjIyfHwxfXJldHVybiBzfSxlfSgpO3QuQnVmZmVyTGluZT1jfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5wcm9tcHRMYWJlbD1cIlRlcm1pbmFsIGlucHV0XCIsdC50b29NdWNoT3V0cHV0PVwiVG9vIG11Y2ggb3V0cHV0IHRvIGFubm91bmNlLCBuYXZpZ2F0ZSB0byByb3dzIG1hbnVhbGx5IHRvIHJlYWRcIn0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuQ0hBUlNFVFM9e30sdC5ERUZBVUxUX0NIQVJTRVQ9dC5DSEFSU0VUUy5CLHQuQ0hBUlNFVFNbMF09e1wiYFwiOlwi4peGXCIsYTpcIuKWklwiLGI6XCJcXHRcIixjOlwiXFxmXCIsZDpcIlxcclwiLGU6XCJcXG5cIixmOlwiwrBcIixnOlwiwrFcIixoOlwi4pCkXCIsaTpcIlxcdlwiLGo6XCLilJhcIixrOlwi4pSQXCIsbDpcIuKUjFwiLG06XCLilJRcIixuOlwi4pS8XCIsbzpcIuKOulwiLHA6XCLijrtcIixxOlwi4pSAXCIscjpcIuKOvFwiLHM6XCLijr1cIix0Olwi4pScXCIsdTpcIuKUpFwiLHY6XCLilLRcIix3Olwi4pSsXCIseDpcIuKUglwiLHk6XCLiiaRcIix6Olwi4omlXCIsXCJ7XCI6XCLPgFwiLFwifFwiOlwi4omgXCIsXCJ9XCI6XCLCo1wiLFwiflwiOlwiwrdcIn0sdC5DSEFSU0VUUy5BPXtcIiNcIjpcIsKjXCJ9LHQuQ0hBUlNFVFMuQj1udWxsLHQuQ0hBUlNFVFNbNF09e1wiI1wiOlwiwqNcIixcIkBcIjpcIsK+XCIsXCJbXCI6XCJpalwiLFwiXFxcXFwiOlwiwr1cIixcIl1cIjpcInxcIixcIntcIjpcIsKoXCIsXCJ8XCI6XCJmXCIsXCJ9XCI6XCLCvFwiLFwiflwiOlwiwrRcIn0sdC5DSEFSU0VUUy5DPXQuQ0hBUlNFVFNbNV09e1wiW1wiOlwiw4RcIixcIlxcXFxcIjpcIsOWXCIsXCJdXCI6XCLDhVwiLFwiXlwiOlwiw5xcIixcImBcIjpcIsOpXCIsXCJ7XCI6XCLDpFwiLFwifFwiOlwiw7ZcIixcIn1cIjpcIsOlXCIsXCJ+XCI6XCLDvFwifSx0LkNIQVJTRVRTLlI9e1wiI1wiOlwiwqNcIixcIkBcIjpcIsOgXCIsXCJbXCI6XCLCsFwiLFwiXFxcXFwiOlwiw6dcIixcIl1cIjpcIsKnXCIsXCJ7XCI6XCLDqVwiLFwifFwiOlwiw7lcIixcIn1cIjpcIsOoXCIsXCJ+XCI6XCLCqFwifSx0LkNIQVJTRVRTLlE9e1wiQFwiOlwiw6BcIixcIltcIjpcIsOiXCIsXCJcXFxcXCI6XCLDp1wiLFwiXVwiOlwiw6pcIixcIl5cIjpcIsOuXCIsXCJgXCI6XCLDtFwiLFwie1wiOlwiw6lcIixcInxcIjpcIsO5XCIsXCJ9XCI6XCLDqFwiLFwiflwiOlwiw7tcIn0sdC5DSEFSU0VUUy5LPXtcIkBcIjpcIsKnXCIsXCJbXCI6XCLDhFwiLFwiXFxcXFwiOlwiw5ZcIixcIl1cIjpcIsOcXCIsXCJ7XCI6XCLDpFwiLFwifFwiOlwiw7ZcIixcIn1cIjpcIsO8XCIsXCJ+XCI6XCLDn1wifSx0LkNIQVJTRVRTLlk9e1wiI1wiOlwiwqNcIixcIkBcIjpcIsKnXCIsXCJbXCI6XCLCsFwiLFwiXFxcXFwiOlwiw6dcIixcIl1cIjpcIsOpXCIsXCJgXCI6XCLDuVwiLFwie1wiOlwiw6BcIixcInxcIjpcIsOyXCIsXCJ9XCI6XCLDqFwiLFwiflwiOlwiw6xcIn0sdC5DSEFSU0VUUy5FPXQuQ0hBUlNFVFNbNl09e1wiQFwiOlwiw4RcIixcIltcIjpcIsOGXCIsXCJcXFxcXCI6XCLDmFwiLFwiXVwiOlwiw4VcIixcIl5cIjpcIsOcXCIsXCJgXCI6XCLDpFwiLFwie1wiOlwiw6ZcIixcInxcIjpcIsO4XCIsXCJ9XCI6XCLDpVwiLFwiflwiOlwiw7xcIn0sdC5DSEFSU0VUUy5aPXtcIiNcIjpcIsKjXCIsXCJAXCI6XCLCp1wiLFwiW1wiOlwiwqFcIixcIlxcXFxcIjpcIsORXCIsXCJdXCI6XCLCv1wiLFwie1wiOlwiwrBcIixcInxcIjpcIsOxXCIsXCJ9XCI6XCLDp1wifSx0LkNIQVJTRVRTLkg9dC5DSEFSU0VUU1s3XT17XCJAXCI6XCLDiVwiLFwiW1wiOlwiw4RcIixcIlxcXFxcIjpcIsOWXCIsXCJdXCI6XCLDhVwiLFwiXlwiOlwiw5xcIixcImBcIjpcIsOpXCIsXCJ7XCI6XCLDpFwiLFwifFwiOlwiw7ZcIixcIn1cIjpcIsOlXCIsXCJ+XCI6XCLDvFwifSx0LkNIQVJTRVRTW1wiPVwiXT17XCIjXCI6XCLDuVwiLFwiQFwiOlwiw6BcIixcIltcIjpcIsOpXCIsXCJcXFxcXCI6XCLDp1wiLFwiXVwiOlwiw6pcIixcIl5cIjpcIsOuXCIsXzpcIsOoXCIsXCJgXCI6XCLDtFwiLFwie1wiOlwiw6RcIixcInxcIjpcIsO2XCIsXCJ9XCI6XCLDvFwiLFwiflwiOlwiw7tcIn19LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1pKDE0KTt0Lndjd2lkdGg9ZnVuY3Rpb24oZSl7dmFyIHQ9W1s3NjgsODc5XSxbMTE1NSwxMTU4XSxbMTE2MCwxMTYxXSxbMTQyNSwxNDY5XSxbMTQ3MSwxNDcxXSxbMTQ3MywxNDc0XSxbMTQ3NiwxNDc3XSxbMTQ3OSwxNDc5XSxbMTUzNiwxNTM5XSxbMTU1MiwxNTU3XSxbMTYxMSwxNjMwXSxbMTY0OCwxNjQ4XSxbMTc1MCwxNzY0XSxbMTc2NywxNzY4XSxbMTc3MCwxNzczXSxbMTgwNywxODA3XSxbMTgwOSwxODA5XSxbMTg0MCwxODY2XSxbMTk1OCwxOTY4XSxbMjAyNywyMDM1XSxbMjMwNSwyMzA2XSxbMjM2NCwyMzY0XSxbMjM2OSwyMzc2XSxbMjM4MSwyMzgxXSxbMjM4NSwyMzg4XSxbMjQwMiwyNDAzXSxbMjQzMywyNDMzXSxbMjQ5MiwyNDkyXSxbMjQ5NywyNTAwXSxbMjUwOSwyNTA5XSxbMjUzMCwyNTMxXSxbMjU2MSwyNTYyXSxbMjYyMCwyNjIwXSxbMjYyNSwyNjI2XSxbMjYzMSwyNjMyXSxbMjYzNSwyNjM3XSxbMjY3MiwyNjczXSxbMjY4OSwyNjkwXSxbMjc0OCwyNzQ4XSxbMjc1MywyNzU3XSxbMjc1OSwyNzYwXSxbMjc2NSwyNzY1XSxbMjc4NiwyNzg3XSxbMjgxNywyODE3XSxbMjg3NiwyODc2XSxbMjg3OSwyODc5XSxbMjg4MSwyODgzXSxbMjg5MywyODkzXSxbMjkwMiwyOTAyXSxbMjk0NiwyOTQ2XSxbMzAwOCwzMDA4XSxbMzAyMSwzMDIxXSxbMzEzNCwzMTM2XSxbMzE0MiwzMTQ0XSxbMzE0NiwzMTQ5XSxbMzE1NywzMTU4XSxbMzI2MCwzMjYwXSxbMzI2MywzMjYzXSxbMzI3MCwzMjcwXSxbMzI3NiwzMjc3XSxbMzI5OCwzMjk5XSxbMzM5MywzMzk1XSxbMzQwNSwzNDA1XSxbMzUzMCwzNTMwXSxbMzUzOCwzNTQwXSxbMzU0MiwzNTQyXSxbMzYzMywzNjMzXSxbMzYzNiwzNjQyXSxbMzY1NSwzNjYyXSxbMzc2MSwzNzYxXSxbMzc2NCwzNzY5XSxbMzc3MSwzNzcyXSxbMzc4NCwzNzg5XSxbMzg2NCwzODY1XSxbMzg5MywzODkzXSxbMzg5NSwzODk1XSxbMzg5NywzODk3XSxbMzk1MywzOTY2XSxbMzk2OCwzOTcyXSxbMzk3NCwzOTc1XSxbMzk4NCwzOTkxXSxbMzk5Myw0MDI4XSxbNDAzOCw0MDM4XSxbNDE0MSw0MTQ0XSxbNDE0Niw0MTQ2XSxbNDE1MCw0MTUxXSxbNDE1Myw0MTUzXSxbNDE4NCw0MTg1XSxbNDQ0OCw0NjA3XSxbNDk1OSw0OTU5XSxbNTkwNiw1OTA4XSxbNTkzOCw1OTQwXSxbNTk3MCw1OTcxXSxbNjAwMiw2MDAzXSxbNjA2OCw2MDY5XSxbNjA3MSw2MDc3XSxbNjA4Niw2MDg2XSxbNjA4OSw2MDk5XSxbNjEwOSw2MTA5XSxbNjE1NSw2MTU3XSxbNjMxMyw2MzEzXSxbNjQzMiw2NDM0XSxbNjQzOSw2NDQwXSxbNjQ1MCw2NDUwXSxbNjQ1Nyw2NDU5XSxbNjY3OSw2NjgwXSxbNjkxMiw2OTE1XSxbNjk2NCw2OTY0XSxbNjk2Niw2OTcwXSxbNjk3Miw2OTcyXSxbNjk3OCw2OTc4XSxbNzAxOSw3MDI3XSxbNzYxNiw3NjI2XSxbNzY3OCw3Njc5XSxbODIwMyw4MjA3XSxbODIzNCw4MjM4XSxbODI4OCw4MjkxXSxbODI5OCw4MzAzXSxbODQwMCw4NDMxXSxbMTIzMzAsMTIzMzVdLFsxMjQ0MSwxMjQ0Ml0sWzQzMDE0LDQzMDE0XSxbNDMwMTksNDMwMTldLFs0MzA0NSw0MzA0Nl0sWzY0Mjg2LDY0Mjg2XSxbNjUwMjQsNjUwMzldLFs2NTA1Niw2NTA1OV0sWzY1Mjc5LDY1Mjc5XSxbNjU1MjksNjU1MzFdXSxpPVtbNjgwOTcsNjgwOTldLFs2ODEwMSw2ODEwMl0sWzY4MTA4LDY4MTExXSxbNjgxNTIsNjgxNTRdLFs2ODE1OSw2ODE1OV0sWzExOTE0MywxMTkxNDVdLFsxMTkxNTUsMTE5MTcwXSxbMTE5MTczLDExOTE3OV0sWzExOTIxMCwxMTkyMTNdLFsxMTkzNjIsMTE5MzY0XSxbOTE3NTA1LDkxNzUwNV0sWzkxNzUzNiw5MTc2MzFdLFs5MTc3NjAsOTE3OTk5XV07dmFyIG49MHxlLmNvbnRyb2wscz1uZXcgVWludDhBcnJheSg2NTUzNik7ci5maWxsKHMsMSksc1swXT1lLm51bCxyLmZpbGwocyxlLmNvbnRyb2wsMSwzMiksci5maWxsKHMsZS5jb250cm9sLDEyNywxNjApLHIuZmlsbChzLDIsNDM1Miw0NDQ4KSxzWzkwMDFdPTIsc1s5MDAyXT0yLHIuZmlsbChzLDIsMTE5MDQsNDIxOTIpLHNbMTIzNTFdPTEsci5maWxsKHMsMiw0NDAzMiw1NTIwNCksci5maWxsKHMsMiw2Mzc0NCw2NDI1Niksci5maWxsKHMsMiw2NTA0MCw2NTA1MCksci5maWxsKHMsMiw2NTA3Miw2NTEzNiksci5maWxsKHMsMiw2NTI4MCw2NTM3Nyksci5maWxsKHMsMiw2NTUwNCw2NTUxMSk7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aDsrK28pci5maWxsKHMsMCx0W29dWzBdLHRbb11bMV0rMSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlPDMyPzB8bjplPDEyNz8xOmU8NjU1MzY/c1tlXTpmdW5jdGlvbihlLHQpe3ZhciBpLHI9MCxuPXQubGVuZ3RoLTE7aWYoZTx0WzBdWzBdfHxlPnRbbl1bMV0pcmV0dXJuITE7Zm9yKDtuPj1yOylpZihlPnRbaT1yK24+PjFdWzFdKXI9aSsxO2Vsc2V7aWYoIShlPHRbaV1bMF0pKXJldHVybiEwO249aS0xfXJldHVybiExfSh0PWUsaSk/MDp0Pj0xMzEwNzImJnQ8PTE5NjYwNXx8dD49MTk2NjA4JiZ0PD0yNjIxNDE/MjoxO3ZhciB0fX0oe251bDowLGNvbnRyb2w6MH0pLHQuZ2V0U3RyaW5nQ2VsbFdpZHRoPWZ1bmN0aW9uKGUpe2Zvcih2YXIgaT0wLHI9ZS5sZW5ndGgsbj0wO248cjsrK24pe3ZhciBzPWUuY2hhckNvZGVBdChuKTtpZig1NTI5Njw9cyYmczw9NTYzMTkpe2lmKCsrbj49cilyZXR1cm4gaSt0Lndjd2lkdGgocyk7dmFyIG89ZS5jaGFyQ29kZUF0KG4pOzU2MzIwPD1vJiZvPD01NzM0Mz9zPTEwMjQqKHMtNTUyOTYpK28tNTYzMjArNjU1MzY6aSs9dC53Y3dpZHRoKG8pfWkrPXQud2N3aWR0aChzKX1yZXR1cm4gaX19LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj0yNTYsbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXtpZih2b2lkIDA9PT1lJiYoZT0zMiksdm9pZCAwPT09dCYmKHQ9MzIpLHRoaXMubWF4TGVuZ3RoPWUsdGhpcy5tYXhTdWJQYXJhbXNMZW5ndGg9dCx0PnIpdGhyb3cgbmV3IEVycm9yKFwibWF4U3ViUGFyYW1zTGVuZ3RoIG11c3Qgbm90IGJlIGdyZWF0ZXIgdGhhbiAyNTZcIik7dGhpcy5wYXJhbXM9bmV3IEludDMyQXJyYXkoZSksdGhpcy5sZW5ndGg9MCx0aGlzLl9zdWJQYXJhbXM9bmV3IEludDMyQXJyYXkodCksdGhpcy5fc3ViUGFyYW1zTGVuZ3RoPTAsdGhpcy5fc3ViUGFyYW1zSWR4PW5ldyBVaW50MTZBcnJheShlKSx0aGlzLl9yZWplY3REaWdpdHM9ITEsdGhpcy5fcmVqZWN0U3ViRGlnaXRzPSExLHRoaXMuX2RpZ2l0SXNTdWI9ITF9cmV0dXJuIGUuZnJvbUFycmF5PWZ1bmN0aW9uKHQpe3ZhciBpPW5ldyBlO2lmKCF0Lmxlbmd0aClyZXR1cm4gaTtmb3IodmFyIHI9dFswXWluc3RhbmNlb2YgQXJyYXk/MTowO3I8dC5sZW5ndGg7KytyKXt2YXIgbj10W3JdO2lmKG4gaW5zdGFuY2VvZiBBcnJheSlmb3IodmFyIHM9MDtzPG4ubGVuZ3RoOysrcylpLmFkZFN1YlBhcmFtKG5bc10pO2Vsc2UgaS5hZGRQYXJhbShuKX1yZXR1cm4gaX0sZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgZSh0aGlzLm1heExlbmd0aCx0aGlzLm1heFN1YlBhcmFtc0xlbmd0aCk7cmV0dXJuIHQucGFyYW1zLnNldCh0aGlzLnBhcmFtcyksdC5sZW5ndGg9dGhpcy5sZW5ndGgsdC5fc3ViUGFyYW1zLnNldCh0aGlzLl9zdWJQYXJhbXMpLHQuX3N1YlBhcmFtc0xlbmd0aD10aGlzLl9zdWJQYXJhbXNMZW5ndGgsdC5fc3ViUGFyYW1zSWR4LnNldCh0aGlzLl9zdWJQYXJhbXNJZHgpLHQuX3JlamVjdERpZ2l0cz10aGlzLl9yZWplY3REaWdpdHMsdC5fcmVqZWN0U3ViRGlnaXRzPXRoaXMuX3JlamVjdFN1YkRpZ2l0cyx0Ll9kaWdpdElzU3ViPXRoaXMuX2RpZ2l0SXNTdWIsdH0sZS5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDx0aGlzLmxlbmd0aDsrK3Qpe2UucHVzaCh0aGlzLnBhcmFtc1t0XSk7dmFyIGk9dGhpcy5fc3ViUGFyYW1zSWR4W3RdPj44LHI9MjU1JnRoaXMuX3N1YlBhcmFtc0lkeFt0XTtyLWk+MCYmZS5wdXNoKEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX3N1YlBhcmFtcyxpLHIpKX1yZXR1cm4gZX0sZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmxlbmd0aD0wLHRoaXMuX3N1YlBhcmFtc0xlbmd0aD0wLHRoaXMuX3JlamVjdERpZ2l0cz0hMSx0aGlzLl9yZWplY3RTdWJEaWdpdHM9ITEsdGhpcy5fZGlnaXRJc1N1Yj0hMX0sZS5wcm90b3R5cGUuYWRkUGFyYW09ZnVuY3Rpb24oZSl7aWYodGhpcy5fZGlnaXRJc1N1Yj0hMSx0aGlzLmxlbmd0aD49dGhpcy5tYXhMZW5ndGgpdGhpcy5fcmVqZWN0RGlnaXRzPSEwO2Vsc2V7aWYoZTwtMSl0aHJvdyBuZXcgRXJyb3IoXCJ2YWx1ZXMgbGVzc2VyIHRoYW4gLTEgYXJlIG5vdCBhbGxvd2VkXCIpO3RoaXMuX3N1YlBhcmFtc0lkeFt0aGlzLmxlbmd0aF09dGhpcy5fc3ViUGFyYW1zTGVuZ3RoPDw4fHRoaXMuX3N1YlBhcmFtc0xlbmd0aCx0aGlzLnBhcmFtc1t0aGlzLmxlbmd0aCsrXT1lPjIxNDc0ODM2NDc/MjE0NzQ4MzY0NzplfX0sZS5wcm90b3R5cGUuYWRkU3ViUGFyYW09ZnVuY3Rpb24oZSl7aWYodGhpcy5fZGlnaXRJc1N1Yj0hMCx0aGlzLmxlbmd0aClpZih0aGlzLl9yZWplY3REaWdpdHN8fHRoaXMuX3N1YlBhcmFtc0xlbmd0aD49dGhpcy5tYXhTdWJQYXJhbXNMZW5ndGgpdGhpcy5fcmVqZWN0U3ViRGlnaXRzPSEwO2Vsc2V7aWYoZTwtMSl0aHJvdyBuZXcgRXJyb3IoXCJ2YWx1ZXMgbGVzc2VyIHRoYW4gLTEgYXJlIG5vdCBhbGxvd2VkXCIpO3RoaXMuX3N1YlBhcmFtc1t0aGlzLl9zdWJQYXJhbXNMZW5ndGgrK109ZT4yMTQ3NDgzNjQ3PzIxNDc0ODM2NDc6ZSx0aGlzLl9zdWJQYXJhbXNJZHhbdGhpcy5sZW5ndGgtMV0rK319LGUucHJvdG90eXBlLmhhc1N1YlBhcmFtcz1mdW5jdGlvbihlKXtyZXR1cm4oMjU1JnRoaXMuX3N1YlBhcmFtc0lkeFtlXSktKHRoaXMuX3N1YlBhcmFtc0lkeFtlXT4+OCk+MH0sZS5wcm90b3R5cGUuZ2V0U3ViUGFyYW1zPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3N1YlBhcmFtc0lkeFtlXT4+OCxpPTI1NSZ0aGlzLl9zdWJQYXJhbXNJZHhbZV07cmV0dXJuIGktdD4wP3RoaXMuX3N1YlBhcmFtcy5zdWJhcnJheSh0LGkpOm51bGx9LGUucHJvdG90eXBlLmdldFN1YlBhcmFtc0FsbD1mdW5jdGlvbigpe2Zvcih2YXIgZT17fSx0PTA7dDx0aGlzLmxlbmd0aDsrK3Qpe3ZhciBpPXRoaXMuX3N1YlBhcmFtc0lkeFt0XT4+OCxyPTI1NSZ0aGlzLl9zdWJQYXJhbXNJZHhbdF07ci1pPjAmJihlW3RdPXRoaXMuX3N1YlBhcmFtcy5zbGljZShpLHIpKX1yZXR1cm4gZX0sZS5wcm90b3R5cGUuYWRkRGlnaXQ9ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoISh0aGlzLl9yZWplY3REaWdpdHN8fCEodD10aGlzLl9kaWdpdElzU3ViP3RoaXMuX3N1YlBhcmFtc0xlbmd0aDp0aGlzLmxlbmd0aCl8fHRoaXMuX2RpZ2l0SXNTdWImJnRoaXMuX3JlamVjdFN1YkRpZ2l0cykpe3ZhciBpPXRoaXMuX2RpZ2l0SXNTdWI/dGhpcy5fc3ViUGFyYW1zOnRoaXMucGFyYW1zLHI9aVt0LTFdO2lbdC0xXT1+cj9NYXRoLm1pbigxMCpyK2UsMjE0NzQ4MzY0Nyk6ZX19LGV9KCk7dC5QYXJhbXM9bn0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWkoMjEpLG49aSg4KSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuX3N0YXRlPTAsdGhpcy5faWQ9LTEsdGhpcy5faGFuZGxlcnM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9oYW5kbGVyRmI9ZnVuY3Rpb24oKXt9fXJldHVybiBlLnByb3RvdHlwZS5hZGRIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dGhpcy5faGFuZGxlcnNbZV0mJih0aGlzLl9oYW5kbGVyc1tlXT1bXSk7dmFyIGk9dGhpcy5faGFuZGxlcnNbZV07cmV0dXJuIGkucHVzaCh0KSx7ZGlzcG9zZTpmdW5jdGlvbigpe3ZhciBlPWkuaW5kZXhPZih0KTstMSE9PWUmJmkuc3BsaWNlKGUsMSl9fX0sZS5wcm90b3R5cGUuc2V0SGFuZGxlcj1mdW5jdGlvbihlLHQpe3RoaXMuX2hhbmRsZXJzW2VdPVt0XX0sZS5wcm90b3R5cGUuY2xlYXJIYW5kbGVyPWZ1bmN0aW9uKGUpe3RoaXMuX2hhbmRsZXJzW2VdJiZkZWxldGUgdGhpcy5faGFuZGxlcnNbZV19LGUucHJvdG90eXBlLnNldEhhbmRsZXJGYWxsYmFjaz1mdW5jdGlvbihlKXt0aGlzLl9oYW5kbGVyRmI9ZX0sZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2hhbmRsZXJzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5faGFuZGxlckZiPWZ1bmN0aW9uKCl7fX0sZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXsyPT09dGhpcy5fc3RhdGUmJnRoaXMuZW5kKCExKSx0aGlzLl9pZD0tMSx0aGlzLl9zdGF0ZT0wfSxlLnByb3RvdHlwZS5fc3RhcnQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9oYW5kbGVyc1t0aGlzLl9pZF07aWYoZSlmb3IodmFyIHQ9ZS5sZW5ndGgtMTt0Pj0wO3QtLSllW3RdLnN0YXJ0KCk7ZWxzZSB0aGlzLl9oYW5kbGVyRmIodGhpcy5faWQsXCJTVEFSVFwiKX0sZS5wcm90b3R5cGUuX3B1dD1mdW5jdGlvbihlLHQsaSl7dmFyIHI9dGhpcy5faGFuZGxlcnNbdGhpcy5faWRdO2lmKHIpZm9yKHZhciBzPXIubGVuZ3RoLTE7cz49MDtzLS0pcltzXS5wdXQoZSx0LGkpO2Vsc2UgdGhpcy5faGFuZGxlckZiKHRoaXMuX2lkLFwiUFVUXCIsbi51dGYzMlRvU3RyaW5nKGUsdCxpKSl9LGUucHJvdG90eXBlLl9lbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faGFuZGxlcnNbdGhpcy5faWRdO2lmKHQpe2Zvcih2YXIgaT10Lmxlbmd0aC0xO2k+PTAmJiExPT09dFtpXS5lbmQoZSk7aS0tKTtmb3IoaS0tO2k+PTA7aS0tKXRbaV0uZW5kKCExKX1lbHNlIHRoaXMuX2hhbmRsZXJGYih0aGlzLl9pZCxcIkVORFwiLGUpfSxlLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3RoaXMucmVzZXQoKSx0aGlzLl9pZD0tMSx0aGlzLl9zdGF0ZT0xfSxlLnByb3RvdHlwZS5wdXQ9ZnVuY3Rpb24oZSx0LGkpe2lmKDMhPT10aGlzLl9zdGF0ZSl7aWYoMT09PXRoaXMuX3N0YXRlKWZvcig7dDxpOyl7dmFyIHI9ZVt0KytdO2lmKDU5PT09cil7dGhpcy5fc3RhdGU9Mix0aGlzLl9zdGFydCgpO2JyZWFrfWlmKHI8NDh8fDU3PHIpcmV0dXJuIHZvaWQodGhpcy5fc3RhdGU9Myk7LTE9PT10aGlzLl9pZCYmKHRoaXMuX2lkPTApLHRoaXMuX2lkPTEwKnRoaXMuX2lkK3ItNDh9Mj09PXRoaXMuX3N0YXRlJiZpLXQ+MCYmdGhpcy5fcHV0KGUsdCxpKX19LGUucHJvdG90eXBlLmVuZD1mdW5jdGlvbihlKXswIT09dGhpcy5fc3RhdGUmJigzIT09dGhpcy5fc3RhdGUmJigxPT09dGhpcy5fc3RhdGUmJnRoaXMuX3N0YXJ0KCksdGhpcy5fZW5kKGUpKSx0aGlzLl9pZD0tMSx0aGlzLl9zdGF0ZT0wKX0sZX0oKTt0Lk9zY1BhcnNlcj1zO3ZhciBvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt0aGlzLl9oYW5kbGVyPWUsdGhpcy5fZGF0YT1cIlwiLHRoaXMuX2hpdExpbWl0PSExfXJldHVybiBlLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3RoaXMuX2RhdGE9XCJcIix0aGlzLl9oaXRMaW1pdD0hMX0sZS5wcm90b3R5cGUucHV0PWZ1bmN0aW9uKGUsdCxpKXt0aGlzLl9oaXRMaW1pdHx8KHRoaXMuX2RhdGErPW4udXRmMzJUb1N0cmluZyhlLHQsaSksdGhpcy5fZGF0YS5sZW5ndGg+ci5QQVlMT0FEX0xJTUlUJiYodGhpcy5fZGF0YT1cIlwiLHRoaXMuX2hpdExpbWl0PSEwKSl9LGUucHJvdG90eXBlLmVuZD1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gdGhpcy5faGl0TGltaXQ/dD0hMTplJiYodD10aGlzLl9oYW5kbGVyKHRoaXMuX2RhdGEpKSx0aGlzLl9kYXRhPVwiXCIsdGhpcy5faGl0TGltaXQ9ITEsdH0sZX0oKTt0Lk9zY0hhbmRsZXI9b30sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuUEFZTE9BRF9MSU1JVD0xZTd9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1pKDgpLG49aSgxOSkscz1pKDIxKSxvPVtdLGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5faGFuZGxlcnM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9hY3RpdmU9byx0aGlzLl9pZGVudD0wLHRoaXMuX2hhbmRsZXJGYj1mdW5jdGlvbigpe319cmV0dXJuIGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2hhbmRsZXJGYj1mdW5jdGlvbigpe319LGUucHJvdG90eXBlLmFkZEhhbmRsZXI9ZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT10aGlzLl9oYW5kbGVyc1tlXSYmKHRoaXMuX2hhbmRsZXJzW2VdPVtdKTt2YXIgaT10aGlzLl9oYW5kbGVyc1tlXTtyZXR1cm4gaS5wdXNoKHQpLHtkaXNwb3NlOmZ1bmN0aW9uKCl7dmFyIGU9aS5pbmRleE9mKHQpOy0xIT09ZSYmaS5zcGxpY2UoZSwxKX19fSxlLnByb3RvdHlwZS5zZXRIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7dGhpcy5faGFuZGxlcnNbZV09W3RdfSxlLnByb3RvdHlwZS5jbGVhckhhbmRsZXI9ZnVuY3Rpb24oZSl7dGhpcy5faGFuZGxlcnNbZV0mJmRlbGV0ZSB0aGlzLl9oYW5kbGVyc1tlXX0sZS5wcm90b3R5cGUuc2V0SGFuZGxlckZhbGxiYWNrPWZ1bmN0aW9uKGUpe3RoaXMuX2hhbmRsZXJGYj1lfSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2FjdGl2ZS5sZW5ndGgmJnRoaXMudW5ob29rKCExKSx0aGlzLl9hY3RpdmU9byx0aGlzLl9pZGVudD0wfSxlLnByb3RvdHlwZS5ob29rPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5yZXNldCgpLHRoaXMuX2lkZW50PWUsdGhpcy5fYWN0aXZlPXRoaXMuX2hhbmRsZXJzW2VdfHxvLHRoaXMuX2FjdGl2ZS5sZW5ndGgpZm9yKHZhciBpPXRoaXMuX2FjdGl2ZS5sZW5ndGgtMTtpPj0wO2ktLSl0aGlzLl9hY3RpdmVbaV0uaG9vayh0KTtlbHNlIHRoaXMuX2hhbmRsZXJGYih0aGlzLl9pZGVudCxcIkhPT0tcIix0KX0sZS5wcm90b3R5cGUucHV0PWZ1bmN0aW9uKGUsdCxpKXtpZih0aGlzLl9hY3RpdmUubGVuZ3RoKWZvcih2YXIgbj10aGlzLl9hY3RpdmUubGVuZ3RoLTE7bj49MDtuLS0pdGhpcy5fYWN0aXZlW25dLnB1dChlLHQsaSk7ZWxzZSB0aGlzLl9oYW5kbGVyRmIodGhpcy5faWRlbnQsXCJQVVRcIixyLnV0ZjMyVG9TdHJpbmcoZSx0LGkpKX0sZS5wcm90b3R5cGUudW5ob29rPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX2FjdGl2ZS5sZW5ndGgpe2Zvcih2YXIgdD10aGlzLl9hY3RpdmUubGVuZ3RoLTE7dD49MCYmITE9PT10aGlzLl9hY3RpdmVbdF0udW5ob29rKGUpO3QtLSk7Zm9yKHQtLTt0Pj0wO3QtLSl0aGlzLl9hY3RpdmVbdF0udW5ob29rKCExKX1lbHNlIHRoaXMuX2hhbmRsZXJGYih0aGlzLl9pZGVudCxcIlVOSE9PS1wiLGUpO3RoaXMuX2FjdGl2ZT1vLHRoaXMuX2lkZW50PTB9LGV9KCk7dC5EY3NQYXJzZXI9YTt2YXIgYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5faGFuZGxlcj1lLHRoaXMuX2RhdGE9XCJcIix0aGlzLl9oaXRMaW1pdD0hMX1yZXR1cm4gZS5wcm90b3R5cGUuaG9vaz1mdW5jdGlvbihlKXt0aGlzLl9wYXJhbXM9ZS5jbG9uZSgpLHRoaXMuX2RhdGE9XCJcIix0aGlzLl9oaXRMaW1pdD0hMX0sZS5wcm90b3R5cGUucHV0PWZ1bmN0aW9uKGUsdCxpKXt0aGlzLl9oaXRMaW1pdHx8KHRoaXMuX2RhdGErPXIudXRmMzJUb1N0cmluZyhlLHQsaSksdGhpcy5fZGF0YS5sZW5ndGg+cy5QQVlMT0FEX0xJTUlUJiYodGhpcy5fZGF0YT1cIlwiLHRoaXMuX2hpdExpbWl0PSEwKSl9LGUucHJvdG90eXBlLnVuaG9vaz1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gdGhpcy5faGl0TGltaXQ/dD0hMTplJiYodD10aGlzLl9oYW5kbGVyKHRoaXMuX2RhdGEsdGhpcy5fcGFyYW1zP3RoaXMuX3BhcmFtczpuZXcgbi5QYXJhbXMpKSx0aGlzLl9wYXJhbXM9dm9pZCAwLHRoaXMuX2RhdGE9XCJcIix0aGlzLl9oaXRMaW1pdD0hMSx0fSxlfSgpO3QuRGNzSGFuZGxlcj1jfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9aSgyNCksbj1pKDQyKSxzPVtdO3QuYWNxdWlyZUNoYXJBdGxhcz1mdW5jdGlvbihlLHQsaSxvLGEpe2Zvcih2YXIgYz1yLmdlbmVyYXRlQ29uZmlnKG8sYSxlLGkpLGw9MDtsPHMubGVuZ3RoO2wrKyl7dmFyIGg9KHU9c1tsXSkub3duZWRCeS5pbmRleE9mKHQpO2lmKGg+PTApe2lmKHIuY29uZmlnRXF1YWxzKHUuY29uZmlnLGMpKXJldHVybiB1LmF0bGFzOzE9PT11Lm93bmVkQnkubGVuZ3RoPyh1LmF0bGFzLmRpc3Bvc2UoKSxzLnNwbGljZShsLDEpKTp1Lm93bmVkQnkuc3BsaWNlKGgsMSk7YnJlYWt9fWZvcihsPTA7bDxzLmxlbmd0aDtsKyspe3ZhciB1PXNbbF07aWYoci5jb25maWdFcXVhbHModS5jb25maWcsYykpcmV0dXJuIHUub3duZWRCeS5wdXNoKHQpLHUuYXRsYXN9dmFyIGY9e2F0bGFzOm5ldyBuLkR5bmFtaWNDaGFyQXRsYXMoZG9jdW1lbnQsYyksY29uZmlnOmMsb3duZWRCeTpbdF19O3JldHVybiBzLnB1c2goZiksZi5hdGxhc30sdC5yZW1vdmVUZXJtaW5hbEZyb21DYWNoZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PHMubGVuZ3RoO3QrKyl7dmFyIGk9c1t0XS5vd25lZEJ5LmluZGV4T2YoZSk7aWYoLTEhPT1pKXsxPT09c1t0XS5vd25lZEJ5Lmxlbmd0aD8oc1t0XS5hdGxhcy5kaXNwb3NlKCkscy5zcGxpY2UodCwxKSk6c1t0XS5vd25lZEJ5LnNwbGljZShpLDEpO2JyZWFrfX19fSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9aSgzKTt0LmdlbmVyYXRlQ29uZmlnPWZ1bmN0aW9uKGUsdCxpLHIpe3ZhciBuPXtmb3JlZ3JvdW5kOnIuZm9yZWdyb3VuZCxiYWNrZ3JvdW5kOnIuYmFja2dyb3VuZCxjdXJzb3I6dm9pZCAwLGN1cnNvckFjY2VudDp2b2lkIDAsc2VsZWN0aW9uOnZvaWQgMCxhbnNpOnIuYW5zaS5zbGljZSgwLDE2KX07cmV0dXJue2RldmljZVBpeGVsUmF0aW86d2luZG93LmRldmljZVBpeGVsUmF0aW8sc2NhbGVkQ2hhcldpZHRoOmUsc2NhbGVkQ2hhckhlaWdodDp0LGZvbnRGYW1pbHk6aS5mb250RmFtaWx5LGZvbnRTaXplOmkuZm9udFNpemUsZm9udFdlaWdodDppLmZvbnRXZWlnaHQsZm9udFdlaWdodEJvbGQ6aS5mb250V2VpZ2h0Qm9sZCxhbGxvd1RyYW5zcGFyZW5jeTppLmFsbG93VHJhbnNwYXJlbmN5LGNvbG9yczpufX0sdC5jb25maWdFcXVhbHM9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGk9MDtpPGUuY29sb3JzLmFuc2kubGVuZ3RoO2krKylpZihlLmNvbG9ycy5hbnNpW2ldLnJnYmEhPT10LmNvbG9ycy5hbnNpW2ldLnJnYmEpcmV0dXJuITE7cmV0dXJuIGUuZGV2aWNlUGl4ZWxSYXRpbz09PXQuZGV2aWNlUGl4ZWxSYXRpbyYmZS5mb250RmFtaWx5PT09dC5mb250RmFtaWx5JiZlLmZvbnRTaXplPT09dC5mb250U2l6ZSYmZS5mb250V2VpZ2h0PT09dC5mb250V2VpZ2h0JiZlLmZvbnRXZWlnaHRCb2xkPT09dC5mb250V2VpZ2h0Qm9sZCYmZS5hbGxvd1RyYW5zcGFyZW5jeT09PXQuYWxsb3dUcmFuc3BhcmVuY3kmJmUuc2NhbGVkQ2hhcldpZHRoPT09dC5zY2FsZWRDaGFyV2lkdGgmJmUuc2NhbGVkQ2hhckhlaWdodD09PXQuc2NhbGVkQ2hhckhlaWdodCYmZS5jb2xvcnMuZm9yZWdyb3VuZD09PXQuY29sb3JzLmZvcmVncm91bmQmJmUuY29sb3JzLmJhY2tncm91bmQ9PT10LmNvbG9ycy5iYWNrZ3JvdW5kfSx0LmlzMjU2Q29sb3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGU8ci5ERUZBVUxUX0NPTE9SfX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWMoXCIjZmZmZmZmXCIpLG49YyhcIiMwMDAwMDBcIikscz1jKFwiI2ZmZmZmZlwiKSxvPWMoXCIjMDAwMDAwXCIpLGE9e2NzczpcInJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKVwiLHJnYmE6NDI5NDk2NzE1OX07ZnVuY3Rpb24gYyhlKXtyZXR1cm57Y3NzOmUscmdiYTpwYXJzZUludChlLnNsaWNlKDEpLDE2KTw8OHwyNTV9fWZ1bmN0aW9uIGwoZSl7dmFyIHQ9ZS50b1N0cmluZygxNik7cmV0dXJuIHQubGVuZ3RoPDI/XCIwXCIrdDp0fXQuREVGQVVMVF9BTlNJX0NPTE9SUz1mdW5jdGlvbigpe2Zvcih2YXIgZT1bYyhcIiMyZTM0MzZcIiksYyhcIiNjYzAwMDBcIiksYyhcIiM0ZTlhMDZcIiksYyhcIiNjNGEwMDBcIiksYyhcIiMzNDY1YTRcIiksYyhcIiM3NTUwN2JcIiksYyhcIiMwNjk4OWFcIiksYyhcIiNkM2Q3Y2ZcIiksYyhcIiM1NTU3NTNcIiksYyhcIiNlZjI5MjlcIiksYyhcIiM4YWUyMzRcIiksYyhcIiNmY2U5NGZcIiksYyhcIiM3MjlmY2ZcIiksYyhcIiNhZDdmYThcIiksYyhcIiMzNGUyZTJcIiksYyhcIiNlZWVlZWNcIildLHQ9WzAsOTUsMTM1LDE3NSwyMTUsMjU1XSxpPTA7aTwyMTY7aSsrKXt2YXIgcj10W2kvMzYlNnwwXSxuPXRbaS82JTZ8MF0scz10W2klNl07ZS5wdXNoKHtjc3M6XCIjXCIrbChyKStsKG4pK2wocykscmdiYToocjw8MjR8bjw8MTZ8czw8OHwyNTUpPj4+MH0pfWZvcihpPTA7aTwyNDtpKyspe3ZhciBvPTgrMTAqaSxhPWwobyk7ZS5wdXNoKHtjc3M6XCIjXCIrYSthK2EscmdiYToobzw8MjR8bzw8MTZ8bzw8OHwyNTUpPj4+MH0pfXJldHVybiBlfSgpO3ZhciBoPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLGkpe3RoaXMuYWxsb3dUcmFuc3BhcmVuY3k9aTt2YXIgYz1lLmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIik7Yy53aWR0aD0xLGMuaGVpZ2h0PTE7dmFyIGw9Yy5nZXRDb250ZXh0KFwiMmRcIik7aWYoIWwpdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGdldCByZW5kZXJpbmcgY29udGV4dFwiKTt0aGlzLl9jdHg9bCx0aGlzLl9jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPVwiY29weVwiLHRoaXMuX2xpdG11c0NvbG9yPXRoaXMuX2N0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLDAsMSwxKSx0aGlzLmNvbG9ycz17Zm9yZWdyb3VuZDpyLGJhY2tncm91bmQ6bixjdXJzb3I6cyxjdXJzb3JBY2NlbnQ6byxzZWxlY3Rpb246YSxhbnNpOnQuREVGQVVMVF9BTlNJX0NPTE9SUy5zbGljZSgpfX1yZXR1cm4gZS5wcm90b3R5cGUuc2V0VGhlbWU9ZnVuY3Rpb24oZSl7dm9pZCAwPT09ZSYmKGU9e30pLHRoaXMuY29sb3JzLmZvcmVncm91bmQ9dGhpcy5fcGFyc2VDb2xvcihlLmZvcmVncm91bmQsciksdGhpcy5jb2xvcnMuYmFja2dyb3VuZD10aGlzLl9wYXJzZUNvbG9yKGUuYmFja2dyb3VuZCxuKSx0aGlzLmNvbG9ycy5jdXJzb3I9dGhpcy5fcGFyc2VDb2xvcihlLmN1cnNvcixzLCEwKSx0aGlzLmNvbG9ycy5jdXJzb3JBY2NlbnQ9dGhpcy5fcGFyc2VDb2xvcihlLmN1cnNvckFjY2VudCxvLCEwKSx0aGlzLmNvbG9ycy5zZWxlY3Rpb249dGhpcy5fcGFyc2VDb2xvcihlLnNlbGVjdGlvbixhLCEwKSx0aGlzLmNvbG9ycy5hbnNpWzBdPXRoaXMuX3BhcnNlQ29sb3IoZS5ibGFjayx0LkRFRkFVTFRfQU5TSV9DT0xPUlNbMF0pLHRoaXMuY29sb3JzLmFuc2lbMV09dGhpcy5fcGFyc2VDb2xvcihlLnJlZCx0LkRFRkFVTFRfQU5TSV9DT0xPUlNbMV0pLHRoaXMuY29sb3JzLmFuc2lbMl09dGhpcy5fcGFyc2VDb2xvcihlLmdyZWVuLHQuREVGQVVMVF9BTlNJX0NPTE9SU1syXSksdGhpcy5jb2xvcnMuYW5zaVszXT10aGlzLl9wYXJzZUNvbG9yKGUueWVsbG93LHQuREVGQVVMVF9BTlNJX0NPTE9SU1szXSksdGhpcy5jb2xvcnMuYW5zaVs0XT10aGlzLl9wYXJzZUNvbG9yKGUuYmx1ZSx0LkRFRkFVTFRfQU5TSV9DT0xPUlNbNF0pLHRoaXMuY29sb3JzLmFuc2lbNV09dGhpcy5fcGFyc2VDb2xvcihlLm1hZ2VudGEsdC5ERUZBVUxUX0FOU0lfQ09MT1JTWzVdKSx0aGlzLmNvbG9ycy5hbnNpWzZdPXRoaXMuX3BhcnNlQ29sb3IoZS5jeWFuLHQuREVGQVVMVF9BTlNJX0NPTE9SU1s2XSksdGhpcy5jb2xvcnMuYW5zaVs3XT10aGlzLl9wYXJzZUNvbG9yKGUud2hpdGUsdC5ERUZBVUxUX0FOU0lfQ09MT1JTWzddKSx0aGlzLmNvbG9ycy5hbnNpWzhdPXRoaXMuX3BhcnNlQ29sb3IoZS5icmlnaHRCbGFjayx0LkRFRkFVTFRfQU5TSV9DT0xPUlNbOF0pLHRoaXMuY29sb3JzLmFuc2lbOV09dGhpcy5fcGFyc2VDb2xvcihlLmJyaWdodFJlZCx0LkRFRkFVTFRfQU5TSV9DT0xPUlNbOV0pLHRoaXMuY29sb3JzLmFuc2lbMTBdPXRoaXMuX3BhcnNlQ29sb3IoZS5icmlnaHRHcmVlbix0LkRFRkFVTFRfQU5TSV9DT0xPUlNbMTBdKSx0aGlzLmNvbG9ycy5hbnNpWzExXT10aGlzLl9wYXJzZUNvbG9yKGUuYnJpZ2h0WWVsbG93LHQuREVGQVVMVF9BTlNJX0NPTE9SU1sxMV0pLHRoaXMuY29sb3JzLmFuc2lbMTJdPXRoaXMuX3BhcnNlQ29sb3IoZS5icmlnaHRCbHVlLHQuREVGQVVMVF9BTlNJX0NPTE9SU1sxMl0pLHRoaXMuY29sb3JzLmFuc2lbMTNdPXRoaXMuX3BhcnNlQ29sb3IoZS5icmlnaHRNYWdlbnRhLHQuREVGQVVMVF9BTlNJX0NPTE9SU1sxM10pLHRoaXMuY29sb3JzLmFuc2lbMTRdPXRoaXMuX3BhcnNlQ29sb3IoZS5icmlnaHRDeWFuLHQuREVGQVVMVF9BTlNJX0NPTE9SU1sxNF0pLHRoaXMuY29sb3JzLmFuc2lbMTVdPXRoaXMuX3BhcnNlQ29sb3IoZS5icmlnaHRXaGl0ZSx0LkRFRkFVTFRfQU5TSV9DT0xPUlNbMTVdKX0sZS5wcm90b3R5cGUuX3BhcnNlQ29sb3I9ZnVuY3Rpb24oZSx0LGkpe2lmKHZvaWQgMD09PWkmJihpPXRoaXMuYWxsb3dUcmFuc3BhcmVuY3kpLHZvaWQgMD09PWUpcmV0dXJuIHQ7aWYodGhpcy5fY3R4LmZpbGxTdHlsZT10aGlzLl9saXRtdXNDb2xvcix0aGlzLl9jdHguZmlsbFN0eWxlPWUsXCJzdHJpbmdcIiE9dHlwZW9mIHRoaXMuX2N0eC5maWxsU3R5bGUpcmV0dXJuIGNvbnNvbGUud2FybihcIkNvbG9yOiBcIitlK1wiIGlzIGludmFsaWQgdXNpbmcgZmFsbGJhY2sgXCIrdC5jc3MpLHQ7dGhpcy5fY3R4LmZpbGxSZWN0KDAsMCwxLDEpO3ZhciByPXRoaXMuX2N0eC5nZXRJbWFnZURhdGEoMCwwLDEsMSkuZGF0YTtyZXR1cm4gaXx8MjU1PT09clszXT97Y3NzOmUscmdiYTooclswXTw8MjR8clsxXTw8MTZ8clsyXTw8OHxyWzNdKT4+PjB9Oihjb25zb2xlLndhcm4oXCJDb2xvcjogXCIrZStcIiBpcyB1c2luZyB0cmFuc3BhcmVuY3ksIGJ1dCBhbGxvd1RyYW5zcGFyZW5jeSBpcyBmYWxzZS4gVXNpbmcgZmFsbGJhY2sgXCIrdC5jc3MrXCIuXCIpLHQpfSxlfSgpO3QuQ29sb3JNYW5hZ2VyPWh9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnRocm93SWZGYWxzeT1mdW5jdGlvbihlKXtpZighZSl0aHJvdyBuZXcgRXJyb3IoXCJ2YWx1ZSBtdXN0IG5vdCBiZSBmYWxzeVwiKTtyZXR1cm4gZX19LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcixuPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocj1mdW5jdGlvbihlLHQpe3JldHVybihyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihlW2ldPXRbaV0pfSkoZSx0KX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXIoZSx0KSxlLnByb3RvdHlwZT1udWxsPT09dD9PYmplY3QuY3JlYXRlKHQpOihpLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgaSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1pKDYpLG89aSgzKSxhPWkoNCksYz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsaSxyKXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4uY29udGVudD0wLG4uY29tYmluZWREYXRhPVwiXCIsbi5mZz10LmZnLG4uYmc9dC5iZyxuLmNvbWJpbmVkRGF0YT1pLG4uX3dpZHRoPXIsbn1yZXR1cm4gbih0LGUpLHQucHJvdG90eXBlLmlzQ29tYmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gMjA5NzE1Mn0sdC5wcm90b3R5cGUuZ2V0V2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd2lkdGh9LHQucHJvdG90eXBlLmdldENoYXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29tYmluZWREYXRhfSx0LnByb3RvdHlwZS5nZXRDb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIDIwOTcxNTF9LHQucHJvdG90eXBlLnNldEZyb21DaGFyRGF0YT1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoXCJub3QgaW1wbGVtZW50ZWRcIil9LHQucHJvdG90eXBlLmdldEFzQ2hhckRhdGE9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5mZyx0aGlzLmdldENoYXJzKCksdGhpcy5nZXRXaWR0aCgpLHRoaXMuZ2V0Q29kZSgpXX0sdH0ocy5BdHRyaWJ1dGVEYXRhKTt0LkpvaW5lZENlbGxEYXRhPWM7dmFyIGw9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuX2J1ZmZlclNlcnZpY2U9ZSx0aGlzLl9jaGFyYWN0ZXJKb2luZXJzPVtdLHRoaXMuX25leHRDaGFyYWN0ZXJKb2luZXJJZD0wLHRoaXMuX3dvcmtDZWxsPW5ldyBhLkNlbGxEYXRhfXJldHVybiBlLnByb3RvdHlwZS5yZWdpc3RlckNoYXJhY3RlckpvaW5lcj1mdW5jdGlvbihlKXt2YXIgdD17aWQ6dGhpcy5fbmV4dENoYXJhY3RlckpvaW5lcklkKyssaGFuZGxlcjplfTtyZXR1cm4gdGhpcy5fY2hhcmFjdGVySm9pbmVycy5wdXNoKHQpLHQuaWR9LGUucHJvdG90eXBlLmRlcmVnaXN0ZXJDaGFyYWN0ZXJKb2luZXI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDx0aGlzLl9jaGFyYWN0ZXJKb2luZXJzLmxlbmd0aDt0KyspaWYodGhpcy5fY2hhcmFjdGVySm9pbmVyc1t0XS5pZD09PWUpcmV0dXJuIHRoaXMuX2NoYXJhY3RlckpvaW5lcnMuc3BsaWNlKHQsMSksITA7cmV0dXJuITF9LGUucHJvdG90eXBlLmdldEpvaW5lZENoYXJhY3RlcnM9ZnVuY3Rpb24oZSl7aWYoMD09PXRoaXMuX2NoYXJhY3RlckpvaW5lcnMubGVuZ3RoKXJldHVybltdO3ZhciB0PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLmxpbmVzLmdldChlKTtpZighdHx8MD09PXQubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgaT1bXSxyPXQudHJhbnNsYXRlVG9TdHJpbmcoITApLG49MCxzPTAsYT0wLGM9dC5nZXRGZygwKSxsPXQuZ2V0QmcoMCksaD0wO2g8dC5nZXRUcmltbWVkTGVuZ3RoKCk7aCsrKWlmKHQubG9hZENlbGwoaCx0aGlzLl93b3JrQ2VsbCksMCE9PXRoaXMuX3dvcmtDZWxsLmdldFdpZHRoKCkpe2lmKHRoaXMuX3dvcmtDZWxsLmZnIT09Y3x8dGhpcy5fd29ya0NlbGwuYmchPT1sKXtpZihoLW4+MSlmb3IodmFyIHU9dGhpcy5fZ2V0Sm9pbmVkUmFuZ2VzKHIsYSxzLHQsbiksZj0wO2Y8dS5sZW5ndGg7ZisrKWkucHVzaCh1W2ZdKTtuPWgsYT1zLGM9dGhpcy5fd29ya0NlbGwuZmcsbD10aGlzLl93b3JrQ2VsbC5iZ31zKz10aGlzLl93b3JrQ2VsbC5nZXRDaGFycygpLmxlbmd0aHx8by5XSElURVNQQUNFX0NFTExfQ0hBUi5sZW5ndGh9aWYodGhpcy5fYnVmZmVyU2VydmljZS5jb2xzLW4+MSlmb3IodT10aGlzLl9nZXRKb2luZWRSYW5nZXMocixhLHMsdCxuKSxmPTA7Zjx1Lmxlbmd0aDtmKyspaS5wdXNoKHVbZl0pO3JldHVybiBpfSxlLnByb3RvdHlwZS5fZ2V0Sm9pbmVkUmFuZ2VzPWZ1bmN0aW9uKHQsaSxyLG4scyl7Zm9yKHZhciBvPXQuc3Vic3RyaW5nKGksciksYT10aGlzLl9jaGFyYWN0ZXJKb2luZXJzWzBdLmhhbmRsZXIobyksYz0xO2M8dGhpcy5fY2hhcmFjdGVySm9pbmVycy5sZW5ndGg7YysrKWZvcih2YXIgbD10aGlzLl9jaGFyYWN0ZXJKb2luZXJzW2NdLmhhbmRsZXIobyksaD0wO2g8bC5sZW5ndGg7aCsrKWUuX21lcmdlUmFuZ2VzKGEsbFtoXSk7cmV0dXJuIHRoaXMuX3N0cmluZ1Jhbmdlc1RvQ2VsbFJhbmdlcyhhLG4scyksYX0sZS5wcm90b3R5cGUuX3N0cmluZ1Jhbmdlc1RvQ2VsbFJhbmdlcz1mdW5jdGlvbihlLHQsaSl7dmFyIHI9MCxuPSExLHM9MCxhPWVbcl07aWYoYSl7Zm9yKHZhciBjPWk7Yzx0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHM7YysrKXt2YXIgbD10LmdldFdpZHRoKGMpLGg9dC5nZXRTdHJpbmcoYykubGVuZ3RofHxvLldISVRFU1BBQ0VfQ0VMTF9DSEFSLmxlbmd0aDtpZigwIT09bCl7aWYoIW4mJmFbMF08PXMmJihhWzBdPWMsbj0hMCksYVsxXTw9cyl7aWYoYVsxXT1jLCEoYT1lWysrcl0pKWJyZWFrO2FbMF08PXM/KGFbMF09YyxuPSEwKTpuPSExfXMrPWh9fWEmJihhWzFdPXRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyl9fSxlLl9tZXJnZVJhbmdlcz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgaT0hMSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07aWYoaSl7aWYodFsxXTw9blswXSlyZXR1cm4gZVtyLTFdWzFdPXRbMV0sZTtpZih0WzFdPD1uWzFdKXJldHVybiBlW3ItMV1bMV09TWF0aC5tYXgodFsxXSxuWzFdKSxlLnNwbGljZShyLDEpLGk9ITEsZTtlLnNwbGljZShyLDEpLHItLX1lbHNle2lmKHRbMV08PW5bMF0pcmV0dXJuIGUuc3BsaWNlKHIsMCx0KSxlO2lmKHRbMV08PW5bMV0pcmV0dXJuIG5bMF09TWF0aC5taW4odFswXSxuWzBdKSxlO3RbMF08blsxXSYmKG5bMF09TWF0aC5taW4odFswXSxuWzBdKSxpPSEwKX19cmV0dXJuIGk/ZVtlLmxlbmd0aC0xXVsxXT10WzFdOmUucHVzaCh0KSxlfSxlfSgpO3QuQ2hhcmFjdGVySm9pbmVyUmVnaXN0cnk9bH0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO2Z1bmN0aW9uIHIoZSx0KXt2YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybltlLmNsaWVudFgtaS5sZWZ0LGUuY2xpZW50WS1pLnRvcF19T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSksdC5nZXRDb29yZHNSZWxhdGl2ZVRvRWxlbWVudD1yLHQuZ2V0Q29vcmRzPWZ1bmN0aW9uKGUsdCxpLG4scyxvLGEsYyl7aWYocyl7dmFyIGw9cihlLHQpO2lmKGwpcmV0dXJuIGxbMF09TWF0aC5jZWlsKChsWzBdKyhjP28vMjowKSkvbyksbFsxXT1NYXRoLmNlaWwobFsxXS9hKSxsWzBdPU1hdGgubWluKE1hdGgubWF4KGxbMF0sMSksaSsoYz8xOjApKSxsWzFdPU1hdGgubWluKE1hdGgubWF4KGxbMV0sMSksbiksbH19LHQuZ2V0UmF3Qnl0ZUNvb3Jkcz1mdW5jdGlvbihlKXtpZihlKXJldHVybnt4OmVbMF0rMzIseTplWzFdKzMyfX19LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5fcmVuZGVyQ2FsbGJhY2s9ZX1yZXR1cm4gZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2FuaW1hdGlvbkZyYW1lJiYod2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2FuaW1hdGlvbkZyYW1lKSx0aGlzLl9hbmltYXRpb25GcmFtZT12b2lkIDApfSxlLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKGUsdCxpKXt2YXIgcj10aGlzO3RoaXMuX3Jvd0NvdW50PWksZT12b2lkIDAhPT1lP2U6MCx0PXZvaWQgMCE9PXQ/dDp0aGlzLl9yb3dDb3VudC0xLHRoaXMuX3Jvd1N0YXJ0PXZvaWQgMCE9PXRoaXMuX3Jvd1N0YXJ0P01hdGgubWluKHRoaXMuX3Jvd1N0YXJ0LGUpOmUsdGhpcy5fcm93RW5kPXZvaWQgMCE9PXRoaXMuX3Jvd0VuZD9NYXRoLm1heCh0aGlzLl9yb3dFbmQsdCk6dCx0aGlzLl9hbmltYXRpb25GcmFtZXx8KHRoaXMuX2FuaW1hdGlvbkZyYW1lPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXR1cm4gci5faW5uZXJSZWZyZXNoKCl9KSl9LGUucHJvdG90eXBlLl9pbm5lclJlZnJlc2g9ZnVuY3Rpb24oKXt2b2lkIDAhPT10aGlzLl9yb3dTdGFydCYmdm9pZCAwIT09dGhpcy5fcm93RW5kJiZ2b2lkIDAhPT10aGlzLl9yb3dDb3VudCYmKHRoaXMuX3Jvd1N0YXJ0PU1hdGgubWF4KHRoaXMuX3Jvd1N0YXJ0LDApLHRoaXMuX3Jvd0VuZD1NYXRoLm1pbih0aGlzLl9yb3dFbmQsdGhpcy5fcm93Q291bnQtMSksdGhpcy5fcmVuZGVyQ2FsbGJhY2sodGhpcy5fcm93U3RhcnQsdGhpcy5fcm93RW5kKSx0aGlzLl9yb3dTdGFydD12b2lkIDAsdGhpcy5fcm93RW5kPXZvaWQgMCx0aGlzLl9hbmltYXRpb25GcmFtZT12b2lkIDApfSxlfSgpO3QuUmVuZGVyRGVib3VuY2VyPXJ9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcixuPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocj1mdW5jdGlvbihlLHQpe3JldHVybihyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihlW2ldPXRbaV0pfSkoZSx0KX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXIoZSx0KSxlLnByb3RvdHlwZT1udWxsPT09dD9PYmplY3QuY3JlYXRlKHQpOihpLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgaSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KCl7dmFyIHQ9bnVsbCE9PWUmJmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiB0Ll9jdXJyZW50RGV2aWNlUGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyx0fXJldHVybiBuKHQsZSksdC5wcm90b3R5cGUuc2V0TGlzdGVuZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLl9saXN0ZW5lciYmdGhpcy5jbGVhckxpc3RlbmVyKCksdGhpcy5fbGlzdGVuZXI9ZSx0aGlzLl9vdXRlckxpc3RlbmVyPWZ1bmN0aW9uKCl7dC5fbGlzdGVuZXImJih0Ll9saXN0ZW5lcih3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyx0Ll9jdXJyZW50RGV2aWNlUGl4ZWxSYXRpbyksdC5fdXBkYXRlRHByKCkpfSx0aGlzLl91cGRhdGVEcHIoKX0sdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2UucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKSx0aGlzLmNsZWFyTGlzdGVuZXIoKX0sdC5wcm90b3R5cGUuX3VwZGF0ZURwcj1mdW5jdGlvbigpe3RoaXMuX3Jlc29sdXRpb25NZWRpYU1hdGNoTGlzdCYmdGhpcy5fb3V0ZXJMaXN0ZW5lciYmKHRoaXMuX3Jlc29sdXRpb25NZWRpYU1hdGNoTGlzdC5yZW1vdmVMaXN0ZW5lcih0aGlzLl9vdXRlckxpc3RlbmVyKSx0aGlzLl9jdXJyZW50RGV2aWNlUGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyx0aGlzLl9yZXNvbHV0aW9uTWVkaWFNYXRjaExpc3Q9d2luZG93Lm1hdGNoTWVkaWEoXCJzY3JlZW4gYW5kIChyZXNvbHV0aW9uOiBcIit3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbytcImRwcHgpXCIpLHRoaXMuX3Jlc29sdXRpb25NZWRpYU1hdGNoTGlzdC5hZGRMaXN0ZW5lcih0aGlzLl9vdXRlckxpc3RlbmVyKSl9LHQucHJvdG90eXBlLmNsZWFyTGlzdGVuZXI9ZnVuY3Rpb24oKXt0aGlzLl9yZXNvbHV0aW9uTWVkaWFNYXRjaExpc3QmJnRoaXMuX2xpc3RlbmVyJiZ0aGlzLl9vdXRlckxpc3RlbmVyJiYodGhpcy5fcmVzb2x1dGlvbk1lZGlhTWF0Y2hMaXN0LnJlbW92ZUxpc3RlbmVyKHRoaXMuX291dGVyTGlzdGVuZXIpLHRoaXMuX3Jlc29sdXRpb25NZWRpYU1hdGNoTGlzdD12b2lkIDAsdGhpcy5fbGlzdGVuZXI9dm9pZCAwLHRoaXMuX291dGVyTGlzdGVuZXI9dm9pZCAwKX0sdH0oaSgyKS5EaXNwb3NhYmxlKTt0LlNjcmVlbkRwck1vbml0b3I9c30sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pLHQuY2xvbmU9ZnVuY3Rpb24gZSh0LGkpe2lmKHZvaWQgMD09PWkmJihpPTUpLFwib2JqZWN0XCIhPXR5cGVvZiB0KXJldHVybiB0O3ZhciByPUFycmF5LmlzQXJyYXkodCk/W106e307Zm9yKHZhciBuIGluIHQpcltuXT1pPD0xP3Rbbl06dFtuXT9lKHRbbl0saS0xKTp0W25dO3JldHVybiByfX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWkoMzMpLG49aSgxNikscz1pKDc0KSxvPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt0aGlzLl9jb3JlPW5ldyByLlRlcm1pbmFsKGUpLHRoaXMuX2FkZG9uTWFuYWdlcj1uZXcgcy5BZGRvbk1hbmFnZXJ9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uQ3Vyc29yTW92ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29yZS5vbkN1cnNvck1vdmV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwib25MaW5lRmVlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29yZS5vbkxpbmVGZWVkfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uU2VsZWN0aW9uQ2hhbmdlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3JlLm9uU2VsZWN0aW9uQ2hhbmdlfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uRGF0YVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29yZS5vbkRhdGF9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwib25UaXRsZUNoYW5nZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29yZS5vblRpdGxlQ2hhbmdlfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uU2Nyb2xsXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3JlLm9uU2Nyb2xsfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uS2V5XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3JlLm9uS2V5fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uUmVuZGVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3JlLm9uUmVuZGVyfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uUmVzaXplXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3JlLm9uUmVzaXplfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcImVsZW1lbnRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvcmUuZWxlbWVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJwYXJzZXJcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcnNlcnx8KHRoaXMuX3BhcnNlcj1uZXcgaCh0aGlzLl9jb3JlKSksdGhpcy5fcGFyc2VyfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcInRleHRhcmVhXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3JlLnRleHRhcmVhfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcInJvd3NcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvcmUucm93c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJjb2xzXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb3JlLmNvbHN9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiYnVmZmVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBuZXcgYSh0aGlzLl9jb3JlLmJ1ZmZlcil9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwibWFya2Vyc1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29yZS5tYXJrZXJzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmJsdXI9ZnVuY3Rpb24oKXt0aGlzLl9jb3JlLmJsdXIoKX0sZS5wcm90b3R5cGUuZm9jdXM9ZnVuY3Rpb24oKXt0aGlzLl9jb3JlLmZvY3VzKCl9LGUucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlLHQpe3RoaXMuX3ZlcmlmeUludGVnZXJzKGUsdCksdGhpcy5fY29yZS5yZXNpemUoZSx0KX0sZS5wcm90b3R5cGUud3JpdGVsbj1mdW5jdGlvbihlKXt0aGlzLl9jb3JlLndyaXRlbG4oZSl9LGUucHJvdG90eXBlLm9wZW49ZnVuY3Rpb24oZSl7dGhpcy5fY29yZS5vcGVuKGUpfSxlLnByb3RvdHlwZS5hdHRhY2hDdXN0b21LZXlFdmVudEhhbmRsZXI9ZnVuY3Rpb24oZSl7dGhpcy5fY29yZS5hdHRhY2hDdXN0b21LZXlFdmVudEhhbmRsZXIoZSl9LGUucHJvdG90eXBlLnJlZ2lzdGVyTGlua01hdGNoZXI9ZnVuY3Rpb24oZSx0LGkpe3JldHVybiB0aGlzLl9jb3JlLnJlZ2lzdGVyTGlua01hdGNoZXIoZSx0LGkpfSxlLnByb3RvdHlwZS5kZXJlZ2lzdGVyTGlua01hdGNoZXI9ZnVuY3Rpb24oZSl7dGhpcy5fY29yZS5kZXJlZ2lzdGVyTGlua01hdGNoZXIoZSl9LGUucHJvdG90eXBlLnJlZ2lzdGVyQ2hhcmFjdGVySm9pbmVyPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9jb3JlLnJlZ2lzdGVyQ2hhcmFjdGVySm9pbmVyKGUpfSxlLnByb3RvdHlwZS5kZXJlZ2lzdGVyQ2hhcmFjdGVySm9pbmVyPWZ1bmN0aW9uKGUpe3RoaXMuX2NvcmUuZGVyZWdpc3RlckNoYXJhY3RlckpvaW5lcihlKX0sZS5wcm90b3R5cGUuYWRkTWFya2VyPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl92ZXJpZnlJbnRlZ2VycyhlKSx0aGlzLl9jb3JlLmFkZE1hcmtlcihlKX0sZS5wcm90b3R5cGUuaGFzU2VsZWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvcmUuaGFzU2VsZWN0aW9uKCl9LGUucHJvdG90eXBlLnNlbGVjdD1mdW5jdGlvbihlLHQsaSl7dGhpcy5fdmVyaWZ5SW50ZWdlcnMoZSx0LGkpLHRoaXMuX2NvcmUuc2VsZWN0KGUsdCxpKX0sZS5wcm90b3R5cGUuZ2V0U2VsZWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvcmUuZ2V0U2VsZWN0aW9uKCl9LGUucHJvdG90eXBlLmdldFNlbGVjdGlvblBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvcmUuZ2V0U2VsZWN0aW9uUG9zaXRpb24oKX0sZS5wcm90b3R5cGUuY2xlYXJTZWxlY3Rpb249ZnVuY3Rpb24oKXt0aGlzLl9jb3JlLmNsZWFyU2VsZWN0aW9uKCl9LGUucHJvdG90eXBlLnNlbGVjdEFsbD1mdW5jdGlvbigpe3RoaXMuX2NvcmUuc2VsZWN0QWxsKCl9LGUucHJvdG90eXBlLnNlbGVjdExpbmVzPWZ1bmN0aW9uKGUsdCl7dGhpcy5fdmVyaWZ5SW50ZWdlcnMoZSx0KSx0aGlzLl9jb3JlLnNlbGVjdExpbmVzKGUsdCl9LGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9hZGRvbk1hbmFnZXIuZGlzcG9zZSgpLHRoaXMuX2NvcmUuZGlzcG9zZSgpfSxlLnByb3RvdHlwZS5zY3JvbGxMaW5lcz1mdW5jdGlvbihlKXt0aGlzLl92ZXJpZnlJbnRlZ2VycyhlKSx0aGlzLl9jb3JlLnNjcm9sbExpbmVzKGUpfSxlLnByb3RvdHlwZS5zY3JvbGxQYWdlcz1mdW5jdGlvbihlKXt0aGlzLl92ZXJpZnlJbnRlZ2VycyhlKSx0aGlzLl9jb3JlLnNjcm9sbFBhZ2VzKGUpfSxlLnByb3RvdHlwZS5zY3JvbGxUb1RvcD1mdW5jdGlvbigpe3RoaXMuX2NvcmUuc2Nyb2xsVG9Ub3AoKX0sZS5wcm90b3R5cGUuc2Nyb2xsVG9Cb3R0b209ZnVuY3Rpb24oKXt0aGlzLl9jb3JlLnNjcm9sbFRvQm90dG9tKCl9LGUucHJvdG90eXBlLnNjcm9sbFRvTGluZT1mdW5jdGlvbihlKXt0aGlzLl92ZXJpZnlJbnRlZ2VycyhlKSx0aGlzLl9jb3JlLnNjcm9sbFRvTGluZShlKX0sZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9jb3JlLmNsZWFyKCl9LGUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2NvcmUud3JpdGUoZSl9LGUucHJvdG90eXBlLndyaXRlVXRmOD1mdW5jdGlvbihlKXt0aGlzLl9jb3JlLndyaXRlVXRmOChlKX0sZS5wcm90b3R5cGUucGFzdGU9ZnVuY3Rpb24oZSl7dGhpcy5fY29yZS5wYXN0ZShlKX0sZS5wcm90b3R5cGUuZ2V0T3B0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9jb3JlLm9wdGlvbnNTZXJ2aWNlLmdldE9wdGlvbihlKX0sZS5wcm90b3R5cGUuc2V0T3B0aW9uPWZ1bmN0aW9uKGUsdCl7dGhpcy5fY29yZS5vcHRpb25zU2VydmljZS5zZXRPcHRpb24oZSx0KX0sZS5wcm90b3R5cGUucmVmcmVzaD1mdW5jdGlvbihlLHQpe3RoaXMuX3ZlcmlmeUludGVnZXJzKGUsdCksdGhpcy5fY29yZS5yZWZyZXNoKGUsdCl9LGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5fY29yZS5yZXNldCgpfSxlLnByb3RvdHlwZS5sb2FkQWRkb249ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2FkZG9uTWFuYWdlci5sb2FkQWRkb24odGhpcyxlKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJzdHJpbmdzXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBufSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLl92ZXJpZnlJbnRlZ2Vycz1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtlLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZSUxIT0wKXRocm93IG5ldyBFcnJvcihcIlRoaXMgQVBJIGRvZXMgbm90IGFjY2VwdCBmbG9hdGluZyBwb2ludCBudW1iZXJzXCIpfSl9LGV9KCk7dC5UZXJtaW5hbD1vO3ZhciBhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlKXt0aGlzLl9idWZmZXI9ZX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiY3Vyc29yWVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyLnl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiY3Vyc29yWFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyLnh9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwidmlld3BvcnRZXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXIueWRpc3B9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiYmFzZVlcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2J1ZmZlci55YmFzZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJsZW5ndGhcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2J1ZmZlci5saW5lcy5sZW5ndGh9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuZ2V0TGluZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9idWZmZXIubGluZXMuZ2V0KGUpO2lmKHQpcmV0dXJuIG5ldyBjKHQpfSxlfSgpLGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuX2xpbmU9ZX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiaXNXcmFwcGVkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9saW5lLmlzV3JhcHBlZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5nZXRDZWxsPWZ1bmN0aW9uKGUpe2lmKCEoZTwwfHxlPj10aGlzLl9saW5lLmxlbmd0aCkpcmV0dXJuIG5ldyBsKHRoaXMuX2xpbmUsZSl9LGUucHJvdG90eXBlLnRyYW5zbGF0ZVRvU3RyaW5nPWZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gdGhpcy5fbGluZS50cmFuc2xhdGVUb1N0cmluZyhlLHQsaSl9LGV9KCksbD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXt0aGlzLl9saW5lPWUsdGhpcy5feD10fXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJjaGFyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9saW5lLmdldFN0cmluZyh0aGlzLl94KX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJ3aWR0aFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGluZS5nZXRXaWR0aCh0aGlzLl94KX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlfSgpLGg9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuX2NvcmU9ZX1yZXR1cm4gZS5wcm90b3R5cGUuYWRkQ3NpSGFuZGxlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jb3JlLmFkZENzaUhhbmRsZXIoZSxmdW5jdGlvbihlKXtyZXR1cm4gdChlLnRvQXJyYXkoKSl9KX0sZS5wcm90b3R5cGUuYWRkRGNzSGFuZGxlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jb3JlLmFkZERjc0hhbmRsZXIoZSxmdW5jdGlvbihlLGkpe3JldHVybiB0KGUsaS50b0FycmF5KCkpfSl9LGUucHJvdG90eXBlLmFkZEVzY0hhbmRsZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fY29yZS5hZGRFc2NIYW5kbGVyKGUsdCl9LGUucHJvdG90eXBlLmFkZE9zY0hhbmRsZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fY29yZS5hZGRPc2NIYW5kbGVyKGUsdCl9LGV9KCl9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcixuPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocj1mdW5jdGlvbihlLHQpe3JldHVybihyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihlW2ldPXRbaV0pfSkoZSx0KX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXIoZSx0KSxlLnByb3RvdHlwZT1udWxsPT09dD9PYmplY3QuY3JlYXRlKHQpOihpLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgaSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1pKDM0KSxvPWkoMzUpLGE9aSgzNiksYz1pKDExKSxsPWkoMzcpLGg9aSgzOSksdT1pKDQ4KSxmPWkoNDkpLF89aSgxMCksZD1pKDcpLHA9aSgxNiksdj1pKDUyKSxnPWkoNTMpLHk9aSg1NCksbT1pKDU1KSxiPWkoNTcpLEM9aSgxKSxTPWkoMTUpLHc9aSg1OCksRT1pKDI1KSxMPWkoNTkpLEE9aSgwKSx4PWkoNjApLGs9aSg1KSxEPWkoNjEpLFQ9aSg2MiksUj1pKDIpLE09aSg2OCksTz1pKDY5KSxQPWkoNzApLEg9aSg3MSksST1pKDcyKSxCPWkoNzMpLEY9XCJ1bmRlZmluZWRcIiE9dHlwZW9mIHdpbmRvdz93aW5kb3cuZG9jdW1lbnQ6bnVsbCxqPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCl7dm9pZCAwPT09dCYmKHQ9e30pO3ZhciBpPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gaS5icm93c2VyPV8saS5tb3VzZUV2ZW50cz0wLGkuX2tleURvd25IYW5kbGVkPSExLGkuX2JsYW5rTGluZT1udWxsLGkuX29uQ3Vyc29yTW92ZT1uZXcgQy5FdmVudEVtaXR0ZXIsaS5fb25EYXRhPW5ldyBDLkV2ZW50RW1pdHRlcixpLl9vbktleT1uZXcgQy5FdmVudEVtaXR0ZXIsaS5fb25MaW5lRmVlZD1uZXcgQy5FdmVudEVtaXR0ZXIsaS5fb25SZW5kZXI9bmV3IEMuRXZlbnRFbWl0dGVyLGkuX29uUmVzaXplPW5ldyBDLkV2ZW50RW1pdHRlcixpLl9vblNjcm9sbD1uZXcgQy5FdmVudEVtaXR0ZXIsaS5fb25TZWxlY3Rpb25DaGFuZ2U9bmV3IEMuRXZlbnRFbWl0dGVyLGkuX29uVGl0bGVDaGFuZ2U9bmV3IEMuRXZlbnRFbWl0dGVyLGkuX29uRm9jdXM9bmV3IEMuRXZlbnRFbWl0dGVyLGkuX29uQmx1cj1uZXcgQy5FdmVudEVtaXR0ZXIsaS5vbkExMXlDaGFyRW1pdHRlcj1uZXcgQy5FdmVudEVtaXR0ZXIsaS5vbkExMXlUYWJFbWl0dGVyPW5ldyBDLkV2ZW50RW1pdHRlcixpLl9pbnN0YW50aWF0aW9uU2VydmljZT1uZXcgSS5JbnN0YW50aWF0aW9uU2VydmljZSxpLm9wdGlvbnNTZXJ2aWNlPW5ldyB4Lk9wdGlvbnNTZXJ2aWNlKHQpLGkuX2luc3RhbnRpYXRpb25TZXJ2aWNlLnNldFNlcnZpY2UoQS5JT3B0aW9uc1NlcnZpY2UsaS5vcHRpb25zU2VydmljZSksaS5fYnVmZmVyU2VydmljZT1pLl9pbnN0YW50aWF0aW9uU2VydmljZS5jcmVhdGVJbnN0YW5jZShULkJ1ZmZlclNlcnZpY2UpLGkuX2luc3RhbnRpYXRpb25TZXJ2aWNlLnNldFNlcnZpY2UoQS5JQnVmZmVyU2VydmljZSxpLl9idWZmZXJTZXJ2aWNlKSxpLl9sb2dTZXJ2aWNlPWkuX2luc3RhbnRpYXRpb25TZXJ2aWNlLmNyZWF0ZUluc3RhbmNlKFAuTG9nU2VydmljZSksaS5faW5zdGFudGlhdGlvblNlcnZpY2Uuc2V0U2VydmljZShBLklMb2dTZXJ2aWNlLGkuX2xvZ1NlcnZpY2UpLGkuX2NvcmVTZXJ2aWNlPWkuX2luc3RhbnRpYXRpb25TZXJ2aWNlLmNyZWF0ZUluc3RhbmNlKE8uQ29yZVNlcnZpY2UsZnVuY3Rpb24oKXtyZXR1cm4gaS5zY3JvbGxUb0JvdHRvbSgpfSksaS5faW5zdGFudGlhdGlvblNlcnZpY2Uuc2V0U2VydmljZShBLklDb3JlU2VydmljZSxpLl9jb3JlU2VydmljZSksaS5fY29yZVNlcnZpY2Uub25EYXRhKGZ1bmN0aW9uKGUpe3JldHVybiBpLl9vbkRhdGEuZmlyZShlKX0pLGkuX2NvcmVNb3VzZVNlcnZpY2U9aS5faW5zdGFudGlhdGlvblNlcnZpY2UuY3JlYXRlSW5zdGFuY2UoQi5Db3JlTW91c2VTZXJ2aWNlKSxpLl9pbnN0YW50aWF0aW9uU2VydmljZS5zZXRTZXJ2aWNlKEEuSUNvcmVNb3VzZVNlcnZpY2UsaS5fY29yZU1vdXNlU2VydmljZSksaS5fZGlydHlSb3dTZXJ2aWNlPWkuX2luc3RhbnRpYXRpb25TZXJ2aWNlLmNyZWF0ZUluc3RhbmNlKEguRGlydHlSb3dTZXJ2aWNlKSxpLl9pbnN0YW50aWF0aW9uU2VydmljZS5zZXRTZXJ2aWNlKEEuSURpcnR5Um93U2VydmljZSxpLl9kaXJ0eVJvd1NlcnZpY2UpLGkuX3NldHVwT3B0aW9uc0xpc3RlbmVycygpLGkuX3NldHVwKCksaX1yZXR1cm4gbih0LGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIm9wdGlvbnNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9uc1NlcnZpY2Uub3B0aW9uc30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJjb2xzXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHN9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLFwicm93c1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVmZmVyU2VydmljZS5yb3dzfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIm9uQ3Vyc29yTW92ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25DdXJzb3JNb3ZlLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIm9uRGF0YVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25EYXRhLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIm9uS2V5XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbktleS5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJvbkxpbmVGZWVkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkxpbmVGZWVkLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIm9uUmVuZGVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblJlbmRlci5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJvblJlc2l6ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25SZXNpemUuZXZlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLFwib25TY3JvbGxcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uU2Nyb2xsLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIm9uU2VsZWN0aW9uQ2hhbmdlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblNlbGVjdGlvbkNoYW5nZS5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJvblRpdGxlQ2hhbmdlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblRpdGxlQ2hhbmdlLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIm9uRm9jdXNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uRm9jdXMuZXZlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLFwib25CbHVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkJsdXIuZXZlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLFwib25BMTF5Q2hhclwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vbkExMXlDaGFyRW1pdHRlci5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJvbkExMXlUYWJcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub25BMTF5VGFiRW1pdHRlci5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5faXNEaXNwb3NlZHx8KGUucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKSx0aGlzLl93aW5kb3dzTW9kZSYmKHRoaXMuX3dpbmRvd3NNb2RlLmRpc3Bvc2UoKSx0aGlzLl93aW5kb3dzTW9kZT12b2lkIDApLHRoaXMuX3JlbmRlclNlcnZpY2UmJnRoaXMuX3JlbmRlclNlcnZpY2UuZGlzcG9zZSgpLHRoaXMuX2N1c3RvbUtleUV2ZW50SGFuZGxlcj1udWxsLHRoaXMud3JpdGU9ZnVuY3Rpb24oKXt9LHRoaXMuZWxlbWVudCYmdGhpcy5lbGVtZW50LnBhcmVudE5vZGUmJnRoaXMuZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWxlbWVudCkpfSx0LnByb3RvdHlwZS5fc2V0dXA9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3BhcmVudD1GP0YuYm9keTpudWxsLHRoaXMuY3Vyc29yU3RhdGU9MCx0aGlzLmN1cnNvckhpZGRlbj0hMSx0aGlzLl9jdXN0b21LZXlFdmVudEhhbmRsZXI9bnVsbCx0aGlzLmFwcGxpY2F0aW9uS2V5cGFkPSExLHRoaXMub3JpZ2luTW9kZT0hMSx0aGlzLmluc2VydE1vZGU9ITEsdGhpcy53cmFwYXJvdW5kTW9kZT0hMCx0aGlzLmJyYWNrZXRlZFBhc3RlTW9kZT0hMSx0aGlzLmNoYXJzZXQ9bnVsbCx0aGlzLmdjaGFyc2V0PW51bGwsdGhpcy5nbGV2ZWw9MCx0aGlzLmNoYXJzZXRzPVtudWxsXSx0aGlzLmN1ckF0dHJEYXRhPVMuREVGQVVMVF9BVFRSX0RBVEEuY2xvbmUoKSx0aGlzLl9lcmFzZUF0dHJEYXRhPVMuREVGQVVMVF9BVFRSX0RBVEEuY2xvbmUoKSx0aGlzLnBhcmFtcz1bXSx0aGlzLmN1cnJlbnRQYXJhbT0wLHRoaXMud3JpdGVCdWZmZXI9W10sdGhpcy53cml0ZUJ1ZmZlclV0Zjg9W10sdGhpcy5fd3JpdGVJblByb2dyZXNzPSExLHRoaXMuX3hvZmZTZW50VG9DYXRjaFVwPSExLHRoaXMuX3VzZXJTY3JvbGxpbmc9ITEsdGhpcy5faW5wdXRIYW5kbGVyPW5ldyBsLklucHV0SGFuZGxlcih0aGlzLHRoaXMuX2J1ZmZlclNlcnZpY2UsdGhpcy5fY29yZVNlcnZpY2UsdGhpcy5fZGlydHlSb3dTZXJ2aWNlLHRoaXMuX2xvZ1NlcnZpY2UsdGhpcy5vcHRpb25zU2VydmljZSx0aGlzLl9jb3JlTW91c2VTZXJ2aWNlKSx0aGlzLl9pbnB1dEhhbmRsZXIub25DdXJzb3JNb3ZlKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX29uQ3Vyc29yTW92ZS5maXJlKCl9KSx0aGlzLl9pbnB1dEhhbmRsZXIub25MaW5lRmVlZChmdW5jdGlvbigpe3JldHVybiBlLl9vbkxpbmVGZWVkLmZpcmUoKX0pLHRoaXMucmVnaXN0ZXIodGhpcy5faW5wdXRIYW5kbGVyKSx0aGlzLmxpbmtpZmllcj10aGlzLmxpbmtpZmllcnx8bmV3IHUuTGlua2lmaWVyKHRoaXMuX2J1ZmZlclNlcnZpY2UsdGhpcy5fbG9nU2VydmljZSksdGhpcy5vcHRpb25zLndpbmRvd3NNb2RlJiYodGhpcy5fd2luZG93c01vZGU9dy5hcHBseVdpbmRvd3NNb2RlKHRoaXMpKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLFwiYnVmZmVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1ZmZlcnMuYWN0aXZlfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcImJ1ZmZlcnNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyc30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5lcmFzZUF0dHJEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VyYXNlQXR0ckRhdGEuYmcmPS02NzEwODg2NCx0aGlzLl9lcmFzZUF0dHJEYXRhLmJnfD02NzEwODg2MyZ0aGlzLmN1ckF0dHJEYXRhLmJnLHRoaXMuX2VyYXNlQXR0ckRhdGF9LHQucHJvdG90eXBlLmZvY3VzPWZ1bmN0aW9uKCl7dGhpcy50ZXh0YXJlYSYmdGhpcy50ZXh0YXJlYS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJpc0ZvY3VzZWRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEYuYWN0aXZlRWxlbWVudD09PXRoaXMudGV4dGFyZWEmJkYuaGFzRm9jdXMoKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5fc2V0dXBPcHRpb25zTGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLm9wdGlvbnNTZXJ2aWNlLm9uT3B0aW9uQ2hhbmdlKGZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlXCJmb250RmFtaWx5XCI6Y2FzZVwiZm9udFNpemVcIjplLl9yZW5kZXJTZXJ2aWNlJiZlLl9yZW5kZXJTZXJ2aWNlLmNsZWFyKCksZS5fY2hhclNpemVTZXJ2aWNlJiZlLl9jaGFyU2l6ZVNlcnZpY2UubWVhc3VyZSgpO2JyZWFrO2Nhc2VcImRyYXdCb2xkVGV4dEluQnJpZ2h0Q29sb3JzXCI6Y2FzZVwibGV0dGVyU3BhY2luZ1wiOmNhc2VcImxpbmVIZWlnaHRcIjpjYXNlXCJmb250V2VpZ2h0XCI6Y2FzZVwiZm9udFdlaWdodEJvbGRcIjplLl9yZW5kZXJTZXJ2aWNlJiYoZS5fcmVuZGVyU2VydmljZS5jbGVhcigpLGUuX3JlbmRlclNlcnZpY2Uub25SZXNpemUoZS5jb2xzLGUucm93cyksZS5yZWZyZXNoKDAsZS5yb3dzLTEpKTticmVhaztjYXNlXCJyZW5kZXJlclR5cGVcIjplLl9yZW5kZXJTZXJ2aWNlJiYoZS5fcmVuZGVyU2VydmljZS5zZXRSZW5kZXJlcihlLl9jcmVhdGVSZW5kZXJlcigpKSxlLl9yZW5kZXJTZXJ2aWNlLm9uUmVzaXplKGUuY29scyxlLnJvd3MpKTticmVhaztjYXNlXCJzY3JvbGxiYWNrXCI6ZS5idWZmZXJzLnJlc2l6ZShlLmNvbHMsZS5yb3dzKSxlLnZpZXdwb3J0JiZlLnZpZXdwb3J0LnN5bmNTY3JvbGxBcmVhKCk7YnJlYWs7Y2FzZVwic2NyZWVuUmVhZGVyTW9kZVwiOmUub3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5zY3JlZW5SZWFkZXJNb2RlPyFlLl9hY2Nlc3NpYmlsaXR5TWFuYWdlciYmZS5fcmVuZGVyU2VydmljZSYmKGUuX2FjY2Vzc2liaWxpdHlNYW5hZ2VyPW5ldyB5LkFjY2Vzc2liaWxpdHlNYW5hZ2VyKGUsZS5fcmVuZGVyU2VydmljZSkpOmUuX2FjY2Vzc2liaWxpdHlNYW5hZ2VyJiYoZS5fYWNjZXNzaWJpbGl0eU1hbmFnZXIuZGlzcG9zZSgpLGUuX2FjY2Vzc2liaWxpdHlNYW5hZ2VyPW51bGwpO2JyZWFrO2Nhc2VcInRhYlN0b3BXaWR0aFwiOmUuYnVmZmVycy5zZXR1cFRhYlN0b3BzKCk7YnJlYWs7Y2FzZVwidGhlbWVcIjplLl9zZXRUaGVtZShlLm9wdGlvbnNTZXJ2aWNlLm9wdGlvbnMudGhlbWUpO2JyZWFrO2Nhc2VcInNjcm9sbGJhY2tcIjp2YXIgaT1lLnJvd3MrZS5vcHRpb25zU2VydmljZS5vcHRpb25zLnNjcm9sbGJhY2s7aWYoZS5idWZmZXIubGluZXMubGVuZ3RoPmkpe3ZhciByPWUuYnVmZmVyLmxpbmVzLmxlbmd0aC1pLG49ZS5idWZmZXIueWRpc3AtcjwwO2UuYnVmZmVyLmxpbmVzLnRyaW1TdGFydChyKSxlLmJ1ZmZlci55YmFzZT1NYXRoLm1heChlLmJ1ZmZlci55YmFzZS1yLDApLGUuYnVmZmVyLnlkaXNwPU1hdGgubWF4KGUuYnVmZmVyLnlkaXNwLXIsMCksbiYmZS5yZWZyZXNoKDAsZS5yb3dzLTEpfWNhc2VcIndpbmRvd3NNb2RlXCI6ZS5vcHRpb25zU2VydmljZS5vcHRpb25zLndpbmRvd3NNb2RlP2UuX3dpbmRvd3NNb2RlfHwoZS5fd2luZG93c01vZGU9dy5hcHBseVdpbmRvd3NNb2RlKGUpKTplLl93aW5kb3dzTW9kZSYmKGUuX3dpbmRvd3NNb2RlLmRpc3Bvc2UoKSxlLl93aW5kb3dzTW9kZT12b2lkIDApfX0pfSx0LnByb3RvdHlwZS5fb25UZXh0QXJlYUZvY3VzPWZ1bmN0aW9uKGUpe3RoaXMuc2VuZEZvY3VzJiZ0aGlzLl9jb3JlU2VydmljZS50cmlnZ2VyRGF0YUV2ZW50KGMuQzAuRVNDK1wiW0lcIiksdGhpcy51cGRhdGVDdXJzb3JTdHlsZShlKSx0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImZvY3VzXCIpLHRoaXMuc2hvd0N1cnNvcigpLHRoaXMuX29uRm9jdXMuZmlyZSgpfSx0LnByb3RvdHlwZS5ibHVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dGFyZWEuYmx1cigpfSx0LnByb3RvdHlwZS5fb25UZXh0QXJlYUJsdXI9ZnVuY3Rpb24oKXt0aGlzLnRleHRhcmVhLnZhbHVlPVwiXCIsdGhpcy5yZWZyZXNoKHRoaXMuYnVmZmVyLnksdGhpcy5idWZmZXIueSksdGhpcy5zZW5kRm9jdXMmJnRoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQoYy5DMC5FU0MrXCJbT1wiKSx0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImZvY3VzXCIpLHRoaXMuX29uQmx1ci5maXJlKCl9LHQucHJvdG90eXBlLl9pbml0R2xvYmFsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9iaW5kS2V5cygpLHRoaXMucmVnaXN0ZXIoZC5hZGREaXNwb3NhYmxlRG9tTGlzdGVuZXIodGhpcy5lbGVtZW50LFwiY29weVwiLGZ1bmN0aW9uKHQpe2UuaGFzU2VsZWN0aW9uKCkmJmEuY29weUhhbmRsZXIodCxlLl9zZWxlY3Rpb25TZXJ2aWNlKX0pKTt2YXIgdD1mdW5jdGlvbih0KXtyZXR1cm4gYS5oYW5kbGVQYXN0ZUV2ZW50KHQsZS50ZXh0YXJlYSxlLmJyYWNrZXRlZFBhc3RlTW9kZSxlLl9jb3JlU2VydmljZSl9O3RoaXMucmVnaXN0ZXIoZC5hZGREaXNwb3NhYmxlRG9tTGlzdGVuZXIodGhpcy50ZXh0YXJlYSxcInBhc3RlXCIsdCkpLHRoaXMucmVnaXN0ZXIoZC5hZGREaXNwb3NhYmxlRG9tTGlzdGVuZXIodGhpcy5lbGVtZW50LFwicGFzdGVcIix0KSksXy5pc0ZpcmVmb3g/dGhpcy5yZWdpc3RlcihkLmFkZERpc3Bvc2FibGVEb21MaXN0ZW5lcih0aGlzLmVsZW1lbnQsXCJtb3VzZWRvd25cIixmdW5jdGlvbih0KXsyPT09dC5idXR0b24mJmEucmlnaHRDbGlja0hhbmRsZXIodCxlLnRleHRhcmVhLGUuc2NyZWVuRWxlbWVudCxlLl9zZWxlY3Rpb25TZXJ2aWNlLGUub3B0aW9ucy5yaWdodENsaWNrU2VsZWN0c1dvcmQpfSkpOnRoaXMucmVnaXN0ZXIoZC5hZGREaXNwb3NhYmxlRG9tTGlzdGVuZXIodGhpcy5lbGVtZW50LFwiY29udGV4dG1lbnVcIixmdW5jdGlvbih0KXthLnJpZ2h0Q2xpY2tIYW5kbGVyKHQsZS50ZXh0YXJlYSxlLnNjcmVlbkVsZW1lbnQsZS5fc2VsZWN0aW9uU2VydmljZSxlLm9wdGlvbnMucmlnaHRDbGlja1NlbGVjdHNXb3JkKX0pKSxfLmlzTGludXgmJnRoaXMucmVnaXN0ZXIoZC5hZGREaXNwb3NhYmxlRG9tTGlzdGVuZXIodGhpcy5lbGVtZW50LFwiYXV4Y2xpY2tcIixmdW5jdGlvbih0KXsxPT09dC5idXR0b24mJmEubW92ZVRleHRBcmVhVW5kZXJNb3VzZUN1cnNvcih0LGUudGV4dGFyZWEsZS5zY3JlZW5FbGVtZW50KX0pKX0sdC5wcm90b3R5cGUuX2JpbmRLZXlzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnJlZ2lzdGVyKGQuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKHRoaXMudGV4dGFyZWEsXCJrZXl1cFwiLGZ1bmN0aW9uKHQpe3JldHVybiBlLl9rZXlVcCh0KX0sITApKSx0aGlzLnJlZ2lzdGVyKGQuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKHRoaXMudGV4dGFyZWEsXCJrZXlkb3duXCIsZnVuY3Rpb24odCl7cmV0dXJuIGUuX2tleURvd24odCl9LCEwKSksdGhpcy5yZWdpc3RlcihkLmFkZERpc3Bvc2FibGVEb21MaXN0ZW5lcih0aGlzLnRleHRhcmVhLFwia2V5cHJlc3NcIixmdW5jdGlvbih0KXtyZXR1cm4gZS5fa2V5UHJlc3ModCl9LCEwKSksdGhpcy5yZWdpc3RlcihkLmFkZERpc3Bvc2FibGVEb21MaXN0ZW5lcih0aGlzLnRleHRhcmVhLFwiY29tcG9zaXRpb25zdGFydFwiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2NvbXBvc2l0aW9uSGVscGVyLmNvbXBvc2l0aW9uc3RhcnQoKX0pKSx0aGlzLnJlZ2lzdGVyKGQuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKHRoaXMudGV4dGFyZWEsXCJjb21wb3NpdGlvbnVwZGF0ZVwiLGZ1bmN0aW9uKHQpe3JldHVybiBlLl9jb21wb3NpdGlvbkhlbHBlci5jb21wb3NpdGlvbnVwZGF0ZSh0KX0pKSx0aGlzLnJlZ2lzdGVyKGQuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKHRoaXMudGV4dGFyZWEsXCJjb21wb3NpdGlvbmVuZFwiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2NvbXBvc2l0aW9uSGVscGVyLmNvbXBvc2l0aW9uZW5kKCl9KSksdGhpcy5yZWdpc3Rlcih0aGlzLm9uUmVuZGVyKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2NvbXBvc2l0aW9uSGVscGVyLnVwZGF0ZUNvbXBvc2l0aW9uRWxlbWVudHMoKX0pKSx0aGlzLnJlZ2lzdGVyKHRoaXMub25SZW5kZXIoZnVuY3Rpb24odCl7cmV0dXJuIGUuX3F1ZXVlTGlua2lmaWNhdGlvbih0LnN0YXJ0LHQuZW5kKX0pKX0sdC5wcm90b3R5cGUub3Blbj1mdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKHRoaXMuX3BhcmVudD1lfHx0aGlzLl9wYXJlbnQsIXRoaXMuX3BhcmVudCl0aHJvdyBuZXcgRXJyb3IoXCJUZXJtaW5hbCByZXF1aXJlcyBhIHBhcmVudCBlbGVtZW50LlwiKTt0aGlzLl9kb2N1bWVudD10aGlzLl9wYXJlbnQub3duZXJEb2N1bWVudCx0aGlzLmVsZW1lbnQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSx0aGlzLmVsZW1lbnQuZGlyPVwibHRyXCIsdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJ0ZXJtaW5hbFwiKSx0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInh0ZXJtXCIpLHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0YWJpbmRleFwiLFwiMFwiKSx0aGlzLl9wYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTt2YXIgaT1GLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt0aGlzLl92aWV3cG9ydEVsZW1lbnQ9Ri5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHRoaXMuX3ZpZXdwb3J0RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwieHRlcm0tdmlld3BvcnRcIiksaS5hcHBlbmRDaGlsZCh0aGlzLl92aWV3cG9ydEVsZW1lbnQpLHRoaXMuX3ZpZXdwb3J0U2Nyb2xsQXJlYT1GLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksdGhpcy5fdmlld3BvcnRTY3JvbGxBcmVhLmNsYXNzTGlzdC5hZGQoXCJ4dGVybS1zY3JvbGwtYXJlYVwiKSx0aGlzLl92aWV3cG9ydEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdmlld3BvcnRTY3JvbGxBcmVhKSx0aGlzLnNjcmVlbkVsZW1lbnQ9Ri5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHRoaXMuc2NyZWVuRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwieHRlcm0tc2NyZWVuXCIpLHRoaXMuX2hlbHBlckNvbnRhaW5lcj1GLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksdGhpcy5faGVscGVyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoXCJ4dGVybS1oZWxwZXJzXCIpLHRoaXMuc2NyZWVuRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9oZWxwZXJDb250YWluZXIpLGkuYXBwZW5kQ2hpbGQodGhpcy5zY3JlZW5FbGVtZW50KSx0aGlzLnRleHRhcmVhPUYuY3JlYXRlRWxlbWVudChcInRleHRhcmVhXCIpLHRoaXMudGV4dGFyZWEuY2xhc3NMaXN0LmFkZChcInh0ZXJtLWhlbHBlci10ZXh0YXJlYVwiKSx0aGlzLnRleHRhcmVhLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxcIixwLnByb21wdExhYmVsKSx0aGlzLnRleHRhcmVhLnNldEF0dHJpYnV0ZShcImFyaWEtbXVsdGlsaW5lXCIsXCJmYWxzZVwiKSx0aGlzLnRleHRhcmVhLnNldEF0dHJpYnV0ZShcImF1dG9jb3JyZWN0XCIsXCJvZmZcIiksdGhpcy50ZXh0YXJlYS5zZXRBdHRyaWJ1dGUoXCJhdXRvY2FwaXRhbGl6ZVwiLFwib2ZmXCIpLHRoaXMudGV4dGFyZWEuc2V0QXR0cmlidXRlKFwic3BlbGxjaGVja1wiLFwiZmFsc2VcIiksdGhpcy50ZXh0YXJlYS50YWJJbmRleD0wLHRoaXMucmVnaXN0ZXIoZC5hZGREaXNwb3NhYmxlRG9tTGlzdGVuZXIodGhpcy50ZXh0YXJlYSxcImZvY3VzXCIsZnVuY3Rpb24oZSl7cmV0dXJuIHQuX29uVGV4dEFyZWFGb2N1cyhlKX0pKSx0aGlzLnJlZ2lzdGVyKGQuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKHRoaXMudGV4dGFyZWEsXCJibHVyXCIsZnVuY3Rpb24oKXtyZXR1cm4gdC5fb25UZXh0QXJlYUJsdXIoKX0pKSx0aGlzLl9oZWxwZXJDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy50ZXh0YXJlYSksdGhpcy5fY2hhclNpemVTZXJ2aWNlPXRoaXMuX2luc3RhbnRpYXRpb25TZXJ2aWNlLmNyZWF0ZUluc3RhbmNlKEQuQ2hhclNpemVTZXJ2aWNlLHRoaXMuX2RvY3VtZW50LHRoaXMuX2hlbHBlckNvbnRhaW5lciksdGhpcy5faW5zdGFudGlhdGlvblNlcnZpY2Uuc2V0U2VydmljZShrLklDaGFyU2l6ZVNlcnZpY2UsdGhpcy5fY2hhclNpemVTZXJ2aWNlKSx0aGlzLl9jb21wb3NpdGlvblZpZXc9Ri5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHRoaXMuX2NvbXBvc2l0aW9uVmlldy5jbGFzc0xpc3QuYWRkKFwiY29tcG9zaXRpb24tdmlld1wiKSx0aGlzLl9jb21wb3NpdGlvbkhlbHBlcj10aGlzLl9pbnN0YW50aWF0aW9uU2VydmljZS5jcmVhdGVJbnN0YW5jZShzLkNvbXBvc2l0aW9uSGVscGVyLHRoaXMudGV4dGFyZWEsdGhpcy5fY29tcG9zaXRpb25WaWV3KSx0aGlzLl9oZWxwZXJDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fY29tcG9zaXRpb25WaWV3KSx0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoaSksdGhpcy5fdGhlbWU9dGhpcy5vcHRpb25zLnRoZW1lfHx0aGlzLl90aGVtZSx0aGlzLm9wdGlvbnMudGhlbWU9dm9pZCAwLHRoaXMuX2NvbG9yTWFuYWdlcj1uZXcgRS5Db2xvck1hbmFnZXIoRix0aGlzLm9wdGlvbnMuYWxsb3dUcmFuc3BhcmVuY3kpLHRoaXMuX2NvbG9yTWFuYWdlci5zZXRUaGVtZSh0aGlzLl90aGVtZSk7dmFyIHI9dGhpcy5fY3JlYXRlUmVuZGVyZXIoKTt0aGlzLl9yZW5kZXJTZXJ2aWNlPXRoaXMuX2luc3RhbnRpYXRpb25TZXJ2aWNlLmNyZWF0ZUluc3RhbmNlKEwuUmVuZGVyU2VydmljZSxyLHRoaXMucm93cyx0aGlzLnNjcmVlbkVsZW1lbnQpLHRoaXMuX2luc3RhbnRpYXRpb25TZXJ2aWNlLnNldFNlcnZpY2Uoay5JUmVuZGVyU2VydmljZSx0aGlzLl9yZW5kZXJTZXJ2aWNlKSx0aGlzLl9yZW5kZXJTZXJ2aWNlLm9uUmVuZGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9vblJlbmRlci5maXJlKGUpfSksdGhpcy5vblJlc2l6ZShmdW5jdGlvbihlKXtyZXR1cm4gdC5fcmVuZGVyU2VydmljZS5yZXNpemUoZS5jb2xzLGUucm93cyl9KSx0aGlzLl9zb3VuZFNlcnZpY2U9dGhpcy5faW5zdGFudGlhdGlvblNlcnZpY2UuY3JlYXRlSW5zdGFuY2Uodi5Tb3VuZFNlcnZpY2UpLHRoaXMuX2luc3RhbnRpYXRpb25TZXJ2aWNlLnNldFNlcnZpY2Uoay5JU291bmRTZXJ2aWNlLHRoaXMuX3NvdW5kU2VydmljZSksdGhpcy5fbW91c2VTZXJ2aWNlPXRoaXMuX2luc3RhbnRpYXRpb25TZXJ2aWNlLmNyZWF0ZUluc3RhbmNlKE0uTW91c2VTZXJ2aWNlKSx0aGlzLl9pbnN0YW50aWF0aW9uU2VydmljZS5zZXRTZXJ2aWNlKGsuSU1vdXNlU2VydmljZSx0aGlzLl9tb3VzZVNlcnZpY2UpLHRoaXMudmlld3BvcnQ9dGhpcy5faW5zdGFudGlhdGlvblNlcnZpY2UuY3JlYXRlSW5zdGFuY2Uoby5WaWV3cG9ydCxmdW5jdGlvbihlLGkpe3JldHVybiB0LnNjcm9sbExpbmVzKGUsaSl9LHRoaXMuX3ZpZXdwb3J0RWxlbWVudCx0aGlzLl92aWV3cG9ydFNjcm9sbEFyZWEpLHRoaXMudmlld3BvcnQub25UaGVtZUNoYW5nZSh0aGlzLl9jb2xvck1hbmFnZXIuY29sb3JzKSx0aGlzLnJlZ2lzdGVyKHRoaXMudmlld3BvcnQpLHRoaXMucmVnaXN0ZXIodGhpcy5vbkN1cnNvck1vdmUoZnVuY3Rpb24oKXtyZXR1cm4gdC5fcmVuZGVyU2VydmljZS5vbkN1cnNvck1vdmUoKX0pKSx0aGlzLnJlZ2lzdGVyKHRoaXMub25SZXNpemUoZnVuY3Rpb24oKXtyZXR1cm4gdC5fcmVuZGVyU2VydmljZS5vblJlc2l6ZSh0LmNvbHMsdC5yb3dzKX0pKSx0aGlzLnJlZ2lzdGVyKHRoaXMub25CbHVyKGZ1bmN0aW9uKCl7cmV0dXJuIHQuX3JlbmRlclNlcnZpY2Uub25CbHVyKCl9KSksdGhpcy5yZWdpc3Rlcih0aGlzLm9uRm9jdXMoZnVuY3Rpb24oKXtyZXR1cm4gdC5fcmVuZGVyU2VydmljZS5vbkZvY3VzKCl9KSksdGhpcy5yZWdpc3Rlcih0aGlzLl9yZW5kZXJTZXJ2aWNlLm9uRGltZW5zaW9uc0NoYW5nZShmdW5jdGlvbigpe3JldHVybiB0LnZpZXdwb3J0LnN5bmNTY3JvbGxBcmVhKCl9KSksdGhpcy5fc2VsZWN0aW9uU2VydmljZT10aGlzLl9pbnN0YW50aWF0aW9uU2VydmljZS5jcmVhdGVJbnN0YW5jZShmLlNlbGVjdGlvblNlcnZpY2UsZnVuY3Rpb24oZSxpKXtyZXR1cm4gdC5zY3JvbGxMaW5lcyhlLGkpfSx0aGlzLmVsZW1lbnQsdGhpcy5zY3JlZW5FbGVtZW50KSx0aGlzLl9pbnN0YW50aWF0aW9uU2VydmljZS5zZXRTZXJ2aWNlKGsuSVNlbGVjdGlvblNlcnZpY2UsdGhpcy5fc2VsZWN0aW9uU2VydmljZSksdGhpcy5yZWdpc3Rlcih0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLm9uU2VsZWN0aW9uQ2hhbmdlKGZ1bmN0aW9uKCl7cmV0dXJuIHQuX29uU2VsZWN0aW9uQ2hhbmdlLmZpcmUoKX0pKSx0aGlzLnJlZ2lzdGVyKHRoaXMuX3NlbGVjdGlvblNlcnZpY2Uub25SZWRyYXdSZXF1ZXN0KGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9yZW5kZXJTZXJ2aWNlLm9uU2VsZWN0aW9uQ2hhbmdlZChlLnN0YXJ0LGUuZW5kLGUuY29sdW1uU2VsZWN0TW9kZSl9KSksdGhpcy5yZWdpc3Rlcih0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLm9uTGludXhNb3VzZVNlbGVjdGlvbihmdW5jdGlvbihlKXt0LnRleHRhcmVhLnZhbHVlPWUsdC50ZXh0YXJlYS5mb2N1cygpLHQudGV4dGFyZWEuc2VsZWN0KCl9KSksdGhpcy5yZWdpc3Rlcih0aGlzLm9uU2Nyb2xsKGZ1bmN0aW9uKCl7dC52aWV3cG9ydC5zeW5jU2Nyb2xsQXJlYSgpLHQuX3NlbGVjdGlvblNlcnZpY2UucmVmcmVzaCgpfSkpLHRoaXMucmVnaXN0ZXIoZC5hZGREaXNwb3NhYmxlRG9tTGlzdGVuZXIodGhpcy5fdmlld3BvcnRFbGVtZW50LFwic2Nyb2xsXCIsZnVuY3Rpb24oKXtyZXR1cm4gdC5fc2VsZWN0aW9uU2VydmljZS5yZWZyZXNoKCl9KSksdGhpcy5fbW91c2Vab25lTWFuYWdlcj10aGlzLl9pbnN0YW50aWF0aW9uU2VydmljZS5jcmVhdGVJbnN0YW5jZShnLk1vdXNlWm9uZU1hbmFnZXIsdGhpcy5lbGVtZW50LHRoaXMuc2NyZWVuRWxlbWVudCksdGhpcy5yZWdpc3Rlcih0aGlzLl9tb3VzZVpvbmVNYW5hZ2VyKSx0aGlzLnJlZ2lzdGVyKHRoaXMub25TY3JvbGwoZnVuY3Rpb24oKXtyZXR1cm4gdC5fbW91c2Vab25lTWFuYWdlci5jbGVhckFsbCgpfSkpLHRoaXMubGlua2lmaWVyLmF0dGFjaFRvRG9tKHRoaXMuZWxlbWVudCx0aGlzLl9tb3VzZVpvbmVNYW5hZ2VyKSx0aGlzLnJlZ2lzdGVyKGQuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKHRoaXMuZWxlbWVudCxcIm1vdXNlZG93blwiLGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9zZWxlY3Rpb25TZXJ2aWNlLm9uTW91c2VEb3duKGUpfSkpLHRoaXMubW91c2VFdmVudHM/KHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuZGlzYWJsZSgpLHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiZW5hYmxlLW1vdXNlLWV2ZW50c1wiKSk6dGhpcy5fc2VsZWN0aW9uU2VydmljZS5lbmFibGUoKSx0aGlzLm9wdGlvbnMuc2NyZWVuUmVhZGVyTW9kZSYmKHRoaXMuX2FjY2Vzc2liaWxpdHlNYW5hZ2VyPW5ldyB5LkFjY2Vzc2liaWxpdHlNYW5hZ2VyKHRoaXMsdGhpcy5fcmVuZGVyU2VydmljZSkpLHRoaXMuX2NoYXJTaXplU2VydmljZS5tZWFzdXJlKCksdGhpcy5yZWZyZXNoKDAsdGhpcy5yb3dzLTEpLHRoaXMuX2luaXRHbG9iYWwoKSx0aGlzLmJpbmRNb3VzZSgpfSx0LnByb3RvdHlwZS5fY3JlYXRlUmVuZGVyZXI9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5vcHRpb25zLnJlbmRlcmVyVHlwZSl7Y2FzZVwiY2FudmFzXCI6cmV0dXJuIG5ldyBoLlJlbmRlcmVyKHRoaXMuX2NvbG9yTWFuYWdlci5jb2xvcnMsdGhpcyx0aGlzLl9idWZmZXJTZXJ2aWNlLHRoaXMuX2NoYXJTaXplU2VydmljZSx0aGlzLm9wdGlvbnNTZXJ2aWNlKTtjYXNlXCJkb21cIjpyZXR1cm4gbmV3IG0uRG9tUmVuZGVyZXIodGhpcyx0aGlzLl9jb2xvck1hbmFnZXIuY29sb3JzLHRoaXMuX2NoYXJTaXplU2VydmljZSx0aGlzLm9wdGlvbnNTZXJ2aWNlKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcignVW5yZWNvZ25pemVkIHJlbmRlcmVyVHlwZSBcIicrdGhpcy5vcHRpb25zLnJlbmRlcmVyVHlwZSsnXCInKX19LHQucHJvdG90eXBlLl9zZXRUaGVtZT1mdW5jdGlvbihlKXt0aGlzLl90aGVtZT1lLHRoaXMuX2NvbG9yTWFuYWdlciYmdGhpcy5fY29sb3JNYW5hZ2VyLnNldFRoZW1lKGUpLHRoaXMuX3JlbmRlclNlcnZpY2UmJnRoaXMuX3JlbmRlclNlcnZpY2Uuc2V0Q29sb3JzKHRoaXMuX2NvbG9yTWFuYWdlci5jb2xvcnMpLHRoaXMudmlld3BvcnQmJnRoaXMudmlld3BvcnQub25UaGVtZUNoYW5nZSh0aGlzLl9jb2xvck1hbmFnZXIuY29sb3JzKX0sdC5wcm90b3R5cGUuYmluZE1vdXNlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMsaT10aGlzLmVsZW1lbnQ7ZnVuY3Rpb24gcihlKXt2YXIgaSxyLG47aWYoIShpPXQuX21vdXNlU2VydmljZS5nZXRSYXdCeXRlQ29vcmRzKGUsdC5zY3JlZW5FbGVtZW50LHQuY29scyx0LnJvd3MpKSlyZXR1cm4hMTtzd2l0Y2goZS5vdmVycmlkZVR5cGV8fGUudHlwZSl7Y2FzZVwibW91c2Vtb3ZlXCI6bj0zMix2b2lkIDA9PT1lLmJ1dHRvbnM/KHI9Myx2b2lkIDAhPT1lLmJ1dHRvbiYmKHI9ZS5idXR0b248Mz9lLmJ1dHRvbjozKSk6cj0xJmUuYnV0dG9ucz8wOjQmZS5idXR0b25zPzE6MiZlLmJ1dHRvbnM/MjozO2JyZWFrO2Nhc2VcIm1vdXNldXBcIjpuPTAscj1lLmJ1dHRvbjwzP2UuYnV0dG9uOjM7YnJlYWs7Y2FzZVwibW91c2Vkb3duXCI6bj0xLHI9ZS5idXR0b248Mz9lLmJ1dHRvbjozO2JyZWFrO2Nhc2VcIndoZWVsXCI6MCE9PWUuZGVsdGFZJiYobj1lLmRlbHRhWTwwPzA6MSkscj00O2JyZWFrO2RlZmF1bHQ6cmV0dXJuITF9cmV0dXJuISh2b2lkIDA9PT1ufHx2b2lkIDA9PT1yfHxyPjQpJiZ0Ll9jb3JlTW91c2VTZXJ2aWNlLnRyaWdnZXJNb3VzZUV2ZW50KHtjb2w6aS54LTMzLHJvdzppLnktMzMsYnV0dG9uOnIsYWN0aW9uOm4sY3RybDplLmN0cmxLZXksYWx0OmUuYWx0S2V5LHNoaWZ0OmUuc2hpZnRLZXl9KX12YXIgbj17bW91c2V1cDpudWxsLHdoZWVsOm51bGwsbW91c2VkcmFnOm51bGwsbW91c2Vtb3ZlOm51bGx9LHM9ZnVuY3Rpb24odCl7cmV0dXJuIHIodCksdC5idXR0b25zfHwoZS5fZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixuLm1vdXNldXApLG4ubW91c2VkcmFnJiZlLl9kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsbi5tb3VzZWRyYWcpKSxlLmNhbmNlbCh0KX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gcih0KSx0LnByZXZlbnREZWZhdWx0KCksZS5jYW5jZWwodCl9LGE9ZnVuY3Rpb24oZSl7ZS5idXR0b25zJiZyKGUpfSxsPWZ1bmN0aW9uKGUpe2UuYnV0dG9uc3x8cihlKX07dGhpcy5fY29yZU1vdXNlU2VydmljZS5vblByb3RvY29sQ2hhbmdlKGZ1bmN0aW9uKHQpe2UubW91c2VFdmVudHM9dCx0PyhcImRlYnVnXCI9PT1lLm9wdGlvbnNTZXJ2aWNlLm9wdGlvbnMubG9nTGV2ZWwmJmUuX2xvZ1NlcnZpY2UuZGVidWcoXCJCaW5kaW5nIHRvIG1vdXNlIGV2ZW50czpcIixlLl9jb3JlTW91c2VTZXJ2aWNlLmV4cGxhaW5FdmVudHModCkpLGUuZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiZW5hYmxlLW1vdXNlLWV2ZW50c1wiKSxlLl9zZWxlY3Rpb25TZXJ2aWNlLmRpc2FibGUoKSk6KGUuX2xvZ1NlcnZpY2UuZGVidWcoXCJVbmJpbmRpbmcgZnJvbSBtb3VzZSBldmVudHMuXCIpLGUuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiZW5hYmxlLW1vdXNlLWV2ZW50c1wiKSxlLl9zZWxlY3Rpb25TZXJ2aWNlLmVuYWJsZSgpKSw4JnQ/bi5tb3VzZW1vdmV8fChpLmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixsKSxuLm1vdXNlbW92ZT1sKTooaS5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsbi5tb3VzZW1vdmUpLG4ubW91c2Vtb3ZlPW51bGwpLDE2JnQ/bi53aGVlbHx8KGkuYWRkRXZlbnRMaXN0ZW5lcihcIndoZWVsXCIsbyksbi53aGVlbD1vKTooaS5yZW1vdmVFdmVudExpc3RlbmVyKFwid2hlZWxcIixuLndoZWVsKSxuLndoZWVsPW51bGwpLDImdD9uLm1vdXNldXB8fChuLm1vdXNldXA9cyk6KGUuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsbi5tb3VzZXVwKSxuLm1vdXNldXA9bnVsbCksNCZ0P24ubW91c2VkcmFnfHwobi5tb3VzZWRyYWc9YSk6KGUuX2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixuLm1vdXNlZHJhZyksbi5tb3VzZWRyYWc9bnVsbCl9KSx0aGlzLl9jb3JlTW91c2VTZXJ2aWNlLmFjdGl2ZVByb3RvY29sPXRoaXMuX2NvcmVNb3VzZVNlcnZpY2UuYWN0aXZlUHJvdG9jb2wsdGhpcy5yZWdpc3RlcihkLmFkZERpc3Bvc2FibGVEb21MaXN0ZW5lcihpLFwibW91c2Vkb3duXCIsZnVuY3Rpb24odCl7aWYodC5wcmV2ZW50RGVmYXVsdCgpLGUuZm9jdXMoKSxlLm1vdXNlRXZlbnRzJiYhZS5fc2VsZWN0aW9uU2VydmljZS5zaG91bGRGb3JjZVNlbGVjdGlvbih0KSlyZXR1cm4gcih0KSxuLm1vdXNldXAmJmUuX2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsbi5tb3VzZXVwKSxuLm1vdXNlZHJhZyYmZS5fZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLG4ubW91c2VkcmFnKSxlLmNhbmNlbCh0KX0pKSx0aGlzLnJlZ2lzdGVyKGQuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKGksXCJ3aGVlbFwiLGZ1bmN0aW9uKHQpe2lmKG4ud2hlZWwpO2Vsc2UgaWYoIWUuYnVmZmVyLmhhc1Njcm9sbGJhY2spe3ZhciBpPWUudmlld3BvcnQuZ2V0TGluZXNTY3JvbGxlZCh0KTtpZigwPT09aSlyZXR1cm47Zm9yKHZhciByPWMuQzAuRVNDKyhlLl9jb3JlU2VydmljZS5kZWNQcml2YXRlTW9kZXMuYXBwbGljYXRpb25DdXJzb3JLZXlzP1wiT1wiOlwiW1wiKSsodC5kZWx0YVk8MD9cIkFcIjpcIkJcIikscz1cIlwiLG89MDtvPE1hdGguYWJzKGkpO28rKylzKz1yO2UuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQocywhMCl9fSkpLHRoaXMucmVnaXN0ZXIoZC5hZGREaXNwb3NhYmxlRG9tTGlzdGVuZXIoaSxcIndoZWVsXCIsZnVuY3Rpb24odCl7aWYoIW4ud2hlZWwpcmV0dXJuIGUudmlld3BvcnQub25XaGVlbCh0KT92b2lkIDA6ZS5jYW5jZWwodCl9KSksdGhpcy5yZWdpc3RlcihkLmFkZERpc3Bvc2FibGVEb21MaXN0ZW5lcihpLFwidG91Y2hzdGFydFwiLGZ1bmN0aW9uKHQpe2lmKCFlLm1vdXNlRXZlbnRzKXJldHVybiBlLnZpZXdwb3J0Lm9uVG91Y2hTdGFydCh0KSxlLmNhbmNlbCh0KX0pKSx0aGlzLnJlZ2lzdGVyKGQuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKGksXCJ0b3VjaG1vdmVcIixmdW5jdGlvbih0KXtpZighZS5tb3VzZUV2ZW50cylyZXR1cm4gZS52aWV3cG9ydC5vblRvdWNoTW92ZSh0KT92b2lkIDA6ZS5jYW5jZWwodCl9KSl9LHQucHJvdG90eXBlLnJlZnJlc2g9ZnVuY3Rpb24oZSx0KXt0aGlzLl9yZW5kZXJTZXJ2aWNlJiZ0aGlzLl9yZW5kZXJTZXJ2aWNlLnJlZnJlc2hSb3dzKGUsdCl9LHQucHJvdG90eXBlLl9xdWV1ZUxpbmtpZmljYXRpb249ZnVuY3Rpb24oZSx0KXt0aGlzLmxpbmtpZmllciYmdGhpcy5saW5raWZpZXIubGlua2lmeVJvd3MoZSx0KX0sdC5wcm90b3R5cGUudXBkYXRlQ3Vyc29yU3R5bGU9ZnVuY3Rpb24oZSl7dGhpcy5fc2VsZWN0aW9uU2VydmljZSYmdGhpcy5fc2VsZWN0aW9uU2VydmljZS5zaG91bGRDb2x1bW5TZWxlY3QoZSk/dGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjb2x1bW4tc2VsZWN0XCIpOnRoaXMuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY29sdW1uLXNlbGVjdFwiKX0sdC5wcm90b3R5cGUuc2hvd0N1cnNvcj1mdW5jdGlvbigpe3RoaXMuY3Vyc29yU3RhdGV8fCh0aGlzLmN1cnNvclN0YXRlPTEsdGhpcy5yZWZyZXNoKHRoaXMuYnVmZmVyLnksdGhpcy5idWZmZXIueSkpfSx0LnByb3RvdHlwZS5zY3JvbGw9ZnVuY3Rpb24oZSl7dmFyIHQ7dm9pZCAwPT09ZSYmKGU9ITEpLHQ9dGhpcy5fYmxhbmtMaW5lO3ZhciBpPXRoaXMuZXJhc2VBdHRyRGF0YSgpO3QmJnQubGVuZ3RoPT09dGhpcy5jb2xzJiZ0LmdldEZnKDApPT09aS5mZyYmdC5nZXRCZygwKT09PWkuYmd8fCh0PXRoaXMuYnVmZmVyLmdldEJsYW5rTGluZShpLGUpLHRoaXMuX2JsYW5rTGluZT10KSx0LmlzV3JhcHBlZD1lO3ZhciByPXRoaXMuYnVmZmVyLnliYXNlK3RoaXMuYnVmZmVyLnNjcm9sbFRvcCxuPXRoaXMuYnVmZmVyLnliYXNlK3RoaXMuYnVmZmVyLnNjcm9sbEJvdHRvbTtpZigwPT09dGhpcy5idWZmZXIuc2Nyb2xsVG9wKXt2YXIgcz10aGlzLmJ1ZmZlci5saW5lcy5pc0Z1bGw7bj09PXRoaXMuYnVmZmVyLmxpbmVzLmxlbmd0aC0xP3M/dGhpcy5idWZmZXIubGluZXMucmVjeWNsZSgpLmNvcHlGcm9tKHQpOnRoaXMuYnVmZmVyLmxpbmVzLnB1c2godC5jbG9uZSgpKTp0aGlzLmJ1ZmZlci5saW5lcy5zcGxpY2UobisxLDAsdC5jbG9uZSgpKSxzP3RoaXMuX3VzZXJTY3JvbGxpbmcmJih0aGlzLmJ1ZmZlci55ZGlzcD1NYXRoLm1heCh0aGlzLmJ1ZmZlci55ZGlzcC0xLDApKToodGhpcy5idWZmZXIueWJhc2UrKyx0aGlzLl91c2VyU2Nyb2xsaW5nfHx0aGlzLmJ1ZmZlci55ZGlzcCsrKX1lbHNle3ZhciBvPW4tcisxO3RoaXMuYnVmZmVyLmxpbmVzLnNoaWZ0RWxlbWVudHMocisxLG8tMSwtMSksdGhpcy5idWZmZXIubGluZXMuc2V0KG4sdC5jbG9uZSgpKX10aGlzLl91c2VyU2Nyb2xsaW5nfHwodGhpcy5idWZmZXIueWRpc3A9dGhpcy5idWZmZXIueWJhc2UpLHRoaXMuX2RpcnR5Um93U2VydmljZS5tYXJrUmFuZ2VEaXJ0eSh0aGlzLmJ1ZmZlci5zY3JvbGxUb3AsdGhpcy5idWZmZXIuc2Nyb2xsQm90dG9tKSx0aGlzLl9vblNjcm9sbC5maXJlKHRoaXMuYnVmZmVyLnlkaXNwKX0sdC5wcm90b3R5cGUuc2Nyb2xsTGluZXM9ZnVuY3Rpb24oZSx0KXtpZihlPDApe2lmKDA9PT10aGlzLmJ1ZmZlci55ZGlzcClyZXR1cm47dGhpcy5fdXNlclNjcm9sbGluZz0hMH1lbHNlIGUrdGhpcy5idWZmZXIueWRpc3A+PXRoaXMuYnVmZmVyLnliYXNlJiYodGhpcy5fdXNlclNjcm9sbGluZz0hMSk7dmFyIGk9dGhpcy5idWZmZXIueWRpc3A7dGhpcy5idWZmZXIueWRpc3A9TWF0aC5tYXgoTWF0aC5taW4odGhpcy5idWZmZXIueWRpc3ArZSx0aGlzLmJ1ZmZlci55YmFzZSksMCksaSE9PXRoaXMuYnVmZmVyLnlkaXNwJiYodHx8dGhpcy5fb25TY3JvbGwuZmlyZSh0aGlzLmJ1ZmZlci55ZGlzcCksdGhpcy5yZWZyZXNoKDAsdGhpcy5yb3dzLTEpKX0sdC5wcm90b3R5cGUuc2Nyb2xsUGFnZXM9ZnVuY3Rpb24oZSl7dGhpcy5zY3JvbGxMaW5lcyhlKih0aGlzLnJvd3MtMSkpfSx0LnByb3RvdHlwZS5zY3JvbGxUb1RvcD1mdW5jdGlvbigpe3RoaXMuc2Nyb2xsTGluZXMoLXRoaXMuYnVmZmVyLnlkaXNwKX0sdC5wcm90b3R5cGUuc2Nyb2xsVG9Cb3R0b209ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbExpbmVzKHRoaXMuYnVmZmVyLnliYXNlLXRoaXMuYnVmZmVyLnlkaXNwKX0sdC5wcm90b3R5cGUuc2Nyb2xsVG9MaW5lPWZ1bmN0aW9uKGUpe3ZhciB0PWUtdGhpcy5idWZmZXIueWRpc3A7MCE9PXQmJnRoaXMuc2Nyb2xsTGluZXModCl9LHQucHJvdG90eXBlLndyaXRlVXRmOD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3RoaXMuX2lzRGlzcG9zZWR8fGUmJih0aGlzLndyaXRlQnVmZmVyVXRmOC5wdXNoKGUpLHRoaXMub3B0aW9ucy51c2VGbG93Q29udHJvbCYmIXRoaXMuX3hvZmZTZW50VG9DYXRjaFVwJiZ0aGlzLndyaXRlQnVmZmVyVXRmOC5sZW5ndGg+PTUmJih0aGlzLl9jb3JlU2VydmljZS50cmlnZ2VyRGF0YUV2ZW50KGMuQzAuREMzKSx0aGlzLl94b2ZmU2VudFRvQ2F0Y2hVcD0hMCksIXRoaXMuX3dyaXRlSW5Qcm9ncmVzcyYmdGhpcy53cml0ZUJ1ZmZlclV0ZjgubGVuZ3RoPjAmJih0aGlzLl93cml0ZUluUHJvZ3Jlc3M9ITAsc2V0VGltZW91dChmdW5jdGlvbigpe3QuX2lubmVyV3JpdGVVdGY4KCl9KSkpfSx0LnByb3RvdHlwZS5faW5uZXJXcml0ZVV0Zjg9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt2b2lkIDA9PT1lJiYoZT0wKSx0aGlzLl9pc0Rpc3Bvc2VkJiYodGhpcy53cml0ZUJ1ZmZlclV0Zjg9W10pO2Zvcih2YXIgaT1EYXRlLm5vdygpO3RoaXMud3JpdGVCdWZmZXJVdGY4Lmxlbmd0aD5lOyl7dmFyIHI9dGhpcy53cml0ZUJ1ZmZlclV0ZjhbZV07aWYoZSsrLHRoaXMuX3hvZmZTZW50VG9DYXRjaFVwJiZ0aGlzLndyaXRlQnVmZmVyVXRmOC5sZW5ndGg9PT1lJiYodGhpcy5fY29yZVNlcnZpY2UudHJpZ2dlckRhdGFFdmVudChjLkMwLkRDMSksdGhpcy5feG9mZlNlbnRUb0NhdGNoVXA9ITEpLHRoaXMuX2lucHV0SGFuZGxlci5wYXJzZVV0ZjgociksdGhpcy5yZWZyZXNoKHRoaXMuX2RpcnR5Um93U2VydmljZS5zdGFydCx0aGlzLl9kaXJ0eVJvd1NlcnZpY2UuZW5kKSxEYXRlLm5vdygpLWk+PTEyKWJyZWFrfXRoaXMud3JpdGVCdWZmZXJVdGY4Lmxlbmd0aD5lPyhlPjUwJiYodGhpcy53cml0ZUJ1ZmZlclV0Zjg9dGhpcy53cml0ZUJ1ZmZlclV0Zjguc2xpY2UoZSksZT0wKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHQuX2lubmVyV3JpdGVVdGY4KGUpfSwwKSk6KHRoaXMuX3dyaXRlSW5Qcm9ncmVzcz0hMSx0aGlzLndyaXRlQnVmZmVyVXRmOD1bXSl9LHQucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5faXNEaXNwb3NlZHx8ZSYmKHRoaXMud3JpdGVCdWZmZXIucHVzaChlKSx0aGlzLm9wdGlvbnMudXNlRmxvd0NvbnRyb2wmJiF0aGlzLl94b2ZmU2VudFRvQ2F0Y2hVcCYmdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg+PTUmJih0aGlzLl9jb3JlU2VydmljZS50cmlnZ2VyRGF0YUV2ZW50KGMuQzAuREMzKSx0aGlzLl94b2ZmU2VudFRvQ2F0Y2hVcD0hMCksIXRoaXMuX3dyaXRlSW5Qcm9ncmVzcyYmdGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg+MCYmKHRoaXMuX3dyaXRlSW5Qcm9ncmVzcz0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5faW5uZXJXcml0ZSgpfSkpKX0sdC5wcm90b3R5cGUuX2lubmVyV3JpdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt2b2lkIDA9PT1lJiYoZT0wKSx0aGlzLl9pc0Rpc3Bvc2VkJiYodGhpcy53cml0ZUJ1ZmZlcj1bXSk7Zm9yKHZhciBpPURhdGUubm93KCk7dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg+ZTspe3ZhciByPXRoaXMud3JpdGVCdWZmZXJbZV07aWYoZSsrLHRoaXMuX3hvZmZTZW50VG9DYXRjaFVwJiZ0aGlzLndyaXRlQnVmZmVyLmxlbmd0aD09PWUmJih0aGlzLl9jb3JlU2VydmljZS50cmlnZ2VyRGF0YUV2ZW50KGMuQzAuREMxKSx0aGlzLl94b2ZmU2VudFRvQ2F0Y2hVcD0hMSksdGhpcy5faW5wdXRIYW5kbGVyLnBhcnNlKHIpLHRoaXMucmVmcmVzaCh0aGlzLl9kaXJ0eVJvd1NlcnZpY2Uuc3RhcnQsdGhpcy5fZGlydHlSb3dTZXJ2aWNlLmVuZCksRGF0ZS5ub3coKS1pPj0xMilicmVha310aGlzLndyaXRlQnVmZmVyLmxlbmd0aD5lPyhlPjUwJiYodGhpcy53cml0ZUJ1ZmZlcj10aGlzLndyaXRlQnVmZmVyLnNsaWNlKGUpLGU9MCksc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0Ll9pbm5lcldyaXRlKGUpfSwwKSk6KHRoaXMuX3dyaXRlSW5Qcm9ncmVzcz0hMSx0aGlzLndyaXRlQnVmZmVyPVtdKX0sdC5wcm90b3R5cGUud3JpdGVsbj1mdW5jdGlvbihlKXt0aGlzLndyaXRlKGUrXCJcXHJcXG5cIil9LHQucHJvdG90eXBlLnBhc3RlPWZ1bmN0aW9uKGUpe2EucGFzdGUoZSx0aGlzLnRleHRhcmVhLHRoaXMuYnJhY2tldGVkUGFzdGVNb2RlLHRoaXMuX2NvcmVTZXJ2aWNlKX0sdC5wcm90b3R5cGUuYXR0YWNoQ3VzdG9tS2V5RXZlbnRIYW5kbGVyPWZ1bmN0aW9uKGUpe3RoaXMuX2N1c3RvbUtleUV2ZW50SGFuZGxlcj1lfSx0LnByb3RvdHlwZS5hZGRFc2NIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2lucHV0SGFuZGxlci5hZGRFc2NIYW5kbGVyKGUsdCl9LHQucHJvdG90eXBlLmFkZERjc0hhbmRsZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5faW5wdXRIYW5kbGVyLmFkZERjc0hhbmRsZXIoZSx0KX0sdC5wcm90b3R5cGUuYWRkQ3NpSGFuZGxlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9pbnB1dEhhbmRsZXIuYWRkQ3NpSGFuZGxlcihlLHQpfSx0LnByb3RvdHlwZS5hZGRPc2NIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2lucHV0SGFuZGxlci5hZGRPc2NIYW5kbGVyKGUsdCl9LHQucHJvdG90eXBlLnJlZ2lzdGVyTGlua01hdGNoZXI9ZnVuY3Rpb24oZSx0LGkpe3ZhciByPXRoaXMubGlua2lmaWVyLnJlZ2lzdGVyTGlua01hdGNoZXIoZSx0LGkpO3JldHVybiB0aGlzLnJlZnJlc2goMCx0aGlzLnJvd3MtMSkscn0sdC5wcm90b3R5cGUuZGVyZWdpc3RlckxpbmtNYXRjaGVyPWZ1bmN0aW9uKGUpe3RoaXMubGlua2lmaWVyLmRlcmVnaXN0ZXJMaW5rTWF0Y2hlcihlKSYmdGhpcy5yZWZyZXNoKDAsdGhpcy5yb3dzLTEpfSx0LnByb3RvdHlwZS5yZWdpc3RlckNoYXJhY3RlckpvaW5lcj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9yZW5kZXJTZXJ2aWNlLnJlZ2lzdGVyQ2hhcmFjdGVySm9pbmVyKGUpO3JldHVybiB0aGlzLnJlZnJlc2goMCx0aGlzLnJvd3MtMSksdH0sdC5wcm90b3R5cGUuZGVyZWdpc3RlckNoYXJhY3RlckpvaW5lcj1mdW5jdGlvbihlKXt0aGlzLl9yZW5kZXJTZXJ2aWNlLmRlcmVnaXN0ZXJDaGFyYWN0ZXJKb2luZXIoZSkmJnRoaXMucmVmcmVzaCgwLHRoaXMucm93cy0xKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLFwibWFya2Vyc1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5idWZmZXIubWFya2Vyc30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5hZGRNYXJrZXI9ZnVuY3Rpb24oZSl7aWYodGhpcy5idWZmZXI9PT10aGlzLmJ1ZmZlcnMubm9ybWFsKXJldHVybiB0aGlzLmJ1ZmZlci5hZGRNYXJrZXIodGhpcy5idWZmZXIueWJhc2UrdGhpcy5idWZmZXIueStlKX0sdC5wcm90b3R5cGUuaGFzU2VsZWN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlJiZ0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLmhhc1NlbGVjdGlvbn0sdC5wcm90b3R5cGUuc2VsZWN0PWZ1bmN0aW9uKGUsdCxpKXt0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnNldFNlbGVjdGlvbihlLHQsaSl9LHQucHJvdG90eXBlLmdldFNlbGVjdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlP3RoaXMuX3NlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uVGV4dDpcIlwifSx0LnByb3RvdHlwZS5nZXRTZWxlY3Rpb25Qb3NpdGlvbj1mdW5jdGlvbigpe2lmKHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuaGFzU2VsZWN0aW9uKXJldHVybntzdGFydENvbHVtbjp0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvblN0YXJ0WzBdLHN0YXJ0Um93OnRoaXMuX3NlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uU3RhcnRbMV0sZW5kQ29sdW1uOnRoaXMuX3NlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uRW5kWzBdLGVuZFJvdzp0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbkVuZFsxXX19LHQucHJvdG90eXBlLmNsZWFyU2VsZWN0aW9uPWZ1bmN0aW9uKCl7dGhpcy5fc2VsZWN0aW9uU2VydmljZSYmdGhpcy5fc2VsZWN0aW9uU2VydmljZS5jbGVhclNlbGVjdGlvbigpfSx0LnByb3RvdHlwZS5zZWxlY3RBbGw9ZnVuY3Rpb24oKXt0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlJiZ0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdEFsbCgpfSx0LnByb3RvdHlwZS5zZWxlY3RMaW5lcz1mdW5jdGlvbihlLHQpe3RoaXMuX3NlbGVjdGlvblNlcnZpY2UmJnRoaXMuX3NlbGVjdGlvblNlcnZpY2Uuc2VsZWN0TGluZXMoZSx0KX0sdC5wcm90b3R5cGUuX2tleURvd249ZnVuY3Rpb24oZSl7aWYodGhpcy5fa2V5RG93bkhhbmRsZWQ9ITEsdGhpcy5fY3VzdG9tS2V5RXZlbnRIYW5kbGVyJiYhMT09PXRoaXMuX2N1c3RvbUtleUV2ZW50SGFuZGxlcihlKSlyZXR1cm4hMTtpZighdGhpcy5fY29tcG9zaXRpb25IZWxwZXIua2V5ZG93bihlKSlyZXR1cm4gdGhpcy5idWZmZXIueWJhc2UhPT10aGlzLmJ1ZmZlci55ZGlzcCYmdGhpcy5zY3JvbGxUb0JvdHRvbSgpLCExO3ZhciB0PWIuZXZhbHVhdGVLZXlib2FyZEV2ZW50KGUsdGhpcy5fY29yZVNlcnZpY2UuZGVjUHJpdmF0ZU1vZGVzLmFwcGxpY2F0aW9uQ3Vyc29yS2V5cyx0aGlzLmJyb3dzZXIuaXNNYWMsdGhpcy5vcHRpb25zLm1hY09wdGlvbklzTWV0YSk7aWYodGhpcy51cGRhdGVDdXJzb3JTdHlsZShlKSwzPT09dC50eXBlfHwyPT09dC50eXBlKXt2YXIgaT10aGlzLnJvd3MtMTtyZXR1cm4gdGhpcy5zY3JvbGxMaW5lcygyPT09dC50eXBlPy1pOmkpLHRoaXMuY2FuY2VsKGUsITApfXJldHVybiAxPT09dC50eXBlJiZ0aGlzLnNlbGVjdEFsbCgpLCEhdGhpcy5faXNUaGlyZExldmVsU2hpZnQodGhpcy5icm93c2VyLGUpfHwodC5jYW5jZWwmJnRoaXMuY2FuY2VsKGUsITApLCF0LmtleXx8KHQua2V5IT09Yy5DMC5FVFgmJnQua2V5IT09Yy5DMC5DUnx8KHRoaXMudGV4dGFyZWEudmFsdWU9XCJcIiksdGhpcy5fb25LZXkuZmlyZSh7a2V5OnQua2V5LGRvbUV2ZW50OmV9KSx0aGlzLnNob3dDdXJzb3IoKSx0aGlzLl9jb3JlU2VydmljZS50cmlnZ2VyRGF0YUV2ZW50KHQua2V5LCEwKSx0aGlzLm9wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuc2NyZWVuUmVhZGVyTW9kZT92b2lkKHRoaXMuX2tleURvd25IYW5kbGVkPSEwKTp0aGlzLmNhbmNlbChlLCEwKSkpfSx0LnByb3RvdHlwZS5faXNUaGlyZExldmVsU2hpZnQ9ZnVuY3Rpb24oZSx0KXt2YXIgaT1lLmlzTWFjJiYhdGhpcy5vcHRpb25zLm1hY09wdGlvbklzTWV0YSYmdC5hbHRLZXkmJiF0LmN0cmxLZXkmJiF0Lm1ldGFLZXl8fGUuaXNXaW5kb3dzJiZ0LmFsdEtleSYmdC5jdHJsS2V5JiYhdC5tZXRhS2V5O3JldHVyblwia2V5cHJlc3NcIj09PXQudHlwZT9pOmkmJighdC5rZXlDb2RlfHx0LmtleUNvZGU+NDcpfSx0LnByb3RvdHlwZS5zZXRnTGV2ZWw9ZnVuY3Rpb24oZSl7dGhpcy5nbGV2ZWw9ZSx0aGlzLmNoYXJzZXQ9dGhpcy5jaGFyc2V0c1tlXX0sdC5wcm90b3R5cGUuc2V0Z0NoYXJzZXQ9ZnVuY3Rpb24oZSx0KXt0aGlzLmNoYXJzZXRzW2VdPXQsdGhpcy5nbGV2ZWw9PT1lJiYodGhpcy5jaGFyc2V0PXQpfSx0LnByb3RvdHlwZS5fa2V5VXA9ZnVuY3Rpb24oZSl7dGhpcy5fY3VzdG9tS2V5RXZlbnRIYW5kbGVyJiYhMT09PXRoaXMuX2N1c3RvbUtleUV2ZW50SGFuZGxlcihlKXx8KGZ1bmN0aW9uKGUpe3JldHVybiAxNj09PWUua2V5Q29kZXx8MTc9PT1lLmtleUNvZGV8fDE4PT09ZS5rZXlDb2RlfShlKXx8dGhpcy5mb2N1cygpLHRoaXMudXBkYXRlQ3Vyc29yU3R5bGUoZSkpfSx0LnByb3RvdHlwZS5fa2V5UHJlc3M9ZnVuY3Rpb24oZSl7dmFyIHQ7aWYodGhpcy5fa2V5RG93bkhhbmRsZWQpcmV0dXJuITE7aWYodGhpcy5fY3VzdG9tS2V5RXZlbnRIYW5kbGVyJiYhMT09PXRoaXMuX2N1c3RvbUtleUV2ZW50SGFuZGxlcihlKSlyZXR1cm4hMTtpZih0aGlzLmNhbmNlbChlKSxlLmNoYXJDb2RlKXQ9ZS5jaGFyQ29kZTtlbHNlIGlmKG51bGw9PT1lLndoaWNofHx2b2lkIDA9PT1lLndoaWNoKXQ9ZS5rZXlDb2RlO2Vsc2V7aWYoMD09PWUud2hpY2h8fDA9PT1lLmNoYXJDb2RlKXJldHVybiExO3Q9ZS53aGljaH1yZXR1cm4hKCF0fHwoZS5hbHRLZXl8fGUuY3RybEtleXx8ZS5tZXRhS2V5KSYmIXRoaXMuX2lzVGhpcmRMZXZlbFNoaWZ0KHRoaXMuYnJvd3NlcixlKSkmJih0PVN0cmluZy5mcm9tQ2hhckNvZGUodCksdGhpcy5fb25LZXkuZmlyZSh7a2V5OnQsZG9tRXZlbnQ6ZX0pLHRoaXMuc2hvd0N1cnNvcigpLHRoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQodCwhMCksITApfSx0LnByb3RvdHlwZS5iZWxsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9zb3VuZEJlbGwoKSYmdGhpcy5fc291bmRTZXJ2aWNlLnBsYXlCZWxsU291bmQoKSx0aGlzLl92aXN1YWxCZWxsKCkmJih0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChcInZpc3VhbC1iZWxsLWFjdGl2ZVwiKSxjbGVhclRpbWVvdXQodGhpcy5fdmlzdWFsQmVsbFRpbWVyKSx0aGlzLl92aXN1YWxCZWxsVGltZXI9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInZpc3VhbC1iZWxsLWFjdGl2ZVwiKX0sMjAwKSl9LHQucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlLHQpe2lzTmFOKGUpfHxpc05hTih0KXx8KGUhPT10aGlzLmNvbHN8fHQhPT10aGlzLnJvd3M/KGU8VC5NSU5JTVVNX0NPTFMmJihlPVQuTUlOSU1VTV9DT0xTKSx0PFQuTUlOSU1VTV9ST1dTJiYodD1ULk1JTklNVU1fUk9XUyksdGhpcy5idWZmZXJzLnJlc2l6ZShlLHQpLHRoaXMuX2J1ZmZlclNlcnZpY2UucmVzaXplKGUsdCksdGhpcy5idWZmZXJzLnNldHVwVGFiU3RvcHModGhpcy5jb2xzKSx0aGlzLl9jaGFyU2l6ZVNlcnZpY2UmJnRoaXMuX2NoYXJTaXplU2VydmljZS5tZWFzdXJlKCksdGhpcy5yZWZyZXNoKDAsdGhpcy5yb3dzLTEpLHRoaXMuX29uUmVzaXplLmZpcmUoe2NvbHM6ZSxyb3dzOnR9KSk6dGhpcy5fY2hhclNpemVTZXJ2aWNlJiYhdGhpcy5fY2hhclNpemVTZXJ2aWNlLmhhc1ZhbGlkU2l6ZSYmdGhpcy5fY2hhclNpemVTZXJ2aWNlLm1lYXN1cmUoKSl9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMuYnVmZmVyLnliYXNlfHwwIT09dGhpcy5idWZmZXIueSl7dGhpcy5idWZmZXIubGluZXMuc2V0KDAsdGhpcy5idWZmZXIubGluZXMuZ2V0KHRoaXMuYnVmZmVyLnliYXNlK3RoaXMuYnVmZmVyLnkpKSx0aGlzLmJ1ZmZlci5saW5lcy5sZW5ndGg9MSx0aGlzLmJ1ZmZlci55ZGlzcD0wLHRoaXMuYnVmZmVyLnliYXNlPTAsdGhpcy5idWZmZXIueT0wO2Zvcih2YXIgZT0xO2U8dGhpcy5yb3dzO2UrKyl0aGlzLmJ1ZmZlci5saW5lcy5wdXNoKHRoaXMuYnVmZmVyLmdldEJsYW5rTGluZShTLkRFRkFVTFRfQVRUUl9EQVRBKSk7dGhpcy5yZWZyZXNoKDAsdGhpcy5yb3dzLTEpLHRoaXMuX29uU2Nyb2xsLmZpcmUodGhpcy5idWZmZXIueWRpc3ApfX0sdC5wcm90b3R5cGUuaXM9ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT0odGhpcy5vcHRpb25zLnRlcm1OYW1lK1wiXCIpLmluZGV4T2YoZSl9LHQucHJvdG90eXBlLmhhbmRsZVRpdGxlPWZ1bmN0aW9uKGUpe3RoaXMuX29uVGl0bGVDaGFuZ2UuZmlyZShlKX0sdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMucm93cz10aGlzLnJvd3MsdGhpcy5vcHRpb25zLmNvbHM9dGhpcy5jb2xzO3ZhciBlPXRoaXMuX2N1c3RvbUtleUV2ZW50SGFuZGxlcix0PXRoaXMuX2lucHV0SGFuZGxlcixpPXRoaXMuY3Vyc29yU3RhdGUscj10aGlzLndyaXRlQnVmZmVyLG49dGhpcy53cml0ZUJ1ZmZlclV0Zjgscz10aGlzLl93cml0ZUluUHJvZ3Jlc3Msbz10aGlzLl94b2ZmU2VudFRvQ2F0Y2hVcCxhPXRoaXMuX3VzZXJTY3JvbGxpbmc7dGhpcy5fc2V0dXAoKSx0aGlzLl9idWZmZXJTZXJ2aWNlLnJlc2V0KCksdGhpcy5fY29yZVNlcnZpY2UucmVzZXQoKSx0aGlzLl9jb3JlTW91c2VTZXJ2aWNlLnJlc2V0KCksdGhpcy5fc2VsZWN0aW9uU2VydmljZSYmdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZXNldCgpLHRoaXMuX2N1c3RvbUtleUV2ZW50SGFuZGxlcj1lLHRoaXMuX2lucHV0SGFuZGxlcj10LHRoaXMuY3Vyc29yU3RhdGU9aSx0aGlzLndyaXRlQnVmZmVyPXIsdGhpcy53cml0ZUJ1ZmZlclV0Zjg9bix0aGlzLl93cml0ZUluUHJvZ3Jlc3M9cyx0aGlzLl94b2ZmU2VudFRvQ2F0Y2hVcD1vLHRoaXMuX3VzZXJTY3JvbGxpbmc9YSx0aGlzLnJlZnJlc2goMCx0aGlzLnJvd3MtMSksdGhpcy52aWV3cG9ydCYmdGhpcy52aWV3cG9ydC5zeW5jU2Nyb2xsQXJlYSgpfSx0LnByb3RvdHlwZS5jYW5jZWw9ZnVuY3Rpb24oZSx0KXtpZih0aGlzLm9wdGlvbnMuY2FuY2VsRXZlbnRzfHx0KXJldHVybiBlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSwhMX0sdC5wcm90b3R5cGUuX3Zpc3VhbEJlbGw9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sdC5wcm90b3R5cGUuX3NvdW5kQmVsbD1mdW5jdGlvbigpe3JldHVyblwic291bmRcIj09PXRoaXMub3B0aW9ucy5iZWxsU3R5bGV9LHR9KFIuRGlzcG9zYWJsZSk7dC5UZXJtaW5hbD1qfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2RlY29yYXRlfHxmdW5jdGlvbihlLHQsaSxyKXt2YXIgbixzPWFyZ3VtZW50cy5sZW5ndGgsbz1zPDM/dDpudWxsPT09cj9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxpKTpyO2lmKFwib2JqZWN0XCI9PXR5cGVvZiBSZWZsZWN0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKW89UmVmbGVjdC5kZWNvcmF0ZShlLHQsaSxyKTtlbHNlIGZvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTA7YS0tKShuPWVbYV0pJiYobz0oczwzP24obyk6cz4zP24odCxpLG8pOm4odCxpKSl8fG8pO3JldHVybiBzPjMmJm8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGksbyksb30sbj10aGlzJiZ0aGlzLl9fcGFyYW18fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGkscil7dChpLHIsZSl9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1pKDUpLG89aSgwKSxhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsaSxyLG4scyl7dGhpcy5fdGV4dGFyZWE9ZSx0aGlzLl9jb21wb3NpdGlvblZpZXc9dCx0aGlzLl9idWZmZXJTZXJ2aWNlPWksdGhpcy5fb3B0aW9uc1NlcnZpY2U9cix0aGlzLl9jaGFyU2l6ZVNlcnZpY2U9bix0aGlzLl9jb3JlU2VydmljZT1zLHRoaXMuX2lzQ29tcG9zaW5nPSExLHRoaXMuX2lzU2VuZGluZ0NvbXBvc2l0aW9uPSExLHRoaXMuX2NvbXBvc2l0aW9uUG9zaXRpb249e3N0YXJ0OjAsZW5kOjB9fXJldHVybiBlLnByb3RvdHlwZS5jb21wb3NpdGlvbnN0YXJ0PWZ1bmN0aW9uKCl7dGhpcy5faXNDb21wb3Npbmc9ITAsdGhpcy5fY29tcG9zaXRpb25Qb3NpdGlvbi5zdGFydD10aGlzLl90ZXh0YXJlYS52YWx1ZS5sZW5ndGgsdGhpcy5fY29tcG9zaXRpb25WaWV3LnRleHRDb250ZW50PVwiXCIsdGhpcy5fY29tcG9zaXRpb25WaWV3LmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIil9LGUucHJvdG90eXBlLmNvbXBvc2l0aW9udXBkYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5fY29tcG9zaXRpb25WaWV3LnRleHRDb250ZW50PWUuZGF0YSx0aGlzLnVwZGF0ZUNvbXBvc2l0aW9uRWxlbWVudHMoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fY29tcG9zaXRpb25Qb3NpdGlvbi5lbmQ9dC5fdGV4dGFyZWEudmFsdWUubGVuZ3RofSwwKX0sZS5wcm90b3R5cGUuY29tcG9zaXRpb25lbmQ9ZnVuY3Rpb24oKXt0aGlzLl9maW5hbGl6ZUNvbXBvc2l0aW9uKCEwKX0sZS5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihlKXtpZih0aGlzLl9pc0NvbXBvc2luZ3x8dGhpcy5faXNTZW5kaW5nQ29tcG9zaXRpb24pe2lmKDIyOT09PWUua2V5Q29kZSlyZXR1cm4hMTtpZigxNj09PWUua2V5Q29kZXx8MTc9PT1lLmtleUNvZGV8fDE4PT09ZS5rZXlDb2RlKXJldHVybiExO3RoaXMuX2ZpbmFsaXplQ29tcG9zaXRpb24oITEpfXJldHVybiAyMjkhPT1lLmtleUNvZGV8fCh0aGlzLl9oYW5kbGVBbnlUZXh0YXJlYUNoYW5nZXMoKSwhMSl9LGUucHJvdG90eXBlLl9maW5hbGl6ZUNvbXBvc2l0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYodGhpcy5fY29tcG9zaXRpb25WaWV3LmNsYXNzTGlzdC5yZW1vdmUoXCJhY3RpdmVcIiksdGhpcy5faXNDb21wb3Npbmc9ITEsdGhpcy5fY2xlYXJUZXh0YXJlYVBvc2l0aW9uKCksZSl7dmFyIGk9e3N0YXJ0OnRoaXMuX2NvbXBvc2l0aW9uUG9zaXRpb24uc3RhcnQsZW5kOnRoaXMuX2NvbXBvc2l0aW9uUG9zaXRpb24uZW5kfTt0aGlzLl9pc1NlbmRpbmdDb21wb3NpdGlvbj0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodC5faXNTZW5kaW5nQ29tcG9zaXRpb24pe3QuX2lzU2VuZGluZ0NvbXBvc2l0aW9uPSExO3ZhciBlPXZvaWQgMDtlPXQuX2lzQ29tcG9zaW5nP3QuX3RleHRhcmVhLnZhbHVlLnN1YnN0cmluZyhpLnN0YXJ0LGkuZW5kKTp0Ll90ZXh0YXJlYS52YWx1ZS5zdWJzdHJpbmcoaS5zdGFydCksdC5fY29yZVNlcnZpY2UudHJpZ2dlckRhdGFFdmVudChlLCEwKX19LDApfWVsc2V7dGhpcy5faXNTZW5kaW5nQ29tcG9zaXRpb249ITE7dmFyIHI9dGhpcy5fdGV4dGFyZWEudmFsdWUuc3Vic3RyaW5nKHRoaXMuX2NvbXBvc2l0aW9uUG9zaXRpb24uc3RhcnQsdGhpcy5fY29tcG9zaXRpb25Qb3NpdGlvbi5lbmQpO3RoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQociwhMCl9fSxlLnByb3RvdHlwZS5faGFuZGxlQW55VGV4dGFyZWFDaGFuZ2VzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PXRoaXMuX3RleHRhcmVhLnZhbHVlO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZighZS5faXNDb21wb3Npbmcpe3ZhciBpPWUuX3RleHRhcmVhLnZhbHVlLnJlcGxhY2UodCxcIlwiKTtpLmxlbmd0aD4wJiZlLl9jb3JlU2VydmljZS50cmlnZ2VyRGF0YUV2ZW50KGksITApfX0sMCl9LGUucHJvdG90eXBlLnVwZGF0ZUNvbXBvc2l0aW9uRWxlbWVudHM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZih0aGlzLl9pc0NvbXBvc2luZyl7aWYodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIuaXNDdXJzb3JJblZpZXdwb3J0KXt2YXIgaT1NYXRoLmNlaWwodGhpcy5fY2hhclNpemVTZXJ2aWNlLmhlaWdodCp0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmxpbmVIZWlnaHQpLHI9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueSppLG49dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCp0aGlzLl9jaGFyU2l6ZVNlcnZpY2Uud2lkdGg7dGhpcy5fY29tcG9zaXRpb25WaWV3LnN0eWxlLmxlZnQ9bitcInB4XCIsdGhpcy5fY29tcG9zaXRpb25WaWV3LnN0eWxlLnRvcD1yK1wicHhcIix0aGlzLl9jb21wb3NpdGlvblZpZXcuc3R5bGUuaGVpZ2h0PWkrXCJweFwiLHRoaXMuX2NvbXBvc2l0aW9uVmlldy5zdHlsZS5saW5lSGVpZ2h0PWkrXCJweFwiLHRoaXMuX2NvbXBvc2l0aW9uVmlldy5zdHlsZS5mb250RmFtaWx5PXRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuZm9udEZhbWlseSx0aGlzLl9jb21wb3NpdGlvblZpZXcuc3R5bGUuZm9udFNpemU9dGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5mb250U2l6ZStcInB4XCI7dmFyIHM9dGhpcy5fY29tcG9zaXRpb25WaWV3LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMuX3RleHRhcmVhLnN0eWxlLmxlZnQ9bitcInB4XCIsdGhpcy5fdGV4dGFyZWEuc3R5bGUudG9wPXIrXCJweFwiLHRoaXMuX3RleHRhcmVhLnN0eWxlLndpZHRoPXMud2lkdGgrXCJweFwiLHRoaXMuX3RleHRhcmVhLnN0eWxlLmhlaWdodD1zLmhlaWdodCtcInB4XCIsdGhpcy5fdGV4dGFyZWEuc3R5bGUubGluZUhlaWdodD1zLmhlaWdodCtcInB4XCJ9ZXx8c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0LnVwZGF0ZUNvbXBvc2l0aW9uRWxlbWVudHMoITApfSwwKX19LGUucHJvdG90eXBlLl9jbGVhclRleHRhcmVhUG9zaXRpb249ZnVuY3Rpb24oKXt0aGlzLl90ZXh0YXJlYS5zdHlsZS5sZWZ0PVwiXCIsdGhpcy5fdGV4dGFyZWEuc3R5bGUudG9wPVwiXCJ9LGU9cihbbigyLG8uSUJ1ZmZlclNlcnZpY2UpLG4oMyxvLklPcHRpb25zU2VydmljZSksbig0LHMuSUNoYXJTaXplU2VydmljZSksbig1LG8uSUNvcmVTZXJ2aWNlKV0sZSl9KCk7dC5Db21wb3NpdGlvbkhlbHBlcj1hfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ocj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYoZVtpXT10W2ldKX0pKGUsdCl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KTooaS5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IGkpfSkscz10aGlzJiZ0aGlzLl9fZGVjb3JhdGV8fGZ1bmN0aW9uKGUsdCxpLHIpe3ZhciBuLHM9YXJndW1lbnRzLmxlbmd0aCxvPXM8Mz90Om51bGw9PT1yP3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpOnI7aWYoXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpbz1SZWZsZWN0LmRlY29yYXRlKGUsdCxpLHIpO2Vsc2UgZm9yKHZhciBhPWUubGVuZ3RoLTE7YT49MDthLS0pKG49ZVthXSkmJihvPShzPDM/bihvKTpzPjM/bih0LGksbyk6bih0LGkpKXx8byk7cmV0dXJuIHM+MyYmbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxvKSxvfSxvPXRoaXMmJnRoaXMuX19wYXJhbXx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oaSxyKXt0KGkscixlKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBhPWkoMiksYz1pKDcpLGw9aSg1KSxoPWkoMCksdT0xNSxmPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxpLHIsbixzLG8pe3ZhciBhPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gYS5fc2Nyb2xsTGluZXM9dCxhLl92aWV3cG9ydEVsZW1lbnQ9aSxhLl9zY3JvbGxBcmVhPXIsYS5fYnVmZmVyU2VydmljZT1uLGEuX2NoYXJTaXplU2VydmljZT1zLGEuX3JlbmRlclNlcnZpY2U9byxhLnNjcm9sbEJhcldpZHRoPTAsYS5fY3VycmVudFJvd0hlaWdodD0wLGEuX2xhc3RSZWNvcmRlZEJ1ZmZlckxlbmd0aD0wLGEuX2xhc3RSZWNvcmRlZFZpZXdwb3J0SGVpZ2h0PTAsYS5fbGFzdFJlY29yZGVkQnVmZmVySGVpZ2h0PTAsYS5fbGFzdFRvdWNoWT0wLGEuX2xhc3RTY3JvbGxUb3A9MCxhLl93aGVlbFBhcnRpYWxTY3JvbGw9MCxhLl9yZWZyZXNoQW5pbWF0aW9uRnJhbWU9bnVsbCxhLl9pZ25vcmVOZXh0U2Nyb2xsRXZlbnQ9ITEsYS5zY3JvbGxCYXJXaWR0aD1hLl92aWV3cG9ydEVsZW1lbnQub2Zmc2V0V2lkdGgtYS5fc2Nyb2xsQXJlYS5vZmZzZXRXaWR0aHx8dSxhLnJlZ2lzdGVyKGMuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKGEuX3ZpZXdwb3J0RWxlbWVudCxcInNjcm9sbFwiLGEuX29uU2Nyb2xsLmJpbmQoYSkpKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGEuc3luY1Njcm9sbEFyZWEoKX0sMCksYX1yZXR1cm4gbih0LGUpLHQucHJvdG90eXBlLm9uVGhlbWVDaGFuZ2U9ZnVuY3Rpb24oZSl7dGhpcy5fdmlld3BvcnRFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvcj1lLmJhY2tncm91bmQuY3NzfSx0LnByb3RvdHlwZS5fcmVmcmVzaD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7bnVsbD09PXRoaXMuX3JlZnJlc2hBbmltYXRpb25GcmFtZSYmKHRoaXMuX3JlZnJlc2hBbmltYXRpb25GcmFtZT1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXR1cm4gZS5faW5uZXJSZWZyZXNoKCl9KSl9LHQucHJvdG90eXBlLl9pbm5lclJlZnJlc2g9ZnVuY3Rpb24oKXtpZih0aGlzLl9jaGFyU2l6ZVNlcnZpY2UuaGVpZ2h0PjApe3RoaXMuX2N1cnJlbnRSb3dIZWlnaHQ9dGhpcy5fcmVuZGVyU2VydmljZS5kaW1lbnNpb25zLnNjYWxlZENlbGxIZWlnaHQvd2luZG93LmRldmljZVBpeGVsUmF0aW8sdGhpcy5fbGFzdFJlY29yZGVkVmlld3BvcnRIZWlnaHQ9dGhpcy5fdmlld3BvcnRFbGVtZW50Lm9mZnNldEhlaWdodDt2YXIgZT1NYXRoLnJvdW5kKHRoaXMuX2N1cnJlbnRSb3dIZWlnaHQqdGhpcy5fbGFzdFJlY29yZGVkQnVmZmVyTGVuZ3RoKSsodGhpcy5fbGFzdFJlY29yZGVkVmlld3BvcnRIZWlnaHQtdGhpcy5fcmVuZGVyU2VydmljZS5kaW1lbnNpb25zLmNhbnZhc0hlaWdodCk7dGhpcy5fbGFzdFJlY29yZGVkQnVmZmVySGVpZ2h0IT09ZSYmKHRoaXMuX2xhc3RSZWNvcmRlZEJ1ZmZlckhlaWdodD1lLHRoaXMuX3Njcm9sbEFyZWEuc3R5bGUuaGVpZ2h0PXRoaXMuX2xhc3RSZWNvcmRlZEJ1ZmZlckhlaWdodCtcInB4XCIpfXZhciB0PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnlkaXNwKnRoaXMuX2N1cnJlbnRSb3dIZWlnaHQ7dGhpcy5fdmlld3BvcnRFbGVtZW50LnNjcm9sbFRvcCE9PXQmJih0aGlzLl9pZ25vcmVOZXh0U2Nyb2xsRXZlbnQ9ITAsdGhpcy5fdmlld3BvcnRFbGVtZW50LnNjcm9sbFRvcD10KSx0aGlzLl9yZWZyZXNoQW5pbWF0aW9uRnJhbWU9bnVsbH0sdC5wcm90b3R5cGUuc3luY1Njcm9sbEFyZWE9ZnVuY3Rpb24oKXtpZih0aGlzLl9sYXN0UmVjb3JkZWRCdWZmZXJMZW5ndGghPT10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5saW5lcy5sZW5ndGgpcmV0dXJuIHRoaXMuX2xhc3RSZWNvcmRlZEJ1ZmZlckxlbmd0aD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5saW5lcy5sZW5ndGgsdm9pZCB0aGlzLl9yZWZyZXNoKCk7aWYodGhpcy5fbGFzdFJlY29yZGVkVmlld3BvcnRIZWlnaHQ9PT10aGlzLl9yZW5kZXJTZXJ2aWNlLmRpbWVuc2lvbnMuY2FudmFzSGVpZ2h0KXt2YXIgZT10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55ZGlzcCp0aGlzLl9jdXJyZW50Um93SGVpZ2h0O3RoaXMuX2xhc3RTY3JvbGxUb3A9PT1lJiZ0aGlzLl9sYXN0U2Nyb2xsVG9wPT09dGhpcy5fdmlld3BvcnRFbGVtZW50LnNjcm9sbFRvcCYmdGhpcy5fcmVuZGVyU2VydmljZS5kaW1lbnNpb25zLnNjYWxlZENlbGxIZWlnaHQvd2luZG93LmRldmljZVBpeGVsUmF0aW89PT10aGlzLl9jdXJyZW50Um93SGVpZ2h0fHx0aGlzLl9yZWZyZXNoKCl9ZWxzZSB0aGlzLl9yZWZyZXNoKCl9LHQucHJvdG90eXBlLl9vblNjcm9sbD1mdW5jdGlvbihlKXtpZih0aGlzLl9sYXN0U2Nyb2xsVG9wPXRoaXMuX3ZpZXdwb3J0RWxlbWVudC5zY3JvbGxUb3AsdGhpcy5fdmlld3BvcnRFbGVtZW50Lm9mZnNldFBhcmVudClpZih0aGlzLl9pZ25vcmVOZXh0U2Nyb2xsRXZlbnQpdGhpcy5faWdub3JlTmV4dFNjcm9sbEV2ZW50PSExO2Vsc2V7dmFyIHQ9TWF0aC5yb3VuZCh0aGlzLl9sYXN0U2Nyb2xsVG9wL3RoaXMuX2N1cnJlbnRSb3dIZWlnaHQpLXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnlkaXNwO3RoaXMuX3Njcm9sbExpbmVzKHQsITApfX0sdC5wcm90b3R5cGUuX2J1YmJsZVNjcm9sbD1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuX3ZpZXdwb3J0RWxlbWVudC5zY3JvbGxUb3ArdGhpcy5fbGFzdFJlY29yZGVkVmlld3BvcnRIZWlnaHQ7cmV0dXJuISh0PDAmJjAhPT10aGlzLl92aWV3cG9ydEVsZW1lbnQuc2Nyb2xsVG9wfHx0PjAmJmk8dGhpcy5fbGFzdFJlY29yZGVkQnVmZmVySGVpZ2h0KXx8KGUuY2FuY2VsYWJsZSYmZS5wcmV2ZW50RGVmYXVsdCgpLCExKX0sdC5wcm90b3R5cGUub25XaGVlbD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9nZXRQaXhlbHNTY3JvbGxlZChlKTtyZXR1cm4gMCE9PXQmJih0aGlzLl92aWV3cG9ydEVsZW1lbnQuc2Nyb2xsVG9wKz10LHRoaXMuX2J1YmJsZVNjcm9sbChlLHQpKX0sdC5wcm90b3R5cGUuX2dldFBpeGVsc1Njcm9sbGVkPWZ1bmN0aW9uKGUpe2lmKDA9PT1lLmRlbHRhWSlyZXR1cm4gMDt2YXIgdD1lLmRlbHRhWTtyZXR1cm4gZS5kZWx0YU1vZGU9PT1XaGVlbEV2ZW50LkRPTV9ERUxUQV9MSU5FP3QqPXRoaXMuX2N1cnJlbnRSb3dIZWlnaHQ6ZS5kZWx0YU1vZGU9PT1XaGVlbEV2ZW50LkRPTV9ERUxUQV9QQUdFJiYodCo9dGhpcy5fY3VycmVudFJvd0hlaWdodCp0aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MpLHR9LHQucHJvdG90eXBlLmdldExpbmVzU2Nyb2xsZWQ9ZnVuY3Rpb24oZSl7aWYoMD09PWUuZGVsdGFZKXJldHVybiAwO3ZhciB0PWUuZGVsdGFZO3JldHVybiBlLmRlbHRhTW9kZT09PVdoZWVsRXZlbnQuRE9NX0RFTFRBX1BJWEVMPyh0Lz10aGlzLl9jdXJyZW50Um93SGVpZ2h0KzAsdGhpcy5fd2hlZWxQYXJ0aWFsU2Nyb2xsKz10LHQ9TWF0aC5mbG9vcihNYXRoLmFicyh0aGlzLl93aGVlbFBhcnRpYWxTY3JvbGwpKSoodGhpcy5fd2hlZWxQYXJ0aWFsU2Nyb2xsPjA/MTotMSksdGhpcy5fd2hlZWxQYXJ0aWFsU2Nyb2xsJT0xKTplLmRlbHRhTW9kZT09PVdoZWVsRXZlbnQuRE9NX0RFTFRBX1BBR0UmJih0Kj10aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MpLHR9LHQucHJvdG90eXBlLm9uVG91Y2hTdGFydD1mdW5jdGlvbihlKXt0aGlzLl9sYXN0VG91Y2hZPWUudG91Y2hlc1swXS5wYWdlWX0sdC5wcm90b3R5cGUub25Ub3VjaE1vdmU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fbGFzdFRvdWNoWS1lLnRvdWNoZXNbMF0ucGFnZVk7cmV0dXJuIHRoaXMuX2xhc3RUb3VjaFk9ZS50b3VjaGVzWzBdLnBhZ2VZLDAhPT10JiYodGhpcy5fdmlld3BvcnRFbGVtZW50LnNjcm9sbFRvcCs9dCx0aGlzLl9idWJibGVTY3JvbGwoZSx0KSl9LHQ9cyhbbygzLGguSUJ1ZmZlclNlcnZpY2UpLG8oNCxsLklDaGFyU2l6ZVNlcnZpY2UpLG8oNSxsLklSZW5kZXJTZXJ2aWNlKV0sdCl9KGEuRGlzcG9zYWJsZSk7dC5WaWV3cG9ydD1mfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZS5yZXBsYWNlKC9cXHI/XFxuL2csXCJcXHJcIil9ZnVuY3Rpb24gbihlLHQpe3JldHVybiB0P1wiXHUwMDFiWzIwMH5cIitlK1wiXHUwMDFiWzIwMX5cIjplfWZ1bmN0aW9uIHMoZSx0LGkscyl7ZT1uKGU9cihlKSxpKSxzLnRyaWdnZXJEYXRhRXZlbnQoZSwhMCksdC52YWx1ZT1cIlwifWZ1bmN0aW9uIG8oZSx0LGkpe3ZhciByPWkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1lLmNsaWVudFgtci5sZWZ0LTEwLHM9ZS5jbGllbnRZLXIudG9wLTEwO3Quc3R5bGUucG9zaXRpb249XCJhYnNvbHV0ZVwiLHQuc3R5bGUud2lkdGg9XCIyMHB4XCIsdC5zdHlsZS5oZWlnaHQ9XCIyMHB4XCIsdC5zdHlsZS5sZWZ0PW4rXCJweFwiLHQuc3R5bGUudG9wPXMrXCJweFwiLHQuc3R5bGUuekluZGV4PVwiMTAwMFwiLHQuZm9jdXMoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5zdHlsZS5wb3NpdGlvbj1udWxsLHQuc3R5bGUud2lkdGg9bnVsbCx0LnN0eWxlLmhlaWdodD1udWxsLHQuc3R5bGUubGVmdD1udWxsLHQuc3R5bGUudG9wPW51bGwsdC5zdHlsZS56SW5kZXg9bnVsbH0sMjAwKX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnByZXBhcmVUZXh0Rm9yVGVybWluYWw9cix0LmJyYWNrZXRUZXh0Rm9yUGFzdGU9bix0LmNvcHlIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7ZS5jbGlwYm9hcmREYXRhJiZlLmNsaXBib2FyZERhdGEuc2V0RGF0YShcInRleHQvcGxhaW5cIix0LnNlbGVjdGlvblRleHQpLGUucHJldmVudERlZmF1bHQoKX0sdC5oYW5kbGVQYXN0ZUV2ZW50PWZ1bmN0aW9uKGUsdCxpLHIpe2Uuc3RvcFByb3BhZ2F0aW9uKCksZS5jbGlwYm9hcmREYXRhJiZzKGUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKFwidGV4dC9wbGFpblwiKSx0LGkscil9LHQucGFzdGU9cyx0Lm1vdmVUZXh0QXJlYVVuZGVyTW91c2VDdXJzb3I9byx0LnJpZ2h0Q2xpY2tIYW5kbGVyPWZ1bmN0aW9uKGUsdCxpLHIsbil7byhlLHQsaSksbiYmIXIuaXNDbGlja0luU2VsZWN0aW9uKGUpJiZyLnNlbGVjdFdvcmRBdEN1cnNvcihlKSx0LnZhbHVlPXIuc2VsZWN0aW9uVGV4dCx0LnNlbGVjdCgpfX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO3ZhciByLG49dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShpKSYmKGVbaV09dFtpXSl9KShlLHQpfSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoKXt0aGlzLmNvbnN0cnVjdG9yPWV9cihlLHQpLGUucHJvdG90eXBlPW51bGw9PT10P09iamVjdC5jcmVhdGUodCk6KGkucHJvdG90eXBlPXQucHJvdG90eXBlLG5ldyBpKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBzPWkoMTEpLG89aSgxNyksYT1pKDE4KSxjPWkoMzgpLGw9aSgyKSxoPWkoMTQpLHU9aSg4KSxmPWkoMTUpLF89aSgxKSxkPWkoMykscD1pKDQpLHY9aSg2KSxnPWkoMjApLHk9aSgyMiksbT17XCIoXCI6MCxcIilcIjoxLFwiKlwiOjIsXCIrXCI6MyxcIi1cIjoxLFwiLlwiOjJ9LGI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxpLHIpe3RoaXMuX2J1ZmZlclNlcnZpY2U9ZSx0aGlzLl9jb3JlU2VydmljZT10LHRoaXMuX2xvZ1NlcnZpY2U9aSx0aGlzLl9vcHRpb25zU2VydmljZT1yLHRoaXMuX2RhdGE9bmV3IFVpbnQzMkFycmF5KDApfXJldHVybiBlLnByb3RvdHlwZS5ob29rPWZ1bmN0aW9uKGUpe3RoaXMuX2RhdGE9bmV3IFVpbnQzMkFycmF5KDApfSxlLnByb3RvdHlwZS5wdXQ9ZnVuY3Rpb24oZSx0LGkpe3RoaXMuX2RhdGE9aC5jb25jYXQodGhpcy5fZGF0YSxlLnN1YmFycmF5KHQsaSkpfSxlLnByb3RvdHlwZS51bmhvb2s9ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9dS51dGYzMlRvU3RyaW5nKHRoaXMuX2RhdGEpO3N3aXRjaCh0aGlzLl9kYXRhPW5ldyBVaW50MzJBcnJheSgwKSx0KXtjYXNlJ1wicSc6cmV0dXJuIHRoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQocy5DMC5FU0MrJ1AxJHIwXCJxJytzLkMwLkVTQytcIlxcXFxcIik7Y2FzZSdcInAnOnJldHVybiB0aGlzLl9jb3JlU2VydmljZS50cmlnZ2VyRGF0YUV2ZW50KHMuQzAuRVNDKydQMSRyNjFcInAnK3MuQzAuRVNDK1wiXFxcXFwiKTtjYXNlXCJyXCI6dmFyIGk9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIuc2Nyb2xsVG9wKzErXCI7XCIrKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNjcm9sbEJvdHRvbSsxKStcInJcIjtyZXR1cm4gdGhpcy5fY29yZVNlcnZpY2UudHJpZ2dlckRhdGFFdmVudChzLkMwLkVTQytcIlAxJHJcIitpK3MuQzAuRVNDK1wiXFxcXFwiKTtjYXNlXCJtXCI6cmV0dXJuIHRoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQocy5DMC5FU0MrXCJQMSRyMG1cIitzLkMwLkVTQytcIlxcXFxcIik7Y2FzZVwiIHFcIjp2YXIgcj17YmxvY2s6Mix1bmRlcmxpbmU6NCxiYXI6Nn1bdGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5jdXJzb3JTdHlsZV07cmV0dXJuIHItPXRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuY3Vyc29yQmxpbms/MTowLHRoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQocy5DMC5FU0MrXCJQMSRyXCIrcitcIiBxXCIrcy5DMC5FU0MrXCJcXFxcXCIpO2RlZmF1bHQ6dGhpcy5fbG9nU2VydmljZS5kZWJ1ZyhcIlVua25vd24gRENTICRxICVzXCIsdCksdGhpcy5fY29yZVNlcnZpY2UudHJpZ2dlckRhdGFFdmVudChzLkMwLkVTQytcIlAwJHJcIitzLkMwLkVTQytcIlxcXFxcIil9fWVsc2UgdGhpcy5fZGF0YT1uZXcgVWludDMyQXJyYXkoMCl9LGV9KCksQz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsaSxyLG4sYSxsLGgsZil7dm9pZCAwPT09ZiYmKGY9bmV3IGMuRXNjYXBlU2VxdWVuY2VQYXJzZXIpO3ZhciBkPWUuY2FsbCh0aGlzKXx8dGhpcztkLl90ZXJtaW5hbD10LGQuX2J1ZmZlclNlcnZpY2U9aSxkLl9jb3JlU2VydmljZT1yLGQuX2RpcnR5Um93U2VydmljZT1uLGQuX2xvZ1NlcnZpY2U9YSxkLl9vcHRpb25zU2VydmljZT1sLGQuX2NvcmVNb3VzZVNlcnZpY2U9aCxkLl9wYXJzZXI9ZixkLl9wYXJzZUJ1ZmZlcj1uZXcgVWludDMyQXJyYXkoNDA5NiksZC5fc3RyaW5nRGVjb2Rlcj1uZXcgdS5TdHJpbmdUb1V0ZjMyLGQuX3V0ZjhEZWNvZGVyPW5ldyB1LlV0ZjhUb1V0ZjMyLGQuX3dvcmtDZWxsPW5ldyBwLkNlbGxEYXRhLGQuX29uQ3Vyc29yTW92ZT1uZXcgXy5FdmVudEVtaXR0ZXIsZC5fb25MaW5lRmVlZD1uZXcgXy5FdmVudEVtaXR0ZXIsZC5fb25TY3JvbGw9bmV3IF8uRXZlbnRFbWl0dGVyLGQucmVnaXN0ZXIoZC5fcGFyc2VyKSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlckZhbGxiYWNrKGZ1bmN0aW9uKGUsdCl7ZC5fbG9nU2VydmljZS5kZWJ1ZyhcIlVua25vd24gQ1NJIGNvZGU6IFwiLHtpZGVudGlmaWVyOmQuX3BhcnNlci5pZGVudFRvU3RyaW5nKGUpLHBhcmFtczp0LnRvQXJyYXkoKX0pfSksZC5fcGFyc2VyLnNldEVzY0hhbmRsZXJGYWxsYmFjayhmdW5jdGlvbihlKXtkLl9sb2dTZXJ2aWNlLmRlYnVnKFwiVW5rbm93biBFU0MgY29kZTogXCIse2lkZW50aWZpZXI6ZC5fcGFyc2VyLmlkZW50VG9TdHJpbmcoZSl9KX0pLGQuX3BhcnNlci5zZXRFeGVjdXRlSGFuZGxlckZhbGxiYWNrKGZ1bmN0aW9uKGUpe2QuX2xvZ1NlcnZpY2UuZGVidWcoXCJVbmtub3duIEVYRUNVVEUgY29kZTogXCIse2NvZGU6ZX0pfSksZC5fcGFyc2VyLnNldE9zY0hhbmRsZXJGYWxsYmFjayhmdW5jdGlvbihlLHQsaSl7ZC5fbG9nU2VydmljZS5kZWJ1ZyhcIlVua25vd24gT1NDIGNvZGU6IFwiLHtpZGVudGlmaWVyOmUsYWN0aW9uOnQsZGF0YTppfSl9KSxkLl9wYXJzZXIuc2V0RGNzSGFuZGxlckZhbGxiYWNrKGZ1bmN0aW9uKGUsdCxpKXtcIkhPT0tcIj09PXQmJihpPWkudG9BcnJheSgpKSxkLl9sb2dTZXJ2aWNlLmRlYnVnKFwiVW5rbm93biBEQ1MgY29kZTogXCIse2lkZW50aWZpZXI6ZC5fcGFyc2VyLmlkZW50VG9TdHJpbmcoZSksYWN0aW9uOnQscGF5bG9hZDppfSl9KSxkLl9wYXJzZXIuc2V0UHJpbnRIYW5kbGVyKGZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZC5wcmludChlLHQsaSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJAXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmluc2VydENoYXJzKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiQVwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5jdXJzb3JVcChlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcIkJcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuY3Vyc29yRG93bihlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcIkNcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuY3Vyc29yRm9yd2FyZChlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcIkRcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuY3Vyc29yQmFja3dhcmQoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJFXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmN1cnNvck5leHRMaW5lKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiRlwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5jdXJzb3JQcmVjZWRpbmdMaW5lKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiR1wifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5jdXJzb3JDaGFyQWJzb2x1dGUoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJIXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmN1cnNvclBvc2l0aW9uKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiSVwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5jdXJzb3JGb3J3YXJkVGFiKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiSlwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5lcmFzZUluRGlzcGxheShlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtwcmVmaXg6XCI/XCIsZmluYWw6XCJKXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmVyYXNlSW5EaXNwbGF5KGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiS1wifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5lcmFzZUluTGluZShlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtwcmVmaXg6XCI/XCIsZmluYWw6XCJLXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmVyYXNlSW5MaW5lKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiTFwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5pbnNlcnRMaW5lcyhlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcIk1cIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuZGVsZXRlTGluZXMoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJQXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmRlbGV0ZUNoYXJzKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiU1wifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5zY3JvbGxVcChlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcIlRcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuc2Nyb2xsRG93bihlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcIlhcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuZXJhc2VDaGFycyhlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcIlpcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuY3Vyc29yQmFja3dhcmRUYWIoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJgXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmNoYXJQb3NBYnNvbHV0ZShlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcImFcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuaFBvc2l0aW9uUmVsYXRpdmUoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJiXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLnJlcGVhdFByZWNlZGluZ0NoYXJhY3RlcihlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcImNcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuc2VuZERldmljZUF0dHJpYnV0ZXNQcmltYXJ5KGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe3ByZWZpeDpcIj5cIixmaW5hbDpcImNcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuc2VuZERldmljZUF0dHJpYnV0ZXNTZWNvbmRhcnkoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJkXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmxpbmVQb3NBYnNvbHV0ZShlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcImVcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQudlBvc2l0aW9uUmVsYXRpdmUoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJmXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmhWUG9zaXRpb24oZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJnXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLnRhYkNsZWFyKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiaFwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5zZXRNb2RlKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe3ByZWZpeDpcIj9cIixmaW5hbDpcImhcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuc2V0TW9kZVByaXZhdGUoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJsXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLnJlc2V0TW9kZShlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtwcmVmaXg6XCI/XCIsZmluYWw6XCJsXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLnJlc2V0TW9kZVByaXZhdGUoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7ZmluYWw6XCJtXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLmNoYXJBdHRyaWJ1dGVzKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwiblwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5kZXZpY2VTdGF0dXMoZSl9KSxkLl9wYXJzZXIuc2V0Q3NpSGFuZGxlcih7cHJlZml4OlwiP1wiLGZpbmFsOlwiblwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5kZXZpY2VTdGF0dXNQcml2YXRlKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ludGVybWVkaWF0ZXM6XCIhXCIsZmluYWw6XCJwXCJ9LGZ1bmN0aW9uKGUpe3JldHVybiBkLnNvZnRSZXNldChlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtpbnRlcm1lZGlhdGVzOlwiIFwiLGZpbmFsOlwicVwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5zZXRDdXJzb3JTdHlsZShlKX0pLGQuX3BhcnNlci5zZXRDc2lIYW5kbGVyKHtmaW5hbDpcInJcIn0sZnVuY3Rpb24oZSl7cmV0dXJuIGQuc2V0U2Nyb2xsUmVnaW9uKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwic1wifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5zYXZlQ3Vyc29yKGUpfSksZC5fcGFyc2VyLnNldENzaUhhbmRsZXIoe2ZpbmFsOlwidVwifSxmdW5jdGlvbihlKXtyZXR1cm4gZC5yZXN0b3JlQ3Vyc29yKGUpfSksZC5fcGFyc2VyLnNldEV4ZWN1dGVIYW5kbGVyKHMuQzAuQkVMLGZ1bmN0aW9uKCl7cmV0dXJuIGQuYmVsbCgpfSksZC5fcGFyc2VyLnNldEV4ZWN1dGVIYW5kbGVyKHMuQzAuTEYsZnVuY3Rpb24oKXtyZXR1cm4gZC5saW5lRmVlZCgpfSksZC5fcGFyc2VyLnNldEV4ZWN1dGVIYW5kbGVyKHMuQzAuVlQsZnVuY3Rpb24oKXtyZXR1cm4gZC5saW5lRmVlZCgpfSksZC5fcGFyc2VyLnNldEV4ZWN1dGVIYW5kbGVyKHMuQzAuRkYsZnVuY3Rpb24oKXtyZXR1cm4gZC5saW5lRmVlZCgpfSksZC5fcGFyc2VyLnNldEV4ZWN1dGVIYW5kbGVyKHMuQzAuQ1IsZnVuY3Rpb24oKXtyZXR1cm4gZC5jYXJyaWFnZVJldHVybigpfSksZC5fcGFyc2VyLnNldEV4ZWN1dGVIYW5kbGVyKHMuQzAuQlMsZnVuY3Rpb24oKXtyZXR1cm4gZC5iYWNrc3BhY2UoKX0pLGQuX3BhcnNlci5zZXRFeGVjdXRlSGFuZGxlcihzLkMwLkhULGZ1bmN0aW9uKCl7cmV0dXJuIGQudGFiKCl9KSxkLl9wYXJzZXIuc2V0RXhlY3V0ZUhhbmRsZXIocy5DMC5TTyxmdW5jdGlvbigpe3JldHVybiBkLnNoaWZ0T3V0KCl9KSxkLl9wYXJzZXIuc2V0RXhlY3V0ZUhhbmRsZXIocy5DMC5TSSxmdW5jdGlvbigpe3JldHVybiBkLnNoaWZ0SW4oKX0pLGQuX3BhcnNlci5zZXRFeGVjdXRlSGFuZGxlcihzLkMxLklORCxmdW5jdGlvbigpe3JldHVybiBkLmluZGV4KCl9KSxkLl9wYXJzZXIuc2V0RXhlY3V0ZUhhbmRsZXIocy5DMS5ORUwsZnVuY3Rpb24oKXtyZXR1cm4gZC5uZXh0TGluZSgpfSksZC5fcGFyc2VyLnNldEV4ZWN1dGVIYW5kbGVyKHMuQzEuSFRTLGZ1bmN0aW9uKCl7cmV0dXJuIGQudGFiU2V0KCl9KSxkLl9wYXJzZXIuc2V0T3NjSGFuZGxlcigwLG5ldyBnLk9zY0hhbmRsZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGQuc2V0VGl0bGUoZSl9KSksZC5fcGFyc2VyLnNldE9zY0hhbmRsZXIoMixuZXcgZy5Pc2NIYW5kbGVyKGZ1bmN0aW9uKGUpe3JldHVybiBkLnNldFRpdGxlKGUpfSkpLGQuX3BhcnNlci5zZXRFc2NIYW5kbGVyKHtmaW5hbDpcIjdcIn0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zYXZlQ3Vyc29yKCl9KSxkLl9wYXJzZXIuc2V0RXNjSGFuZGxlcih7ZmluYWw6XCI4XCJ9LGZ1bmN0aW9uKCl7cmV0dXJuIGQucmVzdG9yZUN1cnNvcigpfSksZC5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ZpbmFsOlwiRFwifSxmdW5jdGlvbigpe3JldHVybiBkLmluZGV4KCl9KSxkLl9wYXJzZXIuc2V0RXNjSGFuZGxlcih7ZmluYWw6XCJFXCJ9LGZ1bmN0aW9uKCl7cmV0dXJuIGQubmV4dExpbmUoKX0pLGQuX3BhcnNlci5zZXRFc2NIYW5kbGVyKHtmaW5hbDpcIkhcIn0sZnVuY3Rpb24oKXtyZXR1cm4gZC50YWJTZXQoKX0pLGQuX3BhcnNlci5zZXRFc2NIYW5kbGVyKHtmaW5hbDpcIk1cIn0sZnVuY3Rpb24oKXtyZXR1cm4gZC5yZXZlcnNlSW5kZXgoKX0pLGQuX3BhcnNlci5zZXRFc2NIYW5kbGVyKHtmaW5hbDpcIj1cIn0sZnVuY3Rpb24oKXtyZXR1cm4gZC5rZXlwYWRBcHBsaWNhdGlvbk1vZGUoKX0pLGQuX3BhcnNlci5zZXRFc2NIYW5kbGVyKHtmaW5hbDpcIj5cIn0sZnVuY3Rpb24oKXtyZXR1cm4gZC5rZXlwYWROdW1lcmljTW9kZSgpfSksZC5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ZpbmFsOlwiY1wifSxmdW5jdGlvbigpe3JldHVybiBkLnJlc2V0KCl9KSxkLl9wYXJzZXIuc2V0RXNjSGFuZGxlcih7ZmluYWw6XCJuXCJ9LGZ1bmN0aW9uKCl7cmV0dXJuIGQuc2V0Z0xldmVsKDIpfSksZC5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ZpbmFsOlwib1wifSxmdW5jdGlvbigpe3JldHVybiBkLnNldGdMZXZlbCgzKX0pLGQuX3BhcnNlci5zZXRFc2NIYW5kbGVyKHtmaW5hbDpcInxcIn0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zZXRnTGV2ZWwoMyl9KSxkLl9wYXJzZXIuc2V0RXNjSGFuZGxlcih7ZmluYWw6XCJ9XCJ9LGZ1bmN0aW9uKCl7cmV0dXJuIGQuc2V0Z0xldmVsKDIpfSksZC5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ZpbmFsOlwiflwifSxmdW5jdGlvbigpe3JldHVybiBkLnNldGdMZXZlbCgxKX0pLGQuX3BhcnNlci5zZXRFc2NIYW5kbGVyKHtpbnRlcm1lZGlhdGVzOlwiJVwiLGZpbmFsOlwiQFwifSxmdW5jdGlvbigpe3JldHVybiBkLnNlbGVjdERlZmF1bHRDaGFyc2V0KCl9KSxkLl9wYXJzZXIuc2V0RXNjSGFuZGxlcih7aW50ZXJtZWRpYXRlczpcIiVcIixmaW5hbDpcIkdcIn0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3REZWZhdWx0Q2hhcnNldCgpfSk7dmFyIHY9ZnVuY3Rpb24oZSl7eS5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ludGVybWVkaWF0ZXM6XCIoXCIsZmluYWw6ZX0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3RDaGFyc2V0KFwiKFwiK2UpfSkseS5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ludGVybWVkaWF0ZXM6XCIpXCIsZmluYWw6ZX0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3RDaGFyc2V0KFwiKVwiK2UpfSkseS5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ludGVybWVkaWF0ZXM6XCIqXCIsZmluYWw6ZX0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3RDaGFyc2V0KFwiKlwiK2UpfSkseS5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ludGVybWVkaWF0ZXM6XCIrXCIsZmluYWw6ZX0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3RDaGFyc2V0KFwiK1wiK2UpfSkseS5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ludGVybWVkaWF0ZXM6XCItXCIsZmluYWw6ZX0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3RDaGFyc2V0KFwiLVwiK2UpfSkseS5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ludGVybWVkaWF0ZXM6XCIuXCIsZmluYWw6ZX0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3RDaGFyc2V0KFwiLlwiK2UpfSkseS5fcGFyc2VyLnNldEVzY0hhbmRsZXIoe2ludGVybWVkaWF0ZXM6XCIvXCIsZmluYWw6ZX0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zZWxlY3RDaGFyc2V0KFwiL1wiK2UpfSl9LHk9dGhpcztmb3IodmFyIG0gaW4gby5DSEFSU0VUUyl2KG0pO3JldHVybiBkLl9wYXJzZXIuc2V0RXNjSGFuZGxlcih7aW50ZXJtZWRpYXRlczpcIiNcIixmaW5hbDpcIjhcIn0sZnVuY3Rpb24oKXtyZXR1cm4gZC5zY3JlZW5BbGlnbm1lbnRQYXR0ZXJuKCl9KSxkLl9wYXJzZXIuc2V0RXJyb3JIYW5kbGVyKGZ1bmN0aW9uKGUpe3JldHVybiBkLl9sb2dTZXJ2aWNlLmVycm9yKFwiUGFyc2luZyBlcnJvcjogXCIsZSksZX0pLGQuX3BhcnNlci5zZXREY3NIYW5kbGVyKHtpbnRlcm1lZGlhdGVzOlwiJFwiLGZpbmFsOlwicVwifSxuZXcgYihkLl9idWZmZXJTZXJ2aWNlLGQuX2NvcmVTZXJ2aWNlLGQuX2xvZ1NlcnZpY2UsZC5fb3B0aW9uc1NlcnZpY2UpKSxkfXJldHVybiBuKHQsZSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLFwib25DdXJzb3JNb3ZlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkN1cnNvck1vdmUuZXZlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLFwib25MaW5lRmVlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25MaW5lRmVlZC5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJvblNjcm9sbFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25TY3JvbGwuZXZlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2UucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sdC5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIsaT10Lngscj10Lnk7dGhpcy5fbG9nU2VydmljZS5kZWJ1ZyhcInBhcnNpbmcgZGF0YVwiLGUpLHRoaXMuX3BhcnNlQnVmZmVyLmxlbmd0aDxlLmxlbmd0aCYmKHRoaXMuX3BhcnNlQnVmZmVyPW5ldyBVaW50MzJBcnJheShlLmxlbmd0aCkpLHRoaXMuX3BhcnNlci5wYXJzZSh0aGlzLl9wYXJzZUJ1ZmZlcix0aGlzLl9zdHJpbmdEZWNvZGVyLmRlY29kZShlLHRoaXMuX3BhcnNlQnVmZmVyKSksKHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIpLng9PT1pJiZ0Lnk9PT1yfHx0aGlzLl9vbkN1cnNvck1vdmUuZmlyZSgpfSx0LnByb3RvdHlwZS5wYXJzZVV0Zjg9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIsaT10Lngscj10Lnk7dGhpcy5fbG9nU2VydmljZS5kZWJ1ZyhcInBhcnNpbmcgZGF0YVwiLGUpLHRoaXMuX3BhcnNlQnVmZmVyLmxlbmd0aDxlLmxlbmd0aCYmKHRoaXMuX3BhcnNlQnVmZmVyPW5ldyBVaW50MzJBcnJheShlLmxlbmd0aCkpLHRoaXMuX3BhcnNlci5wYXJzZSh0aGlzLl9wYXJzZUJ1ZmZlcix0aGlzLl91dGY4RGVjb2Rlci5kZWNvZGUoZSx0aGlzLl9wYXJzZUJ1ZmZlcikpLCh0PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyKS54PT09aSYmdC55PT09cnx8dGhpcy5fb25DdXJzb3JNb3ZlLmZpcmUoKX0sdC5wcm90b3R5cGUucHJpbnQ9ZnVuY3Rpb24oZSx0LGkpe3ZhciByLG4scz10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlcixvPXRoaXMuX3Rlcm1pbmFsLmNoYXJzZXQsYz10aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLnNjcmVlblJlYWRlck1vZGUsbD10aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsaD10aGlzLl90ZXJtaW5hbC53cmFwYXJvdW5kTW9kZSxmPXRoaXMuX3Rlcm1pbmFsLmluc2VydE1vZGUsXz10aGlzLl90ZXJtaW5hbC5jdXJBdHRyRGF0YSxwPXMubGluZXMuZ2V0KHMueStzLnliYXNlKTt0aGlzLl9kaXJ0eVJvd1NlcnZpY2UubWFya0RpcnR5KHMueSk7Zm9yKHZhciB2PXQ7djxpOysrdil7aWYocj1lW3ZdLG49YS53Y3dpZHRoKHIpLHI8MTI3JiZvKXt2YXIgZz1vW1N0cmluZy5mcm9tQ2hhckNvZGUocildO2cmJihyPWcuY2hhckNvZGVBdCgwKSl9aWYoYyYmdGhpcy5fdGVybWluYWwub25BMTF5Q2hhckVtaXR0ZXIuZmlyZSh1LnN0cmluZ0Zyb21Db2RlUG9pbnQocikpLG58fCFzLngpe2lmKHMueCtuLTE+PWwpaWYoaClzLng9MCxzLnkrKyxzLnk9PT1zLnNjcm9sbEJvdHRvbSsxPyhzLnktLSx0aGlzLl90ZXJtaW5hbC5zY3JvbGwoITApKToocy55Pj10aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MmJihzLnk9dGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLTEpLHMubGluZXMuZ2V0KHMueSkuaXNXcmFwcGVkPSEwKSxwPXMubGluZXMuZ2V0KHMueStzLnliYXNlKTtlbHNlIGlmKHMueD1sLTEsMj09PW4pY29udGludWU7aWYoZiYmKHAuaW5zZXJ0Q2VsbHMocy54LG4scy5nZXROdWxsQ2VsbChfKSksMj09PXAuZ2V0V2lkdGgobC0xKSYmcC5zZXRDZWxsRnJvbUNvZGVQb2ludChsLTEsZC5OVUxMX0NFTExfQ09ERSxkLk5VTExfQ0VMTF9XSURUSCxfLmZnLF8uYmcpKSxwLnNldENlbGxGcm9tQ29kZVBvaW50KHMueCsrLHIsbixfLmZnLF8uYmcpLG4+MClmb3IoOy0tbjspcC5zZXRDZWxsRnJvbUNvZGVQb2ludChzLngrKywwLDAsXy5mZyxfLmJnKX1lbHNlIHAuZ2V0V2lkdGgocy54LTEpP3AuYWRkQ29kZXBvaW50VG9DZWxsKHMueC0xLHIpOnAuYWRkQ29kZXBvaW50VG9DZWxsKHMueC0yLHIpfWkmJihwLmxvYWRDZWxsKHMueC0xLHRoaXMuX3dvcmtDZWxsKSwyPT09dGhpcy5fd29ya0NlbGwuZ2V0V2lkdGgoKXx8dGhpcy5fd29ya0NlbGwuZ2V0Q29kZSgpPjY1NTM1P3RoaXMuX3BhcnNlci5wcmVjZWRpbmdDb2RlcG9pbnQ9MDp0aGlzLl93b3JrQ2VsbC5pc0NvbWJpbmVkKCk/dGhpcy5fcGFyc2VyLnByZWNlZGluZ0NvZGVwb2ludD10aGlzLl93b3JrQ2VsbC5nZXRDaGFycygpLmNoYXJDb2RlQXQoMCk6dGhpcy5fcGFyc2VyLnByZWNlZGluZ0NvZGVwb2ludD10aGlzLl93b3JrQ2VsbC5jb250ZW50KSx0aGlzLl9kaXJ0eVJvd1NlcnZpY2UubWFya0RpcnR5KHMueSl9LHQucHJvdG90eXBlLmFkZENzaUhhbmRsZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcGFyc2VyLmFkZENzaUhhbmRsZXIoZSx0KX0sdC5wcm90b3R5cGUuYWRkRGNzSGFuZGxlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9wYXJzZXIuYWRkRGNzSGFuZGxlcihlLG5ldyB5LkRjc0hhbmRsZXIodCkpfSx0LnByb3RvdHlwZS5hZGRFc2NIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3BhcnNlci5hZGRFc2NIYW5kbGVyKGUsdCl9LHQucHJvdG90eXBlLmFkZE9zY0hhbmRsZXI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcGFyc2VyLmFkZE9zY0hhbmRsZXIoZSxuZXcgZy5Pc2NIYW5kbGVyKHQpKX0sdC5wcm90b3R5cGUuYmVsbD1mdW5jdGlvbigpe3RoaXMuX3Rlcm1pbmFsLmJlbGwoKX0sdC5wcm90b3R5cGUubGluZUZlZWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlcjt0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmNvbnZlcnRFb2wmJihlLng9MCksZS55KyssZS55PT09ZS5zY3JvbGxCb3R0b20rMT8oZS55LS0sdGhpcy5fdGVybWluYWwuc2Nyb2xsKCkpOmUueT49dGhpcy5fYnVmZmVyU2VydmljZS5yb3dzJiYoZS55PXRoaXMuX2J1ZmZlclNlcnZpY2Uucm93cy0xKSxlLng+PXRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyYmZS54LS0sdGhpcy5fb25MaW5lRmVlZC5maXJlKCl9LHQucHJvdG90eXBlLmNhcnJpYWdlUmV0dXJuPWZ1bmN0aW9uKCl7dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueD0wfSx0LnByb3RvdHlwZS5iYWNrc3BhY2U9ZnVuY3Rpb24oKXt0aGlzLl9yZXN0cmljdEN1cnNvcigpLHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLng+MCYmdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueC0tfSx0LnByb3RvdHlwZS50YWI9ZnVuY3Rpb24oKXtpZighKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLng+PXRoaXMuX2J1ZmZlclNlcnZpY2UuY29scykpe3ZhciBlPXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLng7dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5uZXh0U3RvcCgpLHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuc2NyZWVuUmVhZGVyTW9kZSYmdGhpcy5fdGVybWluYWwub25BMTF5VGFiRW1pdHRlci5maXJlKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngtZSl9fSx0LnByb3RvdHlwZS5zaGlmdE91dD1mdW5jdGlvbigpe3RoaXMuX3Rlcm1pbmFsLnNldGdMZXZlbCgxKX0sdC5wcm90b3R5cGUuc2hpZnRJbj1mdW5jdGlvbigpe3RoaXMuX3Rlcm1pbmFsLnNldGdMZXZlbCgwKX0sdC5wcm90b3R5cGUuX3Jlc3RyaWN0Q3Vyc29yPWZ1bmN0aW9uKCl7dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueD1NYXRoLm1pbih0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMtMSxNYXRoLm1heCgwLHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngpKSx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55PXRoaXMuX3Rlcm1pbmFsLm9yaWdpbk1vZGU/TWF0aC5taW4odGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIuc2Nyb2xsQm90dG9tLE1hdGgubWF4KHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNjcm9sbFRvcCx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55KSk6TWF0aC5taW4odGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLTEsTWF0aC5tYXgoMCx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55KSl9LHQucHJvdG90eXBlLl9zZXRDdXJzb3I9ZnVuY3Rpb24oZSx0KXt0aGlzLl90ZXJtaW5hbC5vcmlnaW5Nb2RlPyh0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci54PWUsdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueT10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5zY3JvbGxUb3ArdCk6KHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLng9ZSx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55PXQpLHRoaXMuX3Jlc3RyaWN0Q3Vyc29yKCl9LHQucHJvdG90eXBlLl9tb3ZlQ3Vyc29yPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcmVzdHJpY3RDdXJzb3IoKSx0aGlzLl9zZXRDdXJzb3IodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCtlLHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnkrdCl9LHQucHJvdG90eXBlLmN1cnNvclVwPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnktdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIuc2Nyb2xsVG9wO3Q+PTA/dGhpcy5fbW92ZUN1cnNvcigwLC1NYXRoLm1pbih0LGUucGFyYW1zWzBdfHwxKSk6dGhpcy5fbW92ZUN1cnNvcigwLC0oZS5wYXJhbXNbMF18fDEpKX0sdC5wcm90b3R5cGUuY3Vyc29yRG93bj1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5zY3JvbGxCb3R0b20tdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueTt0Pj0wP3RoaXMuX21vdmVDdXJzb3IoMCxNYXRoLm1pbih0LGUucGFyYW1zWzBdfHwxKSk6dGhpcy5fbW92ZUN1cnNvcigwLGUucGFyYW1zWzBdfHwxKX0sdC5wcm90b3R5cGUuY3Vyc29yRm9yd2FyZD1mdW5jdGlvbihlKXt0aGlzLl9tb3ZlQ3Vyc29yKGUucGFyYW1zWzBdfHwxLDApfSx0LnByb3RvdHlwZS5jdXJzb3JCYWNrd2FyZD1mdW5jdGlvbihlKXt0aGlzLl9tb3ZlQ3Vyc29yKC0oZS5wYXJhbXNbMF18fDEpLDApfSx0LnByb3RvdHlwZS5jdXJzb3JOZXh0TGluZT1mdW5jdGlvbihlKXt0aGlzLmN1cnNvckRvd24oZSksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueD0wfSx0LnByb3RvdHlwZS5jdXJzb3JQcmVjZWRpbmdMaW5lPWZ1bmN0aW9uKGUpe3RoaXMuY3Vyc29yVXAoZSksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueD0wfSx0LnByb3RvdHlwZS5jdXJzb3JDaGFyQWJzb2x1dGU9ZnVuY3Rpb24oZSl7dGhpcy5fc2V0Q3Vyc29yKChlLnBhcmFtc1swXXx8MSktMSx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55KX0sdC5wcm90b3R5cGUuY3Vyc29yUG9zaXRpb249ZnVuY3Rpb24oZSl7dGhpcy5fc2V0Q3Vyc29yKGUubGVuZ3RoPj0yPyhlLnBhcmFtc1sxXXx8MSktMTowLChlLnBhcmFtc1swXXx8MSktMSl9LHQucHJvdG90eXBlLmNoYXJQb3NBYnNvbHV0ZT1mdW5jdGlvbihlKXt0aGlzLl9zZXRDdXJzb3IoKGUucGFyYW1zWzBdfHwxKS0xLHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnkpfSx0LnByb3RvdHlwZS5oUG9zaXRpb25SZWxhdGl2ZT1mdW5jdGlvbihlKXt0aGlzLl9tb3ZlQ3Vyc29yKGUucGFyYW1zWzBdfHwxLDApfSx0LnByb3RvdHlwZS5saW5lUG9zQWJzb2x1dGU9ZnVuY3Rpb24oZSl7dGhpcy5fc2V0Q3Vyc29yKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngsKGUucGFyYW1zWzBdfHwxKS0xKX0sdC5wcm90b3R5cGUudlBvc2l0aW9uUmVsYXRpdmU9ZnVuY3Rpb24oZSl7dGhpcy5fbW92ZUN1cnNvcigwLGUucGFyYW1zWzBdfHwxKX0sdC5wcm90b3R5cGUuaFZQb3NpdGlvbj1mdW5jdGlvbihlKXt0aGlzLmN1cnNvclBvc2l0aW9uKGUpfSx0LnByb3RvdHlwZS50YWJDbGVhcj1mdW5jdGlvbihlKXt2YXIgdD1lLnBhcmFtc1swXTswPT09dD9kZWxldGUgdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIudGFic1t0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci54XTozPT09dCYmKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnRhYnM9e30pfSx0LnByb3RvdHlwZS5jdXJzb3JGb3J3YXJkVGFiPWZ1bmN0aW9uKGUpe2lmKCEodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueD49dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzKSlmb3IodmFyIHQ9ZS5wYXJhbXNbMF18fDE7dC0tOyl0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci54PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLm5leHRTdG9wKCl9LHQucHJvdG90eXBlLmN1cnNvckJhY2t3YXJkVGFiPWZ1bmN0aW9uKGUpe2lmKCEodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueD49dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzKSlmb3IodmFyIHQ9ZS5wYXJhbXNbMF18fDEsaT10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlcjt0LS07KWkueD1pLnByZXZTdG9wKCl9LHQucHJvdG90eXBlLl9lcmFzZUluQnVmZmVyTGluZT1mdW5jdGlvbihlLHQsaSxyKXt2b2lkIDA9PT1yJiYocj0hMSk7dmFyIG49dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIubGluZXMuZ2V0KHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnliYXNlK2UpO24ucmVwbGFjZUNlbGxzKHQsaSx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5nZXROdWxsQ2VsbCh0aGlzLl90ZXJtaW5hbC5lcmFzZUF0dHJEYXRhKCkpKSxyJiYobi5pc1dyYXBwZWQ9ITEpfSx0LnByb3RvdHlwZS5fcmVzZXRCdWZmZXJMaW5lPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLmxpbmVzLmdldCh0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55YmFzZStlKTt0LmZpbGwodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIuZ2V0TnVsbENlbGwodGhpcy5fdGVybWluYWwuZXJhc2VBdHRyRGF0YSgpKSksdC5pc1dyYXBwZWQ9ITF9LHQucHJvdG90eXBlLmVyYXNlSW5EaXNwbGF5PWZ1bmN0aW9uKGUpe3ZhciB0O3N3aXRjaCh0aGlzLl9yZXN0cmljdEN1cnNvcigpLGUucGFyYW1zWzBdKXtjYXNlIDA6Zm9yKHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueSx0aGlzLl9kaXJ0eVJvd1NlcnZpY2UubWFya0RpcnR5KHQpLHRoaXMuX2VyYXNlSW5CdWZmZXJMaW5lKHQrKyx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci54LHRoaXMuX2J1ZmZlclNlcnZpY2UuY29scywwPT09dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCk7dDx0aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3M7dCsrKXRoaXMuX3Jlc2V0QnVmZmVyTGluZSh0KTt0aGlzLl9kaXJ0eVJvd1NlcnZpY2UubWFya0RpcnR5KHQpO2JyZWFrO2Nhc2UgMTpmb3IodD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55LHRoaXMuX2RpcnR5Um93U2VydmljZS5tYXJrRGlydHkodCksdGhpcy5fZXJhc2VJbkJ1ZmZlckxpbmUodCwwLHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngrMSwhMCksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCsxPj10aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMmJih0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5saW5lcy5nZXQodCsxKS5pc1dyYXBwZWQ9ITEpO3QtLTspdGhpcy5fcmVzZXRCdWZmZXJMaW5lKHQpO3RoaXMuX2RpcnR5Um93U2VydmljZS5tYXJrRGlydHkoMCk7YnJlYWs7Y2FzZSAyOmZvcih0PXRoaXMuX2J1ZmZlclNlcnZpY2Uucm93cyx0aGlzLl9kaXJ0eVJvd1NlcnZpY2UubWFya0RpcnR5KHQtMSk7dC0tOyl0aGlzLl9yZXNldEJ1ZmZlckxpbmUodCk7dGhpcy5fZGlydHlSb3dTZXJ2aWNlLm1hcmtEaXJ0eSgwKTticmVhaztjYXNlIDM6dmFyIGk9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIubGluZXMubGVuZ3RoLXRoaXMuX2J1ZmZlclNlcnZpY2Uucm93cztpPjAmJih0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5saW5lcy50cmltU3RhcnQoaSksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueWJhc2U9TWF0aC5tYXgodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueWJhc2UtaSwwKSx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55ZGlzcD1NYXRoLm1heCh0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55ZGlzcC1pLDApLHRoaXMuX29uU2Nyb2xsLmZpcmUoMCkpfX0sdC5wcm90b3R5cGUuZXJhc2VJbkxpbmU9ZnVuY3Rpb24oZSl7c3dpdGNoKHRoaXMuX3Jlc3RyaWN0Q3Vyc29yKCksZS5wYXJhbXNbMF0pe2Nhc2UgMDp0aGlzLl9lcmFzZUluQnVmZmVyTGluZSh0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55LHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngsdGhpcy5fYnVmZmVyU2VydmljZS5jb2xzKTticmVhaztjYXNlIDE6dGhpcy5fZXJhc2VJbkJ1ZmZlckxpbmUodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueSwwLHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngrMSk7YnJlYWs7Y2FzZSAyOnRoaXMuX2VyYXNlSW5CdWZmZXJMaW5lKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnksMCx0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMpfXRoaXMuX2RpcnR5Um93U2VydmljZS5tYXJrRGlydHkodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueSl9LHQucHJvdG90eXBlLmluc2VydExpbmVzPWZ1bmN0aW9uKGUpe3RoaXMuX3Jlc3RyaWN0Q3Vyc29yKCk7dmFyIHQ9ZS5wYXJhbXNbMF18fDEsaT10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlcjtpZighKGkueT5pLnNjcm9sbEJvdHRvbXx8aS55PGkuc2Nyb2xsVG9wKSl7Zm9yKHZhciByPWkueStpLnliYXNlLG49dGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLTEtaS5zY3JvbGxCb3R0b20scz10aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MtMStpLnliYXNlLW4rMTt0LS07KWkubGluZXMuc3BsaWNlKHMtMSwxKSxpLmxpbmVzLnNwbGljZShyLDAsaS5nZXRCbGFua0xpbmUodGhpcy5fdGVybWluYWwuZXJhc2VBdHRyRGF0YSgpKSk7dGhpcy5fZGlydHlSb3dTZXJ2aWNlLm1hcmtSYW5nZURpcnR5KGkueSxpLnNjcm9sbEJvdHRvbSksaS54PTB9fSx0LnByb3RvdHlwZS5kZWxldGVMaW5lcz1mdW5jdGlvbihlKXt0aGlzLl9yZXN0cmljdEN1cnNvcigpO3ZhciB0PWUucGFyYW1zWzBdfHwxLGk9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXI7aWYoIShpLnk+aS5zY3JvbGxCb3R0b218fGkueTxpLnNjcm9sbFRvcCkpe3ZhciByLG49aS55K2kueWJhc2U7Zm9yKHI9dGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLTEtaS5zY3JvbGxCb3R0b20scj10aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MtMStpLnliYXNlLXI7dC0tOylpLmxpbmVzLnNwbGljZShuLDEpLGkubGluZXMuc3BsaWNlKHIsMCxpLmdldEJsYW5rTGluZSh0aGlzLl90ZXJtaW5hbC5lcmFzZUF0dHJEYXRhKCkpKTt0aGlzLl9kaXJ0eVJvd1NlcnZpY2UubWFya1JhbmdlRGlydHkoaS55LGkuc2Nyb2xsQm90dG9tKSxpLng9MH19LHQucHJvdG90eXBlLmluc2VydENoYXJzPWZ1bmN0aW9uKGUpe3RoaXMuX3Jlc3RyaWN0Q3Vyc29yKCk7dmFyIHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIubGluZXMuZ2V0KHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnkrdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueWJhc2UpO3QmJih0Lmluc2VydENlbGxzKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngsZS5wYXJhbXNbMF18fDEsdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIuZ2V0TnVsbENlbGwodGhpcy5fdGVybWluYWwuZXJhc2VBdHRyRGF0YSgpKSksdGhpcy5fZGlydHlSb3dTZXJ2aWNlLm1hcmtEaXJ0eSh0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55KSl9LHQucHJvdG90eXBlLmRlbGV0ZUNoYXJzPWZ1bmN0aW9uKGUpe3RoaXMuX3Jlc3RyaWN0Q3Vyc29yKCk7dmFyIHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIubGluZXMuZ2V0KHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnkrdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueWJhc2UpO3QmJih0LmRlbGV0ZUNlbGxzKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngsZS5wYXJhbXNbMF18fDEsdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIuZ2V0TnVsbENlbGwodGhpcy5fdGVybWluYWwuZXJhc2VBdHRyRGF0YSgpKSksdGhpcy5fZGlydHlSb3dTZXJ2aWNlLm1hcmtEaXJ0eSh0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55KSl9LHQucHJvdG90eXBlLnNjcm9sbFVwPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLnBhcmFtc1swXXx8MSxpPXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyO3QtLTspaS5saW5lcy5zcGxpY2UoaS55YmFzZStpLnNjcm9sbFRvcCwxKSxpLmxpbmVzLnNwbGljZShpLnliYXNlK2kuc2Nyb2xsQm90dG9tLDAsaS5nZXRCbGFua0xpbmUodGhpcy5fdGVybWluYWwuZXJhc2VBdHRyRGF0YSgpKSk7dGhpcy5fZGlydHlSb3dTZXJ2aWNlLm1hcmtSYW5nZURpcnR5KGkuc2Nyb2xsVG9wLGkuc2Nyb2xsQm90dG9tKX0sdC5wcm90b3R5cGUuc2Nyb2xsRG93bj1mdW5jdGlvbihlKXtpZihlLmxlbmd0aDwyKXtmb3IodmFyIHQ9ZS5wYXJhbXNbMF18fDEsaT10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlcjt0LS07KWkubGluZXMuc3BsaWNlKGkueWJhc2UraS5zY3JvbGxCb3R0b20sMSksaS5saW5lcy5zcGxpY2UoaS55YmFzZStpLnNjcm9sbFRvcCwwLGkuZ2V0QmxhbmtMaW5lKHRoaXMuX3Rlcm1pbmFsLmVyYXNlQXR0ckRhdGEoKSkpO3RoaXMuX2RpcnR5Um93U2VydmljZS5tYXJrUmFuZ2VEaXJ0eShpLnNjcm9sbFRvcCxpLnNjcm9sbEJvdHRvbSl9fSx0LnByb3RvdHlwZS5lcmFzZUNoYXJzPWZ1bmN0aW9uKGUpe3RoaXMuX3Jlc3RyaWN0Q3Vyc29yKCk7dmFyIHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIubGluZXMuZ2V0KHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnkrdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueWJhc2UpO3QmJih0LnJlcGxhY2VDZWxscyh0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci54LHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngrKGUucGFyYW1zWzBdfHwxKSx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5nZXROdWxsQ2VsbCh0aGlzLl90ZXJtaW5hbC5lcmFzZUF0dHJEYXRhKCkpKSx0aGlzLl9kaXJ0eVJvd1NlcnZpY2UubWFya0RpcnR5KHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnkpKX0sdC5wcm90b3R5cGUucmVwZWF0UHJlY2VkaW5nQ2hhcmFjdGVyPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX3BhcnNlci5wcmVjZWRpbmdDb2RlcG9pbnQpe2Zvcih2YXIgdD1lLnBhcmFtc1swXXx8MSxpPW5ldyBVaW50MzJBcnJheSh0KSxyPTA7cjx0OysrcilpW3JdPXRoaXMuX3BhcnNlci5wcmVjZWRpbmdDb2RlcG9pbnQ7dGhpcy5wcmludChpLDAsaS5sZW5ndGgpfX0sdC5wcm90b3R5cGUuc2VuZERldmljZUF0dHJpYnV0ZXNQcmltYXJ5PWZ1bmN0aW9uKGUpe2UucGFyYW1zWzBdPjB8fCh0aGlzLl90ZXJtaW5hbC5pcyhcInh0ZXJtXCIpfHx0aGlzLl90ZXJtaW5hbC5pcyhcInJ4dnQtdW5pY29kZVwiKXx8dGhpcy5fdGVybWluYWwuaXMoXCJzY3JlZW5cIik/dGhpcy5fY29yZVNlcnZpY2UudHJpZ2dlckRhdGFFdmVudChzLkMwLkVTQytcIls/MTsyY1wiKTp0aGlzLl90ZXJtaW5hbC5pcyhcImxpbnV4XCIpJiZ0aGlzLl9jb3JlU2VydmljZS50cmlnZ2VyRGF0YUV2ZW50KHMuQzAuRVNDK1wiWz82Y1wiKSl9LHQucHJvdG90eXBlLnNlbmREZXZpY2VBdHRyaWJ1dGVzU2Vjb25kYXJ5PWZ1bmN0aW9uKGUpe2UucGFyYW1zWzBdPjB8fCh0aGlzLl90ZXJtaW5hbC5pcyhcInh0ZXJtXCIpP3RoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQocy5DMC5FU0MrXCJbPjA7Mjc2OzBjXCIpOnRoaXMuX3Rlcm1pbmFsLmlzKFwicnh2dC11bmljb2RlXCIpP3RoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQocy5DMC5FU0MrXCJbPjg1Ozk1OzBjXCIpOnRoaXMuX3Rlcm1pbmFsLmlzKFwibGludXhcIik/dGhpcy5fY29yZVNlcnZpY2UudHJpZ2dlckRhdGFFdmVudChlLnBhcmFtc1swXStcImNcIik6dGhpcy5fdGVybWluYWwuaXMoXCJzY3JlZW5cIikmJnRoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQocy5DMC5FU0MrXCJbPjgzOzQwMDAzOzBjXCIpKX0sdC5wcm90b3R5cGUuc2V0TW9kZT1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKylzd2l0Y2goZS5wYXJhbXNbdF0pe2Nhc2UgNDp0aGlzLl90ZXJtaW5hbC5pbnNlcnRNb2RlPSEwfX0sdC5wcm90b3R5cGUuc2V0TW9kZVByaXZhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspc3dpdGNoKGUucGFyYW1zW3RdKXtjYXNlIDE6dGhpcy5fY29yZVNlcnZpY2UuZGVjUHJpdmF0ZU1vZGVzLmFwcGxpY2F0aW9uQ3Vyc29yS2V5cz0hMDticmVhaztjYXNlIDI6dGhpcy5fdGVybWluYWwuc2V0Z0NoYXJzZXQoMCxvLkRFRkFVTFRfQ0hBUlNFVCksdGhpcy5fdGVybWluYWwuc2V0Z0NoYXJzZXQoMSxvLkRFRkFVTFRfQ0hBUlNFVCksdGhpcy5fdGVybWluYWwuc2V0Z0NoYXJzZXQoMixvLkRFRkFVTFRfQ0hBUlNFVCksdGhpcy5fdGVybWluYWwuc2V0Z0NoYXJzZXQoMyxvLkRFRkFVTFRfQ0hBUlNFVCk7YnJlYWs7Y2FzZSAzOnRoaXMuX3Rlcm1pbmFsLnNhdmVkQ29scz10aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsdGhpcy5fdGVybWluYWwucmVzaXplKDEzMix0aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MpLHRoaXMuX3Rlcm1pbmFsLnJlc2V0KCk7YnJlYWs7Y2FzZSA2OnRoaXMuX3Rlcm1pbmFsLm9yaWdpbk1vZGU9ITAsdGhpcy5fc2V0Q3Vyc29yKDAsMCk7YnJlYWs7Y2FzZSA3OnRoaXMuX3Rlcm1pbmFsLndyYXBhcm91bmRNb2RlPSEwO2JyZWFrO2Nhc2UgMTI6YnJlYWs7Y2FzZSA2Njp0aGlzLl9sb2dTZXJ2aWNlLmRlYnVnKFwiU2VyaWFsIHBvcnQgcmVxdWVzdGVkIGFwcGxpY2F0aW9uIGtleXBhZC5cIiksdGhpcy5fdGVybWluYWwuYXBwbGljYXRpb25LZXlwYWQ9ITAsdGhpcy5fdGVybWluYWwudmlld3BvcnQmJnRoaXMuX3Rlcm1pbmFsLnZpZXdwb3J0LnN5bmNTY3JvbGxBcmVhKCk7YnJlYWs7Y2FzZSA5OnRoaXMuX2NvcmVNb3VzZVNlcnZpY2UuYWN0aXZlUHJvdG9jb2w9XCJYMTBcIjticmVhaztjYXNlIDFlMzp0aGlzLl9jb3JlTW91c2VTZXJ2aWNlLmFjdGl2ZVByb3RvY29sPVwiVlQyMDBcIjticmVhaztjYXNlIDEwMDI6dGhpcy5fY29yZU1vdXNlU2VydmljZS5hY3RpdmVQcm90b2NvbD1cIkRSQUdcIjticmVhaztjYXNlIDEwMDM6dGhpcy5fY29yZU1vdXNlU2VydmljZS5hY3RpdmVQcm90b2NvbD1cIkFOWVwiO2JyZWFrO2Nhc2UgMTAwNDp0aGlzLl90ZXJtaW5hbC5zZW5kRm9jdXM9ITA7YnJlYWs7Y2FzZSAxMDA1OnRoaXMuX2NvcmVNb3VzZVNlcnZpY2UuYWN0aXZlRW5jb2Rpbmc9XCJVVEY4XCI7YnJlYWs7Y2FzZSAxMDA2OnRoaXMuX2NvcmVNb3VzZVNlcnZpY2UuYWN0aXZlRW5jb2Rpbmc9XCJTR1JcIjticmVhaztjYXNlIDEwMTU6dGhpcy5fY29yZU1vdXNlU2VydmljZS5hY3RpdmVFbmNvZGluZz1cIlVSWFZUXCI7YnJlYWs7Y2FzZSAyNTp0aGlzLl90ZXJtaW5hbC5jdXJzb3JIaWRkZW49ITE7YnJlYWs7Y2FzZSAxMDQ4OnRoaXMuc2F2ZUN1cnNvcigpO2JyZWFrO2Nhc2UgMTA0OTp0aGlzLnNhdmVDdXJzb3IoKTtjYXNlIDQ3OmNhc2UgMTA0Nzp0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlcnMuYWN0aXZhdGVBbHRCdWZmZXIodGhpcy5fdGVybWluYWwuZXJhc2VBdHRyRGF0YSgpKSx0aGlzLl90ZXJtaW5hbC5yZWZyZXNoKDAsdGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLTEpLHRoaXMuX3Rlcm1pbmFsLnZpZXdwb3J0JiZ0aGlzLl90ZXJtaW5hbC52aWV3cG9ydC5zeW5jU2Nyb2xsQXJlYSgpLHRoaXMuX3Rlcm1pbmFsLnNob3dDdXJzb3IoKTticmVhaztjYXNlIDIwMDQ6dGhpcy5fdGVybWluYWwuYnJhY2tldGVkUGFzdGVNb2RlPSEwfX0sdC5wcm90b3R5cGUucmVzZXRNb2RlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXN3aXRjaChlLnBhcmFtc1t0XSl7Y2FzZSA0OnRoaXMuX3Rlcm1pbmFsLmluc2VydE1vZGU9ITF9fSx0LnByb3RvdHlwZS5yZXNldE1vZGVQcml2YXRlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXN3aXRjaChlLnBhcmFtc1t0XSl7Y2FzZSAxOnRoaXMuX2NvcmVTZXJ2aWNlLmRlY1ByaXZhdGVNb2Rlcy5hcHBsaWNhdGlvbkN1cnNvcktleXM9ITE7YnJlYWs7Y2FzZSAzOjEzMj09PXRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyYmdGhpcy5fdGVybWluYWwuc2F2ZWRDb2xzJiZ0aGlzLl90ZXJtaW5hbC5yZXNpemUodGhpcy5fdGVybWluYWwuc2F2ZWRDb2xzLHRoaXMuX2J1ZmZlclNlcnZpY2Uucm93cyksZGVsZXRlIHRoaXMuX3Rlcm1pbmFsLnNhdmVkQ29scyx0aGlzLl90ZXJtaW5hbC5yZXNldCgpO2JyZWFrO2Nhc2UgNjp0aGlzLl90ZXJtaW5hbC5vcmlnaW5Nb2RlPSExLHRoaXMuX3NldEN1cnNvcigwLDApO2JyZWFrO2Nhc2UgNzp0aGlzLl90ZXJtaW5hbC53cmFwYXJvdW5kTW9kZT0hMTticmVhaztjYXNlIDEyOmJyZWFrO2Nhc2UgNjY6dGhpcy5fbG9nU2VydmljZS5kZWJ1ZyhcIlN3aXRjaGluZyBiYWNrIHRvIG5vcm1hbCBrZXlwYWQuXCIpLHRoaXMuX3Rlcm1pbmFsLmFwcGxpY2F0aW9uS2V5cGFkPSExLHRoaXMuX3Rlcm1pbmFsLnZpZXdwb3J0JiZ0aGlzLl90ZXJtaW5hbC52aWV3cG9ydC5zeW5jU2Nyb2xsQXJlYSgpO2JyZWFrO2Nhc2UgOTpjYXNlIDFlMzpjYXNlIDEwMDI6Y2FzZSAxMDAzOnRoaXMuX2NvcmVNb3VzZVNlcnZpY2UuYWN0aXZlUHJvdG9jb2w9XCJOT05FXCI7YnJlYWs7Y2FzZSAxMDA0OnRoaXMuX3Rlcm1pbmFsLnNlbmRGb2N1cz0hMTticmVhaztjYXNlIDEwMDU6Y2FzZSAxMDA2OmNhc2UgMTAxNTp0aGlzLl9jb3JlTW91c2VTZXJ2aWNlLmFjdGl2ZUVuY29kaW5nPVwiREVGQVVMVFwiO2JyZWFrO2Nhc2UgMjU6dGhpcy5fdGVybWluYWwuY3Vyc29ySGlkZGVuPSEwO2JyZWFrO2Nhc2UgMTA0ODp0aGlzLnJlc3RvcmVDdXJzb3IoKTticmVhaztjYXNlIDEwNDk6Y2FzZSA0NzpjYXNlIDEwNDc6dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXJzLmFjdGl2YXRlTm9ybWFsQnVmZmVyKCksMTA0OT09PWUucGFyYW1zW3RdJiZ0aGlzLnJlc3RvcmVDdXJzb3IoKSx0aGlzLl90ZXJtaW5hbC5yZWZyZXNoKDAsdGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLTEpLHRoaXMuX3Rlcm1pbmFsLnZpZXdwb3J0JiZ0aGlzLl90ZXJtaW5hbC52aWV3cG9ydC5zeW5jU2Nyb2xsQXJlYSgpLHRoaXMuX3Rlcm1pbmFsLnNob3dDdXJzb3IoKTticmVhaztjYXNlIDIwMDQ6dGhpcy5fdGVybWluYWwuYnJhY2tldGVkUGFzdGVNb2RlPSExfX0sdC5wcm90b3R5cGUuX2V4dHJhY3RDb2xvcj1mdW5jdGlvbihlLHQsaSl7dmFyIHI9WzAsMCwtMSwwLDAsMF0sbj0wLHM9MDtkb3tpZihyW3Mrbl09ZS5wYXJhbXNbdCtzXSxlLmhhc1N1YlBhcmFtcyh0K3MpKXt2YXIgbz1lLmdldFN1YlBhcmFtcyh0K3MpLGE9MDtkb3s1PT09clsxXSYmKG49MSkscltzK2ErMStuXT1vW2FdfXdoaWxlKCsrYTxvLmxlbmd0aCYmYStzKzErbjxyLmxlbmd0aCk7YnJlYWt9aWYoNT09PXJbMV0mJnMrbj49Mnx8Mj09PXJbMV0mJnMrbj49NSlicmVhaztyWzFdJiYobj0xKX13aGlsZSgrK3MrdDxlLmxlbmd0aCYmcytuPHIubGVuZ3RoKTtmb3IoYT0yO2E8ci5sZW5ndGg7KythKS0xPT09clthXSYmKHJbYV09MCk7cmV0dXJuIDM4PT09clswXT8yPT09clsxXT8oaS5mZ3w9NTAzMzE2NDgsaS5mZyY9LTE2Nzc3MjE2LGkuZmd8PXYuQXR0cmlidXRlRGF0YS5mcm9tQ29sb3JSR0IoW3JbM10scls0XSxyWzVdXSkpOjU9PT1yWzFdJiYoaS5mZyY9LTUwMzMxOTA0LGkuZmd8PTMzNTU0NDMyfDI1NSZyWzNdKTo0OD09PXJbMF0mJigyPT09clsxXT8oaS5iZ3w9NTAzMzE2NDgsaS5iZyY9LTE2Nzc3MjE2LGkuYmd8PXYuQXR0cmlidXRlRGF0YS5mcm9tQ29sb3JSR0IoW3JbM10scls0XSxyWzVdXSkpOjU9PT1yWzFdJiYoaS5iZyY9LTUwMzMxOTA0LGkuYmd8PTMzNTU0NDMyfDI1NSZyWzNdKSksc30sdC5wcm90b3R5cGUuY2hhckF0dHJpYnV0ZXM9ZnVuY3Rpb24oZSl7aWYoMT09PWUubGVuZ3RoJiYwPT09ZS5wYXJhbXNbMF0pcmV0dXJuIHRoaXMuX3Rlcm1pbmFsLmN1ckF0dHJEYXRhLmZnPWYuREVGQVVMVF9BVFRSX0RBVEEuZmcsdm9pZCh0aGlzLl90ZXJtaW5hbC5jdXJBdHRyRGF0YS5iZz1mLkRFRkFVTFRfQVRUUl9EQVRBLmJnKTtmb3IodmFyIHQsaT1lLmxlbmd0aCxyPXRoaXMuX3Rlcm1pbmFsLmN1ckF0dHJEYXRhLG49MDtuPGk7bisrKSh0PWUucGFyYW1zW25dKT49MzAmJnQ8PTM3PyhyLmZnJj0tNTAzMzE5MDQsci5mZ3w9MTY3NzcyMTZ8dC0zMCk6dD49NDAmJnQ8PTQ3PyhyLmJnJj0tNTAzMzE5MDQsci5iZ3w9MTY3NzcyMTZ8dC00MCk6dD49OTAmJnQ8PTk3PyhyLmZnJj0tNTAzMzE5MDQsci5mZ3w9MTY3NzcyMjR8dC05MCk6dD49MTAwJiZ0PD0xMDc/KHIuYmcmPS01MDMzMTkwNCxyLmJnfD0xNjc3NzIyNHx0LTEwMCk6MD09PXQ/KHIuZmc9Zi5ERUZBVUxUX0FUVFJfREFUQS5mZyxyLmJnPWYuREVGQVVMVF9BVFRSX0RBVEEuYmcpOjE9PT10P3IuZmd8PTEzNDIxNzcyODozPT09dD9yLmJnfD02NzEwODg2NDo0PT09dD9yLmZnfD0yNjg0MzU0NTY6NT09PXQ/ci5mZ3w9NTM2ODcwOTEyOjc9PT10P3IuZmd8PTY3MTA4ODY0Ojg9PT10P3IuZmd8PTEwNzM3NDE4MjQ6Mj09PXQ/ci5iZ3w9MTM0MjE3NzI4OjIyPT09dD8oci5mZyY9LTEzNDIxNzcyOSxyLmJnJj0tMTM0MjE3NzI5KToyMz09PXQ/ci5iZyY9LTY3MTA4ODY1OjI0PT09dD9yLmZnJj0tMjY4NDM1NDU3OjI1PT09dD9yLmZnJj0tNTM2ODcwOTEzOjI3PT09dD9yLmZnJj0tNjcxMDg4NjU6Mjg9PT10P3IuZmcmPS0xMDczNzQxODI1OjM5PT09dD8oci5mZyY9LTY3MTA4ODY0LHIuZmd8PTE2Nzc3MjE1JmYuREVGQVVMVF9BVFRSX0RBVEEuZmcpOjQ5PT09dD8oci5iZyY9LTY3MTA4ODY0LHIuYmd8PTE2Nzc3MjE1JmYuREVGQVVMVF9BVFRSX0RBVEEuYmcpOjM4PT09dHx8NDg9PT10P24rPXRoaXMuX2V4dHJhY3RDb2xvcihlLG4scik6MTAwPT09dD8oci5mZyY9LTY3MTA4ODY0LHIuZmd8PTE2Nzc3MjE1JmYuREVGQVVMVF9BVFRSX0RBVEEuZmcsci5iZyY9LTY3MTA4ODY0LHIuYmd8PTE2Nzc3MjE1JmYuREVGQVVMVF9BVFRSX0RBVEEuYmcpOnRoaXMuX2xvZ1NlcnZpY2UuZGVidWcoXCJVbmtub3duIFNHUiBhdHRyaWJ1dGU6ICVkLlwiLHQpfSx0LnByb3RvdHlwZS5kZXZpY2VTdGF0dXM9ZnVuY3Rpb24oZSl7c3dpdGNoKGUucGFyYW1zWzBdKXtjYXNlIDU6dGhpcy5fY29yZVNlcnZpY2UudHJpZ2dlckRhdGFFdmVudChzLkMwLkVTQytcIlswblwiKTticmVhaztjYXNlIDY6dmFyIHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueSsxLGk9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCsxO3RoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQocy5DMC5FU0MrXCJbXCIrdCtcIjtcIitpK1wiUlwiKX19LHQucHJvdG90eXBlLmRldmljZVN0YXR1c1ByaXZhdGU9ZnVuY3Rpb24oZSl7c3dpdGNoKGUucGFyYW1zWzBdKXtjYXNlIDY6dmFyIHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueSsxLGk9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCsxO3RoaXMuX2NvcmVTZXJ2aWNlLnRyaWdnZXJEYXRhRXZlbnQocy5DMC5FU0MrXCJbP1wiK3QrXCI7XCIraStcIlJcIil9fSx0LnByb3RvdHlwZS5zb2Z0UmVzZXQ9ZnVuY3Rpb24oZSl7dGhpcy5fdGVybWluYWwuY3Vyc29ySGlkZGVuPSExLHRoaXMuX3Rlcm1pbmFsLmluc2VydE1vZGU9ITEsdGhpcy5fdGVybWluYWwub3JpZ2luTW9kZT0hMSx0aGlzLl90ZXJtaW5hbC53cmFwYXJvdW5kTW9kZT0hMCx0aGlzLl90ZXJtaW5hbC5hcHBsaWNhdGlvbktleXBhZD0hMSx0aGlzLl90ZXJtaW5hbC52aWV3cG9ydCYmdGhpcy5fdGVybWluYWwudmlld3BvcnQuc3luY1Njcm9sbEFyZWEoKSx0aGlzLl9jb3JlU2VydmljZS5kZWNQcml2YXRlTW9kZXMuYXBwbGljYXRpb25DdXJzb3JLZXlzPSExLHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNjcm9sbFRvcD0wLHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNjcm9sbEJvdHRvbT10aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MtMSx0aGlzLl90ZXJtaW5hbC5jdXJBdHRyRGF0YT1mLkRFRkFVTFRfQVRUUl9EQVRBLmNsb25lKCksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55PTAsdGhpcy5fdGVybWluYWwuY2hhcnNldD1udWxsLHRoaXMuX3Rlcm1pbmFsLmdsZXZlbD0wLHRoaXMuX3Rlcm1pbmFsLmNoYXJzZXRzPVtudWxsXX0sdC5wcm90b3R5cGUuc2V0Q3Vyc29yU3R5bGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJhbXNbMF18fDE7c3dpdGNoKHQpe2Nhc2UgMTpjYXNlIDI6dGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5jdXJzb3JTdHlsZT1cImJsb2NrXCI7YnJlYWs7Y2FzZSAzOmNhc2UgNDp0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmN1cnNvclN0eWxlPVwidW5kZXJsaW5lXCI7YnJlYWs7Y2FzZSA1OmNhc2UgNjp0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmN1cnNvclN0eWxlPVwiYmFyXCJ9dmFyIGk9dCUyPT0xO3RoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuY3Vyc29yQmxpbms9aX0sdC5wcm90b3R5cGUuc2V0U2Nyb2xsUmVnaW9uPWZ1bmN0aW9uKGUpe3ZhciB0LGk9ZS5wYXJhbXNbMF18fDE7KGUubGVuZ3RoPDJ8fCh0PWUucGFyYW1zWzFdKT50aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3N8fDA9PT10KSYmKHQ9dGhpcy5fYnVmZmVyU2VydmljZS5yb3dzKSx0PmkmJih0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5zY3JvbGxUb3A9aS0xLHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNjcm9sbEJvdHRvbT10LTEsdGhpcy5fc2V0Q3Vyc29yKDAsMCkpfSx0LnByb3RvdHlwZS5zYXZlQ3Vyc29yPWZ1bmN0aW9uKGUpe3RoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNhdmVkWD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci54LHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNhdmVkWT10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55YmFzZSt0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55LHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNhdmVkQ3VyQXR0ckRhdGEuZmc9dGhpcy5fdGVybWluYWwuY3VyQXR0ckRhdGEuZmcsdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIuc2F2ZWRDdXJBdHRyRGF0YS5iZz10aGlzLl90ZXJtaW5hbC5jdXJBdHRyRGF0YS5iZyx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5zYXZlZENoYXJzZXQ9dGhpcy5fdGVybWluYWwuY2hhcnNldH0sdC5wcm90b3R5cGUucmVzdG9yZUN1cnNvcj1mdW5jdGlvbihlKXt0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci54PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNhdmVkWHx8MCx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55PU1hdGgubWF4KHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNhdmVkWS10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55YmFzZSwwKSx0aGlzLl90ZXJtaW5hbC5jdXJBdHRyRGF0YS5mZz10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5zYXZlZEN1ckF0dHJEYXRhLmZnLHRoaXMuX3Rlcm1pbmFsLmN1ckF0dHJEYXRhLmJnPXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnNhdmVkQ3VyQXR0ckRhdGEuYmcsdGhpcy5fdGVybWluYWwuY2hhcnNldD10aGlzLl9zYXZlZENoYXJzZXQsdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIuc2F2ZWRDaGFyc2V0JiYodGhpcy5fdGVybWluYWwuY2hhcnNldD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5zYXZlZENoYXJzZXQpLHRoaXMuX3Jlc3RyaWN0Q3Vyc29yKCl9LHQucHJvdG90eXBlLnNldFRpdGxlPWZ1bmN0aW9uKGUpe3RoaXMuX3Rlcm1pbmFsLmhhbmRsZVRpdGxlKGUpfSx0LnByb3RvdHlwZS5uZXh0TGluZT1mdW5jdGlvbigpe3RoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLng9MCx0aGlzLmluZGV4KCl9LHQucHJvdG90eXBlLmtleXBhZEFwcGxpY2F0aW9uTW9kZT1mdW5jdGlvbigpe3RoaXMuX2xvZ1NlcnZpY2UuZGVidWcoXCJTZXJpYWwgcG9ydCByZXF1ZXN0ZWQgYXBwbGljYXRpb24ga2V5cGFkLlwiKSx0aGlzLl90ZXJtaW5hbC5hcHBsaWNhdGlvbktleXBhZD0hMCx0aGlzLl90ZXJtaW5hbC52aWV3cG9ydCYmdGhpcy5fdGVybWluYWwudmlld3BvcnQuc3luY1Njcm9sbEFyZWEoKX0sdC5wcm90b3R5cGUua2V5cGFkTnVtZXJpY01vZGU9ZnVuY3Rpb24oKXt0aGlzLl9sb2dTZXJ2aWNlLmRlYnVnKFwiU3dpdGNoaW5nIGJhY2sgdG8gbm9ybWFsIGtleXBhZC5cIiksdGhpcy5fdGVybWluYWwuYXBwbGljYXRpb25LZXlwYWQ9ITEsdGhpcy5fdGVybWluYWwudmlld3BvcnQmJnRoaXMuX3Rlcm1pbmFsLnZpZXdwb3J0LnN5bmNTY3JvbGxBcmVhKCl9LHQucHJvdG90eXBlLnNlbGVjdERlZmF1bHRDaGFyc2V0PWZ1bmN0aW9uKCl7dGhpcy5fdGVybWluYWwuc2V0Z0xldmVsKDApLHRoaXMuX3Rlcm1pbmFsLnNldGdDaGFyc2V0KDAsby5ERUZBVUxUX0NIQVJTRVQpfSx0LnByb3RvdHlwZS5zZWxlY3RDaGFyc2V0PWZ1bmN0aW9uKGUpezI9PT1lLmxlbmd0aD9cIi9cIiE9PWVbMF0mJnRoaXMuX3Rlcm1pbmFsLnNldGdDaGFyc2V0KG1bZVswXV0sby5DSEFSU0VUU1tlWzFdXXx8by5ERUZBVUxUX0NIQVJTRVQpOnRoaXMuc2VsZWN0RGVmYXVsdENoYXJzZXQoKX0sdC5wcm90b3R5cGUuaW5kZXg9ZnVuY3Rpb24oKXt0aGlzLl9yZXN0cmljdEN1cnNvcigpO3ZhciBlPXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyO3RoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnkrKyxlLnk9PT1lLnNjcm9sbEJvdHRvbSsxPyhlLnktLSx0aGlzLl90ZXJtaW5hbC5zY3JvbGwoKSk6ZS55Pj10aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MmJihlLnk9dGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLTEpLHRoaXMuX3Jlc3RyaWN0Q3Vyc29yKCl9LHQucHJvdG90eXBlLnRhYlNldD1mdW5jdGlvbigpe3RoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnRhYnNbdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueF09ITB9LHQucHJvdG90eXBlLnJldmVyc2VJbmRleD1mdW5jdGlvbigpe3RoaXMuX3Jlc3RyaWN0Q3Vyc29yKCk7dmFyIGU9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXI7aWYoZS55PT09ZS5zY3JvbGxUb3Ape3ZhciB0PWUuc2Nyb2xsQm90dG9tLWUuc2Nyb2xsVG9wO2UubGluZXMuc2hpZnRFbGVtZW50cyhlLnkrZS55YmFzZSx0LDEpLGUubGluZXMuc2V0KGUueStlLnliYXNlLGUuZ2V0QmxhbmtMaW5lKHRoaXMuX3Rlcm1pbmFsLmVyYXNlQXR0ckRhdGEoKSkpLHRoaXMuX2RpcnR5Um93U2VydmljZS5tYXJrUmFuZ2VEaXJ0eShlLnNjcm9sbFRvcCxlLnNjcm9sbEJvdHRvbSl9ZWxzZSBlLnktLSx0aGlzLl9yZXN0cmljdEN1cnNvcigpfSx0LnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX3BhcnNlci5yZXNldCgpLHRoaXMuX3Rlcm1pbmFsLnJlc2V0KCl9LHQucHJvdG90eXBlLnNldGdMZXZlbD1mdW5jdGlvbihlKXt0aGlzLl90ZXJtaW5hbC5zZXRnTGV2ZWwoZSl9LHQucHJvdG90eXBlLnNjcmVlbkFsaWdubWVudFBhdHRlcm49ZnVuY3Rpb24oKXt2YXIgZT1uZXcgcC5DZWxsRGF0YTtlLmNvbnRlbnQ9MTw8MjJ8XCJFXCIuY2hhckNvZGVBdCgwKSxlLmZnPXRoaXMuX3Rlcm1pbmFsLmN1ckF0dHJEYXRhLmZnLGUuYmc9dGhpcy5fdGVybWluYWwuY3VyQXR0ckRhdGEuYmc7dmFyIHQ9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXI7dGhpcy5fc2V0Q3Vyc29yKDAsMCk7Zm9yKHZhciBpPTA7aTx0aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3M7KytpKXt2YXIgcj10LnkrdC55YmFzZStpO3QubGluZXMuZ2V0KHIpLmZpbGwoZSksdC5saW5lcy5nZXQocikuaXNXcmFwcGVkPSExfXRoaXMuX2RpcnR5Um93U2VydmljZS5tYXJrQWxsRGlydHkoKSx0aGlzLl9zZXRDdXJzb3IoMCwwKX0sdH0obC5EaXNwb3NhYmxlKTt0LklucHV0SGFuZGxlcj1DfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ocj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYoZVtpXT10W2ldKX0pKGUsdCl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KTooaS5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IGkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHM9aSgyKSxvPWkoMTQpLGE9aSgxOSksYz1pKDIwKSxsPWkoMjIpLGg9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMudGFibGU9bmV3IFVpbnQ4QXJyYXkoZSl9cmV0dXJuIGUucHJvdG90eXBlLnNldERlZmF1bHQ9ZnVuY3Rpb24oZSx0KXtvLmZpbGwodGhpcy50YWJsZSxlPDw0fHQpfSxlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSx0LGkscil7dGhpcy50YWJsZVt0PDw4fGVdPWk8PDR8cn0sZS5wcm90b3R5cGUuYWRkTWFueT1mdW5jdGlvbihlLHQsaSxyKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl0aGlzLnRhYmxlW3Q8PDh8ZVtuXV09aTw8NHxyfSxlfSgpO3QuVHJhbnNpdGlvblRhYmxlPWg7dC5WVDUwMF9UUkFOU0lUSU9OX1RBQkxFPWZ1bmN0aW9uKCl7dmFyIGU9bmV3IGgoNDA5NSksdD1BcnJheS5hcHBseShudWxsLEFycmF5KDI1NikpLm1hcChmdW5jdGlvbihlLHQpe3JldHVybiB0fSksaT1mdW5jdGlvbihlLGkpe3JldHVybiB0LnNsaWNlKGUsaSl9LHI9aSgzMiwxMjcpLG49aSgwLDI0KTtuLnB1c2goMjUpLG4ucHVzaC5hcHBseShuLGkoMjgsMzIpKTt2YXIgcyxvPWkoMCwxNCk7Zm9yKHMgaW4gZS5zZXREZWZhdWx0KDEsMCksZS5hZGRNYW55KHIsMCwyLDApLG8pZS5hZGRNYW55KFsyNCwyNiwxNTMsMTU0XSxzLDMsMCksZS5hZGRNYW55KGkoMTI4LDE0NCkscywzLDApLGUuYWRkTWFueShpKDE0NCwxNTIpLHMsMywwKSxlLmFkZCgxNTYscywwLDApLGUuYWRkKDI3LHMsMTEsMSksZS5hZGQoMTU3LHMsNCw4KSxlLmFkZE1hbnkoWzE1MiwxNTgsMTU5XSxzLDAsNyksZS5hZGQoMTU1LHMsMTEsMyksZS5hZGQoMTQ0LHMsMTEsOSk7cmV0dXJuIGUuYWRkTWFueShuLDAsMywwKSxlLmFkZE1hbnkobiwxLDMsMSksZS5hZGQoMTI3LDEsMCwxKSxlLmFkZE1hbnkobiw4LDAsOCksZS5hZGRNYW55KG4sMywzLDMpLGUuYWRkKDEyNywzLDAsMyksZS5hZGRNYW55KG4sNCwzLDQpLGUuYWRkKDEyNyw0LDAsNCksZS5hZGRNYW55KG4sNiwzLDYpLGUuYWRkTWFueShuLDUsMyw1KSxlLmFkZCgxMjcsNSwwLDUpLGUuYWRkTWFueShuLDIsMywyKSxlLmFkZCgxMjcsMiwwLDIpLGUuYWRkKDkzLDEsNCw4KSxlLmFkZE1hbnkociw4LDUsOCksZS5hZGQoMTI3LDgsNSw4KSxlLmFkZE1hbnkoWzE1NiwyNywyNCwyNiw3XSw4LDYsMCksZS5hZGRNYW55KGkoMjgsMzIpLDgsMCw4KSxlLmFkZE1hbnkoWzg4LDk0LDk1XSwxLDAsNyksZS5hZGRNYW55KHIsNywwLDcpLGUuYWRkTWFueShuLDcsMCw3KSxlLmFkZCgxNTYsNywwLDApLGUuYWRkKDEyNyw3LDAsNyksZS5hZGQoOTEsMSwxMSwzKSxlLmFkZE1hbnkoaSg2NCwxMjcpLDMsNywwKSxlLmFkZE1hbnkoaSg0OCw2MCksMyw4LDQpLGUuYWRkTWFueShbNjAsNjEsNjIsNjNdLDMsOSw0KSxlLmFkZE1hbnkoaSg0OCw2MCksNCw4LDQpLGUuYWRkTWFueShpKDY0LDEyNyksNCw3LDApLGUuYWRkTWFueShbNjAsNjEsNjIsNjNdLDQsMCw2KSxlLmFkZE1hbnkoaSgzMiw2NCksNiwwLDYpLGUuYWRkKDEyNyw2LDAsNiksZS5hZGRNYW55KGkoNjQsMTI3KSw2LDAsMCksZS5hZGRNYW55KGkoMzIsNDgpLDMsOSw1KSxlLmFkZE1hbnkoaSgzMiw0OCksNSw5LDUpLGUuYWRkTWFueShpKDQ4LDY0KSw1LDAsNiksZS5hZGRNYW55KGkoNjQsMTI3KSw1LDcsMCksZS5hZGRNYW55KGkoMzIsNDgpLDQsOSw1KSxlLmFkZE1hbnkoaSgzMiw0OCksMSw5LDIpLGUuYWRkTWFueShpKDMyLDQ4KSwyLDksMiksZS5hZGRNYW55KGkoNDgsMTI3KSwyLDEwLDApLGUuYWRkTWFueShpKDQ4LDgwKSwxLDEwLDApLGUuYWRkTWFueShpKDgxLDg4KSwxLDEwLDApLGUuYWRkTWFueShbODksOTAsOTJdLDEsMTAsMCksZS5hZGRNYW55KGkoOTYsMTI3KSwxLDEwLDApLGUuYWRkKDgwLDEsMTEsOSksZS5hZGRNYW55KG4sOSwwLDkpLGUuYWRkKDEyNyw5LDAsOSksZS5hZGRNYW55KGkoMjgsMzIpLDksMCw5KSxlLmFkZE1hbnkoaSgzMiw0OCksOSw5LDEyKSxlLmFkZE1hbnkoaSg0OCw2MCksOSw4LDEwKSxlLmFkZE1hbnkoWzYwLDYxLDYyLDYzXSw5LDksMTApLGUuYWRkTWFueShuLDExLDAsMTEpLGUuYWRkTWFueShpKDMyLDEyOCksMTEsMCwxMSksZS5hZGRNYW55KGkoMjgsMzIpLDExLDAsMTEpLGUuYWRkTWFueShuLDEwLDAsMTApLGUuYWRkKDEyNywxMCwwLDEwKSxlLmFkZE1hbnkoaSgyOCwzMiksMTAsMCwxMCksZS5hZGRNYW55KGkoNDgsNjApLDEwLDgsMTApLGUuYWRkTWFueShbNjAsNjEsNjIsNjNdLDEwLDAsMTEpLGUuYWRkTWFueShpKDMyLDQ4KSwxMCw5LDEyKSxlLmFkZE1hbnkobiwxMiwwLDEyKSxlLmFkZCgxMjcsMTIsMCwxMiksZS5hZGRNYW55KGkoMjgsMzIpLDEyLDAsMTIpLGUuYWRkTWFueShpKDMyLDQ4KSwxMiw5LDEyKSxlLmFkZE1hbnkoaSg0OCw2NCksMTIsMCwxMSksZS5hZGRNYW55KGkoNjQsMTI3KSwxMiwxMiwxMyksZS5hZGRNYW55KGkoNjQsMTI3KSwxMCwxMiwxMyksZS5hZGRNYW55KGkoNjQsMTI3KSw5LDEyLDEzKSxlLmFkZE1hbnkobiwxMywxMywxMyksZS5hZGRNYW55KHIsMTMsMTMsMTMpLGUuYWRkKDEyNywxMywwLDEzKSxlLmFkZE1hbnkoWzI3LDE1NiwyNCwyNl0sMTMsMTQsMCksZS5hZGQoMTYwLDAsMiwwKSxlLmFkZCgxNjAsOCw1LDgpLGUuYWRkKDE2MCw2LDAsNiksZS5hZGQoMTYwLDExLDAsMTEpLGUuYWRkKDE2MCwxMywxMywxMyksZX0oKTt2YXIgdT1mdW5jdGlvbihlKXtmdW5jdGlvbiBpKGkpe3ZvaWQgMD09PWkmJihpPXQuVlQ1MDBfVFJBTlNJVElPTl9UQUJMRSk7dmFyIHI9ZS5jYWxsKHRoaXMpfHx0aGlzO3JldHVybiByLlRSQU5TSVRJT05TPWksci5pbml0aWFsU3RhdGU9MCxyLmN1cnJlbnRTdGF0ZT1yLmluaXRpYWxTdGF0ZSxyLl9wYXJhbXM9bmV3IGEuUGFyYW1zLHIuX3BhcmFtcy5hZGRQYXJhbSgwKSxyLl9jb2xsZWN0PTAsci5wcmVjZWRpbmdDb2RlcG9pbnQ9MCxyLl9wcmludEhhbmRsZXJGYj1mdW5jdGlvbihlLHQsaSl7fSxyLl9leGVjdXRlSGFuZGxlckZiPWZ1bmN0aW9uKGUpe30sci5fY3NpSGFuZGxlckZiPWZ1bmN0aW9uKGUsdCl7fSxyLl9lc2NIYW5kbGVyRmI9ZnVuY3Rpb24oZSl7fSxyLl9lcnJvckhhbmRsZXJGYj1mdW5jdGlvbihlKXtyZXR1cm4gZX0sci5fcHJpbnRIYW5kbGVyPXIuX3ByaW50SGFuZGxlckZiLHIuX2V4ZWN1dGVIYW5kbGVycz1PYmplY3QuY3JlYXRlKG51bGwpLHIuX2NzaUhhbmRsZXJzPU9iamVjdC5jcmVhdGUobnVsbCksci5fZXNjSGFuZGxlcnM9T2JqZWN0LmNyZWF0ZShudWxsKSxyLl9vc2NQYXJzZXI9bmV3IGMuT3NjUGFyc2VyLHIuX2Rjc1BhcnNlcj1uZXcgbC5EY3NQYXJzZXIsci5fZXJyb3JIYW5kbGVyPXIuX2Vycm9ySGFuZGxlckZiLHIuc2V0RXNjSGFuZGxlcih7ZmluYWw6XCJcXFxcXCJ9LGZ1bmN0aW9uKCl7fSkscn1yZXR1cm4gbihpLGUpLGkucHJvdG90eXBlLl9pZGVudGlmaWVyPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9WzY0LDEyNl0pO3ZhciBpPTA7aWYoZS5wcmVmaXgpe2lmKGUucHJlZml4Lmxlbmd0aD4xKXRocm93IG5ldyBFcnJvcihcIm9ubHkgb25lIGJ5dGUgYXMgcHJlZml4IHN1cHBvcnRlZFwiKTtpZigoaT1lLnByZWZpeC5jaGFyQ29kZUF0KDApKSYmNjA+aXx8aT42Myl0aHJvdyBuZXcgRXJyb3IoXCJwcmVmaXggbXVzdCBiZSBpbiByYW5nZSAweDNjIC4uIDB4M2ZcIil9aWYoZS5pbnRlcm1lZGlhdGVzKXtpZihlLmludGVybWVkaWF0ZXMubGVuZ3RoPjIpdGhyb3cgbmV3IEVycm9yKFwib25seSB0d28gYnl0ZXMgYXMgaW50ZXJtZWRpYXRlcyBhcmUgc3VwcG9ydGVkXCIpO2Zvcih2YXIgcj0wO3I8ZS5pbnRlcm1lZGlhdGVzLmxlbmd0aDsrK3Ipe3ZhciBuPWUuaW50ZXJtZWRpYXRlcy5jaGFyQ29kZUF0KHIpO2lmKDMyPm58fG4+NDcpdGhyb3cgbmV3IEVycm9yKFwiaW50ZXJtZWRpYXRlIG11c3QgYmUgaW4gcmFuZ2UgMHgyMCAuLiAweDJmXCIpO2k8PD04LGl8PW59fWlmKDEhPT1lLmZpbmFsLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJmaW5hbCBtdXN0IGJlIGEgc2luZ2xlIGJ5dGVcIik7dmFyIHM9ZS5maW5hbC5jaGFyQ29kZUF0KDApO2lmKHRbMF0+c3x8cz50WzFdKXRocm93IG5ldyBFcnJvcihcImZpbmFsIG11c3QgYmUgaW4gcmFuZ2UgXCIrdFswXStcIiAuLiBcIit0WzFdKTtyZXR1cm4gaTw8PTgsaXw9c30saS5wcm90b3R5cGUuaWRlbnRUb1N0cmluZz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W107ZTspdC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmUpKSxlPj49ODtyZXR1cm4gdC5yZXZlcnNlKCkuam9pbihcIlwiKX0saS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX2NzaUhhbmRsZXJzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXhlY3V0ZUhhbmRsZXJzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXNjSGFuZGxlcnM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9vc2NQYXJzZXIuZGlzcG9zZSgpLHRoaXMuX2Rjc1BhcnNlci5kaXNwb3NlKCl9LGkucHJvdG90eXBlLnNldFByaW50SGFuZGxlcj1mdW5jdGlvbihlKXt0aGlzLl9wcmludEhhbmRsZXI9ZX0saS5wcm90b3R5cGUuY2xlYXJQcmludEhhbmRsZXI9ZnVuY3Rpb24oKXt0aGlzLl9wcmludEhhbmRsZXI9dGhpcy5fcHJpbnRIYW5kbGVyRmJ9LGkucHJvdG90eXBlLmFkZEVzY0hhbmRsZXI9ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLl9pZGVudGlmaWVyKGUsWzQ4LDEyNl0pO3ZvaWQgMD09PXRoaXMuX2VzY0hhbmRsZXJzW2ldJiYodGhpcy5fZXNjSGFuZGxlcnNbaV09W10pO3ZhciByPXRoaXMuX2VzY0hhbmRsZXJzW2ldO3JldHVybiByLnB1c2godCkse2Rpc3Bvc2U6ZnVuY3Rpb24oKXt2YXIgZT1yLmluZGV4T2YodCk7LTEhPT1lJiZyLnNwbGljZShlLDEpfX19LGkucHJvdG90eXBlLnNldEVzY0hhbmRsZXI9ZnVuY3Rpb24oZSx0KXt0aGlzLl9lc2NIYW5kbGVyc1t0aGlzLl9pZGVudGlmaWVyKGUsWzQ4LDEyNl0pXT1bdF19LGkucHJvdG90eXBlLmNsZWFyRXNjSGFuZGxlcj1mdW5jdGlvbihlKXt0aGlzLl9lc2NIYW5kbGVyc1t0aGlzLl9pZGVudGlmaWVyKGUsWzQ4LDEyNl0pXSYmZGVsZXRlIHRoaXMuX2VzY0hhbmRsZXJzW3RoaXMuX2lkZW50aWZpZXIoZSxbNDgsMTI2XSldfSxpLnByb3RvdHlwZS5zZXRFc2NIYW5kbGVyRmFsbGJhY2s9ZnVuY3Rpb24oZSl7dGhpcy5fZXNjSGFuZGxlckZiPWV9LGkucHJvdG90eXBlLnNldEV4ZWN1dGVIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7dGhpcy5fZXhlY3V0ZUhhbmRsZXJzW2UuY2hhckNvZGVBdCgwKV09dH0saS5wcm90b3R5cGUuY2xlYXJFeGVjdXRlSGFuZGxlcj1mdW5jdGlvbihlKXt0aGlzLl9leGVjdXRlSGFuZGxlcnNbZS5jaGFyQ29kZUF0KDApXSYmZGVsZXRlIHRoaXMuX2V4ZWN1dGVIYW5kbGVyc1tlLmNoYXJDb2RlQXQoMCldfSxpLnByb3RvdHlwZS5zZXRFeGVjdXRlSGFuZGxlckZhbGxiYWNrPWZ1bmN0aW9uKGUpe3RoaXMuX2V4ZWN1dGVIYW5kbGVyRmI9ZX0saS5wcm90b3R5cGUuYWRkQ3NpSGFuZGxlcj1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuX2lkZW50aWZpZXIoZSk7dm9pZCAwPT09dGhpcy5fY3NpSGFuZGxlcnNbaV0mJih0aGlzLl9jc2lIYW5kbGVyc1tpXT1bXSk7dmFyIHI9dGhpcy5fY3NpSGFuZGxlcnNbaV07cmV0dXJuIHIucHVzaCh0KSx7ZGlzcG9zZTpmdW5jdGlvbigpe3ZhciBlPXIuaW5kZXhPZih0KTstMSE9PWUmJnIuc3BsaWNlKGUsMSl9fX0saS5wcm90b3R5cGUuc2V0Q3NpSGFuZGxlcj1mdW5jdGlvbihlLHQpe3RoaXMuX2NzaUhhbmRsZXJzW3RoaXMuX2lkZW50aWZpZXIoZSldPVt0XX0saS5wcm90b3R5cGUuY2xlYXJDc2lIYW5kbGVyPWZ1bmN0aW9uKGUpe3RoaXMuX2NzaUhhbmRsZXJzW3RoaXMuX2lkZW50aWZpZXIoZSldJiZkZWxldGUgdGhpcy5fY3NpSGFuZGxlcnNbdGhpcy5faWRlbnRpZmllcihlKV19LGkucHJvdG90eXBlLnNldENzaUhhbmRsZXJGYWxsYmFjaz1mdW5jdGlvbihlKXt0aGlzLl9jc2lIYW5kbGVyRmI9ZX0saS5wcm90b3R5cGUuYWRkRGNzSGFuZGxlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9kY3NQYXJzZXIuYWRkSGFuZGxlcih0aGlzLl9pZGVudGlmaWVyKGUpLHQpfSxpLnByb3RvdHlwZS5zZXREY3NIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7dGhpcy5fZGNzUGFyc2VyLnNldEhhbmRsZXIodGhpcy5faWRlbnRpZmllcihlKSx0KX0saS5wcm90b3R5cGUuY2xlYXJEY3NIYW5kbGVyPWZ1bmN0aW9uKGUpe3RoaXMuX2Rjc1BhcnNlci5jbGVhckhhbmRsZXIodGhpcy5faWRlbnRpZmllcihlKSl9LGkucHJvdG90eXBlLnNldERjc0hhbmRsZXJGYWxsYmFjaz1mdW5jdGlvbihlKXt0aGlzLl9kY3NQYXJzZXIuc2V0SGFuZGxlckZhbGxiYWNrKGUpfSxpLnByb3RvdHlwZS5hZGRPc2NIYW5kbGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX29zY1BhcnNlci5hZGRIYW5kbGVyKGUsdCl9LGkucHJvdG90eXBlLnNldE9zY0hhbmRsZXI9ZnVuY3Rpb24oZSx0KXt0aGlzLl9vc2NQYXJzZXIuc2V0SGFuZGxlcihlLHQpfSxpLnByb3RvdHlwZS5jbGVhck9zY0hhbmRsZXI9ZnVuY3Rpb24oZSl7dGhpcy5fb3NjUGFyc2VyLmNsZWFySGFuZGxlcihlKX0saS5wcm90b3R5cGUuc2V0T3NjSGFuZGxlckZhbGxiYWNrPWZ1bmN0aW9uKGUpe3RoaXMuX29zY1BhcnNlci5zZXRIYW5kbGVyRmFsbGJhY2soZSl9LGkucHJvdG90eXBlLnNldEVycm9ySGFuZGxlcj1mdW5jdGlvbihlKXt0aGlzLl9lcnJvckhhbmRsZXI9ZX0saS5wcm90b3R5cGUuY2xlYXJFcnJvckhhbmRsZXI9ZnVuY3Rpb24oKXt0aGlzLl9lcnJvckhhbmRsZXI9dGhpcy5fZXJyb3JIYW5kbGVyRmJ9LGkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5jdXJyZW50U3RhdGU9dGhpcy5pbml0aWFsU3RhdGUsdGhpcy5fb3NjUGFyc2VyLnJlc2V0KCksdGhpcy5fZGNzUGFyc2VyLnJlc2V0KCksdGhpcy5fcGFyYW1zLnJlc2V0KCksdGhpcy5fcGFyYW1zLmFkZFBhcmFtKDApLHRoaXMuX2NvbGxlY3Q9MCx0aGlzLnByZWNlZGluZ0NvZGVwb2ludD0wfSxpLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgaT0wLHI9MCxuPXRoaXMuY3VycmVudFN0YXRlLHM9dGhpcy5fb3NjUGFyc2VyLG89dGhpcy5fZGNzUGFyc2VyLGE9dGhpcy5fY29sbGVjdCxjPXRoaXMuX3BhcmFtcyxsPXRoaXMuVFJBTlNJVElPTlMudGFibGUsaD0wO2g8dDsrK2gpe3N3aXRjaCgocj1sW248PDh8KChpPWVbaF0pPDE2MD9pOjE2MCldKT4+NCl7Y2FzZSAyOmZvcih2YXIgdT1oKzE7OysrdSl7aWYodT49dHx8KGk9ZVt1XSk8MzJ8fGk+MTI2JiZpPDE2MCl7dGhpcy5fcHJpbnRIYW5kbGVyKGUsaCx1KSxoPXUtMTticmVha31pZigrK3U+PXR8fChpPWVbdV0pPDMyfHxpPjEyNiYmaTwxNjApe3RoaXMuX3ByaW50SGFuZGxlcihlLGgsdSksaD11LTE7YnJlYWt9aWYoKyt1Pj10fHwoaT1lW3VdKTwzMnx8aT4xMjYmJmk8MTYwKXt0aGlzLl9wcmludEhhbmRsZXIoZSxoLHUpLGg9dS0xO2JyZWFrfWlmKCsrdT49dHx8KGk9ZVt1XSk8MzJ8fGk+MTI2JiZpPDE2MCl7dGhpcy5fcHJpbnRIYW5kbGVyKGUsaCx1KSxoPXUtMTticmVha319YnJlYWs7Y2FzZSAzOnRoaXMuX2V4ZWN1dGVIYW5kbGVyc1tpXT90aGlzLl9leGVjdXRlSGFuZGxlcnNbaV0oKTp0aGlzLl9leGVjdXRlSGFuZGxlckZiKGkpLHRoaXMucHJlY2VkaW5nQ29kZXBvaW50PTA7YnJlYWs7Y2FzZSAwOmJyZWFrO2Nhc2UgMTppZih0aGlzLl9lcnJvckhhbmRsZXIoe3Bvc2l0aW9uOmgsY29kZTppLGN1cnJlbnRTdGF0ZTpuLGNvbGxlY3Q6YSxwYXJhbXM6YyxhYm9ydDohMX0pLmFib3J0KXJldHVybjticmVhaztjYXNlIDc6Zm9yKHZhciBmPXRoaXMuX2NzaUhhbmRsZXJzW2E8PDh8aV0sXz1mP2YubGVuZ3RoLTE6LTE7Xz49MCYmITE9PT1mW19dKGMpO18tLSk7XzwwJiZ0aGlzLl9jc2lIYW5kbGVyRmIoYTw8OHxpLGMpLHRoaXMucHJlY2VkaW5nQ29kZXBvaW50PTA7YnJlYWs7Y2FzZSA4OmRve3N3aXRjaChpKXtjYXNlIDU5OmMuYWRkUGFyYW0oMCk7YnJlYWs7Y2FzZSA1ODpjLmFkZFN1YlBhcmFtKC0xKTticmVhaztkZWZhdWx0OmMuYWRkRGlnaXQoaS00OCl9fXdoaWxlKCsraDx0JiYoaT1lW2hdKT40NyYmaTw2MCk7aC0tO2JyZWFrO2Nhc2UgOTphPDw9OCxhfD1pO2JyZWFrO2Nhc2UgMTA6Zm9yKHZhciBkPXRoaXMuX2VzY0hhbmRsZXJzW2E8PDh8aV0scD1kP2QubGVuZ3RoLTE6LTE7cD49MCYmITE9PT1kW3BdKCk7cC0tKTtwPDAmJnRoaXMuX2VzY0hhbmRsZXJGYihhPDw4fGkpLHRoaXMucHJlY2VkaW5nQ29kZXBvaW50PTA7YnJlYWs7Y2FzZSAxMTpjLnJlc2V0KCksYy5hZGRQYXJhbSgwKSxhPTA7YnJlYWs7Y2FzZSAxMjpvLmhvb2soYTw8OHxpLGMpO2JyZWFrO2Nhc2UgMTM6Zm9yKHZhciB2PWgrMTs7Kyt2KWlmKHY+PXR8fDI0PT09KGk9ZVt2XSl8fDI2PT09aXx8Mjc9PT1pfHxpPjEyNyYmaTwxNjApe28ucHV0KGUsaCx2KSxoPXYtMTticmVha31icmVhaztjYXNlIDE0Om8udW5ob29rKDI0IT09aSYmMjYhPT1pKSwyNz09PWkmJihyfD0xKSxjLnJlc2V0KCksYy5hZGRQYXJhbSgwKSxhPTAsdGhpcy5wcmVjZWRpbmdDb2RlcG9pbnQ9MDticmVhaztjYXNlIDQ6cy5zdGFydCgpO2JyZWFrO2Nhc2UgNTpmb3IodmFyIGc9aCsxOztnKyspaWYoZz49dHx8KGk9ZVtnXSk8MzJ8fGk+MTI3JiZpPD0xNTkpe3MucHV0KGUsaCxnKSxoPWctMTticmVha31icmVhaztjYXNlIDY6cy5lbmQoMjQhPT1pJiYyNiE9PWkpLDI3PT09aSYmKHJ8PTEpLGMucmVzZXQoKSxjLmFkZFBhcmFtKDApLGE9MCx0aGlzLnByZWNlZGluZ0NvZGVwb2ludD0wfW49MTUmcn10aGlzLl9jb2xsZWN0PWEsdGhpcy5jdXJyZW50U3RhdGU9bn0saX0ocy5EaXNwb3NhYmxlKTt0LkVzY2FwZVNlcXVlbmNlUGFyc2VyPXV9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcixuPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocj1mdW5jdGlvbihlLHQpe3JldHVybihyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihlW2ldPXRbaV0pfSkoZSx0KX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXIoZSx0KSxlLnByb3RvdHlwZT1udWxsPT09dD9PYmplY3QuY3JlYXRlKHQpOihpLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgaSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1pKDQwKSxvPWkoNDUpLGE9aSg0NiksYz1pKDQ3KSxsPWkoMjcpLGg9aSgyKSx1PWkoMjMpLGY9MSxfPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxpLHIsbixoKXt2YXIgdT1lLmNhbGwodGhpcyl8fHRoaXM7dS5fY29sb3JzPXQsdS5fdGVybWluYWw9aSx1LmJ1ZmZlclNlcnZpY2U9cix1Ll9jaGFyU2l6ZVNlcnZpY2U9bix1Lm9wdGlvbnNTZXJ2aWNlPWgsdS5faWQ9ZisrO3ZhciBfPXUuX3Rlcm1pbmFsLm9wdGlvbnMuYWxsb3dUcmFuc3BhcmVuY3k7cmV0dXJuIHUuX2NoYXJhY3RlckpvaW5lclJlZ2lzdHJ5PW5ldyBsLkNoYXJhY3RlckpvaW5lclJlZ2lzdHJ5KHIpLHUuX3JlbmRlckxheWVycz1bbmV3IHMuVGV4dFJlbmRlckxheWVyKHUuX3Rlcm1pbmFsLnNjcmVlbkVsZW1lbnQsMCx1Ll9jb2xvcnMsdS5fY2hhcmFjdGVySm9pbmVyUmVnaXN0cnksXyx1Ll9pZCxyLGgpLG5ldyBvLlNlbGVjdGlvblJlbmRlckxheWVyKHUuX3Rlcm1pbmFsLnNjcmVlbkVsZW1lbnQsMSx1Ll9jb2xvcnMsdS5faWQscixoKSxuZXcgYy5MaW5rUmVuZGVyTGF5ZXIodS5fdGVybWluYWwuc2NyZWVuRWxlbWVudCwyLHUuX2NvbG9ycyx1Ll9pZCx1Ll90ZXJtaW5hbC5saW5raWZpZXIscixoKSxuZXcgYS5DdXJzb3JSZW5kZXJMYXllcih1Ll90ZXJtaW5hbC5zY3JlZW5FbGVtZW50LDMsdS5fY29sb3JzLHUuX3Rlcm1pbmFsLHUuX2lkLHIsaCldLHUuZGltZW5zaW9ucz17c2NhbGVkQ2hhcldpZHRoOm51bGwsc2NhbGVkQ2hhckhlaWdodDpudWxsLHNjYWxlZENlbGxXaWR0aDpudWxsLHNjYWxlZENlbGxIZWlnaHQ6bnVsbCxzY2FsZWRDaGFyTGVmdDpudWxsLHNjYWxlZENoYXJUb3A6bnVsbCxzY2FsZWRDYW52YXNXaWR0aDpudWxsLHNjYWxlZENhbnZhc0hlaWdodDpudWxsLGNhbnZhc1dpZHRoOm51bGwsY2FudmFzSGVpZ2h0Om51bGwsYWN0dWFsQ2VsbFdpZHRoOm51bGwsYWN0dWFsQ2VsbEhlaWdodDpudWxsfSx1Ll9kZXZpY2VQaXhlbFJhdGlvPXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLHUuX3VwZGF0ZURpbWVuc2lvbnMoKSx1Lm9uT3B0aW9uc0NoYW5nZWQoKSx1fXJldHVybiBuKHQsZSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2UucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKSx0aGlzLl9yZW5kZXJMYXllcnMuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gZS5kaXNwb3NlKCl9KSx1LnJlbW92ZVRlcm1pbmFsRnJvbUNhY2hlKHRoaXMuX2lkKX0sdC5wcm90b3R5cGUub25EZXZpY2VQaXhlbFJhdGlvQ2hhbmdlPWZ1bmN0aW9uKCl7dGhpcy5fZGV2aWNlUGl4ZWxSYXRpbyE9PXdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvJiYodGhpcy5fZGV2aWNlUGl4ZWxSYXRpbz13aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyx0aGlzLm9uUmVzaXplKHRoaXMuX3Rlcm1pbmFsLmNvbHMsdGhpcy5fdGVybWluYWwucm93cykpfSx0LnByb3RvdHlwZS5zZXRDb2xvcnM9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLl9jb2xvcnM9ZSx0aGlzLl9yZW5kZXJMYXllcnMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnNldENvbG9ycyh0Ll9jb2xvcnMpLGUucmVzZXQoKX0pfSx0LnByb3RvdHlwZS5vblJlc2l6ZT1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXM7dGhpcy5fdXBkYXRlRGltZW5zaW9ucygpLHRoaXMuX3JlbmRlckxheWVycy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlc2l6ZShpLmRpbWVuc2lvbnMpfSksdGhpcy5fdGVybWluYWwuc2NyZWVuRWxlbWVudC5zdHlsZS53aWR0aD10aGlzLmRpbWVuc2lvbnMuY2FudmFzV2lkdGgrXCJweFwiLHRoaXMuX3Rlcm1pbmFsLnNjcmVlbkVsZW1lbnQuc3R5bGUuaGVpZ2h0PXRoaXMuZGltZW5zaW9ucy5jYW52YXNIZWlnaHQrXCJweFwifSx0LnByb3RvdHlwZS5vbkNoYXJTaXplQ2hhbmdlZD1mdW5jdGlvbigpe3RoaXMub25SZXNpemUodGhpcy5fdGVybWluYWwuY29scyx0aGlzLl90ZXJtaW5hbC5yb3dzKX0sdC5wcm90b3R5cGUub25CbHVyPWZ1bmN0aW9uKCl7dGhpcy5fcnVuT3BlcmF0aW9uKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9uQmx1cigpfSl9LHQucHJvdG90eXBlLm9uRm9jdXM9ZnVuY3Rpb24oKXt0aGlzLl9ydW5PcGVyYXRpb24oZnVuY3Rpb24oZSl7cmV0dXJuIGUub25Gb2N1cygpfSl9LHQucHJvdG90eXBlLm9uU2VsZWN0aW9uQ2hhbmdlZD1mdW5jdGlvbihlLHQsaSl7dm9pZCAwPT09aSYmKGk9ITEpLHRoaXMuX3J1bk9wZXJhdGlvbihmdW5jdGlvbihyKXtyZXR1cm4gci5vblNlbGVjdGlvbkNoYW5nZWQoZSx0LGkpfSl9LHQucHJvdG90eXBlLm9uQ3Vyc29yTW92ZT1mdW5jdGlvbigpe3RoaXMuX3J1bk9wZXJhdGlvbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vbkN1cnNvck1vdmUoKX0pfSx0LnByb3RvdHlwZS5vbk9wdGlvbnNDaGFuZ2VkPWZ1bmN0aW9uKCl7dGhpcy5fcnVuT3BlcmF0aW9uKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9uT3B0aW9uc0NoYW5nZWQoKX0pfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX3J1bk9wZXJhdGlvbihmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXNldCgpfSl9LHQucHJvdG90eXBlLl9ydW5PcGVyYXRpb249ZnVuY3Rpb24oZSl7dGhpcy5fcmVuZGVyTGF5ZXJzLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUodCl9KX0sdC5wcm90b3R5cGUucmVuZGVyUm93cz1mdW5jdGlvbihlLHQpe3RoaXMuX3JlbmRlckxheWVycy5mb3JFYWNoKGZ1bmN0aW9uKGkpe3JldHVybiBpLm9uR3JpZENoYW5nZWQoZSx0KX0pfSx0LnByb3RvdHlwZS5fdXBkYXRlRGltZW5zaW9ucz1mdW5jdGlvbigpe3RoaXMuX2NoYXJTaXplU2VydmljZS5oYXNWYWxpZFNpemUmJih0aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2hhcldpZHRoPU1hdGguZmxvb3IodGhpcy5fY2hhclNpemVTZXJ2aWNlLndpZHRoKndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKSx0aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2hhckhlaWdodD1NYXRoLmNlaWwodGhpcy5fY2hhclNpemVTZXJ2aWNlLmhlaWdodCp3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyksdGhpcy5kaW1lbnNpb25zLnNjYWxlZENlbGxIZWlnaHQ9TWF0aC5mbG9vcih0aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2hhckhlaWdodCp0aGlzLl90ZXJtaW5hbC5vcHRpb25zLmxpbmVIZWlnaHQpLHRoaXMuZGltZW5zaW9ucy5zY2FsZWRDaGFyVG9wPTE9PT10aGlzLl90ZXJtaW5hbC5vcHRpb25zLmxpbmVIZWlnaHQ/MDpNYXRoLnJvdW5kKCh0aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2VsbEhlaWdodC10aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2hhckhlaWdodCkvMiksdGhpcy5kaW1lbnNpb25zLnNjYWxlZENlbGxXaWR0aD10aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2hhcldpZHRoK01hdGgucm91bmQodGhpcy5fdGVybWluYWwub3B0aW9ucy5sZXR0ZXJTcGFjaW5nKSx0aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2hhckxlZnQ9TWF0aC5mbG9vcih0aGlzLl90ZXJtaW5hbC5vcHRpb25zLmxldHRlclNwYWNpbmcvMiksdGhpcy5kaW1lbnNpb25zLnNjYWxlZENhbnZhc0hlaWdodD10aGlzLl90ZXJtaW5hbC5yb3dzKnRoaXMuZGltZW5zaW9ucy5zY2FsZWRDZWxsSGVpZ2h0LHRoaXMuZGltZW5zaW9ucy5zY2FsZWRDYW52YXNXaWR0aD10aGlzLl90ZXJtaW5hbC5jb2xzKnRoaXMuZGltZW5zaW9ucy5zY2FsZWRDZWxsV2lkdGgsdGhpcy5kaW1lbnNpb25zLmNhbnZhc0hlaWdodD1NYXRoLnJvdW5kKHRoaXMuZGltZW5zaW9ucy5zY2FsZWRDYW52YXNIZWlnaHQvd2luZG93LmRldmljZVBpeGVsUmF0aW8pLHRoaXMuZGltZW5zaW9ucy5jYW52YXNXaWR0aD1NYXRoLnJvdW5kKHRoaXMuZGltZW5zaW9ucy5zY2FsZWRDYW52YXNXaWR0aC93aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyksdGhpcy5kaW1lbnNpb25zLmFjdHVhbENlbGxIZWlnaHQ9dGhpcy5kaW1lbnNpb25zLmNhbnZhc0hlaWdodC90aGlzLl90ZXJtaW5hbC5yb3dzLHRoaXMuZGltZW5zaW9ucy5hY3R1YWxDZWxsV2lkdGg9dGhpcy5kaW1lbnNpb25zLmNhbnZhc1dpZHRoL3RoaXMuX3Rlcm1pbmFsLmNvbHMpfSx0LnByb3RvdHlwZS5yZWdpc3RlckNoYXJhY3RlckpvaW5lcj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fY2hhcmFjdGVySm9pbmVyUmVnaXN0cnkucmVnaXN0ZXJDaGFyYWN0ZXJKb2luZXIoZSl9LHQucHJvdG90eXBlLmRlcmVnaXN0ZXJDaGFyYWN0ZXJKb2luZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2NoYXJhY3RlckpvaW5lclJlZ2lzdHJ5LmRlcmVnaXN0ZXJDaGFyYWN0ZXJKb2luZXIoZSl9LHR9KGguRGlzcG9zYWJsZSk7dC5SZW5kZXJlcj1ffSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ocj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYoZVtpXT10W2ldKX0pKGUsdCl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KTooaS5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IGkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHM9aSg0MSksbz1pKDEyKSxhPWkoNiksYz1pKDMpLGw9aSgyNyksaD1pKDQpLHU9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LGkscixuLG8sYSxjLGwpe3ZhciB1PWUuY2FsbCh0aGlzLHQsXCJ0ZXh0XCIsaSxvLHIsYSxjLGwpfHx0aGlzO3JldHVybiB1LmJ1ZmZlclNlcnZpY2U9Yyx1Lm9wdGlvbnNTZXJ2aWNlPWwsdS5fY2hhcmFjdGVyV2lkdGg9MCx1Ll9jaGFyYWN0ZXJGb250PVwiXCIsdS5fY2hhcmFjdGVyT3ZlcmxhcENhY2hlPXt9LHUuX3dvcmtDZWxsPW5ldyBoLkNlbGxEYXRhLHUuX3N0YXRlPW5ldyBzLkdyaWRDYWNoZSx1Ll9jaGFyYWN0ZXJKb2luZXJSZWdpc3RyeT1uLHV9cmV0dXJuIG4odCxlKSx0LnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24odCl7ZS5wcm90b3R5cGUucmVzaXplLmNhbGwodGhpcyx0KTt2YXIgaT10aGlzLl9nZXRGb250KCExLCExKTt0aGlzLl9jaGFyYWN0ZXJXaWR0aD09PXQuc2NhbGVkQ2hhcldpZHRoJiZ0aGlzLl9jaGFyYWN0ZXJGb250PT09aXx8KHRoaXMuX2NoYXJhY3RlcldpZHRoPXQuc2NhbGVkQ2hhcldpZHRoLHRoaXMuX2NoYXJhY3RlckZvbnQ9aSx0aGlzLl9jaGFyYWN0ZXJPdmVybGFwQ2FjaGU9e30pLHRoaXMuX3N0YXRlLmNsZWFyKCksdGhpcy5fc3RhdGUucmVzaXplKHRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyx0aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MpfSx0LnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX3N0YXRlLmNsZWFyKCksdGhpcy5fY2xlYXJBbGwoKX0sdC5wcm90b3R5cGUuX2ZvckVhY2hDZWxsPWZ1bmN0aW9uKGUsdCxpLHIpe2Zvcih2YXIgbj1lO248PXQ7bisrKWZvcih2YXIgcz1uK3RoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnlkaXNwLG89dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIubGluZXMuZ2V0KHMpLGE9aT9pLmdldEpvaW5lZENoYXJhY3RlcnMocyk6W10saD0wO2g8dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzO2grKyl7by5sb2FkQ2VsbChoLHRoaXMuX3dvcmtDZWxsKTt2YXIgdT10aGlzLl93b3JrQ2VsbCxmPSExLF89aDtpZigwIT09dS5nZXRXaWR0aCgpKXtpZihhLmxlbmd0aD4wJiZoPT09YVswXVswXSl7Zj0hMDt2YXIgZD1hLnNoaWZ0KCk7dT1uZXcgbC5Kb2luZWRDZWxsRGF0YSh0aGlzLl93b3JrQ2VsbCxvLnRyYW5zbGF0ZVRvU3RyaW5nKCEwLGRbMF0sZFsxXSksZFsxXS1kWzBdKSxfPWRbMV0tMX0hZiYmdGhpcy5faXNPdmVybGFwcGluZyh1KSYmXzxvLmxlbmd0aC0xJiZvLmdldENvZGVQb2ludChfKzEpPT09Yy5OVUxMX0NFTExfQ09ERSYmKHUuY29udGVudCY9LTEyNTgyOTEzLHUuY29udGVudHw9Mjw8MjIpLHIodSxoLG4pLGg9X319fSx0LnByb3RvdHlwZS5fZHJhd0JhY2tncm91bmQ9ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLHI9dGhpcy5fY3R4LG49dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzLHM9MCxvPTAsYz1udWxsO3Iuc2F2ZSgpLHRoaXMuX2ZvckVhY2hDZWxsKGUsdCxudWxsLGZ1bmN0aW9uKGUsdCxsKXt2YXIgaD1udWxsO2UuaXNJbnZlcnNlKCk/aD1lLmlzRmdEZWZhdWx0KCk/aS5fY29sb3JzLmZvcmVncm91bmQuY3NzOmUuaXNGZ1JHQigpP1wicmdiKFwiK2EuQXR0cmlidXRlRGF0YS50b0NvbG9yUkdCKGUuZ2V0RmdDb2xvcigpKS5qb2luKFwiLFwiKStcIilcIjppLl9jb2xvcnMuYW5zaVtlLmdldEZnQ29sb3IoKV0uY3NzOmUuaXNCZ1JHQigpP2g9XCJyZ2IoXCIrYS5BdHRyaWJ1dGVEYXRhLnRvQ29sb3JSR0IoZS5nZXRCZ0NvbG9yKCkpLmpvaW4oXCIsXCIpK1wiKVwiOmUuaXNCZ1BhbGV0dGUoKSYmKGg9aS5fY29sb3JzLmFuc2lbZS5nZXRCZ0NvbG9yKCldLmNzcyksbnVsbD09PWMmJihzPXQsbz1sKSxsIT09bz8oci5maWxsU3R5bGU9Y3x8XCJcIixpLl9maWxsQ2VsbHMocyxvLG4tcywxKSxzPXQsbz1sKTpjIT09aCYmKHIuZmlsbFN0eWxlPWN8fFwiXCIsaS5fZmlsbENlbGxzKHMsbyx0LXMsMSkscz10LG89bCksYz1ofSksbnVsbCE9PWMmJihyLmZpbGxTdHlsZT1jLHRoaXMuX2ZpbGxDZWxscyhzLG8sbi1zLDEpKSxyLnJlc3RvcmUoKX0sdC5wcm90b3R5cGUuX2RyYXdGb3JlZ3JvdW5kPWZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpczt0aGlzLl9mb3JFYWNoQ2VsbChlLHQsdGhpcy5fY2hhcmFjdGVySm9pbmVyUmVnaXN0cnksZnVuY3Rpb24oZSx0LHIpe2lmKCFlLmlzSW52aXNpYmxlKCkmJihpLl9kcmF3Q2hhcnMoZSx0LHIpLGUuaXNVbmRlcmxpbmUoKSkpe2lmKGkuX2N0eC5zYXZlKCksZS5pc0ludmVyc2UoKSllLmlzQmdEZWZhdWx0KCk/aS5fY3R4LmZpbGxTdHlsZT1pLl9jb2xvcnMuYmFja2dyb3VuZC5jc3M6ZS5pc0JnUkdCKCk/aS5fY3R4LmZpbGxTdHlsZT1cInJnYihcIithLkF0dHJpYnV0ZURhdGEudG9Db2xvclJHQihlLmdldEJnQ29sb3IoKSkuam9pbihcIixcIikrXCIpXCI6aS5fY3R4LmZpbGxTdHlsZT1pLl9jb2xvcnMuYW5zaVtlLmdldEJnQ29sb3IoKV0uY3NzO2Vsc2UgaWYoZS5pc0ZnRGVmYXVsdCgpKWkuX2N0eC5maWxsU3R5bGU9aS5fY29sb3JzLmZvcmVncm91bmQuY3NzO2Vsc2UgaWYoZS5pc0ZnUkdCKCkpaS5fY3R4LmZpbGxTdHlsZT1cInJnYihcIithLkF0dHJpYnV0ZURhdGEudG9Db2xvclJHQihlLmdldEZnQ29sb3IoKSkuam9pbihcIixcIikrXCIpXCI7ZWxzZXt2YXIgbj1lLmdldEZnQ29sb3IoKTtpLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmRyYXdCb2xkVGV4dEluQnJpZ2h0Q29sb3JzJiZlLmlzQm9sZCgpJiZuPDgmJihuKz04KSxpLl9jdHguZmlsbFN0eWxlPWkuX2NvbG9ycy5hbnNpW25dLmNzc31pLl9maWxsQm90dG9tTGluZUF0Q2VsbHModCxyLGUuZ2V0V2lkdGgoKSksaS5fY3R4LnJlc3RvcmUoKX19KX0sdC5wcm90b3R5cGUub25HcmlkQ2hhbmdlZD1mdW5jdGlvbihlLHQpezAhPT10aGlzLl9zdGF0ZS5jYWNoZS5sZW5ndGgmJih0aGlzLl9jaGFyQXRsYXMmJnRoaXMuX2NoYXJBdGxhcy5iZWdpbkZyYW1lKCksdGhpcy5fY2xlYXJDZWxscygwLGUsdGhpcy5fYnVmZmVyU2VydmljZS5jb2xzLHQtZSsxKSx0aGlzLl9kcmF3QmFja2dyb3VuZChlLHQpLHRoaXMuX2RyYXdGb3JlZ3JvdW5kKGUsdCkpfSx0LnByb3RvdHlwZS5vbk9wdGlvbnNDaGFuZ2VkPWZ1bmN0aW9uKCl7dGhpcy5fc2V0VHJhbnNwYXJlbmN5KHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuYWxsb3dUcmFuc3BhcmVuY3kpfSx0LnByb3RvdHlwZS5faXNPdmVybGFwcGluZz1mdW5jdGlvbihlKXtpZigxIT09ZS5nZXRXaWR0aCgpKXJldHVybiExO2lmKGUuZ2V0Q29kZSgpPDI1NilyZXR1cm4hMTt2YXIgdD1lLmdldENoYXJzKCk7aWYodGhpcy5fY2hhcmFjdGVyT3ZlcmxhcENhY2hlLmhhc093blByb3BlcnR5KHQpKXJldHVybiB0aGlzLl9jaGFyYWN0ZXJPdmVybGFwQ2FjaGVbdF07dGhpcy5fY3R4LnNhdmUoKSx0aGlzLl9jdHguZm9udD10aGlzLl9jaGFyYWN0ZXJGb250O3ZhciBpPU1hdGguZmxvb3IodGhpcy5fY3R4Lm1lYXN1cmVUZXh0KHQpLndpZHRoKT50aGlzLl9jaGFyYWN0ZXJXaWR0aDtyZXR1cm4gdGhpcy5fY3R4LnJlc3RvcmUoKSx0aGlzLl9jaGFyYWN0ZXJPdmVybGFwQ2FjaGVbdF09aSxpfSx0fShvLkJhc2VSZW5kZXJMYXllcik7dC5UZXh0UmVuZGVyTGF5ZXI9dX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuY2FjaGU9W119cmV0dXJuIGUucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgaT0wO2k8ZTtpKyspe3RoaXMuY2FjaGUubGVuZ3RoPD1pJiZ0aGlzLmNhY2hlLnB1c2goW10pO2Zvcih2YXIgcj10aGlzLmNhY2hlW2ldLmxlbmd0aDtyPHQ7cisrKXRoaXMuY2FjaGVbaV0ucHVzaCh2b2lkIDApO3RoaXMuY2FjaGVbaV0ubGVuZ3RoPXR9dGhpcy5jYWNoZS5sZW5ndGg9ZX0sZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPHRoaXMuY2FjaGUubGVuZ3RoO2UrKylmb3IodmFyIHQ9MDt0PHRoaXMuY2FjaGVbZV0ubGVuZ3RoO3QrKyl0aGlzLmNhY2hlW2VdW3RdPXZvaWQgMH0sZX0oKTt0LkdyaWRDYWNoZT1yfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ocj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYoZVtpXT10W2ldKX0pKGUsdCl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KTooaS5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IGkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHM9aSg5KSxvPWkoNDMpLGE9aSgyNSksYz1pKDQ0KSxsPWkoMTApLGg9aSgyNiksdT0xMDI0LGY9MTAyNCxfPXtjc3M6XCJyZ2JhKDAsIDAsIDAsIDApXCIscmdiYTowfTtmdW5jdGlvbiBkKGUpe3JldHVybiBlLmNvZGU8PDIxfGUuYmc8PDEyfGUuZmc8PDN8KGUuYm9sZD8wOjQpKyhlLmRpbT8wOjIpKyhlLml0YWxpYz8wOjEpfXQuZ2V0R2x5cGhDYWNoZUtleT1kO3ZhciBwPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxpKXt2YXIgcj1lLmNhbGwodGhpcyl8fHRoaXM7ci5fY29uZmlnPWksci5fZHJhd1RvQ2FjaGVDb3VudD0wLHIuX2dseXBoc1dhaXRpbmdPbkJpdG1hcD1bXSxyLl9iaXRtYXBDb21taXRUaW1lb3V0PW51bGwsci5fYml0bWFwPW51bGwsci5fY2FjaGVDYW52YXM9dC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpLHIuX2NhY2hlQ2FudmFzLndpZHRoPXUsci5fY2FjaGVDYW52YXMuaGVpZ2h0PWYsci5fY2FjaGVDdHg9aC50aHJvd0lmRmFsc3koci5fY2FjaGVDYW52YXMuZ2V0Q29udGV4dChcIjJkXCIse2FscGhhOiEwfSkpO3ZhciBuPXQuY3JlYXRlRWxlbWVudChcImNhbnZhc1wiKTtuLndpZHRoPXIuX2NvbmZpZy5zY2FsZWRDaGFyV2lkdGgsbi5oZWlnaHQ9ci5fY29uZmlnLnNjYWxlZENoYXJIZWlnaHQsci5fdG1wQ3R4PWgudGhyb3dJZkZhbHN5KG4uZ2V0Q29udGV4dChcIjJkXCIse2FscGhhOnIuX2NvbmZpZy5hbGxvd1RyYW5zcGFyZW5jeX0pKSxyLl93aWR0aD1NYXRoLmZsb29yKHUvci5fY29uZmlnLnNjYWxlZENoYXJXaWR0aCksci5faGVpZ2h0PU1hdGguZmxvb3IoZi9yLl9jb25maWcuc2NhbGVkQ2hhckhlaWdodCk7dmFyIHM9ci5fd2lkdGgqci5faGVpZ2h0O3JldHVybiByLl9jYWNoZU1hcD1uZXcgYy5MUlVNYXAocyksci5fY2FjaGVNYXAucHJlYWxsb2Mocykscn1yZXR1cm4gbih0LGUpLHQucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtudWxsIT09dGhpcy5fYml0bWFwQ29tbWl0VGltZW91dCYmKHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fYml0bWFwQ29tbWl0VGltZW91dCksdGhpcy5fYml0bWFwQ29tbWl0VGltZW91dD1udWxsKX0sdC5wcm90b3R5cGUuYmVnaW5GcmFtZT1mdW5jdGlvbigpe3RoaXMuX2RyYXdUb0NhY2hlQ291bnQ9MH0sdC5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbihlLHQsaSxyKXtpZigzMj09PXQuY29kZSlyZXR1cm4hMDtpZighdGhpcy5fY2FuQ2FjaGUodCkpcmV0dXJuITE7dmFyIG49ZCh0KSxzPXRoaXMuX2NhY2hlTWFwLmdldChuKTtpZihudWxsIT1zKXJldHVybiB0aGlzLl9kcmF3RnJvbUNhY2hlKGUscyxpLHIpLCEwO2lmKHRoaXMuX2RyYXdUb0NhY2hlQ291bnQ8MTAwKXt2YXIgbz12b2lkIDA7bz10aGlzLl9jYWNoZU1hcC5zaXplPHRoaXMuX2NhY2hlTWFwLmNhcGFjaXR5P3RoaXMuX2NhY2hlTWFwLnNpemU6dGhpcy5fY2FjaGVNYXAucGVlaygpLmluZGV4O3ZhciBhPXRoaXMuX2RyYXdUb0NhY2hlKHQsbyk7cmV0dXJuIHRoaXMuX2NhY2hlTWFwLnNldChuLGEpLHRoaXMuX2RyYXdGcm9tQ2FjaGUoZSxhLGksciksITB9cmV0dXJuITF9LHQucHJvdG90eXBlLl9jYW5DYWNoZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5jb2RlPDI1Nn0sdC5wcm90b3R5cGUuX3RvQ29vcmRpbmF0ZVg9ZnVuY3Rpb24oZSl7cmV0dXJuIGUldGhpcy5fd2lkdGgqdGhpcy5fY29uZmlnLnNjYWxlZENoYXJXaWR0aH0sdC5wcm90b3R5cGUuX3RvQ29vcmRpbmF0ZVk9ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguZmxvb3IoZS90aGlzLl93aWR0aCkqdGhpcy5fY29uZmlnLnNjYWxlZENoYXJIZWlnaHR9LHQucHJvdG90eXBlLl9kcmF3RnJvbUNhY2hlPWZ1bmN0aW9uKGUsdCxpLHIpe2lmKCF0LmlzRW1wdHkpe3ZhciBuPXRoaXMuX3RvQ29vcmRpbmF0ZVgodC5pbmRleCkscz10aGlzLl90b0Nvb3JkaW5hdGVZKHQuaW5kZXgpO2UuZHJhd0ltYWdlKHQuaW5CaXRtYXA/dGhpcy5fYml0bWFwOnRoaXMuX2NhY2hlQ2FudmFzLG4scyx0aGlzLl9jb25maWcuc2NhbGVkQ2hhcldpZHRoLHRoaXMuX2NvbmZpZy5zY2FsZWRDaGFySGVpZ2h0LGkscix0aGlzLl9jb25maWcuc2NhbGVkQ2hhcldpZHRoLHRoaXMuX2NvbmZpZy5zY2FsZWRDaGFySGVpZ2h0KX19LHQucHJvdG90eXBlLl9nZXRDb2xvckZyb21BbnNpSW5kZXg9ZnVuY3Rpb24oZSl7cmV0dXJuIGU8dGhpcy5fY29uZmlnLmNvbG9ycy5hbnNpLmxlbmd0aD90aGlzLl9jb25maWcuY29sb3JzLmFuc2lbZV06YS5ERUZBVUxUX0FOU0lfQ09MT1JTW2VdfSx0LnByb3RvdHlwZS5fZ2V0QmFja2dyb3VuZENvbG9yPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9jb25maWcuYWxsb3dUcmFuc3BhcmVuY3k/XzplLmJnPT09cy5JTlZFUlRFRF9ERUZBVUxUX0NPTE9SP3RoaXMuX2NvbmZpZy5jb2xvcnMuZm9yZWdyb3VuZDplLmJnPDI1Nj90aGlzLl9nZXRDb2xvckZyb21BbnNpSW5kZXgoZS5iZyk6dGhpcy5fY29uZmlnLmNvbG9ycy5iYWNrZ3JvdW5kfSx0LnByb3RvdHlwZS5fZ2V0Rm9yZWdyb3VuZENvbG9yPWZ1bmN0aW9uKGUpe3JldHVybiBlLmZnPT09cy5JTlZFUlRFRF9ERUZBVUxUX0NPTE9SP3RoaXMuX2NvbmZpZy5jb2xvcnMuYmFja2dyb3VuZDplLmZnPDI1Nj90aGlzLl9nZXRDb2xvckZyb21BbnNpSW5kZXgoZS5mZyk6dGhpcy5fY29uZmlnLmNvbG9ycy5mb3JlZ3JvdW5kfSx0LnByb3RvdHlwZS5fZHJhd1RvQ2FjaGU9ZnVuY3Rpb24oZSx0KXt0aGlzLl9kcmF3VG9DYWNoZUNvdW50KyssdGhpcy5fdG1wQ3R4LnNhdmUoKTt2YXIgaT10aGlzLl9nZXRCYWNrZ3JvdW5kQ29sb3IoZSk7dGhpcy5fdG1wQ3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj1cImNvcHlcIix0aGlzLl90bXBDdHguZmlsbFN0eWxlPWkuY3NzLHRoaXMuX3RtcEN0eC5maWxsUmVjdCgwLDAsdGhpcy5fY29uZmlnLnNjYWxlZENoYXJXaWR0aCx0aGlzLl9jb25maWcuc2NhbGVkQ2hhckhlaWdodCksdGhpcy5fdG1wQ3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj1cInNvdXJjZS1vdmVyXCI7dmFyIHI9ZS5ib2xkP3RoaXMuX2NvbmZpZy5mb250V2VpZ2h0Qm9sZDp0aGlzLl9jb25maWcuZm9udFdlaWdodCxuPWUuaXRhbGljP1wiaXRhbGljXCI6XCJcIjt0aGlzLl90bXBDdHguZm9udD1uK1wiIFwiK3IrXCIgXCIrdGhpcy5fY29uZmlnLmZvbnRTaXplKnRoaXMuX2NvbmZpZy5kZXZpY2VQaXhlbFJhdGlvK1wicHggXCIrdGhpcy5fY29uZmlnLmZvbnRGYW1pbHksdGhpcy5fdG1wQ3R4LnRleHRCYXNlbGluZT1cIm1pZGRsZVwiLHRoaXMuX3RtcEN0eC5maWxsU3R5bGU9dGhpcy5fZ2V0Rm9yZWdyb3VuZENvbG9yKGUpLmNzcyxlLmRpbSYmKHRoaXMuX3RtcEN0eC5nbG9iYWxBbHBoYT1zLkRJTV9PUEFDSVRZKSx0aGlzLl90bXBDdHguZmlsbFRleHQoZS5jaGFycywwLHRoaXMuX2NvbmZpZy5zY2FsZWRDaGFySGVpZ2h0LzIpLHRoaXMuX3RtcEN0eC5yZXN0b3JlKCk7dmFyIG89dGhpcy5fdG1wQ3R4LmdldEltYWdlRGF0YSgwLDAsdGhpcy5fY29uZmlnLnNjYWxlZENoYXJXaWR0aCx0aGlzLl9jb25maWcuc2NhbGVkQ2hhckhlaWdodCksYT0hMTt0aGlzLl9jb25maWcuYWxsb3dUcmFuc3BhcmVuY3l8fChhPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPSEwLHI9dC5yZ2JhPj4+MjQsbj10LnJnYmE+Pj4xNiYyNTUscz10LnJnYmE+Pj44JjI1NSxvPTA7bzxlLmRhdGEubGVuZ3RoO28rPTQpZS5kYXRhW29dPT09ciYmZS5kYXRhW28rMV09PT1uJiZlLmRhdGFbbysyXT09PXM/ZS5kYXRhW28rM109MDppPSExO3JldHVybiBpfShvLGkpKTt2YXIgYz10aGlzLl90b0Nvb3JkaW5hdGVYKHQpLGw9dGhpcy5fdG9Db29yZGluYXRlWSh0KTt0aGlzLl9jYWNoZUN0eC5wdXRJbWFnZURhdGEobyxjLGwpO3ZhciBoPXtpbmRleDp0LGlzRW1wdHk6YSxpbkJpdG1hcDohMX07cmV0dXJuIHRoaXMuX2FkZEdseXBoVG9CaXRtYXAoaCksaH0sdC5wcm90b3R5cGUuX2FkZEdseXBoVG9CaXRtYXA9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztcImNyZWF0ZUltYWdlQml0bWFwXCJpbiB3aW5kb3cmJiFsLmlzRmlyZWZveCYmIWwuaXNTYWZhcmkmJih0aGlzLl9nbHlwaHNXYWl0aW5nT25CaXRtYXAucHVzaChlKSxudWxsPT09dGhpcy5fYml0bWFwQ29tbWl0VGltZW91dCYmKHRoaXMuX2JpdG1hcENvbW1pdFRpbWVvdXQ9d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdC5fZ2VuZXJhdGVCaXRtYXAoKX0sMTAwKSkpfSx0LnByb3RvdHlwZS5fZ2VuZXJhdGVCaXRtYXA9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5fZ2x5cGhzV2FpdGluZ09uQml0bWFwO3RoaXMuX2dseXBoc1dhaXRpbmdPbkJpdG1hcD1bXSx3aW5kb3cuY3JlYXRlSW1hZ2VCaXRtYXAodGhpcy5fY2FjaGVDYW52YXMpLnRoZW4oZnVuY3Rpb24oaSl7ZS5fYml0bWFwPWk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3Rbcl0uaW5CaXRtYXA9ITB9fSksdGhpcy5fYml0bWFwQ29tbWl0VGltZW91dD1udWxsfSx0fShvLkJhc2VDaGFyQXRsYXMpO3QuRHluYW1pY0NoYXJBdGxhcz1wO3ZhciB2PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxpKXtyZXR1cm4gZS5jYWxsKHRoaXMpfHx0aGlzfXJldHVybiBuKHQsZSksdC5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbihlLHQsaSxyKXtyZXR1cm4hMX0sdH0oby5CYXNlQ2hhckF0bGFzKTt0Lk5vbmVDaGFyQXRsYXM9dn0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuX2RpZFdhcm1VcD0hMX1yZXR1cm4gZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe30sZS5wcm90b3R5cGUud2FybVVwPWZ1bmN0aW9uKCl7dGhpcy5fZGlkV2FybVVwfHwodGhpcy5fZG9XYXJtVXAoKSx0aGlzLl9kaWRXYXJtVXA9ITApfSxlLnByb3RvdHlwZS5fZG9XYXJtVXA9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLmJlZ2luRnJhbWU9ZnVuY3Rpb24oKXt9LGV9KCk7dC5CYXNlQ2hhckF0bGFzPXJ9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5jYXBhY2l0eT1lLHRoaXMuX21hcD17fSx0aGlzLl9oZWFkPW51bGwsdGhpcy5fdGFpbD1udWxsLHRoaXMuX25vZGVQb29sPVtdLHRoaXMuc2l6ZT0wfXJldHVybiBlLnByb3RvdHlwZS5fdW5saW5rTm9kZT1mdW5jdGlvbihlKXt2YXIgdD1lLnByZXYsaT1lLm5leHQ7ZT09PXRoaXMuX2hlYWQmJih0aGlzLl9oZWFkPWkpLGU9PT10aGlzLl90YWlsJiYodGhpcy5fdGFpbD10KSxudWxsIT09dCYmKHQubmV4dD1pKSxudWxsIT09aSYmKGkucHJldj10KX0sZS5wcm90b3R5cGUuX2FwcGVuZE5vZGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fdGFpbDtudWxsIT09dCYmKHQubmV4dD1lKSxlLnByZXY9dCxlLm5leHQ9bnVsbCx0aGlzLl90YWlsPWUsbnVsbD09PXRoaXMuX2hlYWQmJih0aGlzLl9oZWFkPWUpfSxlLnByb3RvdHlwZS5wcmVhbGxvYz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9dGhpcy5fbm9kZVBvb2wsaT0wO2k8ZTtpKyspdC5wdXNoKHtwcmV2Om51bGwsbmV4dDpudWxsLGtleTpudWxsLHZhbHVlOm51bGx9KX0sZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX21hcFtlXTtyZXR1cm4gdm9pZCAwIT09dD8odGhpcy5fdW5saW5rTm9kZSh0KSx0aGlzLl9hcHBlbmROb2RlKHQpLHQudmFsdWUpOm51bGx9LGUucHJvdG90eXBlLnBlZWtWYWx1ZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9tYXBbZV07cmV0dXJuIHZvaWQgMCE9PXQ/dC52YWx1ZTpudWxsfSxlLnByb3RvdHlwZS5wZWVrPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5faGVhZDtyZXR1cm4gbnVsbD09PWU/bnVsbDplLnZhbHVlfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLl9tYXBbZV07aWYodm9pZCAwIT09aSlpPXRoaXMuX21hcFtlXSx0aGlzLl91bmxpbmtOb2RlKGkpLGkudmFsdWU9dDtlbHNlIGlmKHRoaXMuc2l6ZT49dGhpcy5jYXBhY2l0eSlpPXRoaXMuX2hlYWQsdGhpcy5fdW5saW5rTm9kZShpKSxkZWxldGUgdGhpcy5fbWFwW2kua2V5XSxpLmtleT1lLGkudmFsdWU9dCx0aGlzLl9tYXBbZV09aTtlbHNle3ZhciByPXRoaXMuX25vZGVQb29sO3IubGVuZ3RoPjA/KChpPXIucG9wKCkpLmtleT1lLGkudmFsdWU9dCk6aT17cHJldjpudWxsLG5leHQ6bnVsbCxrZXk6ZSx2YWx1ZTp0fSx0aGlzLl9tYXBbZV09aSx0aGlzLnNpemUrK310aGlzLl9hcHBlbmROb2RlKGkpfSxlfSgpO3QuTFJVTWFwPXJ9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcixuPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocj1mdW5jdGlvbihlLHQpe3JldHVybihyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihlW2ldPXRbaV0pfSkoZSx0KX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXIoZSx0KSxlLnByb3RvdHlwZT1udWxsPT09dD9PYmplY3QuY3JlYXRlKHQpOihpLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgaSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsaSxyLG4scyxvKXt2YXIgYT1lLmNhbGwodGhpcyx0LFwic2VsZWN0aW9uXCIsaSwhMCxyLG4scyxvKXx8dGhpcztyZXR1cm4gYS5idWZmZXJTZXJ2aWNlPXMsYS5vcHRpb25zU2VydmljZT1vLGEuX2NsZWFyU3RhdGUoKSxhfXJldHVybiBuKHQsZSksdC5wcm90b3R5cGUuX2NsZWFyU3RhdGU9ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZT17c3RhcnQ6dm9pZCAwLGVuZDp2b2lkIDAsY29sdW1uU2VsZWN0TW9kZTp2b2lkIDAseWRpc3A6dm9pZCAwfX0sdC5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKHQpe2UucHJvdG90eXBlLnJlc2l6ZS5jYWxsKHRoaXMsdCksdGhpcy5fY2xlYXJTdGF0ZSgpfSx0LnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX3N0YXRlLnN0YXJ0JiZ0aGlzLl9zdGF0ZS5lbmQmJih0aGlzLl9jbGVhclN0YXRlKCksdGhpcy5fY2xlYXJBbGwoKSl9LHQucHJvdG90eXBlLm9uU2VsZWN0aW9uQ2hhbmdlZD1mdW5jdGlvbihlLHQsaSl7aWYodGhpcy5fZGlkU3RhdGVDaGFuZ2UoZSx0LGksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueWRpc3ApKWlmKHRoaXMuX2NsZWFyQWxsKCksZSYmdCl7dmFyIHI9ZVsxXS10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55ZGlzcCxuPXRbMV0tdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueWRpc3Ascz1NYXRoLm1heChyLDApLG89TWF0aC5taW4obix0aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MtMSk7aWYoIShzPj10aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3N8fG88MCkpe2lmKHRoaXMuX2N0eC5maWxsU3R5bGU9dGhpcy5fY29sb3JzLnNlbGVjdGlvbi5jc3MsaSl7dmFyIGE9ZVswXSxjPXRbMF0tYSxsPW8tcysxO3RoaXMuX2ZpbGxDZWxscyhhLHMsYyxsKX1lbHNle2E9cj09PXM/ZVswXTowO3ZhciBoPXM9PT1vP3RbMF06dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzO3RoaXMuX2ZpbGxDZWxscyhhLHMsaC1hLDEpO3ZhciB1PU1hdGgubWF4KG8tcy0xLDApO2lmKHRoaXMuX2ZpbGxDZWxscygwLHMrMSx0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsdSkscyE9PW8pe3ZhciBmPW49PT1vP3RbMF06dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzO3RoaXMuX2ZpbGxDZWxscygwLG8sZiwxKX19dGhpcy5fc3RhdGUuc3RhcnQ9W2VbMF0sZVsxXV0sdGhpcy5fc3RhdGUuZW5kPVt0WzBdLHRbMV1dLHRoaXMuX3N0YXRlLmNvbHVtblNlbGVjdE1vZGU9aSx0aGlzLl9zdGF0ZS55ZGlzcD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55ZGlzcH19ZWxzZSB0aGlzLl9jbGVhclN0YXRlKCl9LHQucHJvdG90eXBlLl9kaWRTdGF0ZUNoYW5nZT1mdW5jdGlvbihlLHQsaSxyKXtyZXR1cm4hdGhpcy5fYXJlQ29vcmRpbmF0ZXNFcXVhbChlLHRoaXMuX3N0YXRlLnN0YXJ0KXx8IXRoaXMuX2FyZUNvb3JkaW5hdGVzRXF1YWwodCx0aGlzLl9zdGF0ZS5lbmQpfHxpIT09dGhpcy5fc3RhdGUuY29sdW1uU2VsZWN0TW9kZXx8ciE9PXRoaXMuX3N0YXRlLnlkaXNwfSx0LnByb3RvdHlwZS5fYXJlQ29vcmRpbmF0ZXNFcXVhbD1mdW5jdGlvbihlLHQpe3JldHVybiEoIWV8fCF0KSYmKGVbMF09PT10WzBdJiZlWzFdPT09dFsxXSl9LHR9KGkoMTIpLkJhc2VSZW5kZXJMYXllcik7dC5TZWxlY3Rpb25SZW5kZXJMYXllcj1zfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ocj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYoZVtpXT10W2ldKX0pKGUsdCl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KTooaS5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IGkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHM9aSgxMiksbz1pKDQpLGE9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LGkscixuLHMsYSxjKXt2YXIgbD1lLmNhbGwodGhpcyx0LFwiY3Vyc29yXCIsaSwhMCxyLHMsYSxjKXx8dGhpcztyZXR1cm4gbC5fdGVybWluYWw9bixsLmJ1ZmZlclNlcnZpY2U9YSxsLm9wdGlvbnNTZXJ2aWNlPWMsbC5fY2VsbD1uZXcgby5DZWxsRGF0YSxsLl9zdGF0ZT17eDpudWxsLHk6bnVsbCxpc0ZvY3VzZWQ6bnVsbCxzdHlsZTpudWxsLHdpZHRoOm51bGx9LGwuX2N1cnNvclJlbmRlcmVycz17YmFyOmwuX3JlbmRlckJhckN1cnNvci5iaW5kKGwpLGJsb2NrOmwuX3JlbmRlckJsb2NrQ3Vyc29yLmJpbmQobCksdW5kZXJsaW5lOmwuX3JlbmRlclVuZGVybGluZUN1cnNvci5iaW5kKGwpfSxsfXJldHVybiBuKHQsZSksdC5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKHQpe2UucHJvdG90eXBlLnJlc2l6ZS5jYWxsKHRoaXMsdCksdGhpcy5fc3RhdGU9e3g6bnVsbCx5Om51bGwsaXNGb2N1c2VkOm51bGwsc3R5bGU6bnVsbCx3aWR0aDpudWxsfX0sdC5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLl9jbGVhckN1cnNvcigpLHRoaXMuX2N1cnNvckJsaW5rU3RhdGVNYW5hZ2VyJiYodGhpcy5fY3Vyc29yQmxpbmtTdGF0ZU1hbmFnZXIuZGlzcG9zZSgpLHRoaXMuX2N1cnNvckJsaW5rU3RhdGVNYW5hZ2VyPW51bGwsdGhpcy5vbk9wdGlvbnNDaGFuZ2VkKCkpfSx0LnByb3RvdHlwZS5vbkJsdXI9ZnVuY3Rpb24oKXt0aGlzLl9jdXJzb3JCbGlua1N0YXRlTWFuYWdlciYmdGhpcy5fY3Vyc29yQmxpbmtTdGF0ZU1hbmFnZXIucGF1c2UoKSx0aGlzLl90ZXJtaW5hbC5yZWZyZXNoKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueSl9LHQucHJvdG90eXBlLm9uRm9jdXM9ZnVuY3Rpb24oKXt0aGlzLl9jdXJzb3JCbGlua1N0YXRlTWFuYWdlcj90aGlzLl9jdXJzb3JCbGlua1N0YXRlTWFuYWdlci5yZXN1bWUoKTp0aGlzLl90ZXJtaW5hbC5yZWZyZXNoKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueSl9LHQucHJvdG90eXBlLm9uT3B0aW9uc0NoYW5nZWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuY3Vyc29yQmxpbms/dGhpcy5fY3Vyc29yQmxpbmtTdGF0ZU1hbmFnZXJ8fCh0aGlzLl9jdXJzb3JCbGlua1N0YXRlTWFuYWdlcj1uZXcgYyh0aGlzLl90ZXJtaW5hbC5pc0ZvY3VzZWQsZnVuY3Rpb24oKXtlLl9yZW5kZXIoITApfSkpOih0aGlzLl9jdXJzb3JCbGlua1N0YXRlTWFuYWdlciYmKHRoaXMuX2N1cnNvckJsaW5rU3RhdGVNYW5hZ2VyLmRpc3Bvc2UoKSx0aGlzLl9jdXJzb3JCbGlua1N0YXRlTWFuYWdlcj1udWxsKSx0aGlzLl90ZXJtaW5hbC5yZWZyZXNoKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueSkpfSx0LnByb3RvdHlwZS5vbkN1cnNvck1vdmU9ZnVuY3Rpb24oKXt0aGlzLl9jdXJzb3JCbGlua1N0YXRlTWFuYWdlciYmdGhpcy5fY3Vyc29yQmxpbmtTdGF0ZU1hbmFnZXIucmVzdGFydEJsaW5rQW5pbWF0aW9uKCl9LHQucHJvdG90eXBlLm9uR3JpZENoYW5nZWQ9ZnVuY3Rpb24oZSx0KXshdGhpcy5fY3Vyc29yQmxpbmtTdGF0ZU1hbmFnZXJ8fHRoaXMuX2N1cnNvckJsaW5rU3RhdGVNYW5hZ2VyLmlzUGF1c2VkP3RoaXMuX3JlbmRlcighMSk6dGhpcy5fY3Vyc29yQmxpbmtTdGF0ZU1hbmFnZXIucmVzdGFydEJsaW5rQW5pbWF0aW9uKCl9LHQucHJvdG90eXBlLl9yZW5kZXI9ZnVuY3Rpb24oZSl7aWYodGhpcy5fdGVybWluYWwuY3Vyc29yU3RhdGUmJiF0aGlzLl90ZXJtaW5hbC5jdXJzb3JIaWRkZW4pe3ZhciB0PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnliYXNlK3RoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnksaT10LXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnlkaXNwO2lmKGk8MHx8aT49dGhpcy5fYnVmZmVyU2VydmljZS5yb3dzKXRoaXMuX2NsZWFyQ3Vyc29yKCk7ZWxzZSBpZih0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5saW5lcy5nZXQodCkubG9hZENlbGwodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCx0aGlzLl9jZWxsKSx2b2lkIDAhPT10aGlzLl9jZWxsLmNvbnRlbnQpe2lmKCF0aGlzLl90ZXJtaW5hbC5pc0ZvY3VzZWQpcmV0dXJuIHRoaXMuX2NsZWFyQ3Vyc29yKCksdGhpcy5fY3R4LnNhdmUoKSx0aGlzLl9jdHguZmlsbFN0eWxlPXRoaXMuX2NvbG9ycy5jdXJzb3IuY3NzLHRoaXMuX3JlbmRlckJsdXJDdXJzb3IodGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCxpLHRoaXMuX2NlbGwpLHRoaXMuX2N0eC5yZXN0b3JlKCksdGhpcy5fc3RhdGUueD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci54LHRoaXMuX3N0YXRlLnk9aSx0aGlzLl9zdGF0ZS5pc0ZvY3VzZWQ9ITEsdGhpcy5fc3RhdGUuc3R5bGU9dGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5jdXJzb3JTdHlsZSx2b2lkKHRoaXMuX3N0YXRlLndpZHRoPXRoaXMuX2NlbGwuZ2V0V2lkdGgoKSk7aWYoIXRoaXMuX2N1cnNvckJsaW5rU3RhdGVNYW5hZ2VyfHx0aGlzLl9jdXJzb3JCbGlua1N0YXRlTWFuYWdlci5pc0N1cnNvclZpc2libGUpe2lmKHRoaXMuX3N0YXRlKXtpZih0aGlzLl9zdGF0ZS54PT09dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCYmdGhpcy5fc3RhdGUueT09PWkmJnRoaXMuX3N0YXRlLmlzRm9jdXNlZD09PXRoaXMuX3Rlcm1pbmFsLmlzRm9jdXNlZCYmdGhpcy5fc3RhdGUuc3R5bGU9PT10aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmN1cnNvclN0eWxlJiZ0aGlzLl9zdGF0ZS53aWR0aD09PXRoaXMuX2NlbGwuZ2V0V2lkdGgoKSlyZXR1cm47dGhpcy5fY2xlYXJDdXJzb3IoKX10aGlzLl9jdHguc2F2ZSgpLHRoaXMuX2N1cnNvclJlbmRlcmVyc1t0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmN1cnNvclN0eWxlfHxcImJsb2NrXCJdKHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLngsaSx0aGlzLl9jZWxsKSx0aGlzLl9jdHgucmVzdG9yZSgpLHRoaXMuX3N0YXRlLng9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueCx0aGlzLl9zdGF0ZS55PWksdGhpcy5fc3RhdGUuaXNGb2N1c2VkPSExLHRoaXMuX3N0YXRlLnN0eWxlPXRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuY3Vyc29yU3R5bGUsdGhpcy5fc3RhdGUud2lkdGg9dGhpcy5fY2VsbC5nZXRXaWR0aCgpfWVsc2UgdGhpcy5fY2xlYXJDdXJzb3IoKX19ZWxzZSB0aGlzLl9jbGVhckN1cnNvcigpfSx0LnByb3RvdHlwZS5fY2xlYXJDdXJzb3I9ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZSYmKHRoaXMuX2NsZWFyQ2VsbHModGhpcy5fc3RhdGUueCx0aGlzLl9zdGF0ZS55LHRoaXMuX3N0YXRlLndpZHRoLDEpLHRoaXMuX3N0YXRlPXt4Om51bGwseTpudWxsLGlzRm9jdXNlZDpudWxsLHN0eWxlOm51bGwsd2lkdGg6bnVsbH0pfSx0LnByb3RvdHlwZS5fcmVuZGVyQmFyQ3Vyc29yPWZ1bmN0aW9uKGUsdCxpKXt0aGlzLl9jdHguc2F2ZSgpLHRoaXMuX2N0eC5maWxsU3R5bGU9dGhpcy5fY29sb3JzLmN1cnNvci5jc3MsdGhpcy5fZmlsbExlZnRMaW5lQXRDZWxsKGUsdCksdGhpcy5fY3R4LnJlc3RvcmUoKX0sdC5wcm90b3R5cGUuX3JlbmRlckJsb2NrQ3Vyc29yPWZ1bmN0aW9uKGUsdCxpKXt0aGlzLl9jdHguc2F2ZSgpLHRoaXMuX2N0eC5maWxsU3R5bGU9dGhpcy5fY29sb3JzLmN1cnNvci5jc3MsdGhpcy5fZmlsbENlbGxzKGUsdCxpLmdldFdpZHRoKCksMSksdGhpcy5fY3R4LmZpbGxTdHlsZT10aGlzLl9jb2xvcnMuY3Vyc29yQWNjZW50LmNzcyx0aGlzLl9maWxsQ2hhclRydWVDb2xvcihpLGUsdCksdGhpcy5fY3R4LnJlc3RvcmUoKX0sdC5wcm90b3R5cGUuX3JlbmRlclVuZGVybGluZUN1cnNvcj1mdW5jdGlvbihlLHQsaSl7dGhpcy5fY3R4LnNhdmUoKSx0aGlzLl9jdHguZmlsbFN0eWxlPXRoaXMuX2NvbG9ycy5jdXJzb3IuY3NzLHRoaXMuX2ZpbGxCb3R0b21MaW5lQXRDZWxscyhlLHQpLHRoaXMuX2N0eC5yZXN0b3JlKCl9LHQucHJvdG90eXBlLl9yZW5kZXJCbHVyQ3Vyc29yPWZ1bmN0aW9uKGUsdCxpKXt0aGlzLl9jdHguc2F2ZSgpLHRoaXMuX2N0eC5zdHJva2VTdHlsZT10aGlzLl9jb2xvcnMuY3Vyc29yLmNzcyx0aGlzLl9zdHJva2VSZWN0QXRDZWxsKGUsdCxpLmdldFdpZHRoKCksMSksdGhpcy5fY3R4LnJlc3RvcmUoKX0sdH0ocy5CYXNlUmVuZGVyTGF5ZXIpO3QuQ3Vyc29yUmVuZGVyTGF5ZXI9YTt2YXIgYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXt0aGlzLl9yZW5kZXJDYWxsYmFjaz10LHRoaXMuaXNDdXJzb3JWaXNpYmxlPSEwLGUmJnRoaXMuX3Jlc3RhcnRJbnRlcnZhbCgpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJpc1BhdXNlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuX2JsaW5rU3RhcnRUaW1lb3V0fHx0aGlzLl9ibGlua0ludGVydmFsKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fYmxpbmtJbnRlcnZhbCYmKHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuX2JsaW5rSW50ZXJ2YWwpLHRoaXMuX2JsaW5rSW50ZXJ2YWw9bnVsbCksdGhpcy5fYmxpbmtTdGFydFRpbWVvdXQmJih3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuX2JsaW5rU3RhcnRUaW1lb3V0KSx0aGlzLl9ibGlua1N0YXJ0VGltZW91dD1udWxsKSx0aGlzLl9hbmltYXRpb25GcmFtZSYmKHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9hbmltYXRpb25GcmFtZSksdGhpcy5fYW5pbWF0aW9uRnJhbWU9bnVsbCl9LGUucHJvdG90eXBlLnJlc3RhcnRCbGlua0FuaW1hdGlvbj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5pc1BhdXNlZHx8KHRoaXMuX2FuaW1hdGlvblRpbWVSZXN0YXJ0ZWQ9RGF0ZS5ub3coKSx0aGlzLmlzQ3Vyc29yVmlzaWJsZT0hMCx0aGlzLl9hbmltYXRpb25GcmFtZXx8KHRoaXMuX2FuaW1hdGlvbkZyYW1lPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtlLl9yZW5kZXJDYWxsYmFjaygpLGUuX2FuaW1hdGlvbkZyYW1lPW51bGx9KSkpfSxlLnByb3RvdHlwZS5fcmVzdGFydEludGVydmFsPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dm9pZCAwPT09ZSYmKGU9NjAwKSx0aGlzLl9ibGlua0ludGVydmFsJiZ3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLl9ibGlua0ludGVydmFsKSx0aGlzLl9ibGlua1N0YXJ0VGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodC5fYW5pbWF0aW9uVGltZVJlc3RhcnRlZCl7dmFyIGU9NjAwLShEYXRlLm5vdygpLXQuX2FuaW1hdGlvblRpbWVSZXN0YXJ0ZWQpO2lmKHQuX2FuaW1hdGlvblRpbWVSZXN0YXJ0ZWQ9bnVsbCxlPjApcmV0dXJuIHZvaWQgdC5fcmVzdGFydEludGVydmFsKGUpfXQuaXNDdXJzb3JWaXNpYmxlPSExLHQuX2FuaW1hdGlvbkZyYW1lPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt0Ll9yZW5kZXJDYWxsYmFjaygpLHQuX2FuaW1hdGlvbkZyYW1lPW51bGx9KSx0Ll9ibGlua0ludGVydmFsPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYodC5fYW5pbWF0aW9uVGltZVJlc3RhcnRlZCl7dmFyIGU9NjAwLShEYXRlLm5vdygpLXQuX2FuaW1hdGlvblRpbWVSZXN0YXJ0ZWQpO3JldHVybiB0Ll9hbmltYXRpb25UaW1lUmVzdGFydGVkPW51bGwsdm9pZCB0Ll9yZXN0YXJ0SW50ZXJ2YWwoZSl9dC5pc0N1cnNvclZpc2libGU9IXQuaXNDdXJzb3JWaXNpYmxlLHQuX2FuaW1hdGlvbkZyYW1lPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt0Ll9yZW5kZXJDYWxsYmFjaygpLHQuX2FuaW1hdGlvbkZyYW1lPW51bGx9KX0sNjAwKX0sZSl9LGUucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7dGhpcy5pc0N1cnNvclZpc2libGU9ITAsdGhpcy5fYmxpbmtJbnRlcnZhbCYmKHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMuX2JsaW5rSW50ZXJ2YWwpLHRoaXMuX2JsaW5rSW50ZXJ2YWw9bnVsbCksdGhpcy5fYmxpbmtTdGFydFRpbWVvdXQmJih3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuX2JsaW5rU3RhcnRUaW1lb3V0KSx0aGlzLl9ibGlua1N0YXJ0VGltZW91dD1udWxsKSx0aGlzLl9hbmltYXRpb25GcmFtZSYmKHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9hbmltYXRpb25GcmFtZSksdGhpcy5fYW5pbWF0aW9uRnJhbWU9bnVsbCl9LGUucHJvdG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe3RoaXMuX2FuaW1hdGlvblRpbWVSZXN0YXJ0ZWQ9bnVsbCx0aGlzLl9yZXN0YXJ0SW50ZXJ2YWwoKSx0aGlzLnJlc3RhcnRCbGlua0FuaW1hdGlvbigpfSxlfSgpfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ocj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYoZVtpXT10W2ldKX0pKGUsdCl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KTooaS5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IGkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHM9aSgxMiksbz1pKDkpLGE9aSgyNCksYz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KHQsaSxyLG4scyxvLGEpe3ZhciBjPWUuY2FsbCh0aGlzLHQsXCJsaW5rXCIsaSwhMCxyLG4sbyxhKXx8dGhpcztyZXR1cm4gYy5idWZmZXJTZXJ2aWNlPW8sYy5vcHRpb25zU2VydmljZT1hLHMub25MaW5rSG92ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGMuX29uTGlua0hvdmVyKGUpfSkscy5vbkxpbmtMZWF2ZShmdW5jdGlvbihlKXtyZXR1cm4gYy5fb25MaW5rTGVhdmUoZSl9KSxjfXJldHVybiBuKHQsZSksdC5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKHQpe2UucHJvdG90eXBlLnJlc2l6ZS5jYWxsKHRoaXMsdCksdGhpcy5fc3RhdGU9dm9pZCAwfSx0LnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2NsZWFyQ3VycmVudExpbmsoKX0sdC5wcm90b3R5cGUuX2NsZWFyQ3VycmVudExpbms9ZnVuY3Rpb24oKXtpZih0aGlzLl9zdGF0ZSl7dGhpcy5fY2xlYXJDZWxscyh0aGlzLl9zdGF0ZS54MSx0aGlzLl9zdGF0ZS55MSx0aGlzLl9zdGF0ZS5jb2xzLXRoaXMuX3N0YXRlLngxLDEpO3ZhciBlPXRoaXMuX3N0YXRlLnkyLXRoaXMuX3N0YXRlLnkxLTE7ZT4wJiZ0aGlzLl9jbGVhckNlbGxzKDAsdGhpcy5fc3RhdGUueTErMSx0aGlzLl9zdGF0ZS5jb2xzLGUpLHRoaXMuX2NsZWFyQ2VsbHMoMCx0aGlzLl9zdGF0ZS55Mix0aGlzLl9zdGF0ZS54MiwxKSx0aGlzLl9zdGF0ZT12b2lkIDB9fSx0LnByb3RvdHlwZS5fb25MaW5rSG92ZXI9ZnVuY3Rpb24oZSl7aWYoZS5mZz09PW8uSU5WRVJURURfREVGQVVMVF9DT0xPUj90aGlzLl9jdHguZmlsbFN0eWxlPXRoaXMuX2NvbG9ycy5iYWNrZ3JvdW5kLmNzczplLmZnJiZhLmlzMjU2Q29sb3IoZS5mZyk/dGhpcy5fY3R4LmZpbGxTdHlsZT10aGlzLl9jb2xvcnMuYW5zaVtlLmZnXS5jc3M6dGhpcy5fY3R4LmZpbGxTdHlsZT10aGlzLl9jb2xvcnMuZm9yZWdyb3VuZC5jc3MsZS55MT09PWUueTIpdGhpcy5fZmlsbEJvdHRvbUxpbmVBdENlbGxzKGUueDEsZS55MSxlLngyLWUueDEpO2Vsc2V7dGhpcy5fZmlsbEJvdHRvbUxpbmVBdENlbGxzKGUueDEsZS55MSxlLmNvbHMtZS54MSk7Zm9yKHZhciB0PWUueTErMTt0PGUueTI7dCsrKXRoaXMuX2ZpbGxCb3R0b21MaW5lQXRDZWxscygwLHQsZS5jb2xzKTt0aGlzLl9maWxsQm90dG9tTGluZUF0Q2VsbHMoMCxlLnkyLGUueDIpfXRoaXMuX3N0YXRlPWV9LHQucHJvdG90eXBlLl9vbkxpbmtMZWF2ZT1mdW5jdGlvbihlKXt0aGlzLl9jbGVhckN1cnJlbnRMaW5rKCl9LHR9KHMuQmFzZVJlbmRlckxheWVyKTt0LkxpbmtSZW5kZXJMYXllcj1jfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9aSgxOCksbj1pKDEpLHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7dGhpcy5fYnVmZmVyU2VydmljZT1lLHRoaXMuX2xvZ1NlcnZpY2U9dCx0aGlzLl9saW5rTWF0Y2hlcnM9W10sdGhpcy5fbmV4dExpbmtNYXRjaGVySWQ9MCx0aGlzLl9vbkxpbmtIb3Zlcj1uZXcgbi5FdmVudEVtaXR0ZXIsdGhpcy5fb25MaW5rTGVhdmU9bmV3IG4uRXZlbnRFbWl0dGVyLHRoaXMuX29uTGlua1Rvb2x0aXA9bmV3IG4uRXZlbnRFbWl0dGVyLHRoaXMuX3Jvd3NUb0xpbmtpZnk9e3N0YXJ0OnZvaWQgMCxlbmQ6dm9pZCAwfX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwib25MaW5rSG92ZXJcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uTGlua0hvdmVyLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uTGlua0xlYXZlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkxpbmtMZWF2ZS5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJvbkxpbmtUb29sdGlwXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkxpbmtUb29sdGlwLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmF0dGFjaFRvRG9tPWZ1bmN0aW9uKGUsdCl7dGhpcy5fZWxlbWVudD1lLHRoaXMuX21vdXNlWm9uZU1hbmFnZXI9dH0sZS5wcm90b3R5cGUubGlua2lmeVJvd3M9ZnVuY3Rpb24odCxpKXt2YXIgcj10aGlzO3RoaXMuX21vdXNlWm9uZU1hbmFnZXImJih2b2lkIDA9PT10aGlzLl9yb3dzVG9MaW5raWZ5LnN0YXJ0fHx2b2lkIDA9PT10aGlzLl9yb3dzVG9MaW5raWZ5LmVuZD8odGhpcy5fcm93c1RvTGlua2lmeS5zdGFydD10LHRoaXMuX3Jvd3NUb0xpbmtpZnkuZW5kPWkpOih0aGlzLl9yb3dzVG9MaW5raWZ5LnN0YXJ0PU1hdGgubWluKHRoaXMuX3Jvd3NUb0xpbmtpZnkuc3RhcnQsdCksdGhpcy5fcm93c1RvTGlua2lmeS5lbmQ9TWF0aC5tYXgodGhpcy5fcm93c1RvTGlua2lmeS5lbmQsaSkpLHRoaXMuX21vdXNlWm9uZU1hbmFnZXIuY2xlYXJBbGwodCxpKSx0aGlzLl9yb3dzVGltZW91dElkJiZjbGVhclRpbWVvdXQodGhpcy5fcm93c1RpbWVvdXRJZCksdGhpcy5fcm93c1RpbWVvdXRJZD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHIuX2xpbmtpZnlSb3dzKCl9LGUuX3RpbWVCZWZvcmVMYXRlbmN5KSl9LGUucHJvdG90eXBlLl9saW5raWZ5Um93cz1mdW5jdGlvbigpe3RoaXMuX3Jvd3NUaW1lb3V0SWQ9dm9pZCAwO3ZhciBlPXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyO2lmKHZvaWQgMCE9PXRoaXMuX3Jvd3NUb0xpbmtpZnkuc3RhcnQmJnZvaWQgMCE9PXRoaXMuX3Jvd3NUb0xpbmtpZnkuZW5kKXt2YXIgdD1lLnlkaXNwK3RoaXMuX3Jvd3NUb0xpbmtpZnkuc3RhcnQ7aWYoISh0Pj1lLmxpbmVzLmxlbmd0aCkpe2Zvcih2YXIgaT1lLnlkaXNwK01hdGgubWluKHRoaXMuX3Jvd3NUb0xpbmtpZnkuZW5kLHRoaXMuX2J1ZmZlclNlcnZpY2Uucm93cykrMSxyPU1hdGguY2VpbCgyZTMvdGhpcy5fYnVmZmVyU2VydmljZS5jb2xzKSxuPXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLml0ZXJhdG9yKCExLHQsaSxyLHIpO24uaGFzTmV4dCgpOylmb3IodmFyIHM9bi5uZXh0KCksbz0wO288dGhpcy5fbGlua01hdGNoZXJzLmxlbmd0aDtvKyspdGhpcy5fZG9MaW5raWZ5Um93KHMucmFuZ2UuZmlyc3Qscy5jb250ZW50LHRoaXMuX2xpbmtNYXRjaGVyc1tvXSk7dGhpcy5fcm93c1RvTGlua2lmeS5zdGFydD12b2lkIDAsdGhpcy5fcm93c1RvTGlua2lmeS5lbmQ9dm9pZCAwfX1lbHNlIHRoaXMuX2xvZ1NlcnZpY2UuZGVidWcoXCJfcm93VG9MaW5raWZ5IHdhcyB1bnNldCBiZWZvcmUgX2xpbmtpZnlSb3dzIHdhcyBjYWxsZWRcIil9LGUucHJvdG90eXBlLnJlZ2lzdGVyTGlua01hdGNoZXI9ZnVuY3Rpb24oZSx0LGkpe2lmKHZvaWQgMD09PWkmJihpPXt9KSwhdCl0aHJvdyBuZXcgRXJyb3IoXCJoYW5kbGVyIG11c3QgYmUgZGVmaW5lZFwiKTt2YXIgcj17aWQ6dGhpcy5fbmV4dExpbmtNYXRjaGVySWQrKyxyZWdleDplLGhhbmRsZXI6dCxtYXRjaEluZGV4OmkubWF0Y2hJbmRleCx2YWxpZGF0aW9uQ2FsbGJhY2s6aS52YWxpZGF0aW9uQ2FsbGJhY2ssaG92ZXJUb29sdGlwQ2FsbGJhY2s6aS50b29sdGlwQ2FsbGJhY2ssaG92ZXJMZWF2ZUNhbGxiYWNrOmkubGVhdmVDYWxsYmFjayx3aWxsTGlua0FjdGl2YXRlOmkud2lsbExpbmtBY3RpdmF0ZSxwcmlvcml0eTppLnByaW9yaXR5fHwwfTtyZXR1cm4gdGhpcy5fYWRkTGlua01hdGNoZXJUb0xpc3Qociksci5pZH0sZS5wcm90b3R5cGUuX2FkZExpbmtNYXRjaGVyVG9MaXN0PWZ1bmN0aW9uKGUpe2lmKDAhPT10aGlzLl9saW5rTWF0Y2hlcnMubGVuZ3RoKXtmb3IodmFyIHQ9dGhpcy5fbGlua01hdGNoZXJzLmxlbmd0aC0xO3Q+PTA7dC0tKWlmKGUucHJpb3JpdHk8PXRoaXMuX2xpbmtNYXRjaGVyc1t0XS5wcmlvcml0eSlyZXR1cm4gdm9pZCB0aGlzLl9saW5rTWF0Y2hlcnMuc3BsaWNlKHQrMSwwLGUpO3RoaXMuX2xpbmtNYXRjaGVycy5zcGxpY2UoMCwwLGUpfWVsc2UgdGhpcy5fbGlua01hdGNoZXJzLnB1c2goZSl9LGUucHJvdG90eXBlLmRlcmVnaXN0ZXJMaW5rTWF0Y2hlcj1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PHRoaXMuX2xpbmtNYXRjaGVycy5sZW5ndGg7dCsrKWlmKHRoaXMuX2xpbmtNYXRjaGVyc1t0XS5pZD09PWUpcmV0dXJuIHRoaXMuX2xpbmtNYXRjaGVycy5zcGxpY2UodCwxKSwhMDtyZXR1cm4hMX0sZS5wcm90b3R5cGUuX2RvTGlua2lmeVJvdz1mdW5jdGlvbihlLHQsaSl7Zm9yKHZhciByLG49dGhpcyxzPW5ldyBSZWdFeHAoaS5yZWdleC5zb3VyY2UsKGkucmVnZXguZmxhZ3N8fFwiXCIpK1wiZ1wiKSxvPS0xLGE9ZnVuY3Rpb24oKXt2YXIgYT1yW1wibnVtYmVyXCIhPXR5cGVvZiBpLm1hdGNoSW5kZXg/MDppLm1hdGNoSW5kZXhdO2lmKCFhKXJldHVybiBjLl9sb2dTZXJ2aWNlLmRlYnVnKFwibWF0Y2ggZm91bmQgd2l0aG91dCBjb3JyZXNwb25kaW5nIG1hdGNoSW5kZXhcIixyLGkpLFwiYnJlYWtcIjtpZihvPXQuaW5kZXhPZihhLG8rMSkscy5sYXN0SW5kZXg9bythLmxlbmd0aCxvPDApcmV0dXJuXCJicmVha1wiO3ZhciBsPWMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnN0cmluZ0luZGV4VG9CdWZmZXJJbmRleChlLG8pO2lmKGxbMF08MClyZXR1cm5cImJyZWFrXCI7dmFyIGg9Yy5fYnVmZmVyU2VydmljZS5idWZmZXIubGluZXMuZ2V0KGxbMF0pO2lmKCFoKXJldHVyblwiYnJlYWtcIjt2YXIgdT1oLmdldEZnKGxbMV0pLGY9dT91Pj45JjUxMTp2b2lkIDA7aS52YWxpZGF0aW9uQ2FsbGJhY2s/aS52YWxpZGF0aW9uQ2FsbGJhY2soYSxmdW5jdGlvbihlKXtuLl9yb3dzVGltZW91dElkfHxlJiZuLl9hZGRMaW5rKGxbMV0sbFswXS1uLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55ZGlzcCxhLGksZil9KTpjLl9hZGRMaW5rKGxbMV0sbFswXS1jLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55ZGlzcCxhLGksZil9LGM9dGhpcztudWxsIT09KHI9cy5leGVjKHQpKTspe2lmKFwiYnJlYWtcIj09PWEoKSlicmVha319LGUucHJvdG90eXBlLl9hZGRMaW5rPWZ1bmN0aW9uKGUsdCxpLG4scyl7dmFyIGE9dGhpcztpZih0aGlzLl9tb3VzZVpvbmVNYW5hZ2VyJiZ0aGlzLl9lbGVtZW50KXt2YXIgYz1yLmdldFN0cmluZ0NlbGxXaWR0aChpKSxsPWUldGhpcy5fYnVmZmVyU2VydmljZS5jb2xzLGg9dCtNYXRoLmZsb29yKGUvdGhpcy5fYnVmZmVyU2VydmljZS5jb2xzKSx1PShsK2MpJXRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyxmPWgrTWF0aC5mbG9vcigobCtjKS90aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMpOzA9PT11JiYodT10aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsZi0tKSx0aGlzLl9tb3VzZVpvbmVNYW5hZ2VyLmFkZChuZXcgbyhsKzEsaCsxLHUrMSxmKzEsZnVuY3Rpb24oZSl7aWYobi5oYW5kbGVyKXJldHVybiBuLmhhbmRsZXIoZSxpKTt3aW5kb3cub3BlbihpLFwiX2JsYW5rXCIpfSxmdW5jdGlvbigpe2EuX29uTGlua0hvdmVyLmZpcmUoYS5fY3JlYXRlTGlua0hvdmVyRXZlbnQobCxoLHUsZixzKSksYS5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwieHRlcm0tY3Vyc29yLXBvaW50ZXJcIil9LGZ1bmN0aW9uKGUpe2EuX29uTGlua1Rvb2x0aXAuZmlyZShhLl9jcmVhdGVMaW5rSG92ZXJFdmVudChsLGgsdSxmLHMpKSxuLmhvdmVyVG9vbHRpcENhbGxiYWNrJiZuLmhvdmVyVG9vbHRpcENhbGxiYWNrKGUsaSl9LGZ1bmN0aW9uKCl7YS5fb25MaW5rTGVhdmUuZmlyZShhLl9jcmVhdGVMaW5rSG92ZXJFdmVudChsLGgsdSxmLHMpKSxhLl9lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJ4dGVybS1jdXJzb3ItcG9pbnRlclwiKSxuLmhvdmVyTGVhdmVDYWxsYmFjayYmbi5ob3ZlckxlYXZlQ2FsbGJhY2soKX0sZnVuY3Rpb24oZSl7cmV0dXJuIW4ud2lsbExpbmtBY3RpdmF0ZXx8bi53aWxsTGlua0FjdGl2YXRlKGUsaSl9KSl9fSxlLnByb3RvdHlwZS5fY3JlYXRlTGlua0hvdmVyRXZlbnQ9ZnVuY3Rpb24oZSx0LGkscixuKXtyZXR1cm57eDE6ZSx5MTp0LHgyOmkseTI6cixjb2xzOnRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyxmZzpufX0sZS5fdGltZUJlZm9yZUxhdGVuY3k9MjAwLGV9KCk7dC5MaW5raWZpZXI9czt2YXIgbz1mdW5jdGlvbihlLHQsaSxyLG4scyxvLGEsYyl7dGhpcy54MT1lLHRoaXMueTE9dCx0aGlzLngyPWksdGhpcy55Mj1yLHRoaXMuY2xpY2tDYWxsYmFjaz1uLHRoaXMuaG92ZXJDYWxsYmFjaz1zLHRoaXMudG9vbHRpcENhbGxiYWNrPW8sdGhpcy5sZWF2ZUNhbGxiYWNrPWEsdGhpcy53aWxsTGlua0FjdGl2YXRlPWN9O3QuTW91c2Vab25lPW99LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fZGVjb3JhdGV8fGZ1bmN0aW9uKGUsdCxpLHIpe3ZhciBuLHM9YXJndW1lbnRzLmxlbmd0aCxvPXM8Mz90Om51bGw9PT1yP3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpOnI7aWYoXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpbz1SZWZsZWN0LmRlY29yYXRlKGUsdCxpLHIpO2Vsc2UgZm9yKHZhciBhPWUubGVuZ3RoLTE7YT49MDthLS0pKG49ZVthXSkmJihvPShzPDM/bihvKTpzPjM/bih0LGksbyk6bih0LGkpKXx8byk7cmV0dXJuIHM+MyYmbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxvKSxvfSxuPXRoaXMmJnRoaXMuX19wYXJhbXx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oaSxyKXt0KGkscixlKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBzPWkoMTApLG89aSg1MCksYT1pKDQpLGM9aSgxKSxsPWkoNSksaD1pKDApLHU9aSgyOCksZj1pKDUxKSxfPVN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKSxkPW5ldyBSZWdFeHAoXyxcImdcIikscD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LGkscixuLHMsbCxoKXt2YXIgdT10aGlzO3RoaXMuX3Njcm9sbExpbmVzPWUsdGhpcy5fZWxlbWVudD10LHRoaXMuX3NjcmVlbkVsZW1lbnQ9aSx0aGlzLl9jaGFyU2l6ZVNlcnZpY2U9cix0aGlzLl9idWZmZXJTZXJ2aWNlPW4sdGhpcy5fY29yZVNlcnZpY2U9cyx0aGlzLl9tb3VzZVNlcnZpY2U9bCx0aGlzLl9vcHRpb25zU2VydmljZT1oLHRoaXMuX2RyYWdTY3JvbGxBbW91bnQ9MCx0aGlzLl9lbmFibGVkPSEwLHRoaXMuX3dvcmtDZWxsPW5ldyBhLkNlbGxEYXRhLHRoaXMuX21vdXNlRG93blRpbWVTdGFtcD0wLHRoaXMuX29uTGludXhNb3VzZVNlbGVjdGlvbj1uZXcgYy5FdmVudEVtaXR0ZXIsdGhpcy5fb25SZWRyYXdSZXF1ZXN0PW5ldyBjLkV2ZW50RW1pdHRlcix0aGlzLl9vblNlbGVjdGlvbkNoYW5nZT1uZXcgYy5FdmVudEVtaXR0ZXIsdGhpcy5fbW91c2VNb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHUuX29uTW91c2VNb3ZlKGUpfSx0aGlzLl9tb3VzZVVwTGlzdGVuZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHUuX29uTW91c2VVcChlKX0sdGhpcy5fY29yZVNlcnZpY2Uub25Vc2VySW5wdXQoZnVuY3Rpb24oKXt1Lmhhc1NlbGVjdGlvbiYmdS5jbGVhclNlbGVjdGlvbigpfSksdGhpcy5fdHJpbUxpc3RlbmVyPXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLmxpbmVzLm9uVHJpbShmdW5jdGlvbihlKXtyZXR1cm4gdS5fb25UcmltKGUpfSksdGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXJzLm9uQnVmZmVyQWN0aXZhdGUoZnVuY3Rpb24oZSl7cmV0dXJuIHUuX29uQnVmZmVyQWN0aXZhdGUoZSl9KSx0aGlzLmVuYWJsZSgpLHRoaXMuX21vZGVsPW5ldyBvLlNlbGVjdGlvbk1vZGVsKHRoaXMuX2J1ZmZlclNlcnZpY2UpLHRoaXMuX2FjdGl2ZVNlbGVjdGlvbk1vZGU9MH1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwib25MaW51eE1vdXNlU2VsZWN0aW9uXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkxpbnV4TW91c2VTZWxlY3Rpb24uZXZlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwib25SZWRyYXdSZXF1ZXN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblJlZHJhd1JlcXVlc3QuZXZlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwib25TZWxlY3Rpb25DaGFuZ2VcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uU2VsZWN0aW9uQ2hhbmdlLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVNb3VzZURvd25MaXN0ZW5lcnMoKX0sZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyU2VsZWN0aW9uKCl9LGUucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmNsZWFyU2VsZWN0aW9uKCksdGhpcy5fZW5hYmxlZD0hMX0sZS5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZD0hMH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwic2VsZWN0aW9uU3RhcnRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vZGVsLmZpbmFsU2VsZWN0aW9uU3RhcnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwic2VsZWN0aW9uRW5kXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb2RlbC5maW5hbFNlbGVjdGlvbkVuZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJoYXNTZWxlY3Rpb25cIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fbW9kZWwuZmluYWxTZWxlY3Rpb25TdGFydCx0PXRoaXMuX21vZGVsLmZpbmFsU2VsZWN0aW9uRW5kO3JldHVybiEoIWV8fCF0KSYmKGVbMF0hPT10WzBdfHxlWzFdIT09dFsxXSl9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwic2VsZWN0aW9uVGV4dFwiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9tb2RlbC5maW5hbFNlbGVjdGlvblN0YXJ0LHQ9dGhpcy5fbW9kZWwuZmluYWxTZWxlY3Rpb25FbmQ7aWYoIWV8fCF0KXJldHVyblwiXCI7dmFyIGk9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIscj1bXTtpZigzPT09dGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZSl7aWYoZVswXT09PXRbMF0pcmV0dXJuXCJcIjtmb3IodmFyIG49ZVsxXTtuPD10WzFdO24rKyl7dmFyIG89aS50cmFuc2xhdGVCdWZmZXJMaW5lVG9TdHJpbmcobiwhMCxlWzBdLHRbMF0pO3IucHVzaChvKX19ZWxzZXt2YXIgYT1lWzFdPT09dFsxXT90WzBdOnZvaWQgMDtyLnB1c2goaS50cmFuc2xhdGVCdWZmZXJMaW5lVG9TdHJpbmcoZVsxXSwhMCxlWzBdLGEpKTtmb3Iobj1lWzFdKzE7bjw9dFsxXS0xO24rKyl7dmFyIGM9aS5saW5lcy5nZXQobik7bz1pLnRyYW5zbGF0ZUJ1ZmZlckxpbmVUb1N0cmluZyhuLCEwKTtjLmlzV3JhcHBlZD9yW3IubGVuZ3RoLTFdKz1vOnIucHVzaChvKX1pZihlWzFdIT09dFsxXSl7Yz1pLmxpbmVzLmdldCh0WzFdKSxvPWkudHJhbnNsYXRlQnVmZmVyTGluZVRvU3RyaW5nKHRbMV0sITAsMCx0WzBdKTtjLmlzV3JhcHBlZD9yW3IubGVuZ3RoLTFdKz1vOnIucHVzaChvKX19cmV0dXJuIHIubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoZCxcIiBcIil9KS5qb2luKHMuaXNXaW5kb3dzP1wiXFxyXFxuXCI6XCJcXG5cIil9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuY2xlYXJTZWxlY3Rpb249ZnVuY3Rpb24oKXt0aGlzLl9tb2RlbC5jbGVhclNlbGVjdGlvbigpLHRoaXMuX3JlbW92ZU1vdXNlRG93bkxpc3RlbmVycygpLHRoaXMucmVmcmVzaCgpLHRoaXMuX29uU2VsZWN0aW9uQ2hhbmdlLmZpcmUoKX0sZS5wcm90b3R5cGUucmVmcmVzaD1mdW5jdGlvbihlKXt2YXIgdD10aGlzOyh0aGlzLl9yZWZyZXNoQW5pbWF0aW9uRnJhbWV8fCh0aGlzLl9yZWZyZXNoQW5pbWF0aW9uRnJhbWU9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JldHVybiB0Ll9yZWZyZXNoKCl9KSkscy5pc0xpbnV4JiZlKSYmKHRoaXMuc2VsZWN0aW9uVGV4dC5sZW5ndGgmJnRoaXMuX29uTGludXhNb3VzZVNlbGVjdGlvbi5maXJlKHRoaXMuc2VsZWN0aW9uVGV4dCkpfSxlLnByb3RvdHlwZS5fcmVmcmVzaD1mdW5jdGlvbigpe3RoaXMuX3JlZnJlc2hBbmltYXRpb25GcmFtZT12b2lkIDAsdGhpcy5fb25SZWRyYXdSZXF1ZXN0LmZpcmUoe3N0YXJ0OnRoaXMuX21vZGVsLmZpbmFsU2VsZWN0aW9uU3RhcnQsZW5kOnRoaXMuX21vZGVsLmZpbmFsU2VsZWN0aW9uRW5kLGNvbHVtblNlbGVjdE1vZGU6Mz09PXRoaXMuX2FjdGl2ZVNlbGVjdGlvbk1vZGV9KX0sZS5wcm90b3R5cGUuaXNDbGlja0luU2VsZWN0aW9uPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2dldE1vdXNlQnVmZmVyQ29vcmRzKGUpLGk9dGhpcy5fbW9kZWwuZmluYWxTZWxlY3Rpb25TdGFydCxyPXRoaXMuX21vZGVsLmZpbmFsU2VsZWN0aW9uRW5kO3JldHVybiEhKGkmJnImJnQpJiZ0aGlzLl9hcmVDb29yZHNJblNlbGVjdGlvbih0LGkscil9LGUucHJvdG90eXBlLl9hcmVDb29yZHNJblNlbGVjdGlvbj1mdW5jdGlvbihlLHQsaSl7cmV0dXJuIGVbMV0+dFsxXSYmZVsxXTxpWzFdfHx0WzFdPT09aVsxXSYmZVsxXT09PXRbMV0mJmVbMF0+PXRbMF0mJmVbMF08aVswXXx8dFsxXTxpWzFdJiZlWzFdPT09aVsxXSYmZVswXTxpWzBdfHx0WzFdPGlbMV0mJmVbMV09PT10WzFdJiZlWzBdPj10WzBdfSxlLnByb3RvdHlwZS5zZWxlY3RXb3JkQXRDdXJzb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZ2V0TW91c2VCdWZmZXJDb29yZHMoZSk7dCYmKHRoaXMuX3NlbGVjdFdvcmRBdCh0LCExKSx0aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmQ9dm9pZCAwLHRoaXMucmVmcmVzaCghMCkpfSxlLnByb3RvdHlwZS5zZWxlY3RBbGw9ZnVuY3Rpb24oKXt0aGlzLl9tb2RlbC5pc1NlbGVjdEFsbEFjdGl2ZT0hMCx0aGlzLnJlZnJlc2goKSx0aGlzLl9vblNlbGVjdGlvbkNoYW5nZS5maXJlKCl9LGUucHJvdG90eXBlLnNlbGVjdExpbmVzPWZ1bmN0aW9uKGUsdCl7dGhpcy5fbW9kZWwuY2xlYXJTZWxlY3Rpb24oKSxlPU1hdGgubWF4KGUsMCksdD1NYXRoLm1pbih0LHRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLmxpbmVzLmxlbmd0aC0xKSx0aGlzLl9tb2RlbC5zZWxlY3Rpb25TdGFydD1bMCxlXSx0aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmQ9W3RoaXMuX2J1ZmZlclNlcnZpY2UuY29scyx0XSx0aGlzLnJlZnJlc2goKSx0aGlzLl9vblNlbGVjdGlvbkNoYW5nZS5maXJlKCl9LGUucHJvdG90eXBlLl9vblRyaW09ZnVuY3Rpb24oZSl7dGhpcy5fbW9kZWwub25UcmltKGUpJiZ0aGlzLnJlZnJlc2goKX0sZS5wcm90b3R5cGUuX2dldE1vdXNlQnVmZmVyQ29vcmRzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX21vdXNlU2VydmljZS5nZXRDb29yZHMoZSx0aGlzLl9zY3JlZW5FbGVtZW50LHRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyx0aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MsITApO2lmKHQpcmV0dXJuIHRbMF0tLSx0WzFdLS0sdFsxXSs9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXIueWRpc3AsdH0sZS5wcm90b3R5cGUuX2dldE1vdXNlRXZlbnRTY3JvbGxBbW91bnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dS5nZXRDb29yZHNSZWxhdGl2ZVRvRWxlbWVudChlLHRoaXMuX3NjcmVlbkVsZW1lbnQpWzFdLGk9dGhpcy5fYnVmZmVyU2VydmljZS5yb3dzKk1hdGguY2VpbCh0aGlzLl9jaGFyU2l6ZVNlcnZpY2UuaGVpZ2h0KnRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMubGluZUhlaWdodCk7cmV0dXJuIHQ+PTAmJnQ8PWk/MDoodD5pJiYodC09aSksdD1NYXRoLm1pbihNYXRoLm1heCh0LC01MCksNTApLCh0Lz01MCkvTWF0aC5hYnModCkrTWF0aC5yb3VuZCgxNCp0KSl9LGUucHJvdG90eXBlLnNob3VsZEZvcmNlU2VsZWN0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBzLmlzTWFjP2UuYWx0S2V5JiZ0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLm1hY09wdGlvbkNsaWNrRm9yY2VzU2VsZWN0aW9uOmUuc2hpZnRLZXl9LGUucHJvdG90eXBlLm9uTW91c2VEb3duPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX21vdXNlRG93blRpbWVTdGFtcD1lLnRpbWVTdGFtcCwoMiE9PWUuYnV0dG9ufHwhdGhpcy5oYXNTZWxlY3Rpb24pJiYwPT09ZS5idXR0b24pe2lmKCF0aGlzLl9lbmFibGVkKXtpZighdGhpcy5zaG91bGRGb3JjZVNlbGVjdGlvbihlKSlyZXR1cm47ZS5zdG9wUHJvcGFnYXRpb24oKX1lLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZHJhZ1Njcm9sbEFtb3VudD0wLHRoaXMuX2VuYWJsZWQmJmUuc2hpZnRLZXk/dGhpcy5fb25JbmNyZW1lbnRhbENsaWNrKGUpOjE9PT1lLmRldGFpbD90aGlzLl9vblNpbmdsZUNsaWNrKGUpOjI9PT1lLmRldGFpbD90aGlzLl9vbkRvdWJsZUNsaWNrKGUpOjM9PT1lLmRldGFpbCYmdGhpcy5fb25UcmlwbGVDbGljayhlKSx0aGlzLl9hZGRNb3VzZURvd25MaXN0ZW5lcnMoKSx0aGlzLnJlZnJlc2goITApfX0sZS5wcm90b3R5cGUuX2FkZE1vdXNlRG93bkxpc3RlbmVycz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fc2NyZWVuRWxlbWVudC5vd25lckRvY3VtZW50JiYodGhpcy5fc2NyZWVuRWxlbWVudC5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIix0aGlzLl9tb3VzZU1vdmVMaXN0ZW5lciksdGhpcy5fc2NyZWVuRWxlbWVudC5vd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsdGhpcy5fbW91c2VVcExpc3RlbmVyKSksdGhpcy5fZHJhZ1Njcm9sbEludGVydmFsVGltZXI9d2luZG93LnNldEludGVydmFsKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2RyYWdTY3JvbGwoKX0sNTApfSxlLnByb3RvdHlwZS5fcmVtb3ZlTW91c2VEb3duTGlzdGVuZXJzPWZ1bmN0aW9uKCl7dGhpcy5fc2NyZWVuRWxlbWVudC5vd25lckRvY3VtZW50JiYodGhpcy5fc2NyZWVuRWxlbWVudC5vd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIix0aGlzLl9tb3VzZU1vdmVMaXN0ZW5lciksdGhpcy5fc2NyZWVuRWxlbWVudC5vd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsdGhpcy5fbW91c2VVcExpc3RlbmVyKSksY2xlYXJJbnRlcnZhbCh0aGlzLl9kcmFnU2Nyb2xsSW50ZXJ2YWxUaW1lciksdGhpcy5fZHJhZ1Njcm9sbEludGVydmFsVGltZXI9dm9pZCAwfSxlLnByb3RvdHlwZS5fb25JbmNyZW1lbnRhbENsaWNrPWZ1bmN0aW9uKGUpe3RoaXMuX21vZGVsLnNlbGVjdGlvblN0YXJ0JiYodGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kPXRoaXMuX2dldE1vdXNlQnVmZmVyQ29vcmRzKGUpKX0sZS5wcm90b3R5cGUuX29uU2luZ2xlQ2xpY2s9ZnVuY3Rpb24oZSl7aWYodGhpcy5fbW9kZWwuc2VsZWN0aW9uU3RhcnRMZW5ndGg9MCx0aGlzLl9tb2RlbC5pc1NlbGVjdEFsbEFjdGl2ZT0hMSx0aGlzLl9hY3RpdmVTZWxlY3Rpb25Nb2RlPXRoaXMuc2hvdWxkQ29sdW1uU2VsZWN0KGUpPzM6MCx0aGlzLl9tb2RlbC5zZWxlY3Rpb25TdGFydD10aGlzLl9nZXRNb3VzZUJ1ZmZlckNvb3JkcyhlKSx0aGlzLl9tb2RlbC5zZWxlY3Rpb25TdGFydCl7dGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kPXZvaWQgMDt2YXIgdD10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci5saW5lcy5nZXQodGhpcy5fbW9kZWwuc2VsZWN0aW9uU3RhcnRbMV0pO3QmJnQubGVuZ3RoIT09dGhpcy5fbW9kZWwuc2VsZWN0aW9uU3RhcnRbMF0mJjA9PT10Lmhhc1dpZHRoKHRoaXMuX21vZGVsLnNlbGVjdGlvblN0YXJ0WzBdKSYmdGhpcy5fbW9kZWwuc2VsZWN0aW9uU3RhcnRbMF0rK319LGUucHJvdG90eXBlLl9vbkRvdWJsZUNsaWNrPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2dldE1vdXNlQnVmZmVyQ29vcmRzKGUpO3QmJih0aGlzLl9hY3RpdmVTZWxlY3Rpb25Nb2RlPTEsdGhpcy5fc2VsZWN0V29yZEF0KHQsITApKX0sZS5wcm90b3R5cGUuX29uVHJpcGxlQ2xpY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZ2V0TW91c2VCdWZmZXJDb29yZHMoZSk7dCYmKHRoaXMuX2FjdGl2ZVNlbGVjdGlvbk1vZGU9Mix0aGlzLl9zZWxlY3RMaW5lQXQodFsxXSkpfSxlLnByb3RvdHlwZS5zaG91bGRDb2x1bW5TZWxlY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuYWx0S2V5JiYhKHMuaXNNYWMmJnRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMubWFjT3B0aW9uQ2xpY2tGb3JjZXNTZWxlY3Rpb24pfSxlLnByb3RvdHlwZS5fb25Nb3VzZU1vdmU9ZnVuY3Rpb24oZSl7aWYoZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLl9tb2RlbC5zZWxlY3Rpb25TdGFydCl7dmFyIHQ9dGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kP1t0aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmRbMF0sdGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kWzFdXTpudWxsO2lmKHRoaXMuX21vZGVsLnNlbGVjdGlvbkVuZD10aGlzLl9nZXRNb3VzZUJ1ZmZlckNvb3JkcyhlKSx0aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmQpezI9PT10aGlzLl9hY3RpdmVTZWxlY3Rpb25Nb2RlP3RoaXMuX21vZGVsLnNlbGVjdGlvbkVuZFsxXTx0aGlzLl9tb2RlbC5zZWxlY3Rpb25TdGFydFsxXT90aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmRbMF09MDp0aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmRbMF09dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzOjE9PT10aGlzLl9hY3RpdmVTZWxlY3Rpb25Nb2RlJiZ0aGlzLl9zZWxlY3RUb1dvcmRBdCh0aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmQpLHRoaXMuX2RyYWdTY3JvbGxBbW91bnQ9dGhpcy5fZ2V0TW91c2VFdmVudFNjcm9sbEFtb3VudChlKSwzIT09dGhpcy5fYWN0aXZlU2VsZWN0aW9uTW9kZSYmKHRoaXMuX2RyYWdTY3JvbGxBbW91bnQ+MD90aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmRbMF09dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzOnRoaXMuX2RyYWdTY3JvbGxBbW91bnQ8MCYmKHRoaXMuX21vZGVsLnNlbGVjdGlvbkVuZFswXT0wKSk7dmFyIGk9dGhpcy5fYnVmZmVyU2VydmljZS5idWZmZXI7aWYodGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kWzFdPGkubGluZXMubGVuZ3RoKXt2YXIgcj1pLmxpbmVzLmdldCh0aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmRbMV0pO3ImJjA9PT1yLmhhc1dpZHRoKHRoaXMuX21vZGVsLnNlbGVjdGlvbkVuZFswXSkmJnRoaXMuX21vZGVsLnNlbGVjdGlvbkVuZFswXSsrfXQmJnRbMF09PT10aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmRbMF0mJnRbMV09PT10aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmRbMV18fHRoaXMucmVmcmVzaCghMCl9ZWxzZSB0aGlzLnJlZnJlc2goITApfX0sZS5wcm90b3R5cGUuX2RyYWdTY3JvbGw9ZnVuY3Rpb24oKXtpZih0aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmQmJnRoaXMuX21vZGVsLnNlbGVjdGlvblN0YXJ0JiZ0aGlzLl9kcmFnU2Nyb2xsQW1vdW50KXt0aGlzLl9zY3JvbGxMaW5lcyh0aGlzLl9kcmFnU2Nyb2xsQW1vdW50LCExKTt2YXIgZT10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlcjt0aGlzLl9kcmFnU2Nyb2xsQW1vdW50PjA/KDMhPT10aGlzLl9hY3RpdmVTZWxlY3Rpb25Nb2RlJiYodGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kWzBdPXRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyksdGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kWzFdPU1hdGgubWluKGUueWRpc3ArdGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLGUubGluZXMubGVuZ3RoLTEpKTooMyE9PXRoaXMuX2FjdGl2ZVNlbGVjdGlvbk1vZGUmJih0aGlzLl9tb2RlbC5zZWxlY3Rpb25FbmRbMF09MCksdGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kWzFdPWUueWRpc3ApLHRoaXMucmVmcmVzaCgpfX0sZS5wcm90b3R5cGUuX29uTW91c2VVcD1mdW5jdGlvbihlKXt2YXIgdD1lLnRpbWVTdGFtcC10aGlzLl9tb3VzZURvd25UaW1lU3RhbXA7aWYodGhpcy5fcmVtb3ZlTW91c2VEb3duTGlzdGVuZXJzKCksdGhpcy5zZWxlY3Rpb25UZXh0Lmxlbmd0aDw9MSYmdDw1MDApe2lmKGUuYWx0S2V5JiZ0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55YmFzZT09PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnlkaXNwKXt2YXIgaT10aGlzLl9tb3VzZVNlcnZpY2UuZ2V0Q29vcmRzKGUsdGhpcy5fZWxlbWVudCx0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsdGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLCExKTtpZihpJiZ2b2lkIDAhPT1pWzBdJiZ2b2lkIDAhPT1pWzFdKXt2YXIgcj1mLm1vdmVUb0NlbGxTZXF1ZW5jZShpWzBdLTEsaVsxXS0xLHRoaXMuX2J1ZmZlclNlcnZpY2UsdGhpcy5fY29yZVNlcnZpY2UuZGVjUHJpdmF0ZU1vZGVzLmFwcGxpY2F0aW9uQ3Vyc29yS2V5cyk7dGhpcy5fY29yZVNlcnZpY2UudHJpZ2dlckRhdGFFdmVudChyLCEwKX19fWVsc2UgdGhpcy5oYXNTZWxlY3Rpb24mJnRoaXMuX29uU2VsZWN0aW9uQ2hhbmdlLmZpcmUoKX0sZS5wcm90b3R5cGUuX29uQnVmZmVyQWN0aXZhdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLmNsZWFyU2VsZWN0aW9uKCksdGhpcy5fdHJpbUxpc3RlbmVyJiZ0aGlzLl90cmltTGlzdGVuZXIuZGlzcG9zZSgpLHRoaXMuX3RyaW1MaXN0ZW5lcj1lLmFjdGl2ZUJ1ZmZlci5saW5lcy5vblRyaW0oZnVuY3Rpb24oZSl7cmV0dXJuIHQuX29uVHJpbShlKX0pfSxlLnByb3RvdHlwZS5fY29udmVydFZpZXdwb3J0Q29sVG9DaGFyYWN0ZXJJbmRleD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgaT10WzBdLHI9MDt0WzBdPj1yO3IrKyl7dmFyIG49ZS5sb2FkQ2VsbChyLHRoaXMuX3dvcmtDZWxsKS5nZXRDaGFycygpLmxlbmd0aDswPT09dGhpcy5fd29ya0NlbGwuZ2V0V2lkdGgoKT9pLS06bj4xJiZ0WzBdIT09ciYmKGkrPW4tMSl9cmV0dXJuIGl9LGUucHJvdG90eXBlLnNldFNlbGVjdGlvbj1mdW5jdGlvbihlLHQsaSl7dGhpcy5fbW9kZWwuY2xlYXJTZWxlY3Rpb24oKSx0aGlzLl9yZW1vdmVNb3VzZURvd25MaXN0ZW5lcnMoKSx0aGlzLl9tb2RlbC5zZWxlY3Rpb25TdGFydD1bZSx0XSx0aGlzLl9tb2RlbC5zZWxlY3Rpb25TdGFydExlbmd0aD1pLHRoaXMucmVmcmVzaCgpfSxlLnByb3RvdHlwZS5fZ2V0V29yZEF0PWZ1bmN0aW9uKGUsdCxpLHIpe2lmKHZvaWQgMD09PWkmJihpPSEwKSx2b2lkIDA9PT1yJiYocj0hMCksIShlWzBdPj10aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMpKXt2YXIgbj10aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlcixzPW4ubGluZXMuZ2V0KGVbMV0pO2lmKHMpe3ZhciBvPW4udHJhbnNsYXRlQnVmZmVyTGluZVRvU3RyaW5nKGVbMV0sITEpLGE9dGhpcy5fY29udmVydFZpZXdwb3J0Q29sVG9DaGFyYWN0ZXJJbmRleChzLGUpLGM9YSxsPWVbMF0tYSxoPTAsdT0wLGY9MCxfPTA7aWYoXCIgXCI9PT1vLmNoYXJBdChhKSl7Zm9yKDthPjAmJlwiIFwiPT09by5jaGFyQXQoYS0xKTspYS0tO2Zvcig7YzxvLmxlbmd0aCYmXCIgXCI9PT1vLmNoYXJBdChjKzEpOyljKyt9ZWxzZXt2YXIgZD1lWzBdLHA9ZVswXTswPT09cy5nZXRXaWR0aChkKSYmKGgrKyxkLS0pLDI9PT1zLmdldFdpZHRoKHApJiYodSsrLHArKyk7dmFyIHY9cy5nZXRTdHJpbmcocCkubGVuZ3RoO2Zvcih2PjEmJihfKz12LTEsYys9di0xKTtkPjAmJmE+MCYmIXRoaXMuX2lzQ2hhcldvcmRTZXBhcmF0b3Iocy5sb2FkQ2VsbChkLTEsdGhpcy5fd29ya0NlbGwpKTspe3MubG9hZENlbGwoZC0xLHRoaXMuX3dvcmtDZWxsKTt2YXIgZz10aGlzLl93b3JrQ2VsbC5nZXRDaGFycygpLmxlbmd0aDswPT09dGhpcy5fd29ya0NlbGwuZ2V0V2lkdGgoKT8oaCsrLGQtLSk6Zz4xJiYoZis9Zy0xLGEtPWctMSksYS0tLGQtLX1mb3IoO3A8cy5sZW5ndGgmJmMrMTxvLmxlbmd0aCYmIXRoaXMuX2lzQ2hhcldvcmRTZXBhcmF0b3Iocy5sb2FkQ2VsbChwKzEsdGhpcy5fd29ya0NlbGwpKTspe3MubG9hZENlbGwocCsxLHRoaXMuX3dvcmtDZWxsKTt2YXIgeT10aGlzLl93b3JrQ2VsbC5nZXRDaGFycygpLmxlbmd0aDsyPT09dGhpcy5fd29ya0NlbGwuZ2V0V2lkdGgoKT8odSsrLHArKyk6eT4xJiYoXys9eS0xLGMrPXktMSksYysrLHArK319YysrO3ZhciBtPWErbC1oK2YsYj1NYXRoLm1pbih0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsYy1hK2grdS1mLV8pO2lmKHR8fFwiXCIhPT1vLnNsaWNlKGEsYykudHJpbSgpKXtpZihpJiYwPT09bSYmMzIhPT1zLmdldENvZGVQb2ludCgwKSl7dmFyIEM9bi5saW5lcy5nZXQoZVsxXS0xKTtpZihDJiZzLmlzV3JhcHBlZCYmMzIhPT1DLmdldENvZGVQb2ludCh0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMtMSkpe3ZhciBTPXRoaXMuX2dldFdvcmRBdChbdGhpcy5fYnVmZmVyU2VydmljZS5jb2xzLTEsZVsxXS0xXSwhMSwhMCwhMSk7aWYoUyl7dmFyIHc9dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzLVMuc3RhcnQ7bS09dyxiKz13fX19aWYociYmbStiPT09dGhpcy5fYnVmZmVyU2VydmljZS5jb2xzJiYzMiE9PXMuZ2V0Q29kZVBvaW50KHRoaXMuX2J1ZmZlclNlcnZpY2UuY29scy0xKSl7dmFyIEU9bi5saW5lcy5nZXQoZVsxXSsxKTtpZihFJiZFLmlzV3JhcHBlZCYmMzIhPT1FLmdldENvZGVQb2ludCgwKSl7dmFyIEw9dGhpcy5fZ2V0V29yZEF0KFswLGVbMV0rMV0sITEsITEsITApO0wmJihiKz1MLmxlbmd0aCl9fXJldHVybntzdGFydDptLGxlbmd0aDpifX19fX0sZS5wcm90b3R5cGUuX3NlbGVjdFdvcmRBdD1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuX2dldFdvcmRBdChlLHQpO2lmKGkpe2Zvcig7aS5zdGFydDwwOylpLnN0YXJ0Kz10aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsZVsxXS0tO3RoaXMuX21vZGVsLnNlbGVjdGlvblN0YXJ0PVtpLnN0YXJ0LGVbMV1dLHRoaXMuX21vZGVsLnNlbGVjdGlvblN0YXJ0TGVuZ3RoPWkubGVuZ3RofX0sZS5wcm90b3R5cGUuX3NlbGVjdFRvV29yZEF0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2dldFdvcmRBdChlLCEwKTtpZih0KXtmb3IodmFyIGk9ZVsxXTt0LnN0YXJ0PDA7KXQuc3RhcnQrPXRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyxpLS07aWYoIXRoaXMuX21vZGVsLmFyZVNlbGVjdGlvblZhbHVlc1JldmVyc2VkKCkpZm9yKDt0LnN0YXJ0K3QubGVuZ3RoPnRoaXMuX2J1ZmZlclNlcnZpY2UuY29sczspdC5sZW5ndGgtPXRoaXMuX2J1ZmZlclNlcnZpY2UuY29scyxpKys7dGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kPVt0aGlzLl9tb2RlbC5hcmVTZWxlY3Rpb25WYWx1ZXNSZXZlcnNlZCgpP3Quc3RhcnQ6dC5zdGFydCt0Lmxlbmd0aCxpXX19LGUucHJvdG90eXBlLl9pc0NoYXJXb3JkU2VwYXJhdG9yPWZ1bmN0aW9uKGUpe3JldHVybiAwIT09ZS5nZXRXaWR0aCgpJiZ0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLndvcmRTZXBhcmF0b3IuaW5kZXhPZihlLmdldENoYXJzKCkpPj0wfSxlLnByb3RvdHlwZS5fc2VsZWN0TGluZUF0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLmdldFdyYXBwZWRSYW5nZUZvckxpbmUoZSk7dGhpcy5fbW9kZWwuc2VsZWN0aW9uU3RhcnQ9WzAsdC5maXJzdF0sdGhpcy5fbW9kZWwuc2VsZWN0aW9uRW5kPVt0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsdC5sYXN0XSx0aGlzLl9tb2RlbC5zZWxlY3Rpb25TdGFydExlbmd0aD0wfSxlPXIoW24oMyxsLklDaGFyU2l6ZVNlcnZpY2UpLG4oNCxoLklCdWZmZXJTZXJ2aWNlKSxuKDUsaC5JQ29yZVNlcnZpY2UpLG4oNixsLklNb3VzZVNlcnZpY2UpLG4oNyxoLklPcHRpb25zU2VydmljZSldLGUpfSgpO3QuU2VsZWN0aW9uU2VydmljZT1wfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuX2J1ZmZlclNlcnZpY2U9ZSx0aGlzLmlzU2VsZWN0QWxsQWN0aXZlPSExLHRoaXMuc2VsZWN0aW9uU3RhcnRMZW5ndGg9MH1yZXR1cm4gZS5wcm90b3R5cGUuY2xlYXJTZWxlY3Rpb249ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvblN0YXJ0PXZvaWQgMCx0aGlzLnNlbGVjdGlvbkVuZD12b2lkIDAsdGhpcy5pc1NlbGVjdEFsbEFjdGl2ZT0hMSx0aGlzLnNlbGVjdGlvblN0YXJ0TGVuZ3RoPTB9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcImZpbmFsU2VsZWN0aW9uU3RhcnRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNTZWxlY3RBbGxBY3RpdmU/WzAsMF06dGhpcy5zZWxlY3Rpb25FbmQmJnRoaXMuc2VsZWN0aW9uU3RhcnQmJnRoaXMuYXJlU2VsZWN0aW9uVmFsdWVzUmV2ZXJzZWQoKT90aGlzLnNlbGVjdGlvbkVuZDp0aGlzLnNlbGVjdGlvblN0YXJ0fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcImZpbmFsU2VsZWN0aW9uRW5kXCIse2dldDpmdW5jdGlvbigpe2lmKHRoaXMuaXNTZWxlY3RBbGxBY3RpdmUpcmV0dXJuW3RoaXMuX2J1ZmZlclNlcnZpY2UuY29scyx0aGlzLl9idWZmZXJTZXJ2aWNlLmJ1ZmZlci55YmFzZSt0aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MtMV07aWYodGhpcy5zZWxlY3Rpb25TdGFydCl7aWYoIXRoaXMuc2VsZWN0aW9uRW5kfHx0aGlzLmFyZVNlbGVjdGlvblZhbHVlc1JldmVyc2VkKCkpe3ZhciBlPXRoaXMuc2VsZWN0aW9uU3RhcnRbMF0rdGhpcy5zZWxlY3Rpb25TdGFydExlbmd0aDtyZXR1cm4gZT50aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHM/W2UldGhpcy5fYnVmZmVyU2VydmljZS5jb2xzLHRoaXMuc2VsZWN0aW9uU3RhcnRbMV0rTWF0aC5mbG9vcihlL3RoaXMuX2J1ZmZlclNlcnZpY2UuY29scyldOltlLHRoaXMuc2VsZWN0aW9uU3RhcnRbMV1dfXJldHVybiB0aGlzLnNlbGVjdGlvblN0YXJ0TGVuZ3RoJiZ0aGlzLnNlbGVjdGlvbkVuZFsxXT09PXRoaXMuc2VsZWN0aW9uU3RhcnRbMV0/W01hdGgubWF4KHRoaXMuc2VsZWN0aW9uU3RhcnRbMF0rdGhpcy5zZWxlY3Rpb25TdGFydExlbmd0aCx0aGlzLnNlbGVjdGlvbkVuZFswXSksdGhpcy5zZWxlY3Rpb25FbmRbMV1dOnRoaXMuc2VsZWN0aW9uRW5kfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5hcmVTZWxlY3Rpb25WYWx1ZXNSZXZlcnNlZD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuc2VsZWN0aW9uU3RhcnQsdD10aGlzLnNlbGVjdGlvbkVuZDtyZXR1cm4hKCFlfHwhdCkmJihlWzFdPnRbMV18fGVbMV09PT10WzFdJiZlWzBdPnRbMF0pfSxlLnByb3RvdHlwZS5vblRyaW09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uU3RhcnQmJih0aGlzLnNlbGVjdGlvblN0YXJ0WzFdLT1lKSx0aGlzLnNlbGVjdGlvbkVuZCYmKHRoaXMuc2VsZWN0aW9uRW5kWzFdLT1lKSx0aGlzLnNlbGVjdGlvbkVuZCYmdGhpcy5zZWxlY3Rpb25FbmRbMV08MD8odGhpcy5jbGVhclNlbGVjdGlvbigpLCEwKToodGhpcy5zZWxlY3Rpb25TdGFydCYmdGhpcy5zZWxlY3Rpb25TdGFydFsxXTwwJiYodGhpcy5zZWxlY3Rpb25TdGFydFsxXT0wKSwhMSl9LGV9KCk7dC5TZWxlY3Rpb25Nb2RlbD1yfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9aSgxMSk7ZnVuY3Rpb24gbihlLHQsaSxyKXt2YXIgbj1lLXMoaSxlKSxvPXQtcyhpLHQpO3JldHVybiBoKE1hdGguYWJzKG4tbyktZnVuY3Rpb24oZSx0LGkpe2Zvcih2YXIgcj0wLG49ZS1zKGksZSksbz10LXMoaSx0KSxjPTA7YzxNYXRoLmFicyhuLW8pO2MrKyl7dmFyIGw9XCJBXCI9PT1hKGUsdCk/LTE6MSxoPWkuYnVmZmVyLmxpbmVzLmdldChuK2wqYyk7aCYmaC5pc1dyYXBwZWQmJnIrK31yZXR1cm4gcn0oZSx0LGkpLGwoYShlLHQpLHIpKX1mdW5jdGlvbiBzKGUsdCl7Zm9yKHZhciBpPTAscj1lLmJ1ZmZlci5saW5lcy5nZXQodCksbj1yJiZyLmlzV3JhcHBlZDtuJiZ0Pj0wJiZ0PGUucm93czspaSsrLG49KHI9ZS5idWZmZXIubGluZXMuZ2V0KC0tdCkpJiZyLmlzV3JhcHBlZDtyZXR1cm4gaX1mdW5jdGlvbiBvKGUsdCxpLHIsbyxhKXt2YXIgYztyZXR1cm4gYz1uKGkscixvLGEpLmxlbmd0aD4wP3ItcyhvLHIpOnQsZTxpJiZjPD1yfHxlPj1pJiZjPHI/XCJDXCI6XCJEXCJ9ZnVuY3Rpb24gYShlLHQpe3JldHVybiBlPnQ/XCJBXCI6XCJCXCJ9ZnVuY3Rpb24gYyhlLHQsaSxyLG4scyl7Zm9yKHZhciBvPWUsYT10LGM9XCJcIjtvIT09aXx8YSE9PXI7KW8rPW4/MTotMSxuJiZvPnMuY29scy0xPyhjKz1zLmJ1ZmZlci50cmFuc2xhdGVCdWZmZXJMaW5lVG9TdHJpbmcoYSwhMSxlLG8pLG89MCxlPTAsYSsrKTohbiYmbzwwJiYoYys9cy5idWZmZXIudHJhbnNsYXRlQnVmZmVyTGluZVRvU3RyaW5nKGEsITEsMCxlKzEpLGU9bz1zLmNvbHMtMSxhLS0pO3JldHVybiBjK3MuYnVmZmVyLnRyYW5zbGF0ZUJ1ZmZlckxpbmVUb1N0cmluZyhhLCExLGUsbyl9ZnVuY3Rpb24gbChlLHQpe3ZhciBpPXQ/XCJPXCI6XCJbXCI7cmV0dXJuIHIuQzAuRVNDK2krZX1mdW5jdGlvbiBoKGUsdCl7ZT1NYXRoLmZsb29yKGUpO2Zvcih2YXIgaT1cIlwiLHI9MDtyPGU7cisrKWkrPXQ7cmV0dXJuIGl9dC5tb3ZlVG9DZWxsU2VxdWVuY2U9ZnVuY3Rpb24oZSx0LGkscil7dmFyIGE9aS5idWZmZXIueCx1PWkuYnVmZmVyLnk7cmV0dXJuIGkuYnVmZmVyLmhhc1Njcm9sbGJhY2s/ZnVuY3Rpb24oZSx0LGkscixuLHMpe3ZhciBhPW8oZSx0LGkscixuLHMpO3JldHVybiBoKE1hdGguYWJzKGUtaSksbChhLHMpKX0oYSx1LGUsdCxpLHIpOmZ1bmN0aW9uKGUsdCxpLHIsbyxhKXtpZigwPT09bih0LHIsbyxhKS5sZW5ndGgpcmV0dXJuXCJcIjtyZXR1cm4gaChjKGUsdCxlLHQtcyhvLHQpLCExLG8pLmxlbmd0aCxsKFwiRFwiLGEpKX0oYSx1LDAsdCxpLHIpK24odSx0LGkscikrZnVuY3Rpb24oZSx0LGkscixhLHUpe3ZhciBmO2Y9bih0LHIsYSx1KS5sZW5ndGg+MD9yLXMoYSxyKTp0O3ZhciBfPXIsZD1vKGUsdCxpLHIsYSx1KTtyZXR1cm4gaChjKGUsZixpLF8sXCJDXCI9PT1kLGEpLmxlbmd0aCxsKGQsdSkpfShhLHUsZSx0LGkscil9fSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2RlY29yYXRlfHxmdW5jdGlvbihlLHQsaSxyKXt2YXIgbixzPWFyZ3VtZW50cy5sZW5ndGgsbz1zPDM/dDpudWxsPT09cj9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxpKTpyO2lmKFwib2JqZWN0XCI9PXR5cGVvZiBSZWZsZWN0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKW89UmVmbGVjdC5kZWNvcmF0ZShlLHQsaSxyKTtlbHNlIGZvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTA7YS0tKShuPWVbYV0pJiYobz0oczwzP24obyk6cz4zP24odCxpLG8pOm4odCxpKSl8fG8pO3JldHVybiBzPjMmJm8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGksbyksb30sbj10aGlzJiZ0aGlzLl9fcGFyYW18fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGkscil7dChpLHIsZSl9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1pKDApLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuX29wdGlvbnNTZXJ2aWNlPWV9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiYXVkaW9Db250ZXh0XCIse2dldDpmdW5jdGlvbigpe2lmKCFlLl9hdWRpb0NvbnRleHQpe3ZhciB0PXdpbmRvdy5BdWRpb0NvbnRleHR8fHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQ7aWYoIXQpcmV0dXJuIGNvbnNvbGUud2FybihcIldlYiBBdWRpbyBBUEkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuIENvbnNpZGVyIHVwZ3JhZGluZyB0byB0aGUgbGF0ZXN0IHZlcnNpb25cIiksbnVsbDtlLl9hdWRpb0NvbnRleHQ9bmV3IHR9cmV0dXJuIGUuX2F1ZGlvQ29udGV4dH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5wbGF5QmVsbFNvdW5kPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5hdWRpb0NvbnRleHQ7aWYodCl7dmFyIGk9dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTt0LmRlY29kZUF1ZGlvRGF0YSh0aGlzLl9iYXNlNjRUb0FycmF5QnVmZmVyKHRoaXMuX3JlbW92ZU1pbWVUeXBlKHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuYmVsbFNvdW5kKSksZnVuY3Rpb24oZSl7aS5idWZmZXI9ZSxpLmNvbm5lY3QodC5kZXN0aW5hdGlvbiksaS5zdGFydCgwKX0pfX0sZS5wcm90b3R5cGUuX2Jhc2U2NFRvQXJyYXlCdWZmZXI9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXdpbmRvdy5hdG9iKGUpLGk9dC5sZW5ndGgscj1uZXcgVWludDhBcnJheShpKSxuPTA7bjxpO24rKylyW25dPXQuY2hhckNvZGVBdChuKTtyZXR1cm4gci5idWZmZXJ9LGUucHJvdG90eXBlLl9yZW1vdmVNaW1lVHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5zcGxpdChcIixcIilbMV19LGU9cihbbigwLHMuSU9wdGlvbnNTZXJ2aWNlKV0sZSl9KCk7dC5Tb3VuZFNlcnZpY2U9b30sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO3ZhciByLG49dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShpKSYmKGVbaV09dFtpXSl9KShlLHQpfSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoKXt0aGlzLmNvbnN0cnVjdG9yPWV9cihlLHQpLGUucHJvdG90eXBlPW51bGw9PT10P09iamVjdC5jcmVhdGUodCk6KGkucHJvdG90eXBlPXQucHJvdG90eXBlLG5ldyBpKX0pLHM9dGhpcyYmdGhpcy5fX2RlY29yYXRlfHxmdW5jdGlvbihlLHQsaSxyKXt2YXIgbixzPWFyZ3VtZW50cy5sZW5ndGgsbz1zPDM/dDpudWxsPT09cj9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxpKTpyO2lmKFwib2JqZWN0XCI9PXR5cGVvZiBSZWZsZWN0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKW89UmVmbGVjdC5kZWNvcmF0ZShlLHQsaSxyKTtlbHNlIGZvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTA7YS0tKShuPWVbYV0pJiYobz0oczwzP24obyk6cz4zP24odCxpLG8pOm4odCxpKSl8fG8pO3JldHVybiBzPjMmJm8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGksbyksb30sbz10aGlzJiZ0aGlzLl9fcGFyYW18fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGkscil7dChpLHIsZSl9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgYT1pKDIpLGM9aSg3KSxsPWkoNSksaD1pKDApLHU9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LGkscixuLHMpe3ZhciBvPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gby5fZWxlbWVudD10LG8uX3NjcmVlbkVsZW1lbnQ9aSxvLl9idWZmZXJTZXJ2aWNlPXIsby5fbW91c2VTZXJ2aWNlPW4sby5fc2VsZWN0aW9uU2VydmljZT1zLG8uX3pvbmVzPVtdLG8uX2FyZVpvbmVzQWN0aXZlPSExLG8uX2xhc3RIb3ZlckNvb3Jkcz1bdm9pZCAwLHZvaWQgMF0sby5faW5pdGlhbFNlbGVjdGlvbkxlbmd0aD0wLG8ucmVnaXN0ZXIoYy5hZGREaXNwb3NhYmxlRG9tTGlzdGVuZXIoby5fZWxlbWVudCxcIm1vdXNlZG93blwiLGZ1bmN0aW9uKGUpe3JldHVybiBvLl9vbk1vdXNlRG93bihlKX0pKSxvLl9tb3VzZU1vdmVMaXN0ZW5lcj1mdW5jdGlvbihlKXtyZXR1cm4gby5fb25Nb3VzZU1vdmUoZSl9LG8uX21vdXNlTGVhdmVMaXN0ZW5lcj1mdW5jdGlvbihlKXtyZXR1cm4gby5fb25Nb3VzZUxlYXZlKGUpfSxvLl9jbGlja0xpc3RlbmVyPWZ1bmN0aW9uKGUpe3JldHVybiBvLl9vbkNsaWNrKGUpfSxvfXJldHVybiBuKHQsZSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2UucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKSx0aGlzLl9kZWFjdGl2YXRlKCl9LHQucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlKXt0aGlzLl96b25lcy5wdXNoKGUpLDE9PT10aGlzLl96b25lcy5sZW5ndGgmJnRoaXMuX2FjdGl2YXRlKCl9LHQucHJvdG90eXBlLmNsZWFyQWxsPWZ1bmN0aW9uKGUsdCl7aWYoMCE9PXRoaXMuX3pvbmVzLmxlbmd0aCl7ZSYmdHx8KGU9MCx0PXRoaXMuX2J1ZmZlclNlcnZpY2Uucm93cy0xKTtmb3IodmFyIGk9MDtpPHRoaXMuX3pvbmVzLmxlbmd0aDtpKyspe3ZhciByPXRoaXMuX3pvbmVzW2ldOyhyLnkxPmUmJnIueTE8PXQrMXx8ci55Mj5lJiZyLnkyPD10KzF8fHIueTE8ZSYmci55Mj50KzEpJiYodGhpcy5fY3VycmVudFpvbmUmJnRoaXMuX2N1cnJlbnRab25lPT09ciYmKHRoaXMuX2N1cnJlbnRab25lLmxlYXZlQ2FsbGJhY2soKSx0aGlzLl9jdXJyZW50Wm9uZT12b2lkIDApLHRoaXMuX3pvbmVzLnNwbGljZShpLS0sMSkpfTA9PT10aGlzLl96b25lcy5sZW5ndGgmJnRoaXMuX2RlYWN0aXZhdGUoKX19LHQucHJvdG90eXBlLl9hY3RpdmF0ZT1mdW5jdGlvbigpe3RoaXMuX2FyZVpvbmVzQWN0aXZlfHwodGhpcy5fYXJlWm9uZXNBY3RpdmU9ITAsdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsdGhpcy5fbW91c2VNb3ZlTGlzdGVuZXIpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIix0aGlzLl9tb3VzZUxlYXZlTGlzdGVuZXIpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdGhpcy5fY2xpY2tMaXN0ZW5lcikpfSx0LnByb3RvdHlwZS5fZGVhY3RpdmF0ZT1mdW5jdGlvbigpe3RoaXMuX2FyZVpvbmVzQWN0aXZlJiYodGhpcy5fYXJlWm9uZXNBY3RpdmU9ITEsdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsdGhpcy5fbW91c2VNb3ZlTGlzdGVuZXIpLHRoaXMuX2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIix0aGlzLl9tb3VzZUxlYXZlTGlzdGVuZXIpLHRoaXMuX2VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdGhpcy5fY2xpY2tMaXN0ZW5lcikpfSx0LnByb3RvdHlwZS5fb25Nb3VzZU1vdmU9ZnVuY3Rpb24oZSl7dGhpcy5fbGFzdEhvdmVyQ29vcmRzWzBdPT09ZS5wYWdlWCYmdGhpcy5fbGFzdEhvdmVyQ29vcmRzWzFdPT09ZS5wYWdlWXx8KHRoaXMuX29uSG92ZXIoZSksdGhpcy5fbGFzdEhvdmVyQ29vcmRzPVtlLnBhZ2VYLGUucGFnZVldKX0sdC5wcm90b3R5cGUuX29uSG92ZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxpPXRoaXMuX2ZpbmRab25lRXZlbnRBdChlKTtpIT09dGhpcy5fY3VycmVudFpvbmUmJih0aGlzLl9jdXJyZW50Wm9uZSYmKHRoaXMuX2N1cnJlbnRab25lLmxlYXZlQ2FsbGJhY2soKSx0aGlzLl9jdXJyZW50Wm9uZT12b2lkIDAsdGhpcy5fdG9vbHRpcFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl90b29sdGlwVGltZW91dCkpLGkmJih0aGlzLl9jdXJyZW50Wm9uZT1pLGkuaG92ZXJDYWxsYmFjayYmaS5ob3ZlckNhbGxiYWNrKGUpLHRoaXMuX3Rvb2x0aXBUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gdC5fb25Ub29sdGlwKGUpfSw1MDApKSl9LHQucHJvdG90eXBlLl9vblRvb2x0aXA9ZnVuY3Rpb24oZSl7dGhpcy5fdG9vbHRpcFRpbWVvdXQ9dm9pZCAwO3ZhciB0PXRoaXMuX2ZpbmRab25lRXZlbnRBdChlKTt0JiZ0LnRvb2x0aXBDYWxsYmFjayYmdC50b29sdGlwQ2FsbGJhY2soZSl9LHQucHJvdG90eXBlLl9vbk1vdXNlRG93bj1mdW5jdGlvbihlKXtpZih0aGlzLl9pbml0aWFsU2VsZWN0aW9uTGVuZ3RoPXRoaXMuX2dldFNlbGVjdGlvbkxlbmd0aCgpLHRoaXMuX2FyZVpvbmVzQWN0aXZlKXt2YXIgdD10aGlzLl9maW5kWm9uZUV2ZW50QXQoZSk7dCYmdC53aWxsTGlua0FjdGl2YXRlKGUpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX0sdC5wcm90b3R5cGUuX29uTW91c2VMZWF2ZT1mdW5jdGlvbihlKXt0aGlzLl9jdXJyZW50Wm9uZSYmKHRoaXMuX2N1cnJlbnRab25lLmxlYXZlQ2FsbGJhY2soKSx0aGlzLl9jdXJyZW50Wm9uZT12b2lkIDAsdGhpcy5fdG9vbHRpcFRpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl90b29sdGlwVGltZW91dCkpfSx0LnByb3RvdHlwZS5fb25DbGljaz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9maW5kWm9uZUV2ZW50QXQoZSksaT10aGlzLl9nZXRTZWxlY3Rpb25MZW5ndGgoKTt0JiZpPT09dGhpcy5faW5pdGlhbFNlbGVjdGlvbkxlbmd0aCYmKHQuY2xpY2tDYWxsYmFjayhlKSxlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSl9LHQucHJvdG90eXBlLl9nZXRTZWxlY3Rpb25MZW5ndGg9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvblRleHQ7cmV0dXJuIGU/ZS5sZW5ndGg6MH0sdC5wcm90b3R5cGUuX2ZpbmRab25lRXZlbnRBdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9tb3VzZVNlcnZpY2UuZ2V0Q29vcmRzKGUsdGhpcy5fc2NyZWVuRWxlbWVudCx0aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsdGhpcy5fYnVmZmVyU2VydmljZS5yb3dzKTtpZih0KWZvcih2YXIgaT10WzBdLHI9dFsxXSxuPTA7bjx0aGlzLl96b25lcy5sZW5ndGg7bisrKXt2YXIgcz10aGlzLl96b25lc1tuXTtpZihzLnkxPT09cy55Mil7aWYocj09PXMueTEmJmk+PXMueDEmJmk8cy54MilyZXR1cm4gc31lbHNlIGlmKHI9PT1zLnkxJiZpPj1zLngxfHxyPT09cy55MiYmaTxzLngyfHxyPnMueTEmJnI8cy55MilyZXR1cm4gc319LHQ9cyhbbygyLGguSUJ1ZmZlclNlcnZpY2UpLG8oMyxsLklNb3VzZVNlcnZpY2UpLG8oNCxsLklTZWxlY3Rpb25TZXJ2aWNlKV0sdCl9KGEuRGlzcG9zYWJsZSk7dC5Nb3VzZVpvbmVNYW5hZ2VyPXV9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcixuPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocj1mdW5jdGlvbihlLHQpe3JldHVybihyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihlW2ldPXRbaV0pfSkoZSx0KX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXIoZSx0KSxlLnByb3RvdHlwZT1udWxsPT09dD9PYmplY3QuY3JlYXRlKHQpOihpLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgaSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1pKDE2KSxvPWkoMTApLGE9aSgyOSksYz1pKDcpLGw9aSgyKSxoPWkoMzApLHU9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LGkpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyLl90ZXJtaW5hbD10LHIuX3JlbmRlclNlcnZpY2U9aSxyLl9saXZlUmVnaW9uTGluZUNvdW50PTAsci5fY2hhcnNUb0NvbnN1bWU9W10sci5fY2hhcnNUb0Fubm91bmNlPVwiXCIsci5fYWNjZXNzaWJpbGl0eVRyZWVSb290PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksci5fYWNjZXNzaWJpbGl0eVRyZWVSb290LmNsYXNzTGlzdC5hZGQoXCJ4dGVybS1hY2Nlc3NpYmlsaXR5XCIpLHIuX3Jvd0NvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHIuX3Jvd0NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKFwieHRlcm0tYWNjZXNzaWJpbGl0eS10cmVlXCIpLHIuX3Jvd0VsZW1lbnRzPVtdO2Zvcih2YXIgbj0wO248ci5fdGVybWluYWwucm93cztuKyspci5fcm93RWxlbWVudHNbbl09ci5fY3JlYXRlQWNjZXNzaWJpbGl0eVRyZWVOb2RlKCksci5fcm93Q29udGFpbmVyLmFwcGVuZENoaWxkKHIuX3Jvd0VsZW1lbnRzW25dKTtyZXR1cm4gci5fdG9wQm91bmRhcnlGb2N1c0xpc3RlbmVyPWZ1bmN0aW9uKGUpe3JldHVybiByLl9vbkJvdW5kYXJ5Rm9jdXMoZSwwKX0sci5fYm90dG9tQm91bmRhcnlGb2N1c0xpc3RlbmVyPWZ1bmN0aW9uKGUpe3JldHVybiByLl9vbkJvdW5kYXJ5Rm9jdXMoZSwxKX0sci5fcm93RWxlbWVudHNbMF0uYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsci5fdG9wQm91bmRhcnlGb2N1c0xpc3RlbmVyKSxyLl9yb3dFbGVtZW50c1tyLl9yb3dFbGVtZW50cy5sZW5ndGgtMV0uYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsci5fYm90dG9tQm91bmRhcnlGb2N1c0xpc3RlbmVyKSxyLl9yZWZyZXNoUm93c0RpbWVuc2lvbnMoKSxyLl9hY2Nlc3NpYmlsaXR5VHJlZVJvb3QuYXBwZW5kQ2hpbGQoci5fcm93Q29udGFpbmVyKSxyLl9yZW5kZXJSb3dzRGVib3VuY2VyPW5ldyBhLlJlbmRlckRlYm91bmNlcihyLl9yZW5kZXJSb3dzLmJpbmQocikpLHIuX3JlZnJlc2hSb3dzKCksci5fbGl2ZVJlZ2lvbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLHIuX2xpdmVSZWdpb24uY2xhc3NMaXN0LmFkZChcImxpdmUtcmVnaW9uXCIpLHIuX2xpdmVSZWdpb24uc2V0QXR0cmlidXRlKFwiYXJpYS1saXZlXCIsXCJhc3NlcnRpdmVcIiksci5fYWNjZXNzaWJpbGl0eVRyZWVSb290LmFwcGVuZENoaWxkKHIuX2xpdmVSZWdpb24pLHIuX3Rlcm1pbmFsLmVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYWZ0ZXJiZWdpblwiLHIuX2FjY2Vzc2liaWxpdHlUcmVlUm9vdCksci5yZWdpc3RlcihyLl9yZW5kZXJSb3dzRGVib3VuY2VyKSxyLnJlZ2lzdGVyKHIuX3Rlcm1pbmFsLm9uUmVzaXplKGZ1bmN0aW9uKGUpe3JldHVybiByLl9vblJlc2l6ZShlLnJvd3MpfSkpLHIucmVnaXN0ZXIoci5fdGVybWluYWwub25SZW5kZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHIuX3JlZnJlc2hSb3dzKGUuc3RhcnQsZS5lbmQpfSkpLHIucmVnaXN0ZXIoci5fdGVybWluYWwub25TY3JvbGwoZnVuY3Rpb24oKXtyZXR1cm4gci5fcmVmcmVzaFJvd3MoKX0pKSxyLnJlZ2lzdGVyKHIuX3Rlcm1pbmFsLm9uQTExeUNoYXIoZnVuY3Rpb24oZSl7cmV0dXJuIHIuX29uQ2hhcihlKX0pKSxyLnJlZ2lzdGVyKHIuX3Rlcm1pbmFsLm9uTGluZUZlZWQoZnVuY3Rpb24oKXtyZXR1cm4gci5fb25DaGFyKFwiXFxuXCIpfSkpLHIucmVnaXN0ZXIoci5fdGVybWluYWwub25BMTF5VGFiKGZ1bmN0aW9uKGUpe3JldHVybiByLl9vblRhYihlKX0pKSxyLnJlZ2lzdGVyKHIuX3Rlcm1pbmFsLm9uS2V5KGZ1bmN0aW9uKGUpe3JldHVybiByLl9vbktleShlLmtleSl9KSksci5yZWdpc3RlcihyLl90ZXJtaW5hbC5vbkJsdXIoZnVuY3Rpb24oKXtyZXR1cm4gci5fY2xlYXJMaXZlUmVnaW9uKCl9KSksci5yZWdpc3RlcihyLl9yZW5kZXJTZXJ2aWNlLm9uRGltZW5zaW9uc0NoYW5nZShmdW5jdGlvbigpe3JldHVybiByLl9yZWZyZXNoUm93c0RpbWVuc2lvbnMoKX0pKSxyLl9zY3JlZW5EcHJNb25pdG9yPW5ldyBoLlNjcmVlbkRwck1vbml0b3Isci5yZWdpc3RlcihyLl9zY3JlZW5EcHJNb25pdG9yKSxyLl9zY3JlZW5EcHJNb25pdG9yLnNldExpc3RlbmVyKGZ1bmN0aW9uKCl7cmV0dXJuIHIuX3JlZnJlc2hSb3dzRGltZW5zaW9ucygpfSksci5yZWdpc3RlcihjLmFkZERpc3Bvc2FibGVEb21MaXN0ZW5lcih3aW5kb3csXCJyZXNpemVcIixmdW5jdGlvbigpe3JldHVybiByLl9yZWZyZXNoUm93c0RpbWVuc2lvbnMoKX0pKSxyfXJldHVybiBuKHQsZSksdC5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2UucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKSx0aGlzLl90ZXJtaW5hbC5lbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2FjY2Vzc2liaWxpdHlUcmVlUm9vdCksdGhpcy5fcm93RWxlbWVudHMubGVuZ3RoPTB9LHQucHJvdG90eXBlLl9vbkJvdW5kYXJ5Rm9jdXM9ZnVuY3Rpb24oZSx0KXt2YXIgaT1lLnRhcmdldCxyPXRoaXMuX3Jvd0VsZW1lbnRzWzA9PT10PzE6dGhpcy5fcm93RWxlbWVudHMubGVuZ3RoLTJdO2lmKGkuZ2V0QXR0cmlidXRlKFwiYXJpYS1wb3NpbnNldFwiKSE9PSgwPT09dD9cIjFcIjpcIlwiK3RoaXMuX3Rlcm1pbmFsLmJ1ZmZlci5saW5lcy5sZW5ndGgpJiZlLnJlbGF0ZWRUYXJnZXQ9PT1yKXt2YXIgbixzO2lmKDA9PT10PyhuPWkscz10aGlzLl9yb3dFbGVtZW50cy5wb3AoKSx0aGlzLl9yb3dDb250YWluZXIucmVtb3ZlQ2hpbGQocykpOihuPXRoaXMuX3Jvd0VsZW1lbnRzLnNoaWZ0KCkscz1pLHRoaXMuX3Jvd0NvbnRhaW5lci5yZW1vdmVDaGlsZChuKSksbi5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNcIix0aGlzLl90b3BCb3VuZGFyeUZvY3VzTGlzdGVuZXIpLHMucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdGhpcy5fYm90dG9tQm91bmRhcnlGb2N1c0xpc3RlbmVyKSwwPT09dCl7dmFyIG89dGhpcy5fY3JlYXRlQWNjZXNzaWJpbGl0eVRyZWVOb2RlKCk7dGhpcy5fcm93RWxlbWVudHMudW5zaGlmdChvKSx0aGlzLl9yb3dDb250YWluZXIuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KFwiYWZ0ZXJiZWdpblwiLG8pfWVsc2V7bz10aGlzLl9jcmVhdGVBY2Nlc3NpYmlsaXR5VHJlZU5vZGUoKTt0aGlzLl9yb3dFbGVtZW50cy5wdXNoKG8pLHRoaXMuX3Jvd0NvbnRhaW5lci5hcHBlbmRDaGlsZChvKX10aGlzLl9yb3dFbGVtZW50c1swXS5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIix0aGlzLl90b3BCb3VuZGFyeUZvY3VzTGlzdGVuZXIpLHRoaXMuX3Jvd0VsZW1lbnRzW3RoaXMuX3Jvd0VsZW1lbnRzLmxlbmd0aC0xXS5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIix0aGlzLl9ib3R0b21Cb3VuZGFyeUZvY3VzTGlzdGVuZXIpLHRoaXMuX3Rlcm1pbmFsLnNjcm9sbExpbmVzKDA9PT10Py0xOjEpLHRoaXMuX3Jvd0VsZW1lbnRzWzA9PT10PzE6dGhpcy5fcm93RWxlbWVudHMubGVuZ3RoLTJdLmZvY3VzKCksZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9fSx0LnByb3RvdHlwZS5fb25SZXNpemU9ZnVuY3Rpb24oZSl7dGhpcy5fcm93RWxlbWVudHNbdGhpcy5fcm93RWxlbWVudHMubGVuZ3RoLTFdLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLHRoaXMuX2JvdHRvbUJvdW5kYXJ5Rm9jdXNMaXN0ZW5lcik7Zm9yKHZhciB0PXRoaXMuX3Jvd0NvbnRhaW5lci5jaGlsZHJlbi5sZW5ndGg7dDx0aGlzLl90ZXJtaW5hbC5yb3dzO3QrKyl0aGlzLl9yb3dFbGVtZW50c1t0XT10aGlzLl9jcmVhdGVBY2Nlc3NpYmlsaXR5VHJlZU5vZGUoKSx0aGlzLl9yb3dDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fcm93RWxlbWVudHNbdF0pO2Zvcig7dGhpcy5fcm93RWxlbWVudHMubGVuZ3RoPmU7KXRoaXMuX3Jvd0NvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLl9yb3dFbGVtZW50cy5wb3AoKSk7dGhpcy5fcm93RWxlbWVudHNbdGhpcy5fcm93RWxlbWVudHMubGVuZ3RoLTFdLmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLHRoaXMuX2JvdHRvbUJvdW5kYXJ5Rm9jdXNMaXN0ZW5lciksdGhpcy5fcmVmcmVzaFJvd3NEaW1lbnNpb25zKCl9LHQucHJvdG90eXBlLl9jcmVhdGVBY2Nlc3NpYmlsaXR5VHJlZU5vZGU9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO3JldHVybiBlLnNldEF0dHJpYnV0ZShcInJvbGVcIixcImxpc3RpdGVtXCIpLGUudGFiSW5kZXg9LTEsdGhpcy5fcmVmcmVzaFJvd0RpbWVuc2lvbnMoZSksZX0sdC5wcm90b3R5cGUuX29uVGFiPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZTt0KyspdGhpcy5fb25DaGFyKFwiIFwiKX0sdC5wcm90b3R5cGUuX29uQ2hhcj1mdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKHRoaXMuX2xpdmVSZWdpb25MaW5lQ291bnQ8MjEpe2lmKHRoaXMuX2NoYXJzVG9Db25zdW1lLmxlbmd0aD4wKXRoaXMuX2NoYXJzVG9Db25zdW1lLnNoaWZ0KCkhPT1lJiYodGhpcy5fY2hhcnNUb0Fubm91bmNlKz1lKTtlbHNlIHRoaXMuX2NoYXJzVG9Bbm5vdW5jZSs9ZTtcIlxcblwiPT09ZSYmKHRoaXMuX2xpdmVSZWdpb25MaW5lQ291bnQrKywyMT09PXRoaXMuX2xpdmVSZWdpb25MaW5lQ291bnQmJih0aGlzLl9saXZlUmVnaW9uLnRleHRDb250ZW50Kz1zLnRvb011Y2hPdXRwdXQpKSxvLmlzTWFjJiZ0aGlzLl9saXZlUmVnaW9uLnRleHRDb250ZW50JiZ0aGlzLl9saXZlUmVnaW9uLnRleHRDb250ZW50Lmxlbmd0aD4wJiYhdGhpcy5fbGl2ZVJlZ2lvbi5wYXJlbnROb2RlJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fYWNjZXNzaWJpbGl0eVRyZWVSb290LmFwcGVuZENoaWxkKHQuX2xpdmVSZWdpb24pfSwwKX19LHQucHJvdG90eXBlLl9jbGVhckxpdmVSZWdpb249ZnVuY3Rpb24oKXt0aGlzLl9saXZlUmVnaW9uLnRleHRDb250ZW50PVwiXCIsdGhpcy5fbGl2ZVJlZ2lvbkxpbmVDb3VudD0wLG8uaXNNYWMmJnRoaXMuX2xpdmVSZWdpb24ucGFyZW50Tm9kZSYmdGhpcy5fYWNjZXNzaWJpbGl0eVRyZWVSb290LnJlbW92ZUNoaWxkKHRoaXMuX2xpdmVSZWdpb24pfSx0LnByb3RvdHlwZS5fb25LZXk9ZnVuY3Rpb24oZSl7dGhpcy5fY2xlYXJMaXZlUmVnaW9uKCksdGhpcy5fY2hhcnNUb0NvbnN1bWUucHVzaChlKX0sdC5wcm90b3R5cGUuX3JlZnJlc2hSb3dzPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcmVuZGVyUm93c0RlYm91bmNlci5yZWZyZXNoKGUsdCx0aGlzLl90ZXJtaW5hbC5yb3dzKX0sdC5wcm90b3R5cGUuX3JlbmRlclJvd3M9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGk9dGhpcy5fdGVybWluYWwuYnVmZmVyLHI9aS5saW5lcy5sZW5ndGgudG9TdHJpbmcoKSxuPWU7bjw9dDtuKyspe3ZhciBzPWkudHJhbnNsYXRlQnVmZmVyTGluZVRvU3RyaW5nKGkueWRpc3ArbiwhMCksbz0oaS55ZGlzcCtuKzEpLnRvU3RyaW5nKCksYT10aGlzLl9yb3dFbGVtZW50c1tuXTthJiYoMD09PXMubGVuZ3RoP2EuaW5uZXJIVE1MPVwiJm5ic3A7XCI6YS50ZXh0Q29udGVudD1zLGEuc2V0QXR0cmlidXRlKFwiYXJpYS1wb3NpbnNldFwiLG8pLGEuc2V0QXR0cmlidXRlKFwiYXJpYS1zZXRzaXplXCIscikpfXRoaXMuX2Fubm91bmNlQ2hhcmFjdGVycygpfSx0LnByb3RvdHlwZS5fcmVmcmVzaFJvd3NEaW1lbnNpb25zPWZ1bmN0aW9uKCl7aWYodGhpcy5fcmVuZGVyU2VydmljZS5kaW1lbnNpb25zLmFjdHVhbENlbGxIZWlnaHQpe3RoaXMuX3Jvd0VsZW1lbnRzLmxlbmd0aCE9PXRoaXMuX3Rlcm1pbmFsLnJvd3MmJnRoaXMuX29uUmVzaXplKHRoaXMuX3Rlcm1pbmFsLnJvd3MpO2Zvcih2YXIgZT0wO2U8dGhpcy5fdGVybWluYWwucm93cztlKyspdGhpcy5fcmVmcmVzaFJvd0RpbWVuc2lvbnModGhpcy5fcm93RWxlbWVudHNbZV0pfX0sdC5wcm90b3R5cGUuX3JlZnJlc2hSb3dEaW1lbnNpb25zPWZ1bmN0aW9uKGUpe2Uuc3R5bGUuaGVpZ2h0PXRoaXMuX3JlbmRlclNlcnZpY2UuZGltZW5zaW9ucy5hY3R1YWxDZWxsSGVpZ2h0K1wicHhcIn0sdC5wcm90b3R5cGUuX2Fubm91bmNlQ2hhcmFjdGVycz1mdW5jdGlvbigpezAhPT10aGlzLl9jaGFyc1RvQW5ub3VuY2UubGVuZ3RoJiYodGhpcy5fbGl2ZVJlZ2lvbi50ZXh0Q29udGVudCs9dGhpcy5fY2hhcnNUb0Fubm91bmNlLHRoaXMuX2NoYXJzVG9Bbm5vdW5jZT1cIlwiKX0sdH0obC5EaXNwb3NhYmxlKTt0LkFjY2Vzc2liaWxpdHlNYW5hZ2VyPXV9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcixuPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocj1mdW5jdGlvbihlLHQpe3JldHVybihyPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihlW2ldPXRbaV0pfSkoZSx0KX0sZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7dGhpcy5jb25zdHJ1Y3Rvcj1lfXIoZSx0KSxlLnByb3RvdHlwZT1udWxsPT09dD9PYmplY3QuY3JlYXRlKHQpOihpLnByb3RvdHlwZT10LnByb3RvdHlwZSxuZXcgaSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1pKDU2KSxvPWkoOSksYT1pKDIpLGM9XCJ4dGVybS1kb20tcmVuZGVyZXItb3duZXItXCIsbD1cInh0ZXJtLXJvd3NcIixoPVwieHRlcm0tc2VsZWN0aW9uXCIsdT0xLGY9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LGkscixuKXt2YXIgbz1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG8uX3Rlcm1pbmFsPXQsby5fY29sb3JzPWksby5fY2hhclNpemVTZXJ2aWNlPXIsby5fb3B0aW9uc1NlcnZpY2U9bixvLl90ZXJtaW5hbENsYXNzPXUrKyxvLl9yb3dFbGVtZW50cz1bXSxvLl9yb3dDb250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxvLl9yb3dDb250YWluZXIuY2xhc3NMaXN0LmFkZChsKSxvLl9yb3dDb250YWluZXIuc3R5bGUubGluZUhlaWdodD1cIm5vcm1hbFwiLG8uX3Jvd0NvbnRhaW5lci5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLFwidHJ1ZVwiKSxvLl9yZWZyZXNoUm93RWxlbWVudHMoby5fdGVybWluYWwuY29scyxvLl90ZXJtaW5hbC5yb3dzKSxvLl9zZWxlY3Rpb25Db250YWluZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxvLl9zZWxlY3Rpb25Db250YWluZXIuY2xhc3NMaXN0LmFkZChoKSxvLl9zZWxlY3Rpb25Db250YWluZXIuc2V0QXR0cmlidXRlKFwiYXJpYS1oaWRkZW5cIixcInRydWVcIiksby5kaW1lbnNpb25zPXtzY2FsZWRDaGFyV2lkdGg6bnVsbCxzY2FsZWRDaGFySGVpZ2h0Om51bGwsc2NhbGVkQ2VsbFdpZHRoOm51bGwsc2NhbGVkQ2VsbEhlaWdodDpudWxsLHNjYWxlZENoYXJMZWZ0Om51bGwsc2NhbGVkQ2hhclRvcDpudWxsLHNjYWxlZENhbnZhc1dpZHRoOm51bGwsc2NhbGVkQ2FudmFzSGVpZ2h0Om51bGwsY2FudmFzV2lkdGg6bnVsbCxjYW52YXNIZWlnaHQ6bnVsbCxhY3R1YWxDZWxsV2lkdGg6bnVsbCxhY3R1YWxDZWxsSGVpZ2h0Om51bGx9LG8uX3VwZGF0ZURpbWVuc2lvbnMoKSxvLl9pbmplY3RDc3MoKSxvLl9yb3dGYWN0b3J5PW5ldyBzLkRvbVJlbmRlcmVyUm93RmFjdG9yeShkb2N1bWVudCxvLl9vcHRpb25zU2VydmljZSksby5fdGVybWluYWwuZWxlbWVudC5jbGFzc0xpc3QuYWRkKGMrby5fdGVybWluYWxDbGFzcyksby5fdGVybWluYWwuc2NyZWVuRWxlbWVudC5hcHBlbmRDaGlsZChvLl9yb3dDb250YWluZXIpLG8uX3Rlcm1pbmFsLnNjcmVlbkVsZW1lbnQuYXBwZW5kQ2hpbGQoby5fc2VsZWN0aW9uQ29udGFpbmVyKSxvLl90ZXJtaW5hbC5saW5raWZpZXIub25MaW5rSG92ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIG8uX29uTGlua0hvdmVyKGUpfSksby5fdGVybWluYWwubGlua2lmaWVyLm9uTGlua0xlYXZlKGZ1bmN0aW9uKGUpe3JldHVybiBvLl9vbkxpbmtMZWF2ZShlKX0pLG99cmV0dXJuIG4odCxlKSx0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fdGVybWluYWwuZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGMrdGhpcy5fdGVybWluYWxDbGFzcyksdGhpcy5fdGVybWluYWwuc2NyZWVuRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9yb3dDb250YWluZXIpLHRoaXMuX3Rlcm1pbmFsLnNjcmVlbkVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fc2VsZWN0aW9uQ29udGFpbmVyKSx0aGlzLl90ZXJtaW5hbC5zY3JlZW5FbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX3RoZW1lU3R5bGVFbGVtZW50KSx0aGlzLl90ZXJtaW5hbC5zY3JlZW5FbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2RpbWVuc2lvbnNTdHlsZUVsZW1lbnQpLGUucHJvdG90eXBlLmRpc3Bvc2UuY2FsbCh0aGlzKX0sdC5wcm90b3R5cGUuX3VwZGF0ZURpbWVuc2lvbnM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuZGltZW5zaW9ucy5zY2FsZWRDaGFyV2lkdGg9dGhpcy5fY2hhclNpemVTZXJ2aWNlLndpZHRoKndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLHRoaXMuZGltZW5zaW9ucy5zY2FsZWRDaGFySGVpZ2h0PU1hdGguY2VpbCh0aGlzLl9jaGFyU2l6ZVNlcnZpY2UuaGVpZ2h0KndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKSx0aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2VsbFdpZHRoPXRoaXMuZGltZW5zaW9ucy5zY2FsZWRDaGFyV2lkdGgrTWF0aC5yb3VuZCh0aGlzLl90ZXJtaW5hbC5vcHRpb25zLmxldHRlclNwYWNpbmcpLHRoaXMuZGltZW5zaW9ucy5zY2FsZWRDZWxsSGVpZ2h0PU1hdGguZmxvb3IodGhpcy5kaW1lbnNpb25zLnNjYWxlZENoYXJIZWlnaHQqdGhpcy5fdGVybWluYWwub3B0aW9ucy5saW5lSGVpZ2h0KSx0aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2hhckxlZnQ9MCx0aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2hhclRvcD0wLHRoaXMuZGltZW5zaW9ucy5zY2FsZWRDYW52YXNXaWR0aD10aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2VsbFdpZHRoKnRoaXMuX3Rlcm1pbmFsLmNvbHMsdGhpcy5kaW1lbnNpb25zLnNjYWxlZENhbnZhc0hlaWdodD10aGlzLmRpbWVuc2lvbnMuc2NhbGVkQ2VsbEhlaWdodCp0aGlzLl90ZXJtaW5hbC5yb3dzLHRoaXMuZGltZW5zaW9ucy5jYW52YXNXaWR0aD1NYXRoLnJvdW5kKHRoaXMuZGltZW5zaW9ucy5zY2FsZWRDYW52YXNXaWR0aC93aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyksdGhpcy5kaW1lbnNpb25zLmNhbnZhc0hlaWdodD1NYXRoLnJvdW5kKHRoaXMuZGltZW5zaW9ucy5zY2FsZWRDYW52YXNIZWlnaHQvd2luZG93LmRldmljZVBpeGVsUmF0aW8pLHRoaXMuZGltZW5zaW9ucy5hY3R1YWxDZWxsV2lkdGg9dGhpcy5kaW1lbnNpb25zLmNhbnZhc1dpZHRoL3RoaXMuX3Rlcm1pbmFsLmNvbHMsdGhpcy5kaW1lbnNpb25zLmFjdHVhbENlbGxIZWlnaHQ9dGhpcy5kaW1lbnNpb25zLmNhbnZhc0hlaWdodC90aGlzLl90ZXJtaW5hbC5yb3dzLHRoaXMuX3Jvd0VsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24odCl7dC5zdHlsZS53aWR0aD1lLmRpbWVuc2lvbnMuY2FudmFzV2lkdGgrXCJweFwiLHQuc3R5bGUuaGVpZ2h0PWUuZGltZW5zaW9ucy5hY3R1YWxDZWxsSGVpZ2h0K1wicHhcIix0LnN0eWxlLmxpbmVIZWlnaHQ9ZS5kaW1lbnNpb25zLmFjdHVhbENlbGxIZWlnaHQrXCJweFwiLHQuc3R5bGUub3ZlcmZsb3c9XCJoaWRkZW5cIn0pLHRoaXMuX2RpbWVuc2lvbnNTdHlsZUVsZW1lbnR8fCh0aGlzLl9kaW1lbnNpb25zU3R5bGVFbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKSx0aGlzLl90ZXJtaW5hbC5zY3JlZW5FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RpbWVuc2lvbnNTdHlsZUVsZW1lbnQpKTt2YXIgdD10aGlzLl90ZXJtaW5hbFNlbGVjdG9yK1wiIC5cIitsK1wiIHNwYW4geyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGhlaWdodDogMTAwJTsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IFwiK3RoaXMuZGltZW5zaW9ucy5hY3R1YWxDZWxsV2lkdGgrXCJweH1cIjt0aGlzLl9kaW1lbnNpb25zU3R5bGVFbGVtZW50LmlubmVySFRNTD10LHRoaXMuX3NlbGVjdGlvbkNvbnRhaW5lci5zdHlsZS5oZWlnaHQ9dGhpcy5fdGVybWluYWwuX3ZpZXdwb3J0RWxlbWVudC5zdHlsZS5oZWlnaHQsdGhpcy5fdGVybWluYWwuc2NyZWVuRWxlbWVudC5zdHlsZS53aWR0aD10aGlzLmRpbWVuc2lvbnMuY2FudmFzV2lkdGgrXCJweFwiLHRoaXMuX3Rlcm1pbmFsLnNjcmVlbkVsZW1lbnQuc3R5bGUuaGVpZ2h0PXRoaXMuZGltZW5zaW9ucy5jYW52YXNIZWlnaHQrXCJweFwifSx0LnByb3RvdHlwZS5zZXRDb2xvcnM9ZnVuY3Rpb24oZSl7dGhpcy5fY29sb3JzPWUsdGhpcy5faW5qZWN0Q3NzKCl9LHQucHJvdG90eXBlLl9pbmplY3RDc3M9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX3RoZW1lU3R5bGVFbGVtZW50fHwodGhpcy5fdGhlbWVTdHlsZUVsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpLHRoaXMuX3Rlcm1pbmFsLnNjcmVlbkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fdGhlbWVTdHlsZUVsZW1lbnQpKTt2YXIgdD10aGlzLl90ZXJtaW5hbFNlbGVjdG9yK1wiIC5cIitsK1wiIHsgY29sb3I6IFwiK3RoaXMuX2NvbG9ycy5mb3JlZ3JvdW5kLmNzcytcIjsgYmFja2dyb3VuZC1jb2xvcjogXCIrdGhpcy5fY29sb3JzLmJhY2tncm91bmQuY3NzK1wiOyBmb250LWZhbWlseTogXCIrdGhpcy5fdGVybWluYWwub3B0aW9ucy5mb250RmFtaWx5K1wiOyBmb250LXNpemU6IFwiK3RoaXMuX3Rlcm1pbmFsLm9wdGlvbnMuZm9udFNpemUrXCJweDt9XCI7dCs9dGhpcy5fdGVybWluYWxTZWxlY3RvcitcIiBzcGFuOm5vdCguXCIrcy5CT0xEX0NMQVNTK1wiKSB7IGZvbnQtd2VpZ2h0OiBcIit0aGlzLl90ZXJtaW5hbC5vcHRpb25zLmZvbnRXZWlnaHQrXCI7fVwiK3RoaXMuX3Rlcm1pbmFsU2VsZWN0b3IrXCIgc3Bhbi5cIitzLkJPTERfQ0xBU1MrXCIgeyBmb250LXdlaWdodDogXCIrdGhpcy5fdGVybWluYWwub3B0aW9ucy5mb250V2VpZ2h0Qm9sZCtcIjt9XCIrdGhpcy5fdGVybWluYWxTZWxlY3RvcitcIiBzcGFuLlwiK3MuSVRBTElDX0NMQVNTK1wiIHsgZm9udC1zdHlsZTogaXRhbGljO31cIix0Kz1cIkBrZXlmcmFtZXMgYmxpbmtfYm94X3NoYWRvdyB7IDUwJSB7ICBib3gtc2hhZG93OiBub25lOyB9fVwiLHQrPVwiQGtleWZyYW1lcyBibGlua19ibG9jayB7IDAlIHsgIGJhY2tncm91bmQtY29sb3I6IFwiK3RoaXMuX2NvbG9ycy5jdXJzb3IuY3NzK1wiOyAgY29sb3I6IFwiK3RoaXMuX2NvbG9ycy5jdXJzb3JBY2NlbnQuY3NzK1wiOyB9IDUwJSB7ICBiYWNrZ3JvdW5kLWNvbG9yOiBcIit0aGlzLl9jb2xvcnMuY3Vyc29yQWNjZW50LmNzcytcIjsgIGNvbG9yOiBcIit0aGlzLl9jb2xvcnMuY3Vyc29yLmNzcytcIjsgfX1cIix0Kz10aGlzLl90ZXJtaW5hbFNlbGVjdG9yK1wiIC5cIitsK1wiOm5vdCgueHRlcm0tZm9jdXMpIC5cIitzLkNVUlNPUl9DTEFTUytcIiB7IG91dGxpbmU6IDFweCBzb2xpZCBcIit0aGlzLl9jb2xvcnMuY3Vyc29yLmNzcytcIjsgb3V0bGluZS1vZmZzZXQ6IC0xcHg7fVwiK3RoaXMuX3Rlcm1pbmFsU2VsZWN0b3IrXCIgLlwiK2wrXCIueHRlcm0tZm9jdXMgLlwiK3MuQ1VSU09SX0NMQVNTK1wiLlwiK3MuQ1VSU09SX0JMSU5LX0NMQVNTK1wiOm5vdCguXCIrcy5DVVJTT1JfU1RZTEVfQkxPQ0tfQ0xBU1MrXCIpIHsgYW5pbWF0aW9uOiBibGlua19ib3hfc2hhZG93IDFzIHN0ZXAtZW5kIGluZmluaXRlO31cIit0aGlzLl90ZXJtaW5hbFNlbGVjdG9yK1wiIC5cIitsK1wiLnh0ZXJtLWZvY3VzIC5cIitzLkNVUlNPUl9DTEFTUytcIi5cIitzLkNVUlNPUl9CTElOS19DTEFTUytcIi5cIitzLkNVUlNPUl9TVFlMRV9CTE9DS19DTEFTUytcIiB7IGFuaW1hdGlvbjogYmxpbmtfYmxvY2sgMXMgc3RlcC1lbmQgaW5maW5pdGU7fVwiK3RoaXMuX3Rlcm1pbmFsU2VsZWN0b3IrXCIgLlwiK2wrXCIueHRlcm0tZm9jdXMgLlwiK3MuQ1VSU09SX0NMQVNTK1wiLlwiK3MuQ1VSU09SX1NUWUxFX0JMT0NLX0NMQVNTK1wiIHsgYmFja2dyb3VuZC1jb2xvcjogXCIrdGhpcy5fY29sb3JzLmN1cnNvci5jc3MrXCI7IGNvbG9yOiBcIit0aGlzLl9jb2xvcnMuY3Vyc29yQWNjZW50LmNzcytcIjt9XCIrdGhpcy5fdGVybWluYWxTZWxlY3RvcitcIiAuXCIrbCtcIi54dGVybS1mb2N1cyAuXCIrcy5DVVJTT1JfQ0xBU1MrXCIuXCIrcy5DVVJTT1JfU1RZTEVfQkFSX0NMQVNTK1wiIHsgYm94LXNoYWRvdzogMXB4IDAgMCBcIit0aGlzLl9jb2xvcnMuY3Vyc29yLmNzcytcIiBpbnNldDt9XCIrdGhpcy5fdGVybWluYWxTZWxlY3RvcitcIiAuXCIrbCtcIi54dGVybS1mb2N1cyAuXCIrcy5DVVJTT1JfQ0xBU1MrXCIuXCIrcy5DVVJTT1JfU1RZTEVfVU5ERVJMSU5FX0NMQVNTK1wiIHsgYm94LXNoYWRvdzogMCAtMXB4IDAgXCIrdGhpcy5fY29sb3JzLmN1cnNvci5jc3MrXCIgaW5zZXQ7fVwiLHQrPXRoaXMuX3Rlcm1pbmFsU2VsZWN0b3IrXCIgLlwiK2grXCIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgei1pbmRleDogMTsgcG9pbnRlci1ldmVudHM6IG5vbmU7fVwiK3RoaXMuX3Rlcm1pbmFsU2VsZWN0b3IrXCIgLlwiK2grXCIgZGl2IHsgcG9zaXRpb246IGFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiBcIit0aGlzLl9jb2xvcnMuc2VsZWN0aW9uLmNzcytcIjt9XCIsdGhpcy5fY29sb3JzLmFuc2kuZm9yRWFjaChmdW5jdGlvbihpLHIpe3QrPWUuX3Rlcm1pbmFsU2VsZWN0b3IrXCIgLnh0ZXJtLWZnLVwiK3IrXCIgeyBjb2xvcjogXCIraS5jc3MrXCI7IH1cIitlLl90ZXJtaW5hbFNlbGVjdG9yK1wiIC54dGVybS1iZy1cIityK1wiIHsgYmFja2dyb3VuZC1jb2xvcjogXCIraS5jc3MrXCI7IH1cIn0pLHQrPXRoaXMuX3Rlcm1pbmFsU2VsZWN0b3IrXCIgLnh0ZXJtLWZnLVwiK28uSU5WRVJURURfREVGQVVMVF9DT0xPUitcIiB7IGNvbG9yOiBcIit0aGlzLl9jb2xvcnMuYmFja2dyb3VuZC5jc3MrXCI7IH1cIit0aGlzLl90ZXJtaW5hbFNlbGVjdG9yK1wiIC54dGVybS1iZy1cIitvLklOVkVSVEVEX0RFRkFVTFRfQ09MT1IrXCIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBcIit0aGlzLl9jb2xvcnMuZm9yZWdyb3VuZC5jc3MrXCI7IH1cIix0aGlzLl90aGVtZVN0eWxlRWxlbWVudC5pbm5lckhUTUw9dH0sdC5wcm90b3R5cGUub25EZXZpY2VQaXhlbFJhdGlvQ2hhbmdlPWZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlRGltZW5zaW9ucygpfSx0LnByb3RvdHlwZS5fcmVmcmVzaFJvd0VsZW1lbnRzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPXRoaXMuX3Jvd0VsZW1lbnRzLmxlbmd0aDtpPD10O2krKyl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTt0aGlzLl9yb3dDb250YWluZXIuYXBwZW5kQ2hpbGQociksdGhpcy5fcm93RWxlbWVudHMucHVzaChyKX1mb3IoO3RoaXMuX3Jvd0VsZW1lbnRzLmxlbmd0aD50Oyl0aGlzLl9yb3dDb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5fcm93RWxlbWVudHMucG9wKCkpfSx0LnByb3RvdHlwZS5vblJlc2l6ZT1mdW5jdGlvbihlLHQpe3RoaXMuX3JlZnJlc2hSb3dFbGVtZW50cyhlLHQpLHRoaXMuX3VwZGF0ZURpbWVuc2lvbnMoKX0sdC5wcm90b3R5cGUub25DaGFyU2l6ZUNoYW5nZWQ9ZnVuY3Rpb24oKXt0aGlzLl91cGRhdGVEaW1lbnNpb25zKCl9LHQucHJvdG90eXBlLm9uQmx1cj1mdW5jdGlvbigpe3RoaXMuX3Jvd0NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKFwieHRlcm0tZm9jdXNcIil9LHQucHJvdG90eXBlLm9uRm9jdXM9ZnVuY3Rpb24oKXt0aGlzLl9yb3dDb250YWluZXIuY2xhc3NMaXN0LmFkZChcInh0ZXJtLWZvY3VzXCIpfSx0LnByb3RvdHlwZS5vblNlbGVjdGlvbkNoYW5nZWQ9ZnVuY3Rpb24oZSx0LGkpe2Zvcig7dGhpcy5fc2VsZWN0aW9uQ29udGFpbmVyLmNoaWxkcmVuLmxlbmd0aDspdGhpcy5fc2VsZWN0aW9uQ29udGFpbmVyLnJlbW92ZUNoaWxkKHRoaXMuX3NlbGVjdGlvbkNvbnRhaW5lci5jaGlsZHJlblswXSk7aWYoZSYmdCl7dmFyIHI9ZVsxXS10aGlzLl90ZXJtaW5hbC5idWZmZXIueWRpc3Asbj10WzFdLXRoaXMuX3Rlcm1pbmFsLmJ1ZmZlci55ZGlzcCxzPU1hdGgubWF4KHIsMCksbz1NYXRoLm1pbihuLHRoaXMuX3Rlcm1pbmFsLnJvd3MtMSk7aWYoIShzPj10aGlzLl90ZXJtaW5hbC5yb3dzfHxvPDApKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7aWYoaSlhLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVNlbGVjdGlvbkVsZW1lbnQocyxlWzBdLHRbMF0sby1zKzEpKTtlbHNle3ZhciBjPXI9PT1zP2VbMF06MCxsPXM9PT1vP3RbMF06dGhpcy5fdGVybWluYWwuY29sczthLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVNlbGVjdGlvbkVsZW1lbnQocyxjLGwpKTt2YXIgaD1vLXMtMTtpZihhLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVNlbGVjdGlvbkVsZW1lbnQocysxLDAsdGhpcy5fdGVybWluYWwuY29scyxoKSkscyE9PW8pe3ZhciB1PW49PT1vP3RbMF06dGhpcy5fdGVybWluYWwuY29sczthLmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZVNlbGVjdGlvbkVsZW1lbnQobywwLHUpKX19dGhpcy5fc2VsZWN0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKGEpfX19LHQucHJvdG90eXBlLl9jcmVhdGVTZWxlY3Rpb25FbGVtZW50PWZ1bmN0aW9uKGUsdCxpLHIpe3ZvaWQgMD09PXImJihyPTEpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7cmV0dXJuIG4uc3R5bGUuaGVpZ2h0PXIqdGhpcy5kaW1lbnNpb25zLmFjdHVhbENlbGxIZWlnaHQrXCJweFwiLG4uc3R5bGUudG9wPWUqdGhpcy5kaW1lbnNpb25zLmFjdHVhbENlbGxIZWlnaHQrXCJweFwiLG4uc3R5bGUubGVmdD10KnRoaXMuZGltZW5zaW9ucy5hY3R1YWxDZWxsV2lkdGgrXCJweFwiLG4uc3R5bGUud2lkdGg9dGhpcy5kaW1lbnNpb25zLmFjdHVhbENlbGxXaWR0aCooaS10KStcInB4XCIsbn0sdC5wcm90b3R5cGUub25DdXJzb3JNb3ZlPWZ1bmN0aW9uKCl7fSx0LnByb3RvdHlwZS5vbk9wdGlvbnNDaGFuZ2VkPWZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlRGltZW5zaW9ucygpLHRoaXMuX2luamVjdENzcygpLHRoaXMuX3Rlcm1pbmFsLnJlZnJlc2goMCx0aGlzLl90ZXJtaW5hbC5yb3dzLTEpfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX3Jvd0VsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUuaW5uZXJIVE1MPVwiXCJ9KX0sdC5wcm90b3R5cGUucmVuZGVyUm93cz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgaT10aGlzLl90ZXJtaW5hbCxyPWkuYnVmZmVyLnliYXNlK2kuYnVmZmVyLnksbj10aGlzLl90ZXJtaW5hbC5idWZmZXIueCxzPXRoaXMuX3Rlcm1pbmFsLm9wdGlvbnMuY3Vyc29yQmxpbmssbz1lO288PXQ7bysrKXt2YXIgYT10aGlzLl9yb3dFbGVtZW50c1tvXTthLmlubmVySFRNTD1cIlwiO3ZhciBjPW8raS5idWZmZXIueWRpc3AsbD1pLmJ1ZmZlci5saW5lcy5nZXQoYyksaD1pLm9wdGlvbnMuY3Vyc29yU3R5bGU7YS5hcHBlbmRDaGlsZCh0aGlzLl9yb3dGYWN0b3J5LmNyZWF0ZVJvdyhsLGM9PT1yLGgsbixzLHRoaXMuZGltZW5zaW9ucy5hY3R1YWxDZWxsV2lkdGgsaS5jb2xzKSl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJfdGVybWluYWxTZWxlY3RvclwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5cIi5cIitjK3RoaXMuX3Rlcm1pbmFsQ2xhc3N9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUucmVnaXN0ZXJDaGFyYWN0ZXJKb2luZXI9ZnVuY3Rpb24oZSl7cmV0dXJuLTF9LHQucHJvdG90eXBlLmRlcmVnaXN0ZXJDaGFyYWN0ZXJKb2luZXI9ZnVuY3Rpb24oZSl7cmV0dXJuITF9LHQucHJvdG90eXBlLl9vbkxpbmtIb3Zlcj1mdW5jdGlvbihlKXt0aGlzLl9zZXRDZWxsVW5kZXJsaW5lKGUueDEsZS54MixlLnkxLGUueTIsZS5jb2xzLCEwKX0sdC5wcm90b3R5cGUuX29uTGlua0xlYXZlPWZ1bmN0aW9uKGUpe3RoaXMuX3NldENlbGxVbmRlcmxpbmUoZS54MSxlLngyLGUueTEsZS55MixlLmNvbHMsITEpfSx0LnByb3RvdHlwZS5fc2V0Q2VsbFVuZGVybGluZT1mdW5jdGlvbihlLHQsaSxyLG4scyl7Zm9yKDtlIT09dHx8aSE9PXI7KXt2YXIgbz10aGlzLl9yb3dFbGVtZW50c1tpXTtpZighbylyZXR1cm47dmFyIGE9by5jaGlsZHJlbltlXTthJiYoYS5zdHlsZS50ZXh0RGVjb3JhdGlvbj1zP1widW5kZXJsaW5lXCI6XCJub25lXCIpLCsrZT49biYmKGU9MCxpKyspfX0sdH0oYS5EaXNwb3NhYmxlKTt0LkRvbVJlbmRlcmVyPWZ9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1pKDkpLG49aSg2KSxzPWkoMyksbz1pKDQpO3QuQk9MRF9DTEFTUz1cInh0ZXJtLWJvbGRcIix0LkRJTV9DTEFTUz1cInh0ZXJtLWRpbVwiLHQuSVRBTElDX0NMQVNTPVwieHRlcm0taXRhbGljXCIsdC5VTkRFUkxJTkVfQ0xBU1M9XCJ4dGVybS11bmRlcmxpbmVcIix0LkNVUlNPUl9DTEFTUz1cInh0ZXJtLWN1cnNvclwiLHQuQ1VSU09SX0JMSU5LX0NMQVNTPVwieHRlcm0tY3Vyc29yLWJsaW5rXCIsdC5DVVJTT1JfU1RZTEVfQkxPQ0tfQ0xBU1M9XCJ4dGVybS1jdXJzb3ItYmxvY2tcIix0LkNVUlNPUl9TVFlMRV9CQVJfQ0xBU1M9XCJ4dGVybS1jdXJzb3ItYmFyXCIsdC5DVVJTT1JfU1RZTEVfVU5ERVJMSU5FX0NMQVNTPVwieHRlcm0tY3Vyc29yLXVuZGVybGluZVwiO3ZhciBhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe3RoaXMuX2RvY3VtZW50PWUsdGhpcy5fb3B0aW9uc1NlcnZpY2U9dCx0aGlzLl93b3JrQ2VsbD1uZXcgby5DZWxsRGF0YX1yZXR1cm4gZS5wcm90b3R5cGUuY3JlYXRlUm93PWZ1bmN0aW9uKGUsaSxvLGEsYyxsLGgpe2Zvcih2YXIgdT10aGlzLl9kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksZj0wLF89TWF0aC5taW4oZS5sZW5ndGgsaCktMTtfPj0wO18tLSlpZihlLmxvYWRDZWxsKF8sdGhpcy5fd29ya0NlbGwpLmdldENvZGUoKSE9PXMuTlVMTF9DRUxMX0NPREV8fGkmJl89PT1hKXtmPV8rMTticmVha31mb3IoXz0wO188ZjtfKyspe2UubG9hZENlbGwoXyx0aGlzLl93b3JrQ2VsbCk7dmFyIGQ9dGhpcy5fd29ya0NlbGwuZ2V0V2lkdGgoKTtpZigwIT09ZCl7dmFyIHA9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIik7aWYoZD4xJiYocC5zdHlsZS53aWR0aD1sKmQrXCJweFwiKSxpJiZfPT09YSlzd2l0Y2gocC5jbGFzc0xpc3QuYWRkKHQuQ1VSU09SX0NMQVNTKSxjJiZwLmNsYXNzTGlzdC5hZGQodC5DVVJTT1JfQkxJTktfQ0xBU1MpLG8pe2Nhc2VcImJhclwiOnAuY2xhc3NMaXN0LmFkZCh0LkNVUlNPUl9TVFlMRV9CQVJfQ0xBU1MpO2JyZWFrO2Nhc2VcInVuZGVybGluZVwiOnAuY2xhc3NMaXN0LmFkZCh0LkNVUlNPUl9TVFlMRV9VTkRFUkxJTkVfQ0xBU1MpO2JyZWFrO2RlZmF1bHQ6cC5jbGFzc0xpc3QuYWRkKHQuQ1VSU09SX1NUWUxFX0JMT0NLX0NMQVNTKX10aGlzLl93b3JrQ2VsbC5pc0JvbGQoKSYmcC5jbGFzc0xpc3QuYWRkKHQuQk9MRF9DTEFTUyksdGhpcy5fd29ya0NlbGwuaXNJdGFsaWMoKSYmcC5jbGFzc0xpc3QuYWRkKHQuSVRBTElDX0NMQVNTKSx0aGlzLl93b3JrQ2VsbC5pc0RpbSgpJiZwLmNsYXNzTGlzdC5hZGQodC5ESU1fQ0xBU1MpLHRoaXMuX3dvcmtDZWxsLmlzVW5kZXJsaW5lKCkmJnAuY2xhc3NMaXN0LmFkZCh0LlVOREVSTElORV9DTEFTUykscC50ZXh0Q29udGVudD10aGlzLl93b3JrQ2VsbC5nZXRDaGFycygpfHxzLldISVRFU1BBQ0VfQ0VMTF9DSEFSO3ZhciB2PXRoaXMuX3dvcmtDZWxsLmlzSW52ZXJzZSgpO2lmKHRoaXMuX3dvcmtDZWxsLmlzRmdSR0IoKSl7dmFyIGc9cC5nZXRBdHRyaWJ1dGUoXCJzdHlsZVwiKXx8XCJcIjtnKz0odj9cImJhY2tncm91bmQtXCI6XCJcIikrXCJjb2xvcjpyZ2IoXCIrbi5BdHRyaWJ1dGVEYXRhLnRvQ29sb3JSR0IodGhpcy5fd29ya0NlbGwuZ2V0RmdDb2xvcigpKS5qb2luKFwiLFwiKStcIik7XCIscC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLGcpfWVsc2UgaWYodGhpcy5fd29ya0NlbGwuaXNGZ1BhbGV0dGUoKSl7dmFyIHk9dGhpcy5fd29ya0NlbGwuZ2V0RmdDb2xvcigpO3RoaXMuX3dvcmtDZWxsLmlzQm9sZCgpJiZ5PDgmJiF2JiZ0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zLmRyYXdCb2xkVGV4dEluQnJpZ2h0Q29sb3JzJiYoeSs9OCkscC5jbGFzc0xpc3QuYWRkKFwieHRlcm0tXCIrKHY/XCJiXCI6XCJmXCIpK1wiZy1cIit5KX1lbHNlIHYmJnAuY2xhc3NMaXN0LmFkZChcInh0ZXJtLWJnLVwiK3IuSU5WRVJURURfREVGQVVMVF9DT0xPUik7aWYodGhpcy5fd29ya0NlbGwuaXNCZ1JHQigpKXtnPXAuZ2V0QXR0cmlidXRlKFwic3R5bGVcIil8fFwiXCI7Zys9KHY/XCJcIjpcImJhY2tncm91bmQtXCIpK1wiY29sb3I6cmdiKFwiK24uQXR0cmlidXRlRGF0YS50b0NvbG9yUkdCKHRoaXMuX3dvcmtDZWxsLmdldEJnQ29sb3IoKSkuam9pbihcIixcIikrXCIpO1wiLHAuc2V0QXR0cmlidXRlKFwic3R5bGVcIixnKX1lbHNlIHRoaXMuX3dvcmtDZWxsLmlzQmdQYWxldHRlKCk/cC5jbGFzc0xpc3QuYWRkKFwieHRlcm0tXCIrKHY/XCJmXCI6XCJiXCIpK1wiZy1cIit0aGlzLl93b3JrQ2VsbC5nZXRCZ0NvbG9yKCkpOnYmJnAuY2xhc3NMaXN0LmFkZChcInh0ZXJtLWZnLVwiK3IuSU5WRVJURURfREVGQVVMVF9DT0xPUik7dS5hcHBlbmRDaGlsZChwKX19cmV0dXJuIHV9LGV9KCk7dC5Eb21SZW5kZXJlclJvd0ZhY3Rvcnk9YX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWkoMTEpLG49ezQ4OltcIjBcIixcIilcIl0sNDk6W1wiMVwiLFwiIVwiXSw1MDpbXCIyXCIsXCJAXCJdLDUxOltcIjNcIixcIiNcIl0sNTI6W1wiNFwiLFwiJFwiXSw1MzpbXCI1XCIsXCIlXCJdLDU0OltcIjZcIixcIl5cIl0sNTU6W1wiN1wiLFwiJlwiXSw1NjpbXCI4XCIsXCIqXCJdLDU3OltcIjlcIixcIihcIl0sMTg2OltcIjtcIixcIjpcIl0sMTg3OltcIj1cIixcIitcIl0sMTg4OltcIixcIixcIjxcIl0sMTg5OltcIi1cIixcIl9cIl0sMTkwOltcIi5cIixcIj5cIl0sMTkxOltcIi9cIixcIj9cIl0sMTkyOltcImBcIixcIn5cIl0sMjE5OltcIltcIixcIntcIl0sMjIwOltcIlxcXFxcIixcInxcIl0sMjIxOltcIl1cIixcIn1cIl0sMjIyOltcIidcIiwnXCInXX07dC5ldmFsdWF0ZUtleWJvYXJkRXZlbnQ9ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG89e3R5cGU6MCxjYW5jZWw6ITEsa2V5OnZvaWQgMH0sYT0oZS5zaGlmdEtleT8xOjApfChlLmFsdEtleT8yOjApfChlLmN0cmxLZXk/NDowKXwoZS5tZXRhS2V5Pzg6MCk7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSAwOlwiVUlLZXlJbnB1dFVwQXJyb3dcIj09PWUua2V5P28ua2V5PXQ/ci5DMC5FU0MrXCJPQVwiOnIuQzAuRVNDK1wiW0FcIjpcIlVJS2V5SW5wdXRMZWZ0QXJyb3dcIj09PWUua2V5P28ua2V5PXQ/ci5DMC5FU0MrXCJPRFwiOnIuQzAuRVNDK1wiW0RcIjpcIlVJS2V5SW5wdXRSaWdodEFycm93XCI9PT1lLmtleT9vLmtleT10P3IuQzAuRVNDK1wiT0NcIjpyLkMwLkVTQytcIltDXCI6XCJVSUtleUlucHV0RG93bkFycm93XCI9PT1lLmtleSYmKG8ua2V5PXQ/ci5DMC5FU0MrXCJPQlwiOnIuQzAuRVNDK1wiW0JcIik7YnJlYWs7Y2FzZSA4OmlmKGUuc2hpZnRLZXkpe28ua2V5PXIuQzAuQlM7YnJlYWt9aWYoZS5hbHRLZXkpe28ua2V5PXIuQzAuRVNDK3IuQzAuREVMO2JyZWFrfW8ua2V5PXIuQzAuREVMO2JyZWFrO2Nhc2UgOTppZihlLnNoaWZ0S2V5KXtvLmtleT1yLkMwLkVTQytcIltaXCI7YnJlYWt9by5rZXk9ci5DMC5IVCxvLmNhbmNlbD0hMDticmVhaztjYXNlIDEzOm8ua2V5PXIuQzAuQ1Isby5jYW5jZWw9ITA7YnJlYWs7Y2FzZSAyNzpvLmtleT1yLkMwLkVTQyxvLmNhbmNlbD0hMDticmVhaztjYXNlIDM3OmE/KG8ua2V5PXIuQzAuRVNDK1wiWzE7XCIrKGErMSkrXCJEXCIsby5rZXk9PT1yLkMwLkVTQytcIlsxOzNEXCImJihvLmtleT1pP3IuQzAuRVNDK1wiYlwiOnIuQzAuRVNDK1wiWzE7NURcIikpOm8ua2V5PXQ/ci5DMC5FU0MrXCJPRFwiOnIuQzAuRVNDK1wiW0RcIjticmVhaztjYXNlIDM5OmE/KG8ua2V5PXIuQzAuRVNDK1wiWzE7XCIrKGErMSkrXCJDXCIsby5rZXk9PT1yLkMwLkVTQytcIlsxOzNDXCImJihvLmtleT1pP3IuQzAuRVNDK1wiZlwiOnIuQzAuRVNDK1wiWzE7NUNcIikpOm8ua2V5PXQ/ci5DMC5FU0MrXCJPQ1wiOnIuQzAuRVNDK1wiW0NcIjticmVhaztjYXNlIDM4OmE/KG8ua2V5PXIuQzAuRVNDK1wiWzE7XCIrKGErMSkrXCJBXCIsby5rZXk9PT1yLkMwLkVTQytcIlsxOzNBXCImJihvLmtleT1yLkMwLkVTQytcIlsxOzVBXCIpKTpvLmtleT10P3IuQzAuRVNDK1wiT0FcIjpyLkMwLkVTQytcIltBXCI7YnJlYWs7Y2FzZSA0MDphPyhvLmtleT1yLkMwLkVTQytcIlsxO1wiKyhhKzEpK1wiQlwiLG8ua2V5PT09ci5DMC5FU0MrXCJbMTszQlwiJiYoby5rZXk9ci5DMC5FU0MrXCJbMTs1QlwiKSk6by5rZXk9dD9yLkMwLkVTQytcIk9CXCI6ci5DMC5FU0MrXCJbQlwiO2JyZWFrO2Nhc2UgNDU6ZS5zaGlmdEtleXx8ZS5jdHJsS2V5fHwoby5rZXk9ci5DMC5FU0MrXCJbMn5cIik7YnJlYWs7Y2FzZSA0NjpvLmtleT1hP3IuQzAuRVNDK1wiWzM7XCIrKGErMSkrXCJ+XCI6ci5DMC5FU0MrXCJbM35cIjticmVhaztjYXNlIDM2Om8ua2V5PWE/ci5DMC5FU0MrXCJbMTtcIisoYSsxKStcIkhcIjp0P3IuQzAuRVNDK1wiT0hcIjpyLkMwLkVTQytcIltIXCI7YnJlYWs7Y2FzZSAzNTpvLmtleT1hP3IuQzAuRVNDK1wiWzE7XCIrKGErMSkrXCJGXCI6dD9yLkMwLkVTQytcIk9GXCI6ci5DMC5FU0MrXCJbRlwiO2JyZWFrO2Nhc2UgMzM6ZS5zaGlmdEtleT9vLnR5cGU9MjpvLmtleT1yLkMwLkVTQytcIls1flwiO2JyZWFrO2Nhc2UgMzQ6ZS5zaGlmdEtleT9vLnR5cGU9MzpvLmtleT1yLkMwLkVTQytcIls2flwiO2JyZWFrO2Nhc2UgMTEyOm8ua2V5PWE/ci5DMC5FU0MrXCJbMTtcIisoYSsxKStcIlBcIjpyLkMwLkVTQytcIk9QXCI7YnJlYWs7Y2FzZSAxMTM6by5rZXk9YT9yLkMwLkVTQytcIlsxO1wiKyhhKzEpK1wiUVwiOnIuQzAuRVNDK1wiT1FcIjticmVhaztjYXNlIDExNDpvLmtleT1hP3IuQzAuRVNDK1wiWzE7XCIrKGErMSkrXCJSXCI6ci5DMC5FU0MrXCJPUlwiO2JyZWFrO2Nhc2UgMTE1Om8ua2V5PWE/ci5DMC5FU0MrXCJbMTtcIisoYSsxKStcIlNcIjpyLkMwLkVTQytcIk9TXCI7YnJlYWs7Y2FzZSAxMTY6by5rZXk9YT9yLkMwLkVTQytcIlsxNTtcIisoYSsxKStcIn5cIjpyLkMwLkVTQytcIlsxNX5cIjticmVhaztjYXNlIDExNzpvLmtleT1hP3IuQzAuRVNDK1wiWzE3O1wiKyhhKzEpK1wiflwiOnIuQzAuRVNDK1wiWzE3flwiO2JyZWFrO2Nhc2UgMTE4Om8ua2V5PWE/ci5DMC5FU0MrXCJbMTg7XCIrKGErMSkrXCJ+XCI6ci5DMC5FU0MrXCJbMTh+XCI7YnJlYWs7Y2FzZSAxMTk6by5rZXk9YT9yLkMwLkVTQytcIlsxOTtcIisoYSsxKStcIn5cIjpyLkMwLkVTQytcIlsxOX5cIjticmVhaztjYXNlIDEyMDpvLmtleT1hP3IuQzAuRVNDK1wiWzIwO1wiKyhhKzEpK1wiflwiOnIuQzAuRVNDK1wiWzIwflwiO2JyZWFrO2Nhc2UgMTIxOm8ua2V5PWE/ci5DMC5FU0MrXCJbMjE7XCIrKGErMSkrXCJ+XCI6ci5DMC5FU0MrXCJbMjF+XCI7YnJlYWs7Y2FzZSAxMjI6by5rZXk9YT9yLkMwLkVTQytcIlsyMztcIisoYSsxKStcIn5cIjpyLkMwLkVTQytcIlsyM35cIjticmVhaztjYXNlIDEyMzpvLmtleT1hP3IuQzAuRVNDK1wiWzI0O1wiKyhhKzEpK1wiflwiOnIuQzAuRVNDK1wiWzI0flwiO2JyZWFrO2RlZmF1bHQ6aWYoIWUuY3RybEtleXx8ZS5zaGlmdEtleXx8ZS5hbHRLZXl8fGUubWV0YUtleSlpZihpJiYhc3x8IWUuYWx0S2V5fHxlLm1ldGFLZXkpaSYmIWUuYWx0S2V5JiYhZS5jdHJsS2V5JiZlLm1ldGFLZXk/NjU9PT1lLmtleUNvZGUmJihvLnR5cGU9MSk6ZS5rZXkmJiFlLmN0cmxLZXkmJiFlLmFsdEtleSYmIWUubWV0YUtleSYmZS5rZXlDb2RlPj00OCYmMT09PWUua2V5Lmxlbmd0aD9vLmtleT1lLmtleTplLmtleSYmZS5jdHJsS2V5JiZcIl9cIj09PWUua2V5JiYoby5rZXk9ci5DMC5VUyk7ZWxzZXt2YXIgYz1uW2Uua2V5Q29kZV0sbD1jJiZjW2Uuc2hpZnRLZXk/MTowXTtpZihsKW8ua2V5PXIuQzAuRVNDK2w7ZWxzZSBpZihlLmtleUNvZGU+PTY1JiZlLmtleUNvZGU8PTkwKXt2YXIgaD1lLmN0cmxLZXk/ZS5rZXlDb2RlLTY0OmUua2V5Q29kZSszMjtvLmtleT1yLkMwLkVTQytTdHJpbmcuZnJvbUNoYXJDb2RlKGgpfX1lbHNlIGUua2V5Q29kZT49NjUmJmUua2V5Q29kZTw9OTA/by5rZXk9U3RyaW5nLmZyb21DaGFyQ29kZShlLmtleUNvZGUtNjQpOjMyPT09ZS5rZXlDb2RlP28ua2V5PVN0cmluZy5mcm9tQ2hhckNvZGUoMCk6ZS5rZXlDb2RlPj01MSYmZS5rZXlDb2RlPD01NT9vLmtleT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUua2V5Q29kZS01MSsyNyk6NTY9PT1lLmtleUNvZGU/by5rZXk9U3RyaW5nLmZyb21DaGFyQ29kZSgxMjcpOjIxOT09PWUua2V5Q29kZT9vLmtleT1TdHJpbmcuZnJvbUNoYXJDb2RlKDI3KToyMjA9PT1lLmtleUNvZGU/by5rZXk9U3RyaW5nLmZyb21DaGFyQ29kZSgyOCk6MjIxPT09ZS5rZXlDb2RlJiYoby5rZXk9U3RyaW5nLmZyb21DaGFyQ29kZSgyOSkpfXJldHVybiBvfX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWkoMyk7dC5hcHBseVdpbmRvd3NNb2RlPWZ1bmN0aW9uKGUpe3JldHVybiBlLm9uTGluZUZlZWQoZnVuY3Rpb24oKXt2YXIgdD1lLmJ1ZmZlci5saW5lcy5nZXQoZS5idWZmZXIueWJhc2UrZS5idWZmZXIueS0xKS5nZXQoZS5jb2xzLTEpO2UuYnVmZmVyLmxpbmVzLmdldChlLmJ1ZmZlci55YmFzZStlLmJ1ZmZlci55KS5pc1dyYXBwZWQ9dFtyLkNIQVJfREFUQV9DT0RFX0lOREVYXSE9PXIuTlVMTF9DRUxMX0NPREUmJnRbci5DSEFSX0RBVEFfQ09ERV9JTkRFWF0hPT1yLldISVRFU1BBQ0VfQ0VMTF9DT0RFfSl9fSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHIsbj10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHI9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ocj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oZSx0KXtlLl9fcHJvdG9fXz10fXx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGkgaW4gdCl0Lmhhc093blByb3BlcnR5KGkpJiYoZVtpXT10W2ldKX0pKGUsdCl9LGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe3RoaXMuY29uc3RydWN0b3I9ZX1yKGUsdCksZS5wcm90b3R5cGU9bnVsbD09PXQ/T2JqZWN0LmNyZWF0ZSh0KTooaS5wcm90b3R5cGU9dC5wcm90b3R5cGUsbmV3IGkpfSkscz10aGlzJiZ0aGlzLl9fZGVjb3JhdGV8fGZ1bmN0aW9uKGUsdCxpLHIpe3ZhciBuLHM9YXJndW1lbnRzLmxlbmd0aCxvPXM8Mz90Om51bGw9PT1yP3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpOnI7aWYoXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpbz1SZWZsZWN0LmRlY29yYXRlKGUsdCxpLHIpO2Vsc2UgZm9yKHZhciBhPWUubGVuZ3RoLTE7YT49MDthLS0pKG49ZVthXSkmJihvPShzPDM/bihvKTpzPjM/bih0LGksbyk6bih0LGkpKXx8byk7cmV0dXJuIHM+MyYmbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxvKSxvfSxvPXRoaXMmJnRoaXMuX19wYXJhbXx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oaSxyKXt0KGkscixlKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBhPWkoMjkpLGM9aSgxKSxsPWkoMiksaD1pKDMwKSx1PWkoNyksZj1pKDApLF89aSg1KSxkPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxpLHIsbixzKXt2YXIgbz1lLmNhbGwodGhpcyl8fHRoaXM7aWYoby5fcmVuZGVyZXI9dCxvLl9yb3dDb3VudD1pLG8uc2NyZWVuRWxlbWVudD1yLG8ub3B0aW9uc1NlcnZpY2U9bixvLmNoYXJTaXplU2VydmljZT1zLG8uX2lzUGF1c2VkPSExLG8uX25lZWRzRnVsbFJlZnJlc2g9ITEsby5fY2FudmFzV2lkdGg9MCxvLl9jYW52YXNIZWlnaHQ9MCxvLl9vbkRpbWVuc2lvbnNDaGFuZ2U9bmV3IGMuRXZlbnRFbWl0dGVyLG8uX29uUmVuZGVyPW5ldyBjLkV2ZW50RW1pdHRlcixvLl9vblJlZnJlc2hSZXF1ZXN0PW5ldyBjLkV2ZW50RW1pdHRlcixvLl9yZW5kZXJEZWJvdW5jZXI9bmV3IGEuUmVuZGVyRGVib3VuY2VyKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG8uX3JlbmRlclJvd3MoZSx0KX0pLG8ucmVnaXN0ZXIoby5fcmVuZGVyRGVib3VuY2VyKSxvLl9zY3JlZW5EcHJNb25pdG9yPW5ldyBoLlNjcmVlbkRwck1vbml0b3Isby5fc2NyZWVuRHByTW9uaXRvci5zZXRMaXN0ZW5lcihmdW5jdGlvbigpe3JldHVybiBvLm9uRGV2aWNlUGl4ZWxSYXRpb0NoYW5nZSgpfSksby5yZWdpc3RlcihvLl9zY3JlZW5EcHJNb25pdG9yKSxvLnJlZ2lzdGVyKG4ub25PcHRpb25DaGFuZ2UoZnVuY3Rpb24oKXtyZXR1cm4gby5fcmVuZGVyZXIub25PcHRpb25zQ2hhbmdlZCgpfSkpLG8ucmVnaXN0ZXIocy5vbkNoYXJTaXplQ2hhbmdlKGZ1bmN0aW9uKCl7cmV0dXJuIG8ub25DaGFyU2l6ZUNoYW5nZWQoKX0pKSxvLnJlZ2lzdGVyKHUuYWRkRGlzcG9zYWJsZURvbUxpc3RlbmVyKHdpbmRvdyxcInJlc2l6ZVwiLGZ1bmN0aW9uKCl7cmV0dXJuIG8ub25EZXZpY2VQaXhlbFJhdGlvQ2hhbmdlKCl9KSksXCJJbnRlcnNlY3Rpb25PYnNlcnZlclwiaW4gd2luZG93KXt2YXIgbD1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIG8uX29uSW50ZXJzZWN0aW9uQ2hhbmdlKGVbZS5sZW5ndGgtMV0pfSx7dGhyZXNob2xkOjB9KTtsLm9ic2VydmUociksby5yZWdpc3Rlcih7ZGlzcG9zZTpmdW5jdGlvbigpe3JldHVybiBsLmRpc2Nvbm5lY3QoKX19KX1yZXR1cm4gb31yZXR1cm4gbih0LGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIm9uRGltZW5zaW9uc0NoYW5nZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25EaW1lbnNpb25zQ2hhbmdlLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIm9uUmVuZGVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblJlbmRlci5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJvblJlZnJlc2hSZXF1ZXN0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblJlZnJlc2hSZXF1ZXN0LmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcImRpbWVuc2lvbnNcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmRpbWVuc2lvbnN9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuX29uSW50ZXJzZWN0aW9uQ2hhbmdlPWZ1bmN0aW9uKGUpe3RoaXMuX2lzUGF1c2VkPTA9PT1lLmludGVyc2VjdGlvblJhdGlvLCF0aGlzLl9pc1BhdXNlZCYmdGhpcy5fbmVlZHNGdWxsUmVmcmVzaCYmKHRoaXMucmVmcmVzaFJvd3MoMCx0aGlzLl9yb3dDb3VudC0xKSx0aGlzLl9uZWVkc0Z1bGxSZWZyZXNoPSExKX0sdC5wcm90b3R5cGUucmVmcmVzaFJvd3M9ZnVuY3Rpb24oZSx0KXt0aGlzLl9pc1BhdXNlZD90aGlzLl9uZWVkc0Z1bGxSZWZyZXNoPSEwOnRoaXMuX3JlbmRlckRlYm91bmNlci5yZWZyZXNoKGUsdCx0aGlzLl9yb3dDb3VudCl9LHQucHJvdG90eXBlLl9yZW5kZXJSb3dzPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcmVuZGVyZXIucmVuZGVyUm93cyhlLHQpLHRoaXMuX29uUmVuZGVyLmZpcmUoe3N0YXJ0OmUsZW5kOnR9KX0sdC5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKGUsdCl7dGhpcy5fcm93Q291bnQ9dCx0aGlzLl9maXJlT25DYW52YXNSZXNpemUoKX0sdC5wcm90b3R5cGUuY2hhbmdlT3B0aW9ucz1mdW5jdGlvbigpe3RoaXMuX3JlbmRlcmVyLm9uT3B0aW9uc0NoYW5nZWQoKSx0aGlzLl9maXJlT25DYW52YXNSZXNpemUoKX0sdC5wcm90b3R5cGUuX2ZpcmVPbkNhbnZhc1Jlc2l6ZT1mdW5jdGlvbigpe3RoaXMuX3JlbmRlcmVyLmRpbWVuc2lvbnMuY2FudmFzV2lkdGg9PT10aGlzLl9jYW52YXNXaWR0aCYmdGhpcy5fcmVuZGVyZXIuZGltZW5zaW9ucy5jYW52YXNIZWlnaHQ9PT10aGlzLl9jYW52YXNIZWlnaHR8fHRoaXMuX29uRGltZW5zaW9uc0NoYW5nZS5maXJlKHRoaXMuX3JlbmRlcmVyLmRpbWVuc2lvbnMpfSx0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fcmVuZGVyZXIuZGlzcG9zZSgpfSx0LnByb3RvdHlwZS5zZXRSZW5kZXJlcj1mdW5jdGlvbihlKXt0aGlzLl9yZW5kZXJlci5kaXNwb3NlKCksdGhpcy5fcmVuZGVyZXI9ZSx0aGlzLnJlZnJlc2hSb3dzKDAsdGhpcy5fcm93Q291bnQtMSl9LHQucHJvdG90eXBlLl9mdWxsUmVmcmVzaD1mdW5jdGlvbigpe3RoaXMuX2lzUGF1c2VkP3RoaXMuX25lZWRzRnVsbFJlZnJlc2g9ITA6dGhpcy5yZWZyZXNoUm93cygwLHRoaXMuX3Jvd0NvdW50LTEpfSx0LnByb3RvdHlwZS5zZXRDb2xvcnM9ZnVuY3Rpb24oZSl7dGhpcy5fcmVuZGVyZXIuc2V0Q29sb3JzKGUpLHRoaXMuX2Z1bGxSZWZyZXNoKCl9LHQucHJvdG90eXBlLm9uRGV2aWNlUGl4ZWxSYXRpb0NoYW5nZT1mdW5jdGlvbigpe3RoaXMuX3JlbmRlcmVyLm9uRGV2aWNlUGl4ZWxSYXRpb0NoYW5nZSgpLHRoaXMucmVmcmVzaFJvd3MoMCx0aGlzLl9yb3dDb3VudC0xKX0sdC5wcm90b3R5cGUub25SZXNpemU9ZnVuY3Rpb24oZSx0KXt0aGlzLl9yZW5kZXJlci5vblJlc2l6ZShlLHQpLHRoaXMuX2Z1bGxSZWZyZXNoKCl9LHQucHJvdG90eXBlLm9uQ2hhclNpemVDaGFuZ2VkPWZ1bmN0aW9uKCl7dGhpcy5fcmVuZGVyZXIub25DaGFyU2l6ZUNoYW5nZWQoKX0sdC5wcm90b3R5cGUub25CbHVyPWZ1bmN0aW9uKCl7dGhpcy5fcmVuZGVyZXIub25CbHVyKCl9LHQucHJvdG90eXBlLm9uRm9jdXM9ZnVuY3Rpb24oKXt0aGlzLl9yZW5kZXJlci5vbkZvY3VzKCl9LHQucHJvdG90eXBlLm9uU2VsZWN0aW9uQ2hhbmdlZD1mdW5jdGlvbihlLHQsaSl7dGhpcy5fcmVuZGVyZXIub25TZWxlY3Rpb25DaGFuZ2VkKGUsdCxpKX0sdC5wcm90b3R5cGUub25DdXJzb3JNb3ZlPWZ1bmN0aW9uKCl7dGhpcy5fcmVuZGVyZXIub25DdXJzb3JNb3ZlKCl9LHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fcmVuZGVyZXIuY2xlYXIoKX0sdC5wcm90b3R5cGUucmVnaXN0ZXJDaGFyYWN0ZXJKb2luZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLnJlZ2lzdGVyQ2hhcmFjdGVySm9pbmVyKGUpfSx0LnByb3RvdHlwZS5kZXJlZ2lzdGVyQ2hhcmFjdGVySm9pbmVyPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9yZW5kZXJlci5kZXJlZ2lzdGVyQ2hhcmFjdGVySm9pbmVyKGUpfSx0PXMoW28oMyxmLklPcHRpb25zU2VydmljZSksbyg0LF8uSUNoYXJTaXplU2VydmljZSldLHQpfShsLkRpc3Bvc2FibGUpO3QuUmVuZGVyU2VydmljZT1kfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9aSgxKSxuPWkoMTApLHM9aSgzMSk7dC5ERUZBVUxUX0JFTExfU09VTkQ9XCJkYXRhOmF1ZGlvL3dhdjtiYXNlNjQsVWtsR1JpZ0JBQUJYUVZaRlptMTBJQkFBQUFBQkFBRUFSS3dBQUloWUFRQUNBQkFBWkdGMFlRUUJBQURwQUZnQ3dBTWxCWm9HL3dkbUNjb0tSQXlwRFE4UGJSREJFUVFUT3hSdEZZY1dsQmVQR0lVWlhob2lHODhiY0J6N0hISWR6aDBXSGxNZVp4NTFIbWtlVXg0V0hzOGRhaDBBSFh3YzNoczlHNHNheFJueUdCSVlHQmNRRnY4VTRSUEFFb1lSUUJBQ0Q3ME5Xd3dIQzZnSk93aldCbG9GN2dPQkFoQUJrZjhiL3F2OFIvdmUrWGY0SWZlNzlXLzBKZlBaOFovd2RlOU43aWp0RSt3VTZ4dnFNK2xiNkg3bncrWVg1bXJseHVRejVNemplK01hNDlmaW9lS0Q0blhpWWVKeTRwSGl0T0wwNGovam4rTU41SVBrRk9XczVVM21EZWZNNTUvb2dPbDM2bTdyZE95RTdhYnV5dThEOFVueWovUGc5RC8ycWZjYitZbjYvdnVLL1FqL2xBQWxBZz09XCIsdC5ERUZBVUxUX09QVElPTlM9T2JqZWN0LmZyZWV6ZSh7Y29sczo4MCxyb3dzOjI0LGN1cnNvckJsaW5rOiExLGN1cnNvclN0eWxlOlwiYmxvY2tcIixiZWxsU291bmQ6dC5ERUZBVUxUX0JFTExfU09VTkQsYmVsbFN0eWxlOlwibm9uZVwiLGRyYXdCb2xkVGV4dEluQnJpZ2h0Q29sb3JzOiEwLGZvbnRGYW1pbHk6XCJjb3VyaWVyLW5ldywgY291cmllciwgbW9ub3NwYWNlXCIsZm9udFNpemU6MTUsZm9udFdlaWdodDpcIm5vcm1hbFwiLGZvbnRXZWlnaHRCb2xkOlwiYm9sZFwiLGxpbmVIZWlnaHQ6MSxsZXR0ZXJTcGFjaW5nOjAsbG9nTGV2ZWw6XCJpbmZvXCIsc2Nyb2xsYmFjazoxZTMsc2NyZWVuUmVhZGVyTW9kZTohMSxtYWNPcHRpb25Jc01ldGE6ITEsbWFjT3B0aW9uQ2xpY2tGb3JjZXNTZWxlY3Rpb246ITEsZGlzYWJsZVN0ZGluOiExLGFsbG93VHJhbnNwYXJlbmN5OiExLHRhYlN0b3BXaWR0aDo4LHRoZW1lOnt9LHJpZ2h0Q2xpY2tTZWxlY3RzV29yZDpuLmlzTWFjLHJlbmRlcmVyVHlwZTpcImNhbnZhc1wiLHdpbmRvd3NNb2RlOiExLGNvbnZlcnRFb2w6ITEsdGVybU5hbWU6XCJ4dGVybVwiLHNjcmVlbktleXM6ITEsY2FuY2VsRXZlbnRzOiExLHVzZUZsb3dDb250cm9sOiExLHdvcmRTZXBhcmF0b3I6XCIgKClbXXt9J1xcXCJcIn0pO3ZhciBvPVtcImNvbHNcIixcInJvd3NcIl0sYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dmFyIGk9dGhpczt0aGlzLl9vbk9wdGlvbkNoYW5nZT1uZXcgci5FdmVudEVtaXR0ZXIsdGhpcy5vcHRpb25zPXMuY2xvbmUodC5ERUZBVUxUX09QVElPTlMpLE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7aWYodCBpbiBpLm9wdGlvbnMpe3ZhciByPWVbdF07aS5vcHRpb25zW3RdPXJ9fSl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uT3B0aW9uQ2hhbmdlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbk9wdGlvbkNoYW5nZS5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5zZXRPcHRpb249ZnVuY3Rpb24oZSxpKXtpZighKGUgaW4gdC5ERUZBVUxUX09QVElPTlMpKXRocm93IG5ldyBFcnJvcignTm8gb3B0aW9uIHdpdGgga2V5IFwiJytlKydcIicpO2lmKC0xIT09by5pbmRleE9mKGUpKXRocm93IG5ldyBFcnJvcignT3B0aW9uIFwiJytlKydcIiBjYW4gb25seSBiZSBzZXQgaW4gdGhlIGNvbnN0cnVjdG9yJyk7dGhpcy5vcHRpb25zW2VdIT09aSYmKGk9dGhpcy5fc2FuaXRpemVBbmRWYWxpZGF0ZU9wdGlvbihlLGkpLHRoaXMub3B0aW9uc1tlXSE9PWkmJih0aGlzLm9wdGlvbnNbZV09aSx0aGlzLl9vbk9wdGlvbkNoYW5nZS5maXJlKGUpKSl9LGUucHJvdG90eXBlLl9zYW5pdGl6ZUFuZFZhbGlkYXRlT3B0aW9uPWZ1bmN0aW9uKGUsaSl7c3dpdGNoKGUpe2Nhc2VcImJlbGxTdHlsZVwiOmNhc2VcImN1cnNvclN0eWxlXCI6Y2FzZVwiZm9udFdlaWdodFwiOmNhc2VcImZvbnRXZWlnaHRCb2xkXCI6Y2FzZVwicmVuZGVyZXJUeXBlXCI6Y2FzZVwid29yZFNlcGFyYXRvclwiOml8fChpPXQuREVGQVVMVF9PUFRJT05TW2VdKTticmVhaztjYXNlXCJsaW5lSGVpZ2h0XCI6Y2FzZVwidGFiU3RvcFdpZHRoXCI6aWYoaTwxKXRocm93IG5ldyBFcnJvcihlK1wiIGNhbm5vdCBiZSBsZXNzIHRoYW4gMSwgdmFsdWU6IFwiK2kpO2JyZWFrO2Nhc2VcInNjcm9sbGJhY2tcIjppZigoaT1NYXRoLm1pbihpLDQyOTQ5NjcyOTUpKTwwKXRocm93IG5ldyBFcnJvcihlK1wiIGNhbm5vdCBiZSBsZXNzIHRoYW4gMCwgdmFsdWU6IFwiK2kpfXJldHVybiBpfSxlLnByb3RvdHlwZS5nZXRPcHRpb249ZnVuY3Rpb24oZSl7aWYoIShlIGluIHQuREVGQVVMVF9PUFRJT05TKSl0aHJvdyBuZXcgRXJyb3IoJ05vIG9wdGlvbiB3aXRoIGtleSBcIicrZSsnXCInKTtyZXR1cm4gdGhpcy5vcHRpb25zW2VdfSxlfSgpO3QuT3B0aW9uc1NlcnZpY2U9YX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO3ZhciByPXRoaXMmJnRoaXMuX19kZWNvcmF0ZXx8ZnVuY3Rpb24oZSx0LGkscil7dmFyIG4scz1hcmd1bWVudHMubGVuZ3RoLG89czwzP3Q6bnVsbD09PXI/cj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsaSk6cjtpZihcIm9iamVjdFwiPT10eXBlb2YgUmVmbGVjdCYmXCJmdW5jdGlvblwiPT10eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSlvPVJlZmxlY3QuZGVjb3JhdGUoZSx0LGkscik7ZWxzZSBmb3IodmFyIGE9ZS5sZW5ndGgtMTthPj0wO2EtLSkobj1lW2FdKSYmKG89KHM8Mz9uKG8pOnM+Mz9uKHQsaSxvKTpuKHQsaSkpfHxvKTtyZXR1cm4gcz4zJiZvJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLG8pLG99LG49dGhpcyYmdGhpcy5fX3BhcmFtfHxmdW5jdGlvbihlLHQpe3JldHVybiBmdW5jdGlvbihpLHIpe3QoaSxyLGUpfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHM9aSgwKSxvPWkoMSksYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LGkpe3RoaXMuZG9jdW1lbnQ9ZSx0aGlzLnBhcmVudEVsZW1lbnQ9dCx0aGlzLl9vcHRpb25zU2VydmljZT1pLHRoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMuX29uQ2hhclNpemVDaGFuZ2U9bmV3IG8uRXZlbnRFbWl0dGVyLHRoaXMuX21lYXN1cmVTdHJhdGVneT1uZXcgYyhlLHQsdGhpcy5fb3B0aW9uc1NlcnZpY2UpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJoYXNWYWxpZFNpemVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud2lkdGg+MCYmdGhpcy5oZWlnaHQ+MH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJvbkNoYXJTaXplQ2hhbmdlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkNoYXJTaXplQ2hhbmdlLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLm1lYXN1cmU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9tZWFzdXJlU3RyYXRlZ3kubWVhc3VyZSgpO2Uud2lkdGg9PT10aGlzLndpZHRoJiZlLmhlaWdodD09PXRoaXMuaGVpZ2h0fHwodGhpcy53aWR0aD1lLndpZHRoLHRoaXMuaGVpZ2h0PWUuaGVpZ2h0LHRoaXMuX29uQ2hhclNpemVDaGFuZ2UuZmlyZSgpKX0sZT1yKFtuKDIscy5JT3B0aW9uc1NlcnZpY2UpXSxlKX0oKTt0LkNoYXJTaXplU2VydmljZT1hO3ZhciBjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsaSl7dGhpcy5fZG9jdW1lbnQ9ZSx0aGlzLl9wYXJlbnRFbGVtZW50PXQsdGhpcy5fb3B0aW9uc1NlcnZpY2U9aSx0aGlzLl9yZXN1bHQ9e3dpZHRoOjAsaGVpZ2h0OjB9LHRoaXMuX21lYXN1cmVFbGVtZW50PXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpLHRoaXMuX21lYXN1cmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJ4dGVybS1jaGFyLW1lYXN1cmUtZWxlbWVudFwiKSx0aGlzLl9tZWFzdXJlRWxlbWVudC50ZXh0Q29udGVudD1cIldcIix0aGlzLl9tZWFzdXJlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJhcmlhLWhpZGRlblwiLFwidHJ1ZVwiKSx0aGlzLl9wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX21lYXN1cmVFbGVtZW50KX1yZXR1cm4gZS5wcm90b3R5cGUubWVhc3VyZT1mdW5jdGlvbigpe3RoaXMuX21lYXN1cmVFbGVtZW50LnN0eWxlLmZvbnRGYW1pbHk9dGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5mb250RmFtaWx5LHRoaXMuX21lYXN1cmVFbGVtZW50LnN0eWxlLmZvbnRTaXplPXRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuZm9udFNpemUrXCJweFwiO3ZhciBlPXRoaXMuX21lYXN1cmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiAwIT09ZS53aWR0aCYmMCE9PWUuaGVpZ2h0JiYodGhpcy5fcmVzdWx0LndpZHRoPWUud2lkdGgsdGhpcy5fcmVzdWx0LmhlaWdodD1NYXRoLmNlaWwoZS5oZWlnaHQpKSx0aGlzLl9yZXN1bHR9LGV9KCl9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fZGVjb3JhdGV8fGZ1bmN0aW9uKGUsdCxpLHIpe3ZhciBuLHM9YXJndW1lbnRzLmxlbmd0aCxvPXM8Mz90Om51bGw9PT1yP3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpOnI7aWYoXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpbz1SZWZsZWN0LmRlY29yYXRlKGUsdCxpLHIpO2Vsc2UgZm9yKHZhciBhPWUubGVuZ3RoLTE7YT49MDthLS0pKG49ZVthXSkmJihvPShzPDM/bihvKTpzPjM/bih0LGksbyk6bih0LGkpKXx8byk7cmV0dXJuIHM+MyYmbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxvKSxvfSxuPXRoaXMmJnRoaXMuX19wYXJhbXx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oaSxyKXt0KGkscixlKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBzPWkoMCksbz1pKDYzKTt0Lk1JTklNVU1fQ09MUz0yLHQuTUlOSU1VTV9ST1dTPTE7dmFyIGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuX29wdGlvbnNTZXJ2aWNlPWUsdGhpcy5jb2xzPU1hdGgubWF4KGUub3B0aW9ucy5jb2xzLHQuTUlOSU1VTV9DT0xTKSx0aGlzLnJvd3M9TWF0aC5tYXgoZS5vcHRpb25zLnJvd3MsdC5NSU5JTVVNX1JPV1MpLHRoaXMuYnVmZmVycz1uZXcgby5CdWZmZXJTZXQoZSx0aGlzKX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiYnVmZmVyXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1ZmZlcnMuYWN0aXZlfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlLHQpe3RoaXMuY29scz1lLHRoaXMucm93cz10fSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuYnVmZmVycz1uZXcgby5CdWZmZXJTZXQodGhpcy5fb3B0aW9uc1NlcnZpY2UsdGhpcyl9LGU9cihbbigwLHMuSU9wdGlvbnNTZXJ2aWNlKV0sZSl9KCk7dC5CdWZmZXJTZXJ2aWNlPWF9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcj1pKDY0KSxuPWkoMSkscz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXt0aGlzLm9wdGlvbnNTZXJ2aWNlPWUsdGhpcy5idWZmZXJTZXJ2aWNlPXQsdGhpcy5fb25CdWZmZXJBY3RpdmF0ZT1uZXcgbi5FdmVudEVtaXR0ZXIsdGhpcy5fbm9ybWFsPW5ldyByLkJ1ZmZlcighMCxlLHQpLHRoaXMuX25vcm1hbC5maWxsVmlld3BvcnRSb3dzKCksdGhpcy5fYWx0PW5ldyByLkJ1ZmZlcighMSxlLHQpLHRoaXMuX2FjdGl2ZUJ1ZmZlcj10aGlzLl9ub3JtYWwsdGhpcy5zZXR1cFRhYlN0b3BzKCl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uQnVmZmVyQWN0aXZhdGVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uQnVmZmVyQWN0aXZhdGUuZXZlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiYWx0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbHR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiYWN0aXZlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmVCdWZmZXJ9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwibm9ybWFsXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ub3JtYWx9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuYWN0aXZhdGVOb3JtYWxCdWZmZXI9ZnVuY3Rpb24oKXt0aGlzLl9hY3RpdmVCdWZmZXIhPT10aGlzLl9ub3JtYWwmJih0aGlzLl9ub3JtYWwueD10aGlzLl9hbHQueCx0aGlzLl9ub3JtYWwueT10aGlzLl9hbHQueSx0aGlzLl9hbHQuY2xlYXIoKSx0aGlzLl9hY3RpdmVCdWZmZXI9dGhpcy5fbm9ybWFsLHRoaXMuX29uQnVmZmVyQWN0aXZhdGUuZmlyZSh7YWN0aXZlQnVmZmVyOnRoaXMuX25vcm1hbCxpbmFjdGl2ZUJ1ZmZlcjp0aGlzLl9hbHR9KSl9LGUucHJvdG90eXBlLmFjdGl2YXRlQWx0QnVmZmVyPWZ1bmN0aW9uKGUpe3RoaXMuX2FjdGl2ZUJ1ZmZlciE9PXRoaXMuX2FsdCYmKHRoaXMuX2FsdC5maWxsVmlld3BvcnRSb3dzKGUpLHRoaXMuX2FsdC54PXRoaXMuX25vcm1hbC54LHRoaXMuX2FsdC55PXRoaXMuX25vcm1hbC55LHRoaXMuX2FjdGl2ZUJ1ZmZlcj10aGlzLl9hbHQsdGhpcy5fb25CdWZmZXJBY3RpdmF0ZS5maXJlKHthY3RpdmVCdWZmZXI6dGhpcy5fYWx0LGluYWN0aXZlQnVmZmVyOnRoaXMuX25vcm1hbH0pKX0sZS5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKGUsdCl7dGhpcy5fbm9ybWFsLnJlc2l6ZShlLHQpLHRoaXMuX2FsdC5yZXNpemUoZSx0KX0sZS5wcm90b3R5cGUuc2V0dXBUYWJTdG9wcz1mdW5jdGlvbihlKXt0aGlzLl9ub3JtYWwuc2V0dXBUYWJTdG9wcyhlKSx0aGlzLl9hbHQuc2V0dXBUYWJTdG9wcyhlKX0sZX0oKTt0LkJ1ZmZlclNldD1zfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOiEwfSk7dmFyIHI9aSg2NSksbj1pKDE1KSxzPWkoNCksbz1pKDMpLGE9aSg2NiksYz1pKDY3KSxsPWkoMTcpO3QuTUFYX0JVRkZFUl9TSVpFPTQyOTQ5NjcyOTU7dmFyIGg9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCxpKXt0aGlzLl9oYXNTY3JvbGxiYWNrPWUsdGhpcy5fb3B0aW9uc1NlcnZpY2U9dCx0aGlzLl9idWZmZXJTZXJ2aWNlPWksdGhpcy55ZGlzcD0wLHRoaXMueWJhc2U9MCx0aGlzLnk9MCx0aGlzLng9MCx0aGlzLnNhdmVkWT0wLHRoaXMuc2F2ZWRYPTAsdGhpcy5zYXZlZEN1ckF0dHJEYXRhPW4uREVGQVVMVF9BVFRSX0RBVEEuY2xvbmUoKSx0aGlzLnNhdmVkQ2hhcnNldD1sLkRFRkFVTFRfQ0hBUlNFVCx0aGlzLm1hcmtlcnM9W10sdGhpcy5fbnVsbENlbGw9cy5DZWxsRGF0YS5mcm9tQ2hhckRhdGEoWzAsby5OVUxMX0NFTExfQ0hBUixvLk5VTExfQ0VMTF9XSURUSCxvLk5VTExfQ0VMTF9DT0RFXSksdGhpcy5fd2hpdGVzcGFjZUNlbGw9cy5DZWxsRGF0YS5mcm9tQ2hhckRhdGEoWzAsby5XSElURVNQQUNFX0NFTExfQ0hBUixvLldISVRFU1BBQ0VfQ0VMTF9XSURUSCxvLldISVRFU1BBQ0VfQ0VMTF9DT0RFXSksdGhpcy5fY29scz10aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHMsdGhpcy5fcm93cz10aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MsdGhpcy5saW5lcz1uZXcgci5DaXJjdWxhckxpc3QodGhpcy5fZ2V0Q29ycmVjdEJ1ZmZlckxlbmd0aCh0aGlzLl9yb3dzKSksdGhpcy5zY3JvbGxUb3A9MCx0aGlzLnNjcm9sbEJvdHRvbT10aGlzLl9yb3dzLTEsdGhpcy5zZXR1cFRhYlN0b3BzKCl9cmV0dXJuIGUucHJvdG90eXBlLmdldE51bGxDZWxsPWZ1bmN0aW9uKGUpe3JldHVybiBlPyh0aGlzLl9udWxsQ2VsbC5mZz1lLmZnLHRoaXMuX251bGxDZWxsLmJnPWUuYmcpOih0aGlzLl9udWxsQ2VsbC5mZz0wLHRoaXMuX251bGxDZWxsLmJnPTApLHRoaXMuX251bGxDZWxsfSxlLnByb3RvdHlwZS5nZXRXaGl0ZXNwYWNlQ2VsbD1mdW5jdGlvbihlKXtyZXR1cm4gZT8odGhpcy5fd2hpdGVzcGFjZUNlbGwuZmc9ZS5mZyx0aGlzLl93aGl0ZXNwYWNlQ2VsbC5iZz1lLmJnKToodGhpcy5fd2hpdGVzcGFjZUNlbGwuZmc9MCx0aGlzLl93aGl0ZXNwYWNlQ2VsbC5iZz0wKSx0aGlzLl93aGl0ZXNwYWNlQ2VsbH0sZS5wcm90b3R5cGUuZ2V0QmxhbmtMaW5lPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBuLkJ1ZmZlckxpbmUodGhpcy5fYnVmZmVyU2VydmljZS5jb2xzLHRoaXMuZ2V0TnVsbENlbGwoZSksdCl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcImhhc1Njcm9sbGJhY2tcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc1Njcm9sbGJhY2smJnRoaXMubGluZXMubWF4TGVuZ3RoPnRoaXMuX3Jvd3N9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiaXNDdXJzb3JJblZpZXdwb3J0XCIse2dldDpmdW5jdGlvbigpe3ZhciBlPXRoaXMueWJhc2UrdGhpcy55LXRoaXMueWRpc3A7cmV0dXJuIGU+PTAmJmU8dGhpcy5fcm93c30sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5fZ2V0Q29ycmVjdEJ1ZmZlckxlbmd0aD1mdW5jdGlvbihlKXtpZighdGhpcy5faGFzU2Nyb2xsYmFjaylyZXR1cm4gZTt2YXIgaT1lK3RoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuc2Nyb2xsYmFjaztyZXR1cm4gaT50Lk1BWF9CVUZGRVJfU0laRT90Lk1BWF9CVUZGRVJfU0laRTppfSxlLnByb3RvdHlwZS5maWxsVmlld3BvcnRSb3dzPWZ1bmN0aW9uKGUpe2lmKDA9PT10aGlzLmxpbmVzLmxlbmd0aCl7dm9pZCAwPT09ZSYmKGU9bi5ERUZBVUxUX0FUVFJfREFUQSk7Zm9yKHZhciB0PXRoaXMuX3Jvd3M7dC0tOyl0aGlzLmxpbmVzLnB1c2godGhpcy5nZXRCbGFua0xpbmUoZSkpfX0sZS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnlkaXNwPTAsdGhpcy55YmFzZT0wLHRoaXMueT0wLHRoaXMueD0wLHRoaXMubGluZXM9bmV3IHIuQ2lyY3VsYXJMaXN0KHRoaXMuX2dldENvcnJlY3RCdWZmZXJMZW5ndGgodGhpcy5fcm93cykpLHRoaXMuc2Nyb2xsVG9wPTAsdGhpcy5zY3JvbGxCb3R0b209dGhpcy5fcm93cy0xLHRoaXMuc2V0dXBUYWJTdG9wcygpfSxlLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLmdldE51bGxDZWxsKG4uREVGQVVMVF9BVFRSX0RBVEEpLHI9dGhpcy5fZ2V0Q29ycmVjdEJ1ZmZlckxlbmd0aCh0KTtpZihyPnRoaXMubGluZXMubWF4TGVuZ3RoJiYodGhpcy5saW5lcy5tYXhMZW5ndGg9ciksdGhpcy5saW5lcy5sZW5ndGg+MCl7aWYodGhpcy5fY29sczxlKWZvcih2YXIgcz0wO3M8dGhpcy5saW5lcy5sZW5ndGg7cysrKXRoaXMubGluZXMuZ2V0KHMpLnJlc2l6ZShlLGkpO3ZhciBvPTA7aWYodGhpcy5fcm93czx0KWZvcih2YXIgYT10aGlzLl9yb3dzO2E8dDthKyspdGhpcy5saW5lcy5sZW5ndGg8dCt0aGlzLnliYXNlJiYodGhpcy55YmFzZT4wJiZ0aGlzLmxpbmVzLmxlbmd0aDw9dGhpcy55YmFzZSt0aGlzLnkrbysxPyh0aGlzLnliYXNlLS0sbysrLHRoaXMueWRpc3A+MCYmdGhpcy55ZGlzcC0tKTp0aGlzLmxpbmVzLnB1c2gobmV3IG4uQnVmZmVyTGluZShlLGkpKSk7ZWxzZSBmb3IoYT10aGlzLl9yb3dzO2E+dDthLS0pdGhpcy5saW5lcy5sZW5ndGg+dCt0aGlzLnliYXNlJiYodGhpcy5saW5lcy5sZW5ndGg+dGhpcy55YmFzZSt0aGlzLnkrMT90aGlzLmxpbmVzLnBvcCgpOih0aGlzLnliYXNlKyssdGhpcy55ZGlzcCsrKSk7aWYocjx0aGlzLmxpbmVzLm1heExlbmd0aCl7dmFyIGM9dGhpcy5saW5lcy5sZW5ndGgtcjtjPjAmJih0aGlzLmxpbmVzLnRyaW1TdGFydChjKSx0aGlzLnliYXNlPU1hdGgubWF4KHRoaXMueWJhc2UtYywwKSx0aGlzLnlkaXNwPU1hdGgubWF4KHRoaXMueWRpc3AtYywwKSx0aGlzLnNhdmVkWT1NYXRoLm1heCh0aGlzLnNhdmVkWS1jLDApKSx0aGlzLmxpbmVzLm1heExlbmd0aD1yfXRoaXMueD1NYXRoLm1pbih0aGlzLngsZS0xKSx0aGlzLnk9TWF0aC5taW4odGhpcy55LHQtMSksbyYmKHRoaXMueSs9byksdGhpcy5zYXZlZFg9TWF0aC5taW4odGhpcy5zYXZlZFgsZS0xKSx0aGlzLnNjcm9sbFRvcD0wfWlmKHRoaXMuc2Nyb2xsQm90dG9tPXQtMSx0aGlzLl9pc1JlZmxvd0VuYWJsZWQmJih0aGlzLl9yZWZsb3coZSx0KSx0aGlzLl9jb2xzPmUpKWZvcihzPTA7czx0aGlzLmxpbmVzLmxlbmd0aDtzKyspdGhpcy5saW5lcy5nZXQocykucmVzaXplKGUsaSk7dGhpcy5fY29scz1lLHRoaXMuX3Jvd3M9dH0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiX2lzUmVmbG93RW5hYmxlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faGFzU2Nyb2xsYmFjayYmIXRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMud2luZG93c01vZGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuX3JlZmxvdz1mdW5jdGlvbihlLHQpe3RoaXMuX2NvbHMhPT1lJiYoZT50aGlzLl9jb2xzP3RoaXMuX3JlZmxvd0xhcmdlcihlLHQpOnRoaXMuX3JlZmxvd1NtYWxsZXIoZSx0KSl9LGUucHJvdG90eXBlLl9yZWZsb3dMYXJnZXI9ZnVuY3Rpb24oZSx0KXt2YXIgaT1hLnJlZmxvd0xhcmdlckdldExpbmVzVG9SZW1vdmUodGhpcy5saW5lcyx0aGlzLl9jb2xzLGUsdGhpcy55YmFzZSt0aGlzLnksdGhpcy5nZXROdWxsQ2VsbChuLkRFRkFVTFRfQVRUUl9EQVRBKSk7aWYoaS5sZW5ndGg+MCl7dmFyIHI9YS5yZWZsb3dMYXJnZXJDcmVhdGVOZXdMYXlvdXQodGhpcy5saW5lcyxpKTthLnJlZmxvd0xhcmdlckFwcGx5TmV3TGF5b3V0KHRoaXMubGluZXMsci5sYXlvdXQpLHRoaXMuX3JlZmxvd0xhcmdlckFkanVzdFZpZXdwb3J0KGUsdCxyLmNvdW50UmVtb3ZlZCl9fSxlLnByb3RvdHlwZS5fcmVmbG93TGFyZ2VyQWRqdXN0Vmlld3BvcnQ9ZnVuY3Rpb24oZSx0LGkpe2Zvcih2YXIgcj10aGlzLmdldE51bGxDZWxsKG4uREVGQVVMVF9BVFRSX0RBVEEpLHM9aTtzLS0gPjA7KTA9PT10aGlzLnliYXNlPyh0aGlzLnk+MCYmdGhpcy55LS0sdGhpcy5saW5lcy5sZW5ndGg8dCYmdGhpcy5saW5lcy5wdXNoKG5ldyBuLkJ1ZmZlckxpbmUoZSxyKSkpOih0aGlzLnlkaXNwPT09dGhpcy55YmFzZSYmdGhpcy55ZGlzcC0tLHRoaXMueWJhc2UtLSk7dGhpcy5zYXZlZFk9TWF0aC5tYXgodGhpcy5zYXZlZFktaSwwKX0sZS5wcm90b3R5cGUuX3JlZmxvd1NtYWxsZXI9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGk9dGhpcy5nZXROdWxsQ2VsbChuLkRFRkFVTFRfQVRUUl9EQVRBKSxyPVtdLHM9MCxvPXRoaXMubGluZXMubGVuZ3RoLTE7bz49MDtvLS0pe3ZhciBjPXRoaXMubGluZXMuZ2V0KG8pO2lmKCEoIWN8fCFjLmlzV3JhcHBlZCYmYy5nZXRUcmltbWVkTGVuZ3RoKCk8PWUpKXtmb3IodmFyIGw9W2NdO2MuaXNXcmFwcGVkJiZvPjA7KWM9dGhpcy5saW5lcy5nZXQoLS1vKSxsLnVuc2hpZnQoYyk7dmFyIGg9dGhpcy55YmFzZSt0aGlzLnk7aWYoIShoPj1vJiZoPG8rbC5sZW5ndGgpKXt2YXIgdT1sW2wubGVuZ3RoLTFdLmdldFRyaW1tZWRMZW5ndGgoKSxmPWEucmVmbG93U21hbGxlckdldE5ld0xpbmVMZW5ndGhzKGwsdGhpcy5fY29scyxlKSxfPWYubGVuZ3RoLWwubGVuZ3RoLGQ9dm9pZCAwO2Q9MD09PXRoaXMueWJhc2UmJnRoaXMueSE9PXRoaXMubGluZXMubGVuZ3RoLTE/TWF0aC5tYXgoMCx0aGlzLnktdGhpcy5saW5lcy5tYXhMZW5ndGgrXyk6TWF0aC5tYXgoMCx0aGlzLmxpbmVzLmxlbmd0aC10aGlzLmxpbmVzLm1heExlbmd0aCtfKTtmb3IodmFyIHA9W10sdj0wO3Y8Xzt2Kyspe3ZhciBnPXRoaXMuZ2V0QmxhbmtMaW5lKG4uREVGQVVMVF9BVFRSX0RBVEEsITApO3AucHVzaChnKX1wLmxlbmd0aD4wJiYoci5wdXNoKHtzdGFydDpvK2wubGVuZ3RoK3MsbmV3TGluZXM6cH0pLHMrPXAubGVuZ3RoKSxsLnB1c2guYXBwbHkobCxwKTt2YXIgeT1mLmxlbmd0aC0xLG09Zlt5XTswPT09bSYmKG09ZlstLXldKTtmb3IodmFyIGI9bC5sZW5ndGgtXy0xLEM9dTtiPj0wOyl7dmFyIFM9TWF0aC5taW4oQyxtKTtpZihsW3ldLmNvcHlDZWxsc0Zyb20obFtiXSxDLVMsbS1TLFMsITApLDA9PT0obS09UykmJihtPWZbLS15XSksMD09PShDLT1TKSl7Yi0tO3ZhciB3PU1hdGgubWF4KGIsMCk7Qz1hLmdldFdyYXBwZWRMaW5lVHJpbW1lZExlbmd0aChsLHcsdGhpcy5fY29scyl9fWZvcih2PTA7djxsLmxlbmd0aDt2KyspZlt2XTxlJiZsW3ZdLnNldENlbGwoZlt2XSxpKTtmb3IodmFyIEU9Xy1kO0UtLSA+MDspMD09PXRoaXMueWJhc2U/dGhpcy55PHQtMT8odGhpcy55KyssdGhpcy5saW5lcy5wb3AoKSk6KHRoaXMueWJhc2UrKyx0aGlzLnlkaXNwKyspOnRoaXMueWJhc2U8TWF0aC5taW4odGhpcy5saW5lcy5tYXhMZW5ndGgsdGhpcy5saW5lcy5sZW5ndGgrcyktdCYmKHRoaXMueWJhc2U9PT10aGlzLnlkaXNwJiZ0aGlzLnlkaXNwKyssdGhpcy55YmFzZSsrKTt0aGlzLnNhdmVkWT1NYXRoLm1pbih0aGlzLnNhdmVkWStfLHRoaXMueWJhc2UrdC0xKX19fWlmKHIubGVuZ3RoPjApe3ZhciBMPVtdLEE9W107Zm9yKHY9MDt2PHRoaXMubGluZXMubGVuZ3RoO3YrKylBLnB1c2godGhpcy5saW5lcy5nZXQodikpO3ZhciB4PXRoaXMubGluZXMubGVuZ3RoLGs9eC0xLEQ9MCxUPXJbRF07dGhpcy5saW5lcy5sZW5ndGg9TWF0aC5taW4odGhpcy5saW5lcy5tYXhMZW5ndGgsdGhpcy5saW5lcy5sZW5ndGgrcyk7dmFyIFI9MDtmb3Iodj1NYXRoLm1pbih0aGlzLmxpbmVzLm1heExlbmd0aC0xLHgrcy0xKTt2Pj0wO3YtLSlpZihUJiZULnN0YXJ0PmsrUil7Zm9yKHZhciBNPVQubmV3TGluZXMubGVuZ3RoLTE7TT49MDtNLS0pdGhpcy5saW5lcy5zZXQodi0tLFQubmV3TGluZXNbTV0pO3YrKyxMLnB1c2goe2luZGV4OmsrMSxhbW91bnQ6VC5uZXdMaW5lcy5sZW5ndGh9KSxSKz1ULm5ld0xpbmVzLmxlbmd0aCxUPXJbKytEXX1lbHNlIHRoaXMubGluZXMuc2V0KHYsQVtrLS1dKTt2YXIgTz0wO2Zvcih2PUwubGVuZ3RoLTE7dj49MDt2LS0pTFt2XS5pbmRleCs9Tyx0aGlzLmxpbmVzLm9uSW5zZXJ0RW1pdHRlci5maXJlKExbdl0pLE8rPUxbdl0uYW1vdW50O3ZhciBQPU1hdGgubWF4KDAseCtzLXRoaXMubGluZXMubWF4TGVuZ3RoKTtQPjAmJnRoaXMubGluZXMub25UcmltRW1pdHRlci5maXJlKFApfX0sZS5wcm90b3R5cGUuc3RyaW5nSW5kZXhUb0J1ZmZlckluZGV4PWZ1bmN0aW9uKGUsdCxpKXtmb3Iodm9pZCAwPT09aSYmKGk9ITEpO3Q7KXt2YXIgcj10aGlzLmxpbmVzLmdldChlKTtpZighcilyZXR1cm5bLTEsLTFdO2Zvcih2YXIgbj1pP3IuZ2V0VHJpbW1lZExlbmd0aCgpOnIubGVuZ3RoLHM9MDtzPG47KytzKWlmKHIuZ2V0KHMpW28uQ0hBUl9EQVRBX1dJRFRIX0lOREVYXSYmKHQtPXIuZ2V0KHMpW28uQ0hBUl9EQVRBX0NIQVJfSU5ERVhdLmxlbmd0aHx8MSksdDwwKXJldHVybltlLHNdO2UrK31yZXR1cm5bZSwwXX0sZS5wcm90b3R5cGUudHJhbnNsYXRlQnVmZmVyTGluZVRvU3RyaW5nPWZ1bmN0aW9uKGUsdCxpLHIpe3ZvaWQgMD09PWkmJihpPTApO3ZhciBuPXRoaXMubGluZXMuZ2V0KGUpO3JldHVybiBuP24udHJhbnNsYXRlVG9TdHJpbmcodCxpLHIpOlwiXCJ9LGUucHJvdG90eXBlLmdldFdyYXBwZWRSYW5nZUZvckxpbmU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWUsaT1lO3Q+MCYmdGhpcy5saW5lcy5nZXQodCkuaXNXcmFwcGVkOyl0LS07Zm9yKDtpKzE8dGhpcy5saW5lcy5sZW5ndGgmJnRoaXMubGluZXMuZ2V0KGkrMSkuaXNXcmFwcGVkOylpKys7cmV0dXJue2ZpcnN0OnQsbGFzdDppfX0sZS5wcm90b3R5cGUuc2V0dXBUYWJTdG9wcz1mdW5jdGlvbihlKXtmb3IobnVsbCE9ZT90aGlzLnRhYnNbZV18fChlPXRoaXMucHJldlN0b3AoZSkpOih0aGlzLnRhYnM9e30sZT0wKTtlPHRoaXMuX2NvbHM7ZSs9dGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy50YWJTdG9wV2lkdGgpdGhpcy50YWJzW2VdPSEwfSxlLnByb3RvdHlwZS5wcmV2U3RvcD1mdW5jdGlvbihlKXtmb3IobnVsbD09ZSYmKGU9dGhpcy54KTshdGhpcy50YWJzWy0tZV0mJmU+MDspO3JldHVybiBlPj10aGlzLl9jb2xzP3RoaXMuX2NvbHMtMTplPDA/MDplfSxlLnByb3RvdHlwZS5uZXh0U3RvcD1mdW5jdGlvbihlKXtmb3IobnVsbD09ZSYmKGU9dGhpcy54KTshdGhpcy50YWJzWysrZV0mJmU8dGhpcy5fY29sczspO3JldHVybiBlPj10aGlzLl9jb2xzP3RoaXMuX2NvbHMtMTplPDA/MDplfSxlLnByb3RvdHlwZS5hZGRNYXJrZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxpPW5ldyBjLk1hcmtlcihlKTtyZXR1cm4gdGhpcy5tYXJrZXJzLnB1c2goaSksaS5yZWdpc3Rlcih0aGlzLmxpbmVzLm9uVHJpbShmdW5jdGlvbihlKXtpLmxpbmUtPWUsaS5saW5lPDAmJmkuZGlzcG9zZSgpfSkpLGkucmVnaXN0ZXIodGhpcy5saW5lcy5vbkluc2VydChmdW5jdGlvbihlKXtpLmxpbmU+PWUuaW5kZXgmJihpLmxpbmUrPWUuYW1vdW50KX0pKSxpLnJlZ2lzdGVyKHRoaXMubGluZXMub25EZWxldGUoZnVuY3Rpb24oZSl7aS5saW5lPj1lLmluZGV4JiZpLmxpbmU8ZS5pbmRleCtlLmFtb3VudCYmaS5kaXNwb3NlKCksaS5saW5lPmUuaW5kZXgmJihpLmxpbmUtPWUuYW1vdW50KX0pKSxpLnJlZ2lzdGVyKGkub25EaXNwb3NlKGZ1bmN0aW9uKCl7cmV0dXJuIHQuX3JlbW92ZU1hcmtlcihpKX0pKSxpfSxlLnByb3RvdHlwZS5fcmVtb3ZlTWFya2VyPWZ1bmN0aW9uKGUpe3RoaXMubWFya2Vycy5zcGxpY2UodGhpcy5tYXJrZXJzLmluZGV4T2YoZSksMSl9LGUucHJvdG90eXBlLml0ZXJhdG9yPWZ1bmN0aW9uKGUsdCxpLHIsbil7cmV0dXJuIG5ldyB1KHRoaXMsZSx0LGkscixuKX0sZX0oKTt0LkJ1ZmZlcj1oO3ZhciB1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsaSxyLG4scyl7dm9pZCAwPT09aSYmKGk9MCksdm9pZCAwPT09ciYmKHI9ZS5saW5lcy5sZW5ndGgpLHZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PXMmJihzPTApLHRoaXMuX2J1ZmZlcj1lLHRoaXMuX3RyaW1SaWdodD10LHRoaXMuX3N0YXJ0SW5kZXg9aSx0aGlzLl9lbmRJbmRleD1yLHRoaXMuX3N0YXJ0T3ZlcnNjYW49bix0aGlzLl9lbmRPdmVyc2Nhbj1zLHRoaXMuX3N0YXJ0SW5kZXg8MCYmKHRoaXMuX3N0YXJ0SW5kZXg9MCksdGhpcy5fZW5kSW5kZXg+dGhpcy5fYnVmZmVyLmxpbmVzLmxlbmd0aCYmKHRoaXMuX2VuZEluZGV4PXRoaXMuX2J1ZmZlci5saW5lcy5sZW5ndGgpLHRoaXMuX2N1cnJlbnQ9dGhpcy5fc3RhcnRJbmRleH1yZXR1cm4gZS5wcm90b3R5cGUuaGFzTmV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJyZW50PHRoaXMuX2VuZEluZGV4fSxlLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fYnVmZmVyLmdldFdyYXBwZWRSYW5nZUZvckxpbmUodGhpcy5fY3VycmVudCk7ZS5maXJzdDx0aGlzLl9zdGFydEluZGV4LXRoaXMuX3N0YXJ0T3ZlcnNjYW4mJihlLmZpcnN0PXRoaXMuX3N0YXJ0SW5kZXgtdGhpcy5fc3RhcnRPdmVyc2NhbiksZS5sYXN0PnRoaXMuX2VuZEluZGV4K3RoaXMuX2VuZE92ZXJzY2FuJiYoZS5sYXN0PXRoaXMuX2VuZEluZGV4K3RoaXMuX2VuZE92ZXJzY2FuKSxlLmZpcnN0PU1hdGgubWF4KGUuZmlyc3QsMCksZS5sYXN0PU1hdGgubWluKGUubGFzdCx0aGlzLl9idWZmZXIubGluZXMubGVuZ3RoKTtmb3IodmFyIHQ9XCJcIixpPWUuZmlyc3Q7aTw9ZS5sYXN0OysraSl0Kz10aGlzLl9idWZmZXIudHJhbnNsYXRlQnVmZmVyTGluZVRvU3RyaW5nKGksdGhpcy5fdHJpbVJpZ2h0KTtyZXR1cm4gdGhpcy5fY3VycmVudD1lLmxhc3QrMSx7cmFuZ2U6ZSxjb250ZW50OnR9fSxlfSgpO3QuQnVmZmVyU3RyaW5nSXRlcmF0b3I9dX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWkoMSksbj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5fbWF4TGVuZ3RoPWUsdGhpcy5vbkRlbGV0ZUVtaXR0ZXI9bmV3IHIuRXZlbnRFbWl0dGVyLHRoaXMub25JbnNlcnRFbWl0dGVyPW5ldyByLkV2ZW50RW1pdHRlcix0aGlzLm9uVHJpbUVtaXR0ZXI9bmV3IHIuRXZlbnRFbWl0dGVyLHRoaXMuX2FycmF5PW5ldyBBcnJheSh0aGlzLl9tYXhMZW5ndGgpLHRoaXMuX3N0YXJ0SW5kZXg9MCx0aGlzLl9sZW5ndGg9MH1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwib25EZWxldGVcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub25EZWxldGVFbWl0dGVyLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxcIm9uSW5zZXJ0XCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9uSW5zZXJ0RW1pdHRlci5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJvblRyaW1cIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub25UcmltRW1pdHRlci5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJtYXhMZW5ndGhcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heExlbmd0aH0sc2V0OmZ1bmN0aW9uKGUpe2lmKHRoaXMuX21heExlbmd0aCE9PWUpe2Zvcih2YXIgdD1uZXcgQXJyYXkoZSksaT0wO2k8TWF0aC5taW4oZSx0aGlzLmxlbmd0aCk7aSsrKXRbaV09dGhpcy5fYXJyYXlbdGhpcy5fZ2V0Q3ljbGljSW5kZXgoaSldO3RoaXMuX2FycmF5PXQsdGhpcy5fbWF4TGVuZ3RoPWUsdGhpcy5fc3RhcnRJbmRleD0wfX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJsZW5ndGhcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xlbmd0aH0sc2V0OmZ1bmN0aW9uKGUpe2lmKGU+dGhpcy5fbGVuZ3RoKWZvcih2YXIgdD10aGlzLl9sZW5ndGg7dDxlO3QrKyl0aGlzLl9hcnJheVt0XT12b2lkIDA7dGhpcy5fbGVuZ3RoPWV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9hcnJheVt0aGlzLl9nZXRDeWNsaWNJbmRleChlKV19LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQpe3RoaXMuX2FycmF5W3RoaXMuX2dldEN5Y2xpY0luZGV4KGUpXT10fSxlLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGUpe3RoaXMuX2FycmF5W3RoaXMuX2dldEN5Y2xpY0luZGV4KHRoaXMuX2xlbmd0aCldPWUsdGhpcy5fbGVuZ3RoPT09dGhpcy5fbWF4TGVuZ3RoPyh0aGlzLl9zdGFydEluZGV4PSsrdGhpcy5fc3RhcnRJbmRleCV0aGlzLl9tYXhMZW5ndGgsdGhpcy5vblRyaW1FbWl0dGVyLmZpcmUoMSkpOnRoaXMuX2xlbmd0aCsrfSxlLnByb3RvdHlwZS5yZWN5Y2xlPWZ1bmN0aW9uKCl7aWYodGhpcy5fbGVuZ3RoIT09dGhpcy5fbWF4TGVuZ3RoKXRocm93IG5ldyBFcnJvcihcIkNhbiBvbmx5IHJlY3ljbGUgd2hlbiB0aGUgYnVmZmVyIGlzIGZ1bGxcIik7cmV0dXJuIHRoaXMuX3N0YXJ0SW5kZXg9Kyt0aGlzLl9zdGFydEluZGV4JXRoaXMuX21heExlbmd0aCx0aGlzLm9uVHJpbUVtaXR0ZXIuZmlyZSgxKSx0aGlzLl9hcnJheVt0aGlzLl9nZXRDeWNsaWNJbmRleCh0aGlzLl9sZW5ndGgtMSldfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJpc0Z1bGxcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xlbmd0aD09PXRoaXMuX21heExlbmd0aH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXJyYXlbdGhpcy5fZ2V0Q3ljbGljSW5kZXgodGhpcy5fbGVuZ3RoLS0tMSldfSxlLnByb3RvdHlwZS5zcGxpY2U9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGk9W10scj0yO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspaVtyLTJdPWFyZ3VtZW50c1tyXTtpZih0KXtmb3IodmFyIG49ZTtuPHRoaXMuX2xlbmd0aC10O24rKyl0aGlzLl9hcnJheVt0aGlzLl9nZXRDeWNsaWNJbmRleChuKV09dGhpcy5fYXJyYXlbdGhpcy5fZ2V0Q3ljbGljSW5kZXgobit0KV07dGhpcy5fbGVuZ3RoLT10fWZvcihuPXRoaXMuX2xlbmd0aC0xO24+PWU7bi0tKXRoaXMuX2FycmF5W3RoaXMuX2dldEN5Y2xpY0luZGV4KG4raS5sZW5ndGgpXT10aGlzLl9hcnJheVt0aGlzLl9nZXRDeWNsaWNJbmRleChuKV07Zm9yKG49MDtuPGkubGVuZ3RoO24rKyl0aGlzLl9hcnJheVt0aGlzLl9nZXRDeWNsaWNJbmRleChlK24pXT1pW25dO2lmKHRoaXMuX2xlbmd0aCtpLmxlbmd0aD50aGlzLl9tYXhMZW5ndGgpe3ZhciBzPXRoaXMuX2xlbmd0aCtpLmxlbmd0aC10aGlzLl9tYXhMZW5ndGg7dGhpcy5fc3RhcnRJbmRleCs9cyx0aGlzLl9sZW5ndGg9dGhpcy5fbWF4TGVuZ3RoLHRoaXMub25UcmltRW1pdHRlci5maXJlKHMpfWVsc2UgdGhpcy5fbGVuZ3RoKz1pLmxlbmd0aH0sZS5wcm90b3R5cGUudHJpbVN0YXJ0PWZ1bmN0aW9uKGUpe2U+dGhpcy5fbGVuZ3RoJiYoZT10aGlzLl9sZW5ndGgpLHRoaXMuX3N0YXJ0SW5kZXgrPWUsdGhpcy5fbGVuZ3RoLT1lLHRoaXMub25UcmltRW1pdHRlci5maXJlKGUpfSxlLnByb3RvdHlwZS5zaGlmdEVsZW1lbnRzPWZ1bmN0aW9uKGUsdCxpKXtpZighKHQ8PTApKXtpZihlPDB8fGU+PXRoaXMuX2xlbmd0aCl0aHJvdyBuZXcgRXJyb3IoXCJzdGFydCBhcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7aWYoZStpPDApdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHNoaWZ0IGVsZW1lbnRzIGluIGxpc3QgYmV5b25kIGluZGV4IDBcIik7aWYoaT4wKXtmb3IodmFyIHI9dC0xO3I+PTA7ci0tKXRoaXMuc2V0KGUrcitpLHRoaXMuZ2V0KGUrcikpO3ZhciBuPWUrdCtpLXRoaXMuX2xlbmd0aDtpZihuPjApZm9yKHRoaXMuX2xlbmd0aCs9bjt0aGlzLl9sZW5ndGg+dGhpcy5fbWF4TGVuZ3RoOyl0aGlzLl9sZW5ndGgtLSx0aGlzLl9zdGFydEluZGV4KyssdGhpcy5vblRyaW1FbWl0dGVyLmZpcmUoMSl9ZWxzZSBmb3Iocj0wO3I8dDtyKyspdGhpcy5zZXQoZStyK2ksdGhpcy5nZXQoZStyKSl9fSxlLnByb3RvdHlwZS5fZ2V0Q3ljbGljSW5kZXg9ZnVuY3Rpb24oZSl7cmV0dXJuKHRoaXMuX3N0YXJ0SW5kZXgrZSkldGhpcy5fbWF4TGVuZ3RofSxlfSgpO3QuQ2lyY3VsYXJMaXN0PW59LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjtmdW5jdGlvbiByKGUsdCxpKXtpZih0PT09ZS5sZW5ndGgtMSlyZXR1cm4gZVt0XS5nZXRUcmltbWVkTGVuZ3RoKCk7dmFyIHI9IWVbdF0uaGFzQ29udGVudChpLTEpJiYxPT09ZVt0XS5nZXRXaWR0aChpLTEpLG49Mj09PWVbdCsxXS5nZXRXaWR0aCgwKTtyZXR1cm4gciYmbj9pLTE6aX1PYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KSx0LnJlZmxvd0xhcmdlckdldExpbmVzVG9SZW1vdmU9ZnVuY3Rpb24oZSx0LGksbixzKXtmb3IodmFyIG89W10sYT0wO2E8ZS5sZW5ndGgtMTthKyspe3ZhciBjPWEsbD1lLmdldCgrK2MpO2lmKGwuaXNXcmFwcGVkKXtmb3IodmFyIGg9W2UuZ2V0KGEpXTtjPGUubGVuZ3RoJiZsLmlzV3JhcHBlZDspaC5wdXNoKGwpLGw9ZS5nZXQoKytjKTtpZihuPj1hJiZuPGMpYSs9aC5sZW5ndGgtMTtlbHNle2Zvcih2YXIgdT0wLGY9cihoLHUsdCksXz0xLGQ9MDtfPGgubGVuZ3RoOyl7dmFyIHA9cihoLF8sdCksdj1wLWQsZz1pLWYseT1NYXRoLm1pbih2LGcpO2hbdV0uY29weUNlbGxzRnJvbShoW19dLGQsZix5LCExKSwoZis9eSk9PT1pJiYodSsrLGY9MCksKGQrPXkpPT09cCYmKF8rKyxkPTApLDA9PT1mJiYwIT09dSYmMj09PWhbdS0xXS5nZXRXaWR0aChpLTEpJiYoaFt1XS5jb3B5Q2VsbHNGcm9tKGhbdS0xXSxpLTEsZisrLDEsITEpLGhbdS0xXS5zZXRDZWxsKGktMSxzKSl9aFt1XS5yZXBsYWNlQ2VsbHMoZixpLHMpO2Zvcih2YXIgbT0wLGI9aC5sZW5ndGgtMTtiPjAmJihiPnV8fDA9PT1oW2JdLmdldFRyaW1tZWRMZW5ndGgoKSk7Yi0tKW0rKzttPjAmJihvLnB1c2goYStoLmxlbmd0aC1tKSxvLnB1c2gobSkpLGErPWgubGVuZ3RoLTF9fX1yZXR1cm4gb30sdC5yZWZsb3dMYXJnZXJDcmVhdGVOZXdMYXlvdXQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIGk9W10scj0wLG49dFtyXSxzPTAsbz0wO288ZS5sZW5ndGg7bysrKWlmKG49PT1vKXt2YXIgYT10Wysrcl07ZS5vbkRlbGV0ZUVtaXR0ZXIuZmlyZSh7aW5kZXg6by1zLGFtb3VudDphfSksbys9YS0xLHMrPWEsbj10Wysrcl19ZWxzZSBpLnB1c2gobyk7cmV0dXJue2xheW91dDppLGNvdW50UmVtb3ZlZDpzfX0sdC5yZWZsb3dMYXJnZXJBcHBseU5ld0xheW91dD1mdW5jdGlvbihlLHQpe2Zvcih2YXIgaT1bXSxyPTA7cjx0Lmxlbmd0aDtyKyspaS5wdXNoKGUuZ2V0KHRbcl0pKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKWUuc2V0KHIsaVtyXSk7ZS5sZW5ndGg9dC5sZW5ndGh9LHQucmVmbG93U21hbGxlckdldE5ld0xpbmVMZW5ndGhzPWZ1bmN0aW9uKGUsdCxpKXtmb3IodmFyIG49W10scz1lLm1hcChmdW5jdGlvbihpLG4pe3JldHVybiByKGUsbix0KX0pLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlK3R9KSxvPTAsYT0wLGM9MDtjPHM7KXtpZihzLWM8aSl7bi5wdXNoKHMtYyk7YnJlYWt9bys9aTt2YXIgbD1yKGUsYSx0KTtvPmwmJihvLT1sLGErKyk7dmFyIGg9Mj09PWVbYV0uZ2V0V2lkdGgoby0xKTtoJiZvLS07dmFyIHU9aD9pLTE6aTtuLnB1c2godSksYys9dX1yZXR1cm4gbn0sdC5nZXRXcmFwcGVkTGluZVRyaW1tZWRMZW5ndGg9cn0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO3ZhciByLG49dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShpKSYmKGVbaV09dFtpXSl9KShlLHQpfSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoKXt0aGlzLmNvbnN0cnVjdG9yPWV9cihlLHQpLGUucHJvdG90eXBlPW51bGw9PT10P09iamVjdC5jcmVhdGUodCk6KGkucHJvdG90eXBlPXQucHJvdG90eXBlLG5ldyBpKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBzPWkoMSksbz1mdW5jdGlvbihlKXtmdW5jdGlvbiB0KGkpe3ZhciByPWUuY2FsbCh0aGlzKXx8dGhpcztyZXR1cm4gci5saW5lPWksci5faWQ9dC5fbmV4dElkKyssci5pc0Rpc3Bvc2VkPSExLHIuX29uRGlzcG9zZT1uZXcgcy5FdmVudEVtaXR0ZXIscn1yZXR1cm4gbih0LGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcImlkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pZH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJvbkRpc3Bvc2VcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uRGlzcG9zZS5ldmVudH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSx0LnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5pc0Rpc3Bvc2VkfHwodGhpcy5pc0Rpc3Bvc2VkPSEwLHRoaXMuX29uRGlzcG9zZS5maXJlKCkpfSx0Ll9uZXh0SWQ9MSx0fShpKDIpLkRpc3Bvc2FibGUpO3QuTWFya2VyPW99LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fZGVjb3JhdGV8fGZ1bmN0aW9uKGUsdCxpLHIpe3ZhciBuLHM9YXJndW1lbnRzLmxlbmd0aCxvPXM8Mz90Om51bGw9PT1yP3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpOnI7aWYoXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpbz1SZWZsZWN0LmRlY29yYXRlKGUsdCxpLHIpO2Vsc2UgZm9yKHZhciBhPWUubGVuZ3RoLTE7YT49MDthLS0pKG49ZVthXSkmJihvPShzPDM/bihvKTpzPjM/bih0LGksbyk6bih0LGkpKXx8byk7cmV0dXJuIHM+MyYmbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxvKSxvfSxuPXRoaXMmJnRoaXMuX19wYXJhbXx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oaSxyKXt0KGkscixlKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBzPWkoNSksbz1pKDI4KSxhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe3RoaXMuX3JlbmRlclNlcnZpY2U9ZSx0aGlzLl9jaGFyU2l6ZVNlcnZpY2U9dH1yZXR1cm4gZS5wcm90b3R5cGUuZ2V0Q29vcmRzPWZ1bmN0aW9uKGUsdCxpLHIsbil7cmV0dXJuIG8uZ2V0Q29vcmRzKGUsdCxpLHIsdGhpcy5fY2hhclNpemVTZXJ2aWNlLmhhc1ZhbGlkU2l6ZSx0aGlzLl9yZW5kZXJTZXJ2aWNlLmRpbWVuc2lvbnMuYWN0dWFsQ2VsbFdpZHRoLHRoaXMuX3JlbmRlclNlcnZpY2UuZGltZW5zaW9ucy5hY3R1YWxDZWxsSGVpZ2h0LG4pfSxlLnByb3RvdHlwZS5nZXRSYXdCeXRlQ29vcmRzPWZ1bmN0aW9uKGUsdCxpLHIpe3ZhciBuPXRoaXMuZ2V0Q29vcmRzKGUsdCxpLHIpO3JldHVybiBvLmdldFJhd0J5dGVDb29yZHMobil9LGU9cihbbigwLHMuSVJlbmRlclNlcnZpY2UpLG4oMSxzLklDaGFyU2l6ZVNlcnZpY2UpXSxlKX0oKTt0Lk1vdXNlU2VydmljZT1hfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2RlY29yYXRlfHxmdW5jdGlvbihlLHQsaSxyKXt2YXIgbixzPWFyZ3VtZW50cy5sZW5ndGgsbz1zPDM/dDpudWxsPT09cj9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxpKTpyO2lmKFwib2JqZWN0XCI9PXR5cGVvZiBSZWZsZWN0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKW89UmVmbGVjdC5kZWNvcmF0ZShlLHQsaSxyKTtlbHNlIGZvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTA7YS0tKShuPWVbYV0pJiYobz0oczwzP24obyk6cz4zP24odCxpLG8pOm4odCxpKSl8fG8pO3JldHVybiBzPjMmJm8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGksbyksb30sbj10aGlzJiZ0aGlzLl9fcGFyYW18fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGkscil7dChpLHIsZSl9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcz1pKDApLG89aSgxKSxhPWkoMzEpLGM9T2JqZWN0LmZyZWV6ZSh7YXBwbGljYXRpb25DdXJzb3JLZXlzOiExfSksbD1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0LGkscil7dGhpcy5fc2Nyb2xsVG9Cb3R0b209ZSx0aGlzLl9idWZmZXJTZXJ2aWNlPXQsdGhpcy5fbG9nU2VydmljZT1pLHRoaXMuX29wdGlvbnNTZXJ2aWNlPXIsdGhpcy5fb25EYXRhPW5ldyBvLkV2ZW50RW1pdHRlcix0aGlzLl9vblVzZXJJbnB1dD1uZXcgby5FdmVudEVtaXR0ZXIsdGhpcy5kZWNQcml2YXRlTW9kZXM9YS5jbG9uZShjKX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwib25EYXRhXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbkRhdGEuZXZlbnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwib25Vc2VySW5wdXRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29uVXNlcklucHV0LmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5kZWNQcml2YXRlTW9kZXM9YS5jbG9uZShjKX0sZS5wcm90b3R5cGUudHJpZ2dlckRhdGFFdmVudD1mdW5jdGlvbihlLHQpe2lmKHZvaWQgMD09PXQmJih0PSExKSwhdGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucy5kaXNhYmxlU3RkaW4pe3ZhciBpPXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyO2kueWJhc2UhPT1pLnlkaXNwJiZ0aGlzLl9zY3JvbGxUb0JvdHRvbSgpLHQmJnRoaXMuX29uVXNlcklucHV0LmZpcmUoKSx0aGlzLl9sb2dTZXJ2aWNlLmRlYnVnKFwic2VuZGluZyBkYXRhXCIsZSksdGhpcy5fb25EYXRhLmZpcmUoZSl9fSxlPXIoW24oMSxzLklCdWZmZXJTZXJ2aWNlKSxuKDIscy5JTG9nU2VydmljZSksbigzLHMuSU9wdGlvbnNTZXJ2aWNlKV0sZSl9KCk7dC5Db3JlU2VydmljZT1sfSxmdW5jdGlvbihlLHQsaSl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHI9dGhpcyYmdGhpcy5fX2RlY29yYXRlfHxmdW5jdGlvbihlLHQsaSxyKXt2YXIgbixzPWFyZ3VtZW50cy5sZW5ndGgsbz1zPDM/dDpudWxsPT09cj9yPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxpKTpyO2lmKFwib2JqZWN0XCI9PXR5cGVvZiBSZWZsZWN0JiZcImZ1bmN0aW9uXCI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKW89UmVmbGVjdC5kZWNvcmF0ZShlLHQsaSxyKTtlbHNlIGZvcih2YXIgYT1lLmxlbmd0aC0xO2E+PTA7YS0tKShuPWVbYV0pJiYobz0oczwzP24obyk6cz4zP24odCxpLG8pOm4odCxpKSl8fG8pO3JldHVybiBzPjMmJm8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGksbyksb30sbj10aGlzJiZ0aGlzLl9fcGFyYW18fGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGkscil7dChpLHIsZSl9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6ITB9KTt2YXIgcyxvPWkoMCk7IWZ1bmN0aW9uKGUpe2VbZS5ERUJVRz0wXT1cIkRFQlVHXCIsZVtlLklORk89MV09XCJJTkZPXCIsZVtlLldBUk49Ml09XCJXQVJOXCIsZVtlLkVSUk9SPTNdPVwiRVJST1JcIixlW2UuT0ZGPTRdPVwiT0ZGXCJ9KHM9dC5Mb2dMZXZlbHx8KHQuTG9nTGV2ZWw9e30pKTt2YXIgYT17ZGVidWc6cy5ERUJVRyxpbmZvOnMuSU5GTyx3YXJuOnMuV0FSTixlcnJvcjpzLkVSUk9SLG9mZjpzLk9GRn0sYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dmFyIHQ9dGhpczt0aGlzLl9vcHRpb25zU2VydmljZT1lLHRoaXMuX3VwZGF0ZUxvZ0xldmVsKCksdGhpcy5fb3B0aW9uc1NlcnZpY2Uub25PcHRpb25DaGFuZ2UoZnVuY3Rpb24oZSl7XCJsb2dMZXZlbFwiPT09ZSYmdC5fdXBkYXRlTG9nTGV2ZWwoKX0pfXJldHVybiBlLnByb3RvdHlwZS5fdXBkYXRlTG9nTGV2ZWw9ZnVuY3Rpb24oKXt0aGlzLl9sb2dMZXZlbD1hW3RoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMubG9nTGV2ZWxdfSxlLnByb3RvdHlwZS5kZWJ1Zz1mdW5jdGlvbihlKXtmb3IodmFyIHQsaT1bXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKylpW3ItMV09YXJndW1lbnRzW3JdO3RoaXMuX2xvZ0xldmVsPD1zLkRFQlVHJiYodD1jb25zb2xlLmxvZykuY2FsbC5hcHBseSh0LFtjb25zb2xlLFwieHRlcm0uanM6IFwiK2VdLmNvbmNhdChpKSl9LGUucHJvdG90eXBlLmluZm89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGk9W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspaVtyLTFdPWFyZ3VtZW50c1tyXTt0aGlzLl9sb2dMZXZlbDw9cy5JTkZPJiYodD1jb25zb2xlLmluZm8pLmNhbGwuYXBwbHkodCxbY29uc29sZSxcInh0ZXJtLmpzOiBcIitlXS5jb25jYXQoaSkpfSxlLnByb3RvdHlwZS53YXJuPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxpPVtdLHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWlbci0xXT1hcmd1bWVudHNbcl07dGhpcy5fbG9nTGV2ZWw8PXMuV0FSTiYmKHQ9Y29uc29sZS53YXJuKS5jYWxsLmFwcGx5KHQsW2NvbnNvbGUsXCJ4dGVybS5qczogXCIrZV0uY29uY2F0KGkpKX0sZS5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGk9W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspaVtyLTFdPWFyZ3VtZW50c1tyXTt0aGlzLl9sb2dMZXZlbDw9cy5FUlJPUiYmKHQ9Y29uc29sZS5lcnJvcikuY2FsbC5hcHBseSh0LFtjb25zb2xlLFwieHRlcm0uanM6IFwiK2VdLmNvbmNhdChpKSl9LGU9cihbbigwLG8uSU9wdGlvbnNTZXJ2aWNlKV0sZSl9KCk7dC5Mb2dTZXJ2aWNlPWN9LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fZGVjb3JhdGV8fGZ1bmN0aW9uKGUsdCxpLHIpe3ZhciBuLHM9YXJndW1lbnRzLmxlbmd0aCxvPXM8Mz90Om51bGw9PT1yP3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpOnI7aWYoXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpbz1SZWZsZWN0LmRlY29yYXRlKGUsdCxpLHIpO2Vsc2UgZm9yKHZhciBhPWUubGVuZ3RoLTE7YT49MDthLS0pKG49ZVthXSkmJihvPShzPDM/bihvKTpzPjM/bih0LGksbyk6bih0LGkpKXx8byk7cmV0dXJuIHM+MyYmbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxvKSxvfSxuPXRoaXMmJnRoaXMuX19wYXJhbXx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oaSxyKXt0KGkscixlKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBzPWkoMCksbz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dGhpcy5fYnVmZmVyU2VydmljZT1lLHRoaXMuY2xlYXJSYW5nZSgpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJzdGFydFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RhcnR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLFwiZW5kXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmR9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuY2xlYXJSYW5nZT1mdW5jdGlvbigpe3RoaXMuX3N0YXJ0PXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnksdGhpcy5fZW5kPXRoaXMuX2J1ZmZlclNlcnZpY2UuYnVmZmVyLnl9LGUucHJvdG90eXBlLm1hcmtEaXJ0eT1mdW5jdGlvbihlKXtlPHRoaXMuX3N0YXJ0P3RoaXMuX3N0YXJ0PWU6ZT50aGlzLl9lbmQmJih0aGlzLl9lbmQ9ZSl9LGUucHJvdG90eXBlLm1hcmtSYW5nZURpcnR5PWZ1bmN0aW9uKGUsdCl7aWYoZT50KXt2YXIgaT1lO2U9dCx0PWl9ZTx0aGlzLl9zdGFydCYmKHRoaXMuX3N0YXJ0PWUpLHQ+dGhpcy5fZW5kJiYodGhpcy5fZW5kPXQpfSxlLnByb3RvdHlwZS5tYXJrQWxsRGlydHk9ZnVuY3Rpb24oKXt0aGlzLm1hcmtSYW5nZURpcnR5KDAsdGhpcy5fYnVmZmVyU2VydmljZS5yb3dzLTEpfSxlPXIoW24oMCxzLklCdWZmZXJTZXJ2aWNlKV0sZSl9KCk7dC5EaXJ0eVJvd1NlcnZpY2U9b30sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWkoMCksbj1pKDEzKSxzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTt0aGlzLl9lbnRyaWVzPW5ldyBNYXA7Zm9yKHZhciBpPTAscj1lO2k8ci5sZW5ndGg7aSsrKXt2YXIgbj1yW2ldLHM9blswXSxvPW5bMV07dGhpcy5zZXQocyxvKX19cmV0dXJuIGUucHJvdG90eXBlLnNldD1mdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuX2VudHJpZXMuZ2V0KGUpO3JldHVybiB0aGlzLl9lbnRyaWVzLnNldChlLHQpLGl9LGUucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oZSl7dGhpcy5fZW50cmllcy5mb3JFYWNoKGZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUoaSx0KX0pfSxlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2VudHJpZXMuaGFzKGUpfSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2VudHJpZXMuZ2V0KGUpfSxlfSgpO3QuU2VydmljZUNvbGxlY3Rpb249czt2YXIgbz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLl9zZXJ2aWNlcz1uZXcgcyx0aGlzLl9zZXJ2aWNlcy5zZXQoci5JSW5zdGFudGlhdGlvblNlcnZpY2UsdGhpcyl9cmV0dXJuIGUucHJvdG90eXBlLnNldFNlcnZpY2U9ZnVuY3Rpb24oZSx0KXt0aGlzLl9zZXJ2aWNlcy5zZXQoZSx0KX0sZS5wcm90b3R5cGUuY3JlYXRlSW5zdGFuY2U9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLGk9MTtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXRbaS0xXT1hcmd1bWVudHNbaV07Zm9yKHZhciByPW4uZ2V0U2VydmljZURlcGVuZGVuY2llcyhlKS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaW5kZXgtdC5pbmRleH0pLHM9W10sbz0wLGE9cjtvPGEubGVuZ3RoO28rKyl7dmFyIGM9YVtvXSxsPXRoaXMuX3NlcnZpY2VzLmdldChjLmlkKTtpZighbCl0aHJvdyBuZXcgRXJyb3IoXCJbY3JlYXRlSW5zdGFuY2VdIFwiK2UubmFtZStcIiBkZXBlbmRzIG9uIFVOS05PV04gc2VydmljZSBcIitjLmlkK1wiLlwiKTtzLnB1c2gobCl9dmFyIGg9ci5sZW5ndGg+MD9yWzBdLmluZGV4OnQubGVuZ3RoO2lmKHQubGVuZ3RoIT09aCl0aHJvdyBuZXcgRXJyb3IoXCJbY3JlYXRlSW5zdGFuY2VdIEZpcnN0IHNlcnZpY2UgZGVwZW5kZW5jeSBvZiBcIitlLm5hbWUrXCIgYXQgcG9zaXRpb24gXCIrKGgrMSkrXCIgY29uZmxpY3RzIHdpdGggXCIrdC5sZW5ndGgrXCIgc3RhdGljIGFyZ3VtZW50c1wiKTtyZXR1cm4gbmV3KGUuYmluZC5hcHBseShlLFt2b2lkIDBdLmNvbmNhdCh0LmNvbmNhdChzKSkpKX0sZX0oKTt0Lkluc3RhbnRpYXRpb25TZXJ2aWNlPW99LGZ1bmN0aW9uKGUsdCxpKXtcInVzZSBzdHJpY3RcIjt2YXIgcj10aGlzJiZ0aGlzLl9fZGVjb3JhdGV8fGZ1bmN0aW9uKGUsdCxpLHIpe3ZhciBuLHM9YXJndW1lbnRzLmxlbmd0aCxvPXM8Mz90Om51bGw9PT1yP3I9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpOnI7aWYoXCJvYmplY3RcIj09dHlwZW9mIFJlZmxlY3QmJlwiZnVuY3Rpb25cIj09dHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUpbz1SZWZsZWN0LmRlY29yYXRlKGUsdCxpLHIpO2Vsc2UgZm9yKHZhciBhPWUubGVuZ3RoLTE7YT49MDthLS0pKG49ZVthXSkmJihvPShzPDM/bihvKTpzPjM/bih0LGksbyk6bih0LGkpKXx8byk7cmV0dXJuIHM+MyYmbyYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxvKSxvfSxuPXRoaXMmJnRoaXMuX19wYXJhbXx8ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oaSxyKXt0KGkscixlKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciBzPWkoMCksbz1pKDEpLGE9e05PTkU6e2V2ZW50czowLHJlc3RyaWN0OmZ1bmN0aW9uKCl7cmV0dXJuITF9fSxYMTA6e2V2ZW50czoxLHJlc3RyaWN0OmZ1bmN0aW9uKGUpe3JldHVybiA0IT09ZS5idXR0b24mJjE9PT1lLmFjdGlvbiYmKGUuY3RybD0hMSxlLmFsdD0hMSxlLnNoaWZ0PSExLCEwKX19LFZUMjAwOntldmVudHM6MTkscmVzdHJpY3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIDMyIT09ZS5hY3Rpb259fSxEUkFHOntldmVudHM6MjMscmVzdHJpY3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIDMyIT09ZS5hY3Rpb258fDMhPT1lLmJ1dHRvbn19LEFOWTp7ZXZlbnRzOjMxLHJlc3RyaWN0OmZ1bmN0aW9uKGUpe3JldHVybiEwfX19O2Z1bmN0aW9uIGMoZSx0KXt2YXIgaT0oZS5jdHJsPzE2OjApfChlLnNoaWZ0PzQ6MCl8KGUuYWx0Pzg6MCk7cmV0dXJuIDQ9PT1lLmJ1dHRvbj8oaXw9NjQsaXw9ZS5hY3Rpb24pOihpfD0zJmUuYnV0dG9uLDQmZS5idXR0b24mJihpfD02NCksOCZlLmJ1dHRvbiYmKGl8PTEyOCksMzI9PT1lLmFjdGlvbj9pfD0zMjowIT09ZS5hY3Rpb258fHR8fChpfD0zKSksaX12YXIgbD1TdHJpbmcuZnJvbUNoYXJDb2RlLGg9e0RFRkFVTFQ6ZnVuY3Rpb24oZSl7dmFyIHQ9W2MoZSwhMSkrMzIsZS5jb2wrMzIsZS5yb3crMzJdO3JldHVybiB0PXQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlPjEyNz8xMjc6ZX0pLFwiXHUwMDFiW01cIitsKHRbMF0pK2wodFsxXSkrbCh0WzJdKX0sVVRGODpmdW5jdGlvbihlKXt2YXIgdD1bYyhlLCExKSszMixlLmNvbCszMixlLnJvdyszMl07cmV0dXJuIHQ9dC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGU+MjA0Nz8wOmV9KSxcIlx1MDAxYltNXCIrbCh0WzBdKStsKHRbMV0pK2wodFsyXSl9LFNHUjpmdW5jdGlvbihlKXt2YXIgdD0wPT09ZS5hY3Rpb24mJjQhPT1lLmJ1dHRvbj9cIm1cIjpcIk1cIjtyZXR1cm5cIlx1MDAxYls8XCIrYyhlLCEwKStcIjtcIitlLmNvbCtcIjtcIitlLnJvdyt0fSxVUlhWVDpmdW5jdGlvbihlKXtyZXR1cm5cIlx1MDAxYltcIisoYyhlLCExKSszMikrXCI7XCIrZS5jb2wrXCI7XCIrZS5yb3crXCJNXCJ9fSx1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQpe3ZhciBpPXRoaXM7dGhpcy5fYnVmZmVyU2VydmljZT1lLHRoaXMuX2NvcmVTZXJ2aWNlPXQsdGhpcy5fcHJvdG9jb2xzPXt9LHRoaXMuX2VuY29kaW5ncz17fSx0aGlzLl9hY3RpdmVQcm90b2NvbD1cIlwiLHRoaXMuX2FjdGl2ZUVuY29kaW5nPVwiXCIsdGhpcy5fb25Qcm90b2NvbENoYW5nZT1uZXcgby5FdmVudEVtaXR0ZXIsdGhpcy5fbGFzdEV2ZW50PW51bGwsT2JqZWN0LmtleXMoYSkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaS5hZGRQcm90b2NvbChlLGFbZV0pfSksT2JqZWN0LmtleXMoaCkuZm9yRWFjaChmdW5jdGlvbihlKXtyZXR1cm4gaS5hZGRFbmNvZGluZyhlLGhbZV0pfSksdGhpcy5yZXNldCgpfXJldHVybiBlLnByb3RvdHlwZS5hZGRQcm90b2NvbD1mdW5jdGlvbihlLHQpe3RoaXMuX3Byb3RvY29sc1tlXT10fSxlLnByb3RvdHlwZS5hZGRFbmNvZGluZz1mdW5jdGlvbihlLHQpe3RoaXMuX2VuY29kaW5nc1tlXT10fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJhY3RpdmVQcm90b2NvbFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWN0aXZlUHJvdG9jb2x9LHNldDpmdW5jdGlvbihlKXtpZighdGhpcy5fcHJvdG9jb2xzW2VdKXRocm93IG5ldyBFcnJvcigndW5rbm93biBwcm90b2NvbCBcIicrZSsnXCInKTt0aGlzLl9hY3RpdmVQcm90b2NvbD1lLHRoaXMuX29uUHJvdG9jb2xDaGFuZ2UuZmlyZSh0aGlzLl9wcm90b2NvbHNbZV0uZXZlbnRzKX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJhY3RpdmVFbmNvZGluZ1wiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWN0aXZlRW5jb2Rpbmd9LHNldDpmdW5jdGlvbihlKXtpZighdGhpcy5fZW5jb2RpbmdzW2VdKXRocm93IG5ldyBFcnJvcigndW5rbm93biBlbmNvZGluZyBcIicrZSsnXCInKTt0aGlzLl9hY3RpdmVFbmNvZGluZz1lfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVQcm90b2NvbD1cIk5PTkVcIix0aGlzLmFjdGl2ZUVuY29kaW5nPVwiREVGQVVMVFwiLHRoaXMuX2xhc3RFdmVudD1udWxsfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsXCJvblByb3RvY29sQ2hhbmdlXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblByb3RvY29sQ2hhbmdlLmV2ZW50fSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLnRyaWdnZXJNb3VzZUV2ZW50PWZ1bmN0aW9uKGUpe2lmKGUuY29sPDB8fGUuY29sPj10aGlzLl9idWZmZXJTZXJ2aWNlLmNvbHN8fGUucm93PDB8fGUucm93Pj10aGlzLl9idWZmZXJTZXJ2aWNlLnJvd3MpcmV0dXJuITE7aWYoND09PWUuYnV0dG9uJiYzMj09PWUuYWN0aW9uKXJldHVybiExO2lmKDM9PT1lLmJ1dHRvbiYmMzIhPT1lLmFjdGlvbilyZXR1cm4hMTtpZig0IT09ZS5idXR0b24mJigyPT09ZS5hY3Rpb258fDM9PT1lLmFjdGlvbikpcmV0dXJuITE7aWYoZS5jb2wrKyxlLnJvdysrLDMyPT09ZS5hY3Rpb24mJnRoaXMuX2xhc3RFdmVudCYmdGhpcy5fY29tcGFyZUV2ZW50cyh0aGlzLl9sYXN0RXZlbnQsZSkpcmV0dXJuITE7aWYoIXRoaXMuX3Byb3RvY29sc1t0aGlzLl9hY3RpdmVQcm90b2NvbF0ucmVzdHJpY3QoZSkpcmV0dXJuITE7dmFyIHQ9dGhpcy5fZW5jb2RpbmdzW3RoaXMuX2FjdGl2ZUVuY29kaW5nXShlKTtyZXR1cm4gdGhpcy5fY29yZVNlcnZpY2UudHJpZ2dlckRhdGFFdmVudCh0LCEwKSx0aGlzLl9sYXN0RXZlbnQ9ZSwhMH0sZS5wcm90b3R5cGUuZXhwbGFpbkV2ZW50cz1mdW5jdGlvbihlKXtyZXR1cm57RE9XTjohISgxJmUpLFVQOiEhKDImZSksRFJBRzohISg0JmUpLE1PVkU6ISEoOCZlKSxXSEVFTDohISgxNiZlKX19LGUucHJvdG90eXBlLl9jb21wYXJlRXZlbnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuY29sPT09dC5jb2wmJihlLnJvdz09PXQucm93JiYoZS5idXR0b249PT10LmJ1dHRvbiYmKGUuYWN0aW9uPT09dC5hY3Rpb24mJihlLmN0cmw9PT10LmN0cmwmJihlLmFsdD09PXQuYWx0JiZlLnNoaWZ0PT09dC5zaGlmdCkpKSkpfSxlPXIoW24oMCxzLklCdWZmZXJTZXJ2aWNlKSxuKDEscy5JQ29yZVNlcnZpY2UpXSxlKX0oKTt0LkNvcmVNb3VzZVNlcnZpY2U9dX0sZnVuY3Rpb24oZSx0LGkpe1widXNlIHN0cmljdFwiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTohMH0pO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuX2FkZG9ucz1bXX1yZXR1cm4gZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLl9hZGRvbnMubGVuZ3RoLTE7ZT49MDtlLS0pdGhpcy5fYWRkb25zW2VdLmluc3RhbmNlLmRpc3Bvc2UoKX0sZS5wcm90b3R5cGUubG9hZEFkZG9uPWZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcyxyPXtpbnN0YW5jZTp0LGRpc3Bvc2U6dC5kaXNwb3NlLGlzRGlzcG9zZWQ6ITF9O3RoaXMuX2FkZG9ucy5wdXNoKHIpLHQuZGlzcG9zZT1mdW5jdGlvbigpe3JldHVybiBpLl93cmFwcGVkQWRkb25EaXNwb3NlKHIpfSx0LmFjdGl2YXRlKGUpfSxlLnByb3RvdHlwZS5fd3JhcHBlZEFkZG9uRGlzcG9zZT1mdW5jdGlvbihlKXtpZighZS5pc0Rpc3Bvc2VkKXtmb3IodmFyIHQ9LTEsaT0wO2k8dGhpcy5fYWRkb25zLmxlbmd0aDtpKyspaWYodGhpcy5fYWRkb25zW2ldPT09ZSl7dD1pO2JyZWFrfWlmKC0xPT09dCl0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZGlzcG9zZSBhbiBhZGRvbiB0aGF0IGhhcyBub3QgYmVlbiBsb2FkZWRcIik7ZS5pc0Rpc3Bvc2VkPSEwLGUuZGlzcG9zZS5hcHBseShlLmluc3RhbmNlKSx0aGlzLl9hZGRvbnMuc3BsaWNlKHQsMSl9fSxlfSgpO3QuQWRkb25NYW5hZ2VyPXJ9XSl9KTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXh0ZXJtLmpzLm1hcCIsIid1c2Ugc3RyaWN0JztcblxudmFyIGFscGhhYmV0ID0gJzAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6LV8nLnNwbGl0KCcnKVxuICAsIGxlbmd0aCA9IDY0XG4gICwgbWFwID0ge31cbiAgLCBzZWVkID0gMFxuICAsIGkgPSAwXG4gICwgcHJldjtcblxuLyoqXG4gKiBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBzcGVjaWZpZWQgbnVtYmVyLlxuICpcbiAqIEBwYXJhbSB7TnVtYmVyfSBudW0gVGhlIG51bWJlciB0byBjb252ZXJ0LlxuICogQHJldHVybnMge1N0cmluZ30gVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgbnVtYmVyLlxuICogQGFwaSBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gZW5jb2RlKG51bSkge1xuICB2YXIgZW5jb2RlZCA9ICcnO1xuXG4gIGRvIHtcbiAgICBlbmNvZGVkID0gYWxwaGFiZXRbbnVtICUgbGVuZ3RoXSArIGVuY29kZWQ7XG4gICAgbnVtID0gTWF0aC5mbG9vcihudW0gLyBsZW5ndGgpO1xuICB9IHdoaWxlIChudW0gPiAwKTtcblxuICByZXR1cm4gZW5jb2RlZDtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGludGVnZXIgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoZSBnaXZlbiBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0ciBUaGUgc3RyaW5nIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7TnVtYmVyfSBUaGUgaW50ZWdlciB2YWx1ZSByZXByZXNlbnRlZCBieSB0aGUgc3RyaW5nLlxuICogQGFwaSBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gZGVjb2RlKHN0cikge1xuICB2YXIgZGVjb2RlZCA9IDA7XG5cbiAgZm9yIChpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgIGRlY29kZWQgPSBkZWNvZGVkICogbGVuZ3RoICsgbWFwW3N0ci5jaGFyQXQoaSldO1xuICB9XG5cbiAgcmV0dXJuIGRlY29kZWQ7XG59XG5cbi8qKlxuICogWWVhc3Q6IEEgdGlueSBncm93aW5nIGlkIGdlbmVyYXRvci5cbiAqXG4gKiBAcmV0dXJucyB7U3RyaW5nfSBBIHVuaXF1ZSBpZC5cbiAqIEBhcGkgcHVibGljXG4gKi9cbmZ1bmN0aW9uIHllYXN0KCkge1xuICB2YXIgbm93ID0gZW5jb2RlKCtuZXcgRGF0ZSgpKTtcblxuICBpZiAobm93ICE9PSBwcmV2KSByZXR1cm4gc2VlZCA9IDAsIHByZXYgPSBub3c7XG4gIHJldHVybiBub3cgKycuJysgZW5jb2RlKHNlZWQrKyk7XG59XG5cbi8vXG4vLyBNYXAgZWFjaCBjaGFyYWN0ZXIgdG8gaXRzIGluZGV4LlxuLy9cbmZvciAoOyBpIDwgbGVuZ3RoOyBpKyspIG1hcFthbHBoYWJldFtpXV0gPSBpO1xuXG4vL1xuLy8gRXhwb3NlIHRoZSBgeWVhc3RgLCBgZW5jb2RlYCBhbmQgYGRlY29kZWAgZnVuY3Rpb25zLlxuLy9cbnllYXN0LmVuY29kZSA9IGVuY29kZTtcbnllYXN0LmRlY29kZSA9IGRlY29kZTtcbm1vZHVsZS5leHBvcnRzID0geWVhc3Q7XG4iLCIvKiAoaWdub3JlZCkgKi8iXSwic291cmNlUm9vdCI6IiJ9 |