biojs-vis-pinpad
Advanced tools
Comparing version 0.1.4 to 0.1.5
@@ -199,7 +199,13 @@ require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
if (key.indexOf('styled_') === 0) { | ||
var leftCol = tr.append('td').text(info.key); | ||
var leftCol, rightCol; | ||
if (info.key_right === true) { | ||
leftCol = tr.append('td'); | ||
rightCol = tr.append('td').text(info.key + ' '); | ||
} else { | ||
leftCol = tr.append('td').text(info.key); | ||
rightCol = tr.append('td'); | ||
} | ||
if (info.key_style) { | ||
leftCol.attr('style', info.key_style); | ||
} | ||
var rightCol = tr.append('td'); | ||
if (info.value_style) { | ||
@@ -567,2 +573,2 @@ rightCol.attr('style', info.value_style); | ||
},{"./PinPadModel":4,"./PinPadViewer":5}]},{},["biojs-vis-pinpad"]) | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlc1xcYnJvd3NlcmlmeVxcbm9kZV9tb2R1bGVzXFxicm93c2VyLXBhY2tcXF9wcmVsdWRlLmpzIiwibGliXFxDYXRlZ29yeUZhY3RvcnkuanMiLCJsaWJcXENhdGVnb3J5TW9kZWwuanMiLCJsaWJcXEVsZW1lbnRGYWN0b3J5LmpzIiwibGliXFxQaW5QYWRNb2RlbC5qcyIsImxpYlxcUGluUGFkVmlld2VyLmpzIiwibGliXFxQaW5QYWQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIi8qanNsaW50IG5vZGU6IHRydWUgKi9cclxuLypqc2hpbnQgbGF4YnJlYWs6IHRydWUgKi9cclxuXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG52YXIgZDMgPSByZXF1aXJlKCdkMycpO1xyXG52YXIgXyA9IHJlcXVpcmUoJ3VuZGVyc2NvcmUnKTtcclxudmFyIEVsZW1lbnRGYWN0b3J5ID0gcmVxdWlyZSgnLi9FbGVtZW50RmFjdG9yeScpO1xyXG5cclxudmFyIENhdGVnb3J5ID0gZnVuY3Rpb24ocGluUGFkVmlld2VyLCBjYXRUaXRsZSkge1xyXG4gICAgdmFyIGNhdGVnb3J5ID0gdGhpcztcclxuICAgIGNhdGVnb3J5LnBpblBhZFZpZXdlciA9IHBpblBhZFZpZXdlcjtcclxuICAgIGNhdGVnb3J5LnRpdGxlID0gY2F0VGl0bGU7XHJcbiAgICBjYXRlZ29yeS5vcGVuID0gdHJ1ZTtcclxuICAgIGNhdGVnb3J5LmVsZW1lbnRzID0gW107XHJcblxyXG4gICAgdmFyIGNhdGVnb3J5Q29udGFpbmVyID0gY2F0ZWdvcnkucGluUGFkVmlld2VyLnBhZENvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmNsYXNzZWQoJ3VwX3BwX2NhdGVnb3J5LWNvbnRhaW5lcicsIHRydWUpO1xyXG5cclxuICAgIGNhdGVnb3J5LmhlYWRlciA9IGNhdGVnb3J5Q29udGFpbmVyLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXBfcHBfY2F0ZWdvcnktaGVhZGVyJywgdHJ1ZSk7XHJcbiAgICBjYXRlZ29yeS5oZWFkZXIudGl0bGUgPSBjYXRlZ29yeS5oZWFkZXIuYXBwZW5kKCdhJylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXBfcHBfY2F0ZWdvcnktbmFtZSB1cF9wZnR2X2Fycm93LWRvd24nKVxyXG4gICAgICAgIC50ZXh0KGNhdFRpdGxlKVxyXG4gICAgICAgIC5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkudG9nZ2xlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICBjYXRlZ29yeS5oZWFkZXIuYXBwZW5kKCdzcGFuJylcclxuICAgICAgICAuY2xhc3NlZCgndXBfcHBfaWNvbkNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgICAgLnN0eWxlKCdmbG9hdCcsICdyaWdodCcpXHJcbiAgICAgICAgLmFwcGVuZCgnZGl2JylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXAtcHAtaWNvbi10cmFzaCB1cF9wcF9jbGlja2FibGUtaWNvbicpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5kZWxlZ2F0ZUNhdGVnb3J5UmVtb3ZhbChjYXRlZ29yeS50aXRsZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyID0gY2F0ZWdvcnlDb250YWluZXIuYXBwZW5kKCdkaXYnKS5jbGFzc2VkKCd1cF9wcF9jYXRlZ29yeS1wYWQnLCB0cnVlKTtcclxuXHJcbiAgICBjYXRlZ29yeS5yZW1vdmUgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICB3aGlsZSAoY2F0ZWdvcnkuZWxlbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5lbGVtZW50c1swXS5yZW1vdmUoY2F0ZWdvcnkuZWxlbWVudHNbMF0uaWQsIGNhdGVnb3J5LnRpdGxlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZSgwLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0ZWdvcnlDb250YWluZXIucmVtb3ZlKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhdGVnb3J5LnRvZ2dsZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIGlmIChjYXRlZ29yeS5wYWRDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknKSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnBhZENvbnRhaW5lci5zdHlsZSgnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5oZWFkZXIudGl0bGUuYXR0cignY2xhc3MnLCAndXBfcHBfY2F0ZWdvcnktbmFtZSB1cF9wZnR2X2Fycm93LWRvd24nKTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkub3BlbiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkuaGVhZGVyLnRpdGxlLmF0dHIoJ2NsYXNzJywgJ3VwX3BwX2NhdGVnb3J5LW5hbWUgdXBfcGZ0dl9hcnJvdy1yaWdodCcpO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5hZGRFbGVtZW50ID0gZnVuY3Rpb24oZWxlbSwgc29ydGVkSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICAgICAgdmFyIG5ld0VsZW0gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHNvcnRlZEluZGV4ID4gY2F0ZWdvcnkuZWxlbWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIG5ld0VsZW0gPSAgRWxlbWVudEZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgZWxlbSk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnB1c2gobmV3RWxlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyLnNlbGVjdEFsbCgnKicpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICBfLmVhY2goYWxsRWxlbWVudHMsIGZ1bmN0aW9uKGVsZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb3BlbiA9IGluZGV4ID09PSBzb3J0ZWRJbmRleCA/IHVuZGVmaW5lZCA6IGNhdGVnb3J5LmVsZW1lbnRzW2luZGV4XS5vcGVuO1xyXG4gICAgICAgICAgICAgICAgdmFyIGFkZGVkID0gRWxlbWVudEZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgZWxlbSwgb3Blbik7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IHNvcnRlZEluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RWxlbSA9IGFkZGVkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZShzb3J0ZWRJbmRleCwgMCwgbmV3RWxlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3RWxlbTtcclxuICAgIH07XHJcblxyXG4gICAgY2F0ZWdvcnkucmVtb3ZlRWxlbWVudCA9IGZ1bmN0aW9uKGVsSW5kZXgpIHtcclxuICAgICAgICB2YXIgZWxlbWVudCA9IGNhdGVnb3J5LmVsZW1lbnRzW2VsSW5kZXhdO1xyXG4gICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZShlbEluZGV4LCAxKTtcclxuICAgICAgICBFbGVtZW50RmFjdG9yeS5yZW1vdmVFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5kZWxlZ2F0ZUVsZW1lbnRSZW1vdmFsID0gZnVuY3Rpb24oZWxJZCkge1xyXG4gICAgICAgIGNhdGVnb3J5LnBpblBhZFZpZXdlci5kZWxlZ2F0ZUVsZW1lbnRSZW1vdmFsKGVsSWQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5kZWxlZ2F0ZUNhdGVnb3J5UmVtb3ZhbCA9IGZ1bmN0aW9uKGNhdFRpdGxlKSB7XHJcbiAgICAgICAgY2F0ZWdvcnkucGluUGFkVmlld2VyLmRlbGVnYXRlQ2F0ZWdvcnlSZW1vdmFsKGNhdFRpdGxlKTtcclxuICAgIH07XHJcbn07XHJcblxyXG52YXIgQ2F0ZWdvcnlGYWN0b3J5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjcmVhdGVDYXRlZ29yeTogZnVuY3Rpb24ocGluUGFkVmlld2VyLCBjYXRUaXRsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5KHBpblBhZFZpZXdlciwgY2F0VGl0bGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVtb3ZlQ2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnJlbW92ZSgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3JlYXRlRWxlbWVudDogZnVuY3Rpb24oY2F0ZWdvcnksIGVsZW0sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYXRlZ29yeS5hZGRFbGVtZW50KGVsZW0sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZUVsZW1lbnQ6IGZ1bmN0aW9uKGNhdGVnb3J5LCBlbEluZGV4KSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnJlbW92ZUVsZW1lbnQoZWxJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufSgpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeUZhY3Rvcnk7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuXHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG5cclxudmFyIENhdGVnb3J5TW9kZWwgPSBmdW5jdGlvbihjYXRUaXRsZSwgb3JkZXJpbmcpIHtcclxuICAgIHZhciBjYXRNb2RlbCA9IHRoaXM7XHJcbiAgICBjYXRNb2RlbC50aXRsZSA9IGNhdFRpdGxlO1xyXG4gICAgY2F0TW9kZWwub3JkZXJpbmcgPSBvcmRlcmluZztcclxuICAgIGNhdE1vZGVsLmVsZW1lbnRzID0gW107XHJcblxyXG4gICAgY2F0TW9kZWwuYWRkRWxlbWVudCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcclxuICAgICAgICB2YXIgc29ydGVkSW5kZXggPSAwO1xyXG4gICAgICAgIGlmIChjYXRNb2RlbC5vcmRlcmluZyAmJiBlbGVtZW50Lm9yZGVyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN0ID0gXy5wbHVjayhjYXRNb2RlbC5lbGVtZW50cywgJ29yZGVyaW5nJyk7XHJcbiAgICAgICAgICAgIF8uZWFjaChvcmRlcmluZywgZnVuY3Rpb24oYXR0cikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gXy5zb3J0ZWRJbmRleChyZXN0LCBlbGVtZW50Lm9yZGVyaW5nLCBhdHRyKTtcclxuICAgICAgICAgICAgICAgIHNvcnRlZEluZGV4ID0gc29ydGVkSW5kZXggKyBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJlc3QgPSBfLnJlc3QocmVzdCwgaW5kZXgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzb3J0ZWRJbmRleCA9IGNhdE1vZGVsLmVsZW1lbnRzLmxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0TW9kZWwuZWxlbWVudHMuc3BsaWNlKHNvcnRlZEluZGV4LCAwLCBlbGVtZW50KTtcclxuICAgICAgICByZXR1cm4gc29ydGVkSW5kZXg7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhdE1vZGVsLnJlbW92ZUVsZW1lbnQgPSBmdW5jdGlvbihpbmRleCkge1xyXG4gICAgICAgIGlmICgoMCA8PSBpbmRleCkgJiYgKGluZGV4IDwgY2F0TW9kZWwuZWxlbWVudHMubGVuZ3RoKSkge1xyXG4gICAgICAgICAgICBjYXRNb2RlbC5lbGVtZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENhdGVnb3J5TW9kZWw7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuXHJcbnZhciBkMyA9IHJlcXVpcmUoJ2QzJyk7XHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG5cclxudmFyIGlzTGluayA9IGZ1bmN0aW9uKGluZm8pIHtcclxuICAgIGlmICgodHlwZW9mIGluZm8gPT09ICdvYmplY3QnKSAmJiAhKGluZm8gaW5zdGFuY2VvZiBBcnJheSkpIHtcclxuICAgICAgICB2YXIga2V5cyA9IF8ua2V5cyhpbmZvKTtcclxuICAgICAgICBpZiAoKGtleXMubGVuZ3RoID09PSAyKSAmJiBfLmNvbnRhaW5zKGtleXMsICd2YWx1ZScpICYmIF8uY29udGFpbnMoa2V5cywgJ2xpbmsnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2VcclxufTtcclxuXHJcbnZhciBhZGRMaW5rID0gZnVuY3Rpb24oY29udGFpbmVyLCBpbmZvVGV4dCwgaW5mb0xpbmspIHtcclxuICAgIGlmIChpbmZvTGluayAmJiAoaW5mb0xpbmsgIT09ICctJykpIHtcclxuICAgICAgICBjb250YWluZXIuYXBwZW5kKCdhJylcclxuICAgICAgICAgICAgLmF0dHIoJ2hyZWYnLCBpbmZvTGluaylcclxuICAgICAgICAgICAgLmF0dHIoJ3RhcmdldCcsICdfYmxhbmsnKVxyXG4gICAgICAgICAgICAudGV4dChpbmZvVGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRhaW5lci50ZXh0KGluZm9UZXh0KTtcclxuICAgIH1cclxufTtcclxuXHJcbnZhciBhZGRWYWx1ZSA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgaW5mbykge1xyXG4gICAgaWYgKCh0eXBlb2YgaW5mbyA9PT0gJ3N0cmluZycpIHx8ICh0eXBlb2YgaW5mbyA9PT0gJ251bWJlcicpIHx8ICh0eXBlb2YgaW5mbyA9PT0gJ2Jvb2xlYW4nKSkge1xyXG4gICAgICAgIGNvbnRhaW5lci50ZXh0KGluZm8pO1xyXG4gICAgfSBlbHNlIGlmIChpc0xpbmsoaW5mbykpIHtcclxuICAgICAgICBhZGRMaW5rKGNvbnRhaW5lciwgaW5mby52YWx1ZSwgaW5mby5saW5rKTtcclxuICAgIH0gZWxzZSBpZiAoaW5mbyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgXy5lYWNoKGluZm8sIGZ1bmN0aW9uKGRhdHVtLCBpbmRleCkge1xyXG4gICAgICAgICAgICB2YXIgc3BhbiA9IGNvbnRhaW5lci5hcHBlbmQoJ3NwYW4nKTtcclxuICAgICAgICAgICAgYWRkVmFsdWUoc3BhbiwgZGF0dW0pO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IChpbmZvLmxlbmd0aC0xKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZCgnc3BhbicpLnRleHQoJywgJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYWRkRGF0YShjb250YWluZXIuYXBwZW5kKCd0YWJsZScpLCBpbmZvKTtcclxuICAgIH1cclxufTtcclxuXHJcbnZhciBhZGREYXR1bSA9IGZ1bmN0aW9uKHRhYmxlLCBrZXksIGluZm8pIHtcclxuICAgIHZhciB0ciA9IHRhYmxlLmFwcGVuZCgndHInKTtcclxuICAgIGlmIChrZXkuaW5kZXhPZignc3R5bGVkXycpID09PSAwKSB7XHJcbiAgICAgICAgdmFyIGxlZnRDb2wgPSB0ci5hcHBlbmQoJ3RkJykudGV4dChpbmZvLmtleSk7XHJcbiAgICAgICAgaWYgKGluZm8ua2V5X3N0eWxlKSB7XHJcbiAgICAgICAgICAgIGxlZnRDb2wuYXR0cignc3R5bGUnLCBpbmZvLmtleV9zdHlsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciByaWdodENvbCA9IHRyLmFwcGVuZCgndGQnKTtcclxuICAgICAgICBpZiAoaW5mby52YWx1ZV9zdHlsZSkge1xyXG4gICAgICAgICAgICByaWdodENvbC5hdHRyKCdzdHlsZScsIGluZm8udmFsdWVfc3R5bGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhZGRWYWx1ZShyaWdodENvbCwgaW5mby52YWx1ZSlcclxuICAgIH0gZWxzZSBpZiAoa2V5LmluZGV4T2YoJ3N1YnNlY3Rpb25fJykgPT09IDApIHtcclxuICAgICAgICB0ci5hcHBlbmQoJ3RkJylcclxuICAgICAgICAgICAgLmF0dHIoJ2NvbHNwYW4nLCAyKVxyXG4gICAgICAgICAgICAuY2xhc3NlZCgndXBfcHBfdGFibGVfc3Vic2VjdGlvbicsIHRydWUpXHJcbiAgICAgICAgICAgIC50ZXh0KGluZm8udGl0bGUpO1xyXG4gICAgICAgIGFkZERhdGEodGFibGUsIGluZm8uaW5mb3JtYXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB0ci5hcHBlbmQoJ3RkJykudGV4dChrZXkucmVwbGFjZSgvXy9nLCAnICcpKTtcclxuICAgICAgICBhZGRWYWx1ZSh0ci5hcHBlbmQoJ3RkJyksIGluZm8pO1xyXG4gICAgfVxyXG59O1xyXG5cclxudmFyIGFkZERhdGEgPSBmdW5jdGlvbih0YWJsZSwgZGF0YSkge1xyXG4gICAgXy5lYWNoKGRhdGEsIGZ1bmN0aW9uKGluZm8sIGtleSkge1xyXG4gICAgICAgIGFkZERhdHVtKHRhYmxlLCBrZXksIGluZm8pO1xyXG4gICAgfSk7XHJcbn07XHJcblxyXG52YXIgRWxlbWVudCA9IGZ1bmN0aW9uKGNhdGVnb3J5LCBlbGVtLCBvcGVuKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IHRoaXM7XHJcbiAgICBlbGVtZW50LmlkID0gZWxlbS5pZDtcclxuICAgIGVsZW1lbnQuY2F0ZWdvcnkgPSBjYXRlZ29yeTtcclxuICAgIGVsZW1lbnQub3BlbiA9IG9wZW47XHJcbiAgICBlbGVtZW50LmhlYWRlciA9IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnQudGFibGVDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICBlbGVtZW50LnRhYmxlID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGVsZW1lbnQudG9nZ2xlID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknKSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknLCAnYmxvY2snKTtcclxuICAgICAgICAgICAgZWxlbWVudC5oZWFkZXIudGl0bGUuYXR0cignY2xhc3MnLCAndXBfcHBfZWxlbWVudC1uYW1lIHVwX3BmdHZfYXJyb3ctZG93bicpO1xyXG4gICAgICAgICAgICBlbGVtZW50Lm9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG4gICAgICAgICAgICBlbGVtZW50LmhlYWRlci50aXRsZS5hdHRyKCdjbGFzcycsICd1cF9wcF9lbGVtZW50LW5hbWUgdXBfcGZ0dl9hcnJvdy1yaWdodCcpO1xyXG4gICAgICAgICAgICBlbGVtZW50Lm9wZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHZhciBlbGVtQ29udGFpbmVyID0gZWxlbWVudC5jYXRlZ29yeS5wYWRDb250YWluZXIuYXBwZW5kKCdkaXYnKS5hdHRyKCdpZCcsICdwaW5uZWRfZWxlbV9pZF8nICsgZWxlbS5pZCk7XHJcblxyXG4gICAgZWxlbWVudC5maXJzdChlbGVtZW50LmNhdGVnb3J5LnRpdGxlLCBlbGVtQ29udGFpbmVyLCBfLmZpcnN0KGVsZW0uc2VjdGlvbnMpKTtcclxuICAgIGVsZW1lbnQudGFpbChlbGVtZW50LnRhYmxlLCBfLnRhaWwoZWxlbS5zZWN0aW9ucykpO1xyXG59O1xyXG5cclxuRWxlbWVudC5wcm90b3R5cGUuZmlyc3QgPSBmdW5jdGlvbihjYXRUaXRsZSwgY29udGFpbmVyLCBzZWN0aW9uKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IHRoaXM7XHJcbiAgICBlbGVtZW50LmhlYWRlciA9IGNvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmNsYXNzZWQoJ3VwX3BwX2VsZW1lbnQtaGVhZGVyJywgdHJ1ZSk7XHJcbiAgICBlbGVtZW50LmhlYWRlci50aXRsZSA9IGVsZW1lbnQuaGVhZGVyLmFwcGVuZCgnYScpXHJcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50Lm9wZW4gPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3VwX3BwX2VsZW1lbnQtbmFtZSB1cF9wZnR2X2Fycm93LXJpZ2h0JztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAndXBfcHBfZWxlbWVudC1uYW1lIHVwX3BmdHZfYXJyb3ctZG93bic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC50ZXh0KHNlY3Rpb24udGl0bGUpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnRvZ2dsZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgZWxlbWVudC5oZWFkZXIuYXBwZW5kKCdzcGFuJylcclxuICAgICAgICAuY2xhc3NlZCgndXBfcHBfaWNvbkNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgICAgLnN0eWxlKCdmbG9hdCcsICdyaWdodCcpXHJcbiAgICAgICAgLmFwcGVuZCgnZGl2JylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXAtcHAtaWNvbi10cmFzaCB1cF9wcF9jbGlja2FibGUtaWNvbicpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LmNhdGVnb3J5LmRlbGVnYXRlRWxlbWVudFJlbW92YWwoZWxlbWVudC5pZCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgZWxlbWVudC50YWJsZUNvbnRhaW5lciA9IGNvbnRhaW5lci5hcHBlbmQoJ2RpdicpO1xyXG4gICAgaWYgKGVsZW1lbnQub3BlbiA9PT0gZmFsc2UpIHtcclxuICAgICAgICBlbGVtZW50LnRhYmxlQ29udGFpbmVyLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgIH1cclxuICAgIGVsZW1lbnQudGFibGUgPSBlbGVtZW50LnRhYmxlQ29udGFpbmVyLmFwcGVuZCgndGFibGUnKS5hdHRyKCd3aWR0aCcsICcxMDAlJyk7XHJcbiAgICBhZGREYXRhKGVsZW1lbnQudGFibGUsIHNlY3Rpb24uaW5mb3JtYXRpb24pO1xyXG59O1xyXG5cclxuRWxlbWVudC5wcm90b3R5cGUudGFpbCA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgc2VjdGlvbnMpIHtcclxuICAgIF8uZWFjaChzZWN0aW9ucywgZnVuY3Rpb24oc2VjdGlvbikge1xyXG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmQoJ3RyJykuY2xhc3NlZCgndXBfcHBfZWxlbWVudC1zZWN0aW9uJywgdHJ1ZSlcclxuICAgICAgICAgICAgLmFwcGVuZCgndGQnKVxyXG4gICAgICAgICAgICAuYXR0cignY29sc3BhbicsIDIpXHJcbiAgICAgICAgICAgIC50ZXh0KHNlY3Rpb24udGl0bGUpO1xyXG5cclxuICAgICAgICBhZGREYXRhKGNvbnRhaW5lciwgc2VjdGlvbi5pbmZvcm1hdGlvbik7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uKGlkKSB7XHJcbiAgICB2YXIgY29udGFpbmVyID0gZDMuc2VsZWN0KCcjJyArICdwaW5uZWRfZWxlbV9pZF8nICsgaWQpO1xyXG4gICAgY29udGFpbmVyLnJlbW92ZSgpO1xyXG59O1xyXG5cclxudmFyIEVsZW1lbnRGYWN0b3J5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjcmVhdGVFbGVtZW50OiBmdW5jdGlvbihjYXRlZ29yeSwgZWxlbSwgb3Blbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEVsZW1lbnQoY2F0ZWdvcnksIGVsZW0sIG9wZW4pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVtb3ZlRWxlbWVudDogZnVuY3Rpb24oZWxlbWVudCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZShlbGVtZW50LmlkKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEVsZW1lbnRGYWN0b3J5OyIsIi8qanNsaW50IG5vZGU6IHRydWUgKi9cclxuLypqc2hpbnQgbGF4YnJlYWs6IHRydWUgKi9cclxuXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG52YXIgXyA9IHJlcXVpcmUoJ3VuZGVyc2NvcmUnKTtcclxudmFyIENhdGVnb3J5TW9kZWwgPSByZXF1aXJlKCcuL0NhdGVnb3J5TW9kZWwnKTtcclxuXHJcbnZhciBhZGRDYXRlZ29yeSA9IGZ1bmN0aW9uKHBpblBhZE1vZGVsLCBjYXRUaXRsZSwgb3JkZXJpbmcpIHtcclxuICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlNb2RlbChjYXRUaXRsZSwgb3JkZXJpbmcpO1xyXG59O1xyXG5cclxudmFyIFBpblBhZE1vZGVsID0gZnVuY3Rpb24ob3JkZXJpbmcpIHtcclxuICAgIHZhciBwaW5QYWRNb2RlbCA9IHRoaXM7XHJcbiAgICBwaW5QYWRNb2RlbC5jYXRlZ29yaWVzID0gW107XHJcblxyXG4gICAgcGluUGFkTW9kZWwuYWRkRWxlbWVudCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcclxuICAgICAgICB2YXIgY2F0ZWdvcnk7XHJcbiAgICAgICAgdmFyIGNhdEluZGV4ID0gLTE7XHJcbiAgICAgICAgdmFyIGVsZW0gPSBfLmZpbmQocGluUGFkTW9kZWwuY2F0ZWdvcmllcywgZnVuY3Rpb24oY2F0LCBjb3VudGVyKSB7XHJcbiAgICAgICAgICAgIGlmIChjYXQudGl0bGUgPT09IGVsZW1lbnQuY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gY2F0O1xyXG4gICAgICAgICAgICAgICAgY2F0SW5kZXggPSBjb3VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBfLmZpbmQoY2F0LmVsZW1lbnRzLCBmdW5jdGlvbihlbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaWQgPT09IGVsLmlkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChlbGVtKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ZXJyb3I6ICdkdXBsaWNhdGlvbid9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghY2F0ZWdvcnkgfHwgKGNhdEluZGV4ID09PSAtMSkpIHtcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gYWRkQ2F0ZWdvcnkocGluUGFkTW9kZWwsIGVsZW1lbnQuY2F0ZWdvcnksIG9yZGVyaW5nKTtcclxuICAgICAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7XHJcbiAgICAgICAgICAgICAgICBjYXRJbmRleCA9IHBpblBhZE1vZGVsLmNhdGVnb3JpZXMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZWxJbmRleCA9IGNhdGVnb3J5LmFkZEVsZW1lbnQoZWxlbWVudCk7XHJcbiAgICAgICAgICAgIHJldHVybiB7Y2F0SW5kZXg6IGNhdEluZGV4LCBlbEluZGV4OiBlbEluZGV4fTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHBpblBhZE1vZGVsLnJlbW92ZUVsZW1lbnQgPSBmdW5jdGlvbihlbElkKSB7XHJcbiAgICAgICAgdmFyIGNhdEluZGV4ID0gLTEsIGVsSW5kZXggPSAtMTtcclxuICAgICAgICBfLmZpbmQocGluUGFkTW9kZWwuY2F0ZWdvcmllcywgZnVuY3Rpb24oY2F0LCBjb3VudGVyKSB7XHJcbiAgICAgICAgICAgIHZhciBlbGVtZW50ID0gXy5maW5kKGNhdC5lbGVtZW50cywgZnVuY3Rpb24oZWwsIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZWwuaWQgPT09IGVsSWQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgY2F0SW5kZXggPSBjb3VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjYXRJbmRleCAhPT0gLTE7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKChjYXRJbmRleCAhPT0gLTEpICYmIChlbEluZGV4ICE9PSAtMSkpIHtcclxuICAgICAgICAgICAgdmFyIHJlbW92ZWRGcm9tQ2F0ZWdvcnkgPSBwaW5QYWRNb2RlbC5jYXRlZ29yaWVzW2NhdEluZGV4XS50aXRsZTtcclxuICAgICAgICAgICAgdmFyIHJlbW92ZWRFbGVtZW50ID0gcGluUGFkTW9kZWwuY2F0ZWdvcmllc1tjYXRJbmRleF0uZWxlbWVudHNbZWxJbmRleF07XHJcbiAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXNbY2F0SW5kZXhdLnJlbW92ZUVsZW1lbnQoZWxJbmRleCk7XHJcbiAgICAgICAgICAgIGlmIChwaW5QYWRNb2RlbC5jYXRlZ29yaWVzW2NhdEluZGV4XS5lbGVtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ge2NhdEluZGV4OiBjYXRJbmRleCwgZWxJbmRleDogZWxJbmRleCwgY2F0ZWdvcnk6IHJlbW92ZWRGcm9tQ2F0ZWdvcnksIGVsZW1lbnQ6IHJlbW92ZWRFbGVtZW50fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtlcnJvcjogJ3Vua25vd24nfVxyXG4gICAgfTtcclxuXHJcbiAgICBwaW5QYWRNb2RlbC5yZW1vdmVDYXRlZ29yeSA9IGZ1bmN0aW9uKGNhdFRpdGxlKSB7XHJcbiAgICAgICAgdmFyIGNhdEluZGV4ID0gLTE7XHJcbiAgICAgICAgdmFyIGNhdGVnb3J5ID0gXy5maW5kKHBpblBhZE1vZGVsLmNhdGVnb3JpZXMsIGZ1bmN0aW9uKGNhdCwgaW5kZXgpIHtcclxuICAgICAgICAgICAgY2F0SW5kZXggPSBpbmRleDtcclxuICAgICAgICAgICAgcmV0dXJuIGNhdC50aXRsZSA9PT0gY2F0VGl0bGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtjYXRJbmRleDogY2F0SW5kZXh9O1xyXG4gICAgfTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGluUGFkTW9kZWw7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIiA7XHJcbi8qXHJcbiAqIGJpb2pzLXZpcy1waW5wYWRcclxuICogaHR0cHM6Ly9naXRodWIuY29tL2ViaS11bmlwcm90L2Jpb2pzLXZpcy1waW5wYWRcclxuICpcclxuICogQ29weXJpZ2h0IChjKSAyMDE0IGViaS11bmlwcm90XHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMiBsaWNlbnNlLlxyXG4gKi9cclxuXHJcbi8qKlxyXG5AY2xhc3MgUGluUGFkVmlld2VyXHJcbiAqL1xyXG52YXIgZDMgPSByZXF1aXJlKCdkMycpO1xyXG52YXIgXyA9IHJlcXVpcmUoJ3VuZGVyc2NvcmUnKTtcclxudmFyIENhdGVnb3J5RmFjdG9yeSA9IHJlcXVpcmUoJy4vQ2F0ZWdvcnlGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogUHJpdmF0ZSBNZXRob2RzXHJcbiAqL1xyXG52YXIgZGVmYXVsdE9wdHMgPSB7XHJcbiAgICBoZWlnaHQ6ICc1MDBweCcsXHJcbiAgICB3aWR0aDogJzI1MHB4JyxcclxuICAgIGhpZ2hsaWdodENvbG9yOiAnZ3JlZW4nXHJcbn07XHJcbnZhciBpbml0ID0gZnVuY3Rpb24ocGluUGFkVmlld2VyLCB0b1Bpbikge1xyXG4gICAgdmFyIHBpblBhZFZpZXdlckNvbnRhaW5lciA9IGQzLnNlbGVjdChwaW5QYWRWaWV3ZXIub3B0aW9ucy5lbClcclxuICAgICAgLnRleHQoJycpXHJcbiAgICAgIC5hcHBlbmQoJ2RpdicpXHJcbiAgICAgIC5jbGFzc2VkKCd1cF9wcF9tYWluLWNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgIC5zdHlsZSgnd2lkdGgnLCBwaW5QYWRWaWV3ZXIub3B0aW9ucy53aWR0aCk7XHJcblxyXG4gICAgdmFyIG1haW5UaXRsZSA9IHBpblBhZFZpZXdlckNvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmNsYXNzZWQoJ3VwX3BwX21haW5UaXRsZScsIHRydWUpO1xyXG4gICAgbWFpblRpdGxlLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXBfcHBfaWNvbkNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgICAgLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXAtcHAtaWNvbi1waW4nLCB0cnVlKS5jbGFzc2VkKCd1cF9wcF9pY29uJywgdHJ1ZSk7XHJcbiAgICBwaW5QYWRWaWV3ZXIub2Zmc2V0VG9wID0gbWFpblRpdGxlLm5vZGUoKS5vZmZzZXRIZWlnaHQgKyBtYWluVGl0bGUubm9kZSgpLm9mZnNldFRvcDtcclxuXHJcbiAgICBwaW5QYWRWaWV3ZXIucGFkQ29udGFpbmVyID0gcGluUGFkVmlld2VyQ29udGFpbmVyLmFwcGVuZCgnZGl2JylcclxuICAgICAgICAuY2xhc3NlZCgndXBfcHBfcGFkJywgdHJ1ZSlcclxuICAgICAgICAuc3R5bGUoJ2hlaWdodCcsIHBpblBhZFZpZXdlci5vcHRpb25zLmhlaWdodCk7XHJcblxyXG4gICAgaWYgKHBpblBhZFZpZXdlci5vcHRpb25zLnRvUGluKSB7XHJcbiAgICAgICAgcGluUGFkVmlld2VyLmFkZEVsZW1lbnQodG9QaW4pO1xyXG4gICAgfVxyXG59O1xyXG5cclxuLypcclxuICogUHVibGljIE1ldGhvZHNcclxuICovXHJcbnZhciBQaW5QYWRWaWV3ZXIgPSBmdW5jdGlvbihvcHRzLCB0b1BpbiwgcGluUGFkKXtcclxuICAgIHZhciBwaW5QYWRWaWV3ZXIgPSB0aGlzO1xyXG4gICAgcGluUGFkVmlld2VyLm9wdGlvbnMgPSBfLmV4dGVuZCh7fSwgZGVmYXVsdE9wdHMsIG9wdHMpO1xyXG4gICAgcGluUGFkVmlld2VyLnBpblBhZCA9IHBpblBhZDtcclxuICAgIHBpblBhZFZpZXdlci5vZmZzZXRUb3AgPSB1bmRlZmluZWQ7XHJcbiAgICBwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllcyA9IFtdO1xyXG5cclxuICAgIGluaXQocGluUGFkVmlld2VyLCB0b1Bpbik7XHJcbn07XHJcblxyXG52YXIgYWRkQ2F0ZWdvcnkgPSBmdW5jdGlvbihwaW5QYWRWaWV3ZXIsIGNhdGVnb3J5KSB7XHJcbiAgICByZXR1cm4gQ2F0ZWdvcnlGYWN0b3J5LmNyZWF0ZUNhdGVnb3J5KHBpblBhZFZpZXdlciwgY2F0ZWdvcnkpO1xyXG59O1xyXG5cclxuUGluUGFkVmlld2VyLnByb3RvdHlwZS5hZGRFbGVtZW50ID0gZnVuY3Rpb24odG9QaW4sIGNhdEluZGV4LCBlbEluZGV4LCBhbGxFbGVtZW50cykge1xyXG4gICAgdmFyIHBpblBhZFZpZXdlciA9IHRoaXM7XHJcbiAgICAvL2FkZCBjYXRlZ29yeVxyXG4gICAgdmFyIGNhdGVnb3J5O1xyXG4gICAgaWYgKGNhdEluZGV4ID49IHBpblBhZFZpZXdlci5jYXRlZ29yaWVzLmxlbmd0aCkge1xyXG4gICAgICAgIHBpblBhZFZpZXdlci5jYXRlZ29yaWVzLnB1c2goYWRkQ2F0ZWdvcnkocGluUGFkVmlld2VyLCB0b1Bpbi5jYXRlZ29yeSkpO1xyXG4gICAgICAgIGNhdGVnb3J5ID0gXy5sYXN0KHBpblBhZFZpZXdlci5jYXRlZ29yaWVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2F0ZWdvcnkgPSBwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllc1tjYXRJbmRleF07XHJcbiAgICB9XHJcbiAgICBpZiAoIWNhdGVnb3J5Lm9wZW4pIHtcclxuICAgICAgICBjYXRlZ29yeS50b2dnbGUoKTtcclxuICAgIH1cclxuICAgIHZhciBuZXdFbGVtID0gQ2F0ZWdvcnlGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoY2F0ZWdvcnksIHRvUGluLCBlbEluZGV4LCBhbGxFbGVtZW50cyk7XHJcbiAgICB2YXIgZWxlbVkgPSBuZXdFbGVtLmhlYWRlci5ub2RlKCkub2Zmc2V0VG9wO1xyXG4gICAgcGluUGFkVmlld2VyLnBhZENvbnRhaW5lci5ub2RlKCkuc2Nyb2xsVG9wID0gZWxlbVkgLSBwaW5QYWRWaWV3ZXIub2Zmc2V0VG9wO1xyXG4gICAgdmFyIGNvbG9yID0gbmV3RWxlbS5oZWFkZXIuc3R5bGUoJ2JhY2tncm91bmQtY29sb3InKTtcclxuICAgIG5ld0VsZW0uaGVhZGVyXHJcbiAgICAgICAgLnRyYW5zaXRpb24oKVxyXG4gICAgICAgIC5kdXJhdGlvbigxNTAwKVxyXG4gICAgICAgIC5zdHlsZVR3ZWVuKCdiYWNrZ3JvdW5kLWNvbG9yJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkMy5pbnRlcnBvbGF0ZShwaW5QYWRWaWV3ZXIub3B0aW9ucy5oaWdobGlnaHRDb2xvciwgY29sb3IpO1xyXG4gICAgICAgIH0pXHJcbiAgICA7XHJcbiAgICByZXR1cm4gbmV3RWxlbTtcclxufTtcclxuXHJcblBpblBhZFZpZXdlci5wcm90b3R5cGUucmVtb3ZlRWxlbWVudCA9IGZ1bmN0aW9uKGNhdEluZGV4LCBlbEluZGV4KSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyID0gdGhpcztcclxuICAgIENhdGVnb3J5RmFjdG9yeS5yZW1vdmVFbGVtZW50KHBpblBhZFZpZXdlci5jYXRlZ29yaWVzW2NhdEluZGV4XSwgZWxJbmRleCk7XHJcbiAgICBpZiAocGluUGFkVmlld2VyLmNhdGVnb3JpZXNbY2F0SW5kZXhdLmVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIENhdGVnb3J5RmFjdG9yeS5yZW1vdmVDYXRlZ29yeShwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllc1tjYXRJbmRleF0pO1xyXG4gICAgICAgIHBpblBhZFZpZXdlci5jYXRlZ29yaWVzLnNwbGljZShjYXRJbmRleCwgMSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5QaW5QYWRWaWV3ZXIucHJvdG90eXBlLmRlbGVnYXRlRWxlbWVudFJlbW92YWwgPSBmdW5jdGlvbihlbElkKSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyID0gdGhpcztcclxuICAgIHBpblBhZFZpZXdlci5waW5QYWQucmVtb3ZlRWxlbWVudChlbElkKTtcclxufTtcclxuXHJcblBpblBhZFZpZXdlci5wcm90b3R5cGUucmVtb3ZlQ2F0ZWdvcnkgPSBmdW5jdGlvbihjYXRJbmRleCkge1xyXG4gICAgdmFyIHBpblBhZFZpZXdlciA9IHRoaXM7XHJcbiAgICBDYXRlZ29yeUZhY3RvcnkucmVtb3ZlQ2F0ZWdvcnkocGluUGFkVmlld2VyLmNhdGVnb3JpZXNbY2F0SW5kZXhdKTtcclxuICAgIHBpblBhZFZpZXdlci5jYXRlZ29yaWVzLnNwbGljZShjYXRJbmRleCwgMSk7XHJcbn07XHJcblxyXG5QaW5QYWRWaWV3ZXIucHJvdG90eXBlLmRlbGVnYXRlQ2F0ZWdvcnlSZW1vdmFsID0gZnVuY3Rpb24oY2F0VGl0bGUpIHtcclxuICAgIHZhciBwaW5QYWRWaWV3ZXIgPSB0aGlzO1xyXG4gICAgcGluUGFkVmlld2VyLnBpblBhZC5yZW1vdmVDYXRlZ29yeShjYXRUaXRsZSk7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBpblBhZFZpZXdlcjsiLCIvKmpzbGludCBub2RlOiB0cnVlICovXHJcbi8qanNoaW50IGxheGJyZWFrOiB0cnVlICovXHJcblwidXNlIHN0cmljdFwiO1xyXG5cclxudmFyIFBpblBhZFZpZXdlciA9IHJlcXVpcmUoJy4vUGluUGFkVmlld2VyJyk7XHJcbnZhciBQaW5QYWRNb2RlbCA9IHJlcXVpcmUoJy4vUGluUGFkTW9kZWwnKTtcclxuXHJcbnZhciBQaW5QYWQgPSBmdW5jdGlvbihvcHRzKSB7XHJcbiAgICB2YXIgcGluUGFkID0gdGhpcztcclxuICAgIHBpblBhZC5tb2RlbCA9IG5ldyBQaW5QYWRNb2RlbChvcHRzLm9yZGVyaW5nKTtcclxuICAgIHBpblBhZC52aWV3ZXIgPSBuZXcgUGluUGFkVmlld2VyKG9wdHMub3B0aW9ucywgb3B0cy50b1BpbiwgcGluUGFkKTtcclxuICAgIHBpblBhZC5kaXNwYXRjaGVyID0gZDMuZGlzcGF0Y2goXCJhZGRcIiwgXCJkdXBsaWNhdGlvblwiLCBcInJlbW92ZVwiLCBcInVua25vd25cIiwgXCJpbmNvbXBsZXRlXCIpO1xyXG5cclxuICAgIHBpblBhZC5hZGRFbGVtZW50ID0gZnVuY3Rpb24oZWxlbWVudCkge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmNhdGVnb3J5ICYmIGVsZW1lbnQuaWQgJiYgZWxlbWVudC5zZWN0aW9ucyAmJiAoZWxlbWVudC5zZWN0aW9ucy5sZW5ndGggIT09IDApKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBwaW5QYWQubW9kZWwuYWRkRWxlbWVudChlbGVtZW50KTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIuZHVwbGljYXRpb24oe2VsZW1lbnQ6IGVsZW1lbnR9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBpblBhZC52aWV3ZXIuYWRkRWxlbWVudChlbGVtZW50LCByZXN1bHQuY2F0SW5kZXgsIHJlc3VsdC5lbEluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIHBpblBhZC5tb2RlbC5jYXRlZ29yaWVzW3Jlc3VsdC5jYXRJbmRleF0uZWxlbWVudHMpO1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIuYWRkKHtcclxuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogZWxlbWVudC5jYXRlZ29yeSxcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLmluY29tcGxldGUoe2VsZW1lbnQ6IGVsZW1lbnR9KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHBpblBhZC5yZW1vdmVFbGVtZW50ID0gZnVuY3Rpb24oZWxJZCkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBwaW5QYWQubW9kZWwucmVtb3ZlRWxlbWVudChlbElkKTtcclxuICAgICAgICBpZiAocmVzdWx0LmVycm9yKSB7XHJcbiAgICAgICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLnVua25vd24oe2VsZW1lbnQ6IGVsSWR9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwaW5QYWQudmlld2VyLnJlbW92ZUVsZW1lbnQocmVzdWx0LmNhdEluZGV4LCByZXN1bHQuZWxJbmRleCk7XHJcbiAgICAgICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLnJlbW92ZSh7ZWxlbWVudDogcmVzdWx0LmVsZW1lbnR9KTtcclxuICAgICAgICAgICAgaWYgKChwaW5QYWQubW9kZWwuY2F0ZWdvcmllcy5sZW5ndGggPT09IDApIHx8IChwaW5QYWQubW9kZWwuY2F0ZWdvcmllcy5sZW5ndGggPT09IHJlc3VsdC5jYXRJbmRleCkpIHtcclxuICAgICAgICAgICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLnJlbW92ZSh7Y2F0ZWdvcnk6IHJlc3VsdC5jYXRlZ29yeX0pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBpblBhZC5tb2RlbC5jYXRlZ29yaWVzW3Jlc3VsdC5jYXRJbmRleF0udGl0bGUgIT09IHJlc3VsdC5jYXRlZ29yeSkge1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIucmVtb3ZlKHtjYXRlZ29yeTogcmVzdWx0LmNhdGVnb3J5fSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHBpblBhZC5yZW1vdmVDYXRlZ29yeSA9IGZ1bmN0aW9uKGNhdFRpdGxlKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IHBpblBhZC5tb2RlbC5yZW1vdmVDYXRlZ29yeShjYXRUaXRsZSk7XHJcbiAgICAgICAgcGluUGFkLnZpZXdlci5yZW1vdmVDYXRlZ29yeShyZXN1bHQuY2F0SW5kZXgpO1xyXG4gICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLnJlbW92ZSh7Y2F0ZWdvcnk6IGNhdFRpdGxlfSk7XHJcbiAgICB9O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQaW5QYWQ7Il19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlc1xcYnJvd3NlcmlmeVxcbm9kZV9tb2R1bGVzXFxicm93c2VyLXBhY2tcXF9wcmVsdWRlLmpzIiwibGliXFxDYXRlZ29yeUZhY3RvcnkuanMiLCJsaWJcXENhdGVnb3J5TW9kZWwuanMiLCJsaWJcXEVsZW1lbnRGYWN0b3J5LmpzIiwibGliXFxQaW5QYWRNb2RlbC5qcyIsImxpYlxcUGluUGFkVmlld2VyLmpzIiwibGliXFxQaW5QYWQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ3hLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIi8qanNsaW50IG5vZGU6IHRydWUgKi9cclxuLypqc2hpbnQgbGF4YnJlYWs6IHRydWUgKi9cclxuXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG52YXIgZDMgPSByZXF1aXJlKCdkMycpO1xyXG52YXIgXyA9IHJlcXVpcmUoJ3VuZGVyc2NvcmUnKTtcclxudmFyIEVsZW1lbnRGYWN0b3J5ID0gcmVxdWlyZSgnLi9FbGVtZW50RmFjdG9yeScpO1xyXG5cclxudmFyIENhdGVnb3J5ID0gZnVuY3Rpb24ocGluUGFkVmlld2VyLCBjYXRUaXRsZSkge1xyXG4gICAgdmFyIGNhdGVnb3J5ID0gdGhpcztcclxuICAgIGNhdGVnb3J5LnBpblBhZFZpZXdlciA9IHBpblBhZFZpZXdlcjtcclxuICAgIGNhdGVnb3J5LnRpdGxlID0gY2F0VGl0bGU7XHJcbiAgICBjYXRlZ29yeS5vcGVuID0gdHJ1ZTtcclxuICAgIGNhdGVnb3J5LmVsZW1lbnRzID0gW107XHJcblxyXG4gICAgdmFyIGNhdGVnb3J5Q29udGFpbmVyID0gY2F0ZWdvcnkucGluUGFkVmlld2VyLnBhZENvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmNsYXNzZWQoJ3VwX3BwX2NhdGVnb3J5LWNvbnRhaW5lcicsIHRydWUpO1xyXG5cclxuICAgIGNhdGVnb3J5LmhlYWRlciA9IGNhdGVnb3J5Q29udGFpbmVyLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXBfcHBfY2F0ZWdvcnktaGVhZGVyJywgdHJ1ZSk7XHJcbiAgICBjYXRlZ29yeS5oZWFkZXIudGl0bGUgPSBjYXRlZ29yeS5oZWFkZXIuYXBwZW5kKCdhJylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXBfcHBfY2F0ZWdvcnktbmFtZSB1cF9wZnR2X2Fycm93LWRvd24nKVxyXG4gICAgICAgIC50ZXh0KGNhdFRpdGxlKVxyXG4gICAgICAgIC5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkudG9nZ2xlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICBjYXRlZ29yeS5oZWFkZXIuYXBwZW5kKCdzcGFuJylcclxuICAgICAgICAuY2xhc3NlZCgndXBfcHBfaWNvbkNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgICAgLnN0eWxlKCdmbG9hdCcsICdyaWdodCcpXHJcbiAgICAgICAgLmFwcGVuZCgnZGl2JylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXAtcHAtaWNvbi10cmFzaCB1cF9wcF9jbGlja2FibGUtaWNvbicpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5kZWxlZ2F0ZUNhdGVnb3J5UmVtb3ZhbChjYXRlZ29yeS50aXRsZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyID0gY2F0ZWdvcnlDb250YWluZXIuYXBwZW5kKCdkaXYnKS5jbGFzc2VkKCd1cF9wcF9jYXRlZ29yeS1wYWQnLCB0cnVlKTtcclxuXHJcbiAgICBjYXRlZ29yeS5yZW1vdmUgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICB3aGlsZSAoY2F0ZWdvcnkuZWxlbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5lbGVtZW50c1swXS5yZW1vdmUoY2F0ZWdvcnkuZWxlbWVudHNbMF0uaWQsIGNhdGVnb3J5LnRpdGxlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZSgwLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0ZWdvcnlDb250YWluZXIucmVtb3ZlKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhdGVnb3J5LnRvZ2dsZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIGlmIChjYXRlZ29yeS5wYWRDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknKSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnBhZENvbnRhaW5lci5zdHlsZSgnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5oZWFkZXIudGl0bGUuYXR0cignY2xhc3MnLCAndXBfcHBfY2F0ZWdvcnktbmFtZSB1cF9wZnR2X2Fycm93LWRvd24nKTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkub3BlbiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkuaGVhZGVyLnRpdGxlLmF0dHIoJ2NsYXNzJywgJ3VwX3BwX2NhdGVnb3J5LW5hbWUgdXBfcGZ0dl9hcnJvdy1yaWdodCcpO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5hZGRFbGVtZW50ID0gZnVuY3Rpb24oZWxlbSwgc29ydGVkSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICAgICAgdmFyIG5ld0VsZW0gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHNvcnRlZEluZGV4ID4gY2F0ZWdvcnkuZWxlbWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIG5ld0VsZW0gPSAgRWxlbWVudEZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgZWxlbSk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnB1c2gobmV3RWxlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyLnNlbGVjdEFsbCgnKicpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICBfLmVhY2goYWxsRWxlbWVudHMsIGZ1bmN0aW9uKGVsZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb3BlbiA9IGluZGV4ID09PSBzb3J0ZWRJbmRleCA/IHVuZGVmaW5lZCA6IGNhdGVnb3J5LmVsZW1lbnRzW2luZGV4XS5vcGVuO1xyXG4gICAgICAgICAgICAgICAgdmFyIGFkZGVkID0gRWxlbWVudEZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgZWxlbSwgb3Blbik7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IHNvcnRlZEluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RWxlbSA9IGFkZGVkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZShzb3J0ZWRJbmRleCwgMCwgbmV3RWxlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3RWxlbTtcclxuICAgIH07XHJcblxyXG4gICAgY2F0ZWdvcnkucmVtb3ZlRWxlbWVudCA9IGZ1bmN0aW9uKGVsSW5kZXgpIHtcclxuICAgICAgICB2YXIgZWxlbWVudCA9IGNhdGVnb3J5LmVsZW1lbnRzW2VsSW5kZXhdO1xyXG4gICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZShlbEluZGV4LCAxKTtcclxuICAgICAgICBFbGVtZW50RmFjdG9yeS5yZW1vdmVFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5kZWxlZ2F0ZUVsZW1lbnRSZW1vdmFsID0gZnVuY3Rpb24oZWxJZCkge1xyXG4gICAgICAgIGNhdGVnb3J5LnBpblBhZFZpZXdlci5kZWxlZ2F0ZUVsZW1lbnRSZW1vdmFsKGVsSWQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5kZWxlZ2F0ZUNhdGVnb3J5UmVtb3ZhbCA9IGZ1bmN0aW9uKGNhdFRpdGxlKSB7XHJcbiAgICAgICAgY2F0ZWdvcnkucGluUGFkVmlld2VyLmRlbGVnYXRlQ2F0ZWdvcnlSZW1vdmFsKGNhdFRpdGxlKTtcclxuICAgIH07XHJcbn07XHJcblxyXG52YXIgQ2F0ZWdvcnlGYWN0b3J5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjcmVhdGVDYXRlZ29yeTogZnVuY3Rpb24ocGluUGFkVmlld2VyLCBjYXRUaXRsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5KHBpblBhZFZpZXdlciwgY2F0VGl0bGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVtb3ZlQ2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnJlbW92ZSgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3JlYXRlRWxlbWVudDogZnVuY3Rpb24oY2F0ZWdvcnksIGVsZW0sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYXRlZ29yeS5hZGRFbGVtZW50KGVsZW0sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZUVsZW1lbnQ6IGZ1bmN0aW9uKGNhdGVnb3J5LCBlbEluZGV4KSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnJlbW92ZUVsZW1lbnQoZWxJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufSgpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeUZhY3Rvcnk7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuXHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG5cclxudmFyIENhdGVnb3J5TW9kZWwgPSBmdW5jdGlvbihjYXRUaXRsZSwgb3JkZXJpbmcpIHtcclxuICAgIHZhciBjYXRNb2RlbCA9IHRoaXM7XHJcbiAgICBjYXRNb2RlbC50aXRsZSA9IGNhdFRpdGxlO1xyXG4gICAgY2F0TW9kZWwub3JkZXJpbmcgPSBvcmRlcmluZztcclxuICAgIGNhdE1vZGVsLmVsZW1lbnRzID0gW107XHJcblxyXG4gICAgY2F0TW9kZWwuYWRkRWxlbWVudCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcclxuICAgICAgICB2YXIgc29ydGVkSW5kZXggPSAwO1xyXG4gICAgICAgIGlmIChjYXRNb2RlbC5vcmRlcmluZyAmJiBlbGVtZW50Lm9yZGVyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN0ID0gXy5wbHVjayhjYXRNb2RlbC5lbGVtZW50cywgJ29yZGVyaW5nJyk7XHJcbiAgICAgICAgICAgIF8uZWFjaChvcmRlcmluZywgZnVuY3Rpb24oYXR0cikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gXy5zb3J0ZWRJbmRleChyZXN0LCBlbGVtZW50Lm9yZGVyaW5nLCBhdHRyKTtcclxuICAgICAgICAgICAgICAgIHNvcnRlZEluZGV4ID0gc29ydGVkSW5kZXggKyBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJlc3QgPSBfLnJlc3QocmVzdCwgaW5kZXgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzb3J0ZWRJbmRleCA9IGNhdE1vZGVsLmVsZW1lbnRzLmxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0TW9kZWwuZWxlbWVudHMuc3BsaWNlKHNvcnRlZEluZGV4LCAwLCBlbGVtZW50KTtcclxuICAgICAgICByZXR1cm4gc29ydGVkSW5kZXg7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhdE1vZGVsLnJlbW92ZUVsZW1lbnQgPSBmdW5jdGlvbihpbmRleCkge1xyXG4gICAgICAgIGlmICgoMCA8PSBpbmRleCkgJiYgKGluZGV4IDwgY2F0TW9kZWwuZWxlbWVudHMubGVuZ3RoKSkge1xyXG4gICAgICAgICAgICBjYXRNb2RlbC5lbGVtZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENhdGVnb3J5TW9kZWw7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuXHJcbnZhciBkMyA9IHJlcXVpcmUoJ2QzJyk7XHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG5cclxudmFyIGlzTGluayA9IGZ1bmN0aW9uKGluZm8pIHtcclxuICAgIGlmICgodHlwZW9mIGluZm8gPT09ICdvYmplY3QnKSAmJiAhKGluZm8gaW5zdGFuY2VvZiBBcnJheSkpIHtcclxuICAgICAgICB2YXIga2V5cyA9IF8ua2V5cyhpbmZvKTtcclxuICAgICAgICBpZiAoKGtleXMubGVuZ3RoID09PSAyKSAmJiBfLmNvbnRhaW5zKGtleXMsICd2YWx1ZScpICYmIF8uY29udGFpbnMoa2V5cywgJ2xpbmsnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2VcclxufTtcclxuXHJcbnZhciBhZGRMaW5rID0gZnVuY3Rpb24oY29udGFpbmVyLCBpbmZvVGV4dCwgaW5mb0xpbmspIHtcclxuICAgIGlmIChpbmZvTGluayAmJiAoaW5mb0xpbmsgIT09ICctJykpIHtcclxuICAgICAgICBjb250YWluZXIuYXBwZW5kKCdhJylcclxuICAgICAgICAgICAgLmF0dHIoJ2hyZWYnLCBpbmZvTGluaylcclxuICAgICAgICAgICAgLmF0dHIoJ3RhcmdldCcsICdfYmxhbmsnKVxyXG4gICAgICAgICAgICAudGV4dChpbmZvVGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRhaW5lci50ZXh0KGluZm9UZXh0KTtcclxuICAgIH1cclxufTtcclxuXHJcbnZhciBhZGRWYWx1ZSA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgaW5mbykge1xyXG4gICAgaWYgKCh0eXBlb2YgaW5mbyA9PT0gJ3N0cmluZycpIHx8ICh0eXBlb2YgaW5mbyA9PT0gJ251bWJlcicpIHx8ICh0eXBlb2YgaW5mbyA9PT0gJ2Jvb2xlYW4nKSkge1xyXG4gICAgICAgIGNvbnRhaW5lci50ZXh0KGluZm8pO1xyXG4gICAgfSBlbHNlIGlmIChpc0xpbmsoaW5mbykpIHtcclxuICAgICAgICBhZGRMaW5rKGNvbnRhaW5lciwgaW5mby52YWx1ZSwgaW5mby5saW5rKTtcclxuICAgIH0gZWxzZSBpZiAoaW5mbyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgXy5lYWNoKGluZm8sIGZ1bmN0aW9uKGRhdHVtLCBpbmRleCkge1xyXG4gICAgICAgICAgICB2YXIgc3BhbiA9IGNvbnRhaW5lci5hcHBlbmQoJ3NwYW4nKTtcclxuICAgICAgICAgICAgYWRkVmFsdWUoc3BhbiwgZGF0dW0pO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IChpbmZvLmxlbmd0aC0xKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZCgnc3BhbicpLnRleHQoJywgJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYWRkRGF0YShjb250YWluZXIuYXBwZW5kKCd0YWJsZScpLCBpbmZvKTtcclxuICAgIH1cclxufTtcclxuXHJcbnZhciBhZGREYXR1bSA9IGZ1bmN0aW9uKHRhYmxlLCBrZXksIGluZm8pIHtcclxuICAgIHZhciB0ciA9IHRhYmxlLmFwcGVuZCgndHInKTtcclxuICAgIGlmIChrZXkuaW5kZXhPZignc3R5bGVkXycpID09PSAwKSB7XHJcbiAgICAgICAgdmFyIGxlZnRDb2wsIHJpZ2h0Q29sO1xyXG4gICAgICAgIGlmIChpbmZvLmtleV9yaWdodCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBsZWZ0Q29sID0gdHIuYXBwZW5kKCd0ZCcpO1xyXG4gICAgICAgICAgICByaWdodENvbCA9IHRyLmFwcGVuZCgndGQnKS50ZXh0KGluZm8ua2V5ICsgJyAnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBsZWZ0Q29sID0gdHIuYXBwZW5kKCd0ZCcpLnRleHQoaW5mby5rZXkpO1xyXG4gICAgICAgICAgICByaWdodENvbCA9IHRyLmFwcGVuZCgndGQnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZm8ua2V5X3N0eWxlKSB7XHJcbiAgICAgICAgICAgIGxlZnRDb2wuYXR0cignc3R5bGUnLCBpbmZvLmtleV9zdHlsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmZvLnZhbHVlX3N0eWxlKSB7XHJcbiAgICAgICAgICAgIHJpZ2h0Q29sLmF0dHIoJ3N0eWxlJywgaW5mby52YWx1ZV9zdHlsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFkZFZhbHVlKHJpZ2h0Q29sLCBpbmZvLnZhbHVlKVxyXG4gICAgfSBlbHNlIGlmIChrZXkuaW5kZXhPZignc3Vic2VjdGlvbl8nKSA9PT0gMCkge1xyXG4gICAgICAgIHRyLmFwcGVuZCgndGQnKVxyXG4gICAgICAgICAgICAuYXR0cignY29sc3BhbicsIDIpXHJcbiAgICAgICAgICAgIC5jbGFzc2VkKCd1cF9wcF90YWJsZV9zdWJzZWN0aW9uJywgdHJ1ZSlcclxuICAgICAgICAgICAgLnRleHQoaW5mby50aXRsZSk7XHJcbiAgICAgICAgYWRkRGF0YSh0YWJsZSwgaW5mby5pbmZvcm1hdGlvbik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRyLmFwcGVuZCgndGQnKS50ZXh0KGtleS5yZXBsYWNlKC9fL2csICcgJykpO1xyXG4gICAgICAgIGFkZFZhbHVlKHRyLmFwcGVuZCgndGQnKSwgaW5mbyk7XHJcbiAgICB9XHJcbn07XHJcblxyXG52YXIgYWRkRGF0YSA9IGZ1bmN0aW9uKHRhYmxlLCBkYXRhKSB7XHJcbiAgICBfLmVhY2goZGF0YSwgZnVuY3Rpb24oaW5mbywga2V5KSB7XHJcbiAgICAgICAgYWRkRGF0dW0odGFibGUsIGtleSwgaW5mbyk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbnZhciBFbGVtZW50ID0gZnVuY3Rpb24oY2F0ZWdvcnksIGVsZW0sIG9wZW4pIHtcclxuICAgIHZhciBlbGVtZW50ID0gdGhpcztcclxuICAgIGVsZW1lbnQuaWQgPSBlbGVtLmlkO1xyXG4gICAgZWxlbWVudC5jYXRlZ29yeSA9IGNhdGVnb3J5O1xyXG4gICAgZWxlbWVudC5vcGVuID0gb3BlbjtcclxuICAgIGVsZW1lbnQuaGVhZGVyID0gdW5kZWZpbmVkO1xyXG4gICAgZWxlbWVudC50YWJsZUNvbnRhaW5lciA9IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnQudGFibGUgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgZWxlbWVudC50b2dnbGUgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICBpZiAoZWxlbWVudC50YWJsZUNvbnRhaW5lci5zdHlsZSgnZGlzcGxheScpID09PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgZWxlbWVudC50YWJsZUNvbnRhaW5lci5zdHlsZSgnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgICAgICAgICBlbGVtZW50LmhlYWRlci50aXRsZS5hdHRyKCdjbGFzcycsICd1cF9wcF9lbGVtZW50LW5hbWUgdXBfcGZ0dl9hcnJvdy1kb3duJyk7XHJcbiAgICAgICAgICAgIGVsZW1lbnQub3BlbiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZWxlbWVudC50YWJsZUNvbnRhaW5lci5zdHlsZSgnZGlzcGxheScsICdub25lJyk7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaGVhZGVyLnRpdGxlLmF0dHIoJ2NsYXNzJywgJ3VwX3BwX2VsZW1lbnQtbmFtZSB1cF9wZnR2X2Fycm93LXJpZ2h0Jyk7XHJcbiAgICAgICAgICAgIGVsZW1lbnQub3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgdmFyIGVsZW1Db250YWluZXIgPSBlbGVtZW50LmNhdGVnb3J5LnBhZENvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmF0dHIoJ2lkJywgJ3Bpbm5lZF9lbGVtX2lkXycgKyBlbGVtLmlkKTtcclxuXHJcbiAgICBlbGVtZW50LmZpcnN0KGVsZW1lbnQuY2F0ZWdvcnkudGl0bGUsIGVsZW1Db250YWluZXIsIF8uZmlyc3QoZWxlbS5zZWN0aW9ucykpO1xyXG4gICAgZWxlbWVudC50YWlsKGVsZW1lbnQudGFibGUsIF8udGFpbChlbGVtLnNlY3Rpb25zKSk7XHJcbn07XHJcblxyXG5FbGVtZW50LnByb3RvdHlwZS5maXJzdCA9IGZ1bmN0aW9uKGNhdFRpdGxlLCBjb250YWluZXIsIHNlY3Rpb24pIHtcclxuICAgIHZhciBlbGVtZW50ID0gdGhpcztcclxuICAgIGVsZW1lbnQuaGVhZGVyID0gY29udGFpbmVyLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXBfcHBfZWxlbWVudC1oZWFkZXInLCB0cnVlKTtcclxuICAgIGVsZW1lbnQuaGVhZGVyLnRpdGxlID0gZWxlbWVudC5oZWFkZXIuYXBwZW5kKCdhJylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQub3BlbiA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAndXBfcHBfZWxlbWVudC1uYW1lIHVwX3BmdHZfYXJyb3ctcmlnaHQnO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICd1cF9wcF9lbGVtZW50LW5hbWUgdXBfcGZ0dl9hcnJvdy1kb3duJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnRleHQoc2VjdGlvbi50aXRsZSlcclxuICAgICAgICAub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQudG9nZ2xlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICBlbGVtZW50LmhlYWRlci5hcHBlbmQoJ3NwYW4nKVxyXG4gICAgICAgIC5jbGFzc2VkKCd1cF9wcF9pY29uQ29udGFpbmVyJywgdHJ1ZSlcclxuICAgICAgICAuc3R5bGUoJ2Zsb2F0JywgJ3JpZ2h0JylcclxuICAgICAgICAuYXBwZW5kKCdkaXYnKVxyXG4gICAgICAgIC5hdHRyKCdjbGFzcycsICd1cC1wcC1pY29uLXRyYXNoIHVwX3BwX2NsaWNrYWJsZS1pY29uJylcclxuICAgICAgICAub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuY2F0ZWdvcnkuZGVsZWdhdGVFbGVtZW50UmVtb3ZhbChlbGVtZW50LmlkKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICBlbGVtZW50LnRhYmxlQ29udGFpbmVyID0gY29udGFpbmVyLmFwcGVuZCgnZGl2Jyk7XHJcbiAgICBpZiAoZWxlbWVudC5vcGVuID09PSBmYWxzZSkge1xyXG4gICAgICAgIGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG4gICAgfVxyXG4gICAgZWxlbWVudC50YWJsZSA9IGVsZW1lbnQudGFibGVDb250YWluZXIuYXBwZW5kKCd0YWJsZScpLmF0dHIoJ3dpZHRoJywgJzEwMCUnKTtcclxuICAgIGFkZERhdGEoZWxlbWVudC50YWJsZSwgc2VjdGlvbi5pbmZvcm1hdGlvbik7XHJcbn07XHJcblxyXG5FbGVtZW50LnByb3RvdHlwZS50YWlsID0gZnVuY3Rpb24oY29udGFpbmVyLCBzZWN0aW9ucykge1xyXG4gICAgXy5lYWNoKHNlY3Rpb25zLCBmdW5jdGlvbihzZWN0aW9uKSB7XHJcbiAgICAgICAgY29udGFpbmVyLmFwcGVuZCgndHInKS5jbGFzc2VkKCd1cF9wcF9lbGVtZW50LXNlY3Rpb24nLCB0cnVlKVxyXG4gICAgICAgICAgICAuYXBwZW5kKCd0ZCcpXHJcbiAgICAgICAgICAgIC5hdHRyKCdjb2xzcGFuJywgMilcclxuICAgICAgICAgICAgLnRleHQoc2VjdGlvbi50aXRsZSk7XHJcblxyXG4gICAgICAgIGFkZERhdGEoY29udGFpbmVyLCBzZWN0aW9uLmluZm9ybWF0aW9uKTtcclxuICAgIH0pO1xyXG59O1xyXG5cclxuRWxlbWVudC5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24oaWQpIHtcclxuICAgIHZhciBjb250YWluZXIgPSBkMy5zZWxlY3QoJyMnICsgJ3Bpbm5lZF9lbGVtX2lkXycgKyBpZCk7XHJcbiAgICBjb250YWluZXIucmVtb3ZlKCk7XHJcbn07XHJcblxyXG52YXIgRWxlbWVudEZhY3RvcnkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNyZWF0ZUVsZW1lbnQ6IGZ1bmN0aW9uKGNhdGVnb3J5LCBlbGVtLCBvcGVuKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRWxlbWVudChjYXRlZ29yeSwgZWxlbSwgb3Blbik7XHJcbiAgICAgICAgfSxcclxuICAgICAgICByZW1vdmVFbGVtZW50OiBmdW5jdGlvbihlbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlKGVsZW1lbnQuaWQpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn0oKTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gRWxlbWVudEZhY3Rvcnk7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuXHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG52YXIgQ2F0ZWdvcnlNb2RlbCA9IHJlcXVpcmUoJy4vQ2F0ZWdvcnlNb2RlbCcpO1xyXG5cclxudmFyIGFkZENhdGVnb3J5ID0gZnVuY3Rpb24ocGluUGFkTW9kZWwsIGNhdFRpdGxlLCBvcmRlcmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBDYXRlZ29yeU1vZGVsKGNhdFRpdGxlLCBvcmRlcmluZyk7XHJcbn07XHJcblxyXG52YXIgUGluUGFkTW9kZWwgPSBmdW5jdGlvbihvcmRlcmluZykge1xyXG4gICAgdmFyIHBpblBhZE1vZGVsID0gdGhpcztcclxuICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMgPSBbXTtcclxuXHJcbiAgICBwaW5QYWRNb2RlbC5hZGRFbGVtZW50ID0gZnVuY3Rpb24oZWxlbWVudCkge1xyXG4gICAgICAgIHZhciBjYXRlZ29yeTtcclxuICAgICAgICB2YXIgY2F0SW5kZXggPSAtMTtcclxuICAgICAgICB2YXIgZWxlbSA9IF8uZmluZChwaW5QYWRNb2RlbC5jYXRlZ29yaWVzLCBmdW5jdGlvbihjYXQsIGNvdW50ZXIpIHtcclxuICAgICAgICAgICAgaWYgKGNhdC50aXRsZSA9PT0gZWxlbWVudC5jYXRlZ29yeSkge1xyXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBjYXQ7XHJcbiAgICAgICAgICAgICAgICBjYXRJbmRleCA9IGNvdW50ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIF8uZmluZChjYXQuZWxlbWVudHMsIGZ1bmN0aW9uKGVsKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudC5pZCA9PT0gZWwuaWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGVsZW0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtlcnJvcjogJ2R1cGxpY2F0aW9uJ307XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKCFjYXRlZ29yeSB8fCAoY2F0SW5kZXggPT09IC0xKSkge1xyXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnkgPSBhZGRDYXRlZ29yeShwaW5QYWRNb2RlbCwgZWxlbWVudC5jYXRlZ29yeSwgb3JkZXJpbmcpO1xyXG4gICAgICAgICAgICAgICAgcGluUGFkTW9kZWwuY2F0ZWdvcmllcy5wdXNoKGNhdGVnb3J5KTtcclxuICAgICAgICAgICAgICAgIGNhdEluZGV4ID0gcGluUGFkTW9kZWwuY2F0ZWdvcmllcy5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHZhciBlbEluZGV4ID0gY2F0ZWdvcnkuYWRkRWxlbWVudChlbGVtZW50KTtcclxuICAgICAgICAgICAgcmV0dXJuIHtjYXRJbmRleDogY2F0SW5kZXgsIGVsSW5kZXg6IGVsSW5kZXh9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcGluUGFkTW9kZWwucmVtb3ZlRWxlbWVudCA9IGZ1bmN0aW9uKGVsSWQpIHtcclxuICAgICAgICB2YXIgY2F0SW5kZXggPSAtMSwgZWxJbmRleCA9IC0xO1xyXG4gICAgICAgIF8uZmluZChwaW5QYWRNb2RlbC5jYXRlZ29yaWVzLCBmdW5jdGlvbihjYXQsIGNvdW50ZXIpIHtcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBfLmZpbmQoY2F0LmVsZW1lbnRzLCBmdW5jdGlvbihlbCwgaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIGVsSW5kZXggPSBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJldHVybiBlbC5pZCA9PT0gZWxJZDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBjYXRJbmRleCA9IGNvdW50ZXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGNhdEluZGV4ICE9PSAtMTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoKGNhdEluZGV4ICE9PSAtMSkgJiYgKGVsSW5kZXggIT09IC0xKSkge1xyXG4gICAgICAgICAgICB2YXIgcmVtb3ZlZEZyb21DYXRlZ29yeSA9IHBpblBhZE1vZGVsLmNhdGVnb3JpZXNbY2F0SW5kZXhdLnRpdGxlO1xyXG4gICAgICAgICAgICB2YXIgcmVtb3ZlZEVsZW1lbnQgPSBwaW5QYWRNb2RlbC5jYXRlZ29yaWVzW2NhdEluZGV4XS5lbGVtZW50c1tlbEluZGV4XTtcclxuICAgICAgICAgICAgcGluUGFkTW9kZWwuY2F0ZWdvcmllc1tjYXRJbmRleF0ucmVtb3ZlRWxlbWVudChlbEluZGV4KTtcclxuICAgICAgICAgICAgaWYgKHBpblBhZE1vZGVsLmNhdGVnb3JpZXNbY2F0SW5kZXhdLmVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgcGluUGFkTW9kZWwuY2F0ZWdvcmllcy5zcGxpY2UoY2F0SW5kZXgsIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB7Y2F0SW5kZXg6IGNhdEluZGV4LCBlbEluZGV4OiBlbEluZGV4LCBjYXRlZ29yeTogcmVtb3ZlZEZyb21DYXRlZ29yeSwgZWxlbWVudDogcmVtb3ZlZEVsZW1lbnR9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge2Vycm9yOiAndW5rbm93bid9XHJcbiAgICB9O1xyXG5cclxuICAgIHBpblBhZE1vZGVsLnJlbW92ZUNhdGVnb3J5ID0gZnVuY3Rpb24oY2F0VGl0bGUpIHtcclxuICAgICAgICB2YXIgY2F0SW5kZXggPSAtMTtcclxuICAgICAgICB2YXIgY2F0ZWdvcnkgPSBfLmZpbmQocGluUGFkTW9kZWwuY2F0ZWdvcmllcywgZnVuY3Rpb24oY2F0LCBpbmRleCkge1xyXG4gICAgICAgICAgICBjYXRJbmRleCA9IGluZGV4O1xyXG4gICAgICAgICAgICByZXR1cm4gY2F0LnRpdGxlID09PSBjYXRUaXRsZTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgcGluUGFkTW9kZWwuY2F0ZWdvcmllcy5zcGxpY2UoY2F0SW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge2NhdEluZGV4OiBjYXRJbmRleH07XHJcbiAgICB9O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQaW5QYWRNb2RlbDsiLCIvKmpzbGludCBub2RlOiB0cnVlICovXHJcbi8qanNoaW50IGxheGJyZWFrOiB0cnVlICovXHJcblwidXNlIHN0cmljdFwiIDtcclxuLypcclxuICogYmlvanMtdmlzLXBpbnBhZFxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZWJpLXVuaXByb3QvYmlvanMtdmlzLXBpbnBhZFxyXG4gKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQgZWJpLXVuaXByb3RcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyIGxpY2Vuc2UuXHJcbiAqL1xyXG5cclxuLyoqXHJcbkBjbGFzcyBQaW5QYWRWaWV3ZXJcclxuICovXHJcbnZhciBkMyA9IHJlcXVpcmUoJ2QzJyk7XHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG52YXIgQ2F0ZWdvcnlGYWN0b3J5ID0gcmVxdWlyZSgnLi9DYXRlZ29yeUZhY3RvcnknKTtcclxuXHJcbi8qKlxyXG4gKiBQcml2YXRlIE1ldGhvZHNcclxuICovXHJcbnZhciBkZWZhdWx0T3B0cyA9IHtcclxuICAgIGhlaWdodDogJzUwMHB4JyxcclxuICAgIHdpZHRoOiAnMjUwcHgnLFxyXG4gICAgaGlnaGxpZ2h0Q29sb3I6ICdncmVlbidcclxufTtcclxudmFyIGluaXQgPSBmdW5jdGlvbihwaW5QYWRWaWV3ZXIsIHRvUGluKSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyQ29udGFpbmVyID0gZDMuc2VsZWN0KHBpblBhZFZpZXdlci5vcHRpb25zLmVsKVxyXG4gICAgICAudGV4dCgnJylcclxuICAgICAgLmFwcGVuZCgnZGl2JylcclxuICAgICAgLmNsYXNzZWQoJ3VwX3BwX21haW4tY29udGFpbmVyJywgdHJ1ZSlcclxuICAgICAgLnN0eWxlKCd3aWR0aCcsIHBpblBhZFZpZXdlci5vcHRpb25zLndpZHRoKTtcclxuXHJcbiAgICB2YXIgbWFpblRpdGxlID0gcGluUGFkVmlld2VyQ29udGFpbmVyLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXBfcHBfbWFpblRpdGxlJywgdHJ1ZSk7XHJcbiAgICBtYWluVGl0bGUuYXBwZW5kKCdkaXYnKS5jbGFzc2VkKCd1cF9wcF9pY29uQ29udGFpbmVyJywgdHJ1ZSlcclxuICAgICAgICAuYXBwZW5kKCdkaXYnKS5jbGFzc2VkKCd1cC1wcC1pY29uLXBpbicsIHRydWUpLmNsYXNzZWQoJ3VwX3BwX2ljb24nLCB0cnVlKTtcclxuICAgIHBpblBhZFZpZXdlci5vZmZzZXRUb3AgPSBtYWluVGl0bGUubm9kZSgpLm9mZnNldEhlaWdodCArIG1haW5UaXRsZS5ub2RlKCkub2Zmc2V0VG9wO1xyXG5cclxuICAgIHBpblBhZFZpZXdlci5wYWRDb250YWluZXIgPSBwaW5QYWRWaWV3ZXJDb250YWluZXIuYXBwZW5kKCdkaXYnKVxyXG4gICAgICAgIC5jbGFzc2VkKCd1cF9wcF9wYWQnLCB0cnVlKVxyXG4gICAgICAgIC5zdHlsZSgnaGVpZ2h0JywgcGluUGFkVmlld2VyLm9wdGlvbnMuaGVpZ2h0KTtcclxuXHJcbiAgICBpZiAocGluUGFkVmlld2VyLm9wdGlvbnMudG9QaW4pIHtcclxuICAgICAgICBwaW5QYWRWaWV3ZXIuYWRkRWxlbWVudCh0b1Bpbik7XHJcbiAgICB9XHJcbn07XHJcblxyXG4vKlxyXG4gKiBQdWJsaWMgTWV0aG9kc1xyXG4gKi9cclxudmFyIFBpblBhZFZpZXdlciA9IGZ1bmN0aW9uKG9wdHMsIHRvUGluLCBwaW5QYWQpe1xyXG4gICAgdmFyIHBpblBhZFZpZXdlciA9IHRoaXM7XHJcbiAgICBwaW5QYWRWaWV3ZXIub3B0aW9ucyA9IF8uZXh0ZW5kKHt9LCBkZWZhdWx0T3B0cywgb3B0cyk7XHJcbiAgICBwaW5QYWRWaWV3ZXIucGluUGFkID0gcGluUGFkO1xyXG4gICAgcGluUGFkVmlld2VyLm9mZnNldFRvcCA9IHVuZGVmaW5lZDtcclxuICAgIHBpblBhZFZpZXdlci5jYXRlZ29yaWVzID0gW107XHJcblxyXG4gICAgaW5pdChwaW5QYWRWaWV3ZXIsIHRvUGluKTtcclxufTtcclxuXHJcbnZhciBhZGRDYXRlZ29yeSA9IGZ1bmN0aW9uKHBpblBhZFZpZXdlciwgY2F0ZWdvcnkpIHtcclxuICAgIHJldHVybiBDYXRlZ29yeUZhY3RvcnkuY3JlYXRlQ2F0ZWdvcnkocGluUGFkVmlld2VyLCBjYXRlZ29yeSk7XHJcbn07XHJcblxyXG5QaW5QYWRWaWV3ZXIucHJvdG90eXBlLmFkZEVsZW1lbnQgPSBmdW5jdGlvbih0b1BpbiwgY2F0SW5kZXgsIGVsSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyID0gdGhpcztcclxuICAgIC8vYWRkIGNhdGVnb3J5XHJcbiAgICB2YXIgY2F0ZWdvcnk7XHJcbiAgICBpZiAoY2F0SW5kZXggPj0gcGluUGFkVmlld2VyLmNhdGVnb3JpZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgcGluUGFkVmlld2VyLmNhdGVnb3JpZXMucHVzaChhZGRDYXRlZ29yeShwaW5QYWRWaWV3ZXIsIHRvUGluLmNhdGVnb3J5KSk7XHJcbiAgICAgICAgY2F0ZWdvcnkgPSBfLmxhc3QocGluUGFkVmlld2VyLmNhdGVnb3JpZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBjYXRlZ29yeSA9IHBpblBhZFZpZXdlci5jYXRlZ29yaWVzW2NhdEluZGV4XTtcclxuICAgIH1cclxuICAgIGlmICghY2F0ZWdvcnkub3Blbikge1xyXG4gICAgICAgIGNhdGVnb3J5LnRvZ2dsZSgpO1xyXG4gICAgfVxyXG4gICAgdmFyIG5ld0VsZW0gPSBDYXRlZ29yeUZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgdG9QaW4sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKTtcclxuICAgIHZhciBlbGVtWSA9IG5ld0VsZW0uaGVhZGVyLm5vZGUoKS5vZmZzZXRUb3A7XHJcbiAgICBwaW5QYWRWaWV3ZXIucGFkQ29udGFpbmVyLm5vZGUoKS5zY3JvbGxUb3AgPSBlbGVtWSAtIHBpblBhZFZpZXdlci5vZmZzZXRUb3A7XHJcbiAgICB2YXIgY29sb3IgPSBuZXdFbGVtLmhlYWRlci5zdHlsZSgnYmFja2dyb3VuZC1jb2xvcicpO1xyXG4gICAgbmV3RWxlbS5oZWFkZXJcclxuICAgICAgICAudHJhbnNpdGlvbigpXHJcbiAgICAgICAgLmR1cmF0aW9uKDE1MDApXHJcbiAgICAgICAgLnN0eWxlVHdlZW4oJ2JhY2tncm91bmQtY29sb3InLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGQzLmludGVycG9sYXRlKHBpblBhZFZpZXdlci5vcHRpb25zLmhpZ2hsaWdodENvbG9yLCBjb2xvcik7XHJcbiAgICAgICAgfSlcclxuICAgIDtcclxuICAgIHJldHVybiBuZXdFbGVtO1xyXG59O1xyXG5cclxuUGluUGFkVmlld2VyLnByb3RvdHlwZS5yZW1vdmVFbGVtZW50ID0gZnVuY3Rpb24oY2F0SW5kZXgsIGVsSW5kZXgpIHtcclxuICAgIHZhciBwaW5QYWRWaWV3ZXIgPSB0aGlzO1xyXG4gICAgQ2F0ZWdvcnlGYWN0b3J5LnJlbW92ZUVsZW1lbnQocGluUGFkVmlld2VyLmNhdGVnb3JpZXNbY2F0SW5kZXhdLCBlbEluZGV4KTtcclxuICAgIGlmIChwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllc1tjYXRJbmRleF0uZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgQ2F0ZWdvcnlGYWN0b3J5LnJlbW92ZUNhdGVnb3J5KHBpblBhZFZpZXdlci5jYXRlZ29yaWVzW2NhdEluZGV4XSk7XHJcbiAgICAgICAgcGluUGFkVmlld2VyLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxuICAgIH1cclxufTtcclxuXHJcblBpblBhZFZpZXdlci5wcm90b3R5cGUuZGVsZWdhdGVFbGVtZW50UmVtb3ZhbCA9IGZ1bmN0aW9uKGVsSWQpIHtcclxuICAgIHZhciBwaW5QYWRWaWV3ZXIgPSB0aGlzO1xyXG4gICAgcGluUGFkVmlld2VyLnBpblBhZC5yZW1vdmVFbGVtZW50KGVsSWQpO1xyXG59O1xyXG5cclxuUGluUGFkVmlld2VyLnByb3RvdHlwZS5yZW1vdmVDYXRlZ29yeSA9IGZ1bmN0aW9uKGNhdEluZGV4KSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyID0gdGhpcztcclxuICAgIENhdGVnb3J5RmFjdG9yeS5yZW1vdmVDYXRlZ29yeShwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllc1tjYXRJbmRleF0pO1xyXG4gICAgcGluUGFkVmlld2VyLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxufTtcclxuXHJcblBpblBhZFZpZXdlci5wcm90b3R5cGUuZGVsZWdhdGVDYXRlZ29yeVJlbW92YWwgPSBmdW5jdGlvbihjYXRUaXRsZSkge1xyXG4gICAgdmFyIHBpblBhZFZpZXdlciA9IHRoaXM7XHJcbiAgICBwaW5QYWRWaWV3ZXIucGluUGFkLnJlbW92ZUNhdGVnb3J5KGNhdFRpdGxlKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGluUGFkVmlld2VyOyIsIi8qanNsaW50IG5vZGU6IHRydWUgKi9cclxuLypqc2hpbnQgbGF4YnJlYWs6IHRydWUgKi9cclxuXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG52YXIgUGluUGFkVmlld2VyID0gcmVxdWlyZSgnLi9QaW5QYWRWaWV3ZXInKTtcclxudmFyIFBpblBhZE1vZGVsID0gcmVxdWlyZSgnLi9QaW5QYWRNb2RlbCcpO1xyXG5cclxudmFyIFBpblBhZCA9IGZ1bmN0aW9uKG9wdHMpIHtcclxuICAgIHZhciBwaW5QYWQgPSB0aGlzO1xyXG4gICAgcGluUGFkLm1vZGVsID0gbmV3IFBpblBhZE1vZGVsKG9wdHMub3JkZXJpbmcpO1xyXG4gICAgcGluUGFkLnZpZXdlciA9IG5ldyBQaW5QYWRWaWV3ZXIob3B0cy5vcHRpb25zLCBvcHRzLnRvUGluLCBwaW5QYWQpO1xyXG4gICAgcGluUGFkLmRpc3BhdGNoZXIgPSBkMy5kaXNwYXRjaChcImFkZFwiLCBcImR1cGxpY2F0aW9uXCIsIFwicmVtb3ZlXCIsIFwidW5rbm93blwiLCBcImluY29tcGxldGVcIik7XHJcblxyXG4gICAgcGluUGFkLmFkZEVsZW1lbnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuY2F0ZWdvcnkgJiYgZWxlbWVudC5pZCAmJiBlbGVtZW50LnNlY3Rpb25zICYmIChlbGVtZW50LnNlY3Rpb25zLmxlbmd0aCAhPT0gMCkpIHtcclxuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHBpblBhZC5tb2RlbC5hZGRFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0LmVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBwaW5QYWQuZGlzcGF0Y2hlci5kdXBsaWNhdGlvbih7ZWxlbWVudDogZWxlbWVudH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLnZpZXdlci5hZGRFbGVtZW50KGVsZW1lbnQsIHJlc3VsdC5jYXRJbmRleCwgcmVzdWx0LmVsSW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgcGluUGFkLm1vZGVsLmNhdGVnb3JpZXNbcmVzdWx0LmNhdEluZGV4XS5lbGVtZW50cyk7XHJcbiAgICAgICAgICAgICAgICBwaW5QYWQuZGlzcGF0Y2hlci5hZGQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiBlbGVtZW50LmNhdGVnb3J5LFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnRcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIuaW5jb21wbGV0ZSh7ZWxlbWVudDogZWxlbWVudH0pO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcGluUGFkLnJlbW92ZUVsZW1lbnQgPSBmdW5jdGlvbihlbElkKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IHBpblBhZC5tb2RlbC5yZW1vdmVFbGVtZW50KGVsSWQpO1xyXG4gICAgICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcclxuICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIudW5rbm93bih7ZWxlbWVudDogZWxJZH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBpblBhZC52aWV3ZXIucmVtb3ZlRWxlbWVudChyZXN1bHQuY2F0SW5kZXgsIHJlc3VsdC5lbEluZGV4KTtcclxuICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIucmVtb3ZlKHtlbGVtZW50OiByZXN1bHQuZWxlbWVudH0pO1xyXG4gICAgICAgICAgICBpZiAoKHBpblBhZC5tb2RlbC5jYXRlZ29yaWVzLmxlbmd0aCA9PT0gMCkgfHwgKHBpblBhZC5tb2RlbC5jYXRlZ29yaWVzLmxlbmd0aCA9PT0gcmVzdWx0LmNhdEluZGV4KSkge1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIucmVtb3ZlKHtjYXRlZ29yeTogcmVzdWx0LmNhdGVnb3J5fSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGluUGFkLm1vZGVsLmNhdGVnb3JpZXNbcmVzdWx0LmNhdEluZGV4XS50aXRsZSAhPT0gcmVzdWx0LmNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgICBwaW5QYWQuZGlzcGF0Y2hlci5yZW1vdmUoe2NhdGVnb3J5OiByZXN1bHQuY2F0ZWdvcnl9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcGluUGFkLnJlbW92ZUNhdGVnb3J5ID0gZnVuY3Rpb24oY2F0VGl0bGUpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gcGluUGFkLm1vZGVsLnJlbW92ZUNhdGVnb3J5KGNhdFRpdGxlKTtcclxuICAgICAgICBwaW5QYWQudmlld2VyLnJlbW92ZUNhdGVnb3J5KHJlc3VsdC5jYXRJbmRleCk7XHJcbiAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIucmVtb3ZlKHtjYXRlZ29yeTogY2F0VGl0bGV9KTtcclxuICAgIH07XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBpblBhZDsiXX0= |
@@ -1,13 +0,16 @@ | ||
� �Y[s�6�+2wV%�#%͋T��I�ٝ�6��t_< ,B����������B�]�y�[��s?�9T�?{�X���RLX�� *94+2�L|_�[~gi�뉪I�E~k�e�k��v�,����X�r:-��^�ID�� �S�F�R�d�=O~VJ�8zO��z��"�<�|_��w�5�������)�<٤��,���O�����o>����o?EdS#�<C�RJ��塮W(���.�Т��Խ"^��YEf6.�n��ʱ*cq#�,�INړ�X��n^�_�[���K�Ex6_�TZ0�w+~}��X�����X����!�WlRi�7:2�TY��(%��E�T���EIBdK髟�Ȅ��n�T_a#�B��v�Z����#����3S#"�\,��SY2�]���$���ne��LK���BS.���p0.�S����V��}�.���j� |�6~d�D�;FA��^x�n7��?�o=% | ||
t���|�ZD��}d\��5?}���Y�1;�X')(���u�� ���:��_[�T%� ����i���h[H��9�vY�(�/��,gHk��v'�H�f^E����� �{���G�D��9��'4�ņ�C�* | ||
���.ƸY��"��|�����d�]��Or�H�L�Dd�,���!��}B"!�`ͺ�y#��Q��������w�?�im�%˳7��b�g���1��.�t��6s��I�|2��K���&�L7��ݎT,�X��W��'#����x�7�2oK�RF7���MG | ||
̩o,c��iԝ��c��D+sp:���dN���+�jDz���f�.Cz���.H.H�ǣ[u�ع��s�OĬC�ޗ��g XC"�Z�`�/�E�M��Ԭ�Ċ=�?9� f;vZv+"Z�Qf��:��;��轮c���g`�ð�.ߐ��k.i��2���y}Q��l��'*��eX���3\<����c�j I۸=>���w8iY�7��DK"���:�]�%D*(��� ��@X��A����A�U� | ||
���� �O%À���7�����.���?��#�Ȓ�l�رq��p��o.��hr`o�a���? ۵�@�U�&\T�� ������#���k�Ѵ�1y9�S�p6�V`�"wW��.�b9�~5w��jщp'��N�Yt��@��b���GM�C���/(^�Ӓ�_5���G�9�F~�����= ��ڽ����7 �%�?7)�Fl��r&K=P�x��e�Ճn�<P@��j=[`� ��$"��|�����X�/v���V�1���cd} '1�?_G�糅�:������omN���m�#ت}��|����Q�?O�烷 )1�풋�>�������z\;�"�C�z�(���-������5����G��Q��GC� ���j��D���V� ���]����Ѱ�71�I� | ||
�+�%���ueQ��o},~�g#y������qlۧ1�n�mi�:3]z=oU o�_� ����j�m����ZW{�v&�$ �5�P�F{b}�r.�g� | ||
0Ͼҩs�*I� y��=�1�R��TRK�s��i�r��Owg^Ka��Un��v�8q��@�7��cy��ԽX?�ʪ�W�?-x�2G�<� +T/�lM+L��Cl�t28Ы]N�g���^���0�z'�_ȅ���{�Ϧ���x�y;u�L-qI?(��g�������|GG$��Cӹ��Rm��;�N�����L�*1����z�[��Ov+f���_%��`�ؓH�V>�Y����LK�G[��$Й- Eb�㇇�h��\r�i��7h�A �1!ֶ?#����e�pp��J��ڠ�=�Ƶ�z%���0#y��(꠹���o; � �.{�i�Z�?�w����������*�_�gf�(� | ||
sR����7TVhw��0،��f��A�"� 1����T%}Grq+�\=��f�"�9~K��[|:N��:Vpݢ�n�յht-���Z`����ޱ��)i�a|����s�ĉn�<P��L�����H7Ɨ�O䒷��w�J�قg��2�����嗈���^�5O;xW����@%?(�@Ń�W�4ΠX����۠�� | ||
�#��_V]Yl��T��� �f��ӻG��� *�ze�����n+�?I�� | ||
�v�����_�Va#�|8#���fmj̮$����0mv0�;�A;(쎃$`U�� ��r�N�l�7�T�AWh��~�?l�����n�� L��-�%�b��f���T�M\��|����U��^h��[ |��R6Pye����Plkx$U�{$�7? | ||
�L�}�Q�(P�լv�E���s�{����$$+�ި�Z�N�Ԣ�H��^��/ 8W���>Bj�M�B3U��}5��I!d�h;7��1kvƵ�WlDh������ĴW��"F�:N3�.�|P��0!=1X2����Kw��Ƞ�2�#2��p�#�q��L��� | ||
Wt+\3�_\0�����=� | ||
s+f�K�_��c��vuJ�D{�-����G���=�Rmu�\a�(z�N���z��}��� Z��!x���h�[�ZH��F>��f�y� I�l�����6����h��|� #+b��$ �� EH~�]�|���F���w�������f_�]�!���@>��� 7�k5������G�n�ю�e$K���5� ��KJ��t_�ή//G_�Dh���Qq�8�glf@�U�ջ�zr8�Z#�1���� ��j[w��8��*���I?�,��w��&���t�����C�& |