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

react-menu-list

Package Overview
Dependencies
Maintainers
1
Versions
50
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-menu-list - npm Package Compare versions

Comparing version 3.4.0 to 3.5.0

2

js/Dropdown.js

@@ -68,2 +68,2 @@ 'use strict';

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Ecm9wZG93bi5qcyJdLCJuYW1lcyI6WyJEcm9wZG93biIsImJhY2tncm91bmQiLCJib3JkZXIiLCJib3hTaGFkb3ciLCJwYWRkaW5nIiwicHJvcHMiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsIm5vZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFDQTs7Ozs7O0lBRXFCQSxROzs7Ozs7Ozs7OzZCQUtWO0FBQ1AsYUFDRTtBQUFBO0FBQUEsVUFBSyxPQUFPO0FBQ1ZDLHdCQUFZLE9BREY7QUFFVkMsb0JBQVEsMEJBRkU7QUFHVkMsdUJBQVcsMkJBSEQ7QUFJVkMscUJBQVM7QUFKQyxXQUFaO0FBTUcsYUFBS0MsS0FBTCxDQUFXQztBQU5kLE9BREY7QUFVRDs7O0VBaEJtQyxnQkFBTUMsUzs7QUFBdkJQLFEsQ0FDWlEsUyxHQUFZO0FBQ2pCRixZQUFVLG9CQUFVRztBQURILEM7a0JBREFULFEiLCJmaWxlIjoiRHJvcGRvd24uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJvcGRvd24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxuICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgwLDAsMCwuMiknLFxuICAgICAgICBib3hTaGFkb3c6ICcwIDJweCA0cHggcmdiYSgwLDAsMCwwLjIpJyxcbiAgICAgICAgcGFkZGluZzogJzZweCAwJ1xuICAgICAgfX0+XG4gICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9Ecm9wZG93bi5qcyJdLCJuYW1lcyI6WyJEcm9wZG93biIsImJhY2tncm91bmQiLCJib3JkZXIiLCJib3hTaGFkb3ciLCJwYWRkaW5nIiwicHJvcHMiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsIm5vZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFFQTs7Ozs7O0lBTXFCQSxROzs7Ozs7Ozs7OzZCQUtWO0FBQ1AsYUFDRTtBQUFBO0FBQUEsVUFBSyxPQUFPO0FBQ1ZDLHdCQUFZLE9BREY7QUFFVkMsb0JBQVEsMEJBRkU7QUFHVkMsdUJBQVcsMkJBSEQ7QUFJVkMscUJBQVM7QUFKQyxXQUFaO0FBTUcsYUFBS0MsS0FBTCxDQUFXQztBQU5kLE9BREY7QUFVRDs7O0VBaEJtQyxnQkFBTUMsUzs7QUFBdkJQLFEsQ0FDWlEsUyxHQUFZO0FBQ2pCRixZQUFVLG9CQUFVRztBQURILEM7a0JBREFULFEiLCJmaWxlIjoiRHJvcGRvd24uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge05vZGUgYXMgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG50eXBlIFByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyb3Bkb3duIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFByb3BzPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgIGJhY2tncm91bmQ6ICd3aGl0ZScsXG4gICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDAsMCwwLC4yKScsXG4gICAgICAgIGJveFNoYWRvdzogJzAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMiknLFxuICAgICAgICBwYWRkaW5nOiAnNnB4IDAnXG4gICAgICB9fT5cbiAgICAgICAge3RoaXMucHJvcHMuY2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG4iXX0=

@@ -67,2 +67,4 @@ 'use strict';

/* eslint-disable react/no-find-dom-node */
var MenuButton = function (_React$Component) {

@@ -158,3 +160,3 @@ (0, _inherits3.default)(MenuButton, _React$Component);

value: function reposition() {
this.refs.floatAnchor.reposition();
this._floatAnchor.reposition();
}

@@ -199,3 +201,5 @@ }, {

return _react2.default.createElement(_reactFloatAnchor2.default, {
ref: 'floatAnchor',
ref: function ref(el) {
if (el) _this3._floatAnchor = el;
},
options: positionOptions,

@@ -262,2 +266,2 @@ zIndex: menuZIndex,

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51QnV0dG9uLmpzIl0sIm5hbWVzIjpbIk1lbnVCdXR0b24iLCJzdGF0ZSIsIm9wZW5lZCIsIl9vbkNsb3NlIiwiY2FsbGJhY2siLCJwcm9wcyIsIm9uV2lsbE9wZW4iLCJzZXRTdGF0ZSIsIm9uRGlkT3BlbiIsIm1lcmdlIiwid2luZG93IiwiZmlsdGVyIiwiZWwiLCJwYXJlbnROb2RlcyIsImUiLCJ0YXJnZXQiLCJub2RlIiwiZnJvbUV2ZW50cyIsImtleSIsIndoaWNoIiwibWFwIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJ0YWtlVW50aWxCeSIsIm9uVmFsdWUiLCJjbG9zZSIsIm9uV2lsbENsb3NlIiwiZW1pdCIsIm9wZW4iLCJyZWZzIiwiZmxvYXRBbmNob3IiLCJyZXBvc2l0aW9uIiwiY2hpbGRyZW4iLCJtZW51IiwicG9zaXRpb25PcHRpb25zIiwibWVudVpJbmRleCIsImRpc2FibGVkIiwidGl0bGUiLCJCdXR0b25Db21wb25lbnQiLCJzdHlsZSIsImNsYXNzTmFtZSIsIm9wZW5lZFN0eWxlIiwib3BlbmVkQ2xhc3NOYW1lIiwiYnV0dG9uIiwidG9nZ2xlIiwiX2l0ZW1DaG9zZW4iLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJzdHJpbmciLCJvYmplY3QiLCJib29sIiwib25lT2ZUeXBlIiwibnVtYmVyIiwiZnVuYyIsImVsZW1lbnQiLCJkZWZhdWx0UHJvcHMiLCJwb3NpdGlvbiIsImhBbGlnbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7SUFNcUJBLFU7Ozs7Ozs7Ozs7Ozs7O29OQXlCbkJDLEssR0FBZTtBQUNiQyxjQUFRO0FBREssSyxRQUlmQyxRLEdBQXNCLHlCOzs7Ozt5QkFFakJDLFEsRUFBc0I7QUFBQTs7QUFDekIsVUFBSSxLQUFLSCxL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ZUFBYSxvQkFBVVEsTUFOTjs7QUFRakJmLG1CQUFpQixvQkFBVWUsTUFSVjtBQVNqQmQsY0FBWSxvQkFBVWdCLFNBQVYsQ0FBb0IsQ0FBQyxvQkFBVUgsTUFBWCxFQUFtQixvQkFBVUksTUFBN0IsQ0FBcEIsQ0FUSztBQVVqQmQsbUJBQWlCLG9CQUFVYSxTQUFWLENBQW9CLENBQUMsb0JBQVVILE1BQVgsRUFBbUIsb0JBQVVLLElBQTdCLENBQXBCLENBVkE7O0FBWWpCckIsWUFBVSxvQkFBVWhCLElBWkg7QUFhakJpQixRQUFNLG9CQUFVcUIsT0FiQztBQWNqQmhELGNBQVksb0JBQVUrQyxJQWRMO0FBZWpCN0MsYUFBVyxvQkFBVTZDLElBZko7QUFnQmpCM0IsZUFBYSxvQkFBVTJCO0FBaEJOLEM7QUFEQXJELFUsQ0FvQlp1RCxZLEdBQWU7QUFDcEJyQixtQkFBaUIsRUFBQ3NCLFVBQVMsUUFBVixFQUFvQkMsUUFBTyxNQUEzQixFQURHO0FBRXBCbkIsbUJBQWlCO0FBRkcsQztrQkFwQkh0QyxVIiwiZmlsZSI6Ik1lbnVCdXR0b24uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtmaW5kRE9NTm9kZX0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgRmxvYXRBbmNob3IgZnJvbSAncmVhY3QtZmxvYXQtYW5jaG9yJztcbmltcG9ydCBLZWZpciBmcm9tICdrZWZpcic7XG5pbXBvcnQga2VmaXJCdXMgZnJvbSAna2VmaXItYnVzJztcbmltcG9ydCB0eXBlIHtCdXN9IGZyb20gJ2tlZmlyLWJ1cyc7XG5pbXBvcnQgZnJvbUV2ZW50c0NhcHR1cmUgZnJvbSAnLi9saWIvZnJvbUV2ZW50c0NhcHR1cmUnO1xuaW1wb3J0IE1lbnVMaXN0SW5zcGVjdG9yIGZyb20gJy4vTWVudUxpc3RJbnNwZWN0b3InO1xuXG50eXBlIFN0YXRlID0ge1xuICBvcGVuZWQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNZW51QnV0dG9uIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIG9wZW5lZENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvcGVuZWRTdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcblxuICAgIHBvc2l0aW9uT3B0aW9uczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBtZW51WkluZGV4OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gICAgQnV0dG9uQ29tcG9uZW50OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuZnVuY10pLFxuXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuICAgIG1lbnU6IFByb3BUeXBlcy5lbGVtZW50LFxuICAgIG9uV2lsbE9wZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRGlkT3BlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25XaWxsQ2xvc2U6IFByb3BUeXBlcy5mdW5jXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBwb3NpdGlvbk9wdGlvbnM6IHtwb3NpdGlvbjonYm90dG9tJywgaEFsaWduOidsZWZ0J30sXG4gICAgQnV0dG9uQ29tcG9uZW50OiAnYnV0dG9uJ1xuICB9O1xuXG4gIHN0YXRlOiBTdGF0ZSA9IHtcbiAgICBvcGVuZWQ6IGZhbHNlXG4gIH07XG5cbiAgX29uQ2xvc2U6IEJ1czx2b2lkPiA9IGtlZmlyQnVzKCk7XG5cbiAgb3BlbihjYWxsYmFjaz86ICgpID0+IGFueSkge1xuICAgIGlmICh0aGlzLnN0YXRlLm9wZW5lZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnByb3BzLm9uV2lsbE9wZW4pIHRoaXMucHJvcHMub25XaWxsT3BlbigpO1xuICAgIHRoaXMuc2V0U3RhdGUoe29wZW5lZDogdHJ1ZX0sICgpID0+IHtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uRGlkT3BlbikgdGhpcy5wcm9wcy5vbkRpZE9wZW4oKTtcbiAgICAgIGlmIChjYWxsYmFjaykgY2FsbGJhY2soKTtcbiAgICB9KTtcblxuICAgIC8vIENsaWNraW5nIG91dHNpZGUgb2YgdGhlIGRyb3Bkb3duIG9yIHByZXNzaW5nIGVzY2FwZSBzaG91bGQgY2xvc2UgdGhlXG4gICAgLy8gZHJvcGRvd24uXG4gICAgS2VmaXIubWVyZ2UoW1xuICAgICAgS2VmaXIubWVyZ2UoW1xuICAgICAgICBmcm9tRXZlbnRzQ2FwdHVyZSh3aW5kb3csICdjbGljaycpLFxuICAgICAgICBmcm9tRXZlbnRzQ2FwdHVyZSh3aW5kb3csICdmb2N1cycpXG4gICAgICBdKVxuICAgICAgICAuZmlsdGVyKGUgPT4ge1xuICAgICAgICAgIGNvbnN0IGVsID0gZmluZERPTU5vZGUodGhpcyk7XG4gICAgICAgICAgZm9yIChsZXQgbm9kZSBvZiBGbG9hdEFuY2hvci5wYXJlbnROb2RlcyhlLnRhcmdldCkpIHtcbiAgICAgICAgICAgIGlmIChub2RlID09PSBlbCkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSksXG4gICAgICBLZWZpci5mcm9tRXZlbnRzKHdpbmRvdywgJ2tleWRvd24nKVxuICAgICAgICAuZmlsdGVyKGUgPT4gZS5rZXkgPyBlLmtleSA9PT0gJ0VzY2FwZScgOiBlLndoaWNoID09PSAyNylcbiAgICAgICAgLm1hcChlID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSlcbiAgICBdKVxuICAgICAgLnRha2VVbnRpbEJ5KHRoaXMuX29uQ2xvc2UpXG4gICAgICAub25WYWx1ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLm9wZW5lZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnByb3BzLm9uV2lsbENsb3NlKSB0aGlzLnByb3BzLm9uV2lsbENsb3NlKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7b3BlbmVkOiBmYWxzZX0pO1xuICAgIHRoaXMuX29uQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLnN0YXRlLm9wZW5lZCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICByZXBvc2l0aW9uKCkge1xuICAgIHRoaXMucmVmcy5mbG9hdEFuY2hvci5yZXBvc2l0aW9uKCk7XG4gIH1cblxuICBfaXRlbUNob3NlbigpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl9vbkNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjaGlsZHJlbiwgbWVudSxcbiAgICAgIHBvc2l0aW9uT3B0aW9ucywgbWVudVpJbmRleCxcbiAgICAgIGRpc2FibGVkLCB0aXRsZSwgQnV0dG9uQ29tcG9uZW50XG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge29wZW5lZH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbGV0IHN0eWxlID0gdGhpcy5wcm9wcy5zdHlsZTtcbiAgICBsZXQgY2xhc3NOYW1lID0gdGhpcy5wcm9wcy5jbGFzc05hbWU7XG4gICAgaWYgKG9wZW5lZCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMub3BlbmVkU3R5bGUpIHtcbiAgICAgICAgc3R5bGUgPSB7Li4uc3R5bGUsIC4uLnRoaXMucHJvcHMub3BlbmVkU3R5bGV9O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMub3BlbmVkQ2xhc3NOYW1lKSB7XG4gICAgICAgIGNsYXNzTmFtZSA9IGAke2NsYXNzTmFtZXx8Jyd9ICR7dGhpcy5wcm9wcy5vcGVuZWRDbGFzc05hbWV9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZsb2F0QW5jaG9yXG4gICAgICAgIHJlZj1cImZsb2F0QW5jaG9yXCJcbiAgICAgICAgb3B0aW9ucz17cG9zaXRpb25PcHRpb25zfVxuICAgICAgICB6SW5kZXg9e21lbnVaSW5kZXh9XG4gICAgICAgIGFuY2hvcj17XG4gICAgICAgICAgPEJ1dHRvbkNvbXBvbmVudFxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXtlID0+IHtcbiAgICAgICAgICAgICAgaWYgKGUuYnV0dG9uICE9PSAwKSByZXR1cm47XG4gICAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25LZXlQcmVzcz17ZT0+e1xuICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXkgPT09ICcgJykge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPXt0cnVlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17b3BlbmVkfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L0J1dHRvbkNvbXBvbmVudD5cbiAgICAgICAgfVxuICAgICAgICBmbG9hdD17XG4gICAgICAgICAgIW9wZW5lZCA/IG51bGwgOlxuICAgICAgICAgICAgPE1lbnVMaXN0SW5zcGVjdG9yIG9uSXRlbUNob3Nlbj17KCkgPT4gdGhpcy5faXRlbUNob3NlbigpfT5cbiAgICAgICAgICAgICAge21lbnV9XG4gICAgICAgICAgICA8L01lbnVMaXN0SW5zcGVjdG9yPlxuICAgICAgICB9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51QnV0dG9uLmpzIl0sIm5hbWVzIjpbIk1lbnVCdXR0b24iLCJzdGF0ZSIsIm9wZW5lZCIsIl9vbkNsb3NlIiwiY2FsbGJhY2siLCJwcm9wcyIsIm9uV2lsbE9wZW4iLCJzZXRTdGF0ZSIsIm9uRGlkT3BlbiIsIm1lcmdlIiwid2luZG93IiwiZmlsdGVyIiwiZWwiLCJwYXJlbnROb2RlcyIsImUiLCJ0YXJnZXQiLCJub2RlIiwiZnJvbUV2ZW50cyIsImtleSIsIndoaWNoIiwibWFwIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJ0YWtlVW50aWxCeSIsIm9uVmFsdWUiLCJjbG9zZSIsIm9uV2lsbENsb3NlIiwiZW1pdCIsIm9wZW4iLCJfZmxvYXRBbmNob3IiLCJyZXBvc2l0aW9uIiwiY2hpbGRyZW4iLCJtZW51IiwicG9zaXRpb25PcHRpb25zIiwibWVudVpJbmRleCIsImRpc2FibGVkIiwidGl0bGUiLCJCdXR0b25Db21wb25lbnQiLCJzdHlsZSIsImNsYXNzTmFtZSIsIm9wZW5lZFN0eWxlIiwib3BlbmVkQ2xhc3NOYW1lIiwiYnV0dG9uIiwidG9nZ2xlIiwiX2l0ZW1DaG9zZW4iLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJzdHJpbmciLCJvYmplY3QiLCJib29sIiwib25lT2ZUeXBlIiwibnVtYmVyIiwiZnVuYyIsImVsZW1lbnQiLCJkZWZhdWx0UHJvcHMiLCJwb3NpdGlvbiIsImhBbGlnbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOzs7O0FBRUE7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7QUFaQTs7SUFvQ3FCQSxVOzs7Ozs7Ozs7Ozs7OztvTkF5Qm5CQyxLLEdBQWU7QUFDYkMsY0FBUTtBQURLLEssUUFLZkMsUSxHQUFzQix5Qjs7Ozs7eUJBRWpCQyxRLEVBQXNCO0FBQUE7O0FBQ3pCLFVBQUksS0FBS0gs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U0FBTyxvQkFBVVcsTUFKQTtBQUtqQk4sbUJBQWlCLG9CQUFVTSxNQUxWO0FBTWpCUCxlQUFhLG9CQUFVUSxNQU5OOztBQVFqQmYsbUJBQWlCLG9CQUFVZSxNQVJWO0FBU2pCZCxjQUFZLG9CQUFVZ0IsU0FBVixDQUFvQixDQUFDLG9CQUFVSCxNQUFYLEVBQW1CLG9CQUFVSSxNQUE3QixDQUFwQixDQVRLO0FBVWpCZCxtQkFBaUIsb0JBQVVhLFNBQVYsQ0FBb0IsQ0FBQyxvQkFBVUgsTUFBWCxFQUFtQixvQkFBVUssSUFBN0IsQ0FBcEIsQ0FWQTs7QUFZakJyQixZQUFVLG9CQUFVZixJQVpIO0FBYWpCZ0IsUUFBTSxvQkFBVXFCLE9BYkM7QUFjakIvQyxjQUFZLG9CQUFVOEMsSUFkTDtBQWVqQjVDLGFBQVcsb0JBQVU0QyxJQWZKO0FBZ0JqQjFCLGVBQWEsb0JBQVUwQjtBQWhCTixDO0FBREFwRCxVLENBb0Jac0QsWSxHQUFlO0FBQ3BCckIsbUJBQWlCLEVBQUNzQixVQUFTLFFBQVYsRUFBb0JDLFFBQU8sTUFBM0IsRUFERztBQUVwQm5CLG1CQUFpQjtBQUZHLEM7a0JBcEJIckMsVSIsImZpbGUiOiJNZW51QnV0dG9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWZpbmQtZG9tLW5vZGUgKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtOb2RlIGFzIFJlYWN0Tm9kZSwgRWxlbWVudCBhcyBSZWFjdEVsZW1lbnQsIEVsZW1lbnRUeXBlIGFzIFJlYWN0RWxlbWVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7ZmluZERPTU5vZGV9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEZsb2F0QW5jaG9yIGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgdHlwZSB7T3B0aW9ucyBhcyBGbG9hdEFuY2hvck9wdGlvbnN9IGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgS2VmaXIgZnJvbSAna2VmaXInO1xuaW1wb3J0IGtlZmlyQnVzIGZyb20gJ2tlZmlyLWJ1cyc7XG5pbXBvcnQgdHlwZSB7QnVzfSBmcm9tICdrZWZpci1idXMnO1xuaW1wb3J0IGZyb21FdmVudHNDYXB0dXJlIGZyb20gJy4vbGliL2Zyb21FdmVudHNDYXB0dXJlJztcbmltcG9ydCBNZW51TGlzdEluc3BlY3RvciBmcm9tICcuL01lbnVMaXN0SW5zcGVjdG9yJztcblxudHlwZSBTdGF0ZSA9IHtcbiAgb3BlbmVkOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICBjbGFzc05hbWU/OiA/c3RyaW5nO1xuICBzdHlsZT86ID9PYmplY3Q7XG4gIGRpc2FibGVkPzogP2Jvb2xlYW47XG4gIHRpdGxlPzogP3N0cmluZztcbiAgb3BlbmVkQ2xhc3NOYW1lPzogP3N0cmluZztcbiAgb3BlbmVkU3R5bGU/OiA/T2JqZWN0O1xuXG4gIHBvc2l0aW9uT3B0aW9uczogRmxvYXRBbmNob3JPcHRpb25zO1xuICBtZW51WkluZGV4PzogP3N0cmluZ3xudW1iZXI7XG4gIEJ1dHRvbkNvbXBvbmVudDogUmVhY3RFbGVtZW50VHlwZTtcblxuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgbWVudT86ID9SZWFjdEVsZW1lbnQ8YW55PjtcbiAgb25XaWxsT3Blbj86ID8oKSA9PiB2b2lkO1xuICBvbkRpZE9wZW4/OiA/KCkgPT4gdm9pZDtcbiAgb25XaWxsQ2xvc2U/OiA/KCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnVCdXR0b24gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHJvcHMsIFN0YXRlPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvcGVuZWRDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb3BlbmVkU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cbiAgICBwb3NpdGlvbk9wdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbWVudVpJbmRleDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuICAgIEJ1dHRvbkNvbXBvbmVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLmZ1bmNdKSxcblxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgICBtZW51OiBQcm9wVHlwZXMuZWxlbWVudCxcbiAgICBvbldpbGxPcGVuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkRpZE9wZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uV2lsbENsb3NlOiBQcm9wVHlwZXMuZnVuY1xuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgcG9zaXRpb25PcHRpb25zOiB7cG9zaXRpb246J2JvdHRvbScsIGhBbGlnbjonbGVmdCd9LFxuICAgIEJ1dHRvbkNvbXBvbmVudDogJ2J1dHRvbidcbiAgfTtcblxuICBzdGF0ZTogU3RhdGUgPSB7XG4gICAgb3BlbmVkOiBmYWxzZVxuICB9O1xuXG4gIF9mbG9hdEFuY2hvcjogRmxvYXRBbmNob3I7XG4gIF9vbkNsb3NlOiBCdXM8dm9pZD4gPSBrZWZpckJ1cygpO1xuXG4gIG9wZW4oY2FsbGJhY2s/OiAoKSA9PiBhbnkpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5vcGVuZWQpIHJldHVybjtcbiAgICBpZiAodGhpcy5wcm9wcy5vbldpbGxPcGVuKSB0aGlzLnByb3BzLm9uV2lsbE9wZW4oKTtcbiAgICB0aGlzLnNldFN0YXRlKHtvcGVuZWQ6IHRydWV9LCAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5vbkRpZE9wZW4pIHRoaXMucHJvcHMub25EaWRPcGVuKCk7XG4gICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7XG4gICAgfSk7XG5cbiAgICAvLyBDbGlja2luZyBvdXRzaWRlIG9mIHRoZSBkcm9wZG93biBvciBwcmVzc2luZyBlc2NhcGUgc2hvdWxkIGNsb3NlIHRoZVxuICAgIC8vIGRyb3Bkb3duLlxuICAgIEtlZmlyLm1lcmdlKFtcbiAgICAgIEtlZmlyLm1lcmdlKFtcbiAgICAgICAgZnJvbUV2ZW50c0NhcHR1cmUod2luZG93LCAnY2xpY2snKSxcbiAgICAgICAgZnJvbUV2ZW50c0NhcHR1cmUod2luZG93LCAnZm9jdXMnKVxuICAgICAgXSlcbiAgICAgICAgLmZpbHRlcihlID0+IHtcbiAgICAgICAgICBjb25zdCBlbCA9IGZpbmRET01Ob2RlKHRoaXMpO1xuICAgICAgICAgIGZvciAobGV0IG5vZGUgb2YgRmxvYXRBbmNob3IucGFyZW50Tm9kZXMoZS50YXJnZXQpKSB7XG4gICAgICAgICAgICBpZiAobm9kZSA9PT0gZWwpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0pLFxuICAgICAgS2VmaXIuZnJvbUV2ZW50cyh3aW5kb3csICdrZXlkb3duJylcbiAgICAgICAgLmZpbHRlcihlID0+IGUua2V5ID8gZS5rZXkgPT09ICdFc2NhcGUnIDogZS53aGljaCA9PT0gMjcpXG4gICAgICAgIC5tYXAoZSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0pXG4gICAgXSlcbiAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9vbkNsb3NlKVxuICAgICAgLm9uVmFsdWUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIGlmICghdGhpcy5zdGF0ZS5vcGVuZWQpIHJldHVybjtcbiAgICBpZiAodGhpcy5wcm9wcy5vbldpbGxDbG9zZSkgdGhpcy5wcm9wcy5vbldpbGxDbG9zZSgpO1xuICAgIHRoaXMuc2V0U3RhdGUoe29wZW5lZDogZmFsc2V9KTtcbiAgICB0aGlzLl9vbkNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5vcGVuZWQpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgcmVwb3NpdGlvbigpIHtcbiAgICB0aGlzLl9mbG9hdEFuY2hvci5yZXBvc2l0aW9uKCk7XG4gIH1cblxuICBfaXRlbUNob3NlbigpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl9vbkNsb3NlLmVtaXQoKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBjaGlsZHJlbiwgbWVudSxcbiAgICAgIHBvc2l0aW9uT3B0aW9ucywgbWVudVpJbmRleCxcbiAgICAgIGRpc2FibGVkLCB0aXRsZSwgQnV0dG9uQ29tcG9uZW50XG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge29wZW5lZH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbGV0IHN0eWxlID0gdGhpcy5wcm9wcy5zdHlsZTtcbiAgICBsZXQgY2xhc3NOYW1lID0gdGhpcy5wcm9wcy5jbGFzc05hbWU7XG4gICAgaWYgKG9wZW5lZCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMub3BlbmVkU3R5bGUpIHtcbiAgICAgICAgc3R5bGUgPSB7Li4uc3R5bGUsIC4uLnRoaXMucHJvcHMub3BlbmVkU3R5bGV9O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMub3BlbmVkQ2xhc3NOYW1lKSB7XG4gICAgICAgIGNsYXNzTmFtZSA9IGAke2NsYXNzTmFtZXx8Jyd9ICR7dGhpcy5wcm9wcy5vcGVuZWRDbGFzc05hbWV9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEZsb2F0QW5jaG9yXG4gICAgICAgIHJlZj17ZWwgPT4ge1xuICAgICAgICAgIGlmIChlbCkgdGhpcy5fZmxvYXRBbmNob3IgPSBlbDtcbiAgICAgICAgfX1cbiAgICAgICAgb3B0aW9ucz17cG9zaXRpb25PcHRpb25zfVxuICAgICAgICB6SW5kZXg9e21lbnVaSW5kZXh9XG4gICAgICAgIGFuY2hvcj17XG4gICAgICAgICAgPEJ1dHRvbkNvbXBvbmVudFxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXtlID0+IHtcbiAgICAgICAgICAgICAgaWYgKGUuYnV0dG9uICE9PSAwKSByZXR1cm47XG4gICAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25LZXlQcmVzcz17ZT0+e1xuICAgICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgfHwgZS5rZXkgPT09ICcgJykge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPXt0cnVlfVxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17b3BlbmVkfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgdGl0bGU9e3RpdGxlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8L0J1dHRvbkNvbXBvbmVudD5cbiAgICAgICAgfVxuICAgICAgICBmbG9hdD17XG4gICAgICAgICAgIW9wZW5lZCA/IG51bGwgOlxuICAgICAgICAgICAgPE1lbnVMaXN0SW5zcGVjdG9yIG9uSXRlbUNob3Nlbj17KCkgPT4gdGhpcy5faXRlbUNob3NlbigpfT5cbiAgICAgICAgICAgICAge21lbnV9XG4gICAgICAgICAgICA8L01lbnVMaXN0SW5zcGVjdG9yPlxuICAgICAgICB9XG4gICAgICAvPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==

@@ -35,4 +35,2 @@ 'use strict';

var _reactDom = require('react-dom');
var _propTypes = require('prop-types');

@@ -42,2 +40,6 @@

var _ChosenEvent = require('./events/ChosenEvent');
var _ChosenEvent2 = _interopRequireDefault(_ChosenEvent);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -61,2 +63,4 @@

highlighted: false
}, _this._elSetter = function (el) {
_this._el = el;
}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);

@@ -117,4 +121,4 @@ }

var el = (0, _reactDom.findDOMNode)(this);
/*:: if (!(el instanceof HTMLElement)) throw new Error(); */
var el = this._el;
/*:: if (!el) throw new Error(); */

@@ -125,4 +129,4 @@ this._menuListHandle = this.context.menuList.registerItem(this.props, {

if (highlighted && byKeyboard) {
var _el = (0, _reactDom.findDOMNode)(_this2);
/*:: if (!(el instanceof HTMLElement)) throw new Error(); */
var _el = _this2._el;
/*:: if (!el) throw new Error(); */
if (typeof _el.scrollIntoViewIfNeeded === 'function') {

@@ -142,2 +146,3 @@ _el.scrollIntoViewIfNeeded();

case 'chosen':
/*:: if (!(event instanceof ChosenEvent)) throw new Error(); */
if (_this2.props.onItemChosen) _this2.props.onItemChosen(event);

@@ -190,2 +195,3 @@ break;

{
ref: this._elSetter,
style: style,

@@ -237,2 +243,2 @@ className: className,

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51SXRlbS5qcyJdLCJuYW1lcyI6WyJNZW51SXRlbSIsInN0YXRlIiwiaGlnaGxpZ2h0ZWQiLCJfbWVudUxpc3RIYW5kbGUiLCJ0YWtlS2V5Ym9hcmQiLCJyZWxlYXNlS2V5Ym9hcmQiLCJsb2NrSGlnaGxpZ2h0IiwidW5sb2NrSGlnaGxpZ2h0IiwiYnlLZXlib2FyZCIsImhpZ2hsaWdodCIsInVuaGlnaGxpZ2h0IiwiZGlyZWN0aW9uIiwicHJldkN1cnNvckxvY2F0aW9uIiwibW92ZUN1cnNvciIsImVsIiwiY29udGV4dCIsIm1lbnVMaXN0IiwicmVnaXN0ZXJJdGVtIiwicHJvcHMiLCJub3RpZnlIaWdobGlnaHRlZCIsInNldFN0YXRlIiwic2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCIsInNjcm9sbEludG9WaWV3Iiwib25IaWdobGlnaHRDaGFuZ2UiLCJub3RpZnlFdmVudCIsImV2ZW50IiwidHlwZSIsIm9uSXRlbUNob3NlbiIsIm9uTGVmdFB1c2hlZCIsIm9uUmlnaHRQdXNoZWQiLCJ1bnJlZ2lzdGVyIiwibmV3UHJvcHMiLCJ1cGRhdGVQcm9wcyIsImNoaWxkcmVuIiwib25Nb3VzZUxlYXZlIiwic3R5bGUiLCJjbGFzc05hbWUiLCJoaWdobGlnaHRlZFN0eWxlIiwiaGlnaGxpZ2h0ZWRDbGFzc05hbWUiLCJpdGVtQ2hvc2VuIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiZnVuYyIsInN0cmluZyIsIm9iamVjdCIsImluZGV4IiwibnVtYmVyIiwibm9kZSIsImJvb2wiLCJjb250ZXh0VHlwZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOzs7O0FBQ0E7O0FBQ0E7Ozs7OztJQTJCcUJBLFE7Ozs7Ozs7Ozs7Ozs7O2dOQUVuQkMsSyxHQUFlO0FBQ2JDLG1CQUFhO0FBREEsSzs7Ozs7bUNBMkJTO0FBQ3RCLGFBQU8sS0FBS0QsS0FBTCxDQUFXQyxXQUFsQjtBQUNEOzs7bUNBRWM7QUFDYixXQUFL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QXlCWmlELFksR0FBZTtBQUNwQmpDLFlBQVUsb0JBQVU0QjtBQURBLEM7a0JBekJINUMsUSIsImZpbGUiOiJNZW51SXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2ZpbmRET01Ob2RlfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHR5cGUgTWVudUV2ZW50IGZyb20gJy4vZXZlbnRzL01lbnVFdmVudCc7XG5pbXBvcnQgdHlwZSB7TWVudUxpc3RDb250ZXh0LCBNZW51TGlzdEhhbmRsZX0gZnJvbSAnLi9NZW51TGlzdCc7XG5pbXBvcnQgdHlwZSB7RGlyZWN0aW9uLCBSZWN0fSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBTdGF0ZSA9IHtcbiAgaGlnaGxpZ2h0ZWQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBQcm9wcyA9IHtcbiAgb25JdGVtQ2hvc2VuPzogP0Z1bmN0aW9uO1xuICBvbkhpZ2hsaWdodENoYW5nZT86ID9GdW5jdGlvbjtcbiAgb25MZWZ0UHVzaGVkPzogP0Z1bmN0aW9uO1xuICBvblJpZ2h0UHVzaGVkPzogP0Z1bmN0aW9uO1xuXG4gIGNsYXNzTmFtZT86ID9zdHJpbmc7XG4gIHN0eWxlPzogP09iamVjdDtcbiAgaGlnaGxpZ2h0ZWRDbGFzc05hbWU/OiA/c3RyaW5nO1xuICBoaWdobGlnaHRlZFN0eWxlPzogP09iamVjdDtcblxuICBpbmRleD86ID9udW1iZXI7XG4gIG9uTW91c2VMZWF2ZT86ID9GdW5jdGlvbjtcblxuICBjaGlsZHJlbjogYW55O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVudUl0ZW0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBfbWVudUxpc3RIYW5kbGU6IE1lbnVMaXN0SGFuZGxlO1xuICBzdGF0ZTogU3RhdGUgPSB7XG4gICAgaGlnaGxpZ2h0ZWQ6IGZhbHNlXG4gIH07XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25JdGVtQ2hvc2VuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkhpZ2hsaWdodENoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25MZWZ0UHVzaGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblJpZ2h0UHVzaGVkOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBoaWdobGlnaHRlZENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBoaWdobGlnaHRlZFN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuXG4gICAgaW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgb25Nb3VzZUxlYXZlOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAgICdhcmlhLWhhc3BvcHVwJzogUHJvcFR5cGVzLmJvb2wsXG4gICAgJ2FyaWEtZXhwYW5kZWQnOiBQcm9wVHlwZXMuYm9vbFxuICB9O1xuXG4gIHN0YXRpYyBjb250ZXh0VHlwZXMgPSB7XG4gICAgbWVudUxpc3Q6IFByb3BUeXBlcy5vYmplY3RcbiAgfTtcblxuICBoYXNIaWdobGlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuaGlnaGxpZ2h0ZWQ7XG4gIH1cblxuICB0YWtlS2V5Ym9hcmQoKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUudGFrZUtleWJvYXJkKCk7XG4gIH1cblxuICByZWxlYXNlS2V5Ym9hcmQoKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUucmVsZWFzZUtleWJvYXJkKCk7XG4gIH1cblxuICBsb2NrSGlnaGxpZ2h0KCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLmxvY2tIaWdobGlnaHQoKTtcbiAgfVxuXG4gIHVubG9ja0hpZ2hsaWdodCgpIHtcbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZS51bmxvY2tIaWdobGlnaHQoKTtcbiAgfVxuXG4gIC8vIGJ5S2V5Ym9hcmQgZm9yY2VzIGZvY3VzIGltbWVkaWF0ZWx5IGFuZCBzY3JvbGxzIHRoZSBpdGVtIGludG8gdmlldy5cbiAgLy8gV2l0aCBpdCBmYWxzZSwgdGhlIGhpZ2hsaWdodCBtaWdodCBiZSBkZWxheWVkIGRlcGVuZGluZyBvbiBtb3VzZSBtb3ZlbWVudFxuICAvLyBhbmQgd29uJ3QgY2F1c2UgYW55dGhpbmcgdG8gc2Nyb2xsLlxuICBoaWdobGlnaHQoYnlLZXlib2FyZDogYm9vbGVhbj10cnVlKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUuaGlnaGxpZ2h0KGJ5S2V5Ym9hcmQpO1xuICB9XG5cbiAgdW5oaWdobGlnaHQoKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUudW5oaWdobGlnaHQoKTtcbiAgfVxuXG4gIG1vdmVDdXJzb3IoZGlyZWN0aW9uOiBEaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QpIHtcbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZS5tb3ZlQ3Vyc29yKGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IGVsID0gZmluZERPTU5vZGUodGhpcyk7XG4gICAgLyo6OiBpZiAoIShlbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG5cbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZSA9ICh0aGlzLmNvbnRleHQubWVudUxpc3Q6TWVudUxpc3RDb250ZXh0KS5yZWdpc3Rlckl0ZW0odGhpcy5wcm9wcywge1xuICAgICAgbm90aWZ5SGlnaGxpZ2h0ZWQ6IChoaWdobGlnaHRlZDogYm9vbGVhbiwgYnlLZXlib2FyZDogP2Jvb2xlYW4sIGRpcmVjdGlvbjogP0RpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtoaWdobGlnaHRlZH0sICgpID0+IHtcbiAgICAgICAgICBpZiAoaGlnaGxpZ2h0ZWQgJiYgYnlLZXlib2FyZCkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSBmaW5kRE9NTm9kZSh0aGlzKTtcbiAgICAgICAgICAgIC8qOjogaWYgKCEoZWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHRocm93IG5ldyBFcnJvcigpOyAqL1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBlbC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgIGVsLnNjcm9sbEludG9WaWV3SWZOZWVkZWQoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZWwuc2Nyb2xsSW50b1ZpZXcpIHtcbiAgICAgICAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkhpZ2hsaWdodENoYW5nZSkge1xuICAgICAgICAgIHRoaXMucHJvcHMub25IaWdobGlnaHRDaGFuZ2UoaGlnaGxpZ2h0ZWQsIHtieUtleWJvYXJkLCBwcmV2Q3Vyc29yTG9jYXRpb24sIGRpcmVjdGlvbn0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbm90aWZ5RXZlbnQ6IChldmVudDogTWVudUV2ZW50KSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgICBjYXNlICdjaG9zZW4nOlxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uSXRlbUNob3NlbikgdGhpcy5wcm9wcy5vbkl0ZW1DaG9zZW4oZXZlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQpIHRoaXMucHJvcHMub25MZWZ0UHVzaGVkKGV2ZW50KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmlnaHRQdXNoZWQpIHRoaXMucHJvcHMub25SaWdodFB1c2hlZChldmVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBlbCk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZS51bnJlZ2lzdGVyKCk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5ld1Byb3BzOiBQcm9wcykge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnVwZGF0ZVByb3BzKG5ld1Byb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Y2hpbGRyZW4sIG9uTW91c2VMZWF2ZX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtoaWdobGlnaHRlZH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbGV0IHN0eWxlID0gdGhpcy5wcm9wcy5zdHlsZTtcbiAgICBsZXQgY2xhc3NOYW1lID0gdGhpcy5wcm9wcy5jbGFzc05hbWU7XG4gICAgaWYgKGhpZ2hsaWdodGVkKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5oaWdobGlnaHRlZFN0eWxlKSB7XG4gICAgICAgIHN0eWxlID0gey4uLnN0eWxlLCAuLi50aGlzLnByb3BzLmhpZ2hsaWdodGVkU3R5bGV9O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMuaGlnaGxpZ2h0ZWRDbGFzc05hbWUpIHtcbiAgICAgICAgY2xhc3NOYW1lID0gYCR7Y2xhc3NOYW1lfHwnJ30gJHt0aGlzLnByb3BzLmhpZ2hsaWdodGVkQ2xhc3NOYW1lfWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgb25DbGljaz17KCk9PnRoaXMuX21lbnVMaXN0SGFuZGxlLml0ZW1DaG9zZW4oKX1cbiAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiB0aGlzLmhpZ2hsaWdodChmYWxzZSl9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17b25Nb3VzZUxlYXZlIHx8ICgoKSA9PiB0aGlzLnVuaGlnaGxpZ2h0KCkpfVxuICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICBhcmlhLWhhc3BvcHVwPXt0aGlzLnByb3BzWydhcmlhLWhhc3BvcHVwJ119XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e3RoaXMucHJvcHNbJ2FyaWEtZXhwYW5kZWQnXX1cbiAgICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51SXRlbS5qcyJdLCJuYW1lcyI6WyJNZW51SXRlbSIsInN0YXRlIiwiaGlnaGxpZ2h0ZWQiLCJfZWxTZXR0ZXIiLCJlbCIsIl9lbCIsIl9tZW51TGlzdEhhbmRsZSIsInRha2VLZXlib2FyZCIsInJlbGVhc2VLZXlib2FyZCIsImxvY2tIaWdobGlnaHQiLCJ1bmxvY2tIaWdobGlnaHQiLCJieUtleWJvYXJkIiwiaGlnaGxpZ2h0IiwidW5oaWdobGlnaHQiLCJkaXJlY3Rpb24iLCJwcmV2Q3Vyc29yTG9jYXRpb24iLCJtb3ZlQ3Vyc29yIiwiY29udGV4dCIsIm1lbnVMaXN0IiwicmVnaXN0ZXJJdGVtIiwicHJvcHMiLCJub3RpZnlIaWdobGlnaHRlZCIsInNldFN0YXRlIiwic2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCIsInNjcm9sbEludG9WaWV3Iiwib25IaWdobGlnaHRDaGFuZ2UiLCJub3RpZnlFdmVudCIsImV2ZW50IiwidHlwZSIsIm9uSXRlbUNob3NlbiIsIm9uTGVmdFB1c2hlZCIsIm9uUmlnaHRQdXNoZWQiLCJ1bnJlZ2lzdGVyIiwibmV3UHJvcHMiLCJ1cGRhdGVQcm9wcyIsImNoaWxkcmVuIiwib25Nb3VzZUxlYXZlIiwic3R5bGUiLCJjbGFzc05hbWUiLCJoaWdobGlnaHRlZFN0eWxlIiwiaGlnaGxpZ2h0ZWRDbGFzc05hbWUiLCJpdGVtQ2hvc2VuIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiZnVuYyIsInN0cmluZyIsIm9iamVjdCIsImluZGV4IiwibnVtYmVyIiwibm9kZSIsImJvb2wiLCJjb250ZXh0VHlwZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOzs7O0FBRUE7Ozs7QUFHQTs7Ozs7O0lBNEJxQkEsUTs7Ozs7Ozs7Ozs7Ozs7Z05BRW5CQyxLLEdBQVE7QUFDTkMsbUJBQWE7QUFEUCxLLFFBNEJSQyxTLEdBQVksVUFBQ0MsRUFBRCxFQUFzQjtBQUNoQyxZQUFLQyxHQUFM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QyxNQVhBO0FBWWpCWixnQkFBYyxvQkFBVVEsSUFaUDs7QUFjakJULFlBQVUsb0JBQVVjLElBZEg7O0FBZ0JqQixtQkFBaUIsb0JBQVVDLElBaEJWO0FBaUJqQixtQkFBaUIsb0JBQVVBO0FBakJWLEM7QUFMQWxELFEsQ0F5QlptRCxZLEdBQWU7QUFDcEJqQyxZQUFVLG9CQUFVNEI7QUFEQSxDO2tCQXpCSDlDLFEiLCJmaWxlIjoiTWVudUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge05vZGUgYXMgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQgdHlwZSBNZW51RXZlbnQgZnJvbSAnLi9ldmVudHMvTWVudUV2ZW50JztcbmltcG9ydCBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5pbXBvcnQgdHlwZSB7TWVudUxpc3RDb250ZXh0LCBNZW51TGlzdEhhbmRsZX0gZnJvbSAnLi9NZW51TGlzdCc7XG5pbXBvcnQgdHlwZSB7RGlyZWN0aW9uLCBSZWN0fSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBTdGF0ZSA9IHtcbiAgaGlnaGxpZ2h0ZWQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBQcm9wcyA9IHtcbiAgb25JdGVtQ2hvc2VuPzogPyhldmVudDogQ2hvc2VuRXZlbnQpID0+IHZvaWQ7XG4gIG9uTGVmdFB1c2hlZD86ID8oZXZlbnQ6IE1lbnVFdmVudCkgPT4gdm9pZDtcbiAgb25SaWdodFB1c2hlZD86ID8oZXZlbnQ6IE1lbnVFdmVudCkgPT4gdm9pZDtcbiAgb25IaWdobGlnaHRDaGFuZ2U/OiA/KGhpZ2hsaWdodGVkOiBib29sZWFuLCBkZXRhaWxzOiB7YnlLZXlib2FyZDogP2Jvb2xlYW4sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QsIGRpcmVjdGlvbjogP0RpcmVjdGlvbn0pID0+IHZvaWQ7XG5cbiAgY2xhc3NOYW1lPzogP3N0cmluZztcbiAgc3R5bGU/OiA/T2JqZWN0O1xuICBoaWdobGlnaHRlZENsYXNzTmFtZT86ID9zdHJpbmc7XG4gIGhpZ2hsaWdodGVkU3R5bGU/OiA/T2JqZWN0O1xuXG4gIGluZGV4PzogP251bWJlcjtcbiAgb25Nb3VzZUxlYXZlPzogP0Z1bmN0aW9uO1xuXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuXG4gICdhcmlhLWhhc3BvcHVwJz86ID9ib29sZWFuO1xuICAnYXJpYS1leHBhbmRlZCc/OiA/Ym9vbGVhbjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFByb3BzLCBTdGF0ZT4ge1xuICBfbWVudUxpc3RIYW5kbGU6IE1lbnVMaXN0SGFuZGxlO1xuICBzdGF0ZSA9IHtcbiAgICBoaWdobGlnaHRlZDogZmFsc2VcbiAgfTtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkl0ZW1DaG9zZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uSGlnaGxpZ2h0Q2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkxlZnRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uUmlnaHRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGhpZ2hsaWdodGVkQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGhpZ2hsaWdodGVkU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cbiAgICBpbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBvbk1vdXNlTGVhdmU6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gICAgJ2FyaWEtaGFzcG9wdXAnOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAnYXJpYS1leHBhbmRlZCc6IFByb3BUeXBlcy5ib29sXG4gIH07XG5cbiAgc3RhdGljIGNvbnRleHRUeXBlcyA9IHtcbiAgICBtZW51TGlzdDogUHJvcFR5cGVzLm9iamVjdFxuICB9O1xuXG4gIF9lbDogP0hUTUxFbGVtZW50O1xuICBfZWxTZXR0ZXIgPSAoZWw6ID9IVE1MRWxlbWVudCkgPT4ge1xuICAgIHRoaXMuX2VsID0gZWw7XG4gIH07XG5cbiAgaGFzSGlnaGxpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmhpZ2hsaWdodGVkO1xuICB9XG5cbiAgdGFrZUtleWJvYXJkKCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnRha2VLZXlib2FyZCgpO1xuICB9XG5cbiAgcmVsZWFzZUtleWJvYXJkKCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnJlbGVhc2VLZXlib2FyZCgpO1xuICB9XG5cbiAgbG9ja0hpZ2hsaWdodCgpIHtcbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZS5sb2NrSGlnaGxpZ2h0KCk7XG4gIH1cblxuICB1bmxvY2tIaWdobGlnaHQoKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUudW5sb2NrSGlnaGxpZ2h0KCk7XG4gIH1cblxuICAvLyBieUtleWJvYXJkIGZvcmNlcyBmb2N1cyBpbW1lZGlhdGVseSBhbmQgc2Nyb2xscyB0aGUgaXRlbSBpbnRvIHZpZXcuXG4gIC8vIFdpdGggaXQgZmFsc2UsIHRoZSBoaWdobGlnaHQgbWlnaHQgYmUgZGVsYXllZCBkZXBlbmRpbmcgb24gbW91c2UgbW92ZW1lbnRcbiAgLy8gYW5kIHdvbid0IGNhdXNlIGFueXRoaW5nIHRvIHNjcm9sbC5cbiAgaGlnaGxpZ2h0KGJ5S2V5Ym9hcmQ6IGJvb2xlYW49dHJ1ZSkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLmhpZ2hsaWdodChieUtleWJvYXJkKTtcbiAgfVxuXG4gIHVuaGlnaGxpZ2h0KCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnVuaGlnaGxpZ2h0KCk7XG4gIH1cblxuICBtb3ZlQ3Vyc29yKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0KSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUubW92ZUN1cnNvcihkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2VsO1xuICAgIC8qOjogaWYgKCFlbCkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG5cbiAgICB0aGlzLl9tZW51TGlzdEhhbmRsZSA9ICh0aGlzLmNvbnRleHQubWVudUxpc3Q6TWVudUxpc3RDb250ZXh0KS5yZWdpc3Rlckl0ZW0odGhpcy5wcm9wcywge1xuICAgICAgbm90aWZ5SGlnaGxpZ2h0ZWQ6IChoaWdobGlnaHRlZDogYm9vbGVhbiwgYnlLZXlib2FyZDogP2Jvb2xlYW4sIGRpcmVjdGlvbjogP0RpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtoaWdobGlnaHRlZH0sICgpID0+IHtcbiAgICAgICAgICBpZiAoaGlnaGxpZ2h0ZWQgJiYgYnlLZXlib2FyZCkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLl9lbDtcbiAgICAgICAgICAgIC8qOjogaWYgKCFlbCkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG4gICAgICAgICAgICBpZiAodHlwZW9mIGVsLnNjcm9sbEludG9WaWV3SWZOZWVkZWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgZWwuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChlbC5zY3JvbGxJbnRvVmlldykge1xuICAgICAgICAgICAgICBlbC5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9uSGlnaGxpZ2h0Q2hhbmdlKSB7XG4gICAgICAgICAgdGhpcy5wcm9wcy5vbkhpZ2hsaWdodENoYW5nZShoaWdobGlnaHRlZCwge2J5S2V5Ym9hcmQsIHByZXZDdXJzb3JMb2NhdGlvbiwgZGlyZWN0aW9ufSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBub3RpZnlFdmVudDogKGV2ZW50OiBNZW51RXZlbnQpID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Nob3Nlbic6XG4gICAgICAgICAgLyo6OiBpZiAoIShldmVudCBpbnN0YW5jZW9mIENob3NlbkV2ZW50KSkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25JdGVtQ2hvc2VuKSB0aGlzLnByb3BzLm9uSXRlbUNob3NlbihldmVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uTGVmdFB1c2hlZCkgdGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQoZXZlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SaWdodFB1c2hlZCkgdGhpcy5wcm9wcy5vblJpZ2h0UHVzaGVkKGV2ZW50KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIGVsKTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuX21lbnVMaXN0SGFuZGxlLnVucmVnaXN0ZXIoKTtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV3UHJvcHM6IFByb3BzKSB7XG4gICAgdGhpcy5fbWVudUxpc3RIYW5kbGUudXBkYXRlUHJvcHMobmV3UHJvcHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtjaGlsZHJlbiwgb25Nb3VzZUxlYXZlfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge2hpZ2hsaWdodGVkfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBsZXQgc3R5bGUgPSB0aGlzLnByb3BzLnN0eWxlO1xuICAgIGxldCBjbGFzc05hbWUgPSB0aGlzLnByb3BzLmNsYXNzTmFtZTtcbiAgICBpZiAoaGlnaGxpZ2h0ZWQpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmhpZ2hsaWdodGVkU3R5bGUpIHtcbiAgICAgICAgc3R5bGUgPSB7Li4uc3R5bGUsIC4uLnRoaXMucHJvcHMuaGlnaGxpZ2h0ZWRTdHlsZX07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wcm9wcy5oaWdobGlnaHRlZENsYXNzTmFtZSkge1xuICAgICAgICBjbGFzc05hbWUgPSBgJHtjbGFzc05hbWV8fCcnfSAke3RoaXMucHJvcHMuaGlnaGxpZ2h0ZWRDbGFzc05hbWV9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICByZWY9e3RoaXMuX2VsU2V0dGVyfVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICBvbkNsaWNrPXsoKT0+dGhpcy5fbWVudUxpc3RIYW5kbGUuaXRlbUNob3NlbigpfVxuICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHRoaXMuaGlnaGxpZ2h0KGZhbHNlKX1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXtvbk1vdXNlTGVhdmUgfHwgKCgpID0+IHRoaXMudW5oaWdobGlnaHQoKSl9XG4gICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgIGFyaWEtaGFzcG9wdXA9e3RoaXMucHJvcHNbJ2FyaWEtaGFzcG9wdXAnXX1cbiAgICAgICAgYXJpYS1leHBhbmRlZD17dGhpcy5wcm9wc1snYXJpYS1leHBhbmRlZCddfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG4iXX0=

@@ -31,4 +31,2 @@ 'use strict';

var _reactDom = require('react-dom');
var _propTypes = require('prop-types');

@@ -86,10 +84,12 @@

return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = MenuList.__proto__ || (0, _getPrototypeOf2.default)(MenuList)).call.apply(_ref, [this].concat(args))), _this), _this._stopper = (0, _kefirStopper2.default)(), _this._listItems = [], _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = MenuList.__proto__ || (0, _getPrototypeOf2.default)(MenuList)).call.apply(_ref, [this].concat(args))), _this), _this._stopper = (0, _kefirStopper2.default)(), _this._listItems = [], _this._elSetter = function (el) {
_this._el = el;
}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
}
// The natural highlight is where the highlight would be if no lock is active.
(0, _createClass3.default)(MenuList, [{
key: '_getVisibleHighlightedIndex',
// The natural highlight is where the highlight would be if no lock is active.
value: function _getVisibleHighlightedIndex() {

@@ -241,4 +241,4 @@ return this._lockedHighlightedIndex != null ? this._lockedHighlightedIndex : this._naturalHighlightedIndex;

};
var el = (0, _reactDom.findDOMNode)(this);
/*:: if (!(el instanceof HTMLElement)) throw new Error(); */
var el = this._el;
/*:: if (!el) throw new Error(); */

@@ -320,2 +320,3 @@ // The only things that should receive keydown/keypress events before us

case 'chosen':
/*:: if (!(event instanceof ChosenEvent)) throw new Error(); */
if (this.props.onItemChosen) this.props.onItemChosen(event);

@@ -429,3 +430,3 @@ break;

'div',
{ role: 'menu' },
{ role: 'menu', ref: this._elSetter },
this.props.children

@@ -452,2 +453,2 @@ );

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51TGlzdC5qcyJdLCJuYW1lcyI6WyJNZW51TGlzdCIsIl9zdG9wcGVyIiwiX2xpc3RJdGVtcyIsIl9sb2NrZWRIaWdobGlnaHRlZEluZGV4IiwiX25hdHVyYWxIaWdobGlnaHRlZEluZGV4IiwibWVudUxpc3QiLCJyZWdpc3Rlckl0ZW0iLCJwcm9wcyIsImNvbnRyb2wiLCJlbCIsIml0ZW0iLCJyZWdpc3RlciIsImkiLCJpbmRleCIsImNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIiwiX2l0ZW0iLCJOb2RlIiwiRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIiwicHVzaCIsInNwbGljZSIsIl9rZXlib2FyZFRha2VuQnlJbmRleCIsIm1lbnVMaXN0SGFuZGxlIiwiaGlnaGxpZ2h0IiwiYnlLZXlib2FyZCIsImluZGV4T2YiLCJFcnJvciIsIl9uYXR1cmFsSGlnaGxpZ2h0IiwidW5oaWdobGlnaHQiLCJpdGVtQ2hvc2VuIiwiX2Rpc3BhdGNoRXZlbnQiLCJ0YWtlS2V5Ym9hcmQiLCJyZWxlYXNlS2V5Ym9hcmQiLCJsb2NrSGlnaGxpZ2h0IiwiX2xvY2tIaWdobGlnaHQiLCJ1bmxvY2tIaWdobGlnaHQiLCJtb3ZlQ3Vyc29yIiwiZGlyZWN0aW9uIiwicHJldkN1cnNvckxvY2F0aW9uIiwidXBkYXRlUHJvcHMiLCJuZXdQcm9wcyIsIm9sZEluZGV4IiwiaXNOYXR1cmFsSGlnaGxpZ2h0SW5kZXgiLCJpc0xvY2tlZEhpZ2hsaWdodEluZGV4IiwiaXNLZXlib2FyZFRha2VuQnlJbmRleCIsInVucmVnaXN0ZXIiLCJuZXdJbmRleCIsImNvbnRleHQiLCJtZW51TGlzdEluc3BlY3RvciIsImlzRW50ZXJPckFycm93S2V5IiwiZSIsIndoaWNoIiwibWVyZ2UiLCJmcm9tRXZlbnRzIiwid2luZG93IiwiZmlsdGVyIiwiY29udGFpbnMiLCJ0YXJnZXQiLCJ0YWtlVW50aWxCeSIsIm9uVmFsdWUiLCJfa2V5IiwiZXZlbnQiLCJwYXJlbnRDdHgiLCJfcGFyZW50Q3R4IiwicmVnaXN0ZXJNZW51TGlzdCIsImRlc3Ryb3kiLCJ1bnJlZ2lzdGVyTWVudUxpc3QiLCJ2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCIsIl9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCIsIm5vdGlmeUhpZ2hsaWdodGVkIiwibmV3VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgiLCJub3RpZnlFdmVudCIsImNhbmNlbEJ1YmJsZSIsInR5cGUiLCJvbkl0ZW1DaG9zZW4iLCJvbkxlZnRQdXNoZWQiLCJvblJpZ2h0UHVzaGVkIiwiZGlzcGF0Y2hFdmVudCIsImxlbmd0aCIsIm1FdmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiZGVmYXVsdFByZXZlbnRlZCIsImNoaWxkcmVuIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiZnVuYyIsIm5vZGUiLCJjaGlsZENvbnRleHRUeXBlcyIsIm9iamVjdCIsImNvbnRleHRUeXBlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7OztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7QUFLQTs7O0FBY0E7OztBQVdBO0FBQ0E7SUFTcUJBLFE7Ozs7Ozs7Ozs7Ozs7O2dOQVFuQkMsUSxHQUFXLDZCLFFBQ1hDLFUsR0FHSyxFOzs7Ozs7O0FBRUw7a0RBS3VDO0FBQ3JDLGFBQU8sS0FBS0MsdUJBQUwsSUFBZ0MsSUFBaEMsR0FDTCxLQUFLQSx1QkFEQSxHQUMwQixLQUFLQyx3QkFEdEM7QUFFRDs7O3NDQVV5QjtBQUFBOztBQUN4QixVQUFNQyxXQUE0QjtBQUNoQ0Msc0JBQWMsc0JBQUNDLEtBQUQsRUFBUUMsT0FBUixFQUFpQkMsRUFBakIsRUFBd0I7QUFDcEMsY0FBTUMsT0FBTyxFQUFDSCxZQUFELEVBQVFDLGdCQUFSLEVBQWlCQyxNQUFqQixFQUFiOztBQUVBLGNBQU1FLFdBQVcsU0FBWEEsUUFBVyxHQUFNO0FBQ3JCLGdCQUFJ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MUIsRUFBZ0NVLFNBQWhDLEVBQTJDQyxrQkFBM0M7QUFDRCxXQUZELE1BRU87QUFDTCxpQkFBS1gsaUJBQUwsQ0FBdUIsS0FBS3RCLHdCQUFMLEdBQThCLENBQXJELEVBQXdELElBQXhELEVBQThEZ0MsU0FBOUQsRUFBeUVDLGtCQUF6RTtBQUNEO0FBQ0Q7QUFkRjtBQWdCRDs7O21DQUV1QjtBQUN0QixhQUFPLEtBQUs4QiwyQkFBTCxNQUFzQyxJQUE3QztBQUNEOzs7NkJBRVE7QUFDUCxhQUNFO0FBQUE7QUFBQSxVQUFLLE1BQUssTUFBVjtBQUNHLGFBQUs1RCxLQUFMLENBQVcyRTtBQURkLE9BREY7QUFLRDs7O0VBM1ZtQyxnQkFBTUMsUzs7QUFBdkJuRixRLENBQ1pvRixTLEdBQVk7QUFDakJYLGdCQUFjLG9CQUFVWSxJQURQO0FBRWpCWCxnQkFBYyxvQkFBVVcsSUFGUDtBQUdqQlYsaUJBQWUsb0JBQVVVLElBSFI7QUFJakJILFlBQVUsb0JBQVVJO0FBSkgsQztBQURBdEYsUSxDQXdCWnVGLGlCLEdBQW9CO0FBQ3pCbEYsWUFBVSxvQkFBVW1GO0FBREssQztBQXhCUnhGLFEsQ0E0Qlp5RixZLEdBQWU7QUFDcEIxQyxxQkFBbUIsb0JBQVV5QztBQURULEM7a0JBNUJIeEYsUSIsImZpbGUiOiJNZW51TGlzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge2ZpbmRET01Ob2RlfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBLZWZpciBmcm9tICdrZWZpcic7XG5pbXBvcnQga2VmaXJTdG9wcGVyIGZyb20gJ2tlZmlyLXN0b3BwZXInO1xuaW1wb3J0IGZpbmRJbmRleCBmcm9tICdhcnJheS1maW5kLWluZGV4JztcbmltcG9ydCBmcm9tRXZlbnRzQ2FwdHVyZSBmcm9tICcuL2xpYi9mcm9tRXZlbnRzQ2FwdHVyZSc7XG5cbmltcG9ydCBNZW51RXZlbnQgZnJvbSAnLi9ldmVudHMvTWVudUV2ZW50JztcbmltcG9ydCBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5pbXBvcnQgdHlwZSB7UHJvcHMgYXMgTWVudUl0ZW1Qcm9wc30gZnJvbSAnLi9NZW51SXRlbSc7XG5pbXBvcnQgdHlwZSB7TWVudUxpc3RJbnNwZWN0b3JDb250ZXh0fSBmcm9tICcuL01lbnVMaXN0SW5zcGVjdG9yJztcbmltcG9ydCB0eXBlIHtEaXJlY3Rpb24sIFJlY3R9IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBUaGlzIHR5cGUgb2Ygb2JqZWN0IGlzIGdpdmVuIHRvIGEgTWVudUl0ZW0gdG8gdGFsayB0byB0aGUgTWVudUxpc3QuXG5leHBvcnQgdHlwZSBNZW51TGlzdEhhbmRsZSA9IHtcbiAgaGlnaGxpZ2h0KGJ5S2V5Ym9hcmQ6IGJvb2xlYW4pOiB2b2lkO1xuICB1bmhpZ2hsaWdodCgpOiB2b2lkO1xuICBtb3ZlQ3Vyc29yKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0KTogdm9pZDtcbiAgaXRlbUNob3NlbigpOiB2b2lkO1xuICB0YWtlS2V5Ym9hcmQoKTogdm9pZDtcbiAgcmVsZWFzZUtleWJvYXJkKCk6IHZvaWQ7XG4gIGxvY2tIaWdobGlnaHQoKTogdm9pZDtcbiAgdW5sb2NrSGlnaGxpZ2h0KCk6IHZvaWQ7XG4gIHVwZGF0ZVByb3BzKHByb3BzOiBNZW51SXRlbVByb3BzKTogdm9pZDtcbiAgdW5yZWdpc3RlcigpOiB2b2lkO1xufTtcblxuLy8gVGhpcyB0eXBlIG9mIG9iamVjdCBpcyBnaXZlbiB0byBhIE1lbnVMaXN0IHRvIHRhbGsgdG8gYSBNZW51SXRlbS5cbmV4cG9ydCB0eXBlIE1lbnVJdGVtQ29udHJvbCA9IHtcbiAgbm90aWZ5SGlnaGxpZ2h0ZWQoXG4gICAgaGlnaGxpZ2h0ZWQ6IGJvb2xlYW4sXG4gICAgYnlLZXlib2FyZDogP2Jvb2xlYW4sXG4gICAgZGlyZWN0aW9uOiA/RGlyZWN0aW9uLFxuICAgIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3RcbiAgKTogdm9pZDtcbiAgbm90aWZ5RXZlbnQoZXZlbnQ6IE1lbnVFdmVudCk6IHZvaWQ7XG59O1xuXG4vLyBUaGlzIGlzIHRoZSB0eXBlIG9mIHRoZSBvYmplY3QgdGhhdCBNZW51TGlzdCBnaXZlcyBhcyBjb250ZXh0IHRvIGl0c1xuLy8gZGVzY2VuZGFudHMuXG5leHBvcnQgdHlwZSBNZW51TGlzdENvbnRleHQgPSB7XG4gIHJlZ2lzdGVySXRlbShcbiAgICBwcm9wczogTWVudUl0ZW1Qcm9wcyxcbiAgICBjb250cm9sOiBNZW51SXRlbUNvbnRyb2wsXG4gICAgZWw6IEhUTUxFbGVtZW50XG4gICk6IE1lbnVMaXN0SGFuZGxlO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVudUxpc3QgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9uSXRlbUNob3NlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25MZWZ0UHVzaGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvblJpZ2h0UHVzaGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbiAgfTtcblxuICBfc3RvcHBlciA9IGtlZmlyU3RvcHBlcigpO1xuICBfbGlzdEl0ZW1zOiBBcnJheTx7XG4gICAgcHJvcHM6IE1lbnVJdGVtUHJvcHM7XG4gICAgY29udHJvbDogTWVudUl0ZW1Db250cm9sO1xuICB9PiA9IFtdO1xuXG4gIC8vIFRoZSBuYXR1cmFsIGhpZ2hsaWdodCBpcyB3aGVyZSB0aGUgaGlnaGxpZ2h0IHdvdWxkIGJlIGlmIG5vIGxvY2sgaXMgYWN0aXZlLlxuICBfbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXg6ID9udW1iZXI7XG4gIF9sb2NrZWRIaWdobGlnaHRlZEluZGV4OiA/bnVtYmVyO1xuICBfa2V5Ym9hcmRUYWtlbkJ5SW5kZXg6ID9udW1iZXI7XG5cbiAgX2dldFZpc2libGVIaWdobGlnaHRlZEluZGV4KCk6ID9udW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ICE9IG51bGwgP1xuICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA6IHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4O1xuICB9XG5cbiAgc3RhdGljIGNoaWxkQ29udGV4dFR5cGVzID0ge1xuICAgIG1lbnVMaXN0OiBQcm9wVHlwZXMub2JqZWN0XG4gIH07XG5cbiAgc3RhdGljIGNvbnRleHRUeXBlcyA9IHtcbiAgICBtZW51TGlzdEluc3BlY3RvcjogUHJvcFR5cGVzLm9iamVjdFxuICB9O1xuXG4gIGdldENoaWxkQ29udGV4dCgpOiBPYmplY3Qge1xuICAgIGNvbnN0IG1lbnVMaXN0OiBNZW51TGlzdENvbnRleHQgPSB7XG4gICAgICByZWdpc3Rlckl0ZW06IChwcm9wcywgY29udHJvbCwgZWwpID0+IHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHtwcm9wcywgY29udHJvbCwgZWx9O1xuXG4gICAgICAgIGNvbnN0IHJlZ2lzdGVyID0gKCkgPT4ge1xuICAgICAgICAgIGxldCBpID0gLTE7XG4gICAgICAgICAgaWYgKGl0ZW0ucHJvcHMuaW5kZXggPT0gbnVsbCkge1xuICAgICAgICAgICAgaSA9IGZpbmRJbmRleChcbiAgICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLFxuICAgICAgICAgICAgICBfaXRlbSA9PlxuICAgICAgICAgICAgICAgIChpdGVtLmVsLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKF9pdGVtLmVsKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORykgPT09IDBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGkgPSBmaW5kSW5kZXgoXG4gICAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtcyxcbiAgICAgICAgICAgICAgX2l0ZW0gPT4gX2l0ZW0ucHJvcHMuaW5kZXggIT0gbnVsbCAmJiBpdGVtLnByb3BzLmluZGV4IDwgX2l0ZW0ucHJvcHMuaW5kZXhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtcy5zcGxpY2UoaSwgMCwgaXRlbSk7XG4gICAgICAgICAgICBpZiAodGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJiBpIDw9IHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4KSB7XG4gICAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmIGkgPD0gdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCkge1xuICAgICAgICAgICAgICB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggIT0gbnVsbCAmJiBpIDw9IHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4KSB7XG4gICAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJlZ2lzdGVyKCk7XG5cbiAgICAgICAgY29uc3QgbWVudUxpc3RIYW5kbGU6IE1lbnVMaXN0SGFuZGxlID0ge1xuICAgICAgICAgIGhpZ2hsaWdodDogKGJ5S2V5Ym9hcmQ6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVucmVnaXN0ZXJlZCBNZW51SXRlbScpO1xuICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodChpLCBieUtleWJvYXJkKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHVuaGlnaGxpZ2h0OiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9PT0gaSkge1xuICAgICAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0KG51bGwsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGl0ZW1DaG9zZW46ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoRXZlbnQoY29udHJvbCwgbmV3IENob3NlbkV2ZW50KCdjaG9zZW4nLCBmYWxzZSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdGFrZUtleWJvYXJkOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID0gaTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlbGVhc2VLZXlib2FyZDogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgaWYgKGkgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgdW5yZWdpc3RlcmVkIE1lbnVJdGVtJyk7XG4gICAgICAgICAgICBpZiAodGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggPT09IGkpIHtcbiAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9ja0hpZ2hsaWdodDogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgaWYgKGkgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgdW5yZWdpc3RlcmVkIE1lbnVJdGVtJyk7XG4gICAgICAgICAgICB0aGlzLl9sb2NrSGlnaGxpZ2h0KGkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdW5sb2NrSGlnaGxpZ2h0OiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ID09PSBpKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2xvY2tIaWdobGlnaHQobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtb3ZlQ3Vyc29yOiAoZGlyZWN0aW9uOiBEaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMubW92ZUN1cnNvcihkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB1cGRhdGVQcm9wczogKG5ld1Byb3BzOiBNZW51SXRlbVByb3BzKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5wcm9wcy5pbmRleCAhPT0gbmV3UHJvcHMuaW5kZXgpIHtcbiAgICAgICAgICAgICAgY29uc3Qgb2xkSW5kZXggPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgICAgY29uc3QgaXNOYXR1cmFsSGlnaGxpZ2h0SW5kZXggPSB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9PT0gb2xkSW5kZXg7XG4gICAgICAgICAgICAgIGNvbnN0IGlzTG9ja2VkSGlnaGxpZ2h0SW5kZXggPSB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ID09PSBvbGRJbmRleDtcbiAgICAgICAgICAgICAgY29uc3QgaXNLZXlib2FyZFRha2VuQnlJbmRleCA9IHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID09PSBvbGRJbmRleDtcblxuICAgICAgICAgICAgICBtZW51TGlzdEhhbmRsZS51bnJlZ2lzdGVyKCk7XG4gICAgICAgICAgICAgIHByb3BzID0gbmV3UHJvcHM7XG4gICAgICAgICAgICAgIGl0ZW0ucHJvcHMgPSBuZXdQcm9wcztcbiAgICAgICAgICAgICAgcmVnaXN0ZXIoKTtcblxuICAgICAgICAgICAgICBpZiAoaXNOYXR1cmFsSGlnaGxpZ2h0SW5kZXggfHwgaXNMb2NrZWRIaWdobGlnaHRJbmRleCB8fCBpc0tleWJvYXJkVGFrZW5CeUluZGV4KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3SW5kZXggPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXR1cmFsSGlnaGxpZ2h0SW5kZXgpIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICAgICAgaWYgKGlzTG9ja2VkSGlnaGxpZ2h0SW5kZXgpIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggPSBuZXdJbmRleDtcbiAgICAgICAgICAgICAgICBpZiAoaXNLZXlib2FyZFRha2VuQnlJbmRleCkgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggPSBuZXdJbmRleDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcHJvcHMgPSBuZXdQcm9wcztcbiAgICAgICAgICAgICAgaXRlbS5wcm9wcyA9IG5ld1Byb3BzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdW5yZWdpc3RlcjogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgaWYgKGkgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgdW5yZWdpc3RlcmVkIE1lbnVJdGVtJyk7XG4gICAgICAgICAgICBpZiAoaSA9PT0gdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXgpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPSBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmIGkgPCB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCkge1xuICAgICAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGkgPT09IHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXgpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9IG51bGw7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJiBpIDwgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCkge1xuICAgICAgICAgICAgICB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4LS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaSA9PT0gdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXgpIHtcbiAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggPSBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCAhPSBudWxsICYmIGkgPCB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCkge1xuICAgICAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBtZW51TGlzdEhhbmRsZTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiB7bWVudUxpc3R9O1xuICB9XG5cbiAgX3BhcmVudEN0eCgpOiA/TWVudUxpc3RJbnNwZWN0b3JDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0Lm1lbnVMaXN0SW5zcGVjdG9yO1xuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgaXNFbnRlck9yQXJyb3dLZXkgPSBlID0+XG4gICAgICAoZS53aGljaCA9PT0gMTMpIHx8ICgzNyA8PSBlLndoaWNoICYmIGUud2hpY2ggPD0gNDApO1xuICAgIGNvbnN0IGVsID0gZmluZERPTU5vZGUodGhpcyk7XG4gICAgLyo6OiBpZiAoIShlbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG5cbiAgICAvLyBUaGUgb25seSB0aGluZ3MgdGhhdCBzaG91bGQgcmVjZWl2ZSBrZXlkb3duL2tleXByZXNzIGV2ZW50cyBiZWZvcmUgdXNcbiAgICAvLyBhcmUgb3VyIGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhIE1lbnVJdGVtIHRvIGNvbnRhaW4gYSB0ZXh0IGlucHV0XG4gICAgLy8gd2hpY2ggc2VsZWN0aXZlbHkgc3RvcHMgcHJvcGFnYXRpb24gb24ga2V5IGV2ZW50cyBmb3IgZXhhbXBsZS5cbiAgICBLZWZpci5tZXJnZShbXG4gICAgICBLZWZpci5mcm9tRXZlbnRzKHdpbmRvdywgJ2tleWRvd24nKS5maWx0ZXIoaXNFbnRlck9yQXJyb3dLZXkpXG4gICAgICAgIC5maWx0ZXIoZSA9PiBlbC5jb250YWlucyhlLnRhcmdldCkpLFxuICAgICAgZnJvbUV2ZW50c0NhcHR1cmUod2luZG93LCAna2V5ZG93bicpLmZpbHRlcihpc0VudGVyT3JBcnJvd0tleSlcbiAgICAgICAgLmZpbHRlcihlID0+ICFlbC5jb250YWlucyhlLnRhcmdldCkpXG4gICAgXSlcbiAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9zdG9wcGVyKVxuICAgICAgLm9uVmFsdWUoZXZlbnQgPT4gdGhpcy5fa2V5KGV2ZW50KSk7XG5cbiAgICBjb25zdCBwYXJlbnRDdHggPSB0aGlzLl9wYXJlbnRDdHgoKTtcbiAgICBpZiAocGFyZW50Q3R4KSB7XG4gICAgICBwYXJlbnRDdHgucmVnaXN0ZXJNZW51TGlzdCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl9zdG9wcGVyLmRlc3Ryb3koKTtcblxuICAgIGNvbnN0IHBhcmVudEN0eCA9IHRoaXMuX3BhcmVudEN0eCgpO1xuICAgIGlmIChwYXJlbnRDdHgpIHtcbiAgICAgIHBhcmVudEN0eC51bnJlZ2lzdGVyTWVudUxpc3QodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgX25hdHVyYWxIaWdobGlnaHQoaW5kZXg6ID9udW1iZXIsIGJ5S2V5Ym9hcmQ6IGJvb2xlYW4sIGRpcmVjdGlvbjogP0RpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCkge1xuICAgIGNvbnN0IHZpc2libGVIaWdobGlnaHRlZEluZGV4ID0gdGhpcy5fZ2V0VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgoKTtcblxuICAgIGlmICh0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ICE9IG51bGwgJiYgYnlLZXlib2FyZCkge1xuICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID0gaW5kZXg7XG4gICAgaWYgKHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggPT0gbnVsbCkge1xuICAgICAgaWYgKGluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zW2luZGV4XS5jb250cm9sLm5vdGlmeUhpZ2hsaWdodGVkKHRydWUsIGJ5S2V5Ym9hcmQsIGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmIHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IGluZGV4KSB7XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtc1t2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleF0uY29udHJvbC5ub3RpZnlIaWdobGlnaHRlZChmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2xvY2tIaWdobGlnaHQoaW5kZXg6ID9udW1iZXIpIHtcbiAgICBpZiAoaW5kZXggPT09IHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXgpIHJldHVybjtcbiAgICBjb25zdCB2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9IHRoaXMuX2dldFZpc2libGVIaWdobGlnaHRlZEluZGV4KCk7XG4gICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9IGluZGV4O1xuICAgIGNvbnN0IG5ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4ID0gdGhpcy5fZ2V0VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgoKTtcbiAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJiBuZXdWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9PSBudWxsKSB7XG4gICAgICAvLyBXaGVuIHVubG9ja2luZywgcHJlZmVyIHRvIGtlZXAgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIG92ZXIgZGUtc2VsZWN0aW5nXG4gICAgICAvLyBldmVyeXRoaW5nLlxuICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPSB2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleDtcbiAgICB9IGVsc2UgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG5ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4KSB7XG4gICAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9saXN0SXRlbXNbdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXhdLmNvbnRyb2wubm90aWZ5SGlnaGxpZ2h0ZWQoZmFsc2UpO1xuICAgICAgfVxuICAgICAgaWYgKG5ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zW25ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4XS5jb250cm9sLm5vdGlmeUhpZ2hsaWdodGVkKHRydWUsIGZhbHNlKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9saXN0SXRlbXNbdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXhdLmNvbnRyb2wubm90aWZ5SGlnaGxpZ2h0ZWQodHJ1ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9kaXNwYXRjaEV2ZW50KGNvbnRyb2w6ID9NZW51SXRlbUNvbnRyb2wsIGV2ZW50OiBNZW51RXZlbnQpIHtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgY29udHJvbC5ub3RpZnlFdmVudChldmVudCk7XG4gICAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgIGNhc2UgJ2Nob3Nlbic6XG4gICAgICBpZiAodGhpcy5wcm9wcy5vbkl0ZW1DaG9zZW4pIHRoaXMucHJvcHMub25JdGVtQ2hvc2VuKGV2ZW50KTtcbiAgICAgIGJyZWFrO1xuICAgIC8vIGNhc2UgJ3VwJzpcbiAgICAvLyAgIGJyZWFrO1xuICAgIC8vIGNhc2UgJ2Rvd24nOlxuICAgIC8vICAgYnJlYWs7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICBpZiAodGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQpIHRoaXMucHJvcHMub25MZWZ0UHVzaGVkKGV2ZW50KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uUmlnaHRQdXNoZWQpIHRoaXMucHJvcHMub25SaWdodFB1c2hlZChldmVudCk7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKGV2ZW50LmNhbmNlbEJ1YmJsZSkgcmV0dXJuO1xuICAgIGNvbnN0IHBhcmVudEN0eCA9IHRoaXMuX3BhcmVudEN0eCgpO1xuICAgIGlmIChwYXJlbnRDdHgpIHtcbiAgICAgIHBhcmVudEN0eC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBfa2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ICE9IG51bGwgfHwgdGhpcy5fbGlzdEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZpc2libGVIaWdobGlnaHRlZEluZGV4ID0gdGhpcy5fZ2V0VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgoKTtcblxuICAgIC8vIGVudGVyLCBsZWZ0LCByaWdodCBhY3RpdmF0ZSBmb3IgdGhlIGN1cnJlbnQgdmlzaWJseSBzZWxlY3RlZCBpdGVtLlxuICAgIC8vIHVwIGFuZCBkb3duIGRlLWFjdGl2YXRlIGFueSBsb2NrcyBpbiBwbGFjZSwgc28gdGhhdCB0aGV5IGFjdCBmcm9tIHRoZSBsYXN0XG4gICAgLy8gbmF0dXJhbGx5LXNlbGVjdGVkIGl0ZW0uXG5cbiAgICBsZXQgbUV2ZW50ID0gbnVsbDtcblxuICAgIHN3aXRjaCAoZXZlbnQud2hpY2gpIHtcbiAgICBjYXNlIDEzOiAvL2VudGVyXG4gICAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICBtRXZlbnQgPSBuZXcgQ2hvc2VuRXZlbnQoJ2Nob3NlbicsIHRydWUpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzc6IC8vbGVmdFxuICAgICAgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgbUV2ZW50ID0gbmV3IE1lbnVFdmVudCgnbGVmdCcpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzOTogLy9yaWdodFxuICAgICAgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgbUV2ZW50ID0gbmV3IE1lbnVFdmVudCgncmlnaHQnKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMzg6IC8vdXBcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMubW92ZUN1cnNvcigndXAnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgNDA6IC8vZG93blxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5tb3ZlQ3Vyc29yKCdkb3duJyk7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAobUV2ZW50KSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggPT0gbnVsbCA/IG51bGwgOlxuICAgICAgICB0aGlzLl9saXN0SXRlbXNbdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXhdLmNvbnRyb2w7XG4gICAgICB0aGlzLl9kaXNwYXRjaEV2ZW50KGNvbnRyb2wsIG1FdmVudCk7XG4gICAgICBpZiAobUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAobUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHwgbUV2ZW50LmNhbmNlbEJ1YmJsZSkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgbW92ZUN1cnNvcihkaXJlY3Rpb246IERpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCkge1xuICAgIGlmICh0aGlzLl9saXN0SXRlbXMubGVuZ3RoID09IDApIHJldHVybjtcblxuICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XG4gICAgY2FzZSAndXAnOlxuICAgICAgaWYgKHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID09IG51bGwgfHwgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT0gMCkge1xuICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0KHRoaXMuX2xpc3RJdGVtcy5sZW5ndGgtMSwgdHJ1ZSwgZGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodCh0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleC0xLCB0cnVlLCBkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdkb3duJzpcbiAgICAgIGlmICh0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9PSBudWxsIHx8IHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID09IHRoaXMuX2xpc3RJdGVtcy5sZW5ndGgtMSkge1xuICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0KDAsIHRydWUsIGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHQodGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXgrMSwgdHJ1ZSwgZGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb24pO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaGFzSGlnaGxpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCgpICE9IG51bGw7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgcm9sZT1cIm1lbnVcIj5cbiAgICAgICAge3RoaXMucHJvcHMuY2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51TGlzdC5qcyJdLCJuYW1lcyI6WyJNZW51TGlzdCIsIl9zdG9wcGVyIiwiX2xpc3RJdGVtcyIsIl9lbFNldHRlciIsImVsIiwiX2VsIiwiX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXgiLCJfbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXgiLCJtZW51TGlzdCIsInJlZ2lzdGVySXRlbSIsInByb3BzIiwiY29udHJvbCIsIml0ZW0iLCJyZWdpc3RlciIsImkiLCJpbmRleCIsImNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIiwiX2l0ZW0iLCJOb2RlIiwiRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIiwicHVzaCIsInNwbGljZSIsIl9rZXlib2FyZFRha2VuQnlJbmRleCIsIm1lbnVMaXN0SGFuZGxlIiwiaGlnaGxpZ2h0IiwiYnlLZXlib2FyZCIsImluZGV4T2YiLCJFcnJvciIsIl9uYXR1cmFsSGlnaGxpZ2h0IiwidW5oaWdobGlnaHQiLCJpdGVtQ2hvc2VuIiwiX2Rpc3BhdGNoRXZlbnQiLCJ0YWtlS2V5Ym9hcmQiLCJyZWxlYXNlS2V5Ym9hcmQiLCJsb2NrSGlnaGxpZ2h0IiwiX2xvY2tIaWdobGlnaHQiLCJ1bmxvY2tIaWdobGlnaHQiLCJtb3ZlQ3Vyc29yIiwiZGlyZWN0aW9uIiwicHJldkN1cnNvckxvY2F0aW9uIiwidXBkYXRlUHJvcHMiLCJuZXdQcm9wcyIsIm9sZEluZGV4IiwiaXNOYXR1cmFsSGlnaGxpZ2h0SW5kZXgiLCJpc0xvY2tlZEhpZ2hsaWdodEluZGV4IiwiaXNLZXlib2FyZFRha2VuQnlJbmRleCIsInVucmVnaXN0ZXIiLCJuZXdJbmRleCIsImNvbnRleHQiLCJtZW51TGlzdEluc3BlY3RvciIsImlzRW50ZXJPckFycm93S2V5IiwiZSIsIndoaWNoIiwibWVyZ2UiLCJmcm9tRXZlbnRzIiwid2luZG93IiwiZmlsdGVyIiwiY29udGFpbnMiLCJ0YXJnZXQiLCJ0YWtlVW50aWxCeSIsIm9uVmFsdWUiLCJfa2V5IiwiZXZlbnQiLCJwYXJlbnRDdHgiLCJfcGFyZW50Q3R4IiwicmVnaXN0ZXJNZW51TGlzdCIsImRlc3Ryb3kiLCJ1bnJlZ2lzdGVyTWVudUxpc3QiLCJ2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCIsIl9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCIsIm5vdGlmeUhpZ2hsaWdodGVkIiwibmV3VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgiLCJub3RpZnlFdmVudCIsImNhbmNlbEJ1YmJsZSIsInR5cGUiLCJvbkl0ZW1DaG9zZW4iLCJvbkxlZnRQdXNoZWQiLCJvblJpZ2h0UHVzaGVkIiwiZGlzcGF0Y2hFdmVudCIsImxlbmd0aCIsIm1FdmVudCIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiZGVmYXVsdFByZXZlbnRlZCIsImNoaWxkcmVuIiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwiZnVuYyIsIm5vZGUiLCJjaGlsZENvbnRleHRUeXBlcyIsIm9iamVjdCIsImNvbnRleHRUeXBlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7Ozs7QUFLQTs7O0FBY0E7OztBQVdBO0FBQ0E7SUFnQnFCQSxROzs7Ozs7Ozs7Ozs7OztnTkFRbkJDLFEsR0FBVyw2QixRQUNYQyxVLEdBR0ssRSxRQVFMQyxTLEdBQVksVUFBQ0MsRUFBRCxFQUFzQjtBQUNoQyxZQUFLQyxHQUFMLEdBQVdELEVBQVg7QUFDRCxLOzs7QUFSRDs7Ozs7a0RBVXVDO0FBQ3JDLGFBQU8sS0FBS0UsdUJBQUwsSUFBZ0MsSUFBaEMsR0FDTCxLQUFLQSx1QkFEQSxHQUMwQixLQUFLQyx3QkFEdEM7QUFFRDs7O3NDQVV5QjtBQUFBOztBQUN4QixVQUFNQyxXQUE0QjtBQUNoQ0Msc0JBQWMsc0JBQUNDLEtBQUQsRUFBUUMsT0FBUixFQUFpQlAsRUFBakIsRUFBd0I7QUFDcEMsY0FBTVEsT0FBTyxFQUFDRixZ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LFVBQUwsQ0FBZ0I2RSxNQUFoQixHQUF1QixDQUFyRyxFQUF3RztBQUN0RyxpQkFBS25ELGlCQUFMLENBQXVCLENBQXZCLEVBQTBCLElBQTFCLEVBQWdDVSxTQUFoQyxFQUEyQ0Msa0JBQTNDO0FBQ0QsV0FGRCxNQUVPO0FBQ0wsaUJBQUtYLGlCQUFMLENBQXVCLEtBQUtyQix3QkFBTCxHQUE4QixDQUFyRCxFQUF3RCxJQUF4RCxFQUE4RCtCLFNBQTlELEVBQXlFQyxrQkFBekU7QUFDRDtBQUNEO0FBZEY7QUFnQkQ7OzttQ0FFdUI7QUFDdEIsYUFBTyxLQUFLOEIsMkJBQUwsTUFBc0MsSUFBN0M7QUFDRDs7OzZCQUVRO0FBQ1AsYUFDRTtBQUFBO0FBQUEsVUFBSyxNQUFLLE1BQVYsRUFBaUIsS0FBSyxLQUFLbEUsU0FBM0I7QUFDRyxhQUFLTyxLQUFMLENBQVcwRTtBQURkLE9BREY7QUFLRDs7O0VBaldtQyxnQkFBTUMsUzs7QUFBdkJyRixRLENBQ1pzRixTLEdBQVk7QUFDakJYLGdCQUFjLG9CQUFVWSxJQURQO0FBRWpCWCxnQkFBYyxvQkFBVVcsSUFGUDtBQUdqQlYsaUJBQWUsb0JBQVVVLElBSFI7QUFJakJILFlBQVUsb0JBQVVJO0FBSkgsQztBQURBeEYsUSxDQTZCWnlGLGlCLEdBQW9CO0FBQ3pCakYsWUFBVSxvQkFBVWtGO0FBREssQztBQTdCUjFGLFEsQ0FpQ1oyRixZLEdBQWU7QUFDcEIxQyxxQkFBbUIsb0JBQVV5QztBQURULEM7a0JBakNIMUYsUSIsImZpbGUiOiJNZW51TGlzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIEBmbG93ICovXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7Tm9kZSBhcyBSZWFjdE5vZGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgS2VmaXIgZnJvbSAna2VmaXInO1xuaW1wb3J0IGtlZmlyU3RvcHBlciBmcm9tICdrZWZpci1zdG9wcGVyJztcbmltcG9ydCBmaW5kSW5kZXggZnJvbSAnYXJyYXktZmluZC1pbmRleCc7XG5pbXBvcnQgZnJvbUV2ZW50c0NhcHR1cmUgZnJvbSAnLi9saWIvZnJvbUV2ZW50c0NhcHR1cmUnO1xuXG5pbXBvcnQgTWVudUV2ZW50IGZyb20gJy4vZXZlbnRzL01lbnVFdmVudCc7XG5pbXBvcnQgQ2hvc2VuRXZlbnQgZnJvbSAnLi9ldmVudHMvQ2hvc2VuRXZlbnQnO1xuaW1wb3J0IHR5cGUge1Byb3BzIGFzIE1lbnVJdGVtUHJvcHN9IGZyb20gJy4vTWVudUl0ZW0nO1xuaW1wb3J0IHR5cGUge01lbnVMaXN0SW5zcGVjdG9yQ29udGV4dH0gZnJvbSAnLi9NZW51TGlzdEluc3BlY3Rvcic7XG5pbXBvcnQgdHlwZSB7RGlyZWN0aW9uLCBSZWN0fSBmcm9tICcuL3R5cGVzJztcblxuLy8gVGhpcyB0eXBlIG9mIG9iamVjdCBpcyBnaXZlbiB0byBhIE1lbnVJdGVtIHRvIHRhbGsgdG8gdGhlIE1lbnVMaXN0LlxuZXhwb3J0IHR5cGUgTWVudUxpc3RIYW5kbGUgPSB7XG4gIGhpZ2hsaWdodChieUtleWJvYXJkOiBib29sZWFuKTogdm9pZDtcbiAgdW5oaWdobGlnaHQoKTogdm9pZDtcbiAgbW92ZUN1cnNvcihkaXJlY3Rpb246IERpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCk6IHZvaWQ7XG4gIGl0ZW1DaG9zZW4oKTogdm9pZDtcbiAgdGFrZUtleWJvYXJkKCk6IHZvaWQ7XG4gIHJlbGVhc2VLZXlib2FyZCgpOiB2b2lkO1xuICBsb2NrSGlnaGxpZ2h0KCk6IHZvaWQ7XG4gIHVubG9ja0hpZ2hsaWdodCgpOiB2b2lkO1xuICB1cGRhdGVQcm9wcyhwcm9wczogTWVudUl0ZW1Qcm9wcyk6IHZvaWQ7XG4gIHVucmVnaXN0ZXIoKTogdm9pZDtcbn07XG5cbi8vIFRoaXMgdHlwZSBvZiBvYmplY3QgaXMgZ2l2ZW4gdG8gYSBNZW51TGlzdCB0byB0YWxrIHRvIGEgTWVudUl0ZW0uXG5leHBvcnQgdHlwZSBNZW51SXRlbUNvbnRyb2wgPSB7XG4gIG5vdGlmeUhpZ2hsaWdodGVkKFxuICAgIGhpZ2hsaWdodGVkOiBib29sZWFuLFxuICAgIGJ5S2V5Ym9hcmQ6ID9ib29sZWFuLFxuICAgIGRpcmVjdGlvbjogP0RpcmVjdGlvbixcbiAgICBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0XG4gICk6IHZvaWQ7XG4gIG5vdGlmeUV2ZW50KGV2ZW50OiBNZW51RXZlbnQpOiB2b2lkO1xufTtcblxuLy8gVGhpcyBpcyB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0IHRoYXQgTWVudUxpc3QgZ2l2ZXMgYXMgY29udGV4dCB0byBpdHNcbi8vIGRlc2NlbmRhbnRzLlxuZXhwb3J0IHR5cGUgTWVudUxpc3RDb250ZXh0ID0ge1xuICByZWdpc3Rlckl0ZW0oXG4gICAgcHJvcHM6IE1lbnVJdGVtUHJvcHMsXG4gICAgY29udHJvbDogTWVudUl0ZW1Db250cm9sLFxuICAgIGVsOiBIVE1MRWxlbWVudFxuICApOiBNZW51TGlzdEhhbmRsZTtcbn07XG5cbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICBvbkl0ZW1DaG9zZW4/OiA/KGV2ZW50OiBDaG9zZW5FdmVudCkgPT4gdm9pZDtcbiAgb25MZWZ0UHVzaGVkPzogPyhldmVudDogTWVudUV2ZW50KSA9PiB2b2lkO1xuICBvblJpZ2h0UHVzaGVkPzogPyhldmVudDogTWVudUV2ZW50KSA9PiB2b2lkO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnVMaXN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFByb3BzPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb25JdGVtQ2hvc2VuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkxlZnRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uUmlnaHRQdXNoZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZVxuICB9O1xuXG4gIF9zdG9wcGVyID0ga2VmaXJTdG9wcGVyKCk7XG4gIF9saXN0SXRlbXM6IEFycmF5PHtcbiAgICBwcm9wczogTWVudUl0ZW1Qcm9wcztcbiAgICBjb250cm9sOiBNZW51SXRlbUNvbnRyb2w7XG4gIH0+ID0gW107XG5cbiAgLy8gVGhlIG5hdHVyYWwgaGlnaGxpZ2h0IGlzIHdoZXJlIHRoZSBoaWdobGlnaHQgd291bGQgYmUgaWYgbm8gbG9jayBpcyBhY3RpdmUuXG4gIF9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleDogP251bWJlcjtcbiAgX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXg6ID9udW1iZXI7XG4gIF9rZXlib2FyZFRha2VuQnlJbmRleDogP251bWJlcjtcblxuICBfZWw6ID9IVE1MRWxlbWVudDtcbiAgX2VsU2V0dGVyID0gKGVsOiA/SFRNTEVsZW1lbnQpID0+IHtcbiAgICB0aGlzLl9lbCA9IGVsO1xuICB9O1xuXG4gIF9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCgpOiA/bnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsID9cbiAgICAgIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggOiB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleDtcbiAgfVxuXG4gIHN0YXRpYyBjaGlsZENvbnRleHRUeXBlcyA9IHtcbiAgICBtZW51TGlzdDogUHJvcFR5cGVzLm9iamVjdFxuICB9O1xuXG4gIHN0YXRpYyBjb250ZXh0VHlwZXMgPSB7XG4gICAgbWVudUxpc3RJbnNwZWN0b3I6IFByb3BUeXBlcy5vYmplY3RcbiAgfTtcblxuICBnZXRDaGlsZENvbnRleHQoKTogT2JqZWN0IHtcbiAgICBjb25zdCBtZW51TGlzdDogTWVudUxpc3RDb250ZXh0ID0ge1xuICAgICAgcmVnaXN0ZXJJdGVtOiAocHJvcHMsIGNvbnRyb2wsIGVsKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSB7cHJvcHMsIGNvbnRyb2wsIGVsfTtcblxuICAgICAgICBjb25zdCByZWdpc3RlciA9ICgpID0+IHtcbiAgICAgICAgICBsZXQgaSA9IC0xO1xuICAgICAgICAgIGlmIChpdGVtLnByb3BzLmluZGV4ID09IG51bGwpIHtcbiAgICAgICAgICAgIGkgPSBmaW5kSW5kZXgoXG4gICAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtcyxcbiAgICAgICAgICAgICAgX2l0ZW0gPT5cbiAgICAgICAgICAgICAgICAoaXRlbS5lbC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihfaXRlbS5lbCkmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcpID09PSAwXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpID0gZmluZEluZGV4KFxuICAgICAgICAgICAgICB0aGlzLl9saXN0SXRlbXMsXG4gICAgICAgICAgICAgIF9pdGVtID0+IF9pdGVtLnByb3BzLmluZGV4ICE9IG51bGwgJiYgaXRlbS5wcm9wcy5pbmRleCA8IF9pdGVtLnByb3BzLmluZGV4XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaSA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9saXN0SXRlbXMuc3BsaWNlKGksIDAsIGl0ZW0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ICE9IG51bGwgJiYgaSA8PSB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCkge1xuICAgICAgICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJiBpIDw9IHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXgpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ICE9IG51bGwgJiYgaSA8PSB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCkge1xuICAgICAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICByZWdpc3RlcigpO1xuXG4gICAgICAgIGNvbnN0IG1lbnVMaXN0SGFuZGxlOiBNZW51TGlzdEhhbmRsZSA9IHtcbiAgICAgICAgICBoaWdobGlnaHQ6IChieUtleWJvYXJkOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignQWxyZWFkeSB1bnJlZ2lzdGVyZWQgTWVudUl0ZW0nKTtcbiAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHQoaSwgYnlLZXlib2FyZCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB1bmhpZ2hsaWdodDogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgaWYgKGkgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgdW5yZWdpc3RlcmVkIE1lbnVJdGVtJyk7XG4gICAgICAgICAgICBpZiAodGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT09IGkpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodChudWxsLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBpdGVtQ2hvc2VuOiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kaXNwYXRjaEV2ZW50KGNvbnRyb2wsIG5ldyBDaG9zZW5FdmVudCgnY2hvc2VuJywgZmFsc2UpKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRha2VLZXlib2FyZDogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgaWYgKGkgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgdW5yZWdpc3RlcmVkIE1lbnVJdGVtJyk7XG4gICAgICAgICAgICB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCA9IGk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWxlYXNlS2V5Ym9hcmQ6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVucmVnaXN0ZXJlZCBNZW51SXRlbScpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID09PSBpKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2tIaWdobGlnaHQ6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVucmVnaXN0ZXJlZCBNZW51SXRlbScpO1xuICAgICAgICAgICAgdGhpcy5fbG9ja0hpZ2hsaWdodChpKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHVubG9ja0hpZ2hsaWdodDogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaSA9IHRoaXMuX2xpc3RJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgaWYgKGkgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ0FscmVhZHkgdW5yZWdpc3RlcmVkIE1lbnVJdGVtJyk7XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9PT0gaSkge1xuICAgICAgICAgICAgICB0aGlzLl9sb2NrSGlnaGxpZ2h0KG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbW92ZUN1cnNvcjogKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1vdmVDdXJzb3IoZGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb24pO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdXBkYXRlUHJvcHM6IChuZXdQcm9wczogTWVudUl0ZW1Qcm9wcykgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcHMuaW5kZXggIT09IG5ld1Byb3BzLmluZGV4KSB7XG4gICAgICAgICAgICAgIGNvbnN0IG9sZEluZGV4ID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICAgIGNvbnN0IGlzTmF0dXJhbEhpZ2hsaWdodEluZGV4ID0gdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT09IG9sZEluZGV4O1xuICAgICAgICAgICAgICBjb25zdCBpc0xvY2tlZEhpZ2hsaWdodEluZGV4ID0gdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9PT0gb2xkSW5kZXg7XG4gICAgICAgICAgICAgIGNvbnN0IGlzS2V5Ym9hcmRUYWtlbkJ5SW5kZXggPSB0aGlzLl9rZXlib2FyZFRha2VuQnlJbmRleCA9PT0gb2xkSW5kZXg7XG5cbiAgICAgICAgICAgICAgbWVudUxpc3RIYW5kbGUudW5yZWdpc3RlcigpO1xuICAgICAgICAgICAgICBwcm9wcyA9IG5ld1Byb3BzO1xuICAgICAgICAgICAgICBpdGVtLnByb3BzID0gbmV3UHJvcHM7XG4gICAgICAgICAgICAgIHJlZ2lzdGVyKCk7XG5cbiAgICAgICAgICAgICAgaWYgKGlzTmF0dXJhbEhpZ2hsaWdodEluZGV4IHx8IGlzTG9ja2VkSGlnaGxpZ2h0SW5kZXggfHwgaXNLZXlib2FyZFRha2VuQnlJbmRleCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0luZGV4ID0gdGhpcy5fbGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF0dXJhbEhpZ2hsaWdodEluZGV4KSB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9IG5ld0luZGV4O1xuICAgICAgICAgICAgICAgIGlmIChpc0xvY2tlZEhpZ2hsaWdodEluZGV4KSB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICAgICAgaWYgKGlzS2V5Ym9hcmRUYWtlbkJ5SW5kZXgpIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHByb3BzID0gbmV3UHJvcHM7XG4gICAgICAgICAgICAgIGl0ZW0ucHJvcHMgPSBuZXdQcm9wcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHVucmVnaXN0ZXI6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLl9saXN0SXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgIGlmIChpIDwgMCkgdGhyb3cgbmV3IEVycm9yKCdBbHJlYWR5IHVucmVnaXN0ZXJlZCBNZW51SXRlbScpO1xuICAgICAgICAgICAgaWYgKGkgPT09IHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4KSB7XG4gICAgICAgICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID0gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJiBpIDwgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXgpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpID09PSB0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4KSB7XG4gICAgICAgICAgICAgIHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggPSBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ICE9IG51bGwgJiYgaSA8IHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXgpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGkgPT09IHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4KSB7XG4gICAgICAgICAgICAgIHRoaXMuX2tleWJvYXJkVGFrZW5CeUluZGV4ID0gbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggIT0gbnVsbCAmJiBpIDwgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXgpIHtcbiAgICAgICAgICAgICAgdGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXgtLTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gbWVudUxpc3RIYW5kbGU7XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4ge21lbnVMaXN0fTtcbiAgfVxuXG4gIF9wYXJlbnRDdHgoKTogP01lbnVMaXN0SW5zcGVjdG9yQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5tZW51TGlzdEluc3BlY3RvcjtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IGlzRW50ZXJPckFycm93S2V5ID0gZSA9PlxuICAgICAgKGUud2hpY2ggPT09IDEzKSB8fCAoMzcgPD0gZS53aGljaCAmJiBlLndoaWNoIDw9IDQwKTtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2VsO1xuICAgIC8qOjogaWYgKCFlbCkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG5cbiAgICAvLyBUaGUgb25seSB0aGluZ3MgdGhhdCBzaG91bGQgcmVjZWl2ZSBrZXlkb3duL2tleXByZXNzIGV2ZW50cyBiZWZvcmUgdXNcbiAgICAvLyBhcmUgb3VyIGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhIE1lbnVJdGVtIHRvIGNvbnRhaW4gYSB0ZXh0IGlucHV0XG4gICAgLy8gd2hpY2ggc2VsZWN0aXZlbHkgc3RvcHMgcHJvcGFnYXRpb24gb24ga2V5IGV2ZW50cyBmb3IgZXhhbXBsZS5cbiAgICBLZWZpci5tZXJnZShbXG4gICAgICBLZWZpci5mcm9tRXZlbnRzKHdpbmRvdywgJ2tleWRvd24nKS5maWx0ZXIoaXNFbnRlck9yQXJyb3dLZXkpXG4gICAgICAgIC5maWx0ZXIoZSA9PiBlbC5jb250YWlucyhlLnRhcmdldCkpLFxuICAgICAgZnJvbUV2ZW50c0NhcHR1cmUod2luZG93LCAna2V5ZG93bicpLmZpbHRlcihpc0VudGVyT3JBcnJvd0tleSlcbiAgICAgICAgLmZpbHRlcihlID0+ICFlbC5jb250YWlucyhlLnRhcmdldCkpXG4gICAgXSlcbiAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9zdG9wcGVyKVxuICAgICAgLm9uVmFsdWUoZXZlbnQgPT4gdGhpcy5fa2V5KGV2ZW50KSk7XG5cbiAgICBjb25zdCBwYXJlbnRDdHggPSB0aGlzLl9wYXJlbnRDdHgoKTtcbiAgICBpZiAocGFyZW50Q3R4KSB7XG4gICAgICBwYXJlbnRDdHgucmVnaXN0ZXJNZW51TGlzdCh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl9zdG9wcGVyLmRlc3Ryb3koKTtcblxuICAgIGNvbnN0IHBhcmVudEN0eCA9IHRoaXMuX3BhcmVudEN0eCgpO1xuICAgIGlmIChwYXJlbnRDdHgpIHtcbiAgICAgIHBhcmVudEN0eC51bnJlZ2lzdGVyTWVudUxpc3QodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgX25hdHVyYWxIaWdobGlnaHQoaW5kZXg6ID9udW1iZXIsIGJ5S2V5Ym9hcmQ6IGJvb2xlYW4sIGRpcmVjdGlvbjogP0RpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uOiA/UmVjdCkge1xuICAgIGNvbnN0IHZpc2libGVIaWdobGlnaHRlZEluZGV4ID0gdGhpcy5fZ2V0VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgoKTtcblxuICAgIGlmICh0aGlzLl9sb2NrZWRIaWdobGlnaHRlZEluZGV4ICE9IG51bGwgJiYgYnlLZXlib2FyZCkge1xuICAgICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID0gaW5kZXg7XG4gICAgaWYgKHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXggPT0gbnVsbCkge1xuICAgICAgaWYgKGluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zW2luZGV4XS5jb250cm9sLm5vdGlmeUhpZ2hsaWdodGVkKHRydWUsIGJ5S2V5Ym9hcmQsIGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsICYmIHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IGluZGV4KSB7XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtc1t2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleF0uY29udHJvbC5ub3RpZnlIaWdobGlnaHRlZChmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX2xvY2tIaWdobGlnaHQoaW5kZXg6ID9udW1iZXIpIHtcbiAgICBpZiAoaW5kZXggPT09IHRoaXMuX2xvY2tlZEhpZ2hsaWdodGVkSW5kZXgpIHJldHVybjtcbiAgICBjb25zdCB2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9IHRoaXMuX2dldFZpc2libGVIaWdobGlnaHRlZEluZGV4KCk7XG4gICAgdGhpcy5fbG9ja2VkSGlnaGxpZ2h0ZWRJbmRleCA9IGluZGV4O1xuICAgIGNvbnN0IG5ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4ID0gdGhpcy5fZ2V0VmlzaWJsZUhpZ2hsaWdodGVkSW5kZXgoKTtcbiAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCAmJiBuZXdWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9PSBudWxsKSB7XG4gICAgICAvLyBXaGVuIHVubG9ja2luZywgcHJlZmVyIHRvIGtlZXAgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIG92ZXIgZGUtc2VsZWN0aW5nXG4gICAgICAvLyBldmVyeXRoaW5nLlxuICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPSB2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleDtcbiAgICB9IGVsc2UgaWYgKHZpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG5ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4KSB7XG4gICAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9saXN0SXRlbXNbdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXhdLmNvbnRyb2wubm90aWZ5SGlnaGxpZ2h0ZWQoZmFsc2UpO1xuICAgICAgfVxuICAgICAgaWYgKG5ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zW25ld1Zpc2libGVIaWdobGlnaHRlZEluZGV4XS5jb250cm9sLm5vdGlmeUhpZ2hsaWdodGVkKHRydWUsIGZhbHNlKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICB0aGlzLl9saXN0SXRlbXNbdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXhdLmNvbnRyb2wubm90aWZ5SGlnaGxpZ2h0ZWQodHJ1ZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9kaXNwYXRjaEV2ZW50KGNvbnRyb2w6ID9NZW51SXRlbUNvbnRyb2wsIGV2ZW50OiBNZW51RXZlbnQpIHtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgY29udHJvbC5ub3RpZnlFdmVudChldmVudCk7XG4gICAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSByZXR1cm47XG4gICAgfVxuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgIGNhc2UgJ2Nob3Nlbic6XG4gICAgICAvKjo6IGlmICghKGV2ZW50IGluc3RhbmNlb2YgQ2hvc2VuRXZlbnQpKSB0aHJvdyBuZXcgRXJyb3IoKTsgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLm9uSXRlbUNob3NlbikgdGhpcy5wcm9wcy5vbkl0ZW1DaG9zZW4oZXZlbnQpO1xuICAgICAgYnJlYWs7XG4gICAgLy8gY2FzZSAndXAnOlxuICAgIC8vICAgYnJlYWs7XG4gICAgLy8gY2FzZSAnZG93bic6XG4gICAgLy8gICBicmVhaztcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uTGVmdFB1c2hlZCkgdGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQoZXZlbnQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgaWYgKHRoaXMucHJvcHMub25SaWdodFB1c2hlZCkgdGhpcy5wcm9wcy5vblJpZ2h0UHVzaGVkKGV2ZW50KTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSByZXR1cm47XG4gICAgY29uc3QgcGFyZW50Q3R4ID0gdGhpcy5fcGFyZW50Q3R4KCk7XG4gICAgaWYgKHBhcmVudEN0eCkge1xuICAgICAgcGFyZW50Q3R4LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIF9rZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5fa2V5Ym9hcmRUYWtlbkJ5SW5kZXggIT0gbnVsbCB8fCB0aGlzLl9saXN0SXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggPSB0aGlzLl9nZXRWaXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCgpO1xuXG4gICAgLy8gZW50ZXIsIGxlZnQsIHJpZ2h0IGFjdGl2YXRlIGZvciB0aGUgY3VycmVudCB2aXNpYmx5IHNlbGVjdGVkIGl0ZW0uXG4gICAgLy8gdXAgYW5kIGRvd24gZGUtYWN0aXZhdGUgYW55IGxvY2tzIGluIHBsYWNlLCBzbyB0aGF0IHRoZXkgYWN0IGZyb20gdGhlIGxhc3RcbiAgICAvLyBuYXR1cmFsbHktc2VsZWN0ZWQgaXRlbS5cblxuICAgIGxldCBtRXZlbnQgPSBudWxsO1xuXG4gICAgc3dpdGNoIChldmVudC53aGljaCkge1xuICAgIGNhc2UgMTM6IC8vZW50ZXJcbiAgICAgIGlmICh2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCAhPSBudWxsKSB7XG4gICAgICAgIG1FdmVudCA9IG5ldyBDaG9zZW5FdmVudCgnY2hvc2VuJywgdHJ1ZSk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzNzogLy9sZWZ0XG4gICAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICBtRXZlbnQgPSBuZXcgTWVudUV2ZW50KCdsZWZ0Jyk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIDM5OiAvL3JpZ2h0XG4gICAgICBpZiAodmlzaWJsZUhpZ2hsaWdodGVkSW5kZXggIT0gbnVsbCkge1xuICAgICAgICBtRXZlbnQgPSBuZXcgTWVudUV2ZW50KCdyaWdodCcpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAzODogLy91cFxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5tb3ZlQ3Vyc29yKCd1cCcpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSA0MDogLy9kb3duXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLm1vdmVDdXJzb3IoJ2Rvd24nKTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGlmIChtRXZlbnQpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleCA9PSBudWxsID8gbnVsbCA6XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtc1t2aXNpYmxlSGlnaGxpZ2h0ZWRJbmRleF0uY29udHJvbDtcbiAgICAgIHRoaXMuX2Rpc3BhdGNoRXZlbnQoY29udHJvbCwgbUV2ZW50KTtcbiAgICAgIGlmIChtRXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGlmIChtRXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCBtRXZlbnQuY2FuY2VsQnViYmxlKSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBtb3ZlQ3Vyc29yKGRpcmVjdGlvbjogRGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0KSB7XG4gICAgaWYgKHRoaXMuX2xpc3RJdGVtcy5sZW5ndGggPT0gMCkgcmV0dXJuO1xuXG4gICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICBjYXNlICd1cCc6XG4gICAgICBpZiAodGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT0gbnVsbCB8fCB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCA9PSAwKSB7XG4gICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHQodGhpcy5fbGlzdEl0ZW1zLmxlbmd0aC0xLCB0cnVlLCBkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0KHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4LTEsIHRydWUsIGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgaWYgKHRoaXMuX25hdHVyYWxIaWdobGlnaHRlZEluZGV4ID09IG51bGwgfHwgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodGVkSW5kZXggPT0gdGhpcy5fbGlzdEl0ZW1zLmxlbmd0aC0xKSB7XG4gICAgICAgIHRoaXMuX25hdHVyYWxIaWdobGlnaHQoMCwgdHJ1ZSwgZGlyZWN0aW9uLCBwcmV2Q3Vyc29yTG9jYXRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fbmF0dXJhbEhpZ2hsaWdodCh0aGlzLl9uYXR1cmFsSGlnaGxpZ2h0ZWRJbmRleCsxLCB0cnVlLCBkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBoYXNIaWdobGlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFZpc2libGVIaWdobGlnaHRlZEluZGV4KCkgIT0gbnVsbDtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiByb2xlPVwibWVudVwiIHJlZj17dGhpcy5fZWxTZXR0ZXJ9PlxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiJdfQ==

@@ -35,2 +35,6 @@ 'use strict';

var _ChosenEvent = require('./events/ChosenEvent');
var _ChosenEvent2 = _interopRequireDefault(_ChosenEvent);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -77,2 +81,3 @@

case 'chosen':
/*:: if (!(event instanceof ChosenEvent)) throw new Error(); */
if (_this2.props.onItemChosen) _this2.props.onItemChosen(event);

@@ -140,2 +145,2 @@ break;

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51TGlzdEluc3BlY3Rvci5qcyJdLCJuYW1lcyI6WyJNZW51TGlzdEluc3BlY3RvciIsIl9kZXNjZW5kYW50TWVudUxpc3RzIiwiY29udGV4dCIsIm1lbnVMaXN0SW5zcGVjdG9yIiwicmVnaXN0ZXJNZW51TGlzdCIsIm1lbnVMaXN0IiwicHVzaCIsInVucmVnaXN0ZXJNZW51TGlzdCIsImkiLCJpbmRleE9mIiwiRXJyb3IiLCJzcGxpY2UiLCJkaXNwYXRjaEV2ZW50IiwiZXZlbnQiLCJ0eXBlIiwicHJvcHMiLCJvbkl0ZW1DaG9zZW4iLCJvbkxlZnRQdXNoZWQiLCJvblJpZ2h0UHVzaGVkIiwiY2FuY2VsQnViYmxlIiwicGFyZW50Q3R4IiwiX3BhcmVudEN0eCIsImRpcmVjdGlvbiIsInByZXZDdXJzb3JMb2NhdGlvbiIsIm1vdmVDdXJzb3IiLCJsZW4iLCJsZW5ndGgiLCJoYXNIaWdobGlnaHQiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsImZ1bmMiLCJlbGVtZW50IiwiY2hpbGRDb250ZXh0VHlwZXMiLCJvYmplY3QiLCJjb250ZXh0VHlwZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFDQTs7Ozs7O0lBV3FCQSxpQjs7Ozs7Ozs7Ozs7Ozs7a09BaUJuQkMsb0IsR0FBd0MsRTs7Ozs7aUNBRUE7QUFDdEMsYUFBTyxLQUFLQyxPQUFMLENBQWFDLGlCQUFwQjtBQUNEOzs7c0NBRXlCO0FBQUE7O0FBQ3hCLFVBQU1BLG9CQUE4QztBQUNsREMsMEJBQWtCLDBCQUFDQyxRQUFELEVBQXdCO0FBQ3hDLGlCQUFLSixvQkFBTCxDQUEwQkssSUFBMUIsQ0FBK0JELFFBQS9CO0FBQ0QsU0FIaUQ7QUFJbERFLDRCQUFvQiw0QkFBQ0YsUUFBRCxFQUF3QjtBQUMxQyxjQUFNRyxJQUFJLE9BQUtQLG9CQUFMLENBQTBCUSxPQUExQixDQUFrQ0osUUFBbEMsQ0FBVjtBQUNBLGNBQUlHLElBQUksQ0FBUixFQUFXLE1BQU0sSUFBSUUsS0FBSixDQUFVLHlCQUFWLENBQU47QUFDWCxpQkFBS1Qsb0JBQUwsQ0FBMEJVLE1BQTFCLENBQWlDSCxDQUFqQyxFQUFvQyxDQUFwQztBQUNELFNBUmlEO0FBU2xESSx1QkFBZSx1QkFBQ0MsS0FBRCxFQUFzQjtBQUNuQyxrQkFBUUEsTUFBTUMsSUFBZDtBQUNBLGlCQUFLLFFBQUw7QUFDRSxrQkFBSSxPQUFLQyxLQUFMLENBQVdDLFlBQWYsRUFBNkIsT0FBS0QsS0FBTCxDQUFXQyxZQUFYLENBQXdCSCxLQUF4QjtBQUM3QjtBQUNGLGlCQUFLLE1BQUw7QUFDRSxrQkFBSSxPQUFLRSxLQUFMLENBQVdFLFlBQWYsRUFBNkIsT0FBS0YsS0FBTCxDQUFXRSxZQUFYLENBQXdCSixLQUF4QjtBQUM3QjtBQUNGLGlCQUFLLE9BQUw7QUFDRSxrQkFBSSxPQUFLRSxLQUFMLENBQVdHLGFBQWYsRUFBOEIsT0FBS0gsS0FBTCxDQUFXRyxhQUFYLENBQXlCTCxLQUF6QjtBQUM5QjtBQVRGO0FBV0EsY0FBSUEsTUFBTU0sWUFBVixFQUF3QjtBQUN4QixjQUFNQyxZQUFZLE9BQUtDLFVBQUwsRUFBbEI7QUFDQSxjQUFJRCxTQUFKLEVBQWU7QUFDYkEsc0JBQVVSLGFBQVYsQ0FBd0JDLEtBQXhCO0FBQ0Q7QUFDRjtBQTFCaUQsT0FBcEQ7QUE0QkEsYUFBTyxFQUFDVixvQ0FBRCxFQUFQO0FBQ0Q7OzsrQkFFVW1CLFMsRUFBc0JDLGtCLEVBQW9DO0FBQ25FLFVBQU1sQixXQUFXLEtBQUtKLG9CQUFMLENBQTBCLENBQTFCLENBQWpCO0FBQ0EsVUFBSSxDQUFDSSxRQUFMLEVBQWU7QUFDYixlQUFPLEtBQVA7QUFDRDtBQUNEQSxlQUFTbUIsVUFBVCxDQUFvQkYsU0FBcEIsRUFBK0JDLGtCQUEvQjtBQUNBLGFBQU8sSUFBUDtBQUNEOzs7bUNBRXVCO0FBQ3RCLFdBQUssSUFBSWYsSUFBRSxDQUFOLEVBQVNpQixNQUFJLEtBQUt4QixvQkFBTCxDQUEwQnlCLE1BQTVDLEVBQW9EbEIsSUFBRWlCLEdBQXRELEVBQTJEakIsR0FBM0QsRUFBZ0U7QUFDOUQsWUFBSSxLQUFLUCxvQkFBTCxDQUEwQk8sQ0FBMUIsRUFBNkJtQixZQUE3QixFQUFKLEVBQWlEO0FBQy9DLGlCQUFPLElBQVA7QUFDRDtBQUNGO0FBQ0QsYUFBTyxLQUFQO0FBQ0Q7Ozs2QkFFUTtBQUNQLGFBQU8sS0FBS1osS0FBTCxDQUFXYSxRQUFsQjtBQUNEOzs7RUEzRTRDLGdCQUFNQyxTOztBQUFoQzdCLGlCLENBQ1o4QixTLEdBQVk7QUFDakJkLGdCQUFjLG9CQUFVZSxJQURQO0FBRWpCZCxnQkFBYyxvQkFBVWMsSUFGUDtBQUdqQmIsaUJBQWUsb0JBQVVhLElBSFI7O0FBS2pCSCxZQUFVLG9CQUFVSTtBQUxILEM7QUFEQWhDLGlCLENBU1ppQyxpQixHQUFvQjtBQUN6QjlCLHFCQUFtQixvQkFBVStCO0FBREosQztBQVRSbEMsaUIsQ0FhWm1DLFksR0FBZTtBQUNwQmhDLHFCQUFtQixvQkFBVStCO0FBRFQsQztrQkFiSGxDLGlCIiwiZmlsZSI6Ik1lbnVMaXN0SW5zcGVjdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgdHlwZSBNZW51TGlzdCBmcm9tICcuL01lbnVMaXN0JztcbmltcG9ydCB0eXBlIE1lbnVFdmVudCBmcm9tICcuL2V2ZW50cy9NZW51RXZlbnQnO1xuaW1wb3J0IHR5cGUge0RpcmVjdGlvbiwgUmVjdH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIE1lbnVMaXN0SW5zcGVjdG9yQ29udGV4dCA9IHtcbiAgcmVnaXN0ZXJNZW51TGlzdChtZW51TGlzdDogTWVudUxpc3QpOiB2b2lkO1xuICB1bnJlZ2lzdGVyTWVudUxpc3QobWVudUxpc3Q6IE1lbnVMaXN0KTogdm9pZDtcbiAgZGlzcGF0Y2hFdmVudChldmVudDogTWVudUV2ZW50KTogdm9pZDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnVMaXN0SW5zcGVjdG9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkl0ZW1DaG9zZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uTGVmdFB1c2hlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25SaWdodFB1c2hlZDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmVsZW1lbnRcbiAgfTtcblxuICBzdGF0aWMgY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gICAgbWVudUxpc3RJbnNwZWN0b3I6IFByb3BUeXBlcy5vYmplY3RcbiAgfTtcblxuICBzdGF0aWMgY29udGV4dFR5cGVzID0ge1xuICAgIG1lbnVMaXN0SW5zcGVjdG9yOiBQcm9wVHlwZXMub2JqZWN0XG4gIH07XG5cbiAgX2Rlc2NlbmRhbnRNZW51TGlzdHM6IEFycmF5PE1lbnVMaXN0PiA9IFtdO1xuXG4gIF9wYXJlbnRDdHgoKTogP01lbnVMaXN0SW5zcGVjdG9yQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5tZW51TGlzdEluc3BlY3RvcjtcbiAgfVxuXG4gIGdldENoaWxkQ29udGV4dCgpOiBPYmplY3Qge1xuICAgIGNvbnN0IG1lbnVMaXN0SW5zcGVjdG9yOiBNZW51TGlzdEluc3BlY3RvckNvbnRleHQgPSB7XG4gICAgICByZWdpc3Rlck1lbnVMaXN0OiAobWVudUxpc3Q6IE1lbnVMaXN0KSA9PiB7XG4gICAgICAgIHRoaXMuX2Rlc2NlbmRhbnRNZW51TGlzdHMucHVzaChtZW51TGlzdCk7XG4gICAgICB9LFxuICAgICAgdW5yZWdpc3Rlck1lbnVMaXN0OiAobWVudUxpc3Q6IE1lbnVMaXN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGkgPSB0aGlzLl9kZXNjZW5kYW50TWVudUxpc3RzLmluZGV4T2YobWVudUxpc3QpO1xuICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignTWVudUxpc3Qgbm90IHJlZ2lzdGVyZWQnKTtcbiAgICAgICAgdGhpcy5fZGVzY2VuZGFudE1lbnVMaXN0cy5zcGxpY2UoaSwgMSk7XG4gICAgICB9LFxuICAgICAgZGlzcGF0Y2hFdmVudDogKGV2ZW50OiBNZW51RXZlbnQpID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Nob3Nlbic6XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25JdGVtQ2hvc2VuKSB0aGlzLnByb3BzLm9uSXRlbUNob3NlbihldmVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uTGVmdFB1c2hlZCkgdGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQoZXZlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SaWdodFB1c2hlZCkgdGhpcy5wcm9wcy5vblJpZ2h0UHVzaGVkKGV2ZW50KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHBhcmVudEN0eCA9IHRoaXMuX3BhcmVudEN0eCgpO1xuICAgICAgICBpZiAocGFyZW50Q3R4KSB7XG4gICAgICAgICAgcGFyZW50Q3R4LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4ge21lbnVMaXN0SW5zcGVjdG9yfTtcbiAgfVxuXG4gIG1vdmVDdXJzb3IoZGlyZWN0aW9uOiBEaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QpOiBib29sZWFuIHtcbiAgICBjb25zdCBtZW51TGlzdCA9IHRoaXMuX2Rlc2NlbmRhbnRNZW51TGlzdHNbMF07XG4gICAgaWYgKCFtZW51TGlzdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBtZW51TGlzdC5tb3ZlQ3Vyc29yKGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGhhc0hpZ2hsaWdodCgpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpPTAsIGxlbj10aGlzLl9kZXNjZW5kYW50TWVudUxpc3RzLmxlbmd0aDsgaTxsZW47IGkrKykge1xuICAgICAgaWYgKHRoaXMuX2Rlc2NlbmRhbnRNZW51TGlzdHNbaV0uaGFzSGlnaGxpZ2h0KCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9NZW51TGlzdEluc3BlY3Rvci5qcyJdLCJuYW1lcyI6WyJNZW51TGlzdEluc3BlY3RvciIsIl9kZXNjZW5kYW50TWVudUxpc3RzIiwiY29udGV4dCIsIm1lbnVMaXN0SW5zcGVjdG9yIiwicmVnaXN0ZXJNZW51TGlzdCIsIm1lbnVMaXN0IiwicHVzaCIsInVucmVnaXN0ZXJNZW51TGlzdCIsImkiLCJpbmRleE9mIiwiRXJyb3IiLCJzcGxpY2UiLCJkaXNwYXRjaEV2ZW50IiwiZXZlbnQiLCJ0eXBlIiwicHJvcHMiLCJvbkl0ZW1DaG9zZW4iLCJvbkxlZnRQdXNoZWQiLCJvblJpZ2h0UHVzaGVkIiwiY2FuY2VsQnViYmxlIiwicGFyZW50Q3R4IiwiX3BhcmVudEN0eCIsImRpcmVjdGlvbiIsInByZXZDdXJzb3JMb2NhdGlvbiIsIm1vdmVDdXJzb3IiLCJsZW4iLCJsZW5ndGgiLCJoYXNIaWdobGlnaHQiLCJjaGlsZHJlbiIsIkNvbXBvbmVudCIsInByb3BUeXBlcyIsImZ1bmMiLCJlbGVtZW50IiwiY2hpbGRDb250ZXh0VHlwZXMiLCJvYmplY3QiLCJjb250ZXh0VHlwZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFFQTs7OztBQUdBOzs7Ozs7SUFnQnFCQSxpQjs7Ozs7Ozs7Ozs7Ozs7a09BaUJuQkMsb0IsR0FBd0MsRTs7Ozs7aUNBRUE7QUFDdEMsYUFBTyxLQUFLQyxPQUFMLENBQWFDLGlCQUFwQjtBQUNEOzs7c0NBRXlCO0FBQUE7O0FBQ3hCLFVBQU1BLG9CQUE4QztBQUNsREMsMEJBQWtCLDBCQUFDQyxRQUFELEVBQXdCO0FBQ3hDLGlCQUFLSixvQkFBTCxDQUEwQkssSUFBMUIsQ0FBK0JELFFBQS9CO0FBQ0QsU0FIaUQ7QUFJbERFLDRCQUFvQiw0QkFBQ0YsUUFBRCxFQUF3QjtBQUMxQyxjQUFNRyxJQUFJLE9BQUtQLG9CQUFMLENBQTBCUSxPQUExQixDQUFrQ0osUUFBbEMsQ0FBVjtBQUNBLGNBQUlHLElBQUksQ0FBUixFQUFXLE1BQU0sSUFBSUUsS0FBSixDQUFVLHlCQUFWLENBQU47QUFDWCxpQkFBS1Qsb0JBQUwsQ0FBMEJVLE1BQTFCLENBQWlDSCxDQUFqQyxFQUFvQyxDQUFwQztBQUNELFNBUmlEO0FBU2xESSx1QkFBZSx1QkFBQ0MsS0FBRCxFQUFzQjtBQUNuQyxrQkFBUUEsTUFBTUMsSUFBZDtBQUNBLGlCQUFLLFFBQUw7QUFDRTtBQUNBLGtCQUFJLE9BQUtDLEtBQUwsQ0FBV0MsWUFBZixFQUE2QixPQUFLRCxLQUFMLENBQVdDLFlBQVgsQ0FBd0JILEtBQXhCO0FBQzdCO0FBQ0YsaUJBQUssTUFBTDtBQUNFLGtCQUFJLE9BQUtFLEtBQUwsQ0FBV0UsWUFBZixFQUE2QixPQUFLRixLQUFMLENBQVdFLFlBQVgsQ0FBd0JKLEtBQXhCO0FBQzdCO0FBQ0YsaUJBQUssT0FBTDtBQUNFLGtCQUFJLE9BQUtFLEtBQUwsQ0FBV0csYUFBZixFQUE4QixPQUFLSCxLQUFMLENBQVdHLGFBQVgsQ0FBeUJMLEtBQXpCO0FBQzlCO0FBVkY7QUFZQSxjQUFJQSxNQUFNTSxZQUFWLEVBQXdCO0FBQ3hCLGNBQU1DLFlBQVksT0FBS0MsVUFBTCxFQUFsQjtBQUNBLGNBQUlELFNBQUosRUFBZTtBQUNiQSxzQkFBVVIsYUFBVixDQUF3QkMsS0FBeEI7QUFDRDtBQUNGO0FBM0JpRCxPQUFwRDtBQTZCQSxhQUFPLEVBQUNWLG9DQUFELEVBQVA7QUFDRDs7OytCQUVVbUIsUyxFQUFzQkMsa0IsRUFBb0M7QUFDbkUsVUFBTWxCLFdBQVcsS0FBS0osb0JBQUwsQ0FBMEIsQ0FBMUIsQ0FBakI7QUFDQSxVQUFJLENBQUNJLFFBQUwsRUFBZTtBQUNiLGVBQU8sS0FBUDtBQUNEO0FBQ0RBLGVBQVNtQixVQUFULENBQW9CRixTQUFwQixFQUErQkMsa0JBQS9CO0FBQ0EsYUFBTyxJQUFQO0FBQ0Q7OzttQ0FFdUI7QUFDdEIsV0FBSyxJQUFJZixJQUFFLENBQU4sRUFBU2lCLE1BQUksS0FBS3hCLG9CQUFMLENBQTBCeUIsTUFBNUMsRUFBb0RsQixJQUFFaUIsR0FBdEQsRUFBMkRqQixHQUEzRCxFQUFnRTtBQUM5RCxZQUFJLEtBQUtQLG9CQUFMLENBQTBCTyxDQUExQixFQUE2Qm1CLFlBQTdCLEVBQUosRUFBaUQ7QUFDL0MsaUJBQU8sSUFBUDtBQUNEO0FBQ0Y7QUFDRCxhQUFPLEtBQVA7QUFDRDs7OzZCQUVRO0FBQ1AsYUFBTyxLQUFLWixLQUFMLENBQVdhLFFBQWxCO0FBQ0Q7OztFQTVFNEMsZ0JBQU1DLFM7O0FBQWhDN0IsaUIsQ0FDWjhCLFMsR0FBWTtBQUNqQmQsZ0JBQWMsb0JBQVVlLElBRFA7QUFFakJkLGdCQUFjLG9CQUFVYyxJQUZQO0FBR2pCYixpQkFBZSxvQkFBVWEsSUFIUjs7QUFLakJILFlBQVUsb0JBQVVJO0FBTEgsQztBQURBaEMsaUIsQ0FTWmlDLGlCLEdBQW9CO0FBQ3pCOUIscUJBQW1CLG9CQUFVK0I7QUFESixDO0FBVFJsQyxpQixDQWFabUMsWSxHQUFlO0FBQ3BCaEMscUJBQW1CLG9CQUFVK0I7QUFEVCxDO2tCQWJIbEMsaUIiLCJmaWxlIjoiTWVudUxpc3RJbnNwZWN0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge05vZGUgYXMgUmVhY3ROb2RlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHR5cGUgTWVudUxpc3QgZnJvbSAnLi9NZW51TGlzdCc7XG5pbXBvcnQgdHlwZSBNZW51RXZlbnQgZnJvbSAnLi9ldmVudHMvTWVudUV2ZW50JztcbmltcG9ydCBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5pbXBvcnQgdHlwZSB7RGlyZWN0aW9uLCBSZWN0fSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgTWVudUxpc3RJbnNwZWN0b3JDb250ZXh0ID0ge1xuICByZWdpc3Rlck1lbnVMaXN0KG1lbnVMaXN0OiBNZW51TGlzdCk6IHZvaWQ7XG4gIHVucmVnaXN0ZXJNZW51TGlzdChtZW51TGlzdDogTWVudUxpc3QpOiB2b2lkO1xuICBkaXNwYXRjaEV2ZW50KGV2ZW50OiBNZW51RXZlbnQpOiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgUHJvcHMgPSB7XG4gIG9uSXRlbUNob3Nlbj86ID8oZXZlbnQ6IENob3NlbkV2ZW50KSA9PiB2b2lkO1xuICBvbkxlZnRQdXNoZWQ/OiA/KGV2ZW50OiBNZW51RXZlbnQpID0+IHZvaWQ7XG4gIG9uUmlnaHRQdXNoZWQ/OiA/KGV2ZW50OiBNZW51RXZlbnQpID0+IHZvaWQ7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVudUxpc3RJbnNwZWN0b3IgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHJvcHM+IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBvbkl0ZW1DaG9zZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uTGVmdFB1c2hlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25SaWdodFB1c2hlZDogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICBjaGlsZHJlbjogUHJvcFR5cGVzLmVsZW1lbnRcbiAgfTtcblxuICBzdGF0aWMgY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gICAgbWVudUxpc3RJbnNwZWN0b3I6IFByb3BUeXBlcy5vYmplY3RcbiAgfTtcblxuICBzdGF0aWMgY29udGV4dFR5cGVzID0ge1xuICAgIG1lbnVMaXN0SW5zcGVjdG9yOiBQcm9wVHlwZXMub2JqZWN0XG4gIH07XG5cbiAgX2Rlc2NlbmRhbnRNZW51TGlzdHM6IEFycmF5PE1lbnVMaXN0PiA9IFtdO1xuXG4gIF9wYXJlbnRDdHgoKTogP01lbnVMaXN0SW5zcGVjdG9yQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dC5tZW51TGlzdEluc3BlY3RvcjtcbiAgfVxuXG4gIGdldENoaWxkQ29udGV4dCgpOiBPYmplY3Qge1xuICAgIGNvbnN0IG1lbnVMaXN0SW5zcGVjdG9yOiBNZW51TGlzdEluc3BlY3RvckNvbnRleHQgPSB7XG4gICAgICByZWdpc3Rlck1lbnVMaXN0OiAobWVudUxpc3Q6IE1lbnVMaXN0KSA9PiB7XG4gICAgICAgIHRoaXMuX2Rlc2NlbmRhbnRNZW51TGlzdHMucHVzaChtZW51TGlzdCk7XG4gICAgICB9LFxuICAgICAgdW5yZWdpc3Rlck1lbnVMaXN0OiAobWVudUxpc3Q6IE1lbnVMaXN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGkgPSB0aGlzLl9kZXNjZW5kYW50TWVudUxpc3RzLmluZGV4T2YobWVudUxpc3QpO1xuICAgICAgICBpZiAoaSA8IDApIHRocm93IG5ldyBFcnJvcignTWVudUxpc3Qgbm90IHJlZ2lzdGVyZWQnKTtcbiAgICAgICAgdGhpcy5fZGVzY2VuZGFudE1lbnVMaXN0cy5zcGxpY2UoaSwgMSk7XG4gICAgICB9LFxuICAgICAgZGlzcGF0Y2hFdmVudDogKGV2ZW50OiBNZW51RXZlbnQpID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2Nob3Nlbic6XG4gICAgICAgICAgLyo6OiBpZiAoIShldmVudCBpbnN0YW5jZW9mIENob3NlbkV2ZW50KSkgdGhyb3cgbmV3IEVycm9yKCk7ICovXG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25JdGVtQ2hvc2VuKSB0aGlzLnByb3BzLm9uSXRlbUNob3NlbihldmVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uTGVmdFB1c2hlZCkgdGhpcy5wcm9wcy5vbkxlZnRQdXNoZWQoZXZlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyaWdodCc6XG4gICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SaWdodFB1c2hlZCkgdGhpcy5wcm9wcy5vblJpZ2h0UHVzaGVkKGV2ZW50KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHBhcmVudEN0eCA9IHRoaXMuX3BhcmVudEN0eCgpO1xuICAgICAgICBpZiAocGFyZW50Q3R4KSB7XG4gICAgICAgICAgcGFyZW50Q3R4LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4ge21lbnVMaXN0SW5zcGVjdG9yfTtcbiAgfVxuXG4gIG1vdmVDdXJzb3IoZGlyZWN0aW9uOiBEaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QpOiBib29sZWFuIHtcbiAgICBjb25zdCBtZW51TGlzdCA9IHRoaXMuX2Rlc2NlbmRhbnRNZW51TGlzdHNbMF07XG4gICAgaWYgKCFtZW51TGlzdCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBtZW51TGlzdC5tb3ZlQ3Vyc29yKGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGhhc0hpZ2hsaWdodCgpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpPTAsIGxlbj10aGlzLl9kZXNjZW5kYW50TWVudUxpc3RzLmxlbmd0aDsgaTxsZW47IGkrKykge1xuICAgICAgaWYgKHRoaXMuX2Rlc2NlbmRhbnRNZW51TGlzdHNbaV0uaGFzSGlnaGxpZ2h0KCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgfVxufVxuIl19

@@ -98,3 +98,3 @@ 'use strict';

this.refs.menuItem.lockHighlight();
this._menuItem.lockHighlight();
if (this.state.opened) return;

@@ -106,3 +106,3 @@ if (this.props.onWillOpen) this.props.onWillOpen();

});
this.refs.menuItem.takeKeyboard();
this._menuItem.takeKeyboard();
}

@@ -115,4 +115,4 @@ }, {

this.setState({ opened: false });
this.refs.menuItem.releaseKeyboard();
this.refs.menuItem.unlockHighlight();
this._menuItem.releaseKeyboard();
this._menuItem.unlockHighlight();
}

@@ -131,3 +131,3 @@ }, {

value: function reposition() {
this.refs.floatAnchor.reposition();
this._floatAnchor.reposition();
}

@@ -137,3 +137,3 @@ }, {

value: function hasHighlight() {
return this.refs.menuItem.hasHighlight();
return this._menuItem.hasHighlight();
}

@@ -145,3 +145,3 @@ }, {

this.refs.menuItem.highlight(byKeyboard);
this._menuItem.highlight(byKeyboard);
}

@@ -151,3 +151,3 @@ }, {

value: function unhighlight() {
this.refs.menuItem.unhighlight();
this._menuItem.unhighlight();
}

@@ -157,3 +157,3 @@ }, {

value: function moveCursor(direction, prevCursorLocation) {
this.refs.menuItem.moveCursor(direction, prevCursorLocation);
this._menuItem.moveCursor(direction, prevCursorLocation);
}

@@ -183,3 +183,3 @@ }, {

if (!this.state.opened) {
this.refs.menuItem.unhighlight();
this._menuItem.unhighlight();
return;

@@ -190,3 +190,3 @@ }

var menuRect = this.refs.menuContainer.getBoundingClientRect();
var menuRect = this._menuContainer.getBoundingClientRect();

@@ -233,3 +233,3 @@ var startTime = Date.now();

_this4.close();
_this4.refs.menuItem.unhighlight();
_this4._menuItem.unhighlight();
});

@@ -241,3 +241,3 @@ }

this._resetMouseLeaveWatcher.emit(null);
this.refs.menuItem.unlockHighlight();
this._menuItem.unlockHighlight();
}

@@ -274,3 +274,5 @@ }, {

{
ref: 'menuItem',
ref: function ref(el) {
if (el) _this5._menuItem = el;
},
index: index,

@@ -292,3 +294,3 @@ style: style,

_this5.open();
_this5.refs.menuInspector.moveCursor('down');
_this5._menuInspector.moveCursor('down');
}

@@ -301,3 +303,3 @@ },

if (e.byKeyboard) {
_this5.refs.menuInspector.moveCursor('down');
_this5._menuInspector.moveCursor('down');
}

@@ -309,3 +311,5 @@ },

_react2.default.createElement(_reactFloatAnchor2.default, {
ref: 'floatAnchor',
ref: function ref(el) {
if (el) _this5._floatAnchor = el;
},
options: positionOptions,

@@ -321,3 +325,5 @@ zIndex: menuZIndex,

{
ref: 'menuInspector',
ref: function ref(el) {
if (el) _this5._menuInspector = el;
},
onLeftPushed: function onLeftPushed(e) {

@@ -332,3 +338,5 @@ e.stopPropagation();

{
ref: 'menuContainer',
ref: function ref(el) {
if (el) _this5._menuContainer = el;
},
onMouseEnter: function onMouseEnter() {

@@ -376,2 +384,2 @@ return _this5._mouseEnterMenu();

module.exports = exports['default'];
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TdWJNZW51SXRlbS5qcyJdLCJuYW1lcyI6WyJTdWJNZW51SXRlbSIsInN0YXRlIiwib3BlbmVkIiwiX3Jlc2V0TW91c2VMZWF2ZVdhdGNoZXIiLCJfc3RvcHBlciIsImRlc3Ryb3kiLCJjYWxsYmFjayIsInJlZnMiLCJtZW51SXRlbSIsImxvY2tIaWdobGlnaHQiLCJwcm9wcyIsIm9uV2lsbE9wZW4iLCJzZXRTdGF0ZSIsIm9uRGlkT3BlbiIsInRha2VLZXlib2FyZCIsIm9uV2lsbENsb3NlIiwicmVsZWFzZUtleWJvYXJkIiwidW5sb2NrSGlnaGxpZ2h0IiwiY2xvc2UiLCJvcGVuIiwiZmxvYXRBbmNob3IiLCJyZXBvc2l0aW9uIiwiaGFzSGlnaGxpZ2h0IiwiYnlLZXlib2FyZCIsImhpZ2hsaWdodCIsInVuaGlnaGxpZ2h0IiwiZGlyZWN0aW9uIiwicHJldkN1cnNvckxvY2F0aW9uIiwibW92ZUN1cnNvciIsImhpZ2hsaWdodGVkIiwiZXZlbnQiLCJlbWl0IiwiT1BFTl9ERUxBWSIsImxhdGVyIiwidGFrZVVudGlsQnkiLCJvblZhbHVlIiwibWVudVJlY3QiLCJtZW51Q29udGFpbmVyIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0Iiwic3RhcnRUaW1lIiwiRGF0ZSIsIm5vdyIsInN0YXJ0WCIsInBhZ2VYIiwic3RhcnRZIiwicGFnZVkiLCJnZXREaXN0YW5jZSIsIngiLCJ5IiwibGVmdCIsInRvcCIsInJpZ2h0Iiwid2lkdGgiLCJib3R0b20iLCJzdGFydERpc3RhbmNlIiwibGFzdENvb3JkcyIsIk1JTl9TUEVFRCIsIk1BWF9USU1FIiwiTEVBRF9USU1FIiwiZnJvbUV2ZW50cyIsIndpbmRvdyIsImJ1ZmZlckJ5IiwiaW50ZXJ2YWwiLCJtYXAiLCJldmVudHMiLCJsZW5ndGgiLCJsYXN0IiwiZmlsdGVyIiwiZGlzdGFuY2UiLCJtYXhEaXN0YW5jZSIsIm1lcmdlIiwidGFrZSIsImluZGV4IiwiaGlnaGxpZ2h0ZWRTdHlsZSIsImhpZ2hsaWdodGVkQ2xhc3NOYW1lIiwicG9zaXRpb25PcHRpb25zIiwibWVudVpJbmRleCIsImNoaWxkcmVuIiwibWVudSIsInN0eWxlIiwiY2xhc3NOYW1lIiwib3BlbmVkU3R5bGUiLCJvcGVuZWRDbGFzc05hbWUiLCJoIiwiZSIsIl9vbkhpZ2hsaWdodENoYW5nZSIsIl9vbk1vdXNlTGVhdmVJdGVtIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJtZW51SW5zcGVjdG9yIiwiX21vdXNlRW50ZXJNZW51IiwiQ29tcG9uZW50IiwicHJvcFR5cGVzIiwibm9kZSIsIm9iamVjdCIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm51bWJlciIsImZ1bmMiLCJvbkl0ZW1DaG9zZW4iLCJvbkhpZ2hsaWdodENoYW5nZSIsImRlZmF1bHRQcm9wcyIsInBvc2l0aW9uIiwidkFsaWduIiwiaEFsaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7Ozs7OztJQVVxQkEsVzs7Ozs7Ozs7Ozs7Ozs7c05BNkJuQkMsSyxHQUFlO0FBQ2JDLGNBQVE7QUFESyxLLFFBSWZDLHVCLEdBQXFDLHlCLFFBQ3JDQyxRLEdBQVcsNkI7Ozs7OzJDQUVZO0FBQ3JCLFdBQUtBLFFBQUwsQ0FBY0MsT0FBZDtBQUNEOzs7eUJBRUlDLFEsRUFBc0I7QUFBQTs7QUFDekIsV0FBS0MsSUFBTCxDQUFVQyxRQUFWLENBQW1CQyxhQUFuQjtBQUNBLFVBQUksS0FBS1IsS0FBTCxDQUFXQyxNQUFmLEVBQXVCO0FBQ3ZCLFVBQUksS0FBS1EsS0FBTCxDQUFXQyxVQUFmLEVBQTJCLEtBQUtELEtBQUwsQ0FBV0MsVUFBWDtBQUMzQixXQUFLQyxRQUFMLENBQWMsRUFBQ1YsUUFBUSxJQUFULEVBQWQsRUFBOEIsWUFBTTtBQUNsQyxZQUFJLE9BQUtRLEtBQUwsQ0FBV0csU0FBZixFQUEwQixPQUFL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b0JBQVVlLElBREM7QUFFakJsQixtQkFBaUIsb0JBQVVtQixNQUZWO0FBR2pCbEIsY0FBWSxvQkFBVW1CLFNBQVYsQ0FBb0IsQ0FBQyxvQkFBVUMsTUFBWCxFQUFtQixvQkFBVUMsTUFBN0IsQ0FBcEIsQ0FISzs7QUFLakJ0RixjQUFZLG9CQUFVdUYsSUFMTDtBQU1qQnJGLGFBQVcsb0JBQVVxRixJQU5KO0FBT2pCbkYsZUFBYSxvQkFBVW1GLElBUE47O0FBU2pCbEIsYUFBVyxvQkFBVWdCLE1BVEo7QUFVakJqQixTQUFPLG9CQUFVZSxNQVZBO0FBV2pCcEIsd0JBQXNCLG9CQUFVc0IsTUFYZjtBQVlqQnZCLG9CQUFrQixvQkFBVXFCLE1BWlg7QUFhakJ0QixTQUFPLG9CQUFVeUIsTUFiQTs7QUFlakJmLG1CQUFpQixvQkFBVWMsTUFmVjtBQWdCakJmLGVBQWEsb0JBQVVhLE1BaEJOOztBQWtCakJLLGdCQUFjLG9CQUFVRCxJQWxCUDtBQW1CakJFLHFCQUFtQixvQkFBVUYsSUFuQlo7O0FBcUJqQnJCLFlBQVUsb0JBQVVnQjtBQXJCSCxDO0FBREE3RixXLENBeUJacUcsWSxHQUFlO0FBQ3BCMUIsbUJBQWlCLEVBQUMyQixVQUFTLE9BQVYsRUFBbUJDLFFBQU8sS0FBMUIsRUFBaUNDLFFBQVEsTUFBekM7QUFERyxDO2tCQXpCSHhHLFciLCJmaWxlIjoiU3ViTWVudUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgS2VmaXIgZnJvbSAna2VmaXInO1xuaW1wb3J0IGtlZmlyQnVzIGZyb20gJ2tlZmlyLWJ1cyc7XG5pbXBvcnQgdHlwZSB7QnVzfSBmcm9tICdrZWZpci1idXMnO1xuaW1wb3J0IGtlZmlyU3RvcHBlciBmcm9tICdrZWZpci1zdG9wcGVyJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHBvaW50UmVjdERpc3RhbmNlIGZyb20gJy4vbGliL3BvaW50UmVjdERpc3RhbmNlJztcblxuaW1wb3J0IE1lbnVMaXN0SW5zcGVjdG9yIGZyb20gJy4vTWVudUxpc3RJbnNwZWN0b3InO1xuaW1wb3J0IEZsb2F0QW5jaG9yIGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgTWVudUl0ZW0gZnJvbSAnLi9NZW51SXRlbSc7XG5cbmltcG9ydCB0eXBlIHtEaXJlY3Rpb24sIFJlY3R9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgTWVudUV2ZW50IGZyb20gJy4vZXZlbnRzL01lbnVFdmVudCc7XG5pbXBvcnQgdHlwZSBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIG9wZW5lZDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1Yk1lbnVJdGVtIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBtZW51OiBQcm9wVHlwZXMubm9kZSxcbiAgICBwb3NpdGlvbk9wdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgbWVudVpJbmRleDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm51bWJlcl0pLFxuXG4gICAgb25XaWxsT3BlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25EaWRPcGVuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbldpbGxDbG9zZTogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaGlnaGxpZ2h0ZWRDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgaGlnaGxpZ2h0ZWRTdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBpbmRleDogUHJvcFR5cGVzLm51bWJlcixcblxuICAgIG9wZW5lZENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvcGVuZWRTdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcblxuICAgIG9uSXRlbUNob3NlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25IaWdobGlnaHRDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBwb3NpdGlvbk9wdGlvbnM6IHtwb3NpdGlvbjoncmlnaHQnLCB2QWxpZ246J3RvcCcsIGhBbGlnbjogJ2xlZnQnfVxuICB9O1xuXG4gIHN0YXRlOiBTdGF0ZSA9IHtcbiAgICBvcGVuZWQ6IGZhbHNlXG4gIH07XG5cbiAgX3Jlc2V0TW91c2VMZWF2ZVdhdGNoZXI6IEJ1czxudWxsPiA9IGtlZmlyQnVzKCk7XG4gIF9zdG9wcGVyID0ga2VmaXJTdG9wcGVyKCk7XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5fc3RvcHBlci5kZXN0cm95KCk7XG4gIH1cblxuICBvcGVuKGNhbGxiYWNrPzogKCkgPT4gYW55KSB7XG4gICAgdGhpcy5yZWZzLm1lbnVJdGVtLmxvY2tIaWdobGlnaHQoKTtcbiAgICBpZiAodGhpcy5zdGF0ZS5vcGVuZWQpIHJldHVybjtcbiAgICBpZiAodGhpcy5wcm9wcy5vbldpbGxPcGVuKSB0aGlzLnByb3BzLm9uV2lsbE9wZW4oKTtcbiAgICB0aGlzLnNldFN0YXRlKHtvcGVuZWQ6IHRydWV9LCAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5vbkRpZE9wZW4pIHRoaXMucHJvcHMub25EaWRPcGVuKCk7XG4gICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7XG4gICAgfSk7XG4gICAgdGhpcy5yZWZzLm1lbnVJdGVtLnRha2VLZXlib2FyZCgpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLm9wZW5lZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnByb3BzLm9uV2lsbENsb3NlKSB0aGlzLnByb3BzLm9uV2lsbENsb3NlKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7b3BlbmVkOiBmYWxzZX0pO1xuICAgIHRoaXMucmVmcy5tZW51SXRlbS5yZWxlYXNlS2V5Ym9hcmQoKTtcbiAgICB0aGlzLnJlZnMubWVudUl0ZW0udW5sb2NrSGlnaGxpZ2h0KCk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUub3BlbmVkKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHJlcG9zaXRpb24oKSB7XG4gICAgdGhpcy5yZWZzLmZsb2F0QW5jaG9yLnJlcG9zaXRpb24oKTtcbiAgfVxuXG4gIGhhc0hpZ2hsaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZWZzLm1lbnVJdGVtLmhhc0hpZ2hsaWdodCgpO1xuICB9XG5cbiAgaGlnaGxpZ2h0KGJ5S2V5Ym9hcmQ6IGJvb2xlYW49dHJ1ZSkge1xuICAgIHRoaXMucmVmcy5tZW51SXRlbS5oaWdobGlnaHQoYnlLZXlib2FyZCk7XG4gIH1cblxuICB1bmhpZ2hsaWdodCgpIHtcbiAgICB0aGlzLnJlZnMubWVudUl0ZW0udW5oaWdobGlnaHQoKTtcbiAgfVxuXG4gIG1vdmVDdXJzb3IoZGlyZWN0aW9uOiBEaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QpIHtcbiAgICB0aGlzLnJlZnMubWVudUl0ZW0ubW92ZUN1cnNvcihkaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbik7XG4gIH1cblxuICBfb25IaWdobGlnaHRDaGFuZ2UoaGlnaGxpZ2h0ZWQ6IGJvb2xlYW4sIGV2ZW50OiBPYmplY3QpIHtcbiAgICB0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyLmVtaXQobnVsbCk7XG5cbiAgICBpZiAoaGlnaGxpZ2h0ZWQgJiYgIWV2ZW50LmJ5S2V5Ym9hcmQpIHtcbiAgICAgIGNvbnN0IE9QRU5fREVMQVkgPSAyMDA7XG5cbiAgICAgIEtlZmlyLmxhdGVyKE9QRU5fREVMQVkpXG4gICAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyKVxuICAgICAgICAudGFrZVVudGlsQnkodGhpcy5fc3RvcHBlcilcbiAgICAgICAgLm9uVmFsdWUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKCFoaWdobGlnaHRlZCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIF9vbk1vdXNlTGVhdmVJdGVtKGV2ZW50OiBPYmplY3QpIHtcbiAgICBpZiAoIXRoaXMuc3RhdGUub3BlbmVkKSB7XG4gICAgICB0aGlzLnJlZnMubWVudUl0ZW0udW5oaWdobGlnaHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgbW91c2UgaXNuJ3QgZ29pbmcgdG93YXJkIHRoZSBtZW51LCB0aGVuIHVuaGlnaGxpZ2h0IG91cnNlbGYuXG5cbiAgICBjb25zdCBtZW51UmVjdCA9IHRoaXMucmVmcy5tZW51Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBzdGFydFggPSBldmVudC5wYWdlWCwgc3RhcnRZID0gZXZlbnQucGFnZVk7XG5cbiAgICBmdW5jdGlvbiBnZXREaXN0YW5jZSh4LCB5KSB7XG4gICAgICByZXR1cm4gcG9pbnRSZWN0RGlzdGFuY2UoeCwgeSwgbWVudVJlY3QubGVmdCwgbWVudVJlY3QudG9wLCBtZW51UmVjdC5yaWdodC1tZW51UmVjdC53aWR0aCwgbWVudVJlY3QuYm90dG9tLW1lbnVSZWN0LnRvcCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnREaXN0YW5jZSA9IGdldERpc3RhbmNlKHN0YXJ0WCwgc3RhcnRZKTtcbiAgICBsZXQgbGFzdENvb3JkcyA9IHtwYWdlWDogc3RhcnRYLCBwYWdlWTogc3RhcnRZfTtcblxuICAgIC8vIHBpeGVscyBwZXIgc2Vjb25kIHRoZSB1c2VyIG11c3QgYmUgbW92aW5nIHRoZSBtb3VzZSB0b3dhcmQgdGhlIG1lbnUgZm9yXG4gICAgLy8gdGhlIG1lbnUgdG8gc3RheSBvcGVuLlxuICAgIGNvbnN0IE1JTl9TUEVFRCA9IDYwO1xuXG4gICAgLy8gbXMgYmVmb3JlIHRoZSBtZW51IHdpbGwgY2xvc2UgaWYgdGhlIHVzZXIgaGFzbid0IHJlYWNoZWQgaXQgeWV0LCBub1xuICAgIC8vIG1hdHRlciBob3cgdGhleSdyZSBtb3ZpbmcgdGhlIGN1cnNvciB0b3dhcmQgaXQuXG4gICAgY29uc3QgTUFYX1RJTUUgPSA3NTA7XG5cbiAgICAvLyBtcyB0byBvZmZzZXQgc3RhcnQgdGltZSwgdG8gc2V0IG1heERpc3RhbmNlIGJhY2sgYSBsaXR0bGUgc28gaXQncyBub3Qgc29cbiAgICAvLyB1bmZvcmdpdmluZyBhdCB0aGUgdmVyeSBzdGFydC5cbiAgICBjb25zdCBMRUFEX1RJTUUgPSA1MDtcblxuICAgIC8vIExpc3RlbiB0byBtb3VzZSBtb3ZlcywgZmluZCB0aGUgZmlyc3QgZXZlbnQgbm90IGdvaW5nIHRvd2FyZHMgdGhlIG1lbnUsXG4gICAgLy8gYW5kIGVuZCBpdCB0aGVyZS4gT3IgZW5kIGFmdGVyIGEgdGltZXIuXG4gICAgS2VmaXIuZnJvbUV2ZW50cyh3aW5kb3csICdtb3VzZW1vdmUnKVxuICAgICAgLmJ1ZmZlckJ5KEtlZmlyLmludGVydmFsKDYwLCBudWxsKSlcbiAgICAgIC5tYXAoZXZlbnRzID0+IHtcbiAgICAgICAgaWYgKGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBsYXN0ID0gZXZlbnRzW2V2ZW50cy5sZW5ndGgtMV07XG4gICAgICAgICAgbGFzdENvb3JkcyA9IHtwYWdlWDogbGFzdC5wYWdlWCwgcGFnZVk6IGxhc3QucGFnZVl9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsYXN0Q29vcmRzO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKHtwYWdlWCwgcGFnZVl9KSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gZ2V0RGlzdGFuY2UocGFnZVgsIHBhZ2VZKTtcbiAgICAgICAgY29uc3QgbWF4RGlzdGFuY2UgPSBzdGFydERpc3RhbmNlIC0gKERhdGUubm93KCktc3RhcnRUaW1lLUxFQURfVElNRSkvMTAwMCAqIE1JTl9TUEVFRDtcbiAgICAgICAgcmV0dXJuIGRpc3RhbmNlID4gbWF4RGlzdGFuY2U7XG4gICAgICB9KVxuICAgICAgLm1lcmdlKEtlZmlyLmxhdGVyKE1BWF9USU1FKjEwMDApKVxuICAgICAgLnRha2UoMSlcbiAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyKVxuICAgICAgLnRha2VVbnRpbEJ5KHRoaXMuX3N0b3BwZXIpXG4gICAgICAub25WYWx1ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5yZWZzLm1lbnVJdGVtLnVuaGlnaGxpZ2h0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIF9tb3VzZUVudGVyTWVudSgpIHtcbiAgICB0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyLmVtaXQobnVsbCk7XG4gICAgdGhpcy5yZWZzLm1lbnVJdGVtLnVubG9ja0hpZ2hsaWdodCgpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGluZGV4LCBoaWdobGlnaHRlZFN0eWxlLCBoaWdobGlnaHRlZENsYXNzTmFtZSxcbiAgICAgIHBvc2l0aW9uT3B0aW9ucywgbWVudVpJbmRleCwgY2hpbGRyZW4sIG1lbnVcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7b3BlbmVkfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBsZXQgc3R5bGUgPSB0aGlzLnByb3BzLnN0eWxlO1xuICAgIGxldCBjbGFzc05hbWUgPSB0aGlzLnByb3BzLmNsYXNzTmFtZTtcbiAgICBpZiAob3BlbmVkKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5vcGVuZWRTdHlsZSkge1xuICAgICAgICBzdHlsZSA9IHsuLi5zdHlsZSwgLi4udGhpcy5wcm9wcy5vcGVuZWRTdHlsZX07XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5wcm9wcy5vcGVuZWRDbGFzc05hbWUpIHtcbiAgICAgICAgY2xhc3NOYW1lID0gYCR7Y2xhc3NOYW1lfHwnJ30gJHt0aGlzLnByb3BzLm9wZW5lZENsYXNzTmFtZX1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8TWVudUl0ZW1cbiAgICAgICAgcmVmPVwibWVudUl0ZW1cIlxuICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIGhpZ2hsaWdodGVkU3R5bGU9e2hpZ2hsaWdodGVkU3R5bGV9XG4gICAgICAgIGhpZ2hsaWdodGVkQ2xhc3NOYW1lPXtoaWdobGlnaHRlZENsYXNzTmFtZX1cbiAgICAgICAgb25IaWdobGlnaHRDaGFuZ2U9eyhoLGUpID0+IHRoaXMuX29uSGlnaGxpZ2h0Q2hhbmdlKGgsZSl9XG4gICAgICAgIG9uTW91c2VMZWF2ZT17ZSA9PiB0aGlzLl9vbk1vdXNlTGVhdmVJdGVtKGUpfVxuICAgICAgICBvblJpZ2h0UHVzaGVkPXsoZTogTWVudUV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLnN0YXRlLm9wZW5lZCkge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgICAgdGhpcy5yZWZzLm1lbnVJbnNwZWN0b3IubW92ZUN1cnNvcignZG93bicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb25JdGVtQ2hvc2VuPXsoZTogQ2hvc2VuRXZlbnQpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICBpZiAoZS5ieUtleWJvYXJkKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnMubWVudUluc3BlY3Rvci5tb3ZlQ3Vyc29yKCdkb3duJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBhcmlhLWhhc3BvcHVwPXt0cnVlfVxuICAgICAgICBhcmlhLWV4cGFuZGVkPXtvcGVuZWR9XG4gICAgICA+XG4gICAgICAgIDxGbG9hdEFuY2hvclxuICAgICAgICAgIHJlZj1cImZsb2F0QW5jaG9yXCJcbiAgICAgICAgICBvcHRpb25zPXtwb3NpdGlvbk9wdGlvbnN9XG4gICAgICAgICAgekluZGV4PXttZW51WkluZGV4fVxuICAgICAgICAgIGFuY2hvcj17XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgZmxvYXQ9e1xuICAgICAgICAgICAgIW9wZW5lZCA/IG51bGwgOlxuICAgICAgICAgICAgICA8TWVudUxpc3RJbnNwZWN0b3JcbiAgICAgICAgICAgICAgICByZWY9XCJtZW51SW5zcGVjdG9yXCJcbiAgICAgICAgICAgICAgICBvbkxlZnRQdXNoZWQ9e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgcmVmPVwibWVudUNvbnRhaW5lclwiXG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpPT50aGlzLl9tb3VzZUVudGVyTWVudSgpfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge21lbnV9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvTWVudUxpc3RJbnNwZWN0b3I+XG4gICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICA8L01lbnVJdGVtPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TdWJNZW51SXRlbS5qcyJdLCJuYW1lcyI6WyJTdWJNZW51SXRlbSIsInN0YXRlIiwib3BlbmVkIiwiX3Jlc2V0TW91c2VMZWF2ZVdhdGNoZXIiLCJfc3RvcHBlciIsImRlc3Ryb3kiLCJjYWxsYmFjayIsIl9tZW51SXRlbSIsImxvY2tIaWdobGlnaHQiLCJwcm9wcyIsIm9uV2lsbE9wZW4iLCJzZXRTdGF0ZSIsIm9uRGlkT3BlbiIsInRha2VLZXlib2FyZCIsIm9uV2lsbENsb3NlIiwicmVsZWFzZUtleWJvYXJkIiwidW5sb2NrSGlnaGxpZ2h0IiwiY2xvc2UiLCJvcGVuIiwiX2Zsb2F0QW5jaG9yIiwicmVwb3NpdGlvbiIsImhhc0hpZ2hsaWdodCIsImJ5S2V5Ym9hcmQiLCJoaWdobGlnaHQiLCJ1bmhpZ2hsaWdodCIsImRpcmVjdGlvbiIsInByZXZDdXJzb3JMb2NhdGlvbiIsIm1vdmVDdXJzb3IiLCJoaWdobGlnaHRlZCIsImV2ZW50IiwiZW1pdCIsIk9QRU5fREVMQVkiLCJsYXRlciIsInRha2VVbnRpbEJ5Iiwib25WYWx1ZSIsIm1lbnVSZWN0IiwiX21lbnVDb250YWluZXIiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJzdGFydFRpbWUiLCJEYXRlIiwibm93Iiwic3RhcnRYIiwicGFnZVgiLCJzdGFydFkiLCJwYWdlWSIsImdldERpc3RhbmNlIiwieCIsInkiLCJsZWZ0IiwidG9wIiwicmlnaHQiLCJ3aWR0aCIsImJvdHRvbSIsInN0YXJ0RGlzdGFuY2UiLCJsYXN0Q29vcmRzIiwiTUlOX1NQRUVEIiwiTUFYX1RJTUUiLCJMRUFEX1RJTUUiLCJmcm9tRXZlbnRzIiwid2luZG93IiwiYnVmZmVyQnkiLCJpbnRlcnZhbCIsIm1hcCIsImV2ZW50cyIsImxlbmd0aCIsImxhc3QiLCJmaWx0ZXIiLCJkaXN0YW5jZSIsIm1heERpc3RhbmNlIiwibWVyZ2UiLCJ0YWtlIiwiaW5kZXgiLCJoaWdobGlnaHRlZFN0eWxlIiwiaGlnaGxpZ2h0ZWRDbGFzc05hbWUiLCJwb3NpdGlvbk9wdGlvbnMiLCJtZW51WkluZGV4IiwiY2hpbGRyZW4iLCJtZW51Iiwic3R5bGUiLCJjbGFzc05hbWUiLCJvcGVuZWRTdHlsZSIsIm9wZW5lZENsYXNzTmFtZSIsImVsIiwiaCIsImUiLCJfb25IaWdobGlnaHRDaGFuZ2UiLCJfb25Nb3VzZUxlYXZlSXRlbSIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0IiwiX21lbnVJbnNwZWN0b3IiLCJfbW91c2VFbnRlck1lbnUiLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJub2RlIiwib2JqZWN0Iiwib25lT2ZUeXBlIiwic3RyaW5nIiwibnVtYmVyIiwiZnVuYyIsIm9uSXRlbUNob3NlbiIsIm9uSGlnaGxpZ2h0Q2hhbmdlIiwiZGVmYXVsdFByb3BzIiwicG9zaXRpb24iLCJ2QWxpZ24iLCJoQWxpZ24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUE7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7Ozs7QUFFQTs7Ozs7O0lBa0NxQkEsVzs7Ozs7Ozs7Ozs7Ozs7c05BNkJuQkMsSyxHQUFlO0FBQ2JDLGNBQVE7QUFESyxLLFFBUWZDLHVCLEdBQXFDLHlCLFFBQ3JDQyxRLEdBQVcsNkI7Ozs7OzJDQUVZO0FBQ3JCLFdBQUtBLFFBQUwsQ0FBY0MsT0FBZDtBQUNEOzs7eUJBRUlDLFEsRUFBc0I7QUFBQTs7QUFDekIsV0FBS0MsU0FBTCxDQUFlQyxhQUFmO0FBQ0EsVUFBSSxLQUFLUCxLQUFMLENBQVdDLE1BQWYsRUFBdUI7QUFDdkIsVUFBSSxLQUFLTyxLQUFMLENBQVdDLFVBQWYsRUFBMkIsS0FBS0QsS0FBTCxDQUFXQyxVQUFYO0FBQzNCLFdBQUtDLFFBQUwsQ0FBYyxFQUFDVCxRQUFRLElBQVQsRUFBZCxFQUE4QixZQUFNO0FBQ2xDLFlBQUksT0FBS08sS0FBTCxDQUFXRyxTQUFmLEVBQTBCLE9BQUtILEtBQUwsQ0FB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QUFNYyxTOztBQUExQjNGLFcsQ0FDWjRGLFMsR0FBWTtBQUNqQmYsUUFBTSxvQkFBVWdCLElBREM7QUFFakJuQixtQkFBaUIsb0JBQVVvQixNQUZWO0FBR2pCbkIsY0FBWSxvQkFBVW9CLFNBQVYsQ0FBb0IsQ0FBQyxvQkFBVUMsTUFBWCxFQUFtQixvQkFBVUMsTUFBN0IsQ0FBcEIsQ0FISzs7QUFLakJ2RixjQUFZLG9CQUFVd0YsSUFMTDtBQU1qQnRGLGFBQVcsb0JBQVVzRixJQU5KO0FBT2pCcEYsZUFBYSxvQkFBVW9GLElBUE47O0FBU2pCbkIsYUFBVyxvQkFBVWlCLE1BVEo7QUFVakJsQixTQUFPLG9CQUFVZ0IsTUFWQTtBQVdqQnJCLHdCQUFzQixvQkFBVXVCLE1BWGY7QUFZakJ4QixvQkFBa0Isb0JBQVVzQixNQVpYO0FBYWpCdkIsU0FBTyxvQkFBVTBCLE1BYkE7O0FBZWpCaEIsbUJBQWlCLG9CQUFVZSxNQWZWO0FBZ0JqQmhCLGVBQWEsb0JBQVVjLE1BaEJOOztBQWtCakJLLGdCQUFjLG9CQUFVRCxJQWxCUDtBQW1CakJFLHFCQUFtQixvQkFBVUYsSUFuQlo7O0FBcUJqQnRCLFlBQVUsb0JBQVVpQjtBQXJCSCxDO0FBREE3RixXLENBeUJacUcsWSxHQUFlO0FBQ3BCM0IsbUJBQWlCLEVBQUM0QixVQUFTLE9BQVYsRUFBbUJDLFFBQU8sS0FBMUIsRUFBaUNDLFFBQVEsTUFBekM7QUFERyxDO2tCQXpCSHhHLFciLCJmaWxlIjoiU3ViTWVudUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBAZmxvdyAqL1xuXG5pbXBvcnQgS2VmaXIgZnJvbSAna2VmaXInO1xuaW1wb3J0IGtlZmlyQnVzIGZyb20gJ2tlZmlyLWJ1cyc7XG5pbXBvcnQgdHlwZSB7QnVzfSBmcm9tICdrZWZpci1idXMnO1xuaW1wb3J0IGtlZmlyU3RvcHBlciBmcm9tICdrZWZpci1zdG9wcGVyJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7Tm9kZSBhcyBSZWFjdE5vZGUsIEVsZW1lbnQgYXMgUmVhY3RFbGVtZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHBvaW50UmVjdERpc3RhbmNlIGZyb20gJy4vbGliL3BvaW50UmVjdERpc3RhbmNlJztcblxuaW1wb3J0IE1lbnVMaXN0SW5zcGVjdG9yIGZyb20gJy4vTWVudUxpc3RJbnNwZWN0b3InO1xuaW1wb3J0IEZsb2F0QW5jaG9yIGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgdHlwZSB7T3B0aW9ucyBhcyBGbG9hdEFuY2hvck9wdGlvbnN9IGZyb20gJ3JlYWN0LWZsb2F0LWFuY2hvcic7XG5pbXBvcnQgTWVudUl0ZW0gZnJvbSAnLi9NZW51SXRlbSc7XG5cbmltcG9ydCB0eXBlIHtEaXJlY3Rpb24sIFJlY3R9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgTWVudUV2ZW50IGZyb20gJy4vZXZlbnRzL01lbnVFdmVudCc7XG5pbXBvcnQgdHlwZSBDaG9zZW5FdmVudCBmcm9tICcuL2V2ZW50cy9DaG9zZW5FdmVudCc7XG5cbnR5cGUgU3RhdGUgPSB7XG4gIG9wZW5lZDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb3BzID0ge1xuICBtZW51PzogUmVhY3RFbGVtZW50PGFueT47XG4gIHBvc2l0aW9uT3B0aW9uczogRmxvYXRBbmNob3JPcHRpb25zO1xuICBtZW51WkluZGV4PzogP3N0cmluZ3xudW1iZXI7XG5cbiAgb25XaWxsT3Blbj86ID8oKSA9PiB2b2lkO1xuICBvbkRpZE9wZW4/OiA/KCkgPT4gdm9pZDtcbiAgb25XaWxsQ2xvc2U/OiA/KCkgPT4gdm9pZDtcblxuICBjbGFzc05hbWU/OiA/c3RyaW5nO1xuICBzdHlsZT86ID9PYmplY3Q7XG4gIGhpZ2hsaWdodGVkQ2xhc3NOYW1lPzogP3N0cmluZztcbiAgaGlnaGxpZ2h0ZWRTdHlsZT86ID9PYmplY3Q7XG4gIGluZGV4PzogP251bWJlcjtcblxuICBvcGVuZWRDbGFzc05hbWU/OiA/c3RyaW5nO1xuICBvcGVuZWRTdHlsZT86ID9PYmplY3Q7XG5cbiAgb25JdGVtQ2hvc2VuPzogPyhldmVudDogQ2hvc2VuRXZlbnQpID0+IHZvaWQ7XG4gIG9uSGlnaGxpZ2h0Q2hhbmdlPzogPyhoaWdobGlnaHRlZDogYm9vbGVhbiwgZGV0YWlsczoge2J5S2V5Ym9hcmQ6ID9ib29sZWFuLCBwcmV2Q3Vyc29yTG9jYXRpb246ID9SZWN0LCBkaXJlY3Rpb246ID9EaXJlY3Rpb259KSA9PiB2b2lkO1xuXG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3ViTWVudUl0ZW0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UHJvcHMsIFN0YXRlPiB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgbWVudTogUHJvcFR5cGVzLm5vZGUsXG4gICAgcG9zaXRpb25PcHRpb25zOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIG1lbnVaSW5kZXg6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcblxuICAgIG9uV2lsbE9wZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRGlkT3BlbjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25XaWxsQ2xvc2U6IFByb3BUeXBlcy5mdW5jLFxuXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGhpZ2hsaWdodGVkQ2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGhpZ2hsaWdodGVkU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgaW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG5cbiAgICBvcGVuZWRDbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb3BlbmVkU3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG5cbiAgICBvbkl0ZW1DaG9zZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uSGlnaGxpZ2h0Q2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcblxuICAgIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZVxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgcG9zaXRpb25PcHRpb25zOiB7cG9zaXRpb246J3JpZ2h0JywgdkFsaWduOid0b3AnLCBoQWxpZ246ICdsZWZ0J31cbiAgfTtcblxuICBzdGF0ZTogU3RhdGUgPSB7XG4gICAgb3BlbmVkOiBmYWxzZVxuICB9O1xuXG4gIF9tZW51SXRlbTogTWVudUl0ZW07XG4gIF9tZW51SW5zcGVjdG9yOiBNZW51TGlzdEluc3BlY3RvcjtcbiAgX21lbnVDb250YWluZXI6IEhUTUxFbGVtZW50O1xuICBfZmxvYXRBbmNob3I6IEZsb2F0QW5jaG9yO1xuICBfcmVzZXRNb3VzZUxlYXZlV2F0Y2hlcjogQnVzPG51bGw+ID0ga2VmaXJCdXMoKTtcbiAgX3N0b3BwZXIgPSBrZWZpclN0b3BwZXIoKTtcblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl9zdG9wcGVyLmRlc3Ryb3koKTtcbiAgfVxuXG4gIG9wZW4oY2FsbGJhY2s/OiAoKSA9PiBhbnkpIHtcbiAgICB0aGlzLl9tZW51SXRlbS5sb2NrSGlnaGxpZ2h0KCk7XG4gICAgaWYgKHRoaXMuc3RhdGUub3BlbmVkKSByZXR1cm47XG4gICAgaWYgKHRoaXMucHJvcHMub25XaWxsT3BlbikgdGhpcy5wcm9wcy5vbldpbGxPcGVuKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7b3BlbmVkOiB0cnVlfSwgKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucHJvcHMub25EaWRPcGVuKSB0aGlzLnByb3BzLm9uRGlkT3BlbigpO1xuICAgICAgaWYgKGNhbGxiYWNrKSBjYWxsYmFjaygpO1xuICAgIH0pO1xuICAgIHRoaXMuX21lbnVJdGVtLnRha2VLZXlib2FyZCgpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgaWYgKCF0aGlzLnN0YXRlLm9wZW5lZCkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnByb3BzLm9uV2lsbENsb3NlKSB0aGlzLnByb3BzLm9uV2lsbENsb3NlKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7b3BlbmVkOiBmYWxzZX0pO1xuICAgIHRoaXMuX21lbnVJdGVtLnJlbGVhc2VLZXlib2FyZCgpO1xuICAgIHRoaXMuX21lbnVJdGVtLnVubG9ja0hpZ2hsaWdodCgpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLnN0YXRlLm9wZW5lZCkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICByZXBvc2l0aW9uKCkge1xuICAgIHRoaXMuX2Zsb2F0QW5jaG9yLnJlcG9zaXRpb24oKTtcbiAgfVxuXG4gIGhhc0hpZ2hsaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW0uaGFzSGlnaGxpZ2h0KCk7XG4gIH1cblxuICBoaWdobGlnaHQoYnlLZXlib2FyZDogYm9vbGVhbj10cnVlKSB7XG4gICAgdGhpcy5fbWVudUl0ZW0uaGlnaGxpZ2h0KGJ5S2V5Ym9hcmQpO1xuICB9XG5cbiAgdW5oaWdobGlnaHQoKSB7XG4gICAgdGhpcy5fbWVudUl0ZW0udW5oaWdobGlnaHQoKTtcbiAgfVxuXG4gIG1vdmVDdXJzb3IoZGlyZWN0aW9uOiBEaXJlY3Rpb24sIHByZXZDdXJzb3JMb2NhdGlvbjogP1JlY3QpIHtcbiAgICB0aGlzLl9tZW51SXRlbS5tb3ZlQ3Vyc29yKGRpcmVjdGlvbiwgcHJldkN1cnNvckxvY2F0aW9uKTtcbiAgfVxuXG4gIF9vbkhpZ2hsaWdodENoYW5nZShoaWdobGlnaHRlZDogYm9vbGVhbiwgZXZlbnQ6IE9iamVjdCkge1xuICAgIHRoaXMuX3Jlc2V0TW91c2VMZWF2ZVdhdGNoZXIuZW1pdChudWxsKTtcblxuICAgIGlmIChoaWdobGlnaHRlZCAmJiAhZXZlbnQuYnlLZXlib2FyZCkge1xuICAgICAgY29uc3QgT1BFTl9ERUxBWSA9IDIwMDtcblxuICAgICAgS2VmaXIubGF0ZXIoT1BFTl9ERUxBWSlcbiAgICAgICAgLnRha2VVbnRpbEJ5KHRoaXMuX3Jlc2V0TW91c2VMZWF2ZVdhdGNoZXIpXG4gICAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9zdG9wcGVyKVxuICAgICAgICAub25WYWx1ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoIWhpZ2hsaWdodGVkKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgX29uTW91c2VMZWF2ZUl0ZW0oZXZlbnQ6IE9iamVjdCkge1xuICAgIGlmICghdGhpcy5zdGF0ZS5vcGVuZWQpIHtcbiAgICAgIHRoaXMuX21lbnVJdGVtLnVuaGlnaGxpZ2h0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIG1vdXNlIGlzbid0IGdvaW5nIHRvd2FyZCB0aGUgbWVudSwgdGhlbiB1bmhpZ2hsaWdodCBvdXJzZWxmLlxuXG4gICAgY29uc3QgbWVudVJlY3QgPSB0aGlzLl9tZW51Q29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCBzdGFydFggPSBldmVudC5wYWdlWCwgc3RhcnRZID0gZXZlbnQucGFnZVk7XG5cbiAgICBmdW5jdGlvbiBnZXREaXN0YW5jZSh4LCB5KSB7XG4gICAgICByZXR1cm4gcG9pbnRSZWN0RGlzdGFuY2UoeCwgeSwgbWVudVJlY3QubGVmdCwgbWVudVJlY3QudG9wLCBtZW51UmVjdC5yaWdodC1tZW51UmVjdC53aWR0aCwgbWVudVJlY3QuYm90dG9tLW1lbnVSZWN0LnRvcCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnREaXN0YW5jZSA9IGdldERpc3RhbmNlKHN0YXJ0WCwgc3RhcnRZKTtcbiAgICBsZXQgbGFzdENvb3JkcyA9IHtwYWdlWDogc3RhcnRYLCBwYWdlWTogc3RhcnRZfTtcblxuICAgIC8vIHBpeGVscyBwZXIgc2Vjb25kIHRoZSB1c2VyIG11c3QgYmUgbW92aW5nIHRoZSBtb3VzZSB0b3dhcmQgdGhlIG1lbnUgZm9yXG4gICAgLy8gdGhlIG1lbnUgdG8gc3RheSBvcGVuLlxuICAgIGNvbnN0IE1JTl9TUEVFRCA9IDYwO1xuXG4gICAgLy8gbXMgYmVmb3JlIHRoZSBtZW51IHdpbGwgY2xvc2UgaWYgdGhlIHVzZXIgaGFzbid0IHJlYWNoZWQgaXQgeWV0LCBub1xuICAgIC8vIG1hdHRlciBob3cgdGhleSdyZSBtb3ZpbmcgdGhlIGN1cnNvciB0b3dhcmQgaXQuXG4gICAgY29uc3QgTUFYX1RJTUUgPSA3NTA7XG5cbiAgICAvLyBtcyB0byBvZmZzZXQgc3RhcnQgdGltZSwgdG8gc2V0IG1heERpc3RhbmNlIGJhY2sgYSBsaXR0bGUgc28gaXQncyBub3Qgc29cbiAgICAvLyB1bmZvcmdpdmluZyBhdCB0aGUgdmVyeSBzdGFydC5cbiAgICBjb25zdCBMRUFEX1RJTUUgPSA1MDtcblxuICAgIC8vIExpc3RlbiB0byBtb3VzZSBtb3ZlcywgZmluZCB0aGUgZmlyc3QgZXZlbnQgbm90IGdvaW5nIHRvd2FyZHMgdGhlIG1lbnUsXG4gICAgLy8gYW5kIGVuZCBpdCB0aGVyZS4gT3IgZW5kIGFmdGVyIGEgdGltZXIuXG4gICAgS2VmaXIuZnJvbUV2ZW50cyh3aW5kb3csICdtb3VzZW1vdmUnKVxuICAgICAgLmJ1ZmZlckJ5KEtlZmlyLmludGVydmFsKDYwLCBudWxsKSlcbiAgICAgIC5tYXAoZXZlbnRzID0+IHtcbiAgICAgICAgaWYgKGV2ZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBsYXN0ID0gZXZlbnRzW2V2ZW50cy5sZW5ndGgtMV07XG4gICAgICAgICAgbGFzdENvb3JkcyA9IHtwYWdlWDogbGFzdC5wYWdlWCwgcGFnZVk6IGxhc3QucGFnZVl9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsYXN0Q29vcmRzO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKHtwYWdlWCwgcGFnZVl9KSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlID0gZ2V0RGlzdGFuY2UocGFnZVgsIHBhZ2VZKTtcbiAgICAgICAgY29uc3QgbWF4RGlzdGFuY2UgPSBzdGFydERpc3RhbmNlIC0gKERhdGUubm93KCktc3RhcnRUaW1lLUxFQURfVElNRSkvMTAwMCAqIE1JTl9TUEVFRDtcbiAgICAgICAgcmV0dXJuIGRpc3RhbmNlID4gbWF4RGlzdGFuY2U7XG4gICAgICB9KVxuICAgICAgLm1lcmdlKEtlZmlyLmxhdGVyKE1BWF9USU1FKjEwMDApKVxuICAgICAgLnRha2UoMSlcbiAgICAgIC50YWtlVW50aWxCeSh0aGlzLl9yZXNldE1vdXNlTGVhdmVXYXRjaGVyKVxuICAgICAgLnRha2VVbnRpbEJ5KHRoaXMuX3N0b3BwZXIpXG4gICAgICAub25WYWx1ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5fbWVudUl0ZW0udW5oaWdobGlnaHQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgX21vdXNlRW50ZXJNZW51KCkge1xuICAgIHRoaXMuX3Jlc2V0TW91c2VMZWF2ZVdhdGNoZXIuZW1pdChudWxsKTtcbiAgICB0aGlzLl9tZW51SXRlbS51bmxvY2tIaWdobGlnaHQoKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBpbmRleCwgaGlnaGxpZ2h0ZWRTdHlsZSwgaGlnaGxpZ2h0ZWRDbGFzc05hbWUsXG4gICAgICBwb3NpdGlvbk9wdGlvbnMsIG1lbnVaSW5kZXgsIGNoaWxkcmVuLCBtZW51XG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge29wZW5lZH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbGV0IHN0eWxlID0gdGhpcy5wcm9wcy5zdHlsZTtcbiAgICBsZXQgY2xhc3NOYW1lID0gdGhpcy5wcm9wcy5jbGFzc05hbWU7XG4gICAgaWYgKG9wZW5lZCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMub3BlbmVkU3R5bGUpIHtcbiAgICAgICAgc3R5bGUgPSB7Li4uc3R5bGUsIC4uLnRoaXMucHJvcHMub3BlbmVkU3R5bGV9O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMub3BlbmVkQ2xhc3NOYW1lKSB7XG4gICAgICAgIGNsYXNzTmFtZSA9IGAke2NsYXNzTmFtZXx8Jyd9ICR7dGhpcy5wcm9wcy5vcGVuZWRDbGFzc05hbWV9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPE1lbnVJdGVtXG4gICAgICAgIHJlZj17ZWwgPT4ge1xuICAgICAgICAgIGlmIChlbCkgdGhpcy5fbWVudUl0ZW0gPSBlbDtcbiAgICAgICAgfX1cbiAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICBoaWdobGlnaHRlZFN0eWxlPXtoaWdobGlnaHRlZFN0eWxlfVxuICAgICAgICBoaWdobGlnaHRlZENsYXNzTmFtZT17aGlnaGxpZ2h0ZWRDbGFzc05hbWV9XG4gICAgICAgIG9uSGlnaGxpZ2h0Q2hhbmdlPXsoaCxlKSA9PiB0aGlzLl9vbkhpZ2hsaWdodENoYW5nZShoLGUpfVxuICAgICAgICBvbk1vdXNlTGVhdmU9e2UgPT4gdGhpcy5fb25Nb3VzZUxlYXZlSXRlbShlKX1cbiAgICAgICAgb25SaWdodFB1c2hlZD17KGU6IE1lbnVFdmVudCkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5zdGF0ZS5vcGVuZWQpIHtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICAgIHRoaXMuX21lbnVJbnNwZWN0b3IubW92ZUN1cnNvcignZG93bicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgb25JdGVtQ2hvc2VuPXsoZTogQ2hvc2VuRXZlbnQpID0+IHtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICBpZiAoZS5ieUtleWJvYXJkKSB7XG4gICAgICAgICAgICB0aGlzLl9tZW51SW5zcGVjdG9yLm1vdmVDdXJzb3IoJ2Rvd24nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH19XG4gICAgICAgIGFyaWEtaGFzcG9wdXA9e3RydWV9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e29wZW5lZH1cbiAgICAgID5cbiAgICAgICAgPEZsb2F0QW5jaG9yXG4gICAgICAgICAgcmVmPXtlbCA9PiB7XG4gICAgICAgICAgICBpZiAoZWwpIHRoaXMuX2Zsb2F0QW5jaG9yID0gZWw7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvcHRpb25zPXtwb3NpdGlvbk9wdGlvbnN9XG4gICAgICAgICAgekluZGV4PXttZW51WkluZGV4fVxuICAgICAgICAgIGFuY2hvcj17XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgZmxvYXQ9e1xuICAgICAgICAgICAgIW9wZW5lZCA/IG51bGwgOlxuICAgICAgICAgICAgICA8TWVudUxpc3RJbnNwZWN0b3JcbiAgICAgICAgICAgICAgICByZWY9e2VsID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChlbCkgdGhpcy5fbWVudUluc3BlY3RvciA9IGVsO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25MZWZ0UHVzaGVkPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIHJlZj17ZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZWwpIHRoaXMuX21lbnVDb250YWluZXIgPSBlbDtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpPT50aGlzLl9tb3VzZUVudGVyTWVudSgpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHttZW51fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L01lbnVMaXN0SW5zcGVjdG9yPlxuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgIDwvTWVudUl0ZW0+XG4gICAgKTtcbiAgfVxufVxuIl19
{
"name": "react-menu-list",
"version": "3.4.0",
"version": "3.5.0",
"description": "React component for menu lists and submenus",
"main": "js/index.js",
"scripts": {
"prepare": "babel -s inline -d js/ src/ && flow-copy-source -v src js",
"example-build": "NODE_ENV=development browserify -t babelify -do example/bundle.js example/main.js",
"example-watch": "NODE_ENV=development-hmr watchify -v -p browserify-hmr -t babelify -do example/bundle.js example/main.js",
"example-build-prod": "NODE_ENV=production browserify -t babelify -do example/bundle.js example/main.js",
"prepare": "rimraf js/ && babel -s inline -d js/ src/ && flow-copy-source -v src js",
"example-build": "cross-env NODE_ENV=development browserify -t babelify -do example/bundle.js example/main.js",
"example-watch": "cross-env NODE_ENV=development-hmr watchify -v -p browserify-hmr -t babelify -do example/bundle.js example/main.js",
"example-build-prod": "cross-env NODE_ENV=production browserify -t babelify -do example/bundle.js example/main.js",
"test": "npm run lint && npm run flow_check && jest",

@@ -35,3 +35,3 @@ "flow_check": "flow check",

"babel-eslint": "^7.1.0",
"babel-jest": "^19.0.0",
"babel-jest": "^20.0.3",
"babel-plugin-add-module-exports": "^0.2.1",

@@ -47,11 +47,13 @@ "babel-plugin-transform-runtime": "^6.15.0",

"browserify-hmr": "^0.3.1",
"eslint": "^3.9.1",
"cross-env": "^5.0.1",
"eslint": "^4.2.0",
"eslint-plugin-flowtype": "^2.29.1",
"eslint-plugin-react": "^6.4.1",
"flow-bin": "^0.44.2",
"eslint-plugin-react": "^7.1.0",
"flow-bin": "^0.53.1",
"flow-copy-source": "^1.0.1",
"jest": "^19.0.2",
"jest": "^20.0.4",
"react": "^15.5.4",
"react-dom": "^15.5.4",
"react-test-renderer": "^15.5.4",
"rimraf": "^2.6.1",
"watchify": "^3.7.0"

@@ -66,3 +68,3 @@ },

"prop-types": "^15.5.8",
"react-float-anchor": "^1.4.1"
"react-float-anchor": "^1.5.0"
},

@@ -69,0 +71,0 @@ "peerDependencies": {

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

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