Commit 3d5c23f2 authored by Ale's avatar Ale

feat: Minor updates

- Change zoom settings
- Improve responsive behavior
- Add social menu
- Change labels
parent def70ab5
......@@ -202,7 +202,7 @@ let item_selected = false;
let categories = {}; // Leaflet map defaults
const MAP_DEFAULTS = {
view: [[37.3808, -5.9700], 12],
view: [[37.3808, -5.9700], 13.3],
providers: {
osm: {
tiles: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
......@@ -334,7 +334,9 @@ const init_map = function (items) {
map = leaflet__WEBPACK_IMPORTED_MODULE_0___default.a.map('map', {
scrollWheelZoom: !is_mobile,
// disable wheelzoom only in small devices
zoomControl: false
zoomControl: false,
minZoom: 12,
maxZoom: 16
}).setView(...MAP_DEFAULTS.view); // Set up provider from defaults
const provider = MAP_DEFAULTS.providers[MAP_DEFAULTS.default_provider]; // Set up tiles
......@@ -627,4 +629,4 @@ window.onload = () => {
/***/ })
/******/ });
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LmpzIl0sIm5hbWVzIjpbImRheWpzIiwicmVxdWlyZSIsInJlbGF0aXZlVGltZSIsImRheWpzX2VzIiwiZXh0ZW5kIiwibG9jYWxlIiwiaXNfbW9iaWxlIiwid2luZG93IiwibWF0Y2hNZWRpYSIsIm1hdGNoZXMiLCJsb3JlbSIsIkxvcmVtSXBzdW0iLCJzZW50ZW5jZXNQZXJQYXJhZ3JhcGgiLCJtYXgiLCJtaW4iLCJ3b3Jkc1BlclNlbnRlbmNlIiwibWFwIiwiaXRlbXNfbG9va3VwIiwiaXRlbV9zZWxlY3RlZCIsImNhdGVnb3JpZXMiLCJNQVBfREVGQVVMVFMiLCJ2aWV3IiwicHJvdmlkZXJzIiwib3NtIiwidGlsZXMiLCJhdHRyaWJ1dGlvbiIsImRlZmF1bHRfcHJvdmlkZXIiLCJyYW5kb21fbGF0bG9uIiwicG9pbnQiLCJkaXN0YW5jZV9mYWN0b3JfbGF0IiwiZGlzdGFuY2VfZmFjdG9yX2xvbiIsIk1hdGgiLCJyYW5kb20iLCJyaW50IiwiZmxvb3IiLCJyYW5kb21fZGF0ZSIsInN0YXJ0IiwiZW5kIiwicyIsIkRhdGUiLCJnZXRUaW1lIiwiZSIsInJhbmRvbV9jYXRzIiwiY2F0ZWdvcmllc19udW1iZXIiLCJsZXR0ZXJzIiwiaSIsImNhdCIsImNoYXJBdCIsInRlcm1zIiwiaiIsInB1c2giLCJzZWxlY3RfaXRlbSIsImlkIiwicG9zdHMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicG9zdCIsImNscyIsImNsYXNzTGlzdCIsImFkZCIsImNvbnRhaW5zIiwicmVtb3ZlIiwic2VsZWN0ZWRfcG9zdCIsInF1ZXJ5U2VsZWN0b3IiLCJtYXJrZXJzIiwibWFya2VyIiwic2VsZWN0ZWRfbWFya2VyIiwicGFuVG8iLCJmaWx0ZXIiLCJwayIsImxhdGxvbiIsInNob3dfYWxsX3RpbWVsaW5lX2l0ZW1zIiwidGVybV9uYW1lIiwidGVybV9pZCIsImluaXRfbWFwIiwiaXRlbXMiLCJMIiwic2Nyb2xsV2hlZWxab29tIiwiem9vbUNvbnRyb2wiLCJzZXRWaWV3IiwicHJvdmlkZXIiLCJ0aWxlTGF5ZXIiLCJhZGRUbyIsImNsYXNzZXMiLCJ0ZXJtIiwic2x1Z2lmeSIsInRvTG93ZXJDYXNlIiwiaWNvbiIsImljb25VcmwiLCJtYWluX3Rlcm0iLCJzaGFkb3dVcmwiLCJpY29uU2l6ZSIsInNoYWRvd0FuY2hvciIsImNsYXNzTmFtZSIsImJpbmRQb3B1cCIsIm5hbWUiLCJvbiIsImxheWVyR3JvdXAiLCJpbml0X3RpbWVsaW5lIiwidGltZWxpbmUiLCJpdGVtIiwiY3JlYXRlRWxlbWVudCIsInZpZGVvX2hvbGRlciIsInZpZGVvIiwic2V0QXR0cmlidXRlIiwiYXBwZW5kQ2hpbGQiLCJpbm5lckhUTUwiLCJkYXRlIiwiZnJvbU5vdyIsImNhdHMiLCJqb2luIiwiYWRkRXZlbnRMaXN0ZW5lciIsImluaXRfbGVnZW5kIiwic2VsZWN0ZWQiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiY2F0ZWdvcmllc19ub2RlIiwic29ydGVkIiwic29ydCIsImNhdGVnb3J5X25vZGUiLCJ0YXJnZXQiLCJjYXRlZ29yeSIsInBhcmVudE5vZGUiLCJkYXRhc2V0IiwiY2F0ZWdvcnlfdGVybXMiLCJhY3Rpb24iLCJ0b2dnbGUiLCJjaGVja19pdGVtcyIsImxlZ2VuZCIsIml0ZW1fZGlzcGxheXMiLCJpc192aXNpYmxlIiwiZCIsImluY2x1ZGVzIiwiY3JlYXRlX2l0ZW1zIiwib3RoZXJfY2F0ZWdvcmllcyIsImNyZWF0aW9uX2RhdGUiLCJwb3NpdGlvbiIsImNvb3JkaW5hdGVzIiwicmV2ZXJzZSIsImxvYWRfZGF0YSIsImVuZHBvaW50IiwiZmV0Y2giLCJ0aGVuIiwicmVzcG9uc2UiLCJqc29uIiwiZGF0YSIsIml0ZW1zX3NpemUiLCJBcnJheSIsImZpbGwiLCJuIiwiZ2VuZXJhdGVXb3JkcyIsInJlcGxhY2UiLCJjIiwidG9VcHBlckNhc2UiLCJib2R5IiwiZ2VuZXJhdGVTZW50ZW5jZXMiLCJpbWciLCJsbmsiLCJhIiwiYiIsInRvTG9jYWxlRGF0ZVN0cmluZyIsIm9ubG9hZCJdLCJtYXBwaW5ncyI6IjtRQUFBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsUUFBUSxvQkFBb0I7UUFDNUI7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSxpQkFBaUIsNEJBQTRCO1FBQzdDO1FBQ0E7UUFDQSxrQkFBa0IsMkJBQTJCO1FBQzdDO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7OztRQUdBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSwwQ0FBMEMsZ0NBQWdDO1FBQzFFO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0Esd0RBQXdELGtCQUFrQjtRQUMxRTtRQUNBLGlEQUFpRCxjQUFjO1FBQy9EOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQSx5Q0FBeUMsaUNBQWlDO1FBQzFFLGdIQUFnSCxtQkFBbUIsRUFBRTtRQUNySTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLDJCQUEyQiwwQkFBMEIsRUFBRTtRQUN2RCxpQ0FBaUMsZUFBZTtRQUNoRDtRQUNBO1FBQ0E7O1FBRUE7UUFDQSxzREFBc0QsK0RBQStEOztRQUVySDtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBO1FBQ0EsZ0JBQWdCLHVCQUF1QjtR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QUNwQixPQUFOLENBQWNYLENBQUMsSUFBSTtBQUNmQSxPQUFDLENBQUMrRCxJQUFGLEdBQVMsSUFBSXJFLElBQUosQ0FBU00sQ0FBQyxDQUFDK0QsSUFBWCxFQUFpQnNELGtCQUFqQixDQUFvQyxPQUFwQyxDQUFUO0FBQ0FySCxPQUFDLENBQUNHLEtBQUYsR0FBVSxFQUFWOztBQUNBLFdBQUksTUFBTUYsR0FBVixJQUFpQkQsQ0FBQyxDQUFDaUUsSUFBbkIsRUFBd0I7QUFDcEJqRSxTQUFDLENBQUNpRSxJQUFGLENBQU9oRSxHQUFQLEVBQVlVLE9BQVosQ0FBb0I2QixJQUFJLElBQUk7QUFDeEJ4QyxXQUFDLENBQUNHLEtBQUYsQ0FBUUUsSUFBUixDQUFhbUMsSUFBYjtBQUNILFNBRkQ7QUFHSDs7QUFBQTtBQUNKLEtBUkQ7QUFTQXBFLGdCQUFZLEdBQUcyRCxLQUFmO0FBQ0FELFlBQVEsQ0FBRUMsS0FBRixDQUFSO0FBQ0F1QixpQkFBYSxDQUFFdkIsS0FBRixDQUFiO0FBQ0FxQyxlQUFXLENBQUVyQyxLQUFGLENBQVg7QUFDSDtBQUNKLENBekNEOztBQTJDQXJFLE1BQU0sQ0FBQzRKLE1BQVAsR0FBZ0IsTUFBSTtBQUNoQnRCLFdBQVMsQ0FBQyx1QkFBRCxDQUFUO0FBQ0gsQ0FGRCxDIiwiZmlsZSI6Im1hcC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIGluc3RhbGwgYSBKU09OUCBjYWxsYmFjayBmb3IgY2h1bmsgbG9hZGluZ1xuIFx0ZnVuY3Rpb24gd2VicGFja0pzb25wQ2FsbGJhY2soZGF0YSkge1xuIFx0XHR2YXIgY2h1bmtJZHMgPSBkYXRhWzBdO1xuIFx0XHR2YXIgbW9yZU1vZHVsZXMgPSBkYXRhWzFdO1xuIFx0XHR2YXIgZXhlY3V0ZU1vZHVsZXMgPSBkYXRhWzJdO1xuXG4gXHRcdC8vIGFkZCBcIm1vcmVNb2R1bGVzXCIgdG8gdGhlIG1vZHVsZXMgb2JqZWN0LFxuIFx0XHQvLyB0aGVuIGZsYWcgYWxsIFwiY2h1bmtJZHNcIiBhcyBsb2FkZWQgYW5kIGZpcmUgY2FsbGJhY2tcbiBcdFx0dmFyIG1vZHVsZUlkLCBjaHVua0lkLCBpID0gMCwgcmVzb2x2ZXMgPSBbXTtcbiBcdFx0Zm9yKDtpIDwgY2h1bmtJZHMubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHRjaHVua0lkID0gY2h1bmtJZHNbaV07XG4gXHRcdFx0aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkgJiYgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG4gXHRcdFx0XHRyZXNvbHZlcy5wdXNoKGluc3RhbGxlZENodW5rc1tjaHVua0lkXVswXSk7XG4gXHRcdFx0fVxuIFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDA7XG4gXHRcdH1cbiBcdFx0Zm9yKG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG4gXHRcdFx0aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcbiBcdFx0XHRcdG1vZHVsZXNbbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuIFx0XHRcdH1cbiBcdFx0fVxuIFx0XHRpZihwYXJlbnRKc29ucEZ1bmN0aW9uKSBwYXJlbnRKc29ucEZ1bmN0aW9uKGRhdGEpO1xuXG4gXHRcdHdoaWxlKHJlc29sdmVzLmxlbmd0aCkge1xuIFx0XHRcdHJlc29sdmVzLnNoaWZ0KCkoKTtcbiBcdFx0fVxuXG4gXHRcdC8vIGFkZCBlbnRyeSBtb2R1bGVzIGZyb20gbG9hZGVkIGNodW5rIHRvIGRlZmVycmVkIGxpc3RcbiBcdFx0ZGVmZXJyZWRNb2R1bGVzLnB1c2guYXBwbHkoZGVmZXJyZWRNb2R1bGVzLCBleGVjdXRlTW9kdWxlcyB8fCBbXSk7XG5cbiBcdFx0Ly8gcnVuIGRlZmVycmVkIG1vZHVsZXMgd2hlbiBhbGwgY2h1bmtzIHJlYWR5XG4gXHRcdHJldHVybiBjaGVja0RlZmVycmVkTW9kdWxlcygpO1xuIFx0fTtcbiBcdGZ1bmN0aW9uIGNoZWNrRGVmZXJyZWRNb2R1bGVzKCkge1xuIFx0XHR2YXIgcmVzdWx0O1xuIFx0XHRmb3IodmFyIGkgPSAwOyBpIDwgZGVmZXJyZWRNb2R1bGVzLmxlbmd0aDsgaSsrKSB7XG4gXHRcdFx0dmFyIGRlZmVycmVkTW9kdWxlID0gZGVmZXJyZWRNb2R1bGVzW2ldO1xuIFx0XHRcdHZhciBmdWxmaWxsZWQgPSB0cnVlO1xuIFx0XHRcdGZvcih2YXIgaiA9IDE7IGogPCBkZWZlcnJlZE1vZHVsZS5sZW5ndGg7IGorKykge1xuIFx0XHRcdFx0dmFyIGRlcElkID0gZGVmZXJyZWRNb2R1bGVbal07XG4gXHRcdFx0XHRpZihpbnN0YWxsZWRDaHVua3NbZGVwSWRdICE9PSAwKSBmdWxmaWxsZWQgPSBmYWxzZTtcbiBcdFx0XHR9XG4gXHRcdFx0aWYoZnVsZmlsbGVkKSB7XG4gXHRcdFx0XHRkZWZlcnJlZE1vZHVsZXMuc3BsaWNlKGktLSwgMSk7XG4gXHRcdFx0XHRyZXN1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IGRlZmVycmVkTW9kdWxlWzBdKTtcbiBcdFx0XHR9XG4gXHRcdH1cblxuIFx0XHRyZXR1cm4gcmVzdWx0O1xuIFx0fVxuXG4gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuIFx0Ly8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4gXHQvLyBQcm9taXNlID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxuIFx0dmFyIGluc3RhbGxlZENodW5rcyA9IHtcbiBcdFx0XCJtYXBcIjogMFxuIFx0fTtcblxuIFx0dmFyIGRlZmVycmVkTW9kdWxlcyA9IFtdO1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9cIjtcblxuIFx0dmFyIGpzb25wQXJyYXkgPSB3aW5kb3dbXCJ3ZWJwYWNrSnNvbnBcIl0gPSB3aW5kb3dbXCJ3ZWJwYWNrSnNvbnBcIl0gfHwgW107XG4gXHR2YXIgb2xkSnNvbnBGdW5jdGlvbiA9IGpzb25wQXJyYXkucHVzaC5iaW5kKGpzb25wQXJyYXkpO1xuIFx0anNvbnBBcnJheS5wdXNoID0gd2VicGFja0pzb25wQ2FsbGJhY2s7XG4gXHRqc29ucEFycmF5ID0ganNvbnBBcnJheS5zbGljZSgpO1xuIFx0Zm9yKHZhciBpID0gMDsgaSA8IGpzb25wQXJyYXkubGVuZ3RoOyBpKyspIHdlYnBhY2tKc29ucENhbGxiYWNrKGpzb25wQXJyYXlbaV0pO1xuIFx0dmFyIHBhcmVudEpzb25wRnVuY3Rpb24gPSBvbGRKc29ucEZ1bmN0aW9uO1xuXG5cbiBcdC8vIGFkZCBlbnRyeSBtb2R1bGUgdG8gZGVmZXJyZWQgbGlzdFxuIFx0ZGVmZXJyZWRNb2R1bGVzLnB1c2goW1wiLi9zcmMvaW5kZXguanNcIixcInZlbmRvcnN+bWFwXCJdKTtcbiBcdC8vIHJ1biBkZWZlcnJlZCBtb2R1bGVzIHdoZW4gcmVhZHlcbiBcdHJldHVybiBjaGVja0RlZmVycmVkTW9kdWxlcygpO1xuIiwiaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBMb3JlbUlwc3VtIH0gZnJvbSBcImxvcmVtLWlwc3VtXCI7XG5pbXBvcnQgc2x1Z2lmeSBmcm9tIFwic2x1Z2lmeVwiO1xudmFyIGRheWpzID0gcmVxdWlyZSgnZGF5anMnKVxudmFyIHJlbGF0aXZlVGltZSA9IHJlcXVpcmUoJ2RheWpzL3BsdWdpbi9yZWxhdGl2ZVRpbWUnKVxudmFyIGRheWpzX2VzID0gcmVxdWlyZSgnZGF5anMvbG9jYWxlL2VzJyk7XG5kYXlqcy5leHRlbmQocmVsYXRpdmVUaW1lKTtcbmRheWpzLmxvY2FsZSgnZXMnKTtcblxuLy8gRGV0ZWN0IGlmIGRldmljZSBpcyBtb2JpbGVcbi8vIENoZWNrIGJyZWFrcG9pbnRzIGluIHNhc3Mgc28gdGhpcyB2YWx1ZSBtYXRjaGVzIGJyZWFrcG9pbnRzIGluIHRoZSBsYXlvdXRcbmxldCBpc19tb2JpbGUgPSB3aW5kb3cubWF0Y2hNZWRpYShcbiAgICBcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweClcIlxuKS5tYXRjaGVzO1xuXG4vLyBTZXRzIHVwIGxvcmVtIGlwc3VtIGdlbmVyYXRvclxuY29uc3QgbG9yZW0gPSBuZXcgTG9yZW1JcHN1bSh7XG4gICAgc2VudGVuY2VzUGVyUGFyYWdyYXBoIDogeyBtYXg6ICA4LCBtaW46IDQgfSxcbiAgICB3b3Jkc1BlclNlbnRlbmNlICAgICAgOiB7IG1heDogMTYsIG1pbjogNCB9XG59KTtcblxubGV0IG1hcDtcbmxldCBpdGVtc19sb29rdXAgID0gW107XG5sZXQgaXRlbV9zZWxlY3RlZCA9IGZhbHNlO1xuXG5sZXQgY2F0ZWdvcmllcyA9IHt9O1xuXG4vLyBMZWFmbGV0IG1hcCBkZWZhdWx0c1xuY29uc3QgTUFQX0RFRkFVTFRTID0ge1xuICAgIHZpZXcgOiBbIFszNy4zODA4LCAtNS45NzAwXSwgMTIgXSxcbiAgICBwcm92aWRlcnMgOiB7XG4gICAgICAgIG9zbSA6IHtcbiAgICAgICAgICAgIHRpbGVzICAgICAgIDogJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJyxcbiAgICAgICAgICAgIGF0dHJpYnV0aW9uIDogJyZjb3B5OyA8YSBocmVmPVwiaHR0cHM6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCI+T3BlblN0cmVldE1hcDwvYT4gY29udHJpYnV0b3JzJyxcbiAgICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRfcHJvdmlkZXIgOiAnb3NtJyxcbn07XG5cbi8qKlxuICogIEdldHMgYSByYW5kb20gbGF0bG9uIG5lYXIgYSBnaXZlbiBwb2ludFxuICogIEBwYXJhbSB7QXJyYXl9IHBvaW50IC0gQ29vcmRzIGFycmF5IGluIHRoZSBmb3JtIFsgbGF0aXR1ZGUsIGxvbmdpdHVkZSBdXG4gKiAgQHBhcmFtIHtGbG9hdH0gZGlzdGFuY2VfZmFjdG9yX2xhdCAtIERpc3RhbmNlIG11bHRpcGxpZXIgLWxhdGl0dWRlXG4gKiAgQHBhcmFtIHtGbG9hdH0gZGlzdGFuY2VfZmFjdG9yX2xvbiAtIERpc3RhbmNlIG11bHRpcGxpZXIgLSBsb25naXR1ZGVcbiAqL1xuY29uc3QgcmFuZG9tX2xhdGxvbiA9IGZ1bmN0aW9uKHBvaW50LCBkaXN0YW5jZV9mYWN0b3JfbGF0PS4yNSwgZGlzdGFuY2VfZmFjdG9yX2xvbj0uMjUgKXtcbiAgICByZXR1cm4gW1xuICAgICAgICBwb2ludFswXSArIChNYXRoLnJhbmRvbSgpIC0gLjUpICogZGlzdGFuY2VfZmFjdG9yX2xhdCxcbiAgICAgICAgcG9pbnRbMV0gKyAoTWF0aC5yYW5kb20oKSAtIC41KSAqIGRpc3RhbmNlX2ZhY3Rvcl9sb25cbiAgICBdO1xufVxuXG4vKipcbiAqICBHZXRzIGEgcmFuZG9tIGludGVnZXJcbiAqICBAcGFyYW0ge0ludGVnZXJ9IG1pbiAtIE1pbmltdW0gdmFsdWVcbiAqICBAcGFyYW0ge0ludGVnZXJ9IG1heCAtIE1heGltdW0gdmFsdWVcbiAqL1xuY29uc3QgcmludCA9IGZ1bmN0aW9uKG1pbiwgbWF4KXtcbiAgICByZXR1cm4gbWluICsgTWF0aC5mbG9vciggTWF0aC5yYW5kb20oKSAqIChtYXgtbWluKSApO1xufVxuXG4vKipcbiAqICBHZXRzIGEgcmFuZG9tIGRhdGVcbiAqICBAcGFyYW0ge1N0cmluZ30gc3RhcnQgLSBTdGFydCBkYXRlIGluIHRoZSBmb3JtYXQgXCJ5eXl5LWRkLW1tXCJcbiAqICBAcGFyYW0ge1N0cmluZ30gZW5kICAgLSBFbmQgZGF0ZSBpbiB0aGUgZm9ybWF0IFwieXl5eS1kZC1tbVwiXG4gKi9cbmZ1bmN0aW9uIHJhbmRvbV9kYXRlKHN0YXJ0LCBlbmQpIHtcbiAgICB2YXIgcyA9IG5ldyBEYXRlKCBzdGFydCApLmdldFRpbWUoKTtcbiAgICB2YXIgZSA9IChlbmQgPyBuZXcgRGF0ZShlbmQpIDogbmV3IERhdGUoKSkuZ2V0VGltZSgpO1xuICAgIHJldHVybiByaW50KHMsZSk7XG59XG5cbi8qKlxuICogIEdldHMgcmFuZG9tIGNhdGVnb3JpZXNcbiAqICBAcGFyYW0ge0ludGVnZXJ9IGNhdGVnb3JpZXNfbnVtYmVyIC0gTnVtYmVyIG9mIGluZGVwZW5kZW50IGNhdGVnb3JpZXMgKG5vdCB0ZXJtcylcbiAqL1xuZnVuY3Rpb24gcmFuZG9tX2NhdHMoY2F0ZWdvcmllc19udW1iZXIpIHtcbiAgICBsZXQgY2F0ZWdvcmllcyA9IFtdO1xuICAgIGxldCBsZXR0ZXJzICAgID0gJ2FiY2VkZWZoaWonO1xuICAgIGZvcihsZXQgaSA9IDA7IGkgPCBjYXRlZ29yaWVzX251bWJlcjsgaSsrKXtcbiAgICAgICAgY29uc3QgY2F0ID0gbGV0dGVycy5jaGFyQXQoaSk7XG4gICAgICAgIGNhdGVnb3JpZXNbIGNhdCBdID0gW107XG4gICAgICAgIGxldCB0ZXJtcyA9IHJpbnQoMSwgNik7XG4gICAgICAgIGZvcihsZXQgaiA9IDA7IGogPCB0ZXJtczsgaisrKSB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzW2NhdF0ucHVzaChgdC0tJHtpfSR7an1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2F0ZWdvcmllcztcbn1cblxuXG4vKipcbiAqICBIaWRlcyBhbGwgdGltZWxpbmUgaXRlbXMgZXhjZXB0IHRoZSBvbmUgc2VsZWN0ZWRcbiAqICBAcGFyYW0ge0ludGVnZXJ9IGlkIC0gaWQgb2YgdGhlIHNlbGVjdGVkIGl0ZW1cbiAqL1xuY29uc3Qgc2VsZWN0X2l0ZW0gPSBmdW5jdGlvbihpZClcbntcbiAgICAvLyBUaW1lbGluZVxuICAgIGNvbnN0IHBvc3RzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRpbWVsaW5lLWl0ZW0nKTtcbiAgICBwb3N0cy5mb3JFYWNoKCBwb3N0ID0+IHtcbiAgICAgICAgY29uc3QgY2xzID0gcG9zdC5jbGFzc0xpc3Q7XG4gICAgICAgIGNscy5hZGQoJ2hpZGRlbicpO1xuICAgICAgICBpZihjbHMuY29udGFpbnMoJ3NlbGVjdGVkJykpIGNscy5yZW1vdmUoJ3NlbGVjdGVkJyk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRfcG9zdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYC50aW1lbGluZS1pdGVtLml0ZW0tJHtpZH1gKTtcbiAgICBzZWxlY3RlZF9wb3N0LmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpO1xuICAgIHNlbGVjdGVkX3Bvc3QuY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtcbiAgICAvLyBNYXBcbiAgICBjb25zdCBtYXJrZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxlYWZsZXQtbWFya2VyLWljb24nKTtcbiAgICBtYXJrZXJzLmZvckVhY2gobWFya2VyID0+IHtcbiAgICAgICAgbWFya2VyLmNsYXNzTGlzdC5hZGQoJ2luYWN0aXZlJyk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRfbWFya2VyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLmxlYWZsZXQtbWFya2VyLWljb24uaXRlbS0ke2lkfWApO1xuICAgIHNlbGVjdGVkX21hcmtlci5jbGFzc0xpc3QucmVtb3ZlKCdpbmFjdGl2ZScpO1xuICAgIG1hcC5wYW5UbyggaXRlbXNfbG9va3VwLmZpbHRlcihpID0+IGkucGsgPT0gaWQpWzBdLmxhdGxvbiApO1xuICAgIC8vIEFsbFxuICAgIGl0ZW1fc2VsZWN0ZWQgPSB0cnVlO1xufVxuXG4vKipcbiAqICBTaG93cyBhbGwgaXRlbXMgaW4gdGltZWxpbmUgaWYgYW55b25lIGlzIHNlbGVjdGVkXG4gKi9cbmNvbnN0IHNob3dfYWxsX3RpbWVsaW5lX2l0ZW1zID0gZnVuY3Rpb24oKVxue1xuICAgIGlmKCFpdGVtX3NlbGVjdGVkKSByZXR1cm47XG5cbiAgICB2YXIgcG9zdHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGltZWxpbmUtaXRlbScpO1xuICAgIHBvc3RzLmZvckVhY2goIHBvc3QgPT4ge1xuICAgICAgICBwb3N0LmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpO1xuICAgICAgICBwb3N0LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJyk7XG4gICAgfSk7XG4gICAgY29uc3QgbWFya2VycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5sZWFmbGV0LW1hcmtlci1pY29uJyk7XG4gICAgbWFya2Vycy5mb3JFYWNoKG1hcmtlciA9PiB7XG4gICAgICAgIG1hcmtlci5jbGFzc0xpc3QucmVtb3ZlKCdpbmFjdGl2ZScpO1xuICAgIH0pO1xuICAgIGl0ZW1fc2VsZWN0ZWQgPSBmYWxzZTtcbn1cblxuLyoqXG4gKiAgUmV0dXJucyB0aGUgbGFiZWwgb2YgYSBnaXZlbiB0ZXJtX2lkXG4gKiAgQHBhcmFtIHtTdHJpbmd9IGNhdGVnb3J5X25hbWUgLSBOYW1lIG9mIHRoZSBjYXRlZ29yeVxuICogIEBwYXJhbSB7U3RyaW5nfSB0ZXJtX25hbWUgLSBOYW1lIG9mIHRoZSB0ZXJtXG4gKi9cbmNvbnN0IHRlcm1fbmFtZSA9IGZ1bmN0aW9uKHRlcm1faWQpe1xuICAgIGNvbnN0IHRlcm1zID0ge307XG4gICAgcmV0dXJuIHRlcm1faWQgaW4gdGVybXMgPyB0ZXJtc1t0ZXJtX2lkXSA6IHRlcm1faWQ7XG59XG5cbi8qKlxuICogIFNldHMgdXAgbGVhZmxldCBtYXBcbiAqICBAcGFyYW0ge01hcH0gbWFwICAgICAtIEEgdmFyaWFibGUgdG8gaG9sZCB0aGUgbGVhZmxldCBtYXAgYW5kIG1ha2UgaXQgYWNjZXNpYmxlIHRvIG90aGVyIG1ldGhvZHNcbiAqICBAcGFyYW0ge0FycmF5fSBpdGVtcyAtIEFycmF5IHdpdGggZGF0YSB0byBzZXQgbWFya2Vyc1xuICovXG5jb25zdCBpbml0X21hcCA9IGZ1bmN0aW9uKGl0ZW1zKVxue1xuICAgIC8vIENyZWF0ZSBtYXBcbiAgICBtYXAgPSBMLm1hcCgnbWFwJyAsIHtcbiAgICAgICAgc2Nyb2xsV2hlZWxab29tIDogIWlzX21vYmlsZSwgIC8vIGRpc2FibGUgd2hlZWx6b29tIG9ubHkgaW4gc21hbGwgZGV2aWNlc1xuICAgICAgICB6b29tQ29udHJvbCA6IGZhbHNlLFxuICAgIH0pLnNldFZpZXcoXG4gICAgICAgIC4uLk1BUF9ERUZBVUxUUy52aWV3XG4gICAgKTtcblxuICAgIC8vIFNldCB1cCBwcm92aWRlciBmcm9tIGRlZmF1bHRzXG4gICAgY29uc3QgcHJvdmlkZXIgPSBNQVBfREVGQVVMVFMucHJvdmlkZXJzW1xuICAgICAgICBNQVBfREVGQVVMVFMuZGVmYXVsdF9wcm92aWRlclxuICAgIF07XG5cbiAgICAvLyBTZXQgdXAgdGlsZXNcbiAgICBMLnRpbGVMYXllciggcHJvdmlkZXIudGlsZXMsIHtcbiAgICAgICAgYXR0cmlidXRpb246IHByb3ZpZGVyLmF0dHJpYnV0aW9uLFxuICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAvLyBMb2FkIGl0ZW1zXG4gICAgaWYoaXRlbXMpe1xuICAgICAgICBjb25zdCBtYXJrZXJzID0gaXRlbXMubWFwKGkgPT4ge1xuICAgICAgICAgICAgbGV0IGNsYXNzZXMgPSBgaXRlbS0ke2kucGt9YDtcbiAgICAgICAgICAgIGkudGVybXMuZm9yRWFjaCggdGVybSA9PiB7IGNsYXNzZXMgKz0gYCAkeyBzbHVnaWZ5KHRlcm0pLnRvTG93ZXJDYXNlKCkgfWAgfSk7XG4gICAgICAgICAgICByZXR1cm4gTC5tYXJrZXIoIGkubGF0bG9uLCB7XG4gICAgICAgICAgICAgICAgaWNvbiA6IEwuaWNvbih7XG4gICAgICAgICAgICAgICAgICAgIGljb25VcmwgICAgICA6IGAvc3RhdGljL3NpdGUvaW1nL21hcmtlcnMvbWFya2VyLSR7aS5tYWluX3Rlcm19LnN2Z2AsXG4gICAgICAgICAgICAgICAgICAgIHNoYWRvd1VybCAgICA6IGAvc3RhdGljL3NpdGUvaW1nL21hcmtlcnMvbWFya2VyLXNoYWRvdy5zdmdgLFxuICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZSAgICAgOiBbIDQwLCA0OCBdLFxuICAgICAgICAgICAgICAgICAgICBzaGFkb3dBbmNob3IgOiBbIDIwLCAwIF0sXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSAgICA6IGNsYXNzZXMsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pLmJpbmRQb3B1cChcbiAgICAgICAgICAgICAgICBgPGg0IGNsYXNzPVwibWFwLWl0ZW1fX25hbWVcIj4keyBpLm5hbWUgfTwvaDQ+YCxcbiAgICAgICAgICAgICkub24oJ2NsaWNrJywgZnVuY3Rpb24oZSl7XG4gICAgICAgICAgICAgICAgc2VsZWN0X2l0ZW0oaS5wayk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICAgICAgTC5sYXllckdyb3VwKCBtYXJrZXJzICkuYWRkVG8oIG1hcCApO1xuICAgIH1cblxuICAgIG1hcC5vbignY2xpY2snLCAoKT0+IHtcbiAgICAgICBzaG93X2FsbF90aW1lbGluZV9pdGVtcygpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqICBTZXRzIHVwIHRpbWVsaW5lXG4gKiAgQHBhcmFtIHtBcnJheX0gaXRlbXMgLSBBcnJheSB3aXRoIGRhdGEgdG8gc2V0IGl0ZW1zIGluIHRoZSB0aW1lbGluZVxuICovXG5jb25zdCBpbml0X3RpbWVsaW5lID0gZnVuY3Rpb24oaXRlbXMpXG57XG4gICAgaWYoIWl0ZW1zKSByZXR1cm47XG4gICAgY29uc3QgdGltZWxpbmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudGltZWxpbmUnKTtcbiAgICBpdGVtcy5mb3JFYWNoKCBpID0+IHtcbiAgICAgICAgdmFyIGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgaXRlbS5jbGFzc0xpc3QuYWRkKCBgaXRlbS0ke2kucGt9YCk7XG4gICAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgndGltZWxpbmUtaXRlbScpO1xuICAgICAgICB2YXIgdmlkZW9faG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHZpZGVvX2hvbGRlci5jbGFzc0xpc3QuYWRkKCd0aW1lbGluZS1pdGVtX192aWRlbycpO1xuICAgICAgICB2YXIgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpO1xuICAgICAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ2NvbnRyb2xzJywgdHJ1ZSk7XG4gICAgICAgIHZpZGVvLnNldEF0dHJpYnV0ZSgnc3JjJywgaS52aWRlbyk7XG4gICAgICAgIHZpZGVvX2hvbGRlci5hcHBlbmRDaGlsZCh2aWRlbyk7XG4gICAgICAgIGl0ZW0uaW5uZXJIVE1MICs9IGA8cCBjbGFzcz1cInRpbWVsaW5lLWl0ZW1fX2RhdGVcIj4keyBkYXlqcyhpLmRhdGUpLmZyb21Ob3coKSB9PC9wPmA7XG4gICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmlkZW9faG9sZGVyKTtcbiAgICAgICAgaXRlbS5pbm5lckhUTUwgKz0gYDxoMyBjbGFzcz1cInRpbWVsaW5lLWl0ZW1fX25hbWVcIj4keyBpLm5hbWUgfTwvaDM+YDtcbiAgICAgICAgaXRlbS5pbm5lckhUTUwgKz0gYDxwIGNsYXNzPVwidGltZWxpbmUtaXRlbV9fdGVybXNcIj4keyBpLmNhdHNbJ2NhdGVnb3J5J10uam9pbihcIiwgXCIpIH08L3A+YDtcbiAgICAgICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpPT57IHNlbGVjdF9pdGVtKGkucGspOyB9KTtcbiAgICAgICAgdGltZWxpbmUuYXBwZW5kQ2hpbGQoIGl0ZW0gKTtcbiAgICB9ICk7XG59XG5cbi8qKlxuICogIFNldHMgdXAgbGVnZW5kXG4gKiAgQHBhcmFtIHtBcnJheX0gaXRlbXMgLSBBcnJheSB3aXRoIGRhdGEgdG8gc2V0IGl0ZW1zIGluIHRoZSB0aW1lbGluZVxuICovXG5jb25zdCBpbml0X2xlZ2VuZCA9IGZ1bmN0aW9uKGl0ZW1zKVxue1xuICAgIC8vIEl0ZXJhdGUgb3ZlciBlbGVtZW50cyBncmFiYmluZyBpdHMgY2F0ZWdvcmllc1xuICAgIGl0ZW1zLmZvckVhY2goIGl0ZW0gPT4ge1xuICAgICAgICBmb3IoY29uc3QgY2F0IGluIGl0ZW0uY2F0cylcbiAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgdGVybXMgPSBpdGVtLmNhdHNbY2F0XTtcbiAgICAgICAgICAgIC8vIElmIGFscmVhZHkgY3JlYXRlZCBwdXNoIG9ubHkgbmV3IHRlcm1zIGludG8gdGhlIGNhdGVnb3J5XG4gICAgICAgICAgICBpZihjYXQgaW4gY2F0ZWdvcmllcyl7XG4gICAgICAgICAgICAgICAgdGVybXMuZm9yRWFjaCh0ZXJtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYoICEodGVybSBpbiBjYXRlZ29yaWVzW2NhdF0udGVybXMpICl7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdF0udGVybXNbdGVybV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBFbHNlIHB1c2ggYWxsIGl0ZW0gdGVybXMgaW50byB0aGUgY2F0ZWdvcnlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcmllc1tjYXRdID0ge1xuICAgICAgICAgICAgICAgICAgICAndGVybXMnIDoge30sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0ZXJtcy5mb3JFYWNoKHRlcm0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdF0udGVybXNbdGVybV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0ZWdvcmllc1tjYXRdLnNlbGVjdGVkID0gT2JqZWN0LmtleXMoY2F0ZWdvcmllc1tjYXRdLnRlcm1zKS5sZW5ndGg7XG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBjYXRlZ29yaWVzX25vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGVnZW5kX19jYXRlZ29yaWVzJyk7XG4gICAgZm9yKGNvbnN0IGNhdCBpbiBjYXRlZ29yaWVzKXtcbiAgICAgICAgLy8gQ3JlYXRlIG1lbnUgaXRlbXNcbiAgICAgICAgbGV0IHRlcm1zID0gJyc7XG4gICAgICAgIHZhciBzb3J0ZWQgPSBPYmplY3Qua2V5cyggY2F0ZWdvcmllc1tjYXRdLnRlcm1zICkuc29ydCgpO1xuICAgICAgICBzb3J0ZWQuZm9yRWFjaCggZnVuY3Rpb24odGVybSl7XG4gICAgICAgICAgICB0ZXJtcyArPSBgXFxcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImxlZ2VuZC1jYXRlZ29yeV9faXRlbSBvblwiIGRhdGEtaWQ9XCIkeyBzbHVnaWZ5KHRlcm0udG9Mb3dlckNhc2UoKSApIH1cIj5cXFxuICAgICAgICAgICAgICAgICR7IHRlcm0gfVxcXG4gICAgICAgICAgICA8L2xpPmA7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY2F0ZWdvcnlfbm9kZSA9IGBcXFxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kLWNhdGVnb3J5XCI+XFxcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImxlZ2VuZC1jYXRlZ29yeV9faXRlbXNcIiBkYXRhLWNhdD1cIiR7Y2F0fVwiPlxcXG4gICAgICAgICAgICAgICAgJHt0ZXJtc31cXFxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxlZ2VuZC1jYXRlZ29yeV9fdW5maWx0ZXJcIiBkYXRhLWFjdGlvbj1cInJlbW92ZV9maWx0ZXJzXCI+XFxcbiAgICAgICAgICAgICAgICAgICAgUXVpdGFyIGZpbHRyb3NcXFxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxcXG4gICAgICAgIDwvZGl2PmA7XG4gICAgICAgIGNhdGVnb3JpZXNfbm9kZS5pbm5lckhUTUwgKz0gY2F0ZWdvcnlfbm9kZTtcbiAgICB9XG5cbiAgICBjYXRlZ29yaWVzX25vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IHtcbiAgICAgICAgY29uc3QgaXRlbSAgICAgPSBlLnRhcmdldDtcbiAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBpdGVtLnBhcmVudE5vZGUuZGF0YXNldC5jYXQ7XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5X3Rlcm1zID0gaXRlbS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJy5sZWdlbmQtY2F0ZWdvcnlfX2l0ZW0nKTtcbiAgICAgICAgaWYoaXRlbS5kYXRhc2V0LmFjdGlvbiA9PSAncmVtb3ZlX2ZpbHRlcnMnKXtcbiAgICAgICAgICAgZm9yKGNvbnN0IHRlcm0gaW4gY2F0ZWdvcmllc1tjYXRlZ29yeV0udGVybXMpXG4gICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1t0ZXJtXSA9IHRydWU7XG4gICAgICAgICAgIGNhdGVnb3J5X3Rlcm1zLmZvckVhY2goIGkgPT4ge1xuICAgICAgICAgICAgICAgaS5jbGFzc0xpc3QuYWRkKCdvbicpO1xuICAgICAgICAgICB9KVxuICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XS5zZWxlY3RlZCA9IGNhdGVnb3J5X3Rlcm1zLmxlbmd0aDtcbiAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxlYWZsZXQtbWFya2VyLWljb24nKS5mb3JFYWNoKCBpID0+IHtcbiAgICAgICAgICAgICAgaS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcbiAgICAgICAgICAgfSlcbiAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRpbWVsaW5lLWl0ZW0nKS5mb3JFYWNoKCBpID0+IHtcbiAgICAgICAgICAgICAgaS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcbiAgICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICAgICAgaWYoaXRlbS5kYXRhc2V0LmlkKVxuICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCB0ZXJtX2lkICAgICAgICA9IGl0ZW0uZGF0YXNldC5pZDtcblxuICAgICAgICAgICAgLy8gSWYgZmlyc3QgdGVybSBzZWxlY3RlZCwgdW5jaGVjayBhbGwgZXhjZXB0aW5nIGl0c2VsZlxuICAgICAgICAgICAgaWYoY2F0ZWdvcmllc1tjYXRlZ29yeV0uc2VsZWN0ZWQgPT0gY2F0ZWdvcnlfdGVybXMubGVuZ3RoKXtcbiAgICAgICAgICAgICAgICBmb3IoY29uc3QgdGVybSBpbiBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtcylcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllc1tjYXRlZ29yeV0udGVybXNbdGVybV0gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1t0ZXJtX2lkXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfdGVybXMuZm9yRWFjaCggaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGkuY2xhc3NMaXN0LnJlbW92ZSgnb24nKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldLnNlbGVjdGVkID0gMTtcbiAgICAgICAgICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ29uJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldLnRlcm1zW3Rlcm1faWRdID0gIWNhdGVnb3JpZXNbY2F0ZWdvcnldLnRlcm1zW3Rlcm1faWRdO1xuICAgICAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LnRvZ2dsZSgnb24nKTtcbiAgICAgICAgICAgICAgICBpZihjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1t0ZXJtX2lkXSlcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllc1tjYXRlZ29yeV0uc2VsZWN0ZWQrKztcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldLnNlbGVjdGVkLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZihjYXRlZ29yaWVzW2NhdGVnb3J5XS5zZWxlY3RlZCA9PSAwKXtcbiAgICAgICAgICAgICAgZm9yKGNvbnN0IHRlcm0gaW4gY2F0ZWdvcmllc1tjYXRlZ29yeV0udGVybXMpXG4gICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1t0ZXJtXSA9IHRydWU7XG4gICAgICAgICAgICAgIGNhdGVnb3J5X3Rlcm1zLmZvckVhY2goIGkgPT4geyBpLmNsYXNzTGlzdC5hZGQoJ29uJyk7IH0pXG4gICAgICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldLnNlbGVjdGVkID0gY2F0ZWdvcnlfdGVybXMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2hlY2tfaXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBsZWdlbmQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGVnZW5kJyk7XG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxlZ2VuZF9fbGFiZWwnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7XG4gICAgICAgIGxlZ2VuZC5jbGFzc0xpc3QudG9nZ2xlKCdjb2xsYXBzZWQnKTtcbiAgICB9KTtcbiAgICBpZihpc19tb2JpbGUpe1xuICAgICAgICBsZWdlbmQuY2xhc3NMaXN0LmFkZCgnY29sbGFwc2VkJylcbiAgICB9XG59XG5cbi8qKlxuICogIENoZWNrcyBtYXJrZXJzIGFuZCBzZXRzIGl0cyB2aXNpYmlsaXR5IHJlZ2FyZGluZyBzZWxlY3RlZCBjYXRlZ29yaWVzXG4gKi9cbmNvbnN0IGNoZWNrX2l0ZW1zID0gZnVuY3Rpb24oKVxue1xuICAgIC8vIElmIHRoZXJlJ3MgYSBzZWxlY3RlZCB0aW1lbGluZSBpdGVtLCBkZXNlbGVjdCBpdFxuICAgIHZhciBzZWxlY3RlZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpO1xuICAgIGlmKHNlbGVjdGVkKSBzZWxlY3RlZC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpO1xuICAgIGl0ZW1zX2xvb2t1cC5mb3JFYWNoKCBpdGVtID0+XG4gICAge1xuICAgICAgICB2YXIgaXRlbV9kaXNwbGF5cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC5pdGVtLSR7aXRlbS5wa31gKTtcbiAgICAgICAgZm9yKGNvbnN0IGNhdGVnb3J5IGluIGNhdGVnb3JpZXMpe1xuICAgICAgICAgICAgdmFyIGlzX3Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW1fZGlzcGxheXMuZm9yRWFjaCggZCA9PiB7IGQuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJykgfSk7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtcykuZm9yRWFjaChpZCA9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlmKCBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1tpZF0gJiYgaXRlbS50ZXJtcy5pbmNsdWRlcyggc2x1Z2lmeShpZCkudG9Mb3dlckNhc2UoKSApICl7XG4gICAgICAgICAgICAgICAgICAgIGlzX3Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZighaXNfdmlzaWJsZSl7XG4gICAgICAgICAgICAgICAgaXRlbV9kaXNwbGF5cy5mb3JFYWNoKCBkID0+IHsgZC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLyoqXG4gKiAgU2V0cyBkYXRhIGl0ZW1zIGluIHByb3BlciBmb3JtYXRcbiAqICBAcGFyYW0ge0FycmF5fSBpdGVtcyAtIEFycmF5IHdpdGggZGF0YSB0byBzZXQgaXRlbXNcbiAqL1xuY29uc3QgY3JlYXRlX2l0ZW1zID0gZnVuY3Rpb24oaXRlbXMpXG57XG4gICAgcmV0dXJuIGl0ZW1zLm1hcChpID0+e1xuICAgICAgICB2YXIgdGVybXMgPSBbIGkuY2F0ZWdvcnkubmFtZSBdO1xuICAgICAgICB0ZXJtcy5wdXNoKCAuLi5pLm90aGVyX2NhdGVnb3JpZXMubWFwKCBqPT4gai5uYW1lICkgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBrICAgICA6IGkucGssXG4gICAgICAgICAgICBuYW1lICAgOiBpLm5hbWUsXG4gICAgICAgICAgICBjYXRzICAgOiB7ICdjYXRlZ29yeScgOiB0ZXJtcyB9LFxuICAgICAgICAgICAgbWFpbl90ZXJtIDogc2x1Z2lmeShpLmNhdGVnb3J5Lm5hbWUudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgICB0ZXJtcyAgOiB0ZXJtcy5tYXAoIGogPT4gc2x1Z2lmeShqLnRvTG93ZXJDYXNlKCkgKSksXG4gICAgICAgICAgICBkYXRlICAgOiBpLmNyZWF0aW9uX2RhdGUsXG4gICAgICAgICAgICBsYXRsb24gOiBpLnBvc2l0aW9uLmNvb3JkaW5hdGVzLnJldmVyc2UoKSxcbiAgICAgICAgICAgIHZpZGVvICA6IGkudmlkZW8sXG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuXG4vKipcbiAqICBMb2FkcyBkYXRhIGZyb20gYSByZW1vdGUgZW5kcG9pbnRcbiAqICBAcGFyYW0ge1N0cmluZ30gZW5kcG9pbnQgLSBVUkwgb2YgYW5kIGVuZHBvaW50IHRoYXQgc2VydmVzIEpTT04gZGF0YSB3aXRoIHRoZSBpdGVtcyBhcnJheSB0byBiZSBpbXBvcnRlZFxuICovXG5jb25zdCBsb2FkX2RhdGEgPSBmdW5jdGlvbihlbmRwb2ludClcbntcbiAgICBsZXQgaXRlbXMgPSBbXTtcblxuICAgIGlmKGVuZHBvaW50KXtcbiAgICAgICAgZmV0Y2goZW5kcG9pbnQpXG4gICAgICAgICAgLnRoZW4oIHJlc3BvbnNlID0+IHJlc3BvbnNlLmpzb24oKSApXG4gICAgICAgICAgLnRoZW4oIGRhdGEgPT4ge1xuICAgICAgICAgICAgICBpdGVtcyA9IGNyZWF0ZV9pdGVtcyhkYXRhKTtcbiAgICAgICAgICAgICAgaXRlbXNfbG9va3VwID0gaXRlbXM7XG4gICAgICAgICAgICAgIGluaXRfbWFwKCBpdGVtcyApO1xuICAgICAgICAgICAgICBpbml0X3RpbWVsaW5lKCBpdGVtcyApO1xuICAgICAgICAgICAgICBpbml0X2xlZ2VuZCggaXRlbXMgKTtcbiAgICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpdGVtc19zaXplID0gMjA7XG4gICAgICAgIGl0ZW1zID0gbmV3IEFycmF5KGl0ZW1zX3NpemUpLmZpbGwoKS5tYXAoIChpLCBuKSA9PiAoe1xuICAgICAgICAgICAgcGsgICAgIDogbixcbiAgICAgICAgICAgIG5hbWUgICA6IGxvcmVtLmdlbmVyYXRlV29yZHMoIHJpbnQoMywgOCkgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSggL15cXHcvLCBjID0+IGMudG9VcHBlckNhc2UoKSApLCAvLyBjYXBpdGFsaXplIGFueSBzZW50ZW5jZVxuICAgICAgICAgICAgYm9keSAgIDogbG9yZW0uZ2VuZXJhdGVTZW50ZW5jZXMoIHJpbnQoMywgNSkgKSxcbiAgICAgICAgICAgIGltZyAgICA6ICcvc3RhdGljL3NpdGUvaW1nL2JsYW5rLWltYWdlLnN2ZycsXG4gICAgICAgICAgICBjYXRzICAgOiByYW5kb21fY2F0cygyKSxcbiAgICAgICAgICAgIGRhdGUgICA6IHJhbmRvbV9kYXRlKFwiMjAyMC0wMS0wMVwiKSxcbiAgICAgICAgICAgIGxhdGxvbiA6IHJhbmRvbV9sYXRsb24oIE1BUF9ERUZBVUxUUy52aWV3WzBdICksXG4gICAgICAgICAgICBsbmsgICAgOiAnLycsXG4gICAgICAgIH0pKS5zb3J0KChhLGIpID0+IGIuZGF0ZSAtIGEuZGF0ZSk7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goaSA9PiB7XG4gICAgICAgICAgICBpLmRhdGUgPSBuZXcgRGF0ZShpLmRhdGUpLnRvTG9jYWxlRGF0ZVN0cmluZygnZXMtRVMnKTtcbiAgICAgICAgICAgIGkudGVybXMgPSBbXTtcbiAgICAgICAgICAgIGZvcihjb25zdCBjYXQgaW4gaS5jYXRzKXtcbiAgICAgICAgICAgICAgICBpLmNhdHNbY2F0XS5mb3JFYWNoKHRlcm0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpLnRlcm1zLnB1c2godGVybSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbXNfbG9va3VwID0gaXRlbXM7XG4gICAgICAgIGluaXRfbWFwKCBpdGVtcyApO1xuICAgICAgICBpbml0X3RpbWVsaW5lKCBpdGVtcyApO1xuICAgICAgICBpbml0X2xlZ2VuZCggaXRlbXMgKTtcbiAgICB9XG59XG5cbndpbmRvdy5vbmxvYWQgPSAoKT0+e1xuICAgIGxvYWRfZGF0YSgnL2FwaS8xLjAvdGVzdGltb25pZXMvJyk7XG59O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
\ No newline at end of file
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LmpzIl0sIm5hbWVzIjpbImRheWpzIiwicmVxdWlyZSIsInJlbGF0aXZlVGltZSIsImRheWpzX2VzIiwiZXh0ZW5kIiwibG9jYWxlIiwiaXNfbW9iaWxlIiwid2luZG93IiwibWF0Y2hNZWRpYSIsIm1hdGNoZXMiLCJsb3JlbSIsIkxvcmVtSXBzdW0iLCJzZW50ZW5jZXNQZXJQYXJhZ3JhcGgiLCJtYXgiLCJtaW4iLCJ3b3Jkc1BlclNlbnRlbmNlIiwibWFwIiwiaXRlbXNfbG9va3VwIiwiaXRlbV9zZWxlY3RlZCIsImNhdGVnb3JpZXMiLCJNQVBfREVGQVVMVFMiLCJ2aWV3IiwicHJvdmlkZXJzIiwib3NtIiwidGlsZXMiLCJhdHRyaWJ1dGlvbiIsImRlZmF1bHRfcHJvdmlkZXIiLCJyYW5kb21fbGF0bG9uIiwicG9pbnQiLCJkaXN0YW5jZV9mYWN0b3JfbGF0IiwiZGlzdGFuY2VfZmFjdG9yX2xvbiIsIk1hdGgiLCJyYW5kb20iLCJyaW50IiwiZmxvb3IiLCJyYW5kb21fZGF0ZSIsInN0YXJ0IiwiZW5kIiwicyIsIkRhdGUiLCJnZXRUaW1lIiwiZSIsInJhbmRvbV9jYXRzIiwiY2F0ZWdvcmllc19udW1iZXIiLCJsZXR0ZXJzIiwiaSIsImNhdCIsImNoYXJBdCIsInRlcm1zIiwiaiIsInB1c2giLCJzZWxlY3RfaXRlbSIsImlkIiwicG9zdHMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicG9zdCIsImNscyIsImNsYXNzTGlzdCIsImFkZCIsImNvbnRhaW5zIiwicmVtb3ZlIiwic2VsZWN0ZWRfcG9zdCIsInF1ZXJ5U2VsZWN0b3IiLCJtYXJrZXJzIiwibWFya2VyIiwic2VsZWN0ZWRfbWFya2VyIiwicGFuVG8iLCJmaWx0ZXIiLCJwayIsImxhdGxvbiIsInNob3dfYWxsX3RpbWVsaW5lX2l0ZW1zIiwidGVybV9uYW1lIiwidGVybV9pZCIsImluaXRfbWFwIiwiaXRlbXMiLCJMIiwic2Nyb2xsV2hlZWxab29tIiwiem9vbUNvbnRyb2wiLCJtaW5ab29tIiwibWF4Wm9vbSIsInNldFZpZXciLCJwcm92aWRlciIsInRpbGVMYXllciIsImFkZFRvIiwiY2xhc3NlcyIsInRlcm0iLCJzbHVnaWZ5IiwidG9Mb3dlckNhc2UiLCJpY29uIiwiaWNvblVybCIsIm1haW5fdGVybSIsInNoYWRvd1VybCIsImljb25TaXplIiwic2hhZG93QW5jaG9yIiwiY2xhc3NOYW1lIiwiYmluZFBvcHVwIiwibmFtZSIsIm9uIiwibGF5ZXJHcm91cCIsImluaXRfdGltZWxpbmUiLCJ0aW1lbGluZSIsIml0ZW0iLCJjcmVhdGVFbGVtZW50IiwidmlkZW9faG9sZGVyIiwidmlkZW8iLCJzZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsImlubmVySFRNTCIsImRhdGUiLCJmcm9tTm93IiwiY2F0cyIsImpvaW4iLCJhZGRFdmVudExpc3RlbmVyIiwiaW5pdF9sZWdlbmQiLCJzZWxlY3RlZCIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJjYXRlZ29yaWVzX25vZGUiLCJzb3J0ZWQiLCJzb3J0IiwiY2F0ZWdvcnlfbm9kZSIsInRhcmdldCIsImNhdGVnb3J5IiwicGFyZW50Tm9kZSIsImRhdGFzZXQiLCJjYXRlZ29yeV90ZXJtcyIsImFjdGlvbiIsInRvZ2dsZSIsImNoZWNrX2l0ZW1zIiwibGVnZW5kIiwiaXRlbV9kaXNwbGF5cyIsImlzX3Zpc2libGUiLCJkIiwiaW5jbHVkZXMiLCJjcmVhdGVfaXRlbXMiLCJvdGhlcl9jYXRlZ29yaWVzIiwiY3JlYXRpb25fZGF0ZSIsInBvc2l0aW9uIiwiY29vcmRpbmF0ZXMiLCJyZXZlcnNlIiwibG9hZF9kYXRhIiwiZW5kcG9pbnQiLCJmZXRjaCIsInRoZW4iLCJyZXNwb25zZSIsImpzb24iLCJkYXRhIiwiaXRlbXNfc2l6ZSIsIkFycmF5IiwiZmlsbCIsIm4iLCJnZW5lcmF0ZVdvcmRzIiwicmVwbGFjZSIsImMiLCJ0b1VwcGVyQ2FzZSIsImJvZHkiLCJnZW5lcmF0ZVNlbnRlbmNlcyIsImltZyIsImxuayIsImEiLCJiIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwib25sb2FkIl0sIm1hcHBpbmdzIjoiO1FBQUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSxRQUFRLG9CQUFvQjtRQUM1QjtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLGlCQUFpQiw0QkFBNEI7UUFDN0M7UUFDQTtRQUNBLGtCQUFrQiwyQkFBMkI7UUFDN0M7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBOztRQUVBOztRQUVBO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7O1FBRUE7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTs7O1FBR0E7UUFDQTs7UUFFQTtRQUNBOztRQUVBO1FBQ0E7UUFDQTtRQUNBLDBDQUEwQyxnQ0FBZ0M7UUFDMUU7UUFDQTs7UUFFQTtRQUNBO1FBQ0E7UUFDQSx3REFBd0Qsa0JBQWtCO1FBQzFFO1FBQ0EsaURBQWlELGNBQWM7UUFDL0Q7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBLHlDQUF5QyxpQ0FBaUM7UUFDMUUsZ0hBQWdILG1CQUFtQixFQUFFO1FBQ3JJO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0EsMkJBQTJCLDBCQUEwQixFQUFFO1FBQ3ZELGlDQUFpQyxlQUFlO1FBQ2hEO1FBQ0E7UUFDQTs7UUFFQTtRQUNBLHNEQUFzRCwrREFBK0Q7O1FBRXJIO1FBQ0E7O1FBRUE7UUFDQTtRQUNBO1FBQ0E7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QUFTQSxDQUFDLENBQUNyRCxJQUFGLEdBQVNvRCxDQUFDLENBQUNwRCxJQVZyQixDQUFSO0FBV0FsQyxTQUFLLENBQUNwQixPQUFOLENBQWNYLENBQUMsSUFBSTtBQUNmQSxPQUFDLENBQUNpRSxJQUFGLEdBQVMsSUFBSXZFLElBQUosQ0FBU00sQ0FBQyxDQUFDaUUsSUFBWCxFQUFpQnNELGtCQUFqQixDQUFvQyxPQUFwQyxDQUFUO0FBQ0F2SCxPQUFDLENBQUNHLEtBQUYsR0FBVSxFQUFWOztBQUNBLFdBQUksTUFBTUYsR0FBVixJQUFpQkQsQ0FBQyxDQUFDbUUsSUFBbkIsRUFBd0I7QUFDcEJuRSxTQUFDLENBQUNtRSxJQUFGLENBQU9sRSxHQUFQLEVBQVlVLE9BQVosQ0FBb0IrQixJQUFJLElBQUk7QUFDeEIxQyxXQUFDLENBQUNHLEtBQUYsQ0FBUUUsSUFBUixDQUFhcUMsSUFBYjtBQUNILFNBRkQ7QUFHSDs7QUFBQTtBQUNKLEtBUkQ7QUFTQXRFLGdCQUFZLEdBQUcyRCxLQUFmO0FBQ0FELFlBQVEsQ0FBRUMsS0FBRixDQUFSO0FBQ0F5QixpQkFBYSxDQUFFekIsS0FBRixDQUFiO0FBQ0F1QyxlQUFXLENBQUV2QyxLQUFGLENBQVg7QUFDSDtBQUNKLENBekNEOztBQTJDQXJFLE1BQU0sQ0FBQzhKLE1BQVAsR0FBZ0IsTUFBSTtBQUNoQnRCLFdBQVMsQ0FBQyx1QkFBRCxDQUFUO0FBQ0gsQ0FGRCxDIiwiZmlsZSI6Im1hcC5qcyIsInNvdXJjZXNDb250ZW50IjpbIiBcdC8vIGluc3RhbGwgYSBKU09OUCBjYWxsYmFjayBmb3IgY2h1bmsgbG9hZGluZ1xuIFx0ZnVuY3Rpb24gd2VicGFja0pzb25wQ2FsbGJhY2soZGF0YSkge1xuIFx0XHR2YXIgY2h1bmtJZHMgPSBkYXRhWzBdO1xuIFx0XHR2YXIgbW9yZU1vZHVsZXMgPSBkYXRhWzFdO1xuIFx0XHR2YXIgZXhlY3V0ZU1vZHVsZXMgPSBkYXRhWzJdO1xuXG4gXHRcdC8vIGFkZCBcIm1vcmVNb2R1bGVzXCIgdG8gdGhlIG1vZHVsZXMgb2JqZWN0LFxuIFx0XHQvLyB0aGVuIGZsYWcgYWxsIFwiY2h1bmtJZHNcIiBhcyBsb2FkZWQgYW5kIGZpcmUgY2FsbGJhY2tcbiBcdFx0dmFyIG1vZHVsZUlkLCBjaHVua0lkLCBpID0gMCwgcmVzb2x2ZXMgPSBbXTtcbiBcdFx0Zm9yKDtpIDwgY2h1bmtJZHMubGVuZ3RoOyBpKyspIHtcbiBcdFx0XHRjaHVua0lkID0gY2h1bmtJZHNbaV07XG4gXHRcdFx0aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkgJiYgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG4gXHRcdFx0XHRyZXNvbHZlcy5wdXNoKGluc3RhbGxlZENodW5rc1tjaHVua0lkXVswXSk7XG4gXHRcdFx0fVxuIFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDA7XG4gXHRcdH1cbiBcdFx0Zm9yKG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG4gXHRcdFx0aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcbiBcdFx0XHRcdG1vZHVsZXNbbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuIFx0XHRcdH1cbiBcdFx0fVxuIFx0XHRpZihwYXJlbnRKc29ucEZ1bmN0aW9uKSBwYXJlbnRKc29ucEZ1bmN0aW9uKGRhdGEpO1xuXG4gXHRcdHdoaWxlKHJlc29sdmVzLmxlbmd0aCkge1xuIFx0XHRcdHJlc29sdmVzLnNoaWZ0KCkoKTtcbiBcdFx0fVxuXG4gXHRcdC8vIGFkZCBlbnRyeSBtb2R1bGVzIGZyb20gbG9hZGVkIGNodW5rIHRvIGRlZmVycmVkIGxpc3RcbiBcdFx0ZGVmZXJyZWRNb2R1bGVzLnB1c2guYXBwbHkoZGVmZXJyZWRNb2R1bGVzLCBleGVjdXRlTW9kdWxlcyB8fCBbXSk7XG5cbiBcdFx0Ly8gcnVuIGRlZmVycmVkIG1vZHVsZXMgd2hlbiBhbGwgY2h1bmtzIHJlYWR5XG4gXHRcdHJldHVybiBjaGVja0RlZmVycmVkTW9kdWxlcygpO1xuIFx0fTtcbiBcdGZ1bmN0aW9uIGNoZWNrRGVmZXJyZWRNb2R1bGVzKCkge1xuIFx0XHR2YXIgcmVzdWx0O1xuIFx0XHRmb3IodmFyIGkgPSAwOyBpIDwgZGVmZXJyZWRNb2R1bGVzLmxlbmd0aDsgaSsrKSB7XG4gXHRcdFx0dmFyIGRlZmVycmVkTW9kdWxlID0gZGVmZXJyZWRNb2R1bGVzW2ldO1xuIFx0XHRcdHZhciBmdWxmaWxsZWQgPSB0cnVlO1xuIFx0XHRcdGZvcih2YXIgaiA9IDE7IGogPCBkZWZlcnJlZE1vZHVsZS5sZW5ndGg7IGorKykge1xuIFx0XHRcdFx0dmFyIGRlcElkID0gZGVmZXJyZWRNb2R1bGVbal07XG4gXHRcdFx0XHRpZihpbnN0YWxsZWRDaHVua3NbZGVwSWRdICE9PSAwKSBmdWxmaWxsZWQgPSBmYWxzZTtcbiBcdFx0XHR9XG4gXHRcdFx0aWYoZnVsZmlsbGVkKSB7XG4gXHRcdFx0XHRkZWZlcnJlZE1vZHVsZXMuc3BsaWNlKGktLSwgMSk7XG4gXHRcdFx0XHRyZXN1bHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IGRlZmVycmVkTW9kdWxlWzBdKTtcbiBcdFx0XHR9XG4gXHRcdH1cblxuIFx0XHRyZXR1cm4gcmVzdWx0O1xuIFx0fVxuXG4gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuIFx0Ly8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4gXHQvLyBQcm9taXNlID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxuIFx0dmFyIGluc3RhbGxlZENodW5rcyA9IHtcbiBcdFx0XCJtYXBcIjogMFxuIFx0fTtcblxuIFx0dmFyIGRlZmVycmVkTW9kdWxlcyA9IFtdO1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSkge1xuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuIFx0XHR9XG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRpOiBtb2R1bGVJZCxcbiBcdFx0XHRsOiBmYWxzZSxcbiBcdFx0XHRleHBvcnRzOiB7fVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikge1xuIFx0XHRpZighX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIG5hbWUpKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBnZXR0ZXIgfSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbiBcdF9fd2VicGFja19yZXF1aXJlX18uciA9IGZ1bmN0aW9uKGV4cG9ydHMpIHtcbiBcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG4gXHRcdH1cbiBcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbiBcdH07XG5cbiBcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4gXHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbiBcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuIFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbiBcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gX193ZWJwYWNrX3JlcXVpcmVfXyh2YWx1ZSk7XG4gXHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4gXHRcdGlmKChtb2RlICYgNCkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4gXHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShucywgJ2RlZmF1bHQnLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2YWx1ZSB9KTtcbiBcdFx0aWYobW9kZSAmIDIgJiYgdHlwZW9mIHZhbHVlICE9ICdzdHJpbmcnKSBmb3IodmFyIGtleSBpbiB2YWx1ZSkgX193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBrZXksIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gdmFsdWVba2V5XTsgfS5iaW5kKG51bGwsIGtleSkpO1xuIFx0XHRyZXR1cm4gbnM7XG4gXHR9O1xuXG4gXHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG4gXHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuIFx0XHRcdGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBtb2R1bGVbJ2RlZmF1bHQnXTsgfSA6XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTtcbiBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgJ2EnLCBnZXR0ZXIpO1xuIFx0XHRyZXR1cm4gZ2V0dGVyO1xuIFx0fTtcblxuIFx0Ly8gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmplY3QsIHByb3BlcnR5KSB7IHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBwcm9wZXJ0eSk7IH07XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9cIjtcblxuIFx0dmFyIGpzb25wQXJyYXkgPSB3aW5kb3dbXCJ3ZWJwYWNrSnNvbnBcIl0gPSB3aW5kb3dbXCJ3ZWJwYWNrSnNvbnBcIl0gfHwgW107XG4gXHR2YXIgb2xkSnNvbnBGdW5jdGlvbiA9IGpzb25wQXJyYXkucHVzaC5iaW5kKGpzb25wQXJyYXkpO1xuIFx0anNvbnBBcnJheS5wdXNoID0gd2VicGFja0pzb25wQ2FsbGJhY2s7XG4gXHRqc29ucEFycmF5ID0ganNvbnBBcnJheS5zbGljZSgpO1xuIFx0Zm9yKHZhciBpID0gMDsgaSA8IGpzb25wQXJyYXkubGVuZ3RoOyBpKyspIHdlYnBhY2tKc29ucENhbGxiYWNrKGpzb25wQXJyYXlbaV0pO1xuIFx0dmFyIHBhcmVudEpzb25wRnVuY3Rpb24gPSBvbGRKc29ucEZ1bmN0aW9uO1xuXG5cbiBcdC8vIGFkZCBlbnRyeSBtb2R1bGUgdG8gZGVmZXJyZWQgbGlzdFxuIFx0ZGVmZXJyZWRNb2R1bGVzLnB1c2goW1wiLi9zcmMvaW5kZXguanNcIixcInZlbmRvcnN+bWFwXCJdKTtcbiBcdC8vIHJ1biBkZWZlcnJlZCBtb2R1bGVzIHdoZW4gcmVhZHlcbiBcdHJldHVybiBjaGVja0RlZmVycmVkTW9kdWxlcygpO1xuIiwiaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgeyBMb3JlbUlwc3VtIH0gZnJvbSBcImxvcmVtLWlwc3VtXCI7XG5pbXBvcnQgc2x1Z2lmeSBmcm9tIFwic2x1Z2lmeVwiO1xudmFyIGRheWpzID0gcmVxdWlyZSgnZGF5anMnKVxudmFyIHJlbGF0aXZlVGltZSA9IHJlcXVpcmUoJ2RheWpzL3BsdWdpbi9yZWxhdGl2ZVRpbWUnKVxudmFyIGRheWpzX2VzID0gcmVxdWlyZSgnZGF5anMvbG9jYWxlL2VzJyk7XG5kYXlqcy5leHRlbmQocmVsYXRpdmVUaW1lKTtcbmRheWpzLmxvY2FsZSgnZXMnKTtcblxuLy8gRGV0ZWN0IGlmIGRldmljZSBpcyBtb2JpbGVcbi8vIENoZWNrIGJyZWFrcG9pbnRzIGluIHNhc3Mgc28gdGhpcyB2YWx1ZSBtYXRjaGVzIGJyZWFrcG9pbnRzIGluIHRoZSBsYXlvdXRcbmxldCBpc19tb2JpbGUgPSB3aW5kb3cubWF0Y2hNZWRpYShcbiAgICBcIm9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweClcIlxuKS5tYXRjaGVzO1xuXG4vLyBTZXRzIHVwIGxvcmVtIGlwc3VtIGdlbmVyYXRvclxuY29uc3QgbG9yZW0gPSBuZXcgTG9yZW1JcHN1bSh7XG4gICAgc2VudGVuY2VzUGVyUGFyYWdyYXBoIDogeyBtYXg6ICA4LCBtaW46IDQgfSxcbiAgICB3b3Jkc1BlclNlbnRlbmNlICAgICAgOiB7IG1heDogMTYsIG1pbjogNCB9XG59KTtcblxubGV0IG1hcDtcbmxldCBpdGVtc19sb29rdXAgID0gW107XG5sZXQgaXRlbV9zZWxlY3RlZCA9IGZhbHNlO1xuXG5sZXQgY2F0ZWdvcmllcyA9IHt9O1xuXG4vLyBMZWFmbGV0IG1hcCBkZWZhdWx0c1xuY29uc3QgTUFQX0RFRkFVTFRTID0ge1xuICAgIHZpZXcgOiBbIFszNy4zODA4LCAtNS45NzAwXSwgMTMuMyBdLFxuICAgIHByb3ZpZGVycyA6IHtcbiAgICAgICAgb3NtIDoge1xuICAgICAgICAgICAgdGlsZXMgICAgICAgOiAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLFxuICAgICAgICAgICAgYXR0cmlidXRpb24gOiAnJmNvcHk7IDxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnLFxuICAgICAgICB9LFxuICAgIH0sXG4gICAgZGVmYXVsdF9wcm92aWRlciA6ICdvc20nLFxufTtcblxuLyoqXG4gKiAgR2V0cyBhIHJhbmRvbSBsYXRsb24gbmVhciBhIGdpdmVuIHBvaW50XG4gKiAgQHBhcmFtIHtBcnJheX0gcG9pbnQgLSBDb29yZHMgYXJyYXkgaW4gdGhlIGZvcm0gWyBsYXRpdHVkZSwgbG9uZ2l0dWRlIF1cbiAqICBAcGFyYW0ge0Zsb2F0fSBkaXN0YW5jZV9mYWN0b3JfbGF0IC0gRGlzdGFuY2UgbXVsdGlwbGllciAtbGF0aXR1ZGVcbiAqICBAcGFyYW0ge0Zsb2F0fSBkaXN0YW5jZV9mYWN0b3JfbG9uIC0gRGlzdGFuY2UgbXVsdGlwbGllciAtIGxvbmdpdHVkZVxuICovXG5jb25zdCByYW5kb21fbGF0bG9uID0gZnVuY3Rpb24ocG9pbnQsIGRpc3RhbmNlX2ZhY3Rvcl9sYXQ9LjI1LCBkaXN0YW5jZV9mYWN0b3JfbG9uPS4yNSApe1xuICAgIHJldHVybiBbXG4gICAgICAgIHBvaW50WzBdICsgKE1hdGgucmFuZG9tKCkgLSAuNSkgKiBkaXN0YW5jZV9mYWN0b3JfbGF0LFxuICAgICAgICBwb2ludFsxXSArIChNYXRoLnJhbmRvbSgpIC0gLjUpICogZGlzdGFuY2VfZmFjdG9yX2xvblxuICAgIF07XG59XG5cbi8qKlxuICogIEdldHMgYSByYW5kb20gaW50ZWdlclxuICogIEBwYXJhbSB7SW50ZWdlcn0gbWluIC0gTWluaW11bSB2YWx1ZVxuICogIEBwYXJhbSB7SW50ZWdlcn0gbWF4IC0gTWF4aW11bSB2YWx1ZVxuICovXG5jb25zdCByaW50ID0gZnVuY3Rpb24obWluLCBtYXgpe1xuICAgIHJldHVybiBtaW4gKyBNYXRoLmZsb29yKCBNYXRoLnJhbmRvbSgpICogKG1heC1taW4pICk7XG59XG5cbi8qKlxuICogIEdldHMgYSByYW5kb20gZGF0ZVxuICogIEBwYXJhbSB7U3RyaW5nfSBzdGFydCAtIFN0YXJ0IGRhdGUgaW4gdGhlIGZvcm1hdCBcInl5eXktZGQtbW1cIlxuICogIEBwYXJhbSB7U3RyaW5nfSBlbmQgICAtIEVuZCBkYXRlIGluIHRoZSBmb3JtYXQgXCJ5eXl5LWRkLW1tXCJcbiAqL1xuZnVuY3Rpb24gcmFuZG9tX2RhdGUoc3RhcnQsIGVuZCkge1xuICAgIHZhciBzID0gbmV3IERhdGUoIHN0YXJ0ICkuZ2V0VGltZSgpO1xuICAgIHZhciBlID0gKGVuZCA/IG5ldyBEYXRlKGVuZCkgOiBuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gICAgcmV0dXJuIHJpbnQocyxlKTtcbn1cblxuLyoqXG4gKiAgR2V0cyByYW5kb20gY2F0ZWdvcmllc1xuICogIEBwYXJhbSB7SW50ZWdlcn0gY2F0ZWdvcmllc19udW1iZXIgLSBOdW1iZXIgb2YgaW5kZXBlbmRlbnQgY2F0ZWdvcmllcyAobm90IHRlcm1zKVxuICovXG5mdW5jdGlvbiByYW5kb21fY2F0cyhjYXRlZ29yaWVzX251bWJlcikge1xuICAgIGxldCBjYXRlZ29yaWVzID0gW107XG4gICAgbGV0IGxldHRlcnMgICAgPSAnYWJjZWRlZmhpaic7XG4gICAgZm9yKGxldCBpID0gMDsgaSA8IGNhdGVnb3JpZXNfbnVtYmVyOyBpKyspe1xuICAgICAgICBjb25zdCBjYXQgPSBsZXR0ZXJzLmNoYXJBdChpKTtcbiAgICAgICAgY2F0ZWdvcmllc1sgY2F0IF0gPSBbXTtcbiAgICAgICAgbGV0IHRlcm1zID0gcmludCgxLCA2KTtcbiAgICAgICAgZm9yKGxldCBqID0gMDsgaiA8IHRlcm1zOyBqKyspIHtcbiAgICAgICAgICAgIGNhdGVnb3JpZXNbY2F0XS5wdXNoKGB0LS0ke2l9JHtqfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYXRlZ29yaWVzO1xufVxuXG5cbi8qKlxuICogIEhpZGVzIGFsbCB0aW1lbGluZSBpdGVtcyBleGNlcHQgdGhlIG9uZSBzZWxlY3RlZFxuICogIEBwYXJhbSB7SW50ZWdlcn0gaWQgLSBpZCBvZiB0aGUgc2VsZWN0ZWQgaXRlbVxuICovXG5jb25zdCBzZWxlY3RfaXRlbSA9IGZ1bmN0aW9uKGlkKVxue1xuICAgIC8vIFRpbWVsaW5lXG4gICAgY29uc3QgcG9zdHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGltZWxpbmUtaXRlbScpO1xuICAgIHBvc3RzLmZvckVhY2goIHBvc3QgPT4ge1xuICAgICAgICBjb25zdCBjbHMgPSBwb3N0LmNsYXNzTGlzdDtcbiAgICAgICAgY2xzLmFkZCgnaGlkZGVuJyk7XG4gICAgICAgIGlmKGNscy5jb250YWlucygnc2VsZWN0ZWQnKSkgY2xzLnJlbW92ZSgnc2VsZWN0ZWQnKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZWxlY3RlZF9wb3N0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgLnRpbWVsaW5lLWl0ZW0uaXRlbS0ke2lkfWApO1xuICAgIHNlbGVjdGVkX3Bvc3QuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7XG4gICAgc2VsZWN0ZWRfcG9zdC5jbGFzc0xpc3QuYWRkKCdzZWxlY3RlZCcpO1xuICAgIC8vIE1hcFxuICAgIGNvbnN0IG1hcmtlcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubGVhZmxldC1tYXJrZXItaWNvbicpO1xuICAgIG1hcmtlcnMuZm9yRWFjaChtYXJrZXIgPT4ge1xuICAgICAgICBtYXJrZXIuY2xhc3NMaXN0LmFkZCgnaW5hY3RpdmUnKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZWxlY3RlZF9tYXJrZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAubGVhZmxldC1tYXJrZXItaWNvbi5pdGVtLSR7aWR9YCk7XG4gICAgc2VsZWN0ZWRfbWFya2VyLmNsYXNzTGlzdC5yZW1vdmUoJ2luYWN0aXZlJyk7XG4gICAgbWFwLnBhblRvKCBpdGVtc19sb29rdXAuZmlsdGVyKGkgPT4gaS5wayA9PSBpZClbMF0ubGF0bG9uICk7XG4gICAgLy8gQWxsXG4gICAgaXRlbV9zZWxlY3RlZCA9IHRydWU7XG59XG5cbi8qKlxuICogIFNob3dzIGFsbCBpdGVtcyBpbiB0aW1lbGluZSBpZiBhbnlvbmUgaXMgc2VsZWN0ZWRcbiAqL1xuY29uc3Qgc2hvd19hbGxfdGltZWxpbmVfaXRlbXMgPSBmdW5jdGlvbigpXG57XG4gICAgaWYoIWl0ZW1fc2VsZWN0ZWQpIHJldHVybjtcblxuICAgIHZhciBwb3N0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50aW1lbGluZS1pdGVtJyk7XG4gICAgcG9zdHMuZm9yRWFjaCggcG9zdCA9PiB7XG4gICAgICAgIHBvc3QuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7XG4gICAgICAgIHBvc3QuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKTtcbiAgICB9KTtcbiAgICBjb25zdCBtYXJrZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxlYWZsZXQtbWFya2VyLWljb24nKTtcbiAgICBtYXJrZXJzLmZvckVhY2gobWFya2VyID0+IHtcbiAgICAgICAgbWFya2VyLmNsYXNzTGlzdC5yZW1vdmUoJ2luYWN0aXZlJyk7XG4gICAgfSk7XG4gICAgaXRlbV9zZWxlY3RlZCA9IGZhbHNlO1xufVxuXG4vKipcbiAqICBSZXR1cm5zIHRoZSBsYWJlbCBvZiBhIGdpdmVuIHRlcm1faWRcbiAqICBAcGFyYW0ge1N0cmluZ30gY2F0ZWdvcnlfbmFtZSAtIE5hbWUgb2YgdGhlIGNhdGVnb3J5XG4gKiAgQHBhcmFtIHtTdHJpbmd9IHRlcm1fbmFtZSAtIE5hbWUgb2YgdGhlIHRlcm1cbiAqL1xuY29uc3QgdGVybV9uYW1lID0gZnVuY3Rpb24odGVybV9pZCl7XG4gICAgY29uc3QgdGVybXMgPSB7fTtcbiAgICByZXR1cm4gdGVybV9pZCBpbiB0ZXJtcyA/IHRlcm1zW3Rlcm1faWRdIDogdGVybV9pZDtcbn1cblxuLyoqXG4gKiAgU2V0cyB1cCBsZWFmbGV0IG1hcFxuICogIEBwYXJhbSB7TWFwfSBtYXAgICAgIC0gQSB2YXJpYWJsZSB0byBob2xkIHRoZSBsZWFmbGV0IG1hcCBhbmQgbWFrZSBpdCBhY2Nlc2libGUgdG8gb3RoZXIgbWV0aG9kc1xuICogIEBwYXJhbSB7QXJyYXl9IGl0ZW1zIC0gQXJyYXkgd2l0aCBkYXRhIHRvIHNldCBtYXJrZXJzXG4gKi9cbmNvbnN0IGluaXRfbWFwID0gZnVuY3Rpb24oaXRlbXMpXG57XG4gICAgLy8gQ3JlYXRlIG1hcFxuICAgIG1hcCA9IEwubWFwKCdtYXAnICwge1xuICAgICAgICBzY3JvbGxXaGVlbFpvb20gOiAhaXNfbW9iaWxlLCAgLy8gZGlzYWJsZSB3aGVlbHpvb20gb25seSBpbiBzbWFsbCBkZXZpY2VzXG4gICAgICAgIHpvb21Db250cm9sIDogZmFsc2UsXG4gICAgICAgIG1pblpvb206IDEyLFxuICAgICAgICBtYXhab29tOiAxNlxuICAgIH0pLnNldFZpZXcoXG4gICAgICAgIC4uLk1BUF9ERUZBVUxUUy52aWV3XG4gICAgKTtcblxuICAgIC8vIFNldCB1cCBwcm92aWRlciBmcm9tIGRlZmF1bHRzXG4gICAgY29uc3QgcHJvdmlkZXIgPSBNQVBfREVGQVVMVFMucHJvdmlkZXJzW1xuICAgICAgICBNQVBfREVGQVVMVFMuZGVmYXVsdF9wcm92aWRlclxuICAgIF07XG5cbiAgICAvLyBTZXQgdXAgdGlsZXNcbiAgICBMLnRpbGVMYXllciggcHJvdmlkZXIudGlsZXMsIHtcbiAgICAgICAgYXR0cmlidXRpb246IHByb3ZpZGVyLmF0dHJpYnV0aW9uLFxuICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAvLyBMb2FkIGl0ZW1zXG4gICAgaWYoaXRlbXMpe1xuICAgICAgICBjb25zdCBtYXJrZXJzID0gaXRlbXMubWFwKGkgPT4ge1xuICAgICAgICAgICAgbGV0IGNsYXNzZXMgPSBgaXRlbS0ke2kucGt9YDtcbiAgICAgICAgICAgIGkudGVybXMuZm9yRWFjaCggdGVybSA9PiB7IGNsYXNzZXMgKz0gYCAkeyBzbHVnaWZ5KHRlcm0pLnRvTG93ZXJDYXNlKCkgfWAgfSk7XG4gICAgICAgICAgICByZXR1cm4gTC5tYXJrZXIoIGkubGF0bG9uLCB7XG4gICAgICAgICAgICAgICAgaWNvbiA6IEwuaWNvbih7XG4gICAgICAgICAgICAgICAgICAgIGljb25VcmwgICAgICA6IGAvc3RhdGljL3NpdGUvaW1nL21hcmtlcnMvbWFya2VyLSR7aS5tYWluX3Rlcm19LnN2Z2AsXG4gICAgICAgICAgICAgICAgICAgIHNoYWRvd1VybCAgICA6IGAvc3RhdGljL3NpdGUvaW1nL21hcmtlcnMvbWFya2VyLXNoYWRvdy5zdmdgLFxuICAgICAgICAgICAgICAgICAgICBpY29uU2l6ZSAgICAgOiBbIDQwLCA0OCBdLFxuICAgICAgICAgICAgICAgICAgICBzaGFkb3dBbmNob3IgOiBbIDIwLCAwIF0sXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZSAgICA6IGNsYXNzZXMsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pLmJpbmRQb3B1cChcbiAgICAgICAgICAgICAgICBgPGg0IGNsYXNzPVwibWFwLWl0ZW1fX25hbWVcIj4keyBpLm5hbWUgfTwvaDQ+YCxcbiAgICAgICAgICAgICkub24oJ2NsaWNrJywgZnVuY3Rpb24oZSl7XG4gICAgICAgICAgICAgICAgc2VsZWN0X2l0ZW0oaS5wayk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICAgICAgTC5sYXllckdyb3VwKCBtYXJrZXJzICkuYWRkVG8oIG1hcCApO1xuICAgIH1cblxuICAgIG1hcC5vbignY2xpY2snLCAoKT0+IHtcbiAgICAgICBzaG93X2FsbF90aW1lbGluZV9pdGVtcygpO1xuICAgIH0pO1xufVxuXG4vKipcbiAqICBTZXRzIHVwIHRpbWVsaW5lXG4gKiAgQHBhcmFtIHtBcnJheX0gaXRlbXMgLSBBcnJheSB3aXRoIGRhdGEgdG8gc2V0IGl0ZW1zIGluIHRoZSB0aW1lbGluZVxuICovXG5jb25zdCBpbml0X3RpbWVsaW5lID0gZnVuY3Rpb24oaXRlbXMpXG57XG4gICAgaWYoIWl0ZW1zKSByZXR1cm47XG4gICAgY29uc3QgdGltZWxpbmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudGltZWxpbmUnKTtcbiAgICBpdGVtcy5mb3JFYWNoKCBpID0+IHtcbiAgICAgICAgdmFyIGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgaXRlbS5jbGFzc0xpc3QuYWRkKCBgaXRlbS0ke2kucGt9YCk7XG4gICAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgndGltZWxpbmUtaXRlbScpO1xuICAgICAgICB2YXIgdmlkZW9faG9sZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHZpZGVvX2hvbGRlci5jbGFzc0xpc3QuYWRkKCd0aW1lbGluZS1pdGVtX192aWRlbycpO1xuICAgICAgICB2YXIgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpO1xuICAgICAgICB2aWRlby5zZXRBdHRyaWJ1dGUoJ2NvbnRyb2xzJywgdHJ1ZSk7XG4gICAgICAgIHZpZGVvLnNldEF0dHJpYnV0ZSgnc3JjJywgaS52aWRlbyk7XG4gICAgICAgIHZpZGVvX2hvbGRlci5hcHBlbmRDaGlsZCh2aWRlbyk7XG4gICAgICAgIGl0ZW0uaW5uZXJIVE1MICs9IGA8cCBjbGFzcz1cInRpbWVsaW5lLWl0ZW1fX2RhdGVcIj4keyBkYXlqcyhpLmRhdGUpLmZyb21Ob3coKSB9PC9wPmA7XG4gICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQodmlkZW9faG9sZGVyKTtcbiAgICAgICAgaXRlbS5pbm5lckhUTUwgKz0gYDxoMyBjbGFzcz1cInRpbWVsaW5lLWl0ZW1fX25hbWVcIj4keyBpLm5hbWUgfTwvaDM+YDtcbiAgICAgICAgaXRlbS5pbm5lckhUTUwgKz0gYDxwIGNsYXNzPVwidGltZWxpbmUtaXRlbV9fdGVybXNcIj4keyBpLmNhdHNbJ2NhdGVnb3J5J10uam9pbihcIiwgXCIpIH08L3A+YDtcbiAgICAgICAgaXRlbS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpPT57IHNlbGVjdF9pdGVtKGkucGspOyB9KTtcbiAgICAgICAgdGltZWxpbmUuYXBwZW5kQ2hpbGQoIGl0ZW0gKTtcbiAgICB9ICk7XG59XG5cbi8qKlxuICogIFNldHMgdXAgbGVnZW5kXG4gKiAgQHBhcmFtIHtBcnJheX0gaXRlbXMgLSBBcnJheSB3aXRoIGRhdGEgdG8gc2V0IGl0ZW1zIGluIHRoZSB0aW1lbGluZVxuICovXG5jb25zdCBpbml0X2xlZ2VuZCA9IGZ1bmN0aW9uKGl0ZW1zKVxue1xuICAgIC8vIEl0ZXJhdGUgb3ZlciBlbGVtZW50cyBncmFiYmluZyBpdHMgY2F0ZWdvcmllc1xuICAgIGl0ZW1zLmZvckVhY2goIGl0ZW0gPT4ge1xuICAgICAgICBmb3IoY29uc3QgY2F0IGluIGl0ZW0uY2F0cylcbiAgICAgICAge1xuICAgICAgICAgICAgY29uc3QgdGVybXMgPSBpdGVtLmNhdHNbY2F0XTtcbiAgICAgICAgICAgIC8vIElmIGFscmVhZHkgY3JlYXRlZCBwdXNoIG9ubHkgbmV3IHRlcm1zIGludG8gdGhlIGNhdGVnb3J5XG4gICAgICAgICAgICBpZihjYXQgaW4gY2F0ZWdvcmllcyl7XG4gICAgICAgICAgICAgICAgdGVybXMuZm9yRWFjaCh0ZXJtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYoICEodGVybSBpbiBjYXRlZ29yaWVzW2NhdF0udGVybXMpICl7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdF0udGVybXNbdGVybV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBFbHNlIHB1c2ggYWxsIGl0ZW0gdGVybXMgaW50byB0aGUgY2F0ZWdvcnlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcmllc1tjYXRdID0ge1xuICAgICAgICAgICAgICAgICAgICAndGVybXMnIDoge30sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0ZXJtcy5mb3JFYWNoKHRlcm0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdF0udGVybXNbdGVybV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0ZWdvcmllc1tjYXRdLnNlbGVjdGVkID0gT2JqZWN0LmtleXMoY2F0ZWdvcmllc1tjYXRdLnRlcm1zKS5sZW5ndGg7XG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBjYXRlZ29yaWVzX25vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGVnZW5kX19jYXRlZ29yaWVzJyk7XG4gICAgZm9yKGNvbnN0IGNhdCBpbiBjYXRlZ29yaWVzKXtcbiAgICAgICAgLy8gQ3JlYXRlIG1lbnUgaXRlbXNcbiAgICAgICAgbGV0IHRlcm1zID0gJyc7XG4gICAgICAgIHZhciBzb3J0ZWQgPSBPYmplY3Qua2V5cyggY2F0ZWdvcmllc1tjYXRdLnRlcm1zICkuc29ydCgpO1xuICAgICAgICBzb3J0ZWQuZm9yRWFjaCggZnVuY3Rpb24odGVybSl7XG4gICAgICAgICAgICB0ZXJtcyArPSBgXFxcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImxlZ2VuZC1jYXRlZ29yeV9faXRlbSBvblwiIGRhdGEtaWQ9XCIkeyBzbHVnaWZ5KHRlcm0udG9Mb3dlckNhc2UoKSApIH1cIj5cXFxuICAgICAgICAgICAgICAgICR7IHRlcm0gfVxcXG4gICAgICAgICAgICA8L2xpPmA7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgY2F0ZWdvcnlfbm9kZSA9IGBcXFxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVnZW5kLWNhdGVnb3J5XCI+XFxcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImxlZ2VuZC1jYXRlZ29yeV9faXRlbXNcIiBkYXRhLWNhdD1cIiR7Y2F0fVwiPlxcXG4gICAgICAgICAgICAgICAgJHt0ZXJtc31cXFxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxlZ2VuZC1jYXRlZ29yeV9fdW5maWx0ZXJcIiBkYXRhLWFjdGlvbj1cInJlbW92ZV9maWx0ZXJzXCI+XFxcbiAgICAgICAgICAgICAgICAgICAgUXVpdGFyIGZpbHRyb3NcXFxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxcXG4gICAgICAgIDwvZGl2PmA7XG4gICAgICAgIGNhdGVnb3JpZXNfbm9kZS5pbm5lckhUTUwgKz0gY2F0ZWdvcnlfbm9kZTtcbiAgICB9XG5cbiAgICBjYXRlZ29yaWVzX25vZGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IHtcbiAgICAgICAgY29uc3QgaXRlbSAgICAgPSBlLnRhcmdldDtcbiAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBpdGVtLnBhcmVudE5vZGUuZGF0YXNldC5jYXQ7XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5X3Rlcm1zID0gaXRlbS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJy5sZWdlbmQtY2F0ZWdvcnlfX2l0ZW0nKTtcbiAgICAgICAgaWYoaXRlbS5kYXRhc2V0LmFjdGlvbiA9PSAncmVtb3ZlX2ZpbHRlcnMnKXtcbiAgICAgICAgICAgZm9yKGNvbnN0IHRlcm0gaW4gY2F0ZWdvcmllc1tjYXRlZ29yeV0udGVybXMpXG4gICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1t0ZXJtXSA9IHRydWU7XG4gICAgICAgICAgIGNhdGVnb3J5X3Rlcm1zLmZvckVhY2goIGkgPT4ge1xuICAgICAgICAgICAgICAgaS5jbGFzc0xpc3QuYWRkKCdvbicpO1xuICAgICAgICAgICB9KVxuICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XS5zZWxlY3RlZCA9IGNhdGVnb3J5X3Rlcm1zLmxlbmd0aDtcbiAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxlYWZsZXQtbWFya2VyLWljb24nKS5mb3JFYWNoKCBpID0+IHtcbiAgICAgICAgICAgICAgaS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcbiAgICAgICAgICAgfSlcbiAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRpbWVsaW5lLWl0ZW0nKS5mb3JFYWNoKCBpID0+IHtcbiAgICAgICAgICAgICAgaS5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcbiAgICAgICAgICAgfSlcbiAgICAgICAgfTtcbiAgICAgICAgaWYoaXRlbS5kYXRhc2V0LmlkKVxuICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCB0ZXJtX2lkICAgICAgICA9IGl0ZW0uZGF0YXNldC5pZDtcblxuICAgICAgICAgICAgLy8gSWYgZmlyc3QgdGVybSBzZWxlY3RlZCwgdW5jaGVjayBhbGwgZXhjZXB0aW5nIGl0c2VsZlxuICAgICAgICAgICAgaWYoY2F0ZWdvcmllc1tjYXRlZ29yeV0uc2VsZWN0ZWQgPT0gY2F0ZWdvcnlfdGVybXMubGVuZ3RoKXtcbiAgICAgICAgICAgICAgICBmb3IoY29uc3QgdGVybSBpbiBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtcylcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllc1tjYXRlZ29yeV0udGVybXNbdGVybV0gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1t0ZXJtX2lkXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcnlfdGVybXMuZm9yRWFjaCggaSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGkuY2xhc3NMaXN0LnJlbW92ZSgnb24nKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldLnNlbGVjdGVkID0gMTtcbiAgICAgICAgICAgICAgICBpdGVtLmNsYXNzTGlzdC5hZGQoJ29uJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldLnRlcm1zW3Rlcm1faWRdID0gIWNhdGVnb3JpZXNbY2F0ZWdvcnldLnRlcm1zW3Rlcm1faWRdO1xuICAgICAgICAgICAgICAgIGl0ZW0uY2xhc3NMaXN0LnRvZ2dsZSgnb24nKTtcbiAgICAgICAgICAgICAgICBpZihjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1t0ZXJtX2lkXSlcbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllc1tjYXRlZ29yeV0uc2VsZWN0ZWQrKztcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldLnNlbGVjdGVkLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZihjYXRlZ29yaWVzW2NhdGVnb3J5XS5zZWxlY3RlZCA9PSAwKXtcbiAgICAgICAgICAgICAgZm9yKGNvbnN0IHRlcm0gaW4gY2F0ZWdvcmllc1tjYXRlZ29yeV0udGVybXMpXG4gICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1t0ZXJtXSA9IHRydWU7XG4gICAgICAgICAgICAgIGNhdGVnb3J5X3Rlcm1zLmZvckVhY2goIGkgPT4geyBpLmNsYXNzTGlzdC5hZGQoJ29uJyk7IH0pXG4gICAgICAgICAgICAgIGNhdGVnb3JpZXNbY2F0ZWdvcnldLnNlbGVjdGVkID0gY2F0ZWdvcnlfdGVybXMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2hlY2tfaXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHZhciBsZWdlbmQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubGVnZW5kJyk7XG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxlZ2VuZF9fbGFiZWwnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCl7XG4gICAgICAgIGxlZ2VuZC5jbGFzc0xpc3QudG9nZ2xlKCdjb2xsYXBzZWQnKTtcbiAgICB9KTtcbiAgICBpZihpc19tb2JpbGUpe1xuICAgICAgICBsZWdlbmQuY2xhc3NMaXN0LmFkZCgnY29sbGFwc2VkJylcbiAgICB9XG59XG5cbi8qKlxuICogIENoZWNrcyBtYXJrZXJzIGFuZCBzZXRzIGl0cyB2aXNpYmlsaXR5IHJlZ2FyZGluZyBzZWxlY3RlZCBjYXRlZ29yaWVzXG4gKi9cbmNvbnN0IGNoZWNrX2l0ZW1zID0gZnVuY3Rpb24oKVxue1xuICAgIC8vIElmIHRoZXJlJ3MgYSBzZWxlY3RlZCB0aW1lbGluZSBpdGVtLCBkZXNlbGVjdCBpdFxuICAgIHZhciBzZWxlY3RlZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZCcpO1xuICAgIGlmKHNlbGVjdGVkKSBzZWxlY3RlZC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpO1xuICAgIGl0ZW1zX2xvb2t1cC5mb3JFYWNoKCBpdGVtID0+XG4gICAge1xuICAgICAgICB2YXIgaXRlbV9kaXNwbGF5cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC5pdGVtLSR7aXRlbS5wa31gKTtcbiAgICAgICAgZm9yKGNvbnN0IGNhdGVnb3J5IGluIGNhdGVnb3JpZXMpe1xuICAgICAgICAgICAgdmFyIGlzX3Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGl0ZW1fZGlzcGxheXMuZm9yRWFjaCggZCA9PiB7IGQuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJykgfSk7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtcykuZm9yRWFjaChpZCA9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlmKCBjYXRlZ29yaWVzW2NhdGVnb3J5XS50ZXJtc1tpZF0gJiYgaXRlbS50ZXJtcy5pbmNsdWRlcyggc2x1Z2lmeShpZCkudG9Mb3dlckNhc2UoKSApICl7XG4gICAgICAgICAgICAgICAgICAgIGlzX3Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZighaXNfdmlzaWJsZSl7XG4gICAgICAgICAgICAgICAgaXRlbV9kaXNwbGF5cy5mb3JFYWNoKCBkID0+IHsgZC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLyoqXG4gKiAgU2V0cyBkYXRhIGl0ZW1zIGluIHByb3BlciBmb3JtYXRcbiAqICBAcGFyYW0ge0FycmF5fSBpdGVtcyAtIEFycmF5IHdpdGggZGF0YSB0byBzZXQgaXRlbXNcbiAqL1xuY29uc3QgY3JlYXRlX2l0ZW1zID0gZnVuY3Rpb24oaXRlbXMpXG57XG4gICAgcmV0dXJuIGl0ZW1zLm1hcChpID0+e1xuICAgICAgICB2YXIgdGVybXMgPSBbIGkuY2F0ZWdvcnkubmFtZSBdO1xuICAgICAgICB0ZXJtcy5wdXNoKCAuLi5pLm90aGVyX2NhdGVnb3JpZXMubWFwKCBqPT4gai5uYW1lICkgKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBrICAgICA6IGkucGssXG4gICAgICAgICAgICBuYW1lICAgOiBpLm5hbWUsXG4gICAgICAgICAgICBjYXRzICAgOiB7ICdjYXRlZ29yeScgOiB0ZXJtcyB9LFxuICAgICAgICAgICAgbWFpbl90ZXJtIDogc2x1Z2lmeShpLmNhdGVnb3J5Lm5hbWUudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgICB0ZXJtcyAgOiB0ZXJtcy5tYXAoIGogPT4gc2x1Z2lmeShqLnRvTG93ZXJDYXNlKCkgKSksXG4gICAgICAgICAgICBkYXRlICAgOiBpLmNyZWF0aW9uX2RhdGUsXG4gICAgICAgICAgICBsYXRsb24gOiBpLnBvc2l0aW9uLmNvb3JkaW5hdGVzLnJldmVyc2UoKSxcbiAgICAgICAgICAgIHZpZGVvICA6IGkudmlkZW8sXG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuXG4vKipcbiAqICBMb2FkcyBkYXRhIGZyb20gYSByZW1vdGUgZW5kcG9pbnRcbiAqICBAcGFyYW0ge1N0cmluZ30gZW5kcG9pbnQgLSBVUkwgb2YgYW5kIGVuZHBvaW50IHRoYXQgc2VydmVzIEpTT04gZGF0YSB3aXRoIHRoZSBpdGVtcyBhcnJheSB0byBiZSBpbXBvcnRlZFxuICovXG5jb25zdCBsb2FkX2RhdGEgPSBmdW5jdGlvbihlbmRwb2ludClcbntcbiAgICBsZXQgaXRlbXMgPSBbXTtcblxuICAgIGlmKGVuZHBvaW50KXtcbiAgICAgICAgZmV0Y2goZW5kcG9pbnQpXG4gICAgICAgICAgLnRoZW4oIHJlc3BvbnNlID0+IHJlc3BvbnNlLmpzb24oKSApXG4gICAgICAgICAgLnRoZW4oIGRhdGEgPT4ge1xuICAgICAgICAgICAgICBpdGVtcyA9IGNyZWF0ZV9pdGVtcyhkYXRhKTtcbiAgICAgICAgICAgICAgaXRlbXNfbG9va3VwID0gaXRlbXM7XG4gICAgICAgICAgICAgIGluaXRfbWFwKCBpdGVtcyApO1xuICAgICAgICAgICAgICBpbml0X3RpbWVsaW5lKCBpdGVtcyApO1xuICAgICAgICAgICAgICBpbml0X2xlZ2VuZCggaXRlbXMgKTtcbiAgICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpdGVtc19zaXplID0gMjA7XG4gICAgICAgIGl0ZW1zID0gbmV3IEFycmF5KGl0ZW1zX3NpemUpLmZpbGwoKS5tYXAoIChpLCBuKSA9PiAoe1xuICAgICAgICAgICAgcGsgICAgIDogbixcbiAgICAgICAgICAgIG5hbWUgICA6IGxvcmVtLmdlbmVyYXRlV29yZHMoIHJpbnQoMywgOCkgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSggL15cXHcvLCBjID0+IGMudG9VcHBlckNhc2UoKSApLCAvLyBjYXBpdGFsaXplIGFueSBzZW50ZW5jZVxuICAgICAgICAgICAgYm9keSAgIDogbG9yZW0uZ2VuZXJhdGVTZW50ZW5jZXMoIHJpbnQoMywgNSkgKSxcbiAgICAgICAgICAgIGltZyAgICA6ICcvc3RhdGljL3NpdGUvaW1nL2JsYW5rLWltYWdlLnN2ZycsXG4gICAgICAgICAgICBjYXRzICAgOiByYW5kb21fY2F0cygyKSxcbiAgICAgICAgICAgIGRhdGUgICA6IHJhbmRvbV9kYXRlKFwiMjAyMC0wMS0wMVwiKSxcbiAgICAgICAgICAgIGxhdGxvbiA6IHJhbmRvbV9sYXRsb24oIE1BUF9ERUZBVUxUUy52aWV3WzBdICksXG4gICAgICAgICAgICBsbmsgICAgOiAnLycsXG4gICAgICAgIH0pKS5zb3J0KChhLGIpID0+IGIuZGF0ZSAtIGEuZGF0ZSk7XG4gICAgICAgIGl0ZW1zLmZvckVhY2goaSA9PiB7XG4gICAgICAgICAgICBpLmRhdGUgPSBuZXcgRGF0ZShpLmRhdGUpLnRvTG9jYWxlRGF0ZVN0cmluZygnZXMtRVMnKTtcbiAgICAgICAgICAgIGkudGVybXMgPSBbXTtcbiAgICAgICAgICAgIGZvcihjb25zdCBjYXQgaW4gaS5jYXRzKXtcbiAgICAgICAgICAgICAgICBpLmNhdHNbY2F0XS5mb3JFYWNoKHRlcm0gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpLnRlcm1zLnB1c2godGVybSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbXNfbG9va3VwID0gaXRlbXM7XG4gICAgICAgIGluaXRfbWFwKCBpdGVtcyApO1xuICAgICAgICBpbml0X3RpbWVsaW5lKCBpdGVtcyApO1xuICAgICAgICBpbml0X2xlZ2VuZCggaXRlbXMgKTtcbiAgICB9XG59XG5cbndpbmRvdy5vbmxvYWQgPSAoKT0+e1xuICAgIGxvYWRfZGF0YSgnL2FwaS8xLjAvdGVzdGltb25pZXMvJyk7XG59O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==
\ No newline at end of file
......@@ -27,7 +27,7 @@ let categories = {};
// Leaflet map defaults
const MAP_DEFAULTS = {
view : [ [37.3808, -5.9700], 12 ],
view : [ [37.3808, -5.9700], 13.3 ],
providers : {
osm : {
tiles : 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
......@@ -157,6 +157,8 @@ const init_map = function(items)
map = L.map('map' , {
scrollWheelZoom : !is_mobile, // disable wheelzoom only in small devices
zoomControl : false,
minZoom: 12,
maxZoom: 16
}).setView(
...MAP_DEFAULTS.view
);
......
......@@ -355,7 +355,7 @@ select:hover {
::-webkit-scrollbar {
height: 1.6rem;
width: 0.5333333333rem;
width: 0.53333rem;
background: white; }
::-webkit-scrollbar-thumb {
......@@ -448,13 +448,14 @@ select:hover {
position: absolute;
font-family: "rubik", sans-serif;
background: white;
padding: 1.6rem;
padding: 0 0 1.6rem;
font-size: 1.6rem;
z-index: 120000;
width: 100%; }
@media screen and (min-width: 768px) {
.legend {
position: fixed;
padding: 1.6rem;
width: 24rem;
top: 1.6rem;
right: 1.6rem; } }
......@@ -553,7 +554,10 @@ select:hover {
color: #df2020; }
.map-wrapper {
padding: 0.8rem 0.8rem 0.8rem 0; }
padding: 0 30px 30px; }
@media screen and (min-width: 768px) {
.map-wrapper {
padding: 0.8rem; } }
#map {
background-color: #eee; }
......@@ -639,7 +643,7 @@ select:hover {
.timeline-item__terms {
font-size: 1.4rem;
margin-top: 0.5333333333rem; }
margin-top: 0.53333rem; }
.timeline-item__date {
font-size: 1.4rem;
......@@ -742,21 +746,44 @@ select:hover {
color: #43AD36;
text-transform: uppercase;
transition: color 0.2s ease;
font-size: 1.6rem; }
font-size: 1.5rem; }
.menu-main__items .menu-main__item {
margin-bottom: 1.6rem; }
@media screen and (min-width: 1200px) {
.menu-main__items {
display: flex; }
.menu-main__items .menu-main__item:not(:last-child) {
margin-right: 1.6rem;
margin-bottom: 0; } }
.menu-main__items {
margin: 0;
padding: 0; }
.menu-main__items .menu-main__item {
margin-bottom: 1.6rem; }
@media screen and (min-width: 1200px) {
.menu-main__items {
display: flex;
justify-content: space-between; }
.menu-main__items .menu-main__item:not(:last-child) {
margin-right: 1.6rem;
margin-bottom: 0; } }
.menu-main__item:hover {
cursor: pointer;
color: #fc160f; }
.site-header {
position: relative; }
.menu-social {
position: absolute;
right: 1.6rem;
top: 15px; }
.menu-social img {
width: 20px;
transition: filter 0.2s ease;
filter: invert(35%) sepia(86%) saturate(3147%) hue-rotate(340deg) brightness(116%) contrast(107%); }
.menu-social img:hover {
filter: invert(49%) sepia(61%) saturate(541%) hue-rotate(66deg) brightness(101%) contrast(90%); }
.menu-social__item {
display: inline; }
.menu-social__item:not(:last-child) {
margin-right: 0.8rem; }
.site-messages {
position: fixed;
width: 400px;
......
{
"version": 3,
"mappings": "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",
"sources": ["../sass/base/_0_normalize.sass","../sass/base/_1_variables.sass","../sass/base/_4_oocss.sass","../sass/base/_5_reset.sass","../sass/base/_2_mixins.sass","../sass/base/_6_layout.sass","../sass/base/components-slash-star","../sass/components/_block-legend.sass","../sass/components/_block-map.sass","../sass/components/_block-timeline.sass","../sass/components/_form.sass","../sass/components/_item-category.sass","../sass/components/_menu-main.sass","../sass/components/_messages.sass","../sass/components/_modal.sass","../sass/components/_signature.sass"],
"mappings": "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",
"sources": ["../sass/base/_0_normalize.sass","../sass/base/_1_variables.sass","../sass/base/_4_oocss.sass","../sass/base/_5_reset.sass","../sass/base/_2_mixins.sass","../sass/base/_6_layout.sass","../sass/base/components-slash-star","../sass/components/_block-legend.sass","../sass/components/_block-map.sass","../sass/components/_block-timeline.sass","../sass/components/_form.sass","../sass/components/_item-category.sass","../sass/components/_menu-main.sass","../sass/components/_menu-social.sass","../sass/components/_messages.sass","../sass/components/_modal.sass","../sass/components/_signature.sass"],
"names": [],
"file": "style.css"
}
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-facebook"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-instagram"><rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect><path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-twitter"><path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path></svg>
\ No newline at end of file
......@@ -2,12 +2,13 @@
position: absolute
font-family: $font_text
background: white
padding: $m
padding: 0 0 $m
font-size: 1.6rem
z-index: 120000
width: 100%
+breakpoint('sm')
position: fixed
padding: $m
width: $m*15
top: $m
right: $m
......
// Map block
.map-wrapper
padding: $m/2 $m/2 $m/2 0
padding: 0 30px 30px
+breakpoint('sm')
padding: $m/2
#map
background-color: #eee
......
// Main menu
.menu-main
padding: $m/2 $m/2 $m
font-weight: bold
color: $green
text-transform: uppercase
transition: color .2s ease
font-size: 1.6rem
font-size: 1.5rem
.menu-main__items
margin: 0
padding: 0
.menu-main__item
margin-bottom: $m
+breakpoint('lg')
display: flex
justify-content: space-between
.menu-main__item:not(:last-child)
margin-right: $m
margin-bottom: 0
......
// social menu
.site-header
position: relative
.menu-social
position: absolute
right: $m
top: 15px
img
width: 20px
transition: filter .2s ease
filter: invert(35%) sepia(86%) saturate(3147%) hue-rotate(340deg) brightness(116%) contrast(107%)
img:hover
filter: invert(49%) sepia(61%) saturate(541%) hue-rotate(66deg) brightness(101%) contrast(90%)
.menu-social__item
display: inline
&:not(:last-child)
margin-right: $m/2
{# main menu #} {% load textblock_tags %}
{% textblock 'acerca' as about_block %}
<div class="menu-main">
<ul class="menu-main__items">
{% if about_block %}
<li class="menu-main__item" data-show="#{{ about_block.slug }}" data-hide=".modal">
{{ about_block.title }}
</li>
{% endif %}
<li class="menu-main__item" data-show="#categories" data-hide=".modal">
Categorías
</li>
<li class="menu-main__item" data-show="#contacta" data-hide=".modal">
Participa
</li>
</ul>
</div>
{# social #} {% load static %}
<div class="menu-social">
<ul class="menu-social__items">
<li class="menu-social__item">
<a target="_blank" href="https://twitter.com/patio_108">
<img src="{% static 'site/img/twitter.svg' %}" />
</a>
</li>
<li class="menu-social__item">
<a target="_blank" href="https://www.instagram.com/patio_108/">
<img src="{% static 'site/img/instagram.svg' %}" />
</a>
</li>
<li class="menu-social__item">
<a target="_blank" href="https://www.facebook.com/patio108/">
<img src="{% static 'site/img/facebook.svg' %}" />
</a>
</li>
</ul>
</div>
......@@ -16,24 +16,10 @@
<div class="site-header">
<div class="left">
<img class="site-logo" src="{% static 'site/img/logos/logo-patio108.jpg' %}" >
{% include 'components/menu-social.html' %}
</div>
<div class="right">
<div class="menu-main">
<ul class="menu-main__items">
{% textblock 'acerca' as about_block %}
{% if about_block %}
<li class="menu-main__item" data-show="#{{ about_block.slug }}" data-hide=".modal">
{{ about_block.title }}
</li>
{% endif %}
<li class="menu-main__item" data-show="#categories" data-hide=".modal">
Glosario
</li>
<li class="menu-main__item" data-show="#contacta" data-hide=".modal">
Contacta
</li>
</ul>
</div>
{% include 'components/menu-main.html' %}
</div>
</div>
<div class="timeline-wrapper">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment