Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

biojs-vis-pinpad

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

biojs-vis-pinpad - npm Package Compare versions

Comparing version 0.1.3 to 0.1.4

lib/PinPadViewer.js

6

build/PinPad.js

@@ -395,3 +395,3 @@ 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){

/*jshint laxbreak: true */
"use strict";
"use strict" ;
/*

@@ -416,4 +416,4 @@ * biojs-vis-pinpad

var defaultOpts = {
height: '500px',
width: '250px',
height: '500px',
highlightColor: 'green'

@@ -568,2 +568,2 @@ };

},{"./PinPadModel":4,"./PinPadViewer":5}]},{},["biojs-vis-pinpad"])
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlc1xcYnJvd3NlcmlmeVxcbm9kZV9tb2R1bGVzXFxicm93c2VyLXBhY2tcXF9wcmVsdWRlLmpzIiwibGliXFxDYXRlZ29yeUZhY3RvcnkuanMiLCJsaWJcXENhdGVnb3J5TW9kZWwuanMiLCJsaWJcXEVsZW1lbnRGYWN0b3J5LmpzIiwibGliXFxQaW5QYWRNb2RlbC5qcyIsImxpYlxcUGluUGFkVmlld2VyLmpzIiwibGliXFxQaW5QYWQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIi8qanNsaW50IG5vZGU6IHRydWUgKi9cclxuLypqc2hpbnQgbGF4YnJlYWs6IHRydWUgKi9cclxuXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG52YXIgZDMgPSByZXF1aXJlKCdkMycpO1xyXG52YXIgXyA9IHJlcXVpcmUoJ3VuZGVyc2NvcmUnKTtcclxudmFyIEVsZW1lbnRGYWN0b3J5ID0gcmVxdWlyZSgnLi9FbGVtZW50RmFjdG9yeScpO1xyXG5cclxudmFyIENhdGVnb3J5ID0gZnVuY3Rpb24ocGluUGFkVmlld2VyLCBjYXRUaXRsZSkge1xyXG4gICAgdmFyIGNhdGVnb3J5ID0gdGhpcztcclxuICAgIGNhdGVnb3J5LnBpblBhZFZpZXdlciA9IHBpblBhZFZpZXdlcjtcclxuICAgIGNhdGVnb3J5LnRpdGxlID0gY2F0VGl0bGU7XHJcbiAgICBjYXRlZ29yeS5vcGVuID0gdHJ1ZTtcclxuICAgIGNhdGVnb3J5LmVsZW1lbnRzID0gW107XHJcblxyXG4gICAgdmFyIGNhdGVnb3J5Q29udGFpbmVyID0gY2F0ZWdvcnkucGluUGFkVmlld2VyLnBhZENvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmNsYXNzZWQoJ3VwX3BwX2NhdGVnb3J5LWNvbnRhaW5lcicsIHRydWUpO1xyXG5cclxuICAgIGNhdGVnb3J5LmhlYWRlciA9IGNhdGVnb3J5Q29udGFpbmVyLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXBfcHBfY2F0ZWdvcnktaGVhZGVyJywgdHJ1ZSk7XHJcbiAgICBjYXRlZ29yeS5oZWFkZXIudGl0bGUgPSBjYXRlZ29yeS5oZWFkZXIuYXBwZW5kKCdhJylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXBfcHBfY2F0ZWdvcnktbmFtZSB1cF9wZnR2X2Fycm93LWRvd24nKVxyXG4gICAgICAgIC50ZXh0KGNhdFRpdGxlKVxyXG4gICAgICAgIC5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkudG9nZ2xlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICBjYXRlZ29yeS5oZWFkZXIuYXBwZW5kKCdzcGFuJylcclxuICAgICAgICAuY2xhc3NlZCgndXBfcHBfaWNvbkNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgICAgLnN0eWxlKCdmbG9hdCcsICdyaWdodCcpXHJcbiAgICAgICAgLmFwcGVuZCgnZGl2JylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXAtcHAtaWNvbi10cmFzaCB1cF9wcF9jbGlja2FibGUtaWNvbicpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5kZWxlZ2F0ZUNhdGVnb3J5UmVtb3ZhbChjYXRlZ29yeS50aXRsZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyID0gY2F0ZWdvcnlDb250YWluZXIuYXBwZW5kKCdkaXYnKS5jbGFzc2VkKCd1cF9wcF9jYXRlZ29yeS1wYWQnLCB0cnVlKTtcclxuXHJcbiAgICBjYXRlZ29yeS5yZW1vdmUgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICB3aGlsZSAoY2F0ZWdvcnkuZWxlbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5lbGVtZW50c1swXS5yZW1vdmUoY2F0ZWdvcnkuZWxlbWVudHNbMF0uaWQsIGNhdGVnb3J5LnRpdGxlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZSgwLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0ZWdvcnlDb250YWluZXIucmVtb3ZlKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhdGVnb3J5LnRvZ2dsZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIGlmIChjYXRlZ29yeS5wYWRDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknKSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnBhZENvbnRhaW5lci5zdHlsZSgnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5oZWFkZXIudGl0bGUuYXR0cignY2xhc3MnLCAndXBfcHBfY2F0ZWdvcnktbmFtZSB1cF9wZnR2X2Fycm93LWRvd24nKTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkub3BlbiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkuaGVhZGVyLnRpdGxlLmF0dHIoJ2NsYXNzJywgJ3VwX3BwX2NhdGVnb3J5LW5hbWUgdXBfcGZ0dl9hcnJvdy1yaWdodCcpO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5hZGRFbGVtZW50ID0gZnVuY3Rpb24oZWxlbSwgc29ydGVkSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICAgICAgdmFyIG5ld0VsZW0gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHNvcnRlZEluZGV4ID4gY2F0ZWdvcnkuZWxlbWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIG5ld0VsZW0gPSAgRWxlbWVudEZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgZWxlbSk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnB1c2gobmV3RWxlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyLnNlbGVjdEFsbCgnKicpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICBfLmVhY2goYWxsRWxlbWVudHMsIGZ1bmN0aW9uKGVsZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb3BlbiA9IGluZGV4ID09PSBzb3J0ZWRJbmRleCA/IHVuZGVmaW5lZCA6IGNhdGVnb3J5LmVsZW1lbnRzW2luZGV4XS5vcGVuO1xyXG4gICAgICAgICAgICAgICAgdmFyIGFkZGVkID0gRWxlbWVudEZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgZWxlbSwgb3Blbik7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IHNvcnRlZEluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RWxlbSA9IGFkZGVkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZShzb3J0ZWRJbmRleCwgMCwgbmV3RWxlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3RWxlbTtcclxuICAgIH07XHJcblxyXG4gICAgY2F0ZWdvcnkucmVtb3ZlRWxlbWVudCA9IGZ1bmN0aW9uKGVsSW5kZXgpIHtcclxuICAgICAgICB2YXIgZWxlbWVudCA9IGNhdGVnb3J5LmVsZW1lbnRzW2VsSW5kZXhdO1xyXG4gICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZShlbEluZGV4LCAxKTtcclxuICAgICAgICBFbGVtZW50RmFjdG9yeS5yZW1vdmVFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5kZWxlZ2F0ZUVsZW1lbnRSZW1vdmFsID0gZnVuY3Rpb24oZWxJZCkge1xyXG4gICAgICAgIGNhdGVnb3J5LnBpblBhZFZpZXdlci5kZWxlZ2F0ZUVsZW1lbnRSZW1vdmFsKGVsSWQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5kZWxlZ2F0ZUNhdGVnb3J5UmVtb3ZhbCA9IGZ1bmN0aW9uKGNhdFRpdGxlKSB7XHJcbiAgICAgICAgY2F0ZWdvcnkucGluUGFkVmlld2VyLmRlbGVnYXRlQ2F0ZWdvcnlSZW1vdmFsKGNhdFRpdGxlKTtcclxuICAgIH07XHJcbn07XHJcblxyXG52YXIgQ2F0ZWdvcnlGYWN0b3J5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjcmVhdGVDYXRlZ29yeTogZnVuY3Rpb24ocGluUGFkVmlld2VyLCBjYXRUaXRsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5KHBpblBhZFZpZXdlciwgY2F0VGl0bGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVtb3ZlQ2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnJlbW92ZSgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3JlYXRlRWxlbWVudDogZnVuY3Rpb24oY2F0ZWdvcnksIGVsZW0sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYXRlZ29yeS5hZGRFbGVtZW50KGVsZW0sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZUVsZW1lbnQ6IGZ1bmN0aW9uKGNhdGVnb3J5LCBlbEluZGV4KSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnJlbW92ZUVsZW1lbnQoZWxJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufSgpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeUZhY3Rvcnk7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuXHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG5cclxudmFyIENhdGVnb3J5TW9kZWwgPSBmdW5jdGlvbihjYXRUaXRsZSwgb3JkZXJpbmcpIHtcclxuICAgIHZhciBjYXRNb2RlbCA9IHRoaXM7XHJcbiAgICBjYXRNb2RlbC50aXRsZSA9IGNhdFRpdGxlO1xyXG4gICAgY2F0TW9kZWwub3JkZXJpbmcgPSBvcmRlcmluZztcclxuICAgIGNhdE1vZGVsLmVsZW1lbnRzID0gW107XHJcblxyXG4gICAgY2F0TW9kZWwuYWRkRWxlbWVudCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcclxuICAgICAgICB2YXIgc29ydGVkSW5kZXggPSAwO1xyXG4gICAgICAgIGlmIChjYXRNb2RlbC5vcmRlcmluZyAmJiBlbGVtZW50Lm9yZGVyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN0ID0gXy5wbHVjayhjYXRNb2RlbC5lbGVtZW50cywgJ29yZGVyaW5nJyk7XHJcbiAgICAgICAgICAgIF8uZWFjaChvcmRlcmluZywgZnVuY3Rpb24oYXR0cikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gXy5zb3J0ZWRJbmRleChyZXN0LCBlbGVtZW50Lm9yZGVyaW5nLCBhdHRyKTtcclxuICAgICAgICAgICAgICAgIHNvcnRlZEluZGV4ID0gc29ydGVkSW5kZXggKyBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJlc3QgPSBfLnJlc3QocmVzdCwgaW5kZXgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzb3J0ZWRJbmRleCA9IGNhdE1vZGVsLmVsZW1lbnRzLmxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0TW9kZWwuZWxlbWVudHMuc3BsaWNlKHNvcnRlZEluZGV4LCAwLCBlbGVtZW50KTtcclxuICAgICAgICByZXR1cm4gc29ydGVkSW5kZXg7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhdE1vZGVsLnJlbW92ZUVsZW1lbnQgPSBmdW5jdGlvbihpbmRleCkge1xyXG4gICAgICAgIGlmICgoMCA8PSBpbmRleCkgJiYgKGluZGV4IDwgY2F0TW9kZWwuZWxlbWVudHMubGVuZ3RoKSkge1xyXG4gICAgICAgICAgICBjYXRNb2RlbC5lbGVtZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENhdGVnb3J5TW9kZWw7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuXHJcbnZhciBkMyA9IHJlcXVpcmUoJ2QzJyk7XHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG5cclxudmFyIGlzTGluayA9IGZ1bmN0aW9uKGluZm8pIHtcclxuICAgIGlmICgodHlwZW9mIGluZm8gPT09ICdvYmplY3QnKSAmJiAhKGluZm8gaW5zdGFuY2VvZiBBcnJheSkpIHtcclxuICAgICAgICB2YXIga2V5cyA9IF8ua2V5cyhpbmZvKTtcclxuICAgICAgICBpZiAoKGtleXMubGVuZ3RoID09PSAyKSAmJiBfLmNvbnRhaW5zKGtleXMsICd2YWx1ZScpICYmIF8uY29udGFpbnMoa2V5cywgJ2xpbmsnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2VcclxufTtcclxuXHJcbnZhciBhZGRMaW5rID0gZnVuY3Rpb24oY29udGFpbmVyLCBpbmZvVGV4dCwgaW5mb0xpbmspIHtcclxuICAgIGlmIChpbmZvTGluayAmJiAoaW5mb0xpbmsgIT09ICctJykpIHtcclxuICAgICAgICBjb250YWluZXIuYXBwZW5kKCdhJylcclxuICAgICAgICAgICAgLmF0dHIoJ2hyZWYnLCBpbmZvTGluaylcclxuICAgICAgICAgICAgLmF0dHIoJ3RhcmdldCcsICdfYmxhbmsnKVxyXG4gICAgICAgICAgICAudGV4dChpbmZvVGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRhaW5lci50ZXh0KGluZm9UZXh0KTtcclxuICAgIH1cclxufTtcclxuXHJcbnZhciBhZGRWYWx1ZSA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgaW5mbykge1xyXG4gICAgaWYgKCh0eXBlb2YgaW5mbyA9PT0gJ3N0cmluZycpIHx8ICh0eXBlb2YgaW5mbyA9PT0gJ251bWJlcicpIHx8ICh0eXBlb2YgaW5mbyA9PT0gJ2Jvb2xlYW4nKSkge1xyXG4gICAgICAgIGNvbnRhaW5lci50ZXh0KGluZm8pO1xyXG4gICAgfSBlbHNlIGlmIChpc0xpbmsoaW5mbykpIHtcclxuICAgICAgICBhZGRMaW5rKGNvbnRhaW5lciwgaW5mby52YWx1ZSwgaW5mby5saW5rKTtcclxuICAgIH0gZWxzZSBpZiAoaW5mbyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgXy5lYWNoKGluZm8sIGZ1bmN0aW9uKGRhdHVtLCBpbmRleCkge1xyXG4gICAgICAgICAgICB2YXIgc3BhbiA9IGNvbnRhaW5lci5hcHBlbmQoJ3NwYW4nKTtcclxuICAgICAgICAgICAgYWRkVmFsdWUoc3BhbiwgZGF0dW0pO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IChpbmZvLmxlbmd0aC0xKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZCgnc3BhbicpLnRleHQoJywgJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYWRkRGF0YShjb250YWluZXIuYXBwZW5kKCd0YWJsZScpLCBpbmZvKTtcclxuICAgIH1cclxufTtcclxuXHJcbnZhciBhZGREYXR1bSA9IGZ1bmN0aW9uKHRhYmxlLCBrZXksIGluZm8pIHtcclxuICAgIHZhciB0ciA9IHRhYmxlLmFwcGVuZCgndHInKTtcclxuICAgIGlmIChrZXkuaW5kZXhPZignc3R5bGVkXycpID09PSAwKSB7XHJcbiAgICAgICAgdmFyIGxlZnRDb2wgPSB0ci5hcHBlbmQoJ3RkJykudGV4dChpbmZvLmtleSk7XHJcbiAgICAgICAgaWYgKGluZm8ua2V5X3N0eWxlKSB7XHJcbiAgICAgICAgICAgIGxlZnRDb2wuYXR0cignc3R5bGUnLCBpbmZvLmtleV9zdHlsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciByaWdodENvbCA9IHRyLmFwcGVuZCgndGQnKTtcclxuICAgICAgICBpZiAoaW5mby52YWx1ZV9zdHlsZSkge1xyXG4gICAgICAgICAgICByaWdodENvbC5hdHRyKCdzdHlsZScsIGluZm8udmFsdWVfc3R5bGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhZGRWYWx1ZShyaWdodENvbCwgaW5mby52YWx1ZSlcclxuICAgIH0gZWxzZSBpZiAoa2V5LmluZGV4T2YoJ3N1YnNlY3Rpb25fJykgPT09IDApIHtcclxuICAgICAgICB0ci5hcHBlbmQoJ3RkJylcclxuICAgICAgICAgICAgLmF0dHIoJ2NvbHNwYW4nLCAyKVxyXG4gICAgICAgICAgICAuY2xhc3NlZCgndXBfcHBfdGFibGVfc3Vic2VjdGlvbicsIHRydWUpXHJcbiAgICAgICAgICAgIC50ZXh0KGluZm8udGl0bGUpO1xyXG4gICAgICAgIGFkZERhdGEodGFibGUsIGluZm8uaW5mb3JtYXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB0ci5hcHBlbmQoJ3RkJykudGV4dChrZXkucmVwbGFjZSgvXy9nLCAnICcpKTtcclxuICAgICAgICBhZGRWYWx1ZSh0ci5hcHBlbmQoJ3RkJyksIGluZm8pO1xyXG4gICAgfVxyXG59O1xyXG5cclxudmFyIGFkZERhdGEgPSBmdW5jdGlvbih0YWJsZSwgZGF0YSkge1xyXG4gICAgXy5lYWNoKGRhdGEsIGZ1bmN0aW9uKGluZm8sIGtleSkge1xyXG4gICAgICAgIGFkZERhdHVtKHRhYmxlLCBrZXksIGluZm8pO1xyXG4gICAgfSk7XHJcbn07XHJcblxyXG52YXIgRWxlbWVudCA9IGZ1bmN0aW9uKGNhdGVnb3J5LCBlbGVtLCBvcGVuKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IHRoaXM7XHJcbiAgICBlbGVtZW50LmlkID0gZWxlbS5pZDtcclxuICAgIGVsZW1lbnQuY2F0ZWdvcnkgPSBjYXRlZ29yeTtcclxuICAgIGVsZW1lbnQub3BlbiA9IG9wZW47XHJcbiAgICBlbGVtZW50LmhlYWRlciA9IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnQudGFibGVDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICBlbGVtZW50LnRhYmxlID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGVsZW1lbnQudG9nZ2xlID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknKSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknLCAnYmxvY2snKTtcclxuICAgICAgICAgICAgZWxlbWVudC5oZWFkZXIudGl0bGUuYXR0cignY2xhc3MnLCAndXBfcHBfZWxlbWVudC1uYW1lIHVwX3BmdHZfYXJyb3ctZG93bicpO1xyXG4gICAgICAgICAgICBlbGVtZW50Lm9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG4gICAgICAgICAgICBlbGVtZW50LmhlYWRlci50aXRsZS5hdHRyKCdjbGFzcycsICd1cF9wcF9lbGVtZW50LW5hbWUgdXBfcGZ0dl9hcnJvdy1yaWdodCcpO1xyXG4gICAgICAgICAgICBlbGVtZW50Lm9wZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHZhciBlbGVtQ29udGFpbmVyID0gZWxlbWVudC5jYXRlZ29yeS5wYWRDb250YWluZXIuYXBwZW5kKCdkaXYnKS5hdHRyKCdpZCcsICdwaW5uZWRfZWxlbV9pZF8nICsgZWxlbS5pZCk7XHJcblxyXG4gICAgZWxlbWVudC5maXJzdChlbGVtZW50LmNhdGVnb3J5LnRpdGxlLCBlbGVtQ29udGFpbmVyLCBfLmZpcnN0KGVsZW0uc2VjdGlvbnMpKTtcclxuICAgIGVsZW1lbnQudGFpbChlbGVtZW50LnRhYmxlLCBfLnRhaWwoZWxlbS5zZWN0aW9ucykpO1xyXG59O1xyXG5cclxuRWxlbWVudC5wcm90b3R5cGUuZmlyc3QgPSBmdW5jdGlvbihjYXRUaXRsZSwgY29udGFpbmVyLCBzZWN0aW9uKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IHRoaXM7XHJcbiAgICBlbGVtZW50LmhlYWRlciA9IGNvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmNsYXNzZWQoJ3VwX3BwX2VsZW1lbnQtaGVhZGVyJywgdHJ1ZSk7XHJcbiAgICBlbGVtZW50LmhlYWRlci50aXRsZSA9IGVsZW1lbnQuaGVhZGVyLmFwcGVuZCgnYScpXHJcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50Lm9wZW4gPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3VwX3BwX2VsZW1lbnQtbmFtZSB1cF9wZnR2X2Fycm93LXJpZ2h0JztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAndXBfcHBfZWxlbWVudC1uYW1lIHVwX3BmdHZfYXJyb3ctZG93bic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC50ZXh0KHNlY3Rpb24udGl0bGUpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnRvZ2dsZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgZWxlbWVudC5oZWFkZXIuYXBwZW5kKCdzcGFuJylcclxuICAgICAgICAuY2xhc3NlZCgndXBfcHBfaWNvbkNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgICAgLnN0eWxlKCdmbG9hdCcsICdyaWdodCcpXHJcbiAgICAgICAgLmFwcGVuZCgnZGl2JylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXAtcHAtaWNvbi10cmFzaCB1cF9wcF9jbGlja2FibGUtaWNvbicpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LmNhdGVnb3J5LmRlbGVnYXRlRWxlbWVudFJlbW92YWwoZWxlbWVudC5pZCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgZWxlbWVudC50YWJsZUNvbnRhaW5lciA9IGNvbnRhaW5lci5hcHBlbmQoJ2RpdicpO1xyXG4gICAgaWYgKGVsZW1lbnQub3BlbiA9PT0gZmFsc2UpIHtcclxuICAgICAgICBlbGVtZW50LnRhYmxlQ29udGFpbmVyLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgIH1cclxuICAgIGVsZW1lbnQudGFibGUgPSBlbGVtZW50LnRhYmxlQ29udGFpbmVyLmFwcGVuZCgndGFibGUnKS5hdHRyKCd3aWR0aCcsICcxMDAlJyk7XHJcbiAgICBhZGREYXRhKGVsZW1lbnQudGFibGUsIHNlY3Rpb24uaW5mb3JtYXRpb24pO1xyXG59O1xyXG5cclxuRWxlbWVudC5wcm90b3R5cGUudGFpbCA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgc2VjdGlvbnMpIHtcclxuICAgIF8uZWFjaChzZWN0aW9ucywgZnVuY3Rpb24oc2VjdGlvbikge1xyXG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmQoJ3RyJykuY2xhc3NlZCgndXBfcHBfZWxlbWVudC1zZWN0aW9uJywgdHJ1ZSlcclxuICAgICAgICAgICAgLmFwcGVuZCgndGQnKVxyXG4gICAgICAgICAgICAuYXR0cignY29sc3BhbicsIDIpXHJcbiAgICAgICAgICAgIC50ZXh0KHNlY3Rpb24udGl0bGUpO1xyXG5cclxuICAgICAgICBhZGREYXRhKGNvbnRhaW5lciwgc2VjdGlvbi5pbmZvcm1hdGlvbik7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uKGlkKSB7XHJcbiAgICB2YXIgY29udGFpbmVyID0gZDMuc2VsZWN0KCcjJyArICdwaW5uZWRfZWxlbV9pZF8nICsgaWQpO1xyXG4gICAgY29udGFpbmVyLnJlbW92ZSgpO1xyXG59O1xyXG5cclxudmFyIEVsZW1lbnRGYWN0b3J5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjcmVhdGVFbGVtZW50OiBmdW5jdGlvbihjYXRlZ29yeSwgZWxlbSwgb3Blbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEVsZW1lbnQoY2F0ZWdvcnksIGVsZW0sIG9wZW4pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVtb3ZlRWxlbWVudDogZnVuY3Rpb24oZWxlbWVudCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZShlbGVtZW50LmlkKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEVsZW1lbnRGYWN0b3J5OyIsIi8qanNsaW50IG5vZGU6IHRydWUgKi9cclxuLypqc2hpbnQgbGF4YnJlYWs6IHRydWUgKi9cclxuXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG52YXIgXyA9IHJlcXVpcmUoJ3VuZGVyc2NvcmUnKTtcclxudmFyIENhdGVnb3J5TW9kZWwgPSByZXF1aXJlKCcuL0NhdGVnb3J5TW9kZWwnKTtcclxuXHJcbnZhciBhZGRDYXRlZ29yeSA9IGZ1bmN0aW9uKHBpblBhZE1vZGVsLCBjYXRUaXRsZSwgb3JkZXJpbmcpIHtcclxuICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlNb2RlbChjYXRUaXRsZSwgb3JkZXJpbmcpO1xyXG59O1xyXG5cclxudmFyIFBpblBhZE1vZGVsID0gZnVuY3Rpb24ob3JkZXJpbmcpIHtcclxuICAgIHZhciBwaW5QYWRNb2RlbCA9IHRoaXM7XHJcbiAgICBwaW5QYWRNb2RlbC5jYXRlZ29yaWVzID0gW107XHJcblxyXG4gICAgcGluUGFkTW9kZWwuYWRkRWxlbWVudCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcclxuICAgICAgICB2YXIgY2F0ZWdvcnk7XHJcbiAgICAgICAgdmFyIGNhdEluZGV4ID0gLTE7XHJcbiAgICAgICAgdmFyIGVsZW0gPSBfLmZpbmQocGluUGFkTW9kZWwuY2F0ZWdvcmllcywgZnVuY3Rpb24oY2F0LCBjb3VudGVyKSB7XHJcbiAgICAgICAgICAgIGlmIChjYXQudGl0bGUgPT09IGVsZW1lbnQuY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gY2F0O1xyXG4gICAgICAgICAgICAgICAgY2F0SW5kZXggPSBjb3VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBfLmZpbmQoY2F0LmVsZW1lbnRzLCBmdW5jdGlvbihlbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaWQgPT09IGVsLmlkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChlbGVtKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ZXJyb3I6ICdkdXBsaWNhdGlvbid9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghY2F0ZWdvcnkgfHwgKGNhdEluZGV4ID09PSAtMSkpIHtcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gYWRkQ2F0ZWdvcnkocGluUGFkTW9kZWwsIGVsZW1lbnQuY2F0ZWdvcnksIG9yZGVyaW5nKTtcclxuICAgICAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7XHJcbiAgICAgICAgICAgICAgICBjYXRJbmRleCA9IHBpblBhZE1vZGVsLmNhdGVnb3JpZXMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZWxJbmRleCA9IGNhdGVnb3J5LmFkZEVsZW1lbnQoZWxlbWVudCk7XHJcbiAgICAgICAgICAgIHJldHVybiB7Y2F0SW5kZXg6IGNhdEluZGV4LCBlbEluZGV4OiBlbEluZGV4fTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHBpblBhZE1vZGVsLnJlbW92ZUVsZW1lbnQgPSBmdW5jdGlvbihlbElkKSB7XHJcbiAgICAgICAgdmFyIGNhdEluZGV4ID0gLTEsIGVsSW5kZXggPSAtMTtcclxuICAgICAgICBfLmZpbmQocGluUGFkTW9kZWwuY2F0ZWdvcmllcywgZnVuY3Rpb24oY2F0LCBjb3VudGVyKSB7XHJcbiAgICAgICAgICAgIHZhciBlbGVtZW50ID0gXy5maW5kKGNhdC5lbGVtZW50cywgZnVuY3Rpb24oZWwsIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZWwuaWQgPT09IGVsSWQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgY2F0SW5kZXggPSBjb3VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjYXRJbmRleCAhPT0gLTE7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKChjYXRJbmRleCAhPT0gLTEpICYmIChlbEluZGV4ICE9PSAtMSkpIHtcclxuICAgICAgICAgICAgdmFyIHJlbW92ZWRGcm9tQ2F0ZWdvcnkgPSBwaW5QYWRNb2RlbC5jYXRlZ29yaWVzW2NhdEluZGV4XS50aXRsZTtcclxuICAgICAgICAgICAgdmFyIHJlbW92ZWRFbGVtZW50ID0gcGluUGFkTW9kZWwuY2F0ZWdvcmllc1tjYXRJbmRleF0uZWxlbWVudHNbZWxJbmRleF07XHJcbiAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXNbY2F0SW5kZXhdLnJlbW92ZUVsZW1lbnQoZWxJbmRleCk7XHJcbiAgICAgICAgICAgIGlmIChwaW5QYWRNb2RlbC5jYXRlZ29yaWVzW2NhdEluZGV4XS5lbGVtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ge2NhdEluZGV4OiBjYXRJbmRleCwgZWxJbmRleDogZWxJbmRleCwgY2F0ZWdvcnk6IHJlbW92ZWRGcm9tQ2F0ZWdvcnksIGVsZW1lbnQ6IHJlbW92ZWRFbGVtZW50fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtlcnJvcjogJ3Vua25vd24nfVxyXG4gICAgfTtcclxuXHJcbiAgICBwaW5QYWRNb2RlbC5yZW1vdmVDYXRlZ29yeSA9IGZ1bmN0aW9uKGNhdFRpdGxlKSB7XHJcbiAgICAgICAgdmFyIGNhdEluZGV4ID0gLTE7XHJcbiAgICAgICAgdmFyIGNhdGVnb3J5ID0gXy5maW5kKHBpblBhZE1vZGVsLmNhdGVnb3JpZXMsIGZ1bmN0aW9uKGNhdCwgaW5kZXgpIHtcclxuICAgICAgICAgICAgY2F0SW5kZXggPSBpbmRleDtcclxuICAgICAgICAgICAgcmV0dXJuIGNhdC50aXRsZSA9PT0gY2F0VGl0bGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtjYXRJbmRleDogY2F0SW5kZXh9O1xyXG4gICAgfTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGluUGFkTW9kZWw7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuLypcclxuICogYmlvanMtdmlzLXBpbnBhZFxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZWJpLXVuaXByb3QvYmlvanMtdmlzLXBpbnBhZFxyXG4gKlxyXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQgZWJpLXVuaXByb3RcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSAyIGxpY2Vuc2UuXHJcbiAqL1xyXG5cclxuLyoqXHJcbkBjbGFzcyBQaW5QYWRWaWV3ZXJcclxuICovXHJcbnZhciBkMyA9IHJlcXVpcmUoJ2QzJyk7XHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG52YXIgQ2F0ZWdvcnlGYWN0b3J5ID0gcmVxdWlyZSgnLi9DYXRlZ29yeUZhY3RvcnknKTtcclxuXHJcbi8qKlxyXG4gKiBQcml2YXRlIE1ldGhvZHNcclxuICovXHJcbnZhciBkZWZhdWx0T3B0cyA9IHtcclxuICAgIHdpZHRoOiAnMjUwcHgnLFxyXG4gICAgaGVpZ2h0OiAnNTAwcHgnLFxyXG4gICAgaGlnaGxpZ2h0Q29sb3I6ICdncmVlbidcclxufTtcclxudmFyIGluaXQgPSBmdW5jdGlvbihwaW5QYWRWaWV3ZXIsIHRvUGluKSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyQ29udGFpbmVyID0gZDMuc2VsZWN0KHBpblBhZFZpZXdlci5vcHRpb25zLmVsKVxyXG4gICAgICAudGV4dCgnJylcclxuICAgICAgLmFwcGVuZCgnZGl2JylcclxuICAgICAgLmNsYXNzZWQoJ3VwX3BwX21haW4tY29udGFpbmVyJywgdHJ1ZSlcclxuICAgICAgLnN0eWxlKCd3aWR0aCcsIHBpblBhZFZpZXdlci5vcHRpb25zLndpZHRoKTtcclxuXHJcbiAgICB2YXIgbWFpblRpdGxlID0gcGluUGFkVmlld2VyQ29udGFpbmVyLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXBfcHBfbWFpblRpdGxlJywgdHJ1ZSk7XHJcbiAgICBtYWluVGl0bGUuYXBwZW5kKCdkaXYnKS5jbGFzc2VkKCd1cF9wcF9pY29uQ29udGFpbmVyJywgdHJ1ZSlcclxuICAgICAgICAuYXBwZW5kKCdkaXYnKS5jbGFzc2VkKCd1cC1wcC1pY29uLXBpbicsIHRydWUpLmNsYXNzZWQoJ3VwX3BwX2ljb24nLCB0cnVlKTtcclxuICAgIHBpblBhZFZpZXdlci5vZmZzZXRUb3AgPSBtYWluVGl0bGUubm9kZSgpLm9mZnNldEhlaWdodCArIG1haW5UaXRsZS5ub2RlKCkub2Zmc2V0VG9wO1xyXG5cclxuICAgIHBpblBhZFZpZXdlci5wYWRDb250YWluZXIgPSBwaW5QYWRWaWV3ZXJDb250YWluZXIuYXBwZW5kKCdkaXYnKVxyXG4gICAgICAgIC5jbGFzc2VkKCd1cF9wcF9wYWQnLCB0cnVlKVxyXG4gICAgICAgIC5zdHlsZSgnaGVpZ2h0JywgcGluUGFkVmlld2VyLm9wdGlvbnMuaGVpZ2h0KTtcclxuXHJcbiAgICBpZiAocGluUGFkVmlld2VyLm9wdGlvbnMudG9QaW4pIHtcclxuICAgICAgICBwaW5QYWRWaWV3ZXIuYWRkRWxlbWVudCh0b1Bpbik7XHJcbiAgICB9XHJcbn07XHJcblxyXG4vKlxyXG4gKiBQdWJsaWMgTWV0aG9kc1xyXG4gKi9cclxudmFyIFBpblBhZFZpZXdlciA9IGZ1bmN0aW9uKG9wdHMsIHRvUGluLCBwaW5QYWQpe1xyXG4gICAgdmFyIHBpblBhZFZpZXdlciA9IHRoaXM7XHJcbiAgICBwaW5QYWRWaWV3ZXIub3B0aW9ucyA9IF8uZXh0ZW5kKHt9LCBkZWZhdWx0T3B0cywgb3B0cyk7XHJcbiAgICBwaW5QYWRWaWV3ZXIucGluUGFkID0gcGluUGFkO1xyXG4gICAgcGluUGFkVmlld2VyLm9mZnNldFRvcCA9IHVuZGVmaW5lZDtcclxuICAgIHBpblBhZFZpZXdlci5jYXRlZ29yaWVzID0gW107XHJcblxyXG4gICAgaW5pdChwaW5QYWRWaWV3ZXIsIHRvUGluKTtcclxufTtcclxuXHJcbnZhciBhZGRDYXRlZ29yeSA9IGZ1bmN0aW9uKHBpblBhZFZpZXdlciwgY2F0ZWdvcnkpIHtcclxuICAgIHJldHVybiBDYXRlZ29yeUZhY3RvcnkuY3JlYXRlQ2F0ZWdvcnkocGluUGFkVmlld2VyLCBjYXRlZ29yeSk7XHJcbn07XHJcblxyXG5QaW5QYWRWaWV3ZXIucHJvdG90eXBlLmFkZEVsZW1lbnQgPSBmdW5jdGlvbih0b1BpbiwgY2F0SW5kZXgsIGVsSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyID0gdGhpcztcclxuICAgIC8vYWRkIGNhdGVnb3J5XHJcbiAgICB2YXIgY2F0ZWdvcnk7XHJcbiAgICBpZiAoY2F0SW5kZXggPj0gcGluUGFkVmlld2VyLmNhdGVnb3JpZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgcGluUGFkVmlld2VyLmNhdGVnb3JpZXMucHVzaChhZGRDYXRlZ29yeShwaW5QYWRWaWV3ZXIsIHRvUGluLmNhdGVnb3J5KSk7XHJcbiAgICAgICAgY2F0ZWdvcnkgPSBfLmxhc3QocGluUGFkVmlld2VyLmNhdGVnb3JpZXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICBjYXRlZ29yeSA9IHBpblBhZFZpZXdlci5jYXRlZ29yaWVzW2NhdEluZGV4XTtcclxuICAgIH1cclxuICAgIGlmICghY2F0ZWdvcnkub3Blbikge1xyXG4gICAgICAgIGNhdGVnb3J5LnRvZ2dsZSgpO1xyXG4gICAgfVxyXG4gICAgdmFyIG5ld0VsZW0gPSBDYXRlZ29yeUZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgdG9QaW4sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKTtcclxuICAgIHZhciBlbGVtWSA9IG5ld0VsZW0uaGVhZGVyLm5vZGUoKS5vZmZzZXRUb3A7XHJcbiAgICBwaW5QYWRWaWV3ZXIucGFkQ29udGFpbmVyLm5vZGUoKS5zY3JvbGxUb3AgPSBlbGVtWSAtIHBpblBhZFZpZXdlci5vZmZzZXRUb3A7XHJcbiAgICB2YXIgY29sb3IgPSBuZXdFbGVtLmhlYWRlci5zdHlsZSgnYmFja2dyb3VuZC1jb2xvcicpO1xyXG4gICAgbmV3RWxlbS5oZWFkZXJcclxuICAgICAgICAudHJhbnNpdGlvbigpXHJcbiAgICAgICAgLmR1cmF0aW9uKDE1MDApXHJcbiAgICAgICAgLnN0eWxlVHdlZW4oJ2JhY2tncm91bmQtY29sb3InLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGQzLmludGVycG9sYXRlKHBpblBhZFZpZXdlci5vcHRpb25zLmhpZ2hsaWdodENvbG9yLCBjb2xvcik7XHJcbiAgICAgICAgfSlcclxuICAgIDtcclxuICAgIHJldHVybiBuZXdFbGVtO1xyXG59O1xyXG5cclxuUGluUGFkVmlld2VyLnByb3RvdHlwZS5yZW1vdmVFbGVtZW50ID0gZnVuY3Rpb24oY2F0SW5kZXgsIGVsSW5kZXgpIHtcclxuICAgIHZhciBwaW5QYWRWaWV3ZXIgPSB0aGlzO1xyXG4gICAgQ2F0ZWdvcnlGYWN0b3J5LnJlbW92ZUVsZW1lbnQocGluUGFkVmlld2VyLmNhdGVnb3JpZXNbY2F0SW5kZXhdLCBlbEluZGV4KTtcclxuICAgIGlmIChwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllc1tjYXRJbmRleF0uZWxlbWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgQ2F0ZWdvcnlGYWN0b3J5LnJlbW92ZUNhdGVnb3J5KHBpblBhZFZpZXdlci5jYXRlZ29yaWVzW2NhdEluZGV4XSk7XHJcbiAgICAgICAgcGluUGFkVmlld2VyLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxuICAgIH1cclxufTtcclxuXHJcblBpblBhZFZpZXdlci5wcm90b3R5cGUuZGVsZWdhdGVFbGVtZW50UmVtb3ZhbCA9IGZ1bmN0aW9uKGVsSWQpIHtcclxuICAgIHZhciBwaW5QYWRWaWV3ZXIgPSB0aGlzO1xyXG4gICAgcGluUGFkVmlld2VyLnBpblBhZC5yZW1vdmVFbGVtZW50KGVsSWQpO1xyXG59O1xyXG5cclxuUGluUGFkVmlld2VyLnByb3RvdHlwZS5yZW1vdmVDYXRlZ29yeSA9IGZ1bmN0aW9uKGNhdEluZGV4KSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyID0gdGhpcztcclxuICAgIENhdGVnb3J5RmFjdG9yeS5yZW1vdmVDYXRlZ29yeShwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllc1tjYXRJbmRleF0pO1xyXG4gICAgcGluUGFkVmlld2VyLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxufTtcclxuXHJcblBpblBhZFZpZXdlci5wcm90b3R5cGUuZGVsZWdhdGVDYXRlZ29yeVJlbW92YWwgPSBmdW5jdGlvbihjYXRUaXRsZSkge1xyXG4gICAgdmFyIHBpblBhZFZpZXdlciA9IHRoaXM7XHJcbiAgICBwaW5QYWRWaWV3ZXIucGluUGFkLnJlbW92ZUNhdGVnb3J5KGNhdFRpdGxlKTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGluUGFkVmlld2VyOyIsIi8qanNsaW50IG5vZGU6IHRydWUgKi9cclxuLypqc2hpbnQgbGF4YnJlYWs6IHRydWUgKi9cclxuXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG52YXIgUGluUGFkVmlld2VyID0gcmVxdWlyZSgnLi9QaW5QYWRWaWV3ZXInKTtcclxudmFyIFBpblBhZE1vZGVsID0gcmVxdWlyZSgnLi9QaW5QYWRNb2RlbCcpO1xyXG5cclxudmFyIFBpblBhZCA9IGZ1bmN0aW9uKG9wdHMpIHtcclxuICAgIHZhciBwaW5QYWQgPSB0aGlzO1xyXG4gICAgcGluUGFkLm1vZGVsID0gbmV3IFBpblBhZE1vZGVsKG9wdHMub3JkZXJpbmcpO1xyXG4gICAgcGluUGFkLnZpZXdlciA9IG5ldyBQaW5QYWRWaWV3ZXIob3B0cy5vcHRpb25zLCBvcHRzLnRvUGluLCBwaW5QYWQpO1xyXG4gICAgcGluUGFkLmRpc3BhdGNoZXIgPSBkMy5kaXNwYXRjaChcImFkZFwiLCBcImR1cGxpY2F0aW9uXCIsIFwicmVtb3ZlXCIsIFwidW5rbm93blwiLCBcImluY29tcGxldGVcIik7XHJcblxyXG4gICAgcGluUGFkLmFkZEVsZW1lbnQgPSBmdW5jdGlvbihlbGVtZW50KSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQuY2F0ZWdvcnkgJiYgZWxlbWVudC5pZCAmJiBlbGVtZW50LnNlY3Rpb25zICYmIChlbGVtZW50LnNlY3Rpb25zLmxlbmd0aCAhPT0gMCkpIHtcclxuICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHBpblBhZC5tb2RlbC5hZGRFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0LmVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICBwaW5QYWQuZGlzcGF0Y2hlci5kdXBsaWNhdGlvbih7ZWxlbWVudDogZWxlbWVudH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLnZpZXdlci5hZGRFbGVtZW50KGVsZW1lbnQsIHJlc3VsdC5jYXRJbmRleCwgcmVzdWx0LmVsSW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgICAgcGluUGFkLm1vZGVsLmNhdGVnb3JpZXNbcmVzdWx0LmNhdEluZGV4XS5lbGVtZW50cyk7XHJcbiAgICAgICAgICAgICAgICBwaW5QYWQuZGlzcGF0Y2hlci5hZGQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiBlbGVtZW50LmNhdGVnb3J5LFxyXG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnRcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIuaW5jb21wbGV0ZSh7ZWxlbWVudDogZWxlbWVudH0pO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcGluUGFkLnJlbW92ZUVsZW1lbnQgPSBmdW5jdGlvbihlbElkKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IHBpblBhZC5tb2RlbC5yZW1vdmVFbGVtZW50KGVsSWQpO1xyXG4gICAgICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcclxuICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIudW5rbm93bih7ZWxlbWVudDogZWxJZH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBpblBhZC52aWV3ZXIucmVtb3ZlRWxlbWVudChyZXN1bHQuY2F0SW5kZXgsIHJlc3VsdC5lbEluZGV4KTtcclxuICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIucmVtb3ZlKHtlbGVtZW50OiByZXN1bHQuZWxlbWVudH0pO1xyXG4gICAgICAgICAgICBpZiAoKHBpblBhZC5tb2RlbC5jYXRlZ29yaWVzLmxlbmd0aCA9PT0gMCkgfHwgKHBpblBhZC5tb2RlbC5jYXRlZ29yaWVzLmxlbmd0aCA9PT0gcmVzdWx0LmNhdEluZGV4KSkge1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIucmVtb3ZlKHtjYXRlZ29yeTogcmVzdWx0LmNhdGVnb3J5fSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocGluUGFkLm1vZGVsLmNhdGVnb3JpZXNbcmVzdWx0LmNhdEluZGV4XS50aXRsZSAhPT0gcmVzdWx0LmNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgICBwaW5QYWQuZGlzcGF0Y2hlci5yZW1vdmUoe2NhdGVnb3J5OiByZXN1bHQuY2F0ZWdvcnl9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcGluUGFkLnJlbW92ZUNhdGVnb3J5ID0gZnVuY3Rpb24oY2F0VGl0bGUpIHtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gcGluUGFkLm1vZGVsLnJlbW92ZUNhdGVnb3J5KGNhdFRpdGxlKTtcclxuICAgICAgICBwaW5QYWQudmlld2VyLnJlbW92ZUNhdGVnb3J5KHJlc3VsdC5jYXRJbmRleCk7XHJcbiAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIucmVtb3ZlKHtjYXRlZ29yeTogY2F0VGl0bGV9KTtcclxuICAgIH07XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBpblBhZDsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlc1xcYnJvd3NlcmlmeVxcbm9kZV9tb2R1bGVzXFxicm93c2VyLXBhY2tcXF9wcmVsdWRlLmpzIiwibGliXFxDYXRlZ29yeUZhY3RvcnkuanMiLCJsaWJcXENhdGVnb3J5TW9kZWwuanMiLCJsaWJcXEVsZW1lbnRGYWN0b3J5LmpzIiwibGliXFxQaW5QYWRNb2RlbC5qcyIsImxpYlxcUGluUGFkVmlld2VyLmpzIiwibGliXFxQaW5QYWQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQzFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ2xLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FDN0VBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUNwSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsIi8qanNsaW50IG5vZGU6IHRydWUgKi9cclxuLypqc2hpbnQgbGF4YnJlYWs6IHRydWUgKi9cclxuXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG52YXIgZDMgPSByZXF1aXJlKCdkMycpO1xyXG52YXIgXyA9IHJlcXVpcmUoJ3VuZGVyc2NvcmUnKTtcclxudmFyIEVsZW1lbnRGYWN0b3J5ID0gcmVxdWlyZSgnLi9FbGVtZW50RmFjdG9yeScpO1xyXG5cclxudmFyIENhdGVnb3J5ID0gZnVuY3Rpb24ocGluUGFkVmlld2VyLCBjYXRUaXRsZSkge1xyXG4gICAgdmFyIGNhdGVnb3J5ID0gdGhpcztcclxuICAgIGNhdGVnb3J5LnBpblBhZFZpZXdlciA9IHBpblBhZFZpZXdlcjtcclxuICAgIGNhdGVnb3J5LnRpdGxlID0gY2F0VGl0bGU7XHJcbiAgICBjYXRlZ29yeS5vcGVuID0gdHJ1ZTtcclxuICAgIGNhdGVnb3J5LmVsZW1lbnRzID0gW107XHJcblxyXG4gICAgdmFyIGNhdGVnb3J5Q29udGFpbmVyID0gY2F0ZWdvcnkucGluUGFkVmlld2VyLnBhZENvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmNsYXNzZWQoJ3VwX3BwX2NhdGVnb3J5LWNvbnRhaW5lcicsIHRydWUpO1xyXG5cclxuICAgIGNhdGVnb3J5LmhlYWRlciA9IGNhdGVnb3J5Q29udGFpbmVyLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXBfcHBfY2F0ZWdvcnktaGVhZGVyJywgdHJ1ZSk7XHJcbiAgICBjYXRlZ29yeS5oZWFkZXIudGl0bGUgPSBjYXRlZ29yeS5oZWFkZXIuYXBwZW5kKCdhJylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXBfcHBfY2F0ZWdvcnktbmFtZSB1cF9wZnR2X2Fycm93LWRvd24nKVxyXG4gICAgICAgIC50ZXh0KGNhdFRpdGxlKVxyXG4gICAgICAgIC5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkudG9nZ2xlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICBjYXRlZ29yeS5oZWFkZXIuYXBwZW5kKCdzcGFuJylcclxuICAgICAgICAuY2xhc3NlZCgndXBfcHBfaWNvbkNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgICAgLnN0eWxlKCdmbG9hdCcsICdyaWdodCcpXHJcbiAgICAgICAgLmFwcGVuZCgnZGl2JylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXAtcHAtaWNvbi10cmFzaCB1cF9wcF9jbGlja2FibGUtaWNvbicpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5kZWxlZ2F0ZUNhdGVnb3J5UmVtb3ZhbChjYXRlZ29yeS50aXRsZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyID0gY2F0ZWdvcnlDb250YWluZXIuYXBwZW5kKCdkaXYnKS5jbGFzc2VkKCd1cF9wcF9jYXRlZ29yeS1wYWQnLCB0cnVlKTtcclxuXHJcbiAgICBjYXRlZ29yeS5yZW1vdmUgPSBmdW5jdGlvbigpIHtcclxuICAgICAgICB3aGlsZSAoY2F0ZWdvcnkuZWxlbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5lbGVtZW50c1swXS5yZW1vdmUoY2F0ZWdvcnkuZWxlbWVudHNbMF0uaWQsIGNhdGVnb3J5LnRpdGxlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZSgwLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0ZWdvcnlDb250YWluZXIucmVtb3ZlKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhdGVnb3J5LnRvZ2dsZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIGlmIChjYXRlZ29yeS5wYWRDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknKSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnBhZENvbnRhaW5lci5zdHlsZSgnZGlzcGxheScsICdibG9jaycpO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5oZWFkZXIudGl0bGUuYXR0cignY2xhc3MnLCAndXBfcHBfY2F0ZWdvcnktbmFtZSB1cF9wZnR2X2Fycm93LWRvd24nKTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkub3BlbiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgICAgICAgICAgY2F0ZWdvcnkuaGVhZGVyLnRpdGxlLmF0dHIoJ2NsYXNzJywgJ3VwX3BwX2NhdGVnb3J5LW5hbWUgdXBfcGZ0dl9hcnJvdy1yaWdodCcpO1xyXG4gICAgICAgICAgICBjYXRlZ29yeS5vcGVuID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5hZGRFbGVtZW50ID0gZnVuY3Rpb24oZWxlbSwgc29ydGVkSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICAgICAgdmFyIG5ld0VsZW0gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKHNvcnRlZEluZGV4ID4gY2F0ZWdvcnkuZWxlbWVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIG5ld0VsZW0gPSAgRWxlbWVudEZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgZWxlbSk7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnB1c2gobmV3RWxlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY2F0ZWdvcnkucGFkQ29udGFpbmVyLnNlbGVjdEFsbCgnKicpLnJlbW92ZSgpO1xyXG4gICAgICAgICAgICBfLmVhY2goYWxsRWxlbWVudHMsIGZ1bmN0aW9uKGVsZW0sIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgb3BlbiA9IGluZGV4ID09PSBzb3J0ZWRJbmRleCA/IHVuZGVmaW5lZCA6IGNhdGVnb3J5LmVsZW1lbnRzW2luZGV4XS5vcGVuO1xyXG4gICAgICAgICAgICAgICAgdmFyIGFkZGVkID0gRWxlbWVudEZhY3RvcnkuY3JlYXRlRWxlbWVudChjYXRlZ29yeSwgZWxlbSwgb3Blbik7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT09IHNvcnRlZEluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3RWxlbSA9IGFkZGVkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZShzb3J0ZWRJbmRleCwgMCwgbmV3RWxlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmV3RWxlbTtcclxuICAgIH07XHJcblxyXG4gICAgY2F0ZWdvcnkucmVtb3ZlRWxlbWVudCA9IGZ1bmN0aW9uKGVsSW5kZXgpIHtcclxuICAgICAgICB2YXIgZWxlbWVudCA9IGNhdGVnb3J5LmVsZW1lbnRzW2VsSW5kZXhdO1xyXG4gICAgICAgIGNhdGVnb3J5LmVsZW1lbnRzLnNwbGljZShlbEluZGV4LCAxKTtcclxuICAgICAgICBFbGVtZW50RmFjdG9yeS5yZW1vdmVFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5kZWxlZ2F0ZUVsZW1lbnRSZW1vdmFsID0gZnVuY3Rpb24oZWxJZCkge1xyXG4gICAgICAgIGNhdGVnb3J5LnBpblBhZFZpZXdlci5kZWxlZ2F0ZUVsZW1lbnRSZW1vdmFsKGVsSWQpO1xyXG4gICAgfTtcclxuXHJcbiAgICBjYXRlZ29yeS5kZWxlZ2F0ZUNhdGVnb3J5UmVtb3ZhbCA9IGZ1bmN0aW9uKGNhdFRpdGxlKSB7XHJcbiAgICAgICAgY2F0ZWdvcnkucGluUGFkVmlld2VyLmRlbGVnYXRlQ2F0ZWdvcnlSZW1vdmFsKGNhdFRpdGxlKTtcclxuICAgIH07XHJcbn07XHJcblxyXG52YXIgQ2F0ZWdvcnlGYWN0b3J5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjcmVhdGVDYXRlZ29yeTogZnVuY3Rpb24ocGluUGFkVmlld2VyLCBjYXRUaXRsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IENhdGVnb3J5KHBpblBhZFZpZXdlciwgY2F0VGl0bGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVtb3ZlQ2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnJlbW92ZSgpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3JlYXRlRWxlbWVudDogZnVuY3Rpb24oY2F0ZWdvcnksIGVsZW0sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjYXRlZ29yeS5hZGRFbGVtZW50KGVsZW0sIGVsSW5kZXgsIGFsbEVsZW1lbnRzKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlbW92ZUVsZW1lbnQ6IGZ1bmN0aW9uKGNhdGVnb3J5LCBlbEluZGV4KSB7XHJcbiAgICAgICAgICAgIGNhdGVnb3J5LnJlbW92ZUVsZW1lbnQoZWxJbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufSgpO1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBDYXRlZ29yeUZhY3Rvcnk7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuXHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG5cclxudmFyIENhdGVnb3J5TW9kZWwgPSBmdW5jdGlvbihjYXRUaXRsZSwgb3JkZXJpbmcpIHtcclxuICAgIHZhciBjYXRNb2RlbCA9IHRoaXM7XHJcbiAgICBjYXRNb2RlbC50aXRsZSA9IGNhdFRpdGxlO1xyXG4gICAgY2F0TW9kZWwub3JkZXJpbmcgPSBvcmRlcmluZztcclxuICAgIGNhdE1vZGVsLmVsZW1lbnRzID0gW107XHJcblxyXG4gICAgY2F0TW9kZWwuYWRkRWxlbWVudCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcclxuICAgICAgICB2YXIgc29ydGVkSW5kZXggPSAwO1xyXG4gICAgICAgIGlmIChjYXRNb2RlbC5vcmRlcmluZyAmJiBlbGVtZW50Lm9yZGVyaW5nKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN0ID0gXy5wbHVjayhjYXRNb2RlbC5lbGVtZW50cywgJ29yZGVyaW5nJyk7XHJcbiAgICAgICAgICAgIF8uZWFjaChvcmRlcmluZywgZnVuY3Rpb24oYXR0cikge1xyXG4gICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gXy5zb3J0ZWRJbmRleChyZXN0LCBlbGVtZW50Lm9yZGVyaW5nLCBhdHRyKTtcclxuICAgICAgICAgICAgICAgIHNvcnRlZEluZGV4ID0gc29ydGVkSW5kZXggKyBpbmRleDtcclxuICAgICAgICAgICAgICAgIHJlc3QgPSBfLnJlc3QocmVzdCwgaW5kZXgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzb3J0ZWRJbmRleCA9IGNhdE1vZGVsLmVsZW1lbnRzLmxlbmd0aDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0TW9kZWwuZWxlbWVudHMuc3BsaWNlKHNvcnRlZEluZGV4LCAwLCBlbGVtZW50KTtcclxuICAgICAgICByZXR1cm4gc29ydGVkSW5kZXg7XHJcbiAgICB9O1xyXG5cclxuICAgIGNhdE1vZGVsLnJlbW92ZUVsZW1lbnQgPSBmdW5jdGlvbihpbmRleCkge1xyXG4gICAgICAgIGlmICgoMCA8PSBpbmRleCkgJiYgKGluZGV4IDwgY2F0TW9kZWwuZWxlbWVudHMubGVuZ3RoKSkge1xyXG4gICAgICAgICAgICBjYXRNb2RlbC5lbGVtZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IENhdGVnb3J5TW9kZWw7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIjtcclxuXHJcbnZhciBkMyA9IHJlcXVpcmUoJ2QzJyk7XHJcbnZhciBfID0gcmVxdWlyZSgndW5kZXJzY29yZScpO1xyXG5cclxudmFyIGlzTGluayA9IGZ1bmN0aW9uKGluZm8pIHtcclxuICAgIGlmICgodHlwZW9mIGluZm8gPT09ICdvYmplY3QnKSAmJiAhKGluZm8gaW5zdGFuY2VvZiBBcnJheSkpIHtcclxuICAgICAgICB2YXIga2V5cyA9IF8ua2V5cyhpbmZvKTtcclxuICAgICAgICBpZiAoKGtleXMubGVuZ3RoID09PSAyKSAmJiBfLmNvbnRhaW5zKGtleXMsICd2YWx1ZScpICYmIF8uY29udGFpbnMoa2V5cywgJ2xpbmsnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2VcclxufTtcclxuXHJcbnZhciBhZGRMaW5rID0gZnVuY3Rpb24oY29udGFpbmVyLCBpbmZvVGV4dCwgaW5mb0xpbmspIHtcclxuICAgIGlmIChpbmZvTGluayAmJiAoaW5mb0xpbmsgIT09ICctJykpIHtcclxuICAgICAgICBjb250YWluZXIuYXBwZW5kKCdhJylcclxuICAgICAgICAgICAgLmF0dHIoJ2hyZWYnLCBpbmZvTGluaylcclxuICAgICAgICAgICAgLmF0dHIoJ3RhcmdldCcsICdfYmxhbmsnKVxyXG4gICAgICAgICAgICAudGV4dChpbmZvVGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnRhaW5lci50ZXh0KGluZm9UZXh0KTtcclxuICAgIH1cclxufTtcclxuXHJcbnZhciBhZGRWYWx1ZSA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgaW5mbykge1xyXG4gICAgaWYgKCh0eXBlb2YgaW5mbyA9PT0gJ3N0cmluZycpIHx8ICh0eXBlb2YgaW5mbyA9PT0gJ251bWJlcicpIHx8ICh0eXBlb2YgaW5mbyA9PT0gJ2Jvb2xlYW4nKSkge1xyXG4gICAgICAgIGNvbnRhaW5lci50ZXh0KGluZm8pO1xyXG4gICAgfSBlbHNlIGlmIChpc0xpbmsoaW5mbykpIHtcclxuICAgICAgICBhZGRMaW5rKGNvbnRhaW5lciwgaW5mby52YWx1ZSwgaW5mby5saW5rKTtcclxuICAgIH0gZWxzZSBpZiAoaW5mbyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgXy5lYWNoKGluZm8sIGZ1bmN0aW9uKGRhdHVtLCBpbmRleCkge1xyXG4gICAgICAgICAgICB2YXIgc3BhbiA9IGNvbnRhaW5lci5hcHBlbmQoJ3NwYW4nKTtcclxuICAgICAgICAgICAgYWRkVmFsdWUoc3BhbiwgZGF0dW0pO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IChpbmZvLmxlbmd0aC0xKSkge1xyXG4gICAgICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZCgnc3BhbicpLnRleHQoJywgJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYWRkRGF0YShjb250YWluZXIuYXBwZW5kKCd0YWJsZScpLCBpbmZvKTtcclxuICAgIH1cclxufTtcclxuXHJcbnZhciBhZGREYXR1bSA9IGZ1bmN0aW9uKHRhYmxlLCBrZXksIGluZm8pIHtcclxuICAgIHZhciB0ciA9IHRhYmxlLmFwcGVuZCgndHInKTtcclxuICAgIGlmIChrZXkuaW5kZXhPZignc3R5bGVkXycpID09PSAwKSB7XHJcbiAgICAgICAgdmFyIGxlZnRDb2wgPSB0ci5hcHBlbmQoJ3RkJykudGV4dChpbmZvLmtleSk7XHJcbiAgICAgICAgaWYgKGluZm8ua2V5X3N0eWxlKSB7XHJcbiAgICAgICAgICAgIGxlZnRDb2wuYXR0cignc3R5bGUnLCBpbmZvLmtleV9zdHlsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciByaWdodENvbCA9IHRyLmFwcGVuZCgndGQnKTtcclxuICAgICAgICBpZiAoaW5mby52YWx1ZV9zdHlsZSkge1xyXG4gICAgICAgICAgICByaWdodENvbC5hdHRyKCdzdHlsZScsIGluZm8udmFsdWVfc3R5bGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhZGRWYWx1ZShyaWdodENvbCwgaW5mby52YWx1ZSlcclxuICAgIH0gZWxzZSBpZiAoa2V5LmluZGV4T2YoJ3N1YnNlY3Rpb25fJykgPT09IDApIHtcclxuICAgICAgICB0ci5hcHBlbmQoJ3RkJylcclxuICAgICAgICAgICAgLmF0dHIoJ2NvbHNwYW4nLCAyKVxyXG4gICAgICAgICAgICAuY2xhc3NlZCgndXBfcHBfdGFibGVfc3Vic2VjdGlvbicsIHRydWUpXHJcbiAgICAgICAgICAgIC50ZXh0KGluZm8udGl0bGUpO1xyXG4gICAgICAgIGFkZERhdGEodGFibGUsIGluZm8uaW5mb3JtYXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB0ci5hcHBlbmQoJ3RkJykudGV4dChrZXkucmVwbGFjZSgvXy9nLCAnICcpKTtcclxuICAgICAgICBhZGRWYWx1ZSh0ci5hcHBlbmQoJ3RkJyksIGluZm8pO1xyXG4gICAgfVxyXG59O1xyXG5cclxudmFyIGFkZERhdGEgPSBmdW5jdGlvbih0YWJsZSwgZGF0YSkge1xyXG4gICAgXy5lYWNoKGRhdGEsIGZ1bmN0aW9uKGluZm8sIGtleSkge1xyXG4gICAgICAgIGFkZERhdHVtKHRhYmxlLCBrZXksIGluZm8pO1xyXG4gICAgfSk7XHJcbn07XHJcblxyXG52YXIgRWxlbWVudCA9IGZ1bmN0aW9uKGNhdGVnb3J5LCBlbGVtLCBvcGVuKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IHRoaXM7XHJcbiAgICBlbGVtZW50LmlkID0gZWxlbS5pZDtcclxuICAgIGVsZW1lbnQuY2F0ZWdvcnkgPSBjYXRlZ29yeTtcclxuICAgIGVsZW1lbnQub3BlbiA9IG9wZW47XHJcbiAgICBlbGVtZW50LmhlYWRlciA9IHVuZGVmaW5lZDtcclxuICAgIGVsZW1lbnQudGFibGVDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICBlbGVtZW50LnRhYmxlID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGVsZW1lbnQudG9nZ2xlID0gZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknKSA9PT0gJ25vbmUnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknLCAnYmxvY2snKTtcclxuICAgICAgICAgICAgZWxlbWVudC5oZWFkZXIudGl0bGUuYXR0cignY2xhc3MnLCAndXBfcHBfZWxlbWVudC1uYW1lIHVwX3BmdHZfYXJyb3ctZG93bicpO1xyXG4gICAgICAgICAgICBlbGVtZW50Lm9wZW4gPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQudGFibGVDb250YWluZXIuc3R5bGUoJ2Rpc3BsYXknLCAnbm9uZScpO1xyXG4gICAgICAgICAgICBlbGVtZW50LmhlYWRlci50aXRsZS5hdHRyKCdjbGFzcycsICd1cF9wcF9lbGVtZW50LW5hbWUgdXBfcGZ0dl9hcnJvdy1yaWdodCcpO1xyXG4gICAgICAgICAgICBlbGVtZW50Lm9wZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHZhciBlbGVtQ29udGFpbmVyID0gZWxlbWVudC5jYXRlZ29yeS5wYWRDb250YWluZXIuYXBwZW5kKCdkaXYnKS5hdHRyKCdpZCcsICdwaW5uZWRfZWxlbV9pZF8nICsgZWxlbS5pZCk7XHJcblxyXG4gICAgZWxlbWVudC5maXJzdChlbGVtZW50LmNhdGVnb3J5LnRpdGxlLCBlbGVtQ29udGFpbmVyLCBfLmZpcnN0KGVsZW0uc2VjdGlvbnMpKTtcclxuICAgIGVsZW1lbnQudGFpbChlbGVtZW50LnRhYmxlLCBfLnRhaWwoZWxlbS5zZWN0aW9ucykpO1xyXG59O1xyXG5cclxuRWxlbWVudC5wcm90b3R5cGUuZmlyc3QgPSBmdW5jdGlvbihjYXRUaXRsZSwgY29udGFpbmVyLCBzZWN0aW9uKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IHRoaXM7XHJcbiAgICBlbGVtZW50LmhlYWRlciA9IGNvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmNsYXNzZWQoJ3VwX3BwX2VsZW1lbnQtaGVhZGVyJywgdHJ1ZSk7XHJcbiAgICBlbGVtZW50LmhlYWRlci50aXRsZSA9IGVsZW1lbnQuaGVhZGVyLmFwcGVuZCgnYScpXHJcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50Lm9wZW4gPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3VwX3BwX2VsZW1lbnQtbmFtZSB1cF9wZnR2X2Fycm93LXJpZ2h0JztcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAndXBfcHBfZWxlbWVudC1uYW1lIHVwX3BmdHZfYXJyb3ctZG93bic7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC50ZXh0KHNlY3Rpb24udGl0bGUpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnRvZ2dsZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgZWxlbWVudC5oZWFkZXIuYXBwZW5kKCdzcGFuJylcclxuICAgICAgICAuY2xhc3NlZCgndXBfcHBfaWNvbkNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgICAgLnN0eWxlKCdmbG9hdCcsICdyaWdodCcpXHJcbiAgICAgICAgLmFwcGVuZCgnZGl2JylcclxuICAgICAgICAuYXR0cignY2xhc3MnLCAndXAtcHAtaWNvbi10cmFzaCB1cF9wcF9jbGlja2FibGUtaWNvbicpXHJcbiAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LmNhdGVnb3J5LmRlbGVnYXRlRWxlbWVudFJlbW92YWwoZWxlbWVudC5pZCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgZWxlbWVudC50YWJsZUNvbnRhaW5lciA9IGNvbnRhaW5lci5hcHBlbmQoJ2RpdicpO1xyXG4gICAgaWYgKGVsZW1lbnQub3BlbiA9PT0gZmFsc2UpIHtcclxuICAgICAgICBlbGVtZW50LnRhYmxlQ29udGFpbmVyLnN0eWxlKCdkaXNwbGF5JywgJ25vbmUnKTtcclxuICAgIH1cclxuICAgIGVsZW1lbnQudGFibGUgPSBlbGVtZW50LnRhYmxlQ29udGFpbmVyLmFwcGVuZCgndGFibGUnKS5hdHRyKCd3aWR0aCcsICcxMDAlJyk7XHJcbiAgICBhZGREYXRhKGVsZW1lbnQudGFibGUsIHNlY3Rpb24uaW5mb3JtYXRpb24pO1xyXG59O1xyXG5cclxuRWxlbWVudC5wcm90b3R5cGUudGFpbCA9IGZ1bmN0aW9uKGNvbnRhaW5lciwgc2VjdGlvbnMpIHtcclxuICAgIF8uZWFjaChzZWN0aW9ucywgZnVuY3Rpb24oc2VjdGlvbikge1xyXG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmQoJ3RyJykuY2xhc3NlZCgndXBfcHBfZWxlbWVudC1zZWN0aW9uJywgdHJ1ZSlcclxuICAgICAgICAgICAgLmFwcGVuZCgndGQnKVxyXG4gICAgICAgICAgICAuYXR0cignY29sc3BhbicsIDIpXHJcbiAgICAgICAgICAgIC50ZXh0KHNlY3Rpb24udGl0bGUpO1xyXG5cclxuICAgICAgICBhZGREYXRhKGNvbnRhaW5lciwgc2VjdGlvbi5pbmZvcm1hdGlvbik7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSA9IGZ1bmN0aW9uKGlkKSB7XHJcbiAgICB2YXIgY29udGFpbmVyID0gZDMuc2VsZWN0KCcjJyArICdwaW5uZWRfZWxlbV9pZF8nICsgaWQpO1xyXG4gICAgY29udGFpbmVyLnJlbW92ZSgpO1xyXG59O1xyXG5cclxudmFyIEVsZW1lbnRGYWN0b3J5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBjcmVhdGVFbGVtZW50OiBmdW5jdGlvbihjYXRlZ29yeSwgZWxlbSwgb3Blbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEVsZW1lbnQoY2F0ZWdvcnksIGVsZW0sIG9wZW4pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVtb3ZlRWxlbWVudDogZnVuY3Rpb24oZWxlbWVudCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZShlbGVtZW50LmlkKTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCk7XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IEVsZW1lbnRGYWN0b3J5OyIsIi8qanNsaW50IG5vZGU6IHRydWUgKi9cclxuLypqc2hpbnQgbGF4YnJlYWs6IHRydWUgKi9cclxuXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG52YXIgXyA9IHJlcXVpcmUoJ3VuZGVyc2NvcmUnKTtcclxudmFyIENhdGVnb3J5TW9kZWwgPSByZXF1aXJlKCcuL0NhdGVnb3J5TW9kZWwnKTtcclxuXHJcbnZhciBhZGRDYXRlZ29yeSA9IGZ1bmN0aW9uKHBpblBhZE1vZGVsLCBjYXRUaXRsZSwgb3JkZXJpbmcpIHtcclxuICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlNb2RlbChjYXRUaXRsZSwgb3JkZXJpbmcpO1xyXG59O1xyXG5cclxudmFyIFBpblBhZE1vZGVsID0gZnVuY3Rpb24ob3JkZXJpbmcpIHtcclxuICAgIHZhciBwaW5QYWRNb2RlbCA9IHRoaXM7XHJcbiAgICBwaW5QYWRNb2RlbC5jYXRlZ29yaWVzID0gW107XHJcblxyXG4gICAgcGluUGFkTW9kZWwuYWRkRWxlbWVudCA9IGZ1bmN0aW9uKGVsZW1lbnQpIHtcclxuICAgICAgICB2YXIgY2F0ZWdvcnk7XHJcbiAgICAgICAgdmFyIGNhdEluZGV4ID0gLTE7XHJcbiAgICAgICAgdmFyIGVsZW0gPSBfLmZpbmQocGluUGFkTW9kZWwuY2F0ZWdvcmllcywgZnVuY3Rpb24oY2F0LCBjb3VudGVyKSB7XHJcbiAgICAgICAgICAgIGlmIChjYXQudGl0bGUgPT09IGVsZW1lbnQuY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gY2F0O1xyXG4gICAgICAgICAgICAgICAgY2F0SW5kZXggPSBjb3VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBfLmZpbmQoY2F0LmVsZW1lbnRzLCBmdW5jdGlvbihlbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuaWQgPT09IGVsLmlkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChlbGVtKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ZXJyb3I6ICdkdXBsaWNhdGlvbid9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghY2F0ZWdvcnkgfHwgKGNhdEluZGV4ID09PSAtMSkpIHtcclxuICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gYWRkQ2F0ZWdvcnkocGluUGFkTW9kZWwsIGVsZW1lbnQuY2F0ZWdvcnksIG9yZGVyaW5nKTtcclxuICAgICAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMucHVzaChjYXRlZ29yeSk7XHJcbiAgICAgICAgICAgICAgICBjYXRJbmRleCA9IHBpblBhZE1vZGVsLmNhdGVnb3JpZXMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB2YXIgZWxJbmRleCA9IGNhdGVnb3J5LmFkZEVsZW1lbnQoZWxlbWVudCk7XHJcbiAgICAgICAgICAgIHJldHVybiB7Y2F0SW5kZXg6IGNhdEluZGV4LCBlbEluZGV4OiBlbEluZGV4fTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHBpblBhZE1vZGVsLnJlbW92ZUVsZW1lbnQgPSBmdW5jdGlvbihlbElkKSB7XHJcbiAgICAgICAgdmFyIGNhdEluZGV4ID0gLTEsIGVsSW5kZXggPSAtMTtcclxuICAgICAgICBfLmZpbmQocGluUGFkTW9kZWwuY2F0ZWdvcmllcywgZnVuY3Rpb24oY2F0LCBjb3VudGVyKSB7XHJcbiAgICAgICAgICAgIHZhciBlbGVtZW50ID0gXy5maW5kKGNhdC5lbGVtZW50cywgZnVuY3Rpb24oZWwsIGluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBlbEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZWwuaWQgPT09IGVsSWQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgY2F0SW5kZXggPSBjb3VudGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBjYXRJbmRleCAhPT0gLTE7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKChjYXRJbmRleCAhPT0gLTEpICYmIChlbEluZGV4ICE9PSAtMSkpIHtcclxuICAgICAgICAgICAgdmFyIHJlbW92ZWRGcm9tQ2F0ZWdvcnkgPSBwaW5QYWRNb2RlbC5jYXRlZ29yaWVzW2NhdEluZGV4XS50aXRsZTtcclxuICAgICAgICAgICAgdmFyIHJlbW92ZWRFbGVtZW50ID0gcGluUGFkTW9kZWwuY2F0ZWdvcmllc1tjYXRJbmRleF0uZWxlbWVudHNbZWxJbmRleF07XHJcbiAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXNbY2F0SW5kZXhdLnJlbW92ZUVsZW1lbnQoZWxJbmRleCk7XHJcbiAgICAgICAgICAgIGlmIChwaW5QYWRNb2RlbC5jYXRlZ29yaWVzW2NhdEluZGV4XS5lbGVtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4ge2NhdEluZGV4OiBjYXRJbmRleCwgZWxJbmRleDogZWxJbmRleCwgY2F0ZWdvcnk6IHJlbW92ZWRGcm9tQ2F0ZWdvcnksIGVsZW1lbnQ6IHJlbW92ZWRFbGVtZW50fTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtlcnJvcjogJ3Vua25vd24nfVxyXG4gICAgfTtcclxuXHJcbiAgICBwaW5QYWRNb2RlbC5yZW1vdmVDYXRlZ29yeSA9IGZ1bmN0aW9uKGNhdFRpdGxlKSB7XHJcbiAgICAgICAgdmFyIGNhdEluZGV4ID0gLTE7XHJcbiAgICAgICAgdmFyIGNhdGVnb3J5ID0gXy5maW5kKHBpblBhZE1vZGVsLmNhdGVnb3JpZXMsIGZ1bmN0aW9uKGNhdCwgaW5kZXgpIHtcclxuICAgICAgICAgICAgY2F0SW5kZXggPSBpbmRleDtcclxuICAgICAgICAgICAgcmV0dXJuIGNhdC50aXRsZSA9PT0gY2F0VGl0bGU7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIHBpblBhZE1vZGVsLmNhdGVnb3JpZXMuc3BsaWNlKGNhdEluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtjYXRJbmRleDogY2F0SW5kZXh9O1xyXG4gICAgfTtcclxufTtcclxuXHJcbm1vZHVsZS5leHBvcnRzID0gUGluUGFkTW9kZWw7IiwiLypqc2xpbnQgbm9kZTogdHJ1ZSAqL1xyXG4vKmpzaGludCBsYXhicmVhazogdHJ1ZSAqL1xyXG5cInVzZSBzdHJpY3RcIiA7XHJcbi8qXHJcbiAqIGJpb2pzLXZpcy1waW5wYWRcclxuICogaHR0cHM6Ly9naXRodWIuY29tL2ViaS11bmlwcm90L2Jpb2pzLXZpcy1waW5wYWRcclxuICpcclxuICogQ29weXJpZ2h0IChjKSAyMDE0IGViaS11bmlwcm90XHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMiBsaWNlbnNlLlxyXG4gKi9cclxuXHJcbi8qKlxyXG5AY2xhc3MgUGluUGFkVmlld2VyXHJcbiAqL1xyXG52YXIgZDMgPSByZXF1aXJlKCdkMycpO1xyXG52YXIgXyA9IHJlcXVpcmUoJ3VuZGVyc2NvcmUnKTtcclxudmFyIENhdGVnb3J5RmFjdG9yeSA9IHJlcXVpcmUoJy4vQ2F0ZWdvcnlGYWN0b3J5Jyk7XHJcblxyXG4vKipcclxuICogUHJpdmF0ZSBNZXRob2RzXHJcbiAqL1xyXG52YXIgZGVmYXVsdE9wdHMgPSB7XHJcbiAgICBoZWlnaHQ6ICc1MDBweCcsXHJcbiAgICB3aWR0aDogJzI1MHB4JyxcclxuICAgIGhpZ2hsaWdodENvbG9yOiAnZ3JlZW4nXHJcbn07XHJcbnZhciBpbml0ID0gZnVuY3Rpb24ocGluUGFkVmlld2VyLCB0b1Bpbikge1xyXG4gICAgdmFyIHBpblBhZFZpZXdlckNvbnRhaW5lciA9IGQzLnNlbGVjdChwaW5QYWRWaWV3ZXIub3B0aW9ucy5lbClcclxuICAgICAgLnRleHQoJycpXHJcbiAgICAgIC5hcHBlbmQoJ2RpdicpXHJcbiAgICAgIC5jbGFzc2VkKCd1cF9wcF9tYWluLWNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgIC5zdHlsZSgnd2lkdGgnLCBwaW5QYWRWaWV3ZXIub3B0aW9ucy53aWR0aCk7XHJcblxyXG4gICAgdmFyIG1haW5UaXRsZSA9IHBpblBhZFZpZXdlckNvbnRhaW5lci5hcHBlbmQoJ2RpdicpLmNsYXNzZWQoJ3VwX3BwX21haW5UaXRsZScsIHRydWUpO1xyXG4gICAgbWFpblRpdGxlLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXBfcHBfaWNvbkNvbnRhaW5lcicsIHRydWUpXHJcbiAgICAgICAgLmFwcGVuZCgnZGl2JykuY2xhc3NlZCgndXAtcHAtaWNvbi1waW4nLCB0cnVlKS5jbGFzc2VkKCd1cF9wcF9pY29uJywgdHJ1ZSk7XHJcbiAgICBwaW5QYWRWaWV3ZXIub2Zmc2V0VG9wID0gbWFpblRpdGxlLm5vZGUoKS5vZmZzZXRIZWlnaHQgKyBtYWluVGl0bGUubm9kZSgpLm9mZnNldFRvcDtcclxuXHJcbiAgICBwaW5QYWRWaWV3ZXIucGFkQ29udGFpbmVyID0gcGluUGFkVmlld2VyQ29udGFpbmVyLmFwcGVuZCgnZGl2JylcclxuICAgICAgICAuY2xhc3NlZCgndXBfcHBfcGFkJywgdHJ1ZSlcclxuICAgICAgICAuc3R5bGUoJ2hlaWdodCcsIHBpblBhZFZpZXdlci5vcHRpb25zLmhlaWdodCk7XHJcblxyXG4gICAgaWYgKHBpblBhZFZpZXdlci5vcHRpb25zLnRvUGluKSB7XHJcbiAgICAgICAgcGluUGFkVmlld2VyLmFkZEVsZW1lbnQodG9QaW4pO1xyXG4gICAgfVxyXG59O1xyXG5cclxuLypcclxuICogUHVibGljIE1ldGhvZHNcclxuICovXHJcbnZhciBQaW5QYWRWaWV3ZXIgPSBmdW5jdGlvbihvcHRzLCB0b1BpbiwgcGluUGFkKXtcclxuICAgIHZhciBwaW5QYWRWaWV3ZXIgPSB0aGlzO1xyXG4gICAgcGluUGFkVmlld2VyLm9wdGlvbnMgPSBfLmV4dGVuZCh7fSwgZGVmYXVsdE9wdHMsIG9wdHMpO1xyXG4gICAgcGluUGFkVmlld2VyLnBpblBhZCA9IHBpblBhZDtcclxuICAgIHBpblBhZFZpZXdlci5vZmZzZXRUb3AgPSB1bmRlZmluZWQ7XHJcbiAgICBwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllcyA9IFtdO1xyXG5cclxuICAgIGluaXQocGluUGFkVmlld2VyLCB0b1Bpbik7XHJcbn07XHJcblxyXG52YXIgYWRkQ2F0ZWdvcnkgPSBmdW5jdGlvbihwaW5QYWRWaWV3ZXIsIGNhdGVnb3J5KSB7XHJcbiAgICByZXR1cm4gQ2F0ZWdvcnlGYWN0b3J5LmNyZWF0ZUNhdGVnb3J5KHBpblBhZFZpZXdlciwgY2F0ZWdvcnkpO1xyXG59O1xyXG5cclxuUGluUGFkVmlld2VyLnByb3RvdHlwZS5hZGRFbGVtZW50ID0gZnVuY3Rpb24odG9QaW4sIGNhdEluZGV4LCBlbEluZGV4LCBhbGxFbGVtZW50cykge1xyXG4gICAgdmFyIHBpblBhZFZpZXdlciA9IHRoaXM7XHJcbiAgICAvL2FkZCBjYXRlZ29yeVxyXG4gICAgdmFyIGNhdGVnb3J5O1xyXG4gICAgaWYgKGNhdEluZGV4ID49IHBpblBhZFZpZXdlci5jYXRlZ29yaWVzLmxlbmd0aCkge1xyXG4gICAgICAgIHBpblBhZFZpZXdlci5jYXRlZ29yaWVzLnB1c2goYWRkQ2F0ZWdvcnkocGluUGFkVmlld2VyLCB0b1Bpbi5jYXRlZ29yeSkpO1xyXG4gICAgICAgIGNhdGVnb3J5ID0gXy5sYXN0KHBpblBhZFZpZXdlci5jYXRlZ29yaWVzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2F0ZWdvcnkgPSBwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllc1tjYXRJbmRleF07XHJcbiAgICB9XHJcbiAgICBpZiAoIWNhdGVnb3J5Lm9wZW4pIHtcclxuICAgICAgICBjYXRlZ29yeS50b2dnbGUoKTtcclxuICAgIH1cclxuICAgIHZhciBuZXdFbGVtID0gQ2F0ZWdvcnlGYWN0b3J5LmNyZWF0ZUVsZW1lbnQoY2F0ZWdvcnksIHRvUGluLCBlbEluZGV4LCBhbGxFbGVtZW50cyk7XHJcbiAgICB2YXIgZWxlbVkgPSBuZXdFbGVtLmhlYWRlci5ub2RlKCkub2Zmc2V0VG9wO1xyXG4gICAgcGluUGFkVmlld2VyLnBhZENvbnRhaW5lci5ub2RlKCkuc2Nyb2xsVG9wID0gZWxlbVkgLSBwaW5QYWRWaWV3ZXIub2Zmc2V0VG9wO1xyXG4gICAgdmFyIGNvbG9yID0gbmV3RWxlbS5oZWFkZXIuc3R5bGUoJ2JhY2tncm91bmQtY29sb3InKTtcclxuICAgIG5ld0VsZW0uaGVhZGVyXHJcbiAgICAgICAgLnRyYW5zaXRpb24oKVxyXG4gICAgICAgIC5kdXJhdGlvbigxNTAwKVxyXG4gICAgICAgIC5zdHlsZVR3ZWVuKCdiYWNrZ3JvdW5kLWNvbG9yJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkMy5pbnRlcnBvbGF0ZShwaW5QYWRWaWV3ZXIub3B0aW9ucy5oaWdobGlnaHRDb2xvciwgY29sb3IpO1xyXG4gICAgICAgIH0pXHJcbiAgICA7XHJcbiAgICByZXR1cm4gbmV3RWxlbTtcclxufTtcclxuXHJcblBpblBhZFZpZXdlci5wcm90b3R5cGUucmVtb3ZlRWxlbWVudCA9IGZ1bmN0aW9uKGNhdEluZGV4LCBlbEluZGV4KSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyID0gdGhpcztcclxuICAgIENhdGVnb3J5RmFjdG9yeS5yZW1vdmVFbGVtZW50KHBpblBhZFZpZXdlci5jYXRlZ29yaWVzW2NhdEluZGV4XSwgZWxJbmRleCk7XHJcbiAgICBpZiAocGluUGFkVmlld2VyLmNhdGVnb3JpZXNbY2F0SW5kZXhdLmVsZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIENhdGVnb3J5RmFjdG9yeS5yZW1vdmVDYXRlZ29yeShwaW5QYWRWaWV3ZXIuY2F0ZWdvcmllc1tjYXRJbmRleF0pO1xyXG4gICAgICAgIHBpblBhZFZpZXdlci5jYXRlZ29yaWVzLnNwbGljZShjYXRJbmRleCwgMSk7XHJcbiAgICB9XHJcbn07XHJcblxyXG5QaW5QYWRWaWV3ZXIucHJvdG90eXBlLmRlbGVnYXRlRWxlbWVudFJlbW92YWwgPSBmdW5jdGlvbihlbElkKSB7XHJcbiAgICB2YXIgcGluUGFkVmlld2VyID0gdGhpcztcclxuICAgIHBpblBhZFZpZXdlci5waW5QYWQucmVtb3ZlRWxlbWVudChlbElkKTtcclxufTtcclxuXHJcblBpblBhZFZpZXdlci5wcm90b3R5cGUucmVtb3ZlQ2F0ZWdvcnkgPSBmdW5jdGlvbihjYXRJbmRleCkge1xyXG4gICAgdmFyIHBpblBhZFZpZXdlciA9IHRoaXM7XHJcbiAgICBDYXRlZ29yeUZhY3RvcnkucmVtb3ZlQ2F0ZWdvcnkocGluUGFkVmlld2VyLmNhdGVnb3JpZXNbY2F0SW5kZXhdKTtcclxuICAgIHBpblBhZFZpZXdlci5jYXRlZ29yaWVzLnNwbGljZShjYXRJbmRleCwgMSk7XHJcbn07XHJcblxyXG5QaW5QYWRWaWV3ZXIucHJvdG90eXBlLmRlbGVnYXRlQ2F0ZWdvcnlSZW1vdmFsID0gZnVuY3Rpb24oY2F0VGl0bGUpIHtcclxuICAgIHZhciBwaW5QYWRWaWV3ZXIgPSB0aGlzO1xyXG4gICAgcGluUGFkVmlld2VyLnBpblBhZC5yZW1vdmVDYXRlZ29yeShjYXRUaXRsZSk7XHJcbn07XHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IFBpblBhZFZpZXdlcjsiLCIvKmpzbGludCBub2RlOiB0cnVlICovXHJcbi8qanNoaW50IGxheGJyZWFrOiB0cnVlICovXHJcblwidXNlIHN0cmljdFwiO1xyXG5cclxudmFyIFBpblBhZFZpZXdlciA9IHJlcXVpcmUoJy4vUGluUGFkVmlld2VyJyk7XHJcbnZhciBQaW5QYWRNb2RlbCA9IHJlcXVpcmUoJy4vUGluUGFkTW9kZWwnKTtcclxuXHJcbnZhciBQaW5QYWQgPSBmdW5jdGlvbihvcHRzKSB7XHJcbiAgICB2YXIgcGluUGFkID0gdGhpcztcclxuICAgIHBpblBhZC5tb2RlbCA9IG5ldyBQaW5QYWRNb2RlbChvcHRzLm9yZGVyaW5nKTtcclxuICAgIHBpblBhZC52aWV3ZXIgPSBuZXcgUGluUGFkVmlld2VyKG9wdHMub3B0aW9ucywgb3B0cy50b1BpbiwgcGluUGFkKTtcclxuICAgIHBpblBhZC5kaXNwYXRjaGVyID0gZDMuZGlzcGF0Y2goXCJhZGRcIiwgXCJkdXBsaWNhdGlvblwiLCBcInJlbW92ZVwiLCBcInVua25vd25cIiwgXCJpbmNvbXBsZXRlXCIpO1xyXG5cclxuICAgIHBpblBhZC5hZGRFbGVtZW50ID0gZnVuY3Rpb24oZWxlbWVudCkge1xyXG4gICAgICAgIGlmIChlbGVtZW50LmNhdGVnb3J5ICYmIGVsZW1lbnQuaWQgJiYgZWxlbWVudC5zZWN0aW9ucyAmJiAoZWxlbWVudC5zZWN0aW9ucy5sZW5ndGggIT09IDApKSB7XHJcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBwaW5QYWQubW9kZWwuYWRkRWxlbWVudChlbGVtZW50KTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdC5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIuZHVwbGljYXRpb24oe2VsZW1lbnQ6IGVsZW1lbnR9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHBpblBhZC52aWV3ZXIuYWRkRWxlbWVudChlbGVtZW50LCByZXN1bHQuY2F0SW5kZXgsIHJlc3VsdC5lbEluZGV4LFxyXG4gICAgICAgICAgICAgICAgICAgIHBpblBhZC5tb2RlbC5jYXRlZ29yaWVzW3Jlc3VsdC5jYXRJbmRleF0uZWxlbWVudHMpO1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIuYWRkKHtcclxuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogZWxlbWVudC5jYXRlZ29yeSxcclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBlbGVtZW50XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLmluY29tcGxldGUoe2VsZW1lbnQ6IGVsZW1lbnR9KTtcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHBpblBhZC5yZW1vdmVFbGVtZW50ID0gZnVuY3Rpb24oZWxJZCkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBwaW5QYWQubW9kZWwucmVtb3ZlRWxlbWVudChlbElkKTtcclxuICAgICAgICBpZiAocmVzdWx0LmVycm9yKSB7XHJcbiAgICAgICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLnVua25vd24oe2VsZW1lbnQ6IGVsSWR9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwaW5QYWQudmlld2VyLnJlbW92ZUVsZW1lbnQocmVzdWx0LmNhdEluZGV4LCByZXN1bHQuZWxJbmRleCk7XHJcbiAgICAgICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLnJlbW92ZSh7ZWxlbWVudDogcmVzdWx0LmVsZW1lbnR9KTtcclxuICAgICAgICAgICAgaWYgKChwaW5QYWQubW9kZWwuY2F0ZWdvcmllcy5sZW5ndGggPT09IDApIHx8IChwaW5QYWQubW9kZWwuY2F0ZWdvcmllcy5sZW5ndGggPT09IHJlc3VsdC5jYXRJbmRleCkpIHtcclxuICAgICAgICAgICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLnJlbW92ZSh7Y2F0ZWdvcnk6IHJlc3VsdC5jYXRlZ29yeX0pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBpblBhZC5tb2RlbC5jYXRlZ29yaWVzW3Jlc3VsdC5jYXRJbmRleF0udGl0bGUgIT09IHJlc3VsdC5jYXRlZ29yeSkge1xyXG4gICAgICAgICAgICAgICAgcGluUGFkLmRpc3BhdGNoZXIucmVtb3ZlKHtjYXRlZ29yeTogcmVzdWx0LmNhdGVnb3J5fSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHBpblBhZC5yZW1vdmVDYXRlZ29yeSA9IGZ1bmN0aW9uKGNhdFRpdGxlKSB7XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IHBpblBhZC5tb2RlbC5yZW1vdmVDYXRlZ29yeShjYXRUaXRsZSk7XHJcbiAgICAgICAgcGluUGFkLnZpZXdlci5yZW1vdmVDYXRlZ29yeShyZXN1bHQuY2F0SW5kZXgpO1xyXG4gICAgICAgIHBpblBhZC5kaXNwYXRjaGVyLnJlbW92ZSh7Y2F0ZWdvcnk6IGNhdFRpdGxlfSk7XHJcbiAgICB9O1xyXG59O1xyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBQaW5QYWQ7Il19

@@ -8,8 +8,7 @@ � �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=%

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�قgSs�����KDv ��2z;���T��{Y��c��A�ٌ+lgP, ����mP�{�
c/��,�T�
*����V��?���#�����@��[G�Ylo�ӟ$NHX;N��ߍ��{��u� ����
�V 5fW�`Eˏ\�6;��v�A�*rt�ƒ�V�I�i�Z��F�[��+4�z��6����N7WE&�����D���]V ��M\ *�&.@C>�`�
r��ug/��e��� >|y)���_Qio(�5<�*�=�� [&���(Y��jV��}K�9�=�|~P�Do�d�f'@jQq ��|�Lm��Ε>=C���mS��L��aA_��uR�#�����p̚�q-�����ŧ�<,>1�Շ>�������̤��:0�FHO ��i�h��]e42� �� �"���q\�6>,����
�L�L��{.��fO��܊���◾�|ki��]��=�qKf!u0�Ǒ��v��T[� W�,���Sl����`_��y�?��F^��5���֡q���e��e��H� �2�����t~� �?;�o�Ȋ�|�I�nBҀ���A �e�ѡb#���������h���FfW{H7>4����e� C;�Z v8��{F��9�g�cz�R=��v�fC���R{8�W������W>��nF�kT�6N ��|�m�.��\λ�r̪��n?��֝�!B0Nm�
s��{��%˷�l���0=�%��T�;&
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��vu J�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�&

@@ -1,1 +0,1 @@

require=function e(t,n,r){function o(i,p){if(!n[i]){if(!t[i]){var l="function"==typeof require&&require;if(!p&&l)return l(i,!0);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var d=n[i]={exports:{}};t[i][0].call(d.exports,function(e){var n=t[i][1][e];return o(n?n:e)},d,d.exports,e,t,n,r)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(e,t,n){"use strict";var r=(e("d3"),e("underscore")),o=e("./ElementFactory"),a=function(e,t){var n=this;n.pinPadViewer=e,n.title=t,n.open=!0,n.elements=[];var a=n.pinPadViewer.padContainer.append("div").classed("up_pp_category-container",!0);n.header=a.append("div").classed("up_pp_category-header",!0),n.header.title=n.header.append("a").attr("class","up_pp_category-name up_pftv_arrow-down").text(t).on("click",function(){n.toggle()}),n.header.append("span").classed("up_pp_iconContainer",!0).style("float","right").append("div").attr("class","up-pp-icon-trash up_pp_clickable-icon").on("click",function(){n.delegateCategoryRemoval(n.title)}),n.padContainer=a.append("div").classed("up_pp_category-pad",!0),n.remove=function(){for(;n.elements.length>0;)n.elements[0].remove(n.elements[0].id,n.title,!1),n.elements.splice(0,1);a.remove()},n.toggle=function(){"none"===n.padContainer.style("display")?(n.padContainer.style("display","block"),n.header.title.attr("class","up_pp_category-name up_pftv_arrow-down"),n.open=!0):(n.padContainer.style("display","none"),n.header.title.attr("class","up_pp_category-name up_pftv_arrow-right"),n.open=!1)},n.addElement=function(e,t,a){var i=void 0;return t>n.elements.length?(i=o.createElement(n,e),n.elements.push(i)):(n.padContainer.selectAll("*").remove(),r.each(a,function(e,r){var a=r===t?void 0:n.elements[r].open,p=o.createElement(n,e,a);r===t&&(i=p,n.elements.splice(t,0,i))})),i},n.removeElement=function(e){var t=n.elements[e];n.elements.splice(e,1),o.removeElement(t)},n.delegateElementRemoval=function(e){n.pinPadViewer.delegateElementRemoval(e)},n.delegateCategoryRemoval=function(e){n.pinPadViewer.delegateCategoryRemoval(e)}},i=function(){return{createCategory:function(e,t){return new a(e,t)},removeCategory:function(e){e.remove()},createElement:function(e,t,n,r){return e.addElement(t,n,r)},removeElement:function(e,t){e.removeElement(t)}}}();t.exports=i},{"./ElementFactory":3,d3:"d3",underscore:"underscore"}],2:[function(e,t,n){"use strict";var r=e("underscore"),o=function(e,t){var n=this;n.title=e,n.ordering=t,n.elements=[],n.addElement=function(e){var o=0;if(n.ordering&&e.ordering){var a=r.pluck(n.elements,"ordering");r.each(t,function(t){var n=r.sortedIndex(a,e.ordering,t);o+=n,a=r.rest(a,n)})}else o=n.elements.length;return n.elements.splice(o,0,e),o},n.removeElement=function(e){return e>=0&&e<n.elements.length?(n.elements.splice(e,1),e):-1}};t.exports=o},{underscore:"underscore"}],3:[function(e,t,n){"use strict";var r=e("d3"),o=e("underscore"),a=function(e){if("object"==typeof e&&!(e instanceof Array)){var t=o.keys(e);if(2===t.length&&o.contains(t,"value")&&o.contains(t,"link"))return!0}return!1},i=function(e,t,n){n&&"-"!==n?e.append("a").attr("href",n).attr("target","_blank").text(t):e.text(t)},p=function(e,t){"string"==typeof t||"number"==typeof t||"boolean"==typeof t?e.text(t):a(t)?i(e,t.value,t.link):t instanceof Array?o.each(t,function(n,r){var o=e.append("span");p(o,n),r!==t.length-1&&e.append("span").text(", ")}):c(e.append("table"),t)},l=function(e,t,n){var r=e.append("tr");if(0===t.indexOf("styled_")){var o=r.append("td").text(n.key);n.key_style&&o.attr("style",n.key_style);var a=r.append("td");n.value_style&&a.attr("style",n.value_style),p(a,n.value)}else 0===t.indexOf("subsection_")?(r.append("td").attr("colspan",2).classed("up_pp_table_subsection",!0).text(n.title),c(e,n.information)):(r.append("td").text(t.replace(/_/g," ")),p(r.append("td"),n))},c=function(e,t){o.each(t,function(t,n){l(e,n,t)})},d=function(e,t,n){var r=this;r.id=t.id,r.category=e,r.open=n,r.header=void 0,r.tableContainer=void 0,r.table=void 0,r.toggle=function(){"none"===r.tableContainer.style("display")?(r.tableContainer.style("display","block"),r.header.title.attr("class","up_pp_element-name up_pftv_arrow-down"),r.open=!0):(r.tableContainer.style("display","none"),r.header.title.attr("class","up_pp_element-name up_pftv_arrow-right"),r.open=!1)};var a=r.category.padContainer.append("div").attr("id","pinned_elem_id_"+t.id);r.first(r.category.title,a,o.first(t.sections)),r.tail(r.table,o.tail(t.sections))};d.prototype.first=function(e,t,n){var r=this;r.header=t.append("div").classed("up_pp_element-header",!0),r.header.title=r.header.append("a").attr("class",function(){return r.open===!1?"up_pp_element-name up_pftv_arrow-right":"up_pp_element-name up_pftv_arrow-down"}).text(n.title).on("click",function(){r.toggle()}),r.header.append("span").classed("up_pp_iconContainer",!0).style("float","right").append("div").attr("class","up-pp-icon-trash up_pp_clickable-icon").on("click",function(){r.category.delegateElementRemoval(r.id)}),r.tableContainer=t.append("div"),r.open===!1&&r.tableContainer.style("display","none"),r.table=r.tableContainer.append("table").attr("width","100%"),c(r.table,n.information)},d.prototype.tail=function(e,t){o.each(t,function(t){e.append("tr").classed("up_pp_element-section",!0).append("td").attr("colspan",2).text(t.title),c(e,t.information)})},d.prototype.remove=function(e){var t=r.select("#pinned_elem_id_"+e);t.remove()};var s=function(){return{createElement:function(e,t,n){return new d(e,t,n)},removeElement:function(e){e.remove(e.id)}}}();t.exports=s},{d3:"d3",underscore:"underscore"}],4:[function(e,t,n){"use strict";var r=e("underscore"),o=e("./CategoryModel"),a=function(e,t,n){return new o(t,n)},i=function(e){var t=this;t.categories=[],t.addElement=function(n){var o,i=-1,p=r.find(t.categories,function(e,t){return e.title===n.category&&(o=e,i=t),r.find(e.elements,function(e){return n.id===e.id})});if(p)return{error:"duplication"};o&&-1!==i||(o=a(t,n.category,e),t.categories.push(o),i=t.categories.length-1);var l=o.addElement(n);return{catIndex:i,elIndex:l}},t.removeElement=function(e){var n=-1,o=-1;if(r.find(t.categories,function(t,a){var i=r.find(t.elements,function(t,n){return o=n,t.id===e});return i&&(n=a),-1!==n}),-1!==n&&-1!==o){var a=t.categories[n].title,i=t.categories[n].elements[o];return t.categories[n].removeElement(o),0===t.categories[n].elements.length&&t.categories.splice(n,1),{catIndex:n,elIndex:o,category:a,element:i}}return{error:"unknown"}},t.removeCategory=function(e){var n=-1,o=r.find(t.categories,function(t,r){return n=r,t.title===e});return o&&t.categories.splice(n,1),{catIndex:n}}};t.exports=i},{"./CategoryModel":2,underscore:"underscore"}],5:[function(e,t,n){"use strict";var r=e("d3"),o=e("underscore"),a=e("./CategoryFactory"),i={width:"250px",height:"500px",highlightColor:"green"},p=function(e,t){var n=r.select(e.options.el).text("").append("div").classed("up_pp_main-container",!0).style("width",e.options.width),o=n.append("div").classed("up_pp_mainTitle",!0);o.append("div").classed("up_pp_iconContainer",!0).append("div").classed("up-pp-icon-pin",!0).classed("up_pp_icon",!0),e.offsetTop=o.node().offsetHeight+o.node().offsetTop,e.padContainer=n.append("div").classed("up_pp_pad",!0).style("height",e.options.height),e.options.toPin&&e.addElement(t)},l=function(e,t,n){var r=this;r.options=o.extend({},i,e),r.pinPad=n,r.offsetTop=void 0,r.categories=[],p(r,t)},c=function(e,t){return a.createCategory(e,t)};l.prototype.addElement=function(e,t,n,i){var p,l=this;t>=l.categories.length?(l.categories.push(c(l,e.category)),p=o.last(l.categories)):p=l.categories[t],p.open||p.toggle();var d=a.createElement(p,e,n,i),s=d.header.node().offsetTop;l.padContainer.node().scrollTop=s-l.offsetTop;var u=d.header.style("background-color");return d.header.transition().duration(1500).styleTween("background-color",function(){return r.interpolate(l.options.highlightColor,u)}),d},l.prototype.removeElement=function(e,t){var n=this;a.removeElement(n.categories[e],t),0===n.categories[e].elements.length&&(a.removeCategory(n.categories[e]),n.categories.splice(e,1))},l.prototype.delegateElementRemoval=function(e){var t=this;t.pinPad.removeElement(e)},l.prototype.removeCategory=function(e){var t=this;a.removeCategory(t.categories[e]),t.categories.splice(e,1)},l.prototype.delegateCategoryRemoval=function(e){var t=this;t.pinPad.removeCategory(e)},t.exports=l},{"./CategoryFactory":1,d3:"d3",underscore:"underscore"}],"biojs-vis-pinpad":[function(e,t,n){"use strict";var r=e("./PinPadViewer"),o=e("./PinPadModel"),a=function(e){var t=this;t.model=new o(e.ordering),t.viewer=new r(e.options,e.toPin,t),t.dispatcher=d3.dispatch("add","duplication","remove","unknown","incomplete"),t.addElement=function(e){if(e.category&&e.id&&e.sections&&0!==e.sections.length){var n=t.model.addElement(e);n.error?t.dispatcher.duplication({element:e}):(t.viewer.addElement(e,n.catIndex,n.elIndex,t.model.categories[n.catIndex].elements),t.dispatcher.add({category:e.category,element:e}))}else t.dispatcher.incomplete({element:e})},t.removeElement=function(e){var n=t.model.removeElement(e);n.error?t.dispatcher.unknown({element:e}):(t.viewer.removeElement(n.catIndex,n.elIndex),t.dispatcher.remove({element:n.element}),0===t.model.categories.length||t.model.categories.length===n.catIndex?t.dispatcher.remove({category:n.category}):t.model.categories[n.catIndex].title!==n.category&&t.dispatcher.remove({category:n.category}))},t.removeCategory=function(e){var n=t.model.removeCategory(e);t.viewer.removeCategory(n.catIndex),t.dispatcher.remove({category:e})}};t.exports=a},{"./PinPadModel":4,"./PinPadViewer":5}]},{},["biojs-vis-pinpad"]);
require=function e(t,n,r){function o(i,p){if(!n[i]){if(!t[i]){var l="function"==typeof require&&require;if(!p&&l)return l(i,!0);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var d=n[i]={exports:{}};t[i][0].call(d.exports,function(e){var n=t[i][1][e];return o(n?n:e)},d,d.exports,e,t,n,r)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(e,t,n){"use strict";var r=(e("d3"),e("underscore")),o=e("./ElementFactory"),a=function(e,t){var n=this;n.pinPadViewer=e,n.title=t,n.open=!0,n.elements=[];var a=n.pinPadViewer.padContainer.append("div").classed("up_pp_category-container",!0);n.header=a.append("div").classed("up_pp_category-header",!0),n.header.title=n.header.append("a").attr("class","up_pp_category-name up_pftv_arrow-down").text(t).on("click",function(){n.toggle()}),n.header.append("span").classed("up_pp_iconContainer",!0).style("float","right").append("div").attr("class","up-pp-icon-trash up_pp_clickable-icon").on("click",function(){n.delegateCategoryRemoval(n.title)}),n.padContainer=a.append("div").classed("up_pp_category-pad",!0),n.remove=function(){for(;n.elements.length>0;)n.elements[0].remove(n.elements[0].id,n.title,!1),n.elements.splice(0,1);a.remove()},n.toggle=function(){"none"===n.padContainer.style("display")?(n.padContainer.style("display","block"),n.header.title.attr("class","up_pp_category-name up_pftv_arrow-down"),n.open=!0):(n.padContainer.style("display","none"),n.header.title.attr("class","up_pp_category-name up_pftv_arrow-right"),n.open=!1)},n.addElement=function(e,t,a){var i=void 0;return t>n.elements.length?(i=o.createElement(n,e),n.elements.push(i)):(n.padContainer.selectAll("*").remove(),r.each(a,function(e,r){var a=r===t?void 0:n.elements[r].open,p=o.createElement(n,e,a);r===t&&(i=p,n.elements.splice(t,0,i))})),i},n.removeElement=function(e){var t=n.elements[e];n.elements.splice(e,1),o.removeElement(t)},n.delegateElementRemoval=function(e){n.pinPadViewer.delegateElementRemoval(e)},n.delegateCategoryRemoval=function(e){n.pinPadViewer.delegateCategoryRemoval(e)}},i=function(){return{createCategory:function(e,t){return new a(e,t)},removeCategory:function(e){e.remove()},createElement:function(e,t,n,r){return e.addElement(t,n,r)},removeElement:function(e,t){e.removeElement(t)}}}();t.exports=i},{"./ElementFactory":3,d3:"d3",underscore:"underscore"}],2:[function(e,t,n){"use strict";var r=e("underscore"),o=function(e,t){var n=this;n.title=e,n.ordering=t,n.elements=[],n.addElement=function(e){var o=0;if(n.ordering&&e.ordering){var a=r.pluck(n.elements,"ordering");r.each(t,function(t){var n=r.sortedIndex(a,e.ordering,t);o+=n,a=r.rest(a,n)})}else o=n.elements.length;return n.elements.splice(o,0,e),o},n.removeElement=function(e){return e>=0&&e<n.elements.length?(n.elements.splice(e,1),e):-1}};t.exports=o},{underscore:"underscore"}],3:[function(e,t,n){"use strict";var r=e("d3"),o=e("underscore"),a=function(e){if("object"==typeof e&&!(e instanceof Array)){var t=o.keys(e);if(2===t.length&&o.contains(t,"value")&&o.contains(t,"link"))return!0}return!1},i=function(e,t,n){n&&"-"!==n?e.append("a").attr("href",n).attr("target","_blank").text(t):e.text(t)},p=function(e,t){"string"==typeof t||"number"==typeof t||"boolean"==typeof t?e.text(t):a(t)?i(e,t.value,t.link):t instanceof Array?o.each(t,function(n,r){var o=e.append("span");p(o,n),r!==t.length-1&&e.append("span").text(", ")}):c(e.append("table"),t)},l=function(e,t,n){var r=e.append("tr");if(0===t.indexOf("styled_")){var o=r.append("td").text(n.key);n.key_style&&o.attr("style",n.key_style);var a=r.append("td");n.value_style&&a.attr("style",n.value_style),p(a,n.value)}else 0===t.indexOf("subsection_")?(r.append("td").attr("colspan",2).classed("up_pp_table_subsection",!0).text(n.title),c(e,n.information)):(r.append("td").text(t.replace(/_/g," ")),p(r.append("td"),n))},c=function(e,t){o.each(t,function(t,n){l(e,n,t)})},d=function(e,t,n){var r=this;r.id=t.id,r.category=e,r.open=n,r.header=void 0,r.tableContainer=void 0,r.table=void 0,r.toggle=function(){"none"===r.tableContainer.style("display")?(r.tableContainer.style("display","block"),r.header.title.attr("class","up_pp_element-name up_pftv_arrow-down"),r.open=!0):(r.tableContainer.style("display","none"),r.header.title.attr("class","up_pp_element-name up_pftv_arrow-right"),r.open=!1)};var a=r.category.padContainer.append("div").attr("id","pinned_elem_id_"+t.id);r.first(r.category.title,a,o.first(t.sections)),r.tail(r.table,o.tail(t.sections))};d.prototype.first=function(e,t,n){var r=this;r.header=t.append("div").classed("up_pp_element-header",!0),r.header.title=r.header.append("a").attr("class",function(){return r.open===!1?"up_pp_element-name up_pftv_arrow-right":"up_pp_element-name up_pftv_arrow-down"}).text(n.title).on("click",function(){r.toggle()}),r.header.append("span").classed("up_pp_iconContainer",!0).style("float","right").append("div").attr("class","up-pp-icon-trash up_pp_clickable-icon").on("click",function(){r.category.delegateElementRemoval(r.id)}),r.tableContainer=t.append("div"),r.open===!1&&r.tableContainer.style("display","none"),r.table=r.tableContainer.append("table").attr("width","100%"),c(r.table,n.information)},d.prototype.tail=function(e,t){o.each(t,function(t){e.append("tr").classed("up_pp_element-section",!0).append("td").attr("colspan",2).text(t.title),c(e,t.information)})},d.prototype.remove=function(e){var t=r.select("#pinned_elem_id_"+e);t.remove()};var s=function(){return{createElement:function(e,t,n){return new d(e,t,n)},removeElement:function(e){e.remove(e.id)}}}();t.exports=s},{d3:"d3",underscore:"underscore"}],4:[function(e,t,n){"use strict";var r=e("underscore"),o=e("./CategoryModel"),a=function(e,t,n){return new o(t,n)},i=function(e){var t=this;t.categories=[],t.addElement=function(n){var o,i=-1,p=r.find(t.categories,function(e,t){return e.title===n.category&&(o=e,i=t),r.find(e.elements,function(e){return n.id===e.id})});if(p)return{error:"duplication"};o&&-1!==i||(o=a(t,n.category,e),t.categories.push(o),i=t.categories.length-1);var l=o.addElement(n);return{catIndex:i,elIndex:l}},t.removeElement=function(e){var n=-1,o=-1;if(r.find(t.categories,function(t,a){var i=r.find(t.elements,function(t,n){return o=n,t.id===e});return i&&(n=a),-1!==n}),-1!==n&&-1!==o){var a=t.categories[n].title,i=t.categories[n].elements[o];return t.categories[n].removeElement(o),0===t.categories[n].elements.length&&t.categories.splice(n,1),{catIndex:n,elIndex:o,category:a,element:i}}return{error:"unknown"}},t.removeCategory=function(e){var n=-1,o=r.find(t.categories,function(t,r){return n=r,t.title===e});return o&&t.categories.splice(n,1),{catIndex:n}}};t.exports=i},{"./CategoryModel":2,underscore:"underscore"}],5:[function(e,t,n){"use strict";var r=e("d3"),o=e("underscore"),a=e("./CategoryFactory"),i={height:"500px",width:"250px",highlightColor:"green"},p=function(e,t){var n=r.select(e.options.el).text("").append("div").classed("up_pp_main-container",!0).style("width",e.options.width),o=n.append("div").classed("up_pp_mainTitle",!0);o.append("div").classed("up_pp_iconContainer",!0).append("div").classed("up-pp-icon-pin",!0).classed("up_pp_icon",!0),e.offsetTop=o.node().offsetHeight+o.node().offsetTop,e.padContainer=n.append("div").classed("up_pp_pad",!0).style("height",e.options.height),e.options.toPin&&e.addElement(t)},l=function(e,t,n){var r=this;r.options=o.extend({},i,e),r.pinPad=n,r.offsetTop=void 0,r.categories=[],p(r,t)},c=function(e,t){return a.createCategory(e,t)};l.prototype.addElement=function(e,t,n,i){var p,l=this;t>=l.categories.length?(l.categories.push(c(l,e.category)),p=o.last(l.categories)):p=l.categories[t],p.open||p.toggle();var d=a.createElement(p,e,n,i),s=d.header.node().offsetTop;l.padContainer.node().scrollTop=s-l.offsetTop;var u=d.header.style("background-color");return d.header.transition().duration(1500).styleTween("background-color",function(){return r.interpolate(l.options.highlightColor,u)}),d},l.prototype.removeElement=function(e,t){var n=this;a.removeElement(n.categories[e],t),0===n.categories[e].elements.length&&(a.removeCategory(n.categories[e]),n.categories.splice(e,1))},l.prototype.delegateElementRemoval=function(e){var t=this;t.pinPad.removeElement(e)},l.prototype.removeCategory=function(e){var t=this;a.removeCategory(t.categories[e]),t.categories.splice(e,1)},l.prototype.delegateCategoryRemoval=function(e){var t=this;t.pinPad.removeCategory(e)},t.exports=l},{"./CategoryFactory":1,d3:"d3",underscore:"underscore"}],"biojs-vis-pinpad":[function(e,t,n){"use strict";var r=e("./PinPadViewer"),o=e("./PinPadModel"),a=function(e){var t=this;t.model=new o(e.ordering),t.viewer=new r(e.options,e.toPin,t),t.dispatcher=d3.dispatch("add","duplication","remove","unknown","incomplete"),t.addElement=function(e){if(e.category&&e.id&&e.sections&&0!==e.sections.length){var n=t.model.addElement(e);n.error?t.dispatcher.duplication({element:e}):(t.viewer.addElement(e,n.catIndex,n.elIndex,t.model.categories[n.catIndex].elements),t.dispatcher.add({category:e.category,element:e}))}else t.dispatcher.incomplete({element:e})},t.removeElement=function(e){var n=t.model.removeElement(e);n.error?t.dispatcher.unknown({element:e}):(t.viewer.removeElement(n.catIndex,n.elIndex),t.dispatcher.remove({element:n.element}),0===t.model.categories.length||t.model.categories.length===n.catIndex?t.dispatcher.remove({category:n.category}):t.model.categories[n.catIndex].title!==n.category&&t.dispatcher.remove({category:n.category}))},t.removeCategory=function(e){var n=t.model.removeCategory(e);t.viewer.removeCategory(n.catIndex),t.dispatcher.remove({category:e})}};t.exports=a},{"./PinPadModel":4,"./PinPadViewer":5}]},{},["biojs-vis-pinpad"]);
{
"name": "biojs-vis-pinpad",
"description": "A component to pin tootlip-like information",
"version": "0.1.3",
"version": "0.1.4",
"homepage": "https://github.com/ebi-uniprot/biojs-vis-pinpad",

@@ -6,0 +6,0 @@ "author": {

@@ -52,4 +52,2 @@ /*

assert.equal(model.categories[0].elements.length, 2, 'two elements in model');
console.log(model.categories[0].elements[0].id);
console.log(model.categories[0].elements[1].id);
assert.equal(model.categories[0].elements[1].id, data.addCat1Elem2.id, 'second element id in model');

@@ -56,0 +54,0 @@ assert.equal(model.categories[0].elements[1].sections, data.addCat1Elem2.sections, 'element sections');

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc