diff --git a/client/source/sass/base/_layout.scss b/client/source/sass/base/_layout.scss
index b184d6e3..9ab866b9 100644
--- a/client/source/sass/base/_layout.scss
+++ b/client/source/sass/base/_layout.scss
@@ -61,6 +61,7 @@ body {
&__list {
&__wrapper {
+ display: flex;
flex: 1;
&--custom-scroll {
diff --git a/client/source/sass/components/_scrollbars.scss b/client/source/sass/components/_scrollbars.scss
index c0cac7dd..0a7d9371 100644
--- a/client/source/sass/components/_scrollbars.scss
+++ b/client/source/sass/components/_scrollbars.scss
@@ -5,7 +5,7 @@
border-radius: 10px;
cursor: pointer;
opacity: 0;
- transition: background 0.25s, opacity 0.25s;
+ transition: background 0.25s, opacity 0.5s;
&:active {
opacity: 1;
diff --git a/client/source/scripts/components/panels/Sidebar.js b/client/source/scripts/components/panels/Sidebar.js
index 497e3a71..3878ea30 100644
--- a/client/source/scripts/components/panels/Sidebar.js
+++ b/client/source/scripts/components/panels/Sidebar.js
@@ -1,7 +1,7 @@
import React from 'react';
import ClientStats from '../sidebar/TransferData';
-// import CustomScrollbars from '../ui/CustomScrollbars';
+import CustomScrollbars from '../ui/CustomScrollbars';
import SearchBox from '../forms/SearchBox';
import SpeedLimitDropdown from '../sidebar/SpeedLimitDropdown';
import StatusFilters from '../sidebar/StatusFilters';
@@ -10,13 +10,13 @@ import TrackerFilters from '../sidebar/TrackerFilters';
class Sidebar extends React.Component {
render() {
return (
-
+
-
+
);
}
}
diff --git a/client/source/scripts/components/torrent-list/TorrentList.js b/client/source/scripts/components/torrent-list/TorrentList.js
index da5c19ec..b6ae1241 100644
--- a/client/source/scripts/components/torrent-list/TorrentList.js
+++ b/client/source/scripts/components/torrent-list/TorrentList.js
@@ -4,7 +4,7 @@ import CSSTransitionGroup from 'react-addons-css-transition-group';
import React from 'react';
import ReactDOM from 'react-dom';
-// import CustomScrollbars from '../ui/CustomScrollbars';
+import CustomScrollbars from '../ui/CustomScrollbars';
import EventTypes from '../../constants/EventTypes';
import LoadingIndicator from '../ui/LoadingIndicator';
import Torrent from './Torrent';
@@ -69,7 +69,6 @@ export default class TorrentListContainer extends React.Component {
componentWillUnmount() {
window.removeEventListener('resize', this.handleWindowResize);
-
TorrentStore.unlisten(EventTypes.UI_TORRENT_SELECTION_CHANGE, this.onTorrentSelectionChange);
TorrentStore.unlisten(EventTypes.CLIENT_TORRENTS_REQUEST_SUCCESS, this.onReceiveTorrentsSuccess);
TorrentStore.unlisten(EventTypes.CLIENT_TORRENTS_REQUEST_ERROR, this.onReceiveTorrentsError);
@@ -165,8 +164,7 @@ export default class TorrentListContainer extends React.Component {
setScrollPosition() {
if (this.refs.torrentList) {
this.setState({
- // scrollPosition: this.refs.torrentList.refs.scrollbar.getScrollTop()
- scrollPosition: ReactDOM.findDOMNode(this.refs.torrentList).scrollTop
+ scrollPosition: this.refs.torrentList.refs.scrollbar.getScrollTop()
});
}
}
@@ -174,8 +172,7 @@ export default class TorrentListContainer extends React.Component {
setViewportHeight() {
if (this.refs.torrentList) {
this.setState({
- // viewportHeight: this.refs.torrentList.refs.scrollbar.getHeight()
- viewportHeight: ReactDOM.findDOMNode(this.refs.torrentList).offsetHeight
+ viewportHeight: this.refs.torrentList.refs.scrollbar.getClientHeight()
});
}
}
@@ -234,11 +231,13 @@ export default class TorrentListContainer extends React.Component {
component="div"
className="torrent__list__wrapper"
onScroll={this.handleScroll}
- ref="torrentList"
transitionName="torrent__list--loading"
transitionEnterTimeout={1000}
transitionLeaveTimeout={1000}>
- {content}
+
+ {content}
+
);
}
diff --git a/package.json b/package.json
index f75f8960..942bfc04 100644
--- a/package.json
+++ b/package.json
@@ -36,7 +36,7 @@
"q": "^1.2.0",
"react": "^0.14.7",
"react-addons-css-transition-group": "^0.14.7",
- "react-custom-scrollbars": "^2.3.0",
+ "react-custom-scrollbars": "^3.0.0",
"react-dom": "^0.14.7",
"sax": "^0.6.1",
"serve-favicon": "~2.2.0",
diff --git a/server/assets/app.js b/server/assets/app.js
index 132949a0..cd06aab4 100644
--- a/server/assets/app.js
+++ b/server/assets/app.js
@@ -1310,7 +1310,7 @@
/* 211 */
/***/ function(module, exports, __webpack_require__) {
- eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _sidebarTransferData = __webpack_require__(212);\n\nvar _sidebarTransferData2 = _interopRequireDefault(_sidebarTransferData);\n\n// import CustomScrollbars from '../ui/CustomScrollbars';\n\nvar _formsSearchBox = __webpack_require__(221);\n\nvar _formsSearchBox2 = _interopRequireDefault(_formsSearchBox);\n\nvar _sidebarSpeedLimitDropdown = __webpack_require__(223);\n\nvar _sidebarSpeedLimitDropdown2 = _interopRequireDefault(_sidebarSpeedLimitDropdown);\n\nvar _sidebarStatusFilters = __webpack_require__(227);\n\nvar _sidebarStatusFilters2 = _interopRequireDefault(_sidebarStatusFilters);\n\nvar _sidebarTrackerFilters = __webpack_require__(236);\n\nvar _sidebarTrackerFilters2 = _interopRequireDefault(_sidebarTrackerFilters);\n\nvar Sidebar = (function (_React$Component) {\n _inherits(Sidebar, _React$Component);\n\n function Sidebar() {\n _classCallCheck(this, Sidebar);\n\n _get(Object.getPrototypeOf(Sidebar.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(Sidebar, [{\n key: 'render',\n value: function render() {\n return _react2['default'].createElement(\n 'div',\n { className: 'application__sidebar' },\n _react2['default'].createElement(_sidebarSpeedLimitDropdown2['default'], null),\n _react2['default'].createElement(_sidebarTransferData2['default'], null),\n _react2['default'].createElement(_formsSearchBox2['default'], null),\n _react2['default'].createElement(_sidebarStatusFilters2['default'], null),\n _react2['default'].createElement(_sidebarTrackerFilters2['default'], null)\n );\n }\n }]);\n\n return Sidebar;\n})(_react2['default'].Component);\n\nexports['default'] = Sidebar;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9wYW5lbHMvU2lkZWJhci5qcz8zM2E1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVELGlDQUFpQywyQ0FBMkMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RCwyREFBMkQsRUFBRSxFQUFFLHlEQUF5RCxxRUFBcUUsNkRBQTZELG9CQUFvQixHQUFHLEVBQUU7O0FBRWxqQix1Q0FBdUMsbUJBQW1CLDRCQUE0QixpREFBaUQsZ0JBQWdCLGtEQUFrRCw4REFBOEQsMEJBQTBCLDRDQUE0Qyx1QkFBdUIsa0JBQWtCLEVBQUUsT0FBTyxhQUFhLGdCQUFnQixnQkFBZ0IsZUFBZSwyQkFBMkIsb0JBQW9CLEVBQUUsRUFBRSw0QkFBNEIsbUJBQW1CLEVBQUUsT0FBTyx1QkFBdUIsNEJBQTRCLGtCQUFrQixFQUFFLDhCQUE4QixFQUFFLEVBQUU7O0FBRS9vQixzQ0FBc0MsdUNBQXVDLGtCQUFrQjs7QUFFL0YsaURBQWlELDBDQUEwQywwREFBMEQsRUFBRTs7QUFFdkosMENBQTBDLCtEQUErRCxxR0FBcUcsRUFBRSx5RUFBeUUsZUFBZSx5RUFBeUUsRUFBRSxFQUFFLHVIQUF1SDs7QUFFNWU7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsb0NBQW9DO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7QUFDQSIsImZpbGUiOiIyMTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG52YXIgX2dldCA9IGZ1bmN0aW9uIGdldChfeCwgX3gyLCBfeDMpIHsgdmFyIF9hZ2FpbiA9IHRydWU7IF9mdW5jdGlvbjogd2hpbGUgKF9hZ2FpbikgeyB2YXIgb2JqZWN0ID0gX3gsIHByb3BlcnR5ID0gX3gyLCByZWNlaXZlciA9IF94MzsgX2FnYWluID0gZmFsc2U7IGlmIChvYmplY3QgPT09IG51bGwpIG9iamVjdCA9IEZ1bmN0aW9uLnByb3RvdHlwZTsgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgcHJvcGVydHkpOyBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7IHZhciBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqZWN0KTsgaWYgKHBhcmVudCA9PT0gbnVsbCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IGVsc2UgeyBfeCA9IHBhcmVudDsgX3gyID0gcHJvcGVydHk7IF94MyA9IHJlY2VpdmVyOyBfYWdhaW4gPSB0cnVlOyBkZXNjID0gcGFyZW50ID0gdW5kZWZpbmVkOyBjb250aW51ZSBfZnVuY3Rpb247IH0gfSBlbHNlIGlmICgndmFsdWUnIGluIGRlc2MpIHsgcmV0dXJuIGRlc2MudmFsdWU7IH0gZWxzZSB7IHZhciBnZXR0ZXIgPSBkZXNjLmdldDsgaWYgKGdldHRlciA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gcmV0dXJuIGdldHRlci5jYWxsKHJlY2VpdmVyKTsgfSB9IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9zaWRlYmFyVHJhbnNmZXJEYXRhID0gcmVxdWlyZSgnLi4vc2lkZWJhci9UcmFuc2ZlckRhdGEnKTtcblxudmFyIF9zaWRlYmFyVHJhbnNmZXJEYXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3NpZGViYXJUcmFuc2ZlckRhdGEpO1xuXG4vLyBpbXBvcnQgQ3VzdG9tU2Nyb2xsYmFycyBmcm9tICcuLi91aS9DdXN0b21TY3JvbGxiYXJzJztcblxudmFyIF9mb3Jtc1NlYXJjaEJveCA9IHJlcXVpcmUoJy4uL2Zvcm1zL1NlYXJjaEJveCcpO1xuXG52YXIgX2Zvcm1zU2VhcmNoQm94MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Zvcm1zU2VhcmNoQm94KTtcblxudmFyIF9zaWRlYmFyU3BlZWRMaW1pdERyb3Bkb3duID0gcmVxdWlyZSgnLi4vc2lkZWJhci9TcGVlZExpbWl0RHJvcGRvd24nKTtcblxudmFyIF9zaWRlYmFyU3BlZWRMaW1pdERyb3Bkb3duMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3NpZGViYXJTcGVlZExpbWl0RHJvcGRvd24pO1xuXG52YXIgX3NpZGViYXJTdGF0dXNGaWx0ZXJzID0gcmVxdWlyZSgnLi4vc2lkZWJhci9TdGF0dXNGaWx0ZXJzJyk7XG5cbnZhciBfc2lkZWJhclN0YXR1c0ZpbHRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2lkZWJhclN0YXR1c0ZpbHRlcnMpO1xuXG52YXIgX3NpZGViYXJUcmFja2VyRmlsdGVycyA9IHJlcXVpcmUoJy4uL3NpZGViYXIvVHJhY2tlckZpbHRlcnMnKTtcblxudmFyIF9zaWRlYmFyVHJhY2tlckZpbHRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2lkZWJhclRyYWNrZXJGaWx0ZXJzKTtcblxudmFyIFNpZGViYXIgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFNpZGViYXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFNpZGViYXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNpZGViYXIpO1xuXG4gICAgX2dldChPYmplY3QuZ2V0UHJvdG90eXBlT2YoU2lkZWJhci5wcm90b3R5cGUpLCAnY29uc3RydWN0b3InLCB0aGlzKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNpZGViYXIsIFt7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAnZGl2JyxcbiAgICAgICAgeyBjbGFzc05hbWU6ICdhcHBsaWNhdGlvbl9fc2lkZWJhcicgfSxcbiAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3NpZGViYXJTcGVlZExpbWl0RHJvcGRvd24yWydkZWZhdWx0J10sIG51bGwpLFxuICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfc2lkZWJhclRyYW5zZmVyRGF0YTJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9mb3Jtc1NlYXJjaEJveDJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9zaWRlYmFyU3RhdHVzRmlsdGVyczJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9zaWRlYmFyVHJhY2tlckZpbHRlcnMyWydkZWZhdWx0J10sIG51bGwpXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBTaWRlYmFyO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNpZGViYXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY2xpZW50L3NvdXJjZS9zY3JpcHRzL2NvbXBvbmVudHMvcGFuZWxzL1NpZGViYXIuanNcbiAqKiBtb2R1bGUgaWQgPSAyMTFcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
+ eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _sidebarTransferData = __webpack_require__(212);\n\nvar _sidebarTransferData2 = _interopRequireDefault(_sidebarTransferData);\n\nvar _uiCustomScrollbars = __webpack_require__(271);\n\nvar _uiCustomScrollbars2 = _interopRequireDefault(_uiCustomScrollbars);\n\nvar _formsSearchBox = __webpack_require__(221);\n\nvar _formsSearchBox2 = _interopRequireDefault(_formsSearchBox);\n\nvar _sidebarSpeedLimitDropdown = __webpack_require__(223);\n\nvar _sidebarSpeedLimitDropdown2 = _interopRequireDefault(_sidebarSpeedLimitDropdown);\n\nvar _sidebarStatusFilters = __webpack_require__(227);\n\nvar _sidebarStatusFilters2 = _interopRequireDefault(_sidebarStatusFilters);\n\nvar _sidebarTrackerFilters = __webpack_require__(236);\n\nvar _sidebarTrackerFilters2 = _interopRequireDefault(_sidebarTrackerFilters);\n\nvar Sidebar = (function (_React$Component) {\n _inherits(Sidebar, _React$Component);\n\n function Sidebar() {\n _classCallCheck(this, Sidebar);\n\n _get(Object.getPrototypeOf(Sidebar.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(Sidebar, [{\n key: 'render',\n value: function render() {\n return _react2['default'].createElement(\n _uiCustomScrollbars2['default'],\n { className: 'application__sidebar', inverted: true },\n _react2['default'].createElement(_sidebarSpeedLimitDropdown2['default'], null),\n _react2['default'].createElement(_sidebarTransferData2['default'], null),\n _react2['default'].createElement(_formsSearchBox2['default'], null),\n _react2['default'].createElement(_sidebarStatusFilters2['default'], null),\n _react2['default'].createElement(_sidebarTrackerFilters2['default'], null)\n );\n }\n }]);\n\n return Sidebar;\n})(_react2['default'].Component);\n\nexports['default'] = Sidebar;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9wYW5lbHMvU2lkZWJhci5qcz8zM2E1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVELGlDQUFpQywyQ0FBMkMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RCwyREFBMkQsRUFBRSxFQUFFLHlEQUF5RCxxRUFBcUUsNkRBQTZELG9CQUFvQixHQUFHLEVBQUU7O0FBRWxqQix1Q0FBdUMsbUJBQW1CLDRCQUE0QixpREFBaUQsZ0JBQWdCLGtEQUFrRCw4REFBOEQsMEJBQTBCLDRDQUE0Qyx1QkFBdUIsa0JBQWtCLEVBQUUsT0FBTyxhQUFhLGdCQUFnQixnQkFBZ0IsZUFBZSwyQkFBMkIsb0JBQW9CLEVBQUUsRUFBRSw0QkFBNEIsbUJBQW1CLEVBQUUsT0FBTyx1QkFBdUIsNEJBQTRCLGtCQUFrQixFQUFFLDhCQUE4QixFQUFFLEVBQUU7O0FBRS9vQixzQ0FBc0MsdUNBQXVDLGtCQUFrQjs7QUFFL0YsaURBQWlELDBDQUEwQywwREFBMEQsRUFBRTs7QUFFdkosMENBQTBDLCtEQUErRCxxR0FBcUcsRUFBRSx5RUFBeUUsZUFBZSx5RUFBeUUsRUFBRSxFQUFFLHVIQUF1SDs7QUFFNWU7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsb0RBQW9EO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7QUFDQSIsImZpbGUiOiIyMTEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG52YXIgX2dldCA9IGZ1bmN0aW9uIGdldChfeCwgX3gyLCBfeDMpIHsgdmFyIF9hZ2FpbiA9IHRydWU7IF9mdW5jdGlvbjogd2hpbGUgKF9hZ2FpbikgeyB2YXIgb2JqZWN0ID0gX3gsIHByb3BlcnR5ID0gX3gyLCByZWNlaXZlciA9IF94MzsgX2FnYWluID0gZmFsc2U7IGlmIChvYmplY3QgPT09IG51bGwpIG9iamVjdCA9IEZ1bmN0aW9uLnByb3RvdHlwZTsgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgcHJvcGVydHkpOyBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7IHZhciBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqZWN0KTsgaWYgKHBhcmVudCA9PT0gbnVsbCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IGVsc2UgeyBfeCA9IHBhcmVudDsgX3gyID0gcHJvcGVydHk7IF94MyA9IHJlY2VpdmVyOyBfYWdhaW4gPSB0cnVlOyBkZXNjID0gcGFyZW50ID0gdW5kZWZpbmVkOyBjb250aW51ZSBfZnVuY3Rpb247IH0gfSBlbHNlIGlmICgndmFsdWUnIGluIGRlc2MpIHsgcmV0dXJuIGRlc2MudmFsdWU7IH0gZWxzZSB7IHZhciBnZXR0ZXIgPSBkZXNjLmdldDsgaWYgKGdldHRlciA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gcmV0dXJuIGdldHRlci5jYWxsKHJlY2VpdmVyKTsgfSB9IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9zaWRlYmFyVHJhbnNmZXJEYXRhID0gcmVxdWlyZSgnLi4vc2lkZWJhci9UcmFuc2ZlckRhdGEnKTtcblxudmFyIF9zaWRlYmFyVHJhbnNmZXJEYXRhMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3NpZGViYXJUcmFuc2ZlckRhdGEpO1xuXG52YXIgX3VpQ3VzdG9tU2Nyb2xsYmFycyA9IHJlcXVpcmUoJy4uL3VpL0N1c3RvbVNjcm9sbGJhcnMnKTtcblxudmFyIF91aUN1c3RvbVNjcm9sbGJhcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfdWlDdXN0b21TY3JvbGxiYXJzKTtcblxudmFyIF9mb3Jtc1NlYXJjaEJveCA9IHJlcXVpcmUoJy4uL2Zvcm1zL1NlYXJjaEJveCcpO1xuXG52YXIgX2Zvcm1zU2VhcmNoQm94MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2Zvcm1zU2VhcmNoQm94KTtcblxudmFyIF9zaWRlYmFyU3BlZWRMaW1pdERyb3Bkb3duID0gcmVxdWlyZSgnLi4vc2lkZWJhci9TcGVlZExpbWl0RHJvcGRvd24nKTtcblxudmFyIF9zaWRlYmFyU3BlZWRMaW1pdERyb3Bkb3duMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3NpZGViYXJTcGVlZExpbWl0RHJvcGRvd24pO1xuXG52YXIgX3NpZGViYXJTdGF0dXNGaWx0ZXJzID0gcmVxdWlyZSgnLi4vc2lkZWJhci9TdGF0dXNGaWx0ZXJzJyk7XG5cbnZhciBfc2lkZWJhclN0YXR1c0ZpbHRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2lkZWJhclN0YXR1c0ZpbHRlcnMpO1xuXG52YXIgX3NpZGViYXJUcmFja2VyRmlsdGVycyA9IHJlcXVpcmUoJy4uL3NpZGViYXIvVHJhY2tlckZpbHRlcnMnKTtcblxudmFyIF9zaWRlYmFyVHJhY2tlckZpbHRlcnMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc2lkZWJhclRyYWNrZXJGaWx0ZXJzKTtcblxudmFyIFNpZGViYXIgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFNpZGViYXIsIF9SZWFjdCRDb21wb25lbnQpO1xuXG4gIGZ1bmN0aW9uIFNpZGViYXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNpZGViYXIpO1xuXG4gICAgX2dldChPYmplY3QuZ2V0UHJvdG90eXBlT2YoU2lkZWJhci5wcm90b3R5cGUpLCAnY29uc3RydWN0b3InLCB0aGlzKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFNpZGViYXIsIFt7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICBfdWlDdXN0b21TY3JvbGxiYXJzMlsnZGVmYXVsdCddLFxuICAgICAgICB7IGNsYXNzTmFtZTogJ2FwcGxpY2F0aW9uX19zaWRlYmFyJywgaW52ZXJ0ZWQ6IHRydWUgfSxcbiAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3NpZGViYXJTcGVlZExpbWl0RHJvcGRvd24yWydkZWZhdWx0J10sIG51bGwpLFxuICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChfc2lkZWJhclRyYW5zZmVyRGF0YTJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9mb3Jtc1NlYXJjaEJveDJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9zaWRlYmFyU3RhdHVzRmlsdGVyczJbJ2RlZmF1bHQnXSwgbnVsbCksXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9zaWRlYmFyVHJhY2tlckZpbHRlcnMyWydkZWZhdWx0J10sIG51bGwpXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBTaWRlYmFyO1xufSkoX3JlYWN0MlsnZGVmYXVsdCddLkNvbXBvbmVudCk7XG5cbmV4cG9ydHNbJ2RlZmF1bHQnXSA9IFNpZGViYXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY2xpZW50L3NvdXJjZS9zY3JpcHRzL2NvbXBvbmVudHMvcGFuZWxzL1NpZGViYXIuanNcbiAqKiBtb2R1bGUgaWQgPSAyMTFcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
/***/ },
/* 212 */
@@ -1652,7 +1652,7 @@
/* 268 */
/***/ function(module, exports, __webpack_require__) {
- eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _lodash = __webpack_require__(161);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _classnames = __webpack_require__(171);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactAddonsCssTransitionGroup = __webpack_require__(163);\n\nvar _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(157);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\n// import CustomScrollbars from '../ui/CustomScrollbars';\n\nvar _constantsEventTypes = __webpack_require__(172);\n\nvar _constantsEventTypes2 = _interopRequireDefault(_constantsEventTypes);\n\nvar _uiLoadingIndicator = __webpack_require__(217);\n\nvar _uiLoadingIndicator2 = _interopRequireDefault(_uiLoadingIndicator);\n\nvar _Torrent = __webpack_require__(269);\n\nvar _Torrent2 = _interopRequireDefault(_Torrent);\n\nvar _storesTorrentFilterStore = __webpack_require__(208);\n\nvar _storesTorrentFilterStore2 = _interopRequireDefault(_storesTorrentFilterStore);\n\nvar _storesTorrentStore = __webpack_require__(199);\n\nvar _storesTorrentStore2 = _interopRequireDefault(_storesTorrentStore);\n\nvar _actionsUIActions = __webpack_require__(209);\n\nvar _actionsUIActions2 = _interopRequireDefault(_actionsUIActions);\n\nvar _storesUIStore = __webpack_require__(210);\n\nvar _storesUIStore2 = _interopRequireDefault(_storesUIStore);\n\nvar METHODS_TO_BIND = ['onReceiveTorrentsError', 'onReceiveTorrentsSuccess', 'handleDetailsClick', 'handleTorrentClick', 'onTorrentFilterChange', 'onTorrentSelectionChange', 'getListPadding', 'getViewportLimits', 'setScrollPosition', 'setViewportHeight'];\n\nvar TorrentListContainer = (function (_React$Component) {\n _inherits(TorrentListContainer, _React$Component);\n\n function TorrentListContainer() {\n var _this = this;\n\n _classCallCheck(this, TorrentListContainer);\n\n _get(Object.getPrototypeOf(TorrentListContainer.prototype), 'constructor', this).call(this);\n\n this.state = {\n maxTorrentIndex: 10,\n minTorrentIndex: 0,\n scrollPosition: 0,\n torrentCount: 0,\n torrentHeight: 64,\n torrents: null,\n torrentRequestError: false,\n torrentRequestSuccess: false,\n viewportHeight: 0\n };\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n\n this.handleScroll = _lodash2['default'].throttle(this.setScrollPosition, 100, {\n leading: true,\n trailing: true\n });\n\n this.handleWindowResize = _lodash2['default'].throttle(this.setViewportHeight, 350, {\n leading: true,\n trailing: true\n });\n }\n\n _createClass(TorrentListContainer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].UI_TORRENT_SELECTION_CHANGE, this.onTorrentSelectionChange);\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_SUCCESS, this.onReceiveTorrentsSuccess);\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_ERROR, this.onReceiveTorrentsError);\n _storesTorrentFilterStore2['default'].listen(_constantsEventTypes2['default'].UI_TORRENTS_FILTER_CHANGE, this.onTorrentFilterChange);\n _storesTorrentStore2['default'].fetchTorrents();\n window.addEventListener('resize', this.handleWindowResize);\n this.setViewportHeight();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].UI_TORRENT_SELECTION_CHANGE, this.onTorrentSelectionChange);\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_SUCCESS, this.onReceiveTorrentsSuccess);\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_ERROR, this.onReceiveTorrentsError);\n _storesTorrentFilterStore2['default'].unlisten(_constantsEventTypes2['default'].UI_TORRENTS_FILTER_CHANGE, this.onTorrentFilterChange);\n }\n }, {\n key: 'handleDetailsClick',\n value: function handleDetailsClick(torrent, event) {\n _actionsUIActions2['default'].handleDetailsClick({\n hash: torrent.hash,\n event: event\n });\n }\n }, {\n key: 'handleTorrentClick',\n value: function handleTorrentClick(hash, event) {\n _actionsUIActions2['default'].handleTorrentClick({ hash: hash, event: event });\n }\n }, {\n key: 'onReceiveTorrentsError',\n value: function onReceiveTorrentsError() {\n this.setState({ torrentRequestError: true, torrentRequestSuccess: false });\n }\n }, {\n key: 'onReceiveTorrentsSuccess',\n value: function onReceiveTorrentsSuccess() {\n var torrents = _storesTorrentStore2['default'].getTorrents();\n\n this.setState({\n torrents: torrents,\n torrentCount: torrents.length,\n torrentRequestError: false,\n torrentRequestSuccess: true\n });\n }\n }, {\n key: 'onTorrentFilterChange',\n value: function onTorrentFilterChange() {\n this.forceUpdate();\n }\n }, {\n key: 'onTorrentSelectionChange',\n value: function onTorrentSelectionChange() {\n if (_storesTorrentStore2['default'].getSelectedTorrents().length !== 1) {\n _storesUIStore2['default'].closeTorrentDetailsPanel();\n }\n\n this.forceUpdate();\n }\n }, {\n key: 'getListPadding',\n value: function getListPadding(minTorrentIndex, maxTorrentIndex, torrentCount) {\n // Calculate the number of pixels to pad the visible item list.\n // If the minimum item index is less than 0, then we're already at the top\n // of the list and don't need to render any padding there.\n if (minTorrentIndex < 0) {\n minTorrentIndex = 0;\n }\n\n if (maxTorrentIndex > torrentCount) {\n maxTorrentIndex = torrentCount;\n }\n\n var hiddenBottom = torrentCount - maxTorrentIndex;\n var hiddenTop = minTorrentIndex;\n\n var bottom = hiddenBottom * this.state.torrentHeight;\n var top = hiddenTop * this.state.torrentHeight;\n\n return { bottom: bottom, top: top };\n }\n }, {\n key: 'getLoadingIndicator',\n value: function getLoadingIndicator() {\n return _react2['default'].createElement(_uiLoadingIndicator2['default'], null);\n }\n }, {\n key: 'getViewportLimits',\n value: function getViewportLimits() {\n // Calculate the number of items that should be rendered based on the height\n // of the viewport. We offset this to render a few more outide of the\n // container's dimensions, which looks nicer when the user scrolls.\n var offset = 10;\n\n // The number of elements in view is the height of the viewport divided\n // by the height of the elements.\n var elementsInView = Math.floor(this.state.viewportHeight / this.state.torrentHeight);\n\n // The minimum item index to render is the number of items above the\n // viewport's current scroll position, minus the offset.\n var minTorrentIndex = Math.floor(this.state.scrollPosition / this.state.torrentHeight) - offset;\n\n // The maximum item index to render is the minimum item rendered, plus the\n // number of items in view, plus double the offset.\n var maxTorrentIndex = minTorrentIndex + elementsInView + offset * 2;\n\n return { minTorrentIndex: minTorrentIndex, maxTorrentIndex: maxTorrentIndex };\n }\n }, {\n key: 'setScrollPosition',\n value: function setScrollPosition() {\n if (this.refs.torrentList) {\n this.setState({\n // scrollPosition: this.refs.torrentList.refs.scrollbar.getScrollTop()\n scrollPosition: _reactDom2['default'].findDOMNode(this.refs.torrentList).scrollTop\n });\n }\n }\n }, {\n key: 'setViewportHeight',\n value: function setViewportHeight() {\n if (this.refs.torrentList) {\n this.setState({\n // viewportHeight: this.refs.torrentList.refs.scrollbar.getHeight()\n viewportHeight: _reactDom2['default'].findDOMNode(this.refs.torrentList).offsetHeight\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var content = this.getLoadingIndicator();\n\n if (this.state.torrentRequestSuccess) {\n (function () {\n var selectedTorrents = _storesTorrentStore2['default'].getSelectedTorrents();\n var torrents = _this2.state.torrents;\n var viewportLimits = _this2.getViewportLimits();\n\n var listPadding = _this2.getListPadding(viewportLimits.minTorrentIndex, viewportLimits.maxTorrentIndex, torrents.length);\n\n var maxTorrentIndex = viewportLimits.maxTorrentIndex;\n var minTorrentIndex = viewportLimits.minTorrentIndex;\n\n if (minTorrentIndex < 0) {\n minTorrentIndex = 0;\n }\n\n var visibleTorrents = torrents.slice(minTorrentIndex, maxTorrentIndex);\n\n var torrentList = visibleTorrents.map(function (torrent, index) {\n var isSelected = false;\n var hash = torrent.hash;\n\n if (selectedTorrents.indexOf(hash) > -1) {\n isSelected = true;\n }\n\n return _react2['default'].createElement(_Torrent2['default'], { key: hash, data: torrent, selected: isSelected,\n handleClick: _this2.handleTorrentClick,\n handleDetailsClick: _this2.handleDetailsClick });\n });\n\n content = _react2['default'].createElement(\n 'ul',\n { className: 'torrent__list', key: 'torrent__list' },\n _react2['default'].createElement('li', { className: 'torrent__spacer torrent__spacer--top',\n style: { height: listPadding.top + 'px' } }),\n torrentList,\n _react2['default'].createElement('li', { className: 'torrent__spacer torrent__spacer--bottom',\n style: { height: listPadding.bottom + 'px' } })\n );\n })();\n }\n\n return _react2['default'].createElement(\n _reactAddonsCssTransitionGroup2['default'],\n {\n component: 'div',\n className: 'torrent__list__wrapper',\n onScroll: this.handleScroll,\n ref: 'torrentList',\n transitionName: 'torrent__list--loading',\n transitionEnterTimeout: 1000,\n transitionLeaveTimeout: 1000 },\n content\n );\n }\n }]);\n\n return TorrentListContainer;\n})(_react2['default'].Component);\n\nexports['default'] = TorrentListContainer;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy90b3JyZW50LWxpc3QvVG9ycmVudExpc3QuanM/ZDcyYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsMkRBQTJELEVBQUUsRUFBRSx5REFBeUQscUVBQXFFLDZEQUE2RCxvQkFBb0IsR0FBRyxFQUFFOztBQUVsakIsdUNBQXVDLG1CQUFtQiw0QkFBNEIsaURBQWlELGdCQUFnQixrREFBa0QsOERBQThELDBCQUEwQiw0Q0FBNEMsdUJBQXVCLGtCQUFrQixFQUFFLE9BQU8sYUFBYSxnQkFBZ0IsZ0JBQWdCLGVBQWUsMkJBQTJCLG9CQUFvQixFQUFFLEVBQUUsNEJBQTRCLG1CQUFtQixFQUFFLE9BQU8sdUJBQXVCLDRCQUE0QixrQkFBa0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFFOztBQUUvb0Isc0NBQXNDLHVDQUF1QyxrQkFBa0I7O0FBRS9GLGlEQUFpRCwwQ0FBMEMsMERBQTBELEVBQUU7O0FBRXZKLDBDQUEwQywrREFBK0QscUdBQXFHLEVBQUUseUVBQXlFLGVBQWUseUVBQXlFLEVBQUUsRUFBRSx1SEFBdUg7O0FBRTVlOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0Esd0RBQXdELDJCQUEyQjtBQUNuRjtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EscUJBQXFCLDBEQUEwRDtBQUMvRTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGNBQWM7QUFDZDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsY0FBYztBQUNkO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsMkVBQTJFO0FBQzNFO0FBQ0EsNkRBQTZEO0FBQzdELFdBQVc7O0FBRVg7QUFDQTtBQUNBLGFBQWEsbURBQW1EO0FBQ2hFLG9EQUFvRDtBQUNwRCxzQkFBc0IsaUNBQWlDLEVBQUU7QUFDekQ7QUFDQSxvREFBb0Q7QUFDcEQsc0JBQXNCLG9DQUFvQyxFQUFFO0FBQzVEO0FBQ0EsU0FBUztBQUNUOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBIiwiZmlsZSI6IjI2OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfY3JlYXRlQ2xhc3MgPSAoZnVuY3Rpb24gKCkgeyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykgeyB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldOyBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBkZXNjcmlwdG9yLmVudW1lcmFibGUgfHwgZmFsc2U7IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTsgaWYgKCd2YWx1ZScgaW4gZGVzY3JpcHRvcikgZGVzY3JpcHRvci53cml0YWJsZSA9IHRydWU7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsgfSB9IHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7IGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7IGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpOyByZXR1cm4gQ29uc3RydWN0b3I7IH07IH0pKCk7XG5cbnZhciBfZ2V0ID0gZnVuY3Rpb24gZ2V0KF94LCBfeDIsIF94MykgeyB2YXIgX2FnYWluID0gdHJ1ZTsgX2Z1bmN0aW9uOiB3aGlsZSAoX2FnYWluKSB7IHZhciBvYmplY3QgPSBfeCwgcHJvcGVydHkgPSBfeDIsIHJlY2VpdmVyID0gX3gzOyBfYWdhaW4gPSBmYWxzZTsgaWYgKG9iamVjdCA9PT0gbnVsbCkgb2JqZWN0ID0gRnVuY3Rpb24ucHJvdG90eXBlOyB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqZWN0LCBwcm9wZXJ0eSk7IGlmIChkZXNjID09PSB1bmRlZmluZWQpIHsgdmFyIHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmplY3QpOyBpZiAocGFyZW50ID09PSBudWxsKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gZWxzZSB7IF94ID0gcGFyZW50OyBfeDIgPSBwcm9wZXJ0eTsgX3gzID0gcmVjZWl2ZXI7IF9hZ2FpbiA9IHRydWU7IGRlc2MgPSBwYXJlbnQgPSB1bmRlZmluZWQ7IGNvbnRpbnVlIF9mdW5jdGlvbjsgfSB9IGVsc2UgaWYgKCd2YWx1ZScgaW4gZGVzYykgeyByZXR1cm4gZGVzYy52YWx1ZTsgfSBlbHNlIHsgdmFyIGdldHRlciA9IGRlc2MuZ2V0OyBpZiAoZ2V0dGVyID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSByZXR1cm4gZ2V0dGVyLmNhbGwocmVjZWl2ZXIpOyB9IH0gfTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgJ2RlZmF1bHQnOiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpOyB9IH1cblxuZnVuY3Rpb24gX2luaGVyaXRzKHN1YkNsYXNzLCBzdXBlckNsYXNzKSB7IGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gJ2Z1bmN0aW9uJyAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoJ1N1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgJyArIHR5cGVvZiBzdXBlckNsYXNzKTsgfSBzdWJDbGFzcy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHN1cGVyQ2xhc3MgJiYgc3VwZXJDbGFzcy5wcm90b3R5cGUsIHsgY29uc3RydWN0b3I6IHsgdmFsdWU6IHN1YkNsYXNzLCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH0pOyBpZiAoc3VwZXJDbGFzcykgT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7IH1cblxudmFyIF9sb2Rhc2ggPSByZXF1aXJlKCdsb2Rhc2gnKTtcblxudmFyIF9sb2Rhc2gyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfbG9kYXNoKTtcblxudmFyIF9jbGFzc25hbWVzID0gcmVxdWlyZSgnY2xhc3NuYW1lcycpO1xuXG52YXIgX2NsYXNzbmFtZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2xhc3NuYW1lcyk7XG5cbnZhciBfcmVhY3RBZGRvbnNDc3NUcmFuc2l0aW9uR3JvdXAgPSByZXF1aXJlKCdyZWFjdC1hZGRvbnMtY3NzLXRyYW5zaXRpb24tZ3JvdXAnKTtcblxudmFyIF9yZWFjdEFkZG9uc0Nzc1RyYW5zaXRpb25Hcm91cDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdEFkZG9uc0Nzc1RyYW5zaXRpb25Hcm91cCk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9yZWFjdERvbSA9IHJlcXVpcmUoJ3JlYWN0LWRvbScpO1xuXG52YXIgX3JlYWN0RG9tMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0RG9tKTtcblxuLy8gaW1wb3J0IEN1c3RvbVNjcm9sbGJhcnMgZnJvbSAnLi4vdWkvQ3VzdG9tU2Nyb2xsYmFycyc7XG5cbnZhciBfY29uc3RhbnRzRXZlbnRUeXBlcyA9IHJlcXVpcmUoJy4uLy4uL2NvbnN0YW50cy9FdmVudFR5cGVzJyk7XG5cbnZhciBfY29uc3RhbnRzRXZlbnRUeXBlczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9jb25zdGFudHNFdmVudFR5cGVzKTtcblxudmFyIF91aUxvYWRpbmdJbmRpY2F0b3IgPSByZXF1aXJlKCcuLi91aS9Mb2FkaW5nSW5kaWNhdG9yJyk7XG5cbnZhciBfdWlMb2FkaW5nSW5kaWNhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3VpTG9hZGluZ0luZGljYXRvcik7XG5cbnZhciBfVG9ycmVudCA9IHJlcXVpcmUoJy4vVG9ycmVudCcpO1xuXG52YXIgX1RvcnJlbnQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfVG9ycmVudCk7XG5cbnZhciBfc3RvcmVzVG9ycmVudEZpbHRlclN0b3JlID0gcmVxdWlyZSgnLi4vLi4vc3RvcmVzL1RvcnJlbnRGaWx0ZXJTdG9yZScpO1xuXG52YXIgX3N0b3Jlc1RvcnJlbnRGaWx0ZXJTdG9yZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zdG9yZXNUb3JyZW50RmlsdGVyU3RvcmUpO1xuXG52YXIgX3N0b3Jlc1RvcnJlbnRTdG9yZSA9IHJlcXVpcmUoJy4uLy4uL3N0b3Jlcy9Ub3JyZW50U3RvcmUnKTtcblxudmFyIF9zdG9yZXNUb3JyZW50U3RvcmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc3RvcmVzVG9ycmVudFN0b3JlKTtcblxudmFyIF9hY3Rpb25zVUlBY3Rpb25zID0gcmVxdWlyZSgnLi4vLi4vYWN0aW9ucy9VSUFjdGlvbnMnKTtcblxudmFyIF9hY3Rpb25zVUlBY3Rpb25zMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2FjdGlvbnNVSUFjdGlvbnMpO1xuXG52YXIgX3N0b3Jlc1VJU3RvcmUgPSByZXF1aXJlKCcuLi8uLi9zdG9yZXMvVUlTdG9yZScpO1xuXG52YXIgX3N0b3Jlc1VJU3RvcmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc3RvcmVzVUlTdG9yZSk7XG5cbnZhciBNRVRIT0RTX1RPX0JJTkQgPSBbJ29uUmVjZWl2ZVRvcnJlbnRzRXJyb3InLCAnb25SZWNlaXZlVG9ycmVudHNTdWNjZXNzJywgJ2hhbmRsZURldGFpbHNDbGljaycsICdoYW5kbGVUb3JyZW50Q2xpY2snLCAnb25Ub3JyZW50RmlsdGVyQ2hhbmdlJywgJ29uVG9ycmVudFNlbGVjdGlvbkNoYW5nZScsICdnZXRMaXN0UGFkZGluZycsICdnZXRWaWV3cG9ydExpbWl0cycsICdzZXRTY3JvbGxQb3NpdGlvbicsICdzZXRWaWV3cG9ydEhlaWdodCddO1xuXG52YXIgVG9ycmVudExpc3RDb250YWluZXIgPSAoZnVuY3Rpb24gKF9SZWFjdCRDb21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRvcnJlbnRMaXN0Q29udGFpbmVyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBUb3JyZW50TGlzdENvbnRhaW5lcigpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRvcnJlbnRMaXN0Q29udGFpbmVyKTtcblxuICAgIF9nZXQoT2JqZWN0LmdldFByb3RvdHlwZU9mKFRvcnJlbnRMaXN0Q29udGFpbmVyLnByb3RvdHlwZSksICdjb25zdHJ1Y3RvcicsIHRoaXMpLmNhbGwodGhpcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgbWF4VG9ycmVudEluZGV4OiAxMCxcbiAgICAgIG1pblRvcnJlbnRJbmRleDogMCxcbiAgICAgIHNjcm9sbFBvc2l0aW9uOiAwLFxuICAgICAgdG9ycmVudENvdW50OiAwLFxuICAgICAgdG9ycmVudEhlaWdodDogNjQsXG4gICAgICB0b3JyZW50czogbnVsbCxcbiAgICAgIHRvcnJlbnRSZXF1ZXN0RXJyb3I6IGZhbHNlLFxuICAgICAgdG9ycmVudFJlcXVlc3RTdWNjZXNzOiBmYWxzZSxcbiAgICAgIHZpZXdwb3J0SGVpZ2h0OiAwXG4gICAgfTtcblxuICAgIE1FVEhPRFNfVE9fQklORC5mb3JFYWNoKGZ1bmN0aW9uIChtZXRob2QpIHtcbiAgICAgIF90aGlzW21ldGhvZF0gPSBfdGhpc1ttZXRob2RdLmJpbmQoX3RoaXMpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5oYW5kbGVTY3JvbGwgPSBfbG9kYXNoMlsnZGVmYXVsdCddLnRocm90dGxlKHRoaXMuc2V0U2Nyb2xsUG9zaXRpb24sIDEwMCwge1xuICAgICAgbGVhZGluZzogdHJ1ZSxcbiAgICAgIHRyYWlsaW5nOiB0cnVlXG4gICAgfSk7XG5cbiAgICB0aGlzLmhhbmRsZVdpbmRvd1Jlc2l6ZSA9IF9sb2Rhc2gyWydkZWZhdWx0J10udGhyb3R0bGUodGhpcy5zZXRWaWV3cG9ydEhlaWdodCwgMzUwLCB7XG4gICAgICBsZWFkaW5nOiB0cnVlLFxuICAgICAgdHJhaWxpbmc6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUb3JyZW50TGlzdENvbnRhaW5lciwgW3tcbiAgICBrZXk6ICdjb21wb25lbnREaWRNb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5saXN0ZW4oX2NvbnN0YW50c0V2ZW50VHlwZXMyWydkZWZhdWx0J10uVUlfVE9SUkVOVF9TRUxFQ1RJT05fQ0hBTkdFLCB0aGlzLm9uVG9ycmVudFNlbGVjdGlvbkNoYW5nZSk7XG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfVE9SUkVOVFNfUkVRVUVTVF9TVUNDRVNTLCB0aGlzLm9uUmVjZWl2ZVRvcnJlbnRzU3VjY2Vzcyk7XG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfVE9SUkVOVFNfUkVRVUVTVF9FUlJPUiwgdGhpcy5vblJlY2VpdmVUb3JyZW50c0Vycm9yKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50RmlsdGVyU3RvcmUyWydkZWZhdWx0J10ubGlzdGVuKF9jb25zdGFudHNFdmVudFR5cGVzMlsnZGVmYXVsdCddLlVJX1RPUlJFTlRTX0ZJTFRFUl9DSEFOR0UsIHRoaXMub25Ub3JyZW50RmlsdGVyQ2hhbmdlKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50U3RvcmUyWydkZWZhdWx0J10uZmV0Y2hUb3JyZW50cygpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKTtcbiAgICAgIHRoaXMuc2V0Vmlld3BvcnRIZWlnaHQoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdjb21wb25lbnRXaWxsVW5tb3VudCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKTtcblxuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS51bmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5VSV9UT1JSRU5UX1NFTEVDVElPTl9DSEFOR0UsIHRoaXMub25Ub3JyZW50U2VsZWN0aW9uQ2hhbmdlKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50U3RvcmUyWydkZWZhdWx0J10udW5saXN0ZW4oX2NvbnN0YW50c0V2ZW50VHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX1RPUlJFTlRTX1JFUVVFU1RfU1VDQ0VTUywgdGhpcy5vblJlY2VpdmVUb3JyZW50c1N1Y2Nlc3MpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS51bmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfVE9SUkVOVFNfUkVRVUVTVF9FUlJPUiwgdGhpcy5vblJlY2VpdmVUb3JyZW50c0Vycm9yKTtcbiAgICAgIF9zdG9yZXNUb3JyZW50RmlsdGVyU3RvcmUyWydkZWZhdWx0J10udW5saXN0ZW4oX2NvbnN0YW50c0V2ZW50VHlwZXMyWydkZWZhdWx0J10uVUlfVE9SUkVOVFNfRklMVEVSX0NIQU5HRSwgdGhpcy5vblRvcnJlbnRGaWx0ZXJDaGFuZ2UpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2hhbmRsZURldGFpbHNDbGljaycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGhhbmRsZURldGFpbHNDbGljayh0b3JyZW50LCBldmVudCkge1xuICAgICAgX2FjdGlvbnNVSUFjdGlvbnMyWydkZWZhdWx0J10uaGFuZGxlRGV0YWlsc0NsaWNrKHtcbiAgICAgICAgaGFzaDogdG9ycmVudC5oYXNoLFxuICAgICAgICBldmVudDogZXZlbnRcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2hhbmRsZVRvcnJlbnRDbGljaycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGhhbmRsZVRvcnJlbnRDbGljayhoYXNoLCBldmVudCkge1xuICAgICAgX2FjdGlvbnNVSUFjdGlvbnMyWydkZWZhdWx0J10uaGFuZGxlVG9ycmVudENsaWNrKHsgaGFzaDogaGFzaCwgZXZlbnQ6IGV2ZW50IH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ29uUmVjZWl2ZVRvcnJlbnRzRXJyb3InLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvblJlY2VpdmVUb3JyZW50c0Vycm9yKCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHRvcnJlbnRSZXF1ZXN0RXJyb3I6IHRydWUsIHRvcnJlbnRSZXF1ZXN0U3VjY2VzczogZmFsc2UgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnb25SZWNlaXZlVG9ycmVudHNTdWNjZXNzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25SZWNlaXZlVG9ycmVudHNTdWNjZXNzKCkge1xuICAgICAgdmFyIHRvcnJlbnRzID0gX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5nZXRUb3JyZW50cygpO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgdG9ycmVudHM6IHRvcnJlbnRzLFxuICAgICAgICB0b3JyZW50Q291bnQ6IHRvcnJlbnRzLmxlbmd0aCxcbiAgICAgICAgdG9ycmVudFJlcXVlc3RFcnJvcjogZmFsc2UsXG4gICAgICAgIHRvcnJlbnRSZXF1ZXN0U3VjY2VzczogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnb25Ub3JyZW50RmlsdGVyQ2hhbmdlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25Ub3JyZW50RmlsdGVyQ2hhbmdlKCkge1xuICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ29uVG9ycmVudFNlbGVjdGlvbkNoYW5nZScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uVG9ycmVudFNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICAgIGlmIChfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmdldFNlbGVjdGVkVG9ycmVudHMoKS5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgX3N0b3Jlc1VJU3RvcmUyWydkZWZhdWx0J10uY2xvc2VUb3JyZW50RGV0YWlsc1BhbmVsKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZm9yY2VVcGRhdGUoKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdnZXRMaXN0UGFkZGluZycsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldExpc3RQYWRkaW5nKG1pblRvcnJlbnRJbmRleCwgbWF4VG9ycmVudEluZGV4LCB0b3JyZW50Q291bnQpIHtcbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIHBpeGVscyB0byBwYWQgdGhlIHZpc2libGUgaXRlbSBsaXN0LlxuICAgICAgLy8gSWYgdGhlIG1pbmltdW0gaXRlbSBpbmRleCBpcyBsZXNzIHRoYW4gMCwgdGhlbiB3ZSdyZSBhbHJlYWR5IGF0IHRoZSB0b3BcbiAgICAgIC8vIG9mIHRoZSBsaXN0IGFuZCBkb24ndCBuZWVkIHRvIHJlbmRlciBhbnkgcGFkZGluZyB0aGVyZS5cbiAgICAgIGlmIChtaW5Ub3JyZW50SW5kZXggPCAwKSB7XG4gICAgICAgIG1pblRvcnJlbnRJbmRleCA9IDA7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXhUb3JyZW50SW5kZXggPiB0b3JyZW50Q291bnQpIHtcbiAgICAgICAgbWF4VG9ycmVudEluZGV4ID0gdG9ycmVudENvdW50O1xuICAgICAgfVxuXG4gICAgICB2YXIgaGlkZGVuQm90dG9tID0gdG9ycmVudENvdW50IC0gbWF4VG9ycmVudEluZGV4O1xuICAgICAgdmFyIGhpZGRlblRvcCA9IG1pblRvcnJlbnRJbmRleDtcblxuICAgICAgdmFyIGJvdHRvbSA9IGhpZGRlbkJvdHRvbSAqIHRoaXMuc3RhdGUudG9ycmVudEhlaWdodDtcbiAgICAgIHZhciB0b3AgPSBoaWRkZW5Ub3AgKiB0aGlzLnN0YXRlLnRvcnJlbnRIZWlnaHQ7XG5cbiAgICAgIHJldHVybiB7IGJvdHRvbTogYm90dG9tLCB0b3A6IHRvcCB9O1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldExvYWRpbmdJbmRpY2F0b3InLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRMb2FkaW5nSW5kaWNhdG9yKCkge1xuICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF91aUxvYWRpbmdJbmRpY2F0b3IyWydkZWZhdWx0J10sIG51bGwpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldFZpZXdwb3J0TGltaXRzJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0Vmlld3BvcnRMaW1pdHMoKSB7XG4gICAgICAvLyBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBpdGVtcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCBiYXNlZCBvbiB0aGUgaGVpZ2h0XG4gICAgICAvLyBvZiB0aGUgdmlld3BvcnQuIFdlIG9mZnNldCB0aGlzIHRvIHJlbmRlciBhIGZldyBtb3JlIG91dGlkZSBvZiB0aGVcbiAgICAgIC8vIGNvbnRhaW5lcidzIGRpbWVuc2lvbnMsIHdoaWNoIGxvb2tzIG5pY2VyIHdoZW4gdGhlIHVzZXIgc2Nyb2xscy5cbiAgICAgIHZhciBvZmZzZXQgPSAxMDtcblxuICAgICAgLy8gVGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB2aWV3IGlzIHRoZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0IGRpdmlkZWRcbiAgICAgIC8vIGJ5IHRoZSBoZWlnaHQgb2YgdGhlIGVsZW1lbnRzLlxuICAgICAgdmFyIGVsZW1lbnRzSW5WaWV3ID0gTWF0aC5mbG9vcih0aGlzLnN0YXRlLnZpZXdwb3J0SGVpZ2h0IC8gdGhpcy5zdGF0ZS50b3JyZW50SGVpZ2h0KTtcblxuICAgICAgLy8gVGhlIG1pbmltdW0gaXRlbSBpbmRleCB0byByZW5kZXIgaXMgdGhlIG51bWJlciBvZiBpdGVtcyBhYm92ZSB0aGVcbiAgICAgIC8vIHZpZXdwb3J0J3MgY3VycmVudCBzY3JvbGwgcG9zaXRpb24sIG1pbnVzIHRoZSBvZmZzZXQuXG4gICAgICB2YXIgbWluVG9ycmVudEluZGV4ID0gTWF0aC5mbG9vcih0aGlzLnN0YXRlLnNjcm9sbFBvc2l0aW9uIC8gdGhpcy5zdGF0ZS50b3JyZW50SGVpZ2h0KSAtIG9mZnNldDtcblxuICAgICAgLy8gVGhlIG1heGltdW0gaXRlbSBpbmRleCB0byByZW5kZXIgaXMgdGhlIG1pbmltdW0gaXRlbSByZW5kZXJlZCwgcGx1cyB0aGVcbiAgICAgIC8vIG51bWJlciBvZiBpdGVtcyBpbiB2aWV3LCBwbHVzIGRvdWJsZSB0aGUgb2Zmc2V0LlxuICAgICAgdmFyIG1heFRvcnJlbnRJbmRleCA9IG1pblRvcnJlbnRJbmRleCArIGVsZW1lbnRzSW5WaWV3ICsgb2Zmc2V0ICogMjtcblxuICAgICAgcmV0dXJuIHsgbWluVG9ycmVudEluZGV4OiBtaW5Ub3JyZW50SW5kZXgsIG1heFRvcnJlbnRJbmRleDogbWF4VG9ycmVudEluZGV4IH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc2V0U2Nyb2xsUG9zaXRpb24nLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRTY3JvbGxQb3NpdGlvbigpIHtcbiAgICAgIGlmICh0aGlzLnJlZnMudG9ycmVudExpc3QpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgLy8gc2Nyb2xsUG9zaXRpb246IHRoaXMucmVmcy50b3JyZW50TGlzdC5yZWZzLnNjcm9sbGJhci5nZXRTY3JvbGxUb3AoKVxuICAgICAgICAgIHNjcm9sbFBvc2l0aW9uOiBfcmVhY3REb20yWydkZWZhdWx0J10uZmluZERPTU5vZGUodGhpcy5yZWZzLnRvcnJlbnRMaXN0KS5zY3JvbGxUb3BcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnc2V0Vmlld3BvcnRIZWlnaHQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBzZXRWaWV3cG9ydEhlaWdodCgpIHtcbiAgICAgIGlmICh0aGlzLnJlZnMudG9ycmVudExpc3QpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgLy8gdmlld3BvcnRIZWlnaHQ6IHRoaXMucmVmcy50b3JyZW50TGlzdC5yZWZzLnNjcm9sbGJhci5nZXRIZWlnaHQoKVxuICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0OiBfcmVhY3REb20yWydkZWZhdWx0J10uZmluZERPTU5vZGUodGhpcy5yZWZzLnRvcnJlbnRMaXN0KS5vZmZzZXRIZWlnaHRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBjb250ZW50ID0gdGhpcy5nZXRMb2FkaW5nSW5kaWNhdG9yKCk7XG5cbiAgICAgIGlmICh0aGlzLnN0YXRlLnRvcnJlbnRSZXF1ZXN0U3VjY2Vzcykge1xuICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBzZWxlY3RlZFRvcnJlbnRzID0gX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5nZXRTZWxlY3RlZFRvcnJlbnRzKCk7XG4gICAgICAgICAgdmFyIHRvcnJlbnRzID0gX3RoaXMyLnN0YXRlLnRvcnJlbnRzO1xuICAgICAgICAgIHZhciB2aWV3cG9ydExpbWl0cyA9IF90aGlzMi5nZXRWaWV3cG9ydExpbWl0cygpO1xuXG4gICAgICAgICAgdmFyIGxpc3RQYWRkaW5nID0gX3RoaXMyLmdldExpc3RQYWRkaW5nKHZpZXdwb3J0TGltaXRzLm1pblRvcnJlbnRJbmRleCwgdmlld3BvcnRMaW1pdHMubWF4VG9ycmVudEluZGV4LCB0b3JyZW50cy5sZW5ndGgpO1xuXG4gICAgICAgICAgdmFyIG1heFRvcnJlbnRJbmRleCA9IHZpZXdwb3J0TGltaXRzLm1heFRvcnJlbnRJbmRleDtcbiAgICAgICAgICB2YXIgbWluVG9ycmVudEluZGV4ID0gdmlld3BvcnRMaW1pdHMubWluVG9ycmVudEluZGV4O1xuXG4gICAgICAgICAgaWYgKG1pblRvcnJlbnRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIG1pblRvcnJlbnRJbmRleCA9IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIHZpc2libGVUb3JyZW50cyA9IHRvcnJlbnRzLnNsaWNlKG1pblRvcnJlbnRJbmRleCwgbWF4VG9ycmVudEluZGV4KTtcblxuICAgICAgICAgIHZhciB0b3JyZW50TGlzdCA9IHZpc2libGVUb3JyZW50cy5tYXAoZnVuY3Rpb24gKHRvcnJlbnQsIGluZGV4KSB7XG4gICAgICAgICAgICB2YXIgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIGhhc2ggPSB0b3JyZW50Lmhhc2g7XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFRvcnJlbnRzLmluZGV4T2YoaGFzaCkgPiAtMSkge1xuICAgICAgICAgICAgICBpc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9Ub3JyZW50MlsnZGVmYXVsdCddLCB7IGtleTogaGFzaCwgZGF0YTogdG9ycmVudCwgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAgICAgIGhhbmRsZUNsaWNrOiBfdGhpczIuaGFuZGxlVG9ycmVudENsaWNrLFxuICAgICAgICAgICAgICBoYW5kbGVEZXRhaWxzQ2xpY2s6IF90aGlzMi5oYW5kbGVEZXRhaWxzQ2xpY2sgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb250ZW50ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAndWwnLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6ICd0b3JyZW50X19saXN0Jywga2V5OiAndG9ycmVudF9fbGlzdCcgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdsaScsIHsgY2xhc3NOYW1lOiAndG9ycmVudF9fc3BhY2VyIHRvcnJlbnRfX3NwYWNlci0tdG9wJyxcbiAgICAgICAgICAgICAgc3R5bGU6IHsgaGVpZ2h0OiBsaXN0UGFkZGluZy50b3AgKyAncHgnIH0gfSksXG4gICAgICAgICAgICB0b3JyZW50TGlzdCxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdsaScsIHsgY2xhc3NOYW1lOiAndG9ycmVudF9fc3BhY2VyIHRvcnJlbnRfX3NwYWNlci0tYm90dG9tJyxcbiAgICAgICAgICAgICAgc3R5bGU6IHsgaGVpZ2h0OiBsaXN0UGFkZGluZy5ib3R0b20gKyAncHgnIH0gfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIF9yZWFjdEFkZG9uc0Nzc1RyYW5zaXRpb25Hcm91cDJbJ2RlZmF1bHQnXSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudDogJ2RpdicsXG4gICAgICAgICAgY2xhc3NOYW1lOiAndG9ycmVudF9fbGlzdF9fd3JhcHBlcicsXG4gICAgICAgICAgb25TY3JvbGw6IHRoaXMuaGFuZGxlU2Nyb2xsLFxuICAgICAgICAgIHJlZjogJ3RvcnJlbnRMaXN0JyxcbiAgICAgICAgICB0cmFuc2l0aW9uTmFtZTogJ3RvcnJlbnRfX2xpc3QtLWxvYWRpbmcnLFxuICAgICAgICAgIHRyYW5zaXRpb25FbnRlclRpbWVvdXQ6IDEwMDAsXG4gICAgICAgICAgdHJhbnNpdGlvbkxlYXZlVGltZW91dDogMTAwMCB9LFxuICAgICAgICBjb250ZW50XG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUb3JyZW50TGlzdENvbnRhaW5lcjtcbn0pKF9yZWFjdDJbJ2RlZmF1bHQnXS5Db21wb25lbnQpO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBUb3JyZW50TGlzdENvbnRhaW5lcjtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy90b3JyZW50LWxpc3QvVG9ycmVudExpc3QuanNcbiAqKiBtb2R1bGUgaWQgPSAyNjhcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
+ eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _lodash = __webpack_require__(161);\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _classnames = __webpack_require__(171);\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _reactAddonsCssTransitionGroup = __webpack_require__(163);\n\nvar _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(157);\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _uiCustomScrollbars = __webpack_require__(271);\n\nvar _uiCustomScrollbars2 = _interopRequireDefault(_uiCustomScrollbars);\n\nvar _constantsEventTypes = __webpack_require__(172);\n\nvar _constantsEventTypes2 = _interopRequireDefault(_constantsEventTypes);\n\nvar _uiLoadingIndicator = __webpack_require__(217);\n\nvar _uiLoadingIndicator2 = _interopRequireDefault(_uiLoadingIndicator);\n\nvar _Torrent = __webpack_require__(269);\n\nvar _Torrent2 = _interopRequireDefault(_Torrent);\n\nvar _storesTorrentFilterStore = __webpack_require__(208);\n\nvar _storesTorrentFilterStore2 = _interopRequireDefault(_storesTorrentFilterStore);\n\nvar _storesTorrentStore = __webpack_require__(199);\n\nvar _storesTorrentStore2 = _interopRequireDefault(_storesTorrentStore);\n\nvar _actionsUIActions = __webpack_require__(209);\n\nvar _actionsUIActions2 = _interopRequireDefault(_actionsUIActions);\n\nvar _storesUIStore = __webpack_require__(210);\n\nvar _storesUIStore2 = _interopRequireDefault(_storesUIStore);\n\nvar METHODS_TO_BIND = ['onReceiveTorrentsError', 'onReceiveTorrentsSuccess', 'handleDetailsClick', 'handleTorrentClick', 'onTorrentFilterChange', 'onTorrentSelectionChange', 'getListPadding', 'getViewportLimits', 'setScrollPosition', 'setViewportHeight'];\n\nvar TorrentListContainer = (function (_React$Component) {\n _inherits(TorrentListContainer, _React$Component);\n\n function TorrentListContainer() {\n var _this = this;\n\n _classCallCheck(this, TorrentListContainer);\n\n _get(Object.getPrototypeOf(TorrentListContainer.prototype), 'constructor', this).call(this);\n\n this.state = {\n maxTorrentIndex: 10,\n minTorrentIndex: 0,\n scrollPosition: 0,\n torrentCount: 0,\n torrentHeight: 64,\n torrents: null,\n torrentRequestError: false,\n torrentRequestSuccess: false,\n viewportHeight: 0\n };\n\n METHODS_TO_BIND.forEach(function (method) {\n _this[method] = _this[method].bind(_this);\n });\n\n this.handleScroll = _lodash2['default'].throttle(this.setScrollPosition, 100, {\n leading: true,\n trailing: true\n });\n\n this.handleWindowResize = _lodash2['default'].throttle(this.setViewportHeight, 350, {\n leading: true,\n trailing: true\n });\n }\n\n _createClass(TorrentListContainer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].UI_TORRENT_SELECTION_CHANGE, this.onTorrentSelectionChange);\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_SUCCESS, this.onReceiveTorrentsSuccess);\n _storesTorrentStore2['default'].listen(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_ERROR, this.onReceiveTorrentsError);\n _storesTorrentFilterStore2['default'].listen(_constantsEventTypes2['default'].UI_TORRENTS_FILTER_CHANGE, this.onTorrentFilterChange);\n _storesTorrentStore2['default'].fetchTorrents();\n window.addEventListener('resize', this.handleWindowResize);\n this.setViewportHeight();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].UI_TORRENT_SELECTION_CHANGE, this.onTorrentSelectionChange);\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_SUCCESS, this.onReceiveTorrentsSuccess);\n _storesTorrentStore2['default'].unlisten(_constantsEventTypes2['default'].CLIENT_TORRENTS_REQUEST_ERROR, this.onReceiveTorrentsError);\n _storesTorrentFilterStore2['default'].unlisten(_constantsEventTypes2['default'].UI_TORRENTS_FILTER_CHANGE, this.onTorrentFilterChange);\n }\n }, {\n key: 'handleDetailsClick',\n value: function handleDetailsClick(torrent, event) {\n _actionsUIActions2['default'].handleDetailsClick({\n hash: torrent.hash,\n event: event\n });\n }\n }, {\n key: 'handleTorrentClick',\n value: function handleTorrentClick(hash, event) {\n _actionsUIActions2['default'].handleTorrentClick({ hash: hash, event: event });\n }\n }, {\n key: 'onReceiveTorrentsError',\n value: function onReceiveTorrentsError() {\n this.setState({ torrentRequestError: true, torrentRequestSuccess: false });\n }\n }, {\n key: 'onReceiveTorrentsSuccess',\n value: function onReceiveTorrentsSuccess() {\n var torrents = _storesTorrentStore2['default'].getTorrents();\n\n this.setState({\n torrents: torrents,\n torrentCount: torrents.length,\n torrentRequestError: false,\n torrentRequestSuccess: true\n });\n }\n }, {\n key: 'onTorrentFilterChange',\n value: function onTorrentFilterChange() {\n this.forceUpdate();\n }\n }, {\n key: 'onTorrentSelectionChange',\n value: function onTorrentSelectionChange() {\n if (_storesTorrentStore2['default'].getSelectedTorrents().length !== 1) {\n _storesUIStore2['default'].closeTorrentDetailsPanel();\n }\n\n this.forceUpdate();\n }\n }, {\n key: 'getListPadding',\n value: function getListPadding(minTorrentIndex, maxTorrentIndex, torrentCount) {\n // Calculate the number of pixels to pad the visible item list.\n // If the minimum item index is less than 0, then we're already at the top\n // of the list and don't need to render any padding there.\n if (minTorrentIndex < 0) {\n minTorrentIndex = 0;\n }\n\n if (maxTorrentIndex > torrentCount) {\n maxTorrentIndex = torrentCount;\n }\n\n var hiddenBottom = torrentCount - maxTorrentIndex;\n var hiddenTop = minTorrentIndex;\n\n var bottom = hiddenBottom * this.state.torrentHeight;\n var top = hiddenTop * this.state.torrentHeight;\n\n return { bottom: bottom, top: top };\n }\n }, {\n key: 'getLoadingIndicator',\n value: function getLoadingIndicator() {\n return _react2['default'].createElement(_uiLoadingIndicator2['default'], null);\n }\n }, {\n key: 'getViewportLimits',\n value: function getViewportLimits() {\n // Calculate the number of items that should be rendered based on the height\n // of the viewport. We offset this to render a few more outide of the\n // container's dimensions, which looks nicer when the user scrolls.\n var offset = 10;\n\n // The number of elements in view is the height of the viewport divided\n // by the height of the elements.\n var elementsInView = Math.floor(this.state.viewportHeight / this.state.torrentHeight);\n\n // The minimum item index to render is the number of items above the\n // viewport's current scroll position, minus the offset.\n var minTorrentIndex = Math.floor(this.state.scrollPosition / this.state.torrentHeight) - offset;\n\n // The maximum item index to render is the minimum item rendered, plus the\n // number of items in view, plus double the offset.\n var maxTorrentIndex = minTorrentIndex + elementsInView + offset * 2;\n\n return { minTorrentIndex: minTorrentIndex, maxTorrentIndex: maxTorrentIndex };\n }\n }, {\n key: 'setScrollPosition',\n value: function setScrollPosition() {\n if (this.refs.torrentList) {\n this.setState({\n scrollPosition: this.refs.torrentList.refs.scrollbar.getScrollTop()\n });\n }\n }\n }, {\n key: 'setViewportHeight',\n value: function setViewportHeight() {\n if (this.refs.torrentList) {\n this.setState({\n viewportHeight: this.refs.torrentList.refs.scrollbar.getClientHeight()\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var content = this.getLoadingIndicator();\n\n if (this.state.torrentRequestSuccess) {\n (function () {\n var selectedTorrents = _storesTorrentStore2['default'].getSelectedTorrents();\n var torrents = _this2.state.torrents;\n var viewportLimits = _this2.getViewportLimits();\n\n var listPadding = _this2.getListPadding(viewportLimits.minTorrentIndex, viewportLimits.maxTorrentIndex, torrents.length);\n\n var maxTorrentIndex = viewportLimits.maxTorrentIndex;\n var minTorrentIndex = viewportLimits.minTorrentIndex;\n\n if (minTorrentIndex < 0) {\n minTorrentIndex = 0;\n }\n\n var visibleTorrents = torrents.slice(minTorrentIndex, maxTorrentIndex);\n\n var torrentList = visibleTorrents.map(function (torrent, index) {\n var isSelected = false;\n var hash = torrent.hash;\n\n if (selectedTorrents.indexOf(hash) > -1) {\n isSelected = true;\n }\n\n return _react2['default'].createElement(_Torrent2['default'], { key: hash, data: torrent, selected: isSelected,\n handleClick: _this2.handleTorrentClick,\n handleDetailsClick: _this2.handleDetailsClick });\n });\n\n content = _react2['default'].createElement(\n 'ul',\n { className: 'torrent__list', key: 'torrent__list' },\n _react2['default'].createElement('li', { className: 'torrent__spacer torrent__spacer--top',\n style: { height: listPadding.top + 'px' } }),\n torrentList,\n _react2['default'].createElement('li', { className: 'torrent__spacer torrent__spacer--bottom',\n style: { height: listPadding.bottom + 'px' } })\n );\n })();\n }\n\n return _react2['default'].createElement(\n _reactAddonsCssTransitionGroup2['default'],\n {\n component: 'div',\n className: 'torrent__list__wrapper',\n onScroll: this.handleScroll,\n transitionName: 'torrent__list--loading',\n transitionEnterTimeout: 1000,\n transitionLeaveTimeout: 1000 },\n _react2['default'].createElement(\n _uiCustomScrollbars2['default'],\n { className: 'torrent__list__wrapper--custom-scroll',\n ref: 'torrentList', scrollHandler: this.props.setScrollPosition },\n content\n )\n );\n }\n }]);\n\n return TorrentListContainer;\n})(_react2['default'].Component);\n\nexports['default'] = TorrentListContainer;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy90b3JyZW50LWxpc3QvVG9ycmVudExpc3QuanM/ZDcyYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCxpQ0FBaUMsMkNBQTJDLGdCQUFnQixrQkFBa0IsT0FBTywyQkFBMkIsd0RBQXdELGdDQUFnQyx1REFBdUQsMkRBQTJELEVBQUUsRUFBRSx5REFBeUQscUVBQXFFLDZEQUE2RCxvQkFBb0IsR0FBRyxFQUFFOztBQUVsakIsdUNBQXVDLG1CQUFtQiw0QkFBNEIsaURBQWlELGdCQUFnQixrREFBa0QsOERBQThELDBCQUEwQiw0Q0FBNEMsdUJBQXVCLGtCQUFrQixFQUFFLE9BQU8sYUFBYSxnQkFBZ0IsZ0JBQWdCLGVBQWUsMkJBQTJCLG9CQUFvQixFQUFFLEVBQUUsNEJBQTRCLG1CQUFtQixFQUFFLE9BQU8sdUJBQXVCLDRCQUE0QixrQkFBa0IsRUFBRSw4QkFBOEIsRUFBRSxFQUFFOztBQUUvb0Isc0NBQXNDLHVDQUF1QyxrQkFBa0I7O0FBRS9GLGlEQUFpRCwwQ0FBMEMsMERBQTBELEVBQUU7O0FBRXZKLDBDQUEwQywrREFBK0QscUdBQXFHLEVBQUUseUVBQXlFLGVBQWUseUVBQXlFLEVBQUUsRUFBRSx1SEFBdUg7O0FBRTVlOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSx3REFBd0QsMkJBQTJCO0FBQ25GO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxxQkFBcUIsMERBQTBEO0FBQy9FO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUEsY0FBYztBQUNkO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxjQUFjO0FBQ2Q7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLDJFQUEyRTtBQUMzRTtBQUNBLDZEQUE2RDtBQUM3RCxXQUFXOztBQUVYO0FBQ0E7QUFDQSxhQUFhLG1EQUFtRDtBQUNoRSxvREFBb0Q7QUFDcEQsc0JBQXNCLGlDQUFpQyxFQUFFO0FBQ3pEO0FBQ0Esb0RBQW9EO0FBQ3BELHNCQUFzQixvQ0FBb0MsRUFBRTtBQUM1RDtBQUNBLFNBQVM7QUFDVDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsNkVBQTZFO0FBQzdFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBLENBQUM7O0FBRUQ7QUFDQSIsImZpbGUiOiIyNjguanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG52YXIgX2dldCA9IGZ1bmN0aW9uIGdldChfeCwgX3gyLCBfeDMpIHsgdmFyIF9hZ2FpbiA9IHRydWU7IF9mdW5jdGlvbjogd2hpbGUgKF9hZ2FpbikgeyB2YXIgb2JqZWN0ID0gX3gsIHByb3BlcnR5ID0gX3gyLCByZWNlaXZlciA9IF94MzsgX2FnYWluID0gZmFsc2U7IGlmIChvYmplY3QgPT09IG51bGwpIG9iamVjdCA9IEZ1bmN0aW9uLnByb3RvdHlwZTsgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgcHJvcGVydHkpOyBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7IHZhciBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqZWN0KTsgaWYgKHBhcmVudCA9PT0gbnVsbCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IGVsc2UgeyBfeCA9IHBhcmVudDsgX3gyID0gcHJvcGVydHk7IF94MyA9IHJlY2VpdmVyOyBfYWdhaW4gPSB0cnVlOyBkZXNjID0gcGFyZW50ID0gdW5kZWZpbmVkOyBjb250aW51ZSBfZnVuY3Rpb247IH0gfSBlbHNlIGlmICgndmFsdWUnIGluIGRlc2MpIHsgcmV0dXJuIGRlc2MudmFsdWU7IH0gZWxzZSB7IHZhciBnZXR0ZXIgPSBkZXNjLmdldDsgaWYgKGdldHRlciA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gcmV0dXJuIGdldHRlci5jYWxsKHJlY2VpdmVyKTsgfSB9IH07XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7ICdkZWZhdWx0Jzogb2JqIH07IH1cblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKTsgfSB9XG5cbmZ1bmN0aW9uIF9pbmhlcml0cyhzdWJDbGFzcywgc3VwZXJDbGFzcykgeyBpZiAodHlwZW9mIHN1cGVyQ2xhc3MgIT09ICdmdW5jdGlvbicgJiYgc3VwZXJDbGFzcyAhPT0gbnVsbCkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKCdTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICcgKyB0eXBlb2Ygc3VwZXJDbGFzcyk7IH0gc3ViQ2xhc3MucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7IGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBzdWJDbGFzcywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSB9KTsgaWYgKHN1cGVyQ2xhc3MpIE9iamVjdC5zZXRQcm90b3R5cGVPZiA/IE9iamVjdC5zZXRQcm90b3R5cGVPZihzdWJDbGFzcywgc3VwZXJDbGFzcykgOiBzdWJDbGFzcy5fX3Byb3RvX18gPSBzdXBlckNsYXNzOyB9XG5cbnZhciBfbG9kYXNoID0gcmVxdWlyZSgnbG9kYXNoJyk7XG5cbnZhciBfbG9kYXNoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2xvZGFzaCk7XG5cbnZhciBfY2xhc3NuYW1lcyA9IHJlcXVpcmUoJ2NsYXNzbmFtZXMnKTtcblxudmFyIF9jbGFzc25hbWVzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NsYXNzbmFtZXMpO1xuXG52YXIgX3JlYWN0QWRkb25zQ3NzVHJhbnNpdGlvbkdyb3VwID0gcmVxdWlyZSgncmVhY3QtYWRkb25zLWNzcy10cmFuc2l0aW9uLWdyb3VwJyk7XG5cbnZhciBfcmVhY3RBZGRvbnNDc3NUcmFuc2l0aW9uR3JvdXAyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfcmVhY3RBZGRvbnNDc3NUcmFuc2l0aW9uR3JvdXApO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcmVhY3REb20gPSByZXF1aXJlKCdyZWFjdC1kb20nKTtcblxudmFyIF9yZWFjdERvbTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdERvbSk7XG5cbnZhciBfdWlDdXN0b21TY3JvbGxiYXJzID0gcmVxdWlyZSgnLi4vdWkvQ3VzdG9tU2Nyb2xsYmFycycpO1xuXG52YXIgX3VpQ3VzdG9tU2Nyb2xsYmFyczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91aUN1c3RvbVNjcm9sbGJhcnMpO1xuXG52YXIgX2NvbnN0YW50c0V2ZW50VHlwZXMgPSByZXF1aXJlKCcuLi8uLi9jb25zdGFudHMvRXZlbnRUeXBlcycpO1xuXG52YXIgX2NvbnN0YW50c0V2ZW50VHlwZXMyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY29uc3RhbnRzRXZlbnRUeXBlcyk7XG5cbnZhciBfdWlMb2FkaW5nSW5kaWNhdG9yID0gcmVxdWlyZSgnLi4vdWkvTG9hZGluZ0luZGljYXRvcicpO1xuXG52YXIgX3VpTG9hZGluZ0luZGljYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF91aUxvYWRpbmdJbmRpY2F0b3IpO1xuXG52YXIgX1RvcnJlbnQgPSByZXF1aXJlKCcuL1RvcnJlbnQnKTtcblxudmFyIF9Ub3JyZW50MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1RvcnJlbnQpO1xuXG52YXIgX3N0b3Jlc1RvcnJlbnRGaWx0ZXJTdG9yZSA9IHJlcXVpcmUoJy4uLy4uL3N0b3Jlcy9Ub3JyZW50RmlsdGVyU3RvcmUnKTtcblxudmFyIF9zdG9yZXNUb3JyZW50RmlsdGVyU3RvcmUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc3RvcmVzVG9ycmVudEZpbHRlclN0b3JlKTtcblxudmFyIF9zdG9yZXNUb3JyZW50U3RvcmUgPSByZXF1aXJlKCcuLi8uLi9zdG9yZXMvVG9ycmVudFN0b3JlJyk7XG5cbnZhciBfc3RvcmVzVG9ycmVudFN0b3JlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N0b3Jlc1RvcnJlbnRTdG9yZSk7XG5cbnZhciBfYWN0aW9uc1VJQWN0aW9ucyA9IHJlcXVpcmUoJy4uLy4uL2FjdGlvbnMvVUlBY3Rpb25zJyk7XG5cbnZhciBfYWN0aW9uc1VJQWN0aW9uczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9hY3Rpb25zVUlBY3Rpb25zKTtcblxudmFyIF9zdG9yZXNVSVN0b3JlID0gcmVxdWlyZSgnLi4vLi4vc3RvcmVzL1VJU3RvcmUnKTtcblxudmFyIF9zdG9yZXNVSVN0b3JlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3N0b3Jlc1VJU3RvcmUpO1xuXG52YXIgTUVUSE9EU19UT19CSU5EID0gWydvblJlY2VpdmVUb3JyZW50c0Vycm9yJywgJ29uUmVjZWl2ZVRvcnJlbnRzU3VjY2VzcycsICdoYW5kbGVEZXRhaWxzQ2xpY2snLCAnaGFuZGxlVG9ycmVudENsaWNrJywgJ29uVG9ycmVudEZpbHRlckNoYW5nZScsICdvblRvcnJlbnRTZWxlY3Rpb25DaGFuZ2UnLCAnZ2V0TGlzdFBhZGRpbmcnLCAnZ2V0Vmlld3BvcnRMaW1pdHMnLCAnc2V0U2Nyb2xsUG9zaXRpb24nLCAnc2V0Vmlld3BvcnRIZWlnaHQnXTtcblxudmFyIFRvcnJlbnRMaXN0Q29udGFpbmVyID0gKGZ1bmN0aW9uIChfUmVhY3QkQ29tcG9uZW50KSB7XG4gIF9pbmhlcml0cyhUb3JyZW50TGlzdENvbnRhaW5lciwgX1JlYWN0JENvbXBvbmVudCk7XG5cbiAgZnVuY3Rpb24gVG9ycmVudExpc3RDb250YWluZXIoKSB7XG4gICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUb3JyZW50TGlzdENvbnRhaW5lcik7XG5cbiAgICBfZ2V0KE9iamVjdC5nZXRQcm90b3R5cGVPZihUb3JyZW50TGlzdENvbnRhaW5lci5wcm90b3R5cGUpLCAnY29uc3RydWN0b3InLCB0aGlzKS5jYWxsKHRoaXMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIG1heFRvcnJlbnRJbmRleDogMTAsXG4gICAgICBtaW5Ub3JyZW50SW5kZXg6IDAsXG4gICAgICBzY3JvbGxQb3NpdGlvbjogMCxcbiAgICAgIHRvcnJlbnRDb3VudDogMCxcbiAgICAgIHRvcnJlbnRIZWlnaHQ6IDY0LFxuICAgICAgdG9ycmVudHM6IG51bGwsXG4gICAgICB0b3JyZW50UmVxdWVzdEVycm9yOiBmYWxzZSxcbiAgICAgIHRvcnJlbnRSZXF1ZXN0U3VjY2VzczogZmFsc2UsXG4gICAgICB2aWV3cG9ydEhlaWdodDogMFxuICAgIH07XG5cbiAgICBNRVRIT0RTX1RPX0JJTkQuZm9yRWFjaChmdW5jdGlvbiAobWV0aG9kKSB7XG4gICAgICBfdGhpc1ttZXRob2RdID0gX3RoaXNbbWV0aG9kXS5iaW5kKF90aGlzKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaGFuZGxlU2Nyb2xsID0gX2xvZGFzaDJbJ2RlZmF1bHQnXS50aHJvdHRsZSh0aGlzLnNldFNjcm9sbFBvc2l0aW9uLCAxMDAsIHtcbiAgICAgIGxlYWRpbmc6IHRydWUsXG4gICAgICB0cmFpbGluZzogdHJ1ZVxuICAgIH0pO1xuXG4gICAgdGhpcy5oYW5kbGVXaW5kb3dSZXNpemUgPSBfbG9kYXNoMlsnZGVmYXVsdCddLnRocm90dGxlKHRoaXMuc2V0Vmlld3BvcnRIZWlnaHQsIDM1MCwge1xuICAgICAgbGVhZGluZzogdHJ1ZSxcbiAgICAgIHRyYWlsaW5nOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVG9ycmVudExpc3RDb250YWluZXIsIFt7XG4gICAga2V5OiAnY29tcG9uZW50RGlkTW91bnQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIF9zdG9yZXNUb3JyZW50U3RvcmUyWydkZWZhdWx0J10ubGlzdGVuKF9jb25zdGFudHNFdmVudFR5cGVzMlsnZGVmYXVsdCddLlVJX1RPUlJFTlRfU0VMRUNUSU9OX0NIQU5HRSwgdGhpcy5vblRvcnJlbnRTZWxlY3Rpb25DaGFuZ2UpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5saXN0ZW4oX2NvbnN0YW50c0V2ZW50VHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX1RPUlJFTlRTX1JFUVVFU1RfU1VDQ0VTUywgdGhpcy5vblJlY2VpdmVUb3JyZW50c1N1Y2Nlc3MpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5saXN0ZW4oX2NvbnN0YW50c0V2ZW50VHlwZXMyWydkZWZhdWx0J10uQ0xJRU5UX1RPUlJFTlRTX1JFUVVFU1RfRVJST1IsIHRoaXMub25SZWNlaXZlVG9ycmVudHNFcnJvcik7XG4gICAgICBfc3RvcmVzVG9ycmVudEZpbHRlclN0b3JlMlsnZGVmYXVsdCddLmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5VSV9UT1JSRU5UU19GSUxURVJfQ0hBTkdFLCB0aGlzLm9uVG9ycmVudEZpbHRlckNoYW5nZSk7XG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmZldGNoVG9ycmVudHMoKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmhhbmRsZVdpbmRvd1Jlc2l6ZSk7XG4gICAgICB0aGlzLnNldFZpZXdwb3J0SGVpZ2h0KCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnY29tcG9uZW50V2lsbFVubW91bnQnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLmhhbmRsZVdpbmRvd1Jlc2l6ZSk7XG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLnVubGlzdGVuKF9jb25zdGFudHNFdmVudFR5cGVzMlsnZGVmYXVsdCddLlVJX1RPUlJFTlRfU0VMRUNUSU9OX0NIQU5HRSwgdGhpcy5vblRvcnJlbnRTZWxlY3Rpb25DaGFuZ2UpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS51bmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5DTElFTlRfVE9SUkVOVFNfUkVRVUVTVF9TVUNDRVNTLCB0aGlzLm9uUmVjZWl2ZVRvcnJlbnRzU3VjY2Vzcyk7XG4gICAgICBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLnVubGlzdGVuKF9jb25zdGFudHNFdmVudFR5cGVzMlsnZGVmYXVsdCddLkNMSUVOVF9UT1JSRU5UU19SRVFVRVNUX0VSUk9SLCB0aGlzLm9uUmVjZWl2ZVRvcnJlbnRzRXJyb3IpO1xuICAgICAgX3N0b3Jlc1RvcnJlbnRGaWx0ZXJTdG9yZTJbJ2RlZmF1bHQnXS51bmxpc3RlbihfY29uc3RhbnRzRXZlbnRUeXBlczJbJ2RlZmF1bHQnXS5VSV9UT1JSRU5UU19GSUxURVJfQ0hBTkdFLCB0aGlzLm9uVG9ycmVudEZpbHRlckNoYW5nZSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnaGFuZGxlRGV0YWlsc0NsaWNrJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlRGV0YWlsc0NsaWNrKHRvcnJlbnQsIGV2ZW50KSB7XG4gICAgICBfYWN0aW9uc1VJQWN0aW9uczJbJ2RlZmF1bHQnXS5oYW5kbGVEZXRhaWxzQ2xpY2soe1xuICAgICAgICBoYXNoOiB0b3JyZW50Lmhhc2gsXG4gICAgICAgIGV2ZW50OiBldmVudFxuICAgICAgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnaGFuZGxlVG9ycmVudENsaWNrJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gaGFuZGxlVG9ycmVudENsaWNrKGhhc2gsIGV2ZW50KSB7XG4gICAgICBfYWN0aW9uc1VJQWN0aW9uczJbJ2RlZmF1bHQnXS5oYW5kbGVUb3JyZW50Q2xpY2soeyBoYXNoOiBoYXNoLCBldmVudDogZXZlbnQgfSk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnb25SZWNlaXZlVG9ycmVudHNFcnJvcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIG9uUmVjZWl2ZVRvcnJlbnRzRXJyb3IoKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgdG9ycmVudFJlcXVlc3RFcnJvcjogdHJ1ZSwgdG9ycmVudFJlcXVlc3RTdWNjZXNzOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdvblJlY2VpdmVUb3JyZW50c1N1Y2Nlc3MnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvblJlY2VpdmVUb3JyZW50c1N1Y2Nlc3MoKSB7XG4gICAgICB2YXIgdG9ycmVudHMgPSBfc3RvcmVzVG9ycmVudFN0b3JlMlsnZGVmYXVsdCddLmdldFRvcnJlbnRzKCk7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICB0b3JyZW50czogdG9ycmVudHMsXG4gICAgICAgIHRvcnJlbnRDb3VudDogdG9ycmVudHMubGVuZ3RoLFxuICAgICAgICB0b3JyZW50UmVxdWVzdEVycm9yOiBmYWxzZSxcbiAgICAgICAgdG9ycmVudFJlcXVlc3RTdWNjZXNzOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdvblRvcnJlbnRGaWx0ZXJDaGFuZ2UnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBvblRvcnJlbnRGaWx0ZXJDaGFuZ2UoKSB7XG4gICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnb25Ub3JyZW50U2VsZWN0aW9uQ2hhbmdlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gb25Ub3JyZW50U2VsZWN0aW9uQ2hhbmdlKCkge1xuICAgICAgaWYgKF9zdG9yZXNUb3JyZW50U3RvcmUyWydkZWZhdWx0J10uZ2V0U2VsZWN0ZWRUb3JyZW50cygpLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICBfc3RvcmVzVUlTdG9yZTJbJ2RlZmF1bHQnXS5jbG9zZVRvcnJlbnREZXRhaWxzUGFuZWwoKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldExpc3RQYWRkaW5nJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0TGlzdFBhZGRpbmcobWluVG9ycmVudEluZGV4LCBtYXhUb3JyZW50SW5kZXgsIHRvcnJlbnRDb3VudCkge1xuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRvIHBhZCB0aGUgdmlzaWJsZSBpdGVtIGxpc3QuXG4gICAgICAvLyBJZiB0aGUgbWluaW11bSBpdGVtIGluZGV4IGlzIGxlc3MgdGhhbiAwLCB0aGVuIHdlJ3JlIGFscmVhZHkgYXQgdGhlIHRvcFxuICAgICAgLy8gb2YgdGhlIGxpc3QgYW5kIGRvbid0IG5lZWQgdG8gcmVuZGVyIGFueSBwYWRkaW5nIHRoZXJlLlxuICAgICAgaWYgKG1pblRvcnJlbnRJbmRleCA8IDApIHtcbiAgICAgICAgbWluVG9ycmVudEluZGV4ID0gMDtcbiAgICAgIH1cblxuICAgICAgaWYgKG1heFRvcnJlbnRJbmRleCA+IHRvcnJlbnRDb3VudCkge1xuICAgICAgICBtYXhUb3JyZW50SW5kZXggPSB0b3JyZW50Q291bnQ7XG4gICAgICB9XG5cbiAgICAgIHZhciBoaWRkZW5Cb3R0b20gPSB0b3JyZW50Q291bnQgLSBtYXhUb3JyZW50SW5kZXg7XG4gICAgICB2YXIgaGlkZGVuVG9wID0gbWluVG9ycmVudEluZGV4O1xuXG4gICAgICB2YXIgYm90dG9tID0gaGlkZGVuQm90dG9tICogdGhpcy5zdGF0ZS50b3JyZW50SGVpZ2h0O1xuICAgICAgdmFyIHRvcCA9IGhpZGRlblRvcCAqIHRoaXMuc3RhdGUudG9ycmVudEhlaWdodDtcblxuICAgICAgcmV0dXJuIHsgYm90dG9tOiBib3R0b20sIHRvcDogdG9wIH07XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0TG9hZGluZ0luZGljYXRvcicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldExvYWRpbmdJbmRpY2F0b3IoKSB7XG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoX3VpTG9hZGluZ0luZGljYXRvcjJbJ2RlZmF1bHQnXSwgbnVsbCk7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnZ2V0Vmlld3BvcnRMaW1pdHMnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRWaWV3cG9ydExpbWl0cygpIHtcbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIGJhc2VkIG9uIHRoZSBoZWlnaHRcbiAgICAgIC8vIG9mIHRoZSB2aWV3cG9ydC4gV2Ugb2Zmc2V0IHRoaXMgdG8gcmVuZGVyIGEgZmV3IG1vcmUgb3V0aWRlIG9mIHRoZVxuICAgICAgLy8gY29udGFpbmVyJ3MgZGltZW5zaW9ucywgd2hpY2ggbG9va3MgbmljZXIgd2hlbiB0aGUgdXNlciBzY3JvbGxzLlxuICAgICAgdmFyIG9mZnNldCA9IDEwO1xuXG4gICAgICAvLyBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHZpZXcgaXMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQgZGl2aWRlZFxuICAgICAgLy8gYnkgdGhlIGhlaWdodCBvZiB0aGUgZWxlbWVudHMuXG4gICAgICB2YXIgZWxlbWVudHNJblZpZXcgPSBNYXRoLmZsb29yKHRoaXMuc3RhdGUudmlld3BvcnRIZWlnaHQgLyB0aGlzLnN0YXRlLnRvcnJlbnRIZWlnaHQpO1xuXG4gICAgICAvLyBUaGUgbWluaW11bSBpdGVtIGluZGV4IHRvIHJlbmRlciBpcyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGFib3ZlIHRoZVxuICAgICAgLy8gdmlld3BvcnQncyBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiwgbWludXMgdGhlIG9mZnNldC5cbiAgICAgIHZhciBtaW5Ub3JyZW50SW5kZXggPSBNYXRoLmZsb29yKHRoaXMuc3RhdGUuc2Nyb2xsUG9zaXRpb24gLyB0aGlzLnN0YXRlLnRvcnJlbnRIZWlnaHQpIC0gb2Zmc2V0O1xuXG4gICAgICAvLyBUaGUgbWF4aW11bSBpdGVtIGluZGV4IHRvIHJlbmRlciBpcyB0aGUgbWluaW11bSBpdGVtIHJlbmRlcmVkLCBwbHVzIHRoZVxuICAgICAgLy8gbnVtYmVyIG9mIGl0ZW1zIGluIHZpZXcsIHBsdXMgZG91YmxlIHRoZSBvZmZzZXQuXG4gICAgICB2YXIgbWF4VG9ycmVudEluZGV4ID0gbWluVG9ycmVudEluZGV4ICsgZWxlbWVudHNJblZpZXcgKyBvZmZzZXQgKiAyO1xuXG4gICAgICByZXR1cm4geyBtaW5Ub3JyZW50SW5kZXg6IG1pblRvcnJlbnRJbmRleCwgbWF4VG9ycmVudEluZGV4OiBtYXhUb3JyZW50SW5kZXggfTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdzZXRTY3JvbGxQb3NpdGlvbicsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHNldFNjcm9sbFBvc2l0aW9uKCkge1xuICAgICAgaWYgKHRoaXMucmVmcy50b3JyZW50TGlzdCkge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgICBzY3JvbGxQb3NpdGlvbjogdGhpcy5yZWZzLnRvcnJlbnRMaXN0LnJlZnMuc2Nyb2xsYmFyLmdldFNjcm9sbFRvcCgpXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ3NldFZpZXdwb3J0SGVpZ2h0JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gc2V0Vmlld3BvcnRIZWlnaHQoKSB7XG4gICAgICBpZiAodGhpcy5yZWZzLnRvcnJlbnRMaXN0KSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0OiB0aGlzLnJlZnMudG9ycmVudExpc3QucmVmcy5zY3JvbGxiYXIuZ2V0Q2xpZW50SGVpZ2h0KClcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAncmVuZGVyJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIF90aGlzMiA9IHRoaXM7XG5cbiAgICAgIHZhciBjb250ZW50ID0gdGhpcy5nZXRMb2FkaW5nSW5kaWNhdG9yKCk7XG5cbiAgICAgIGlmICh0aGlzLnN0YXRlLnRvcnJlbnRSZXF1ZXN0U3VjY2Vzcykge1xuICAgICAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBzZWxlY3RlZFRvcnJlbnRzID0gX3N0b3Jlc1RvcnJlbnRTdG9yZTJbJ2RlZmF1bHQnXS5nZXRTZWxlY3RlZFRvcnJlbnRzKCk7XG4gICAgICAgICAgdmFyIHRvcnJlbnRzID0gX3RoaXMyLnN0YXRlLnRvcnJlbnRzO1xuICAgICAgICAgIHZhciB2aWV3cG9ydExpbWl0cyA9IF90aGlzMi5nZXRWaWV3cG9ydExpbWl0cygpO1xuXG4gICAgICAgICAgdmFyIGxpc3RQYWRkaW5nID0gX3RoaXMyLmdldExpc3RQYWRkaW5nKHZpZXdwb3J0TGltaXRzLm1pblRvcnJlbnRJbmRleCwgdmlld3BvcnRMaW1pdHMubWF4VG9ycmVudEluZGV4LCB0b3JyZW50cy5sZW5ndGgpO1xuXG4gICAgICAgICAgdmFyIG1heFRvcnJlbnRJbmRleCA9IHZpZXdwb3J0TGltaXRzLm1heFRvcnJlbnRJbmRleDtcbiAgICAgICAgICB2YXIgbWluVG9ycmVudEluZGV4ID0gdmlld3BvcnRMaW1pdHMubWluVG9ycmVudEluZGV4O1xuXG4gICAgICAgICAgaWYgKG1pblRvcnJlbnRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIG1pblRvcnJlbnRJbmRleCA9IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIHZpc2libGVUb3JyZW50cyA9IHRvcnJlbnRzLnNsaWNlKG1pblRvcnJlbnRJbmRleCwgbWF4VG9ycmVudEluZGV4KTtcblxuICAgICAgICAgIHZhciB0b3JyZW50TGlzdCA9IHZpc2libGVUb3JyZW50cy5tYXAoZnVuY3Rpb24gKHRvcnJlbnQsIGluZGV4KSB7XG4gICAgICAgICAgICB2YXIgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdmFyIGhhc2ggPSB0b3JyZW50Lmhhc2g7XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFRvcnJlbnRzLmluZGV4T2YoaGFzaCkgPiAtMSkge1xuICAgICAgICAgICAgICBpc1NlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KF9Ub3JyZW50MlsnZGVmYXVsdCddLCB7IGtleTogaGFzaCwgZGF0YTogdG9ycmVudCwgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWQsXG4gICAgICAgICAgICAgIGhhbmRsZUNsaWNrOiBfdGhpczIuaGFuZGxlVG9ycmVudENsaWNrLFxuICAgICAgICAgICAgICBoYW5kbGVEZXRhaWxzQ2xpY2s6IF90aGlzMi5oYW5kbGVEZXRhaWxzQ2xpY2sgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBjb250ZW50ID0gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAndWwnLFxuICAgICAgICAgICAgeyBjbGFzc05hbWU6ICd0b3JyZW50X19saXN0Jywga2V5OiAndG9ycmVudF9fbGlzdCcgfSxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdsaScsIHsgY2xhc3NOYW1lOiAndG9ycmVudF9fc3BhY2VyIHRvcnJlbnRfX3NwYWNlci0tdG9wJyxcbiAgICAgICAgICAgICAgc3R5bGU6IHsgaGVpZ2h0OiBsaXN0UGFkZGluZy50b3AgKyAncHgnIH0gfSksXG4gICAgICAgICAgICB0b3JyZW50TGlzdCxcbiAgICAgICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KCdsaScsIHsgY2xhc3NOYW1lOiAndG9ycmVudF9fc3BhY2VyIHRvcnJlbnRfX3NwYWNlci0tYm90dG9tJyxcbiAgICAgICAgICAgICAgc3R5bGU6IHsgaGVpZ2h0OiBsaXN0UGFkZGluZy5ib3R0b20gKyAncHgnIH0gfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgIF9yZWFjdEFkZG9uc0Nzc1RyYW5zaXRpb25Hcm91cDJbJ2RlZmF1bHQnXSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudDogJ2RpdicsXG4gICAgICAgICAgY2xhc3NOYW1lOiAndG9ycmVudF9fbGlzdF9fd3JhcHBlcicsXG4gICAgICAgICAgb25TY3JvbGw6IHRoaXMuaGFuZGxlU2Nyb2xsLFxuICAgICAgICAgIHRyYW5zaXRpb25OYW1lOiAndG9ycmVudF9fbGlzdC0tbG9hZGluZycsXG4gICAgICAgICAgdHJhbnNpdGlvbkVudGVyVGltZW91dDogMTAwMCxcbiAgICAgICAgICB0cmFuc2l0aW9uTGVhdmVUaW1lb3V0OiAxMDAwIH0sXG4gICAgICAgIF9yZWFjdDJbJ2RlZmF1bHQnXS5jcmVhdGVFbGVtZW50KFxuICAgICAgICAgIF91aUN1c3RvbVNjcm9sbGJhcnMyWydkZWZhdWx0J10sXG4gICAgICAgICAgeyBjbGFzc05hbWU6ICd0b3JyZW50X19saXN0X193cmFwcGVyLS1jdXN0b20tc2Nyb2xsJyxcbiAgICAgICAgICAgIHJlZjogJ3RvcnJlbnRMaXN0Jywgc2Nyb2xsSGFuZGxlcjogdGhpcy5wcm9wcy5zZXRTY3JvbGxQb3NpdGlvbiB9LFxuICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gVG9ycmVudExpc3RDb250YWluZXI7XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gVG9ycmVudExpc3RDb250YWluZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY2xpZW50L3NvdXJjZS9zY3JpcHRzL2NvbXBvbmVudHMvdG9ycmVudC1saXN0L1RvcnJlbnRMaXN0LmpzXG4gKiogbW9kdWxlIGlkID0gMjY4XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
/***/ },
/* 269 */
@@ -1666,5 +1666,97 @@
eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _BaseIcon2 = __webpack_require__(174);\n\nvar _BaseIcon3 = _interopRequireDefault(_BaseIcon2);\n\nvar DotsMini = (function (_BaseIcon) {\n _inherits(DotsMini, _BaseIcon);\n\n function DotsMini() {\n _classCallCheck(this, DotsMini);\n\n _get(Object.getPrototypeOf(DotsMini.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(DotsMini, [{\n key: 'render',\n value: function render() {\n return _react2['default'].createElement(\n 'svg',\n { className: 'icon icon--dots-mini ' + this.props.className,\n xmlns: this.getXmlns(), viewBox: this.getViewBox() },\n _react2['default'].createElement('circle', { cx: '0.9', cy: '4', r: '0.9' }),\n _react2['default'].createElement('circle', { cx: '4', cy: '4', r: '0.9' }),\n _react2['default'].createElement('circle', { cx: '7.1', cy: '4', r: '0.9' })\n );\n }\n }]);\n\n return DotsMini;\n})(_BaseIcon3['default']);\n\nexports['default'] = DotsMini;\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9pY29ucy9Eb3RzTWluaS5qcz83NGM3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVELGlDQUFpQywyQ0FBMkMsZ0JBQWdCLGtCQUFrQixPQUFPLDJCQUEyQix3REFBd0QsZ0NBQWdDLHVEQUF1RCwyREFBMkQsRUFBRSxFQUFFLHlEQUF5RCxxRUFBcUUsNkRBQTZELG9CQUFvQixHQUFHLEVBQUU7O0FBRWxqQix1Q0FBdUMsbUJBQW1CLDRCQUE0QixpREFBaUQsZ0JBQWdCLGtEQUFrRCw4REFBOEQsMEJBQTBCLDRDQUE0Qyx1QkFBdUIsa0JBQWtCLEVBQUUsT0FBTyxhQUFhLGdCQUFnQixnQkFBZ0IsZUFBZSwyQkFBMkIsb0JBQW9CLEVBQUUsRUFBRSw0QkFBNEIsbUJBQW1CLEVBQUUsT0FBTyx1QkFBdUIsNEJBQTRCLGtCQUFrQixFQUFFLDhCQUE4QixFQUFFLEVBQUU7O0FBRS9vQixzQ0FBc0MsdUNBQXVDLGtCQUFrQjs7QUFFL0YsaURBQWlELDBDQUEwQywwREFBMEQsRUFBRTs7QUFFdkosMENBQTBDLCtEQUErRCxxR0FBcUcsRUFBRSx5RUFBeUUsZUFBZSx5RUFBeUUsRUFBRSxFQUFFLHVIQUF1SDs7QUFFNWU7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCw4REFBOEQ7QUFDOUQsb0RBQW9ELCtCQUErQjtBQUNuRixvREFBb0QsNkJBQTZCO0FBQ2pGLG9EQUFvRCwrQkFBK0I7QUFDbkY7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQSxDQUFDOztBQUVEO0FBQ0EiLCJmaWxlIjoiMjcwLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxudmFyIF9nZXQgPSBmdW5jdGlvbiBnZXQoX3gsIF94MiwgX3gzKSB7IHZhciBfYWdhaW4gPSB0cnVlOyBfZnVuY3Rpb246IHdoaWxlIChfYWdhaW4pIHsgdmFyIG9iamVjdCA9IF94LCBwcm9wZXJ0eSA9IF94MiwgcmVjZWl2ZXIgPSBfeDM7IF9hZ2FpbiA9IGZhbHNlOyBpZiAob2JqZWN0ID09PSBudWxsKSBvYmplY3QgPSBGdW5jdGlvbi5wcm90b3R5cGU7IHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHByb3BlcnR5KTsgaWYgKGRlc2MgPT09IHVuZGVmaW5lZCkgeyB2YXIgcGFyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iamVjdCk7IGlmIChwYXJlbnQgPT09IG51bGwpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSBlbHNlIHsgX3ggPSBwYXJlbnQ7IF94MiA9IHByb3BlcnR5OyBfeDMgPSByZWNlaXZlcjsgX2FnYWluID0gdHJ1ZTsgZGVzYyA9IHBhcmVudCA9IHVuZGVmaW5lZDsgY29udGludWUgX2Z1bmN0aW9uOyB9IH0gZWxzZSBpZiAoJ3ZhbHVlJyBpbiBkZXNjKSB7IHJldHVybiBkZXNjLnZhbHVlOyB9IGVsc2UgeyB2YXIgZ2V0dGVyID0gZGVzYy5nZXQ7IGlmIChnZXR0ZXIgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IHJldHVybiBnZXR0ZXIuY2FsbChyZWNlaXZlcik7IH0gfSB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfQmFzZUljb24yID0gcmVxdWlyZSgnLi9CYXNlSWNvbicpO1xuXG52YXIgX0Jhc2VJY29uMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX0Jhc2VJY29uMik7XG5cbnZhciBEb3RzTWluaSA9IChmdW5jdGlvbiAoX0Jhc2VJY29uKSB7XG4gIF9pbmhlcml0cyhEb3RzTWluaSwgX0Jhc2VJY29uKTtcblxuICBmdW5jdGlvbiBEb3RzTWluaSgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRG90c01pbmkpO1xuXG4gICAgX2dldChPYmplY3QuZ2V0UHJvdG90eXBlT2YoRG90c01pbmkucHJvdG90eXBlKSwgJ2NvbnN0cnVjdG9yJywgdGhpcykuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhEb3RzTWluaSwgW3tcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoXG4gICAgICAgICdzdmcnLFxuICAgICAgICB7IGNsYXNzTmFtZTogJ2ljb24gaWNvbi0tZG90cy1taW5pICcgKyB0aGlzLnByb3BzLmNsYXNzTmFtZSxcbiAgICAgICAgICB4bWxuczogdGhpcy5nZXRYbWxucygpLCB2aWV3Qm94OiB0aGlzLmdldFZpZXdCb3goKSB9LFxuICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnY2lyY2xlJywgeyBjeDogJzAuOScsIGN5OiAnNCcsIHI6ICcwLjknIH0pLFxuICAgICAgICBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudCgnY2lyY2xlJywgeyBjeDogJzQnLCBjeTogJzQnLCByOiAnMC45JyB9KSxcbiAgICAgICAgX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ2NpcmNsZScsIHsgY3g6ICc3LjEnLCBjeTogJzQnLCByOiAnMC45JyB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRG90c01pbmk7XG59KShfQmFzZUljb24zWydkZWZhdWx0J10pO1xuXG5leHBvcnRzWydkZWZhdWx0J10gPSBEb3RzTWluaTtcbm1vZHVsZS5leHBvcnRzID0gZXhwb3J0c1snZGVmYXVsdCddO1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy9pY29ucy9Eb3RzTWluaS5qc1xuICoqIG1vZHVsZSBpZCA9IDI3MFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ==");
+/***/ },
+/* 271 */
+/***/ function(module, exports, __webpack_require__) {
+
+ eval("'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _classnames2 = __webpack_require__(171);\n\nvar _classnames3 = _interopRequireDefault(_classnames2);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactCustomScrollbars = __webpack_require__(272);\n\nvar CustomScrollbar = (function (_React$Component) {\n _inherits(CustomScrollbar, _React$Component);\n\n function CustomScrollbar() {\n _classCallCheck(this, CustomScrollbar);\n\n _get(Object.getPrototypeOf(CustomScrollbar.prototype), 'constructor', this).apply(this, arguments);\n }\n\n _createClass(CustomScrollbar, [{\n key: 'getHorizontalThumb',\n value: function getHorizontalThumb(props) {\n return _react2['default'].createElement('div', _extends({}, props, {\n className: 'scrollbars__thumb scrollbars__thumb--horizontal' }));\n }\n }, {\n key: 'getVerticalThumb',\n value: function getVerticalThumb(props) {\n return _react2['default'].createElement('div', _extends({}, props, {\n className: 'scrollbars__thumb scrollbars__thumb--vertical' }));\n }\n }, {\n key: 'render',\n value: function render() {\n var _classnames;\n\n var classes = (0, _classnames3['default'])('scrollbars', (_classnames = {}, _defineProperty(_classnames, this.props.className, this.props.className), _defineProperty(_classnames, 'is-inverted', this.props.inverted), _classnames));\n\n return _react2['default'].createElement(\n _reactCustomScrollbars.Scrollbars,\n {\n className: classes,\n ref: 'scrollbar',\n renderThumbHorizontal: this.getHorizontalThumb,\n renderThumbVertical: this.getVerticalThumb,\n onScroll: this.props.scrollHandler },\n this.props.children\n );\n }\n }]);\n\n return CustomScrollbar;\n})(_react2['default'].Component);\n\nexports['default'] = CustomScrollbar;\n\nCustomScrollbar.defaultProps = {\n className: '',\n inverted: false,\n scrollHandler: null\n};\nmodule.exports = exports['default'];//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jbGllbnQvc291cmNlL3NjcmlwdHMvY29tcG9uZW50cy91aS9DdXN0b21TY3JvbGxiYXJzLmpzP2RiN2QiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQsbURBQW1ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCwyQkFBMkIsRUFBRSxFQUFFLEVBQUUsZUFBZTs7QUFFOVAsaUNBQWlDLDJDQUEyQyxnQkFBZ0Isa0JBQWtCLE9BQU8sMkJBQTJCLHdEQUF3RCxnQ0FBZ0MsdURBQXVELDJEQUEyRCxFQUFFLEVBQUUseURBQXlELHFFQUFxRSw2REFBNkQsb0JBQW9CLEdBQUcsRUFBRTs7QUFFbGpCLHVDQUF1QyxtQkFBbUIsNEJBQTRCLGlEQUFpRCxnQkFBZ0Isa0RBQWtELDhEQUE4RCwwQkFBMEIsNENBQTRDLHVCQUF1QixrQkFBa0IsRUFBRSxPQUFPLGFBQWEsZ0JBQWdCLGdCQUFnQixlQUFlLDJCQUEyQixvQkFBb0IsRUFBRSxFQUFFLDRCQUE0QixtQkFBbUIsRUFBRSxPQUFPLHVCQUF1Qiw0QkFBNEIsa0JBQWtCLEVBQUUsOEJBQThCLEVBQUUsRUFBRTs7QUFFL29CLHNDQUFzQyx1Q0FBdUMsa0JBQWtCOztBQUUvRiwyQ0FBMkMsa0JBQWtCLGtDQUFrQyxxRUFBcUUsRUFBRSxFQUFFLE9BQU8sa0JBQWtCLEVBQUUsWUFBWTs7QUFFL00saURBQWlELDBDQUEwQywwREFBMEQsRUFBRTs7QUFFdkosMENBQTBDLCtEQUErRCxxR0FBcUcsRUFBRSx5RUFBeUUsZUFBZSx5RUFBeUUsRUFBRSxFQUFFLHVIQUF1SDs7QUFFNWU7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0VBQWdFO0FBQ2hFLHNFQUFzRTtBQUN0RTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsZ0VBQWdFO0FBQ2hFLG9FQUFvRTtBQUNwRTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7O0FBRUEsZ0ZBQWdGOztBQUVoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QztBQUM5QztBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMjcxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykgeyBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7IHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07IGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTsgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlOyBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTsgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpOyB9IH0gcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHsgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTsgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7IHJldHVybiBDb25zdHJ1Y3RvcjsgfTsgfSkoKTtcblxudmFyIF9nZXQgPSBmdW5jdGlvbiBnZXQoX3gsIF94MiwgX3gzKSB7IHZhciBfYWdhaW4gPSB0cnVlOyBfZnVuY3Rpb246IHdoaWxlIChfYWdhaW4pIHsgdmFyIG9iamVjdCA9IF94LCBwcm9wZXJ0eSA9IF94MiwgcmVjZWl2ZXIgPSBfeDM7IF9hZ2FpbiA9IGZhbHNlOyBpZiAob2JqZWN0ID09PSBudWxsKSBvYmplY3QgPSBGdW5jdGlvbi5wcm90b3R5cGU7IHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmplY3QsIHByb3BlcnR5KTsgaWYgKGRlc2MgPT09IHVuZGVmaW5lZCkgeyB2YXIgcGFyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iamVjdCk7IGlmIChwYXJlbnQgPT09IG51bGwpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfSBlbHNlIHsgX3ggPSBwYXJlbnQ7IF94MiA9IHByb3BlcnR5OyBfeDMgPSByZWNlaXZlcjsgX2FnYWluID0gdHJ1ZTsgZGVzYyA9IHBhcmVudCA9IHVuZGVmaW5lZDsgY29udGludWUgX2Z1bmN0aW9uOyB9IH0gZWxzZSBpZiAoJ3ZhbHVlJyBpbiBkZXNjKSB7IHJldHVybiBkZXNjLnZhbHVlOyB9IGVsc2UgeyB2YXIgZ2V0dGVyID0gZGVzYy5nZXQ7IGlmIChnZXR0ZXIgPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IHJldHVybiBnZXR0ZXIuY2FsbChyZWNlaXZlcik7IH0gfSB9O1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyAnZGVmYXVsdCc6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgX2NsYXNzbmFtZXMyID0gcmVxdWlyZSgnY2xhc3NuYW1lcycpO1xuXG52YXIgX2NsYXNzbmFtZXMzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfY2xhc3NuYW1lczIpO1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbnZhciBfcmVhY3RDdXN0b21TY3JvbGxiYXJzID0gcmVxdWlyZSgncmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMnKTtcblxudmFyIEN1c3RvbVNjcm9sbGJhciA9IChmdW5jdGlvbiAoX1JlYWN0JENvbXBvbmVudCkge1xuICBfaW5oZXJpdHMoQ3VzdG9tU2Nyb2xsYmFyLCBfUmVhY3QkQ29tcG9uZW50KTtcblxuICBmdW5jdGlvbiBDdXN0b21TY3JvbGxiYXIoKSB7XG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEN1c3RvbVNjcm9sbGJhcik7XG5cbiAgICBfZ2V0KE9iamVjdC5nZXRQcm90b3R5cGVPZihDdXN0b21TY3JvbGxiYXIucHJvdG90eXBlKSwgJ2NvbnN0cnVjdG9yJywgdGhpcykuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhDdXN0b21TY3JvbGxiYXIsIFt7XG4gICAga2V5OiAnZ2V0SG9yaXpvbnRhbFRodW1iJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0SG9yaXpvbnRhbFRodW1iKHByb3BzKSB7XG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ2RpdicsIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6ICdzY3JvbGxiYXJzX190aHVtYiBzY3JvbGxiYXJzX190aHVtYi0taG9yaXpvbnRhbCcgfSkpO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ2dldFZlcnRpY2FsVGh1bWInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXRWZXJ0aWNhbFRodW1iKHByb3BzKSB7XG4gICAgICByZXR1cm4gX3JlYWN0MlsnZGVmYXVsdCddLmNyZWF0ZUVsZW1lbnQoJ2RpdicsIF9leHRlbmRzKHt9LCBwcm9wcywge1xuICAgICAgICBjbGFzc05hbWU6ICdzY3JvbGxiYXJzX190aHVtYiBzY3JvbGxiYXJzX190aHVtYi0tdmVydGljYWwnIH0pKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdyZW5kZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2NsYXNzbmFtZXM7XG5cbiAgICAgIHZhciBjbGFzc2VzID0gKDAsIF9jbGFzc25hbWVzM1snZGVmYXVsdCddKSgnc2Nyb2xsYmFycycsIChfY2xhc3NuYW1lcyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2NsYXNzbmFtZXMsIHRoaXMucHJvcHMuY2xhc3NOYW1lLCB0aGlzLnByb3BzLmNsYXNzTmFtZSksIF9kZWZpbmVQcm9wZXJ0eShfY2xhc3NuYW1lcywgJ2lzLWludmVydGVkJywgdGhpcy5wcm9wcy5pbnZlcnRlZCksIF9jbGFzc25hbWVzKSk7XG5cbiAgICAgIHJldHVybiBfcmVhY3QyWydkZWZhdWx0J10uY3JlYXRlRWxlbWVudChcbiAgICAgICAgX3JlYWN0Q3VzdG9tU2Nyb2xsYmFycy5TY3JvbGxiYXJzLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzLFxuICAgICAgICAgIHJlZjogJ3Njcm9sbGJhcicsXG4gICAgICAgICAgcmVuZGVyVGh1bWJIb3Jpem9udGFsOiB0aGlzLmdldEhvcml6b250YWxUaHVtYixcbiAgICAgICAgICByZW5kZXJUaHVtYlZlcnRpY2FsOiB0aGlzLmdldFZlcnRpY2FsVGh1bWIsXG4gICAgICAgICAgb25TY3JvbGw6IHRoaXMucHJvcHMuc2Nyb2xsSGFuZGxlciB9LFxuICAgICAgICB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgICApO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBDdXN0b21TY3JvbGxiYXI7XG59KShfcmVhY3QyWydkZWZhdWx0J10uQ29tcG9uZW50KTtcblxuZXhwb3J0c1snZGVmYXVsdCddID0gQ3VzdG9tU2Nyb2xsYmFyO1xuXG5DdXN0b21TY3JvbGxiYXIuZGVmYXVsdFByb3BzID0ge1xuICBjbGFzc05hbWU6ICcnLFxuICBpbnZlcnRlZDogZmFsc2UsXG4gIHNjcm9sbEhhbmRsZXI6IG51bGxcbn07XG5tb2R1bGUuZXhwb3J0cyA9IGV4cG9ydHNbJ2RlZmF1bHQnXTtcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vY2xpZW50L3NvdXJjZS9zY3JpcHRzL2NvbXBvbmVudHMvdWkvQ3VzdG9tU2Nyb2xsYmFycy5qc1xuICoqIG1vZHVsZSBpZCA9IDI3MVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ==");
+
+/***/ },
+/* 272 */
+/***/ function(module, exports, __webpack_require__) {
+
+ eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Scrollbars = undefined;\n\nvar _Scrollbars = __webpack_require__(273);\n\nvar _Scrollbars2 = _interopRequireDefault(_Scrollbars);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Scrollbars2.default;\nexports.Scrollbars = _Scrollbars2.default;//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9pbmRleC5qcz8xM2FkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7O0FBRUE7O0FBRUEsc0NBQXNDLHVDQUF1QyxnQkFBZ0I7O0FBRTdGO0FBQ0EiLCJmaWxlIjoiMjcyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5TY3JvbGxiYXJzID0gdW5kZWZpbmVkO1xuXG52YXIgX1Njcm9sbGJhcnMgPSByZXF1aXJlKCcuL1Njcm9sbGJhcnMnKTtcblxudmFyIF9TY3JvbGxiYXJzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX1Njcm9sbGJhcnMpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5leHBvcnRzLmRlZmF1bHQgPSBfU2Nyb2xsYmFyczIuZGVmYXVsdDtcbmV4cG9ydHMuU2Nyb2xsYmFycyA9IF9TY3JvbGxiYXJzMi5kZWZhdWx0O1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9pbmRleC5qc1xuICoqIG1vZHVsZSBpZCA9IDI3MlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ==");
+
+/***/ },
+/* 273 */
+/***/ function(module, exports, __webpack_require__) {
+
+ eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _raf2 = __webpack_require__(274);\n\nvar _raf3 = _interopRequireDefault(_raf2);\n\nvar _domCss = __webpack_require__(276);\n\nvar _domCss2 = _interopRequireDefault(_domCss);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _getScrollbarWidth = __webpack_require__(282);\n\nvar _getScrollbarWidth2 = _interopRequireDefault(_getScrollbarWidth);\n\nvar _returnFalse = __webpack_require__(283);\n\nvar _returnFalse2 = _interopRequireDefault(_returnFalse);\n\nvar _getInnerWidth = __webpack_require__(284);\n\nvar _getInnerWidth2 = _interopRequireDefault(_getInnerWidth);\n\nvar _getInnerHeight = __webpack_require__(285);\n\nvar _getInnerHeight2 = _interopRequireDefault(_getInnerHeight);\n\nvar _styles = __webpack_require__(286);\n\nvar _defaultRenderElements = __webpack_require__(287);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nexports.default = (0, _react.createClass)({\n\n displayName: 'Scrollbars',\n\n propTypes: {\n onScroll: _react.PropTypes.func,\n onScrollFrame: _react.PropTypes.func,\n onScrollStart: _react.PropTypes.func,\n onScrollStop: _react.PropTypes.func,\n renderView: _react.PropTypes.func,\n renderTrackHorizontal: _react.PropTypes.func,\n renderTrackVertical: _react.PropTypes.func,\n renderThumbHorizontal: _react.PropTypes.func,\n renderThumbVertical: _react.PropTypes.func,\n autoHide: _react.PropTypes.bool,\n autoHideTimeout: _react.PropTypes.number,\n autoHideDuration: _react.PropTypes.number,\n thumbSize: _react.PropTypes.number,\n thumbMinSize: _react.PropTypes.number,\n universal: _react.PropTypes.bool,\n style: _react.PropTypes.object,\n children: _react.PropTypes.node\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n renderView: _defaultRenderElements.renderViewDefault,\n renderTrackHorizontal: _defaultRenderElements.renderTrackHorizontalDefault,\n renderTrackVertical: _defaultRenderElements.renderTrackVerticalDefault,\n renderThumbHorizontal: _defaultRenderElements.renderThumbHorizontalDefault,\n renderThumbVertical: _defaultRenderElements.renderThumbVerticalDefault,\n autoHide: false,\n autoHideTimeout: 1000,\n autoHideDuration: 200,\n thumbMinSize: 30,\n universal: false\n };\n },\n getInitialState: function getInitialState() {\n return {\n didMountUniversal: false\n };\n },\n componentDidMount: function componentDidMount() {\n this.addListeners();\n this.update();\n this.componentDidMountUniversal();\n },\n componentDidMountUniversal: function componentDidMountUniversal() {\n // eslint-disable-line react/sort-comp\n var universal = this.props.universal;\n\n if (!universal) return;\n this.setState({ didMountUniversal: true });\n },\n componentDidUpdate: function componentDidUpdate() {\n this.update();\n },\n componentWillUnmount: function componentWillUnmount() {\n this.removeListeners();\n (0, _raf2.cancel)(this.requestFrame);\n clearTimeout(this.hideTracksTimeout);\n clearInterval(this.detectScrollingInterval);\n },\n getScrollLeft: function getScrollLeft() {\n var view = this.refs.view;\n\n return view.scrollLeft;\n },\n getScrollTop: function getScrollTop() {\n var view = this.refs.view;\n\n return view.scrollTop;\n },\n getScrollWidth: function getScrollWidth() {\n var view = this.refs.view;\n\n return view.scrollWidth;\n },\n getScrollHeight: function getScrollHeight() {\n var view = this.refs.view;\n\n return view.scrollHeight;\n },\n getClientWidth: function getClientWidth() {\n var view = this.refs.view;\n\n return view.clientWidth;\n },\n getClientHeight: function getClientHeight() {\n var view = this.refs.view;\n\n return view.clientHeight;\n },\n getValues: function getValues() {\n var view = this.refs.view;\n var scrollLeft = view.scrollLeft;\n var scrollTop = view.scrollTop;\n var scrollWidth = view.scrollWidth;\n var scrollHeight = view.scrollHeight;\n var clientWidth = view.clientWidth;\n var clientHeight = view.clientHeight;\n\n\n return {\n left: scrollLeft / (scrollWidth - clientWidth) || 0,\n top: scrollTop / (scrollHeight - clientHeight) || 0,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: scrollWidth,\n scrollHeight: scrollHeight,\n clientWidth: clientWidth,\n clientHeight: clientHeight\n };\n },\n getThumbHorizontalWidth: function getThumbHorizontalWidth() {\n var _props = this.props;\n var thumbSize = _props.thumbSize;\n var thumbMinSize = _props.thumbMinSize;\n var _refs = this.refs;\n var view = _refs.view;\n var trackHorizontal = _refs.trackHorizontal;\n var scrollWidth = view.scrollWidth;\n var clientWidth = view.clientWidth;\n\n var trackWidth = (0, _getInnerWidth2.default)(trackHorizontal);\n var width = clientWidth / scrollWidth * trackWidth;\n if (trackWidth === width) return 0;\n if (thumbSize) return thumbSize;\n return Math.max(width, thumbMinSize);\n },\n getThumbVerticalHeight: function getThumbVerticalHeight() {\n var _props2 = this.props;\n var thumbSize = _props2.thumbSize;\n var thumbMinSize = _props2.thumbMinSize;\n var _refs2 = this.refs;\n var view = _refs2.view;\n var trackVertical = _refs2.trackVertical;\n var scrollHeight = view.scrollHeight;\n var clientHeight = view.clientHeight;\n\n var trackHeight = (0, _getInnerHeight2.default)(trackVertical);\n var height = clientHeight / scrollHeight * trackHeight;\n if (trackHeight === height) return 0;\n if (thumbSize) return thumbSize;\n return Math.max(height, thumbMinSize);\n },\n getScrollLeftForOffset: function getScrollLeftForOffset(offset) {\n var _refs3 = this.refs;\n var view = _refs3.view;\n var trackHorizontal = _refs3.trackHorizontal;\n var scrollWidth = view.scrollWidth;\n var clientWidth = view.clientWidth;\n\n var trackWidth = (0, _getInnerWidth2.default)(trackHorizontal);\n var thumbWidth = this.getThumbHorizontalWidth();\n return offset / (trackWidth - thumbWidth) * (scrollWidth - clientWidth);\n },\n getScrollTopForOffset: function getScrollTopForOffset(offset) {\n var _refs4 = this.refs;\n var view = _refs4.view;\n var trackVertical = _refs4.trackVertical;\n var scrollHeight = view.scrollHeight;\n var clientHeight = view.clientHeight;\n\n var trackHeight = (0, _getInnerHeight2.default)(trackVertical);\n var thumbHeight = this.getThumbVerticalHeight();\n return offset / (trackHeight - thumbHeight) * (scrollHeight - clientHeight);\n },\n scrollLeft: function scrollLeft() {\n var left = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];\n var view = this.refs.view;\n\n view.scrollLeft = left;\n },\n scrollTop: function scrollTop() {\n var top = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];\n var view = this.refs.view;\n\n view.scrollTop = top;\n },\n scrollToLeft: function scrollToLeft() {\n var view = this.refs.view;\n\n view.scrollLeft = 0;\n },\n scrollToTop: function scrollToTop() {\n var view = this.refs.view;\n\n view.scrollTop = 0;\n },\n scrollToRight: function scrollToRight() {\n var view = this.refs.view;\n\n view.scrollLeft = view.scrollWidth;\n },\n scrollToBottom: function scrollToBottom() {\n var view = this.refs.view;\n\n view.scrollTop = view.scrollHeight;\n },\n addListeners: function addListeners() {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return;\n var _refs5 = this.refs;\n var view = _refs5.view;\n var trackHorizontal = _refs5.trackHorizontal;\n var trackVertical = _refs5.trackVertical;\n var thumbHorizontal = _refs5.thumbHorizontal;\n var thumbVertical = _refs5.thumbVertical;\n\n view.addEventListener('scroll', this.handleScroll);\n if (!(0, _getScrollbarWidth2.default)()) return;\n trackHorizontal.addEventListener('mouseenter', this.handleTrackMouseEnter);\n trackHorizontal.addEventListener('mouseleave', this.handleTrackMouseLeave);\n trackHorizontal.addEventListener('mousedown', this.handleHorizontalTrackMouseDown);\n trackVertical.addEventListener('mouseenter', this.handleTrackMouseEnter);\n trackVertical.addEventListener('mouseleave', this.handleTrackMouseLeave);\n trackVertical.addEventListener('mousedown', this.handleVerticalTrackMouseDown);\n thumbHorizontal.addEventListener('mousedown', this.handleHorizontalThumbMouseDown);\n thumbVertical.addEventListener('mousedown', this.handleVerticalThumbMouseDown);\n window.addEventListener('resize', this.handleWindowResize);\n },\n removeListeners: function removeListeners() {\n /* istanbul ignore if */\n if (typeof document === 'undefined') return;\n var _refs6 = this.refs;\n var view = _refs6.view;\n var trackHorizontal = _refs6.trackHorizontal;\n var trackVertical = _refs6.trackVertical;\n var thumbHorizontal = _refs6.thumbHorizontal;\n var thumbVertical = _refs6.thumbVertical;\n\n view.removeEventListener('scroll', this.handleScroll);\n if (!(0, _getScrollbarWidth2.default)()) return;\n trackHorizontal.removeEventListener('mouseenter', this.handleTrackMouseEnter);\n trackHorizontal.removeEventListener('mouseleave', this.handleTrackMouseLeave);\n trackHorizontal.removeEventListener('mousedown', this.handleHorizontalTrackMouseDown);\n trackVertical.removeEventListener('mouseenter', this.handleTrackMouseEnter);\n trackVertical.removeEventListener('mouseleave', this.handleTrackMouseLeave);\n trackVertical.removeEventListener('mousedown', this.handleVerticalTrackMouseDown);\n thumbHorizontal.removeEventListener('mousedown', this.handleHorizontalThumbMouseDown);\n thumbVertical.removeEventListener('mousedown', this.handleVerticalThumbMouseDown);\n window.removeEventListener('resize', this.handleWindowResize);\n // Possibly setup by `handleDragStart`\n this.teardownDragging();\n },\n handleScroll: function handleScroll(event) {\n var _this = this;\n\n var _props3 = this.props;\n var onScroll = _props3.onScroll;\n var onScrollFrame = _props3.onScrollFrame;\n\n if (onScroll) onScroll(event);\n this.update(function (values) {\n var scrollLeft = values.scrollLeft;\n var scrollTop = values.scrollTop;\n\n _this.viewScrollLeft = scrollLeft;\n _this.viewScrollTop = scrollTop;\n if (onScrollFrame) onScrollFrame(values);\n });\n this.detectScrolling();\n },\n handleScrollStart: function handleScrollStart() {\n var onScrollStart = this.props.onScrollStart;\n\n if (onScrollStart) onScrollStart();\n this.handleScrollStartAutoHide();\n },\n handleScrollStartAutoHide: function handleScrollStartAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.showTracks();\n },\n handleScrollStop: function handleScrollStop() {\n var onScrollStop = this.props.onScrollStop;\n\n if (onScrollStop) onScrollStop();\n this.handleScrollStopAutoHide();\n },\n handleScrollStopAutoHide: function handleScrollStopAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.hideTracks();\n },\n handleWindowResize: function handleWindowResize() {\n this.update();\n },\n handleHorizontalTrackMouseDown: function handleHorizontalTrackMouseDown() {\n var view = this.refs.view;\n var _event = event;\n var target = _event.target;\n var clientX = _event.clientX;\n\n var _target$getBoundingCl = target.getBoundingClientRect();\n\n var targetLeft = _target$getBoundingCl.left;\n\n var thumbWidth = this.getThumbHorizontalWidth();\n var offset = Math.abs(targetLeft - clientX) - thumbWidth / 2;\n view.scrollLeft = this.getScrollLeftForOffset(offset);\n },\n handleVerticalTrackMouseDown: function handleVerticalTrackMouseDown(event) {\n var view = this.refs.view;\n var target = event.target;\n var clientY = event.clientY;\n\n var _target$getBoundingCl2 = target.getBoundingClientRect();\n\n var targetTop = _target$getBoundingCl2.top;\n\n var thumbHeight = this.getThumbVerticalHeight();\n var offset = Math.abs(targetTop - clientY) - thumbHeight / 2;\n view.scrollTop = this.getScrollTopForOffset(offset);\n },\n handleHorizontalThumbMouseDown: function handleHorizontalThumbMouseDown(event) {\n this.handleDragStart(event);\n var target = event.target;\n var clientX = event.clientX;\n var offsetWidth = target.offsetWidth;\n\n var _target$getBoundingCl3 = target.getBoundingClientRect();\n\n var left = _target$getBoundingCl3.left;\n\n this.prevPageX = offsetWidth - (clientX - left);\n },\n handleVerticalThumbMouseDown: function handleVerticalThumbMouseDown(event) {\n this.handleDragStart(event);\n var target = event.target;\n var clientY = event.clientY;\n var offsetHeight = target.offsetHeight;\n\n var _target$getBoundingCl4 = target.getBoundingClientRect();\n\n var top = _target$getBoundingCl4.top;\n\n this.prevPageY = offsetHeight - (clientY - top);\n },\n setupDragging: function setupDragging() {\n (0, _domCss2.default)(document.body, _styles.disableSelectStyle);\n document.addEventListener('mousemove', this.handleDrag);\n document.addEventListener('mouseup', this.handleDragEnd);\n document.onselectstart = _returnFalse2.default;\n },\n teardownDragging: function teardownDragging() {\n (0, _domCss2.default)(document.body, _styles.disableSelectStyleReset);\n document.removeEventListener('mousemove', this.handleDrag);\n document.removeEventListener('mouseup', this.handleDragEnd);\n document.onselectstart = undefined;\n },\n handleDragStart: function handleDragStart(event) {\n this.dragging = true;\n event.stopImmediatePropagation();\n this.setupDragging();\n },\n handleDrag: function handleDrag(event) {\n if (this.prevPageX) {\n var clientX = event.clientX;\n var _refs7 = this.refs;\n var view = _refs7.view;\n var trackHorizontal = _refs7.trackHorizontal;\n\n var _trackHorizontal$getB = trackHorizontal.getBoundingClientRect();\n\n var trackLeft = _trackHorizontal$getB.left;\n\n var thumbWidth = this.getThumbHorizontalWidth();\n var clickPosition = thumbWidth - this.prevPageX;\n var offset = -trackLeft + clientX - clickPosition;\n view.scrollLeft = this.getScrollLeftForOffset(offset);\n }\n if (this.prevPageY) {\n var clientY = event.clientY;\n var _refs8 = this.refs;\n var view = _refs8.view;\n var trackVertical = _refs8.trackVertical;\n\n var _trackVertical$getBou = trackVertical.getBoundingClientRect();\n\n var trackTop = _trackVertical$getBou.top;\n\n var thumbHeight = this.getThumbVerticalHeight();\n var clickPosition = thumbHeight - this.prevPageY;\n var offset = -trackTop + clientY - clickPosition;\n view.scrollTop = this.getScrollTopForOffset(offset);\n }\n return false;\n },\n handleDragEnd: function handleDragEnd() {\n this.dragging = false;\n this.prevPageX = this.prevPageY = 0;\n this.teardownDragging();\n this.handleDragEndAutoHide();\n },\n handleDragEndAutoHide: function handleDragEndAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.hideTracks();\n },\n handleTrackMouseEnter: function handleTrackMouseEnter() {\n this.trackMouseOver = true;\n this.handleTrackMouseEnterAutoHide();\n },\n handleTrackMouseEnterAutoHide: function handleTrackMouseEnterAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.showTracks();\n },\n handleTrackMouseLeave: function handleTrackMouseLeave() {\n this.trackMouseOver = false;\n this.handleTrackMouseLeaveAutoHide();\n },\n handleTrackMouseLeaveAutoHide: function handleTrackMouseLeaveAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.hideTracks();\n },\n showTracks: function showTracks() {\n var _refs9 = this.refs;\n var trackHorizontal = _refs9.trackHorizontal;\n var trackVertical = _refs9.trackVertical;\n\n clearTimeout(this.hideTracksTimeout);\n (0, _domCss2.default)(trackHorizontal, { opacity: 1 });\n (0, _domCss2.default)(trackVertical, { opacity: 1 });\n },\n hideTracks: function hideTracks() {\n if (this.dragging) return;\n if (this.scrolling) return;\n if (this.trackMouseOver) return;\n var autoHideTimeout = this.props.autoHideTimeout;\n var _refs10 = this.refs;\n var trackHorizontal = _refs10.trackHorizontal;\n var trackVertical = _refs10.trackVertical;\n\n clearTimeout(this.hideTracksTimeout);\n this.hideTracksTimeout = setTimeout(function () {\n (0, _domCss2.default)(trackHorizontal, { opacity: 0 });\n (0, _domCss2.default)(trackVertical, { opacity: 0 });\n }, autoHideTimeout);\n },\n detectScrolling: function detectScrolling() {\n var _this2 = this;\n\n if (this.scrolling) return;\n this.scrolling = true;\n this.handleScrollStart();\n this.detectScrollingInterval = setInterval(function () {\n if (_this2.lastViewScrollLeft === _this2.viewScrollLeft && _this2.lastViewScrollTop === _this2.viewScrollTop) {\n clearInterval(_this2.detectScrollingInterval);\n _this2.scrolling = false;\n _this2.handleScrollStop();\n }\n _this2.lastViewScrollLeft = _this2.viewScrollLeft;\n _this2.lastViewScrollTop = _this2.viewScrollTop;\n }, 100);\n },\n raf: function raf(callback) {\n var _this3 = this;\n\n if (this.requestFrame) _raf3.default.cancel(this.requestFrame);\n this.requestFrame = (0, _raf3.default)(function () {\n _this3.requestFrame = undefined;\n callback();\n });\n },\n update: function update(callback) {\n var _this4 = this;\n\n this.raf(function () {\n var values = _this4.getValues();\n if ((0, _getScrollbarWidth2.default)()) {\n var _refs11 = _this4.refs;\n var thumbHorizontal = _refs11.thumbHorizontal;\n var thumbVertical = _refs11.thumbVertical;\n var trackHorizontal = _refs11.trackHorizontal;\n var trackVertical = _refs11.trackVertical;\n var scrollLeft = values.scrollLeft;\n var clientWidth = values.clientWidth;\n var scrollWidth = values.scrollWidth;\n\n var trackHorizontalWidth = (0, _getInnerWidth2.default)(trackHorizontal);\n var thumbHorizontalWidth = _this4.getThumbHorizontalWidth();\n var thumbHorizontalX = scrollLeft / (scrollWidth - clientWidth) * (trackHorizontalWidth - thumbHorizontalWidth);\n var thumbHorizontalStyle = {\n width: thumbHorizontalWidth,\n transform: 'translateX(' + thumbHorizontalX + 'px)'\n };\n var scrollTop = values.scrollTop;\n var clientHeight = values.clientHeight;\n var scrollHeight = values.scrollHeight;\n\n var trackVerticalHeight = (0, _getInnerHeight2.default)(trackVertical);\n var thumbVerticalHeight = _this4.getThumbVerticalHeight();\n var thumbVerticalY = scrollTop / (scrollHeight - clientHeight) * (trackVerticalHeight - thumbVerticalHeight);\n var thumbVerticalStyle = {\n height: thumbVerticalHeight,\n transform: 'translateY(' + thumbVerticalY + 'px)'\n };\n (0, _domCss2.default)(thumbHorizontal, thumbHorizontalStyle);\n (0, _domCss2.default)(thumbVertical, thumbVerticalStyle);\n }\n if (typeof callback !== 'function') return;\n callback(values);\n });\n },\n render: function render() {\n var scrollbarWidth = (0, _getScrollbarWidth2.default)();\n var _props4 = this.props;\n var onScroll = _props4.onScroll;\n var onScrollFrame = _props4.onScrollFrame;\n var onScrollStart = _props4.onScrollStart;\n var onScrollStop = _props4.onScrollStop;\n var renderView = _props4.renderView;\n var renderTrackHorizontal = _props4.renderTrackHorizontal;\n var renderTrackVertical = _props4.renderTrackVertical;\n var renderThumbHorizontal = _props4.renderThumbHorizontal;\n var renderThumbVertical = _props4.renderThumbVertical;\n var autoHide = _props4.autoHide;\n var autoHideTimeout = _props4.autoHideTimeout;\n var autoHideDuration = _props4.autoHideDuration;\n var thumbSize = _props4.thumbSize;\n var thumbMinSize = _props4.thumbMinSize;\n var universal = _props4.universal;\n var style = _props4.style;\n var children = _props4.children;\n\n var props = _objectWithoutProperties(_props4, ['onScroll', 'onScrollFrame', 'onScrollStart', 'onScrollStop', 'renderView', 'renderTrackHorizontal', 'renderTrackVertical', 'renderThumbHorizontal', 'renderThumbVertical', 'autoHide', 'autoHideTimeout', 'autoHideDuration', 'thumbSize', 'thumbMinSize', 'universal', 'style', 'children']);\n\n var didMountUniversal = this.state.didMountUniversal;\n\n\n var containerStyle = _extends({}, _styles.containerStyleDefault, style);\n\n var viewStyle = _extends({}, _styles.viewStyleDefault, scrollbarWidth ? { right: -scrollbarWidth, bottom: -scrollbarWidth } : { right: 0, bottom: 0 }, universal && !didMountUniversal ? _styles.viewStyleUniversalInitial : undefined);\n\n var trackHorizontalStyle = _extends({}, _styles.trackHorizontalStyleDefault, autoHide ? { transition: 'opacity ' + autoHideDuration + 'ms', opacity: 0 } : undefined, !scrollbarWidth || universal && !didMountUniversal ? { display: 'none' } : undefined);\n\n var trackVerticalStyle = _extends({}, _styles.trackVerticalStyleDefault, autoHide ? { transition: 'opacity ' + autoHideDuration + 'ms', opacity: 0 } : undefined, !scrollbarWidth || universal && !didMountUniversal ? { display: 'none' } : undefined);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, props, { style: containerStyle, ref: 'container' }),\n (0, _react.cloneElement)(renderView({ style: viewStyle }), { ref: 'view' }, children),\n (0, _react.cloneElement)(renderTrackHorizontal({ style: trackHorizontalStyle }), { ref: 'trackHorizontal' }, (0, _react.cloneElement)(renderThumbHorizontal({ style: _styles.thumbHorizontalStyleDefault }), { ref: 'thumbHorizontal' })),\n (0, _react.cloneElement)(renderTrackVertical({ style: trackVerticalStyle }), { ref: 'trackVertical' }, (0, _react.cloneElement)(renderThumbVertical({ style: _styles.thumbVerticalStyleDefault }), { ref: 'thumbVertical' }))\n );\n }\n});//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9TY3JvbGxiYXJzL2luZGV4LmpzP2Y5NzAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQsbURBQW1ELGdCQUFnQixzQkFBc0IsT0FBTywyQkFBMkIsMEJBQTBCLHlEQUF5RCwyQkFBMkIsRUFBRSxFQUFFLEVBQUUsZUFBZTs7QUFFOVA7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUEsc0NBQXNDLHVDQUF1QyxnQkFBZ0I7O0FBRTdGLDhDQUE4QyxpQkFBaUIscUJBQXFCLG9DQUFvQyw2REFBNkQsb0JBQW9CLEVBQUUsZUFBZTs7QUFFMU47O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSx1QkFBdUIsMEJBQTBCO0FBQ2pELEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0RBQWdELGFBQWE7QUFDN0QsOENBQThDLGFBQWE7QUFDM0QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLG9EQUFvRCxhQUFhO0FBQ2pFLGtEQUFrRCxhQUFhO0FBQy9ELFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOzs7QUFHQSx3Q0FBd0M7O0FBRXhDLG1DQUFtQyw4Q0FBOEMsa0RBQWtELElBQUksc0JBQXNCOztBQUU3Siw4Q0FBOEMsbURBQW1ELCtEQUErRCxvRUFBb0Usa0JBQWtCOztBQUV0UCw0Q0FBNEMsaURBQWlELCtEQUErRCxvRUFBb0Usa0JBQWtCOztBQUVsUDtBQUNBO0FBQ0EsdUJBQXVCLFVBQVUsMENBQTBDO0FBQzNFLGlEQUFpRCxtQkFBbUIsSUFBSSxjQUFjO0FBQ3RGLDREQUE0RCw4QkFBOEIsSUFBSSx5QkFBeUIsa0RBQWtELDZDQUE2QyxJQUFJLHlCQUF5QjtBQUNuUCwwREFBMEQsNEJBQTRCLElBQUksdUJBQXVCLGdEQUFnRCwyQ0FBMkMsSUFBSSx1QkFBdUI7QUFDdk87QUFDQTtBQUNBLENBQUMiLCJmaWxlIjoiMjczLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbnZhciBfcmFmMiA9IHJlcXVpcmUoJ3JhZicpO1xuXG52YXIgX3JhZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yYWYyKTtcblxudmFyIF9kb21Dc3MgPSByZXF1aXJlKCdkb20tY3NzJyk7XG5cbnZhciBfZG9tQ3NzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RvbUNzcyk7XG5cbnZhciBfcmVhY3QgPSByZXF1aXJlKCdyZWFjdCcpO1xuXG52YXIgX3JlYWN0MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3JlYWN0KTtcblxudmFyIF9nZXRTY3JvbGxiYXJXaWR0aCA9IHJlcXVpcmUoJy4uL3V0aWxzL2dldFNjcm9sbGJhcldpZHRoJyk7XG5cbnZhciBfZ2V0U2Nyb2xsYmFyV2lkdGgyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2V0U2Nyb2xsYmFyV2lkdGgpO1xuXG52YXIgX3JldHVybkZhbHNlID0gcmVxdWlyZSgnLi4vdXRpbHMvcmV0dXJuRmFsc2UnKTtcblxudmFyIF9yZXR1cm5GYWxzZTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZXR1cm5GYWxzZSk7XG5cbnZhciBfZ2V0SW5uZXJXaWR0aCA9IHJlcXVpcmUoJy4uL3V0aWxzL2dldElubmVyV2lkdGgnKTtcblxudmFyIF9nZXRJbm5lcldpZHRoMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2dldElubmVyV2lkdGgpO1xuXG52YXIgX2dldElubmVySGVpZ2h0ID0gcmVxdWlyZSgnLi4vdXRpbHMvZ2V0SW5uZXJIZWlnaHQnKTtcblxudmFyIF9nZXRJbm5lckhlaWdodDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9nZXRJbm5lckhlaWdodCk7XG5cbnZhciBfc3R5bGVzID0gcmVxdWlyZSgnLi9zdHlsZXMnKTtcblxudmFyIF9kZWZhdWx0UmVuZGVyRWxlbWVudHMgPSByZXF1aXJlKCcuL2RlZmF1bHRSZW5kZXJFbGVtZW50cycpO1xuXG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KG9iaikgeyByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTsgfVxuXG5mdW5jdGlvbiBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMob2JqLCBrZXlzKSB7IHZhciB0YXJnZXQgPSB7fTsgZm9yICh2YXIgaSBpbiBvYmopIHsgaWYgKGtleXMuaW5kZXhPZihpKSA+PSAwKSBjb250aW51ZTsgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBpKSkgY29udGludWU7IHRhcmdldFtpXSA9IG9ialtpXTsgfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmV4cG9ydHMuZGVmYXVsdCA9ICgwLCBfcmVhY3QuY3JlYXRlQ2xhc3MpKHtcblxuICAgIGRpc3BsYXlOYW1lOiAnU2Nyb2xsYmFycycsXG5cbiAgICBwcm9wVHlwZXM6IHtcbiAgICAgICAgb25TY3JvbGw6IF9yZWFjdC5Qcm9wVHlwZXMuZnVuYyxcbiAgICAgICAgb25TY3JvbGxGcmFtZTogX3JlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICBvblNjcm9sbFN0YXJ0OiBfcmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIG9uU2Nyb2xsU3RvcDogX3JlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICByZW5kZXJWaWV3OiBfcmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHJlbmRlclRyYWNrSG9yaXpvbnRhbDogX3JlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICByZW5kZXJUcmFja1ZlcnRpY2FsOiBfcmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIHJlbmRlclRodW1iSG9yaXpvbnRhbDogX3JlYWN0LlByb3BUeXBlcy5mdW5jLFxuICAgICAgICByZW5kZXJUaHVtYlZlcnRpY2FsOiBfcmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG4gICAgICAgIGF1dG9IaWRlOiBfcmVhY3QuUHJvcFR5cGVzLmJvb2wsXG4gICAgICAgIGF1dG9IaWRlVGltZW91dDogX3JlYWN0LlByb3BUeXBlcy5udW1iZXIsXG4gICAgICAgIGF1dG9IaWRlRHVyYXRpb246IF9yZWFjdC5Qcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICB0aHVtYlNpemU6IF9yZWFjdC5Qcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICB0aHVtYk1pblNpemU6IF9yZWFjdC5Qcm9wVHlwZXMubnVtYmVyLFxuICAgICAgICB1bml2ZXJzYWw6IF9yZWFjdC5Qcm9wVHlwZXMuYm9vbCxcbiAgICAgICAgc3R5bGU6IF9yZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuICAgICAgICBjaGlsZHJlbjogX3JlYWN0LlByb3BUeXBlcy5ub2RlXG4gICAgfSxcblxuICAgIGdldERlZmF1bHRQcm9wczogZnVuY3Rpb24gZ2V0RGVmYXVsdFByb3BzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVuZGVyVmlldzogX2RlZmF1bHRSZW5kZXJFbGVtZW50cy5yZW5kZXJWaWV3RGVmYXVsdCxcbiAgICAgICAgICAgIHJlbmRlclRyYWNrSG9yaXpvbnRhbDogX2RlZmF1bHRSZW5kZXJFbGVtZW50cy5yZW5kZXJUcmFja0hvcml6b250YWxEZWZhdWx0LFxuICAgICAgICAgICAgcmVuZGVyVHJhY2tWZXJ0aWNhbDogX2RlZmF1bHRSZW5kZXJFbGVtZW50cy5yZW5kZXJUcmFja1ZlcnRpY2FsRGVmYXVsdCxcbiAgICAgICAgICAgIHJlbmRlclRodW1iSG9yaXpvbnRhbDogX2RlZmF1bHRSZW5kZXJFbGVtZW50cy5yZW5kZXJUaHVtYkhvcml6b250YWxEZWZhdWx0LFxuICAgICAgICAgICAgcmVuZGVyVGh1bWJWZXJ0aWNhbDogX2RlZmF1bHRSZW5kZXJFbGVtZW50cy5yZW5kZXJUaHVtYlZlcnRpY2FsRGVmYXVsdCxcbiAgICAgICAgICAgIGF1dG9IaWRlOiBmYWxzZSxcbiAgICAgICAgICAgIGF1dG9IaWRlVGltZW91dDogMTAwMCxcbiAgICAgICAgICAgIGF1dG9IaWRlRHVyYXRpb246IDIwMCxcbiAgICAgICAgICAgIHRodW1iTWluU2l6ZTogMzAsXG4gICAgICAgICAgICB1bml2ZXJzYWw6IGZhbHNlXG4gICAgICAgIH07XG4gICAgfSxcbiAgICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uIGdldEluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRpZE1vdW50VW5pdmVyc2FsOiBmYWxzZVxuICAgICAgICB9O1xuICAgIH0sXG4gICAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgICB0aGlzLmFkZExpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudERpZE1vdW50VW5pdmVyc2FsKCk7XG4gICAgfSxcbiAgICBjb21wb25lbnREaWRNb3VudFVuaXZlcnNhbDogZnVuY3Rpb24gY29tcG9uZW50RGlkTW91bnRVbml2ZXJzYWwoKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVhY3Qvc29ydC1jb21wXG4gICAgICAgIHZhciB1bml2ZXJzYWwgPSB0aGlzLnByb3BzLnVuaXZlcnNhbDtcblxuICAgICAgICBpZiAoIXVuaXZlcnNhbCkgcmV0dXJuO1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgZGlkTW91bnRVbml2ZXJzYWw6IHRydWUgfSk7XG4gICAgfSxcbiAgICBjb21wb25lbnREaWRVcGRhdGU6IGZ1bmN0aW9uIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9LFxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgICAgKDAsIF9yYWYyLmNhbmNlbCkodGhpcy5yZXF1ZXN0RnJhbWUpO1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVHJhY2tzVGltZW91dCk7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5kZXRlY3RTY3JvbGxpbmdJbnRlcnZhbCk7XG4gICAgfSxcbiAgICBnZXRTY3JvbGxMZWZ0OiBmdW5jdGlvbiBnZXRTY3JvbGxMZWZ0KCkge1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuXG4gICAgICAgIHJldHVybiB2aWV3LnNjcm9sbExlZnQ7XG4gICAgfSxcbiAgICBnZXRTY3JvbGxUb3A6IGZ1bmN0aW9uIGdldFNjcm9sbFRvcCgpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICByZXR1cm4gdmlldy5zY3JvbGxUb3A7XG4gICAgfSxcbiAgICBnZXRTY3JvbGxXaWR0aDogZnVuY3Rpb24gZ2V0U2Nyb2xsV2lkdGgoKSB7XG4gICAgICAgIHZhciB2aWV3ID0gdGhpcy5yZWZzLnZpZXc7XG5cbiAgICAgICAgcmV0dXJuIHZpZXcuc2Nyb2xsV2lkdGg7XG4gICAgfSxcbiAgICBnZXRTY3JvbGxIZWlnaHQ6IGZ1bmN0aW9uIGdldFNjcm9sbEhlaWdodCgpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICByZXR1cm4gdmlldy5zY3JvbGxIZWlnaHQ7XG4gICAgfSxcbiAgICBnZXRDbGllbnRXaWR0aDogZnVuY3Rpb24gZ2V0Q2xpZW50V2lkdGgoKSB7XG4gICAgICAgIHZhciB2aWV3ID0gdGhpcy5yZWZzLnZpZXc7XG5cbiAgICAgICAgcmV0dXJuIHZpZXcuY2xpZW50V2lkdGg7XG4gICAgfSxcbiAgICBnZXRDbGllbnRIZWlnaHQ6IGZ1bmN0aW9uIGdldENsaWVudEhlaWdodCgpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICByZXR1cm4gdmlldy5jbGllbnRIZWlnaHQ7XG4gICAgfSxcbiAgICBnZXRWYWx1ZXM6IGZ1bmN0aW9uIGdldFZhbHVlcygpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcbiAgICAgICAgdmFyIHNjcm9sbExlZnQgPSB2aWV3LnNjcm9sbExlZnQ7XG4gICAgICAgIHZhciBzY3JvbGxUb3AgPSB2aWV3LnNjcm9sbFRvcDtcbiAgICAgICAgdmFyIHNjcm9sbFdpZHRoID0gdmlldy5zY3JvbGxXaWR0aDtcbiAgICAgICAgdmFyIHNjcm9sbEhlaWdodCA9IHZpZXcuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB2YXIgY2xpZW50V2lkdGggPSB2aWV3LmNsaWVudFdpZHRoO1xuICAgICAgICB2YXIgY2xpZW50SGVpZ2h0ID0gdmlldy5jbGllbnRIZWlnaHQ7XG5cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGVmdDogc2Nyb2xsTGVmdCAvIChzY3JvbGxXaWR0aCAtIGNsaWVudFdpZHRoKSB8fCAwLFxuICAgICAgICAgICAgdG9wOiBzY3JvbGxUb3AgLyAoc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0KSB8fCAwLFxuICAgICAgICAgICAgc2Nyb2xsTGVmdDogc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG9wLFxuICAgICAgICAgICAgc2Nyb2xsV2lkdGg6IHNjcm9sbFdpZHRoLFxuICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0OiBzY3JvbGxIZWlnaHQsXG4gICAgICAgICAgICBjbGllbnRXaWR0aDogY2xpZW50V2lkdGgsXG4gICAgICAgICAgICBjbGllbnRIZWlnaHQ6IGNsaWVudEhlaWdodFxuICAgICAgICB9O1xuICAgIH0sXG4gICAgZ2V0VGh1bWJIb3Jpem9udGFsV2lkdGg6IGZ1bmN0aW9uIGdldFRodW1iSG9yaXpvbnRhbFdpZHRoKCkge1xuICAgICAgICB2YXIgX3Byb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHRodW1iU2l6ZSA9IF9wcm9wcy50aHVtYlNpemU7XG4gICAgICAgIHZhciB0aHVtYk1pblNpemUgPSBfcHJvcHMudGh1bWJNaW5TaXplO1xuICAgICAgICB2YXIgX3JlZnMgPSB0aGlzLnJlZnM7XG4gICAgICAgIHZhciB2aWV3ID0gX3JlZnMudmlldztcbiAgICAgICAgdmFyIHRyYWNrSG9yaXpvbnRhbCA9IF9yZWZzLnRyYWNrSG9yaXpvbnRhbDtcbiAgICAgICAgdmFyIHNjcm9sbFdpZHRoID0gdmlldy5zY3JvbGxXaWR0aDtcbiAgICAgICAgdmFyIGNsaWVudFdpZHRoID0gdmlldy5jbGllbnRXaWR0aDtcblxuICAgICAgICB2YXIgdHJhY2tXaWR0aCA9ICgwLCBfZ2V0SW5uZXJXaWR0aDIuZGVmYXVsdCkodHJhY2tIb3Jpem9udGFsKTtcbiAgICAgICAgdmFyIHdpZHRoID0gY2xpZW50V2lkdGggLyBzY3JvbGxXaWR0aCAqIHRyYWNrV2lkdGg7XG4gICAgICAgIGlmICh0cmFja1dpZHRoID09PSB3aWR0aCkgcmV0dXJuIDA7XG4gICAgICAgIGlmICh0aHVtYlNpemUpIHJldHVybiB0aHVtYlNpemU7XG4gICAgICAgIHJldHVybiBNYXRoLm1heCh3aWR0aCwgdGh1bWJNaW5TaXplKTtcbiAgICB9LFxuICAgIGdldFRodW1iVmVydGljYWxIZWlnaHQ6IGZ1bmN0aW9uIGdldFRodW1iVmVydGljYWxIZWlnaHQoKSB7XG4gICAgICAgIHZhciBfcHJvcHMyID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIHRodW1iU2l6ZSA9IF9wcm9wczIudGh1bWJTaXplO1xuICAgICAgICB2YXIgdGh1bWJNaW5TaXplID0gX3Byb3BzMi50aHVtYk1pblNpemU7XG4gICAgICAgIHZhciBfcmVmczIgPSB0aGlzLnJlZnM7XG4gICAgICAgIHZhciB2aWV3ID0gX3JlZnMyLnZpZXc7XG4gICAgICAgIHZhciB0cmFja1ZlcnRpY2FsID0gX3JlZnMyLnRyYWNrVmVydGljYWw7XG4gICAgICAgIHZhciBzY3JvbGxIZWlnaHQgPSB2aWV3LnNjcm9sbEhlaWdodDtcbiAgICAgICAgdmFyIGNsaWVudEhlaWdodCA9IHZpZXcuY2xpZW50SGVpZ2h0O1xuXG4gICAgICAgIHZhciB0cmFja0hlaWdodCA9ICgwLCBfZ2V0SW5uZXJIZWlnaHQyLmRlZmF1bHQpKHRyYWNrVmVydGljYWwpO1xuICAgICAgICB2YXIgaGVpZ2h0ID0gY2xpZW50SGVpZ2h0IC8gc2Nyb2xsSGVpZ2h0ICogdHJhY2tIZWlnaHQ7XG4gICAgICAgIGlmICh0cmFja0hlaWdodCA9PT0gaGVpZ2h0KSByZXR1cm4gMDtcbiAgICAgICAgaWYgKHRodW1iU2l6ZSkgcmV0dXJuIHRodW1iU2l6ZTtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGhlaWdodCwgdGh1bWJNaW5TaXplKTtcbiAgICB9LFxuICAgIGdldFNjcm9sbExlZnRGb3JPZmZzZXQ6IGZ1bmN0aW9uIGdldFNjcm9sbExlZnRGb3JPZmZzZXQob2Zmc2V0KSB7XG4gICAgICAgIHZhciBfcmVmczMgPSB0aGlzLnJlZnM7XG4gICAgICAgIHZhciB2aWV3ID0gX3JlZnMzLnZpZXc7XG4gICAgICAgIHZhciB0cmFja0hvcml6b250YWwgPSBfcmVmczMudHJhY2tIb3Jpem9udGFsO1xuICAgICAgICB2YXIgc2Nyb2xsV2lkdGggPSB2aWV3LnNjcm9sbFdpZHRoO1xuICAgICAgICB2YXIgY2xpZW50V2lkdGggPSB2aWV3LmNsaWVudFdpZHRoO1xuXG4gICAgICAgIHZhciB0cmFja1dpZHRoID0gKDAsIF9nZXRJbm5lcldpZHRoMi5kZWZhdWx0KSh0cmFja0hvcml6b250YWwpO1xuICAgICAgICB2YXIgdGh1bWJXaWR0aCA9IHRoaXMuZ2V0VGh1bWJIb3Jpem9udGFsV2lkdGgoKTtcbiAgICAgICAgcmV0dXJuIG9mZnNldCAvICh0cmFja1dpZHRoIC0gdGh1bWJXaWR0aCkgKiAoc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCk7XG4gICAgfSxcbiAgICBnZXRTY3JvbGxUb3BGb3JPZmZzZXQ6IGZ1bmN0aW9uIGdldFNjcm9sbFRvcEZvck9mZnNldChvZmZzZXQpIHtcbiAgICAgICAgdmFyIF9yZWZzNCA9IHRoaXMucmVmcztcbiAgICAgICAgdmFyIHZpZXcgPSBfcmVmczQudmlldztcbiAgICAgICAgdmFyIHRyYWNrVmVydGljYWwgPSBfcmVmczQudHJhY2tWZXJ0aWNhbDtcbiAgICAgICAgdmFyIHNjcm9sbEhlaWdodCA9IHZpZXcuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICB2YXIgY2xpZW50SGVpZ2h0ID0gdmlldy5jbGllbnRIZWlnaHQ7XG5cbiAgICAgICAgdmFyIHRyYWNrSGVpZ2h0ID0gKDAsIF9nZXRJbm5lckhlaWdodDIuZGVmYXVsdCkodHJhY2tWZXJ0aWNhbCk7XG4gICAgICAgIHZhciB0aHVtYkhlaWdodCA9IHRoaXMuZ2V0VGh1bWJWZXJ0aWNhbEhlaWdodCgpO1xuICAgICAgICByZXR1cm4gb2Zmc2V0IC8gKHRyYWNrSGVpZ2h0IC0gdGh1bWJIZWlnaHQpICogKHNjcm9sbEhlaWdodCAtIGNsaWVudEhlaWdodCk7XG4gICAgfSxcbiAgICBzY3JvbGxMZWZ0OiBmdW5jdGlvbiBzY3JvbGxMZWZ0KCkge1xuICAgICAgICB2YXIgbGVmdCA9IGFyZ3VtZW50cy5sZW5ndGggPD0gMCB8fCBhcmd1bWVudHNbMF0gPT09IHVuZGVmaW5lZCA/IDAgOiBhcmd1bWVudHNbMF07XG4gICAgICAgIHZhciB2aWV3ID0gdGhpcy5yZWZzLnZpZXc7XG5cbiAgICAgICAgdmlldy5zY3JvbGxMZWZ0ID0gbGVmdDtcbiAgICB9LFxuICAgIHNjcm9sbFRvcDogZnVuY3Rpb24gc2Nyb2xsVG9wKCkge1xuICAgICAgICB2YXIgdG9wID0gYXJndW1lbnRzLmxlbmd0aCA8PSAwIHx8IGFyZ3VtZW50c1swXSA9PT0gdW5kZWZpbmVkID8gMCA6IGFyZ3VtZW50c1swXTtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICB2aWV3LnNjcm9sbFRvcCA9IHRvcDtcbiAgICB9LFxuICAgIHNjcm9sbFRvTGVmdDogZnVuY3Rpb24gc2Nyb2xsVG9MZWZ0KCkge1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuXG4gICAgICAgIHZpZXcuc2Nyb2xsTGVmdCA9IDA7XG4gICAgfSxcbiAgICBzY3JvbGxUb1RvcDogZnVuY3Rpb24gc2Nyb2xsVG9Ub3AoKSB7XG4gICAgICAgIHZhciB2aWV3ID0gdGhpcy5yZWZzLnZpZXc7XG5cbiAgICAgICAgdmlldy5zY3JvbGxUb3AgPSAwO1xuICAgIH0sXG4gICAgc2Nyb2xsVG9SaWdodDogZnVuY3Rpb24gc2Nyb2xsVG9SaWdodCgpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcblxuICAgICAgICB2aWV3LnNjcm9sbExlZnQgPSB2aWV3LnNjcm9sbFdpZHRoO1xuICAgIH0sXG4gICAgc2Nyb2xsVG9Cb3R0b206IGZ1bmN0aW9uIHNjcm9sbFRvQm90dG9tKCkge1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuXG4gICAgICAgIHZpZXcuc2Nyb2xsVG9wID0gdmlldy5zY3JvbGxIZWlnaHQ7XG4gICAgfSxcbiAgICBhZGRMaXN0ZW5lcnM6IGZ1bmN0aW9uIGFkZExpc3RlbmVycygpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgICAgIHZhciBfcmVmczUgPSB0aGlzLnJlZnM7XG4gICAgICAgIHZhciB2aWV3ID0gX3JlZnM1LnZpZXc7XG4gICAgICAgIHZhciB0cmFja0hvcml6b250YWwgPSBfcmVmczUudHJhY2tIb3Jpem9udGFsO1xuICAgICAgICB2YXIgdHJhY2tWZXJ0aWNhbCA9IF9yZWZzNS50cmFja1ZlcnRpY2FsO1xuICAgICAgICB2YXIgdGh1bWJIb3Jpem9udGFsID0gX3JlZnM1LnRodW1iSG9yaXpvbnRhbDtcbiAgICAgICAgdmFyIHRodW1iVmVydGljYWwgPSBfcmVmczUudGh1bWJWZXJ0aWNhbDtcblxuICAgICAgICB2aWV3LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuaGFuZGxlU2Nyb2xsKTtcbiAgICAgICAgaWYgKCEoMCwgX2dldFNjcm9sbGJhcldpZHRoMi5kZWZhdWx0KSgpKSByZXR1cm47XG4gICAgICAgIHRyYWNrSG9yaXpvbnRhbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5oYW5kbGVUcmFja01vdXNlRW50ZXIpO1xuICAgICAgICB0cmFja0hvcml6b250YWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsIHRoaXMuaGFuZGxlVHJhY2tNb3VzZUxlYXZlKTtcbiAgICAgICAgdHJhY2tIb3Jpem9udGFsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGFuZGxlSG9yaXpvbnRhbFRyYWNrTW91c2VEb3duKTtcbiAgICAgICAgdHJhY2tWZXJ0aWNhbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWVudGVyJywgdGhpcy5oYW5kbGVUcmFja01vdXNlRW50ZXIpO1xuICAgICAgICB0cmFja1ZlcnRpY2FsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLmhhbmRsZVRyYWNrTW91c2VMZWF2ZSk7XG4gICAgICAgIHRyYWNrVmVydGljYWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5oYW5kbGVWZXJ0aWNhbFRyYWNrTW91c2VEb3duKTtcbiAgICAgICAgdGh1bWJIb3Jpem9udGFsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGFuZGxlSG9yaXpvbnRhbFRodW1iTW91c2VEb3duKTtcbiAgICAgICAgdGh1bWJWZXJ0aWNhbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZVZlcnRpY2FsVGh1bWJNb3VzZURvd24pO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5oYW5kbGVXaW5kb3dSZXNpemUpO1xuICAgIH0sXG4gICAgcmVtb3ZlTGlzdGVuZXJzOiBmdW5jdGlvbiByZW1vdmVMaXN0ZW5lcnMoKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICAgICAgICB2YXIgX3JlZnM2ID0gdGhpcy5yZWZzO1xuICAgICAgICB2YXIgdmlldyA9IF9yZWZzNi52aWV3O1xuICAgICAgICB2YXIgdHJhY2tIb3Jpem9udGFsID0gX3JlZnM2LnRyYWNrSG9yaXpvbnRhbDtcbiAgICAgICAgdmFyIHRyYWNrVmVydGljYWwgPSBfcmVmczYudHJhY2tWZXJ0aWNhbDtcbiAgICAgICAgdmFyIHRodW1iSG9yaXpvbnRhbCA9IF9yZWZzNi50aHVtYkhvcml6b250YWw7XG4gICAgICAgIHZhciB0aHVtYlZlcnRpY2FsID0gX3JlZnM2LnRodW1iVmVydGljYWw7XG5cbiAgICAgICAgdmlldy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLmhhbmRsZVNjcm9sbCk7XG4gICAgICAgIGlmICghKDAsIF9nZXRTY3JvbGxiYXJXaWR0aDIuZGVmYXVsdCkoKSkgcmV0dXJuO1xuICAgICAgICB0cmFja0hvcml6b250YWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuaGFuZGxlVHJhY2tNb3VzZUVudGVyKTtcbiAgICAgICAgdHJhY2tIb3Jpem9udGFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCB0aGlzLmhhbmRsZVRyYWNrTW91c2VMZWF2ZSk7XG4gICAgICAgIHRyYWNrSG9yaXpvbnRhbC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZUhvcml6b250YWxUcmFja01vdXNlRG93bik7XG4gICAgICAgIHRyYWNrVmVydGljYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIHRoaXMuaGFuZGxlVHJhY2tNb3VzZUVudGVyKTtcbiAgICAgICAgdHJhY2tWZXJ0aWNhbC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgdGhpcy5oYW5kbGVUcmFja01vdXNlTGVhdmUpO1xuICAgICAgICB0cmFja1ZlcnRpY2FsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuaGFuZGxlVmVydGljYWxUcmFja01vdXNlRG93bik7XG4gICAgICAgIHRodW1iSG9yaXpvbnRhbC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmhhbmRsZUhvcml6b250YWxUaHVtYk1vdXNlRG93bik7XG4gICAgICAgIHRodW1iVmVydGljYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5oYW5kbGVWZXJ0aWNhbFRodW1iTW91c2VEb3duKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKTtcbiAgICAgICAgLy8gUG9zc2libHkgc2V0dXAgYnkgYGhhbmRsZURyYWdTdGFydGBcbiAgICAgICAgdGhpcy50ZWFyZG93bkRyYWdnaW5nKCk7XG4gICAgfSxcbiAgICBoYW5kbGVTY3JvbGw6IGZ1bmN0aW9uIGhhbmRsZVNjcm9sbChldmVudCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgICAgIHZhciBfcHJvcHMzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdmFyIG9uU2Nyb2xsID0gX3Byb3BzMy5vblNjcm9sbDtcbiAgICAgICAgdmFyIG9uU2Nyb2xsRnJhbWUgPSBfcHJvcHMzLm9uU2Nyb2xsRnJhbWU7XG5cbiAgICAgICAgaWYgKG9uU2Nyb2xsKSBvblNjcm9sbChldmVudCk7XG4gICAgICAgIHRoaXMudXBkYXRlKGZ1bmN0aW9uICh2YWx1ZXMpIHtcbiAgICAgICAgICAgIHZhciBzY3JvbGxMZWZ0ID0gdmFsdWVzLnNjcm9sbExlZnQ7XG4gICAgICAgICAgICB2YXIgc2Nyb2xsVG9wID0gdmFsdWVzLnNjcm9sbFRvcDtcblxuICAgICAgICAgICAgX3RoaXMudmlld1Njcm9sbExlZnQgPSBzY3JvbGxMZWZ0O1xuICAgICAgICAgICAgX3RoaXMudmlld1Njcm9sbFRvcCA9IHNjcm9sbFRvcDtcbiAgICAgICAgICAgIGlmIChvblNjcm9sbEZyYW1lKSBvblNjcm9sbEZyYW1lKHZhbHVlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRldGVjdFNjcm9sbGluZygpO1xuICAgIH0sXG4gICAgaGFuZGxlU2Nyb2xsU3RhcnQ6IGZ1bmN0aW9uIGhhbmRsZVNjcm9sbFN0YXJ0KCkge1xuICAgICAgICB2YXIgb25TY3JvbGxTdGFydCA9IHRoaXMucHJvcHMub25TY3JvbGxTdGFydDtcblxuICAgICAgICBpZiAob25TY3JvbGxTdGFydCkgb25TY3JvbGxTdGFydCgpO1xuICAgICAgICB0aGlzLmhhbmRsZVNjcm9sbFN0YXJ0QXV0b0hpZGUoKTtcbiAgICB9LFxuICAgIGhhbmRsZVNjcm9sbFN0YXJ0QXV0b0hpZGU6IGZ1bmN0aW9uIGhhbmRsZVNjcm9sbFN0YXJ0QXV0b0hpZGUoKSB7XG4gICAgICAgIHZhciBhdXRvSGlkZSA9IHRoaXMucHJvcHMuYXV0b0hpZGU7XG5cbiAgICAgICAgaWYgKCFhdXRvSGlkZSkgcmV0dXJuO1xuICAgICAgICB0aGlzLnNob3dUcmFja3MoKTtcbiAgICB9LFxuICAgIGhhbmRsZVNjcm9sbFN0b3A6IGZ1bmN0aW9uIGhhbmRsZVNjcm9sbFN0b3AoKSB7XG4gICAgICAgIHZhciBvblNjcm9sbFN0b3AgPSB0aGlzLnByb3BzLm9uU2Nyb2xsU3RvcDtcblxuICAgICAgICBpZiAob25TY3JvbGxTdG9wKSBvblNjcm9sbFN0b3AoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVTY3JvbGxTdG9wQXV0b0hpZGUoKTtcbiAgICB9LFxuICAgIGhhbmRsZVNjcm9sbFN0b3BBdXRvSGlkZTogZnVuY3Rpb24gaGFuZGxlU2Nyb2xsU3RvcEF1dG9IaWRlKCkge1xuICAgICAgICB2YXIgYXV0b0hpZGUgPSB0aGlzLnByb3BzLmF1dG9IaWRlO1xuXG4gICAgICAgIGlmICghYXV0b0hpZGUpIHJldHVybjtcbiAgICAgICAgdGhpcy5oaWRlVHJhY2tzKCk7XG4gICAgfSxcbiAgICBoYW5kbGVXaW5kb3dSZXNpemU6IGZ1bmN0aW9uIGhhbmRsZVdpbmRvd1Jlc2l6ZSgpIHtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9LFxuICAgIGhhbmRsZUhvcml6b250YWxUcmFja01vdXNlRG93bjogZnVuY3Rpb24gaGFuZGxlSG9yaXpvbnRhbFRyYWNrTW91c2VEb3duKCkge1xuICAgICAgICB2YXIgdmlldyA9IHRoaXMucmVmcy52aWV3O1xuICAgICAgICB2YXIgX2V2ZW50ID0gZXZlbnQ7XG4gICAgICAgIHZhciB0YXJnZXQgPSBfZXZlbnQudGFyZ2V0O1xuICAgICAgICB2YXIgY2xpZW50WCA9IF9ldmVudC5jbGllbnRYO1xuXG4gICAgICAgIHZhciBfdGFyZ2V0JGdldEJvdW5kaW5nQ2wgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgdmFyIHRhcmdldExlZnQgPSBfdGFyZ2V0JGdldEJvdW5kaW5nQ2wubGVmdDtcblxuICAgICAgICB2YXIgdGh1bWJXaWR0aCA9IHRoaXMuZ2V0VGh1bWJIb3Jpem9udGFsV2lkdGgoKTtcbiAgICAgICAgdmFyIG9mZnNldCA9IE1hdGguYWJzKHRhcmdldExlZnQgLSBjbGllbnRYKSAtIHRodW1iV2lkdGggLyAyO1xuICAgICAgICB2aWV3LnNjcm9sbExlZnQgPSB0aGlzLmdldFNjcm9sbExlZnRGb3JPZmZzZXQob2Zmc2V0KTtcbiAgICB9LFxuICAgIGhhbmRsZVZlcnRpY2FsVHJhY2tNb3VzZURvd246IGZ1bmN0aW9uIGhhbmRsZVZlcnRpY2FsVHJhY2tNb3VzZURvd24oZXZlbnQpIHtcbiAgICAgICAgdmFyIHZpZXcgPSB0aGlzLnJlZnMudmlldztcbiAgICAgICAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgdmFyIGNsaWVudFkgPSBldmVudC5jbGllbnRZO1xuXG4gICAgICAgIHZhciBfdGFyZ2V0JGdldEJvdW5kaW5nQ2wyID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIHZhciB0YXJnZXRUb3AgPSBfdGFyZ2V0JGdldEJvdW5kaW5nQ2wyLnRvcDtcblxuICAgICAgICB2YXIgdGh1bWJIZWlnaHQgPSB0aGlzLmdldFRodW1iVmVydGljYWxIZWlnaHQoKTtcbiAgICAgICAgdmFyIG9mZnNldCA9IE1hdGguYWJzKHRhcmdldFRvcCAtIGNsaWVudFkpIC0gdGh1bWJIZWlnaHQgLyAyO1xuICAgICAgICB2aWV3LnNjcm9sbFRvcCA9IHRoaXMuZ2V0U2Nyb2xsVG9wRm9yT2Zmc2V0KG9mZnNldCk7XG4gICAgfSxcbiAgICBoYW5kbGVIb3Jpem9udGFsVGh1bWJNb3VzZURvd246IGZ1bmN0aW9uIGhhbmRsZUhvcml6b250YWxUaHVtYk1vdXNlRG93bihldmVudCkge1xuICAgICAgICB0aGlzLmhhbmRsZURyYWdTdGFydChldmVudCk7XG4gICAgICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIHZhciBjbGllbnRYID0gZXZlbnQuY2xpZW50WDtcbiAgICAgICAgdmFyIG9mZnNldFdpZHRoID0gdGFyZ2V0Lm9mZnNldFdpZHRoO1xuXG4gICAgICAgIHZhciBfdGFyZ2V0JGdldEJvdW5kaW5nQ2wzID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIHZhciBsZWZ0ID0gX3RhcmdldCRnZXRCb3VuZGluZ0NsMy5sZWZ0O1xuXG4gICAgICAgIHRoaXMucHJldlBhZ2VYID0gb2Zmc2V0V2lkdGggLSAoY2xpZW50WCAtIGxlZnQpO1xuICAgIH0sXG4gICAgaGFuZGxlVmVydGljYWxUaHVtYk1vdXNlRG93bjogZnVuY3Rpb24gaGFuZGxlVmVydGljYWxUaHVtYk1vdXNlRG93bihldmVudCkge1xuICAgICAgICB0aGlzLmhhbmRsZURyYWdTdGFydChldmVudCk7XG4gICAgICAgIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIHZhciBjbGllbnRZID0gZXZlbnQuY2xpZW50WTtcbiAgICAgICAgdmFyIG9mZnNldEhlaWdodCA9IHRhcmdldC5vZmZzZXRIZWlnaHQ7XG5cbiAgICAgICAgdmFyIF90YXJnZXQkZ2V0Qm91bmRpbmdDbDQgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgdmFyIHRvcCA9IF90YXJnZXQkZ2V0Qm91bmRpbmdDbDQudG9wO1xuXG4gICAgICAgIHRoaXMucHJldlBhZ2VZID0gb2Zmc2V0SGVpZ2h0IC0gKGNsaWVudFkgLSB0b3ApO1xuICAgIH0sXG4gICAgc2V0dXBEcmFnZ2luZzogZnVuY3Rpb24gc2V0dXBEcmFnZ2luZygpIHtcbiAgICAgICAgKDAsIF9kb21Dc3MyLmRlZmF1bHQpKGRvY3VtZW50LmJvZHksIF9zdHlsZXMuZGlzYWJsZVNlbGVjdFN0eWxlKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5oYW5kbGVEcmFnKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuaGFuZGxlRHJhZ0VuZCk7XG4gICAgICAgIGRvY3VtZW50Lm9uc2VsZWN0c3RhcnQgPSBfcmV0dXJuRmFsc2UyLmRlZmF1bHQ7XG4gICAgfSxcbiAgICB0ZWFyZG93bkRyYWdnaW5nOiBmdW5jdGlvbiB0ZWFyZG93bkRyYWdnaW5nKCkge1xuICAgICAgICAoMCwgX2RvbUNzczIuZGVmYXVsdCkoZG9jdW1lbnQuYm9keSwgX3N0eWxlcy5kaXNhYmxlU2VsZWN0U3R5bGVSZXNldCk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuaGFuZGxlRHJhZyk7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmhhbmRsZURyYWdFbmQpO1xuICAgICAgICBkb2N1bWVudC5vbnNlbGVjdHN0YXJ0ID0gdW5kZWZpbmVkO1xuICAgIH0sXG4gICAgaGFuZGxlRHJhZ1N0YXJ0OiBmdW5jdGlvbiBoYW5kbGVEcmFnU3RhcnQoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5kcmFnZ2luZyA9IHRydWU7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNldHVwRHJhZ2dpbmcoKTtcbiAgICB9LFxuICAgIGhhbmRsZURyYWc6IGZ1bmN0aW9uIGhhbmRsZURyYWcoZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucHJldlBhZ2VYKSB7XG4gICAgICAgICAgICB2YXIgY2xpZW50WCA9IGV2ZW50LmNsaWVudFg7XG4gICAgICAgICAgICB2YXIgX3JlZnM3ID0gdGhpcy5yZWZzO1xuICAgICAgICAgICAgdmFyIHZpZXcgPSBfcmVmczcudmlldztcbiAgICAgICAgICAgIHZhciB0cmFja0hvcml6b250YWwgPSBfcmVmczcudHJhY2tIb3Jpem9udGFsO1xuXG4gICAgICAgICAgICB2YXIgX3RyYWNrSG9yaXpvbnRhbCRnZXRCID0gdHJhY2tIb3Jpem9udGFsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICB2YXIgdHJhY2tMZWZ0ID0gX3RyYWNrSG9yaXpvbnRhbCRnZXRCLmxlZnQ7XG5cbiAgICAgICAgICAgIHZhciB0aHVtYldpZHRoID0gdGhpcy5nZXRUaHVtYkhvcml6b250YWxXaWR0aCgpO1xuICAgICAgICAgICAgdmFyIGNsaWNrUG9zaXRpb24gPSB0aHVtYldpZHRoIC0gdGhpcy5wcmV2UGFnZVg7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gLXRyYWNrTGVmdCArIGNsaWVudFggLSBjbGlja1Bvc2l0aW9uO1xuICAgICAgICAgICAgdmlldy5zY3JvbGxMZWZ0ID0gdGhpcy5nZXRTY3JvbGxMZWZ0Rm9yT2Zmc2V0KG9mZnNldCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucHJldlBhZ2VZKSB7XG4gICAgICAgICAgICB2YXIgY2xpZW50WSA9IGV2ZW50LmNsaWVudFk7XG4gICAgICAgICAgICB2YXIgX3JlZnM4ID0gdGhpcy5yZWZzO1xuICAgICAgICAgICAgdmFyIHZpZXcgPSBfcmVmczgudmlldztcbiAgICAgICAgICAgIHZhciB0cmFja1ZlcnRpY2FsID0gX3JlZnM4LnRyYWNrVmVydGljYWw7XG5cbiAgICAgICAgICAgIHZhciBfdHJhY2tWZXJ0aWNhbCRnZXRCb3UgPSB0cmFja1ZlcnRpY2FsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICB2YXIgdHJhY2tUb3AgPSBfdHJhY2tWZXJ0aWNhbCRnZXRCb3UudG9wO1xuXG4gICAgICAgICAgICB2YXIgdGh1bWJIZWlnaHQgPSB0aGlzLmdldFRodW1iVmVydGljYWxIZWlnaHQoKTtcbiAgICAgICAgICAgIHZhciBjbGlja1Bvc2l0aW9uID0gdGh1bWJIZWlnaHQgLSB0aGlzLnByZXZQYWdlWTtcbiAgICAgICAgICAgIHZhciBvZmZzZXQgPSAtdHJhY2tUb3AgKyBjbGllbnRZIC0gY2xpY2tQb3NpdGlvbjtcbiAgICAgICAgICAgIHZpZXcuc2Nyb2xsVG9wID0gdGhpcy5nZXRTY3JvbGxUb3BGb3JPZmZzZXQob2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcbiAgICBoYW5kbGVEcmFnRW5kOiBmdW5jdGlvbiBoYW5kbGVEcmFnRW5kKCkge1xuICAgICAgICB0aGlzLmRyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMucHJldlBhZ2VYID0gdGhpcy5wcmV2UGFnZVkgPSAwO1xuICAgICAgICB0aGlzLnRlYXJkb3duRHJhZ2dpbmcoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVEcmFnRW5kQXV0b0hpZGUoKTtcbiAgICB9LFxuICAgIGhhbmRsZURyYWdFbmRBdXRvSGlkZTogZnVuY3Rpb24gaGFuZGxlRHJhZ0VuZEF1dG9IaWRlKCkge1xuICAgICAgICB2YXIgYXV0b0hpZGUgPSB0aGlzLnByb3BzLmF1dG9IaWRlO1xuXG4gICAgICAgIGlmICghYXV0b0hpZGUpIHJldHVybjtcbiAgICAgICAgdGhpcy5oaWRlVHJhY2tzKCk7XG4gICAgfSxcbiAgICBoYW5kbGVUcmFja01vdXNlRW50ZXI6IGZ1bmN0aW9uIGhhbmRsZVRyYWNrTW91c2VFbnRlcigpIHtcbiAgICAgICAgdGhpcy50cmFja01vdXNlT3ZlciA9IHRydWU7XG4gICAgICAgIHRoaXMuaGFuZGxlVHJhY2tNb3VzZUVudGVyQXV0b0hpZGUoKTtcbiAgICB9LFxuICAgIGhhbmRsZVRyYWNrTW91c2VFbnRlckF1dG9IaWRlOiBmdW5jdGlvbiBoYW5kbGVUcmFja01vdXNlRW50ZXJBdXRvSGlkZSgpIHtcbiAgICAgICAgdmFyIGF1dG9IaWRlID0gdGhpcy5wcm9wcy5hdXRvSGlkZTtcblxuICAgICAgICBpZiAoIWF1dG9IaWRlKSByZXR1cm47XG4gICAgICAgIHRoaXMuc2hvd1RyYWNrcygpO1xuICAgIH0sXG4gICAgaGFuZGxlVHJhY2tNb3VzZUxlYXZlOiBmdW5jdGlvbiBoYW5kbGVUcmFja01vdXNlTGVhdmUoKSB7XG4gICAgICAgIHRoaXMudHJhY2tNb3VzZU92ZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oYW5kbGVUcmFja01vdXNlTGVhdmVBdXRvSGlkZSgpO1xuICAgIH0sXG4gICAgaGFuZGxlVHJhY2tNb3VzZUxlYXZlQXV0b0hpZGU6IGZ1bmN0aW9uIGhhbmRsZVRyYWNrTW91c2VMZWF2ZUF1dG9IaWRlKCkge1xuICAgICAgICB2YXIgYXV0b0hpZGUgPSB0aGlzLnByb3BzLmF1dG9IaWRlO1xuXG4gICAgICAgIGlmICghYXV0b0hpZGUpIHJldHVybjtcbiAgICAgICAgdGhpcy5oaWRlVHJhY2tzKCk7XG4gICAgfSxcbiAgICBzaG93VHJhY2tzOiBmdW5jdGlvbiBzaG93VHJhY2tzKCkge1xuICAgICAgICB2YXIgX3JlZnM5ID0gdGhpcy5yZWZzO1xuICAgICAgICB2YXIgdHJhY2tIb3Jpem9udGFsID0gX3JlZnM5LnRyYWNrSG9yaXpvbnRhbDtcbiAgICAgICAgdmFyIHRyYWNrVmVydGljYWwgPSBfcmVmczkudHJhY2tWZXJ0aWNhbDtcblxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVHJhY2tzVGltZW91dCk7XG4gICAgICAgICgwLCBfZG9tQ3NzMi5kZWZhdWx0KSh0cmFja0hvcml6b250YWwsIHsgb3BhY2l0eTogMSB9KTtcbiAgICAgICAgKDAsIF9kb21Dc3MyLmRlZmF1bHQpKHRyYWNrVmVydGljYWwsIHsgb3BhY2l0eTogMSB9KTtcbiAgICB9LFxuICAgIGhpZGVUcmFja3M6IGZ1bmN0aW9uIGhpZGVUcmFja3MoKSB7XG4gICAgICAgIGlmICh0aGlzLmRyYWdnaW5nKSByZXR1cm47XG4gICAgICAgIGlmICh0aGlzLnNjcm9sbGluZykgcmV0dXJuO1xuICAgICAgICBpZiAodGhpcy50cmFja01vdXNlT3ZlcikgcmV0dXJuO1xuICAgICAgICB2YXIgYXV0b0hpZGVUaW1lb3V0ID0gdGhpcy5wcm9wcy5hdXRvSGlkZVRpbWVvdXQ7XG4gICAgICAgIHZhciBfcmVmczEwID0gdGhpcy5yZWZzO1xuICAgICAgICB2YXIgdHJhY2tIb3Jpem9udGFsID0gX3JlZnMxMC50cmFja0hvcml6b250YWw7XG4gICAgICAgIHZhciB0cmFja1ZlcnRpY2FsID0gX3JlZnMxMC50cmFja1ZlcnRpY2FsO1xuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmhpZGVUcmFja3NUaW1lb3V0KTtcbiAgICAgICAgdGhpcy5oaWRlVHJhY2tzVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgKDAsIF9kb21Dc3MyLmRlZmF1bHQpKHRyYWNrSG9yaXpvbnRhbCwgeyBvcGFjaXR5OiAwIH0pO1xuICAgICAgICAgICAgKDAsIF9kb21Dc3MyLmRlZmF1bHQpKHRyYWNrVmVydGljYWwsIHsgb3BhY2l0eTogMCB9KTtcbiAgICAgICAgfSwgYXV0b0hpZGVUaW1lb3V0KTtcbiAgICB9LFxuICAgIGRldGVjdFNjcm9sbGluZzogZnVuY3Rpb24gZGV0ZWN0U2Nyb2xsaW5nKCkge1xuICAgICAgICB2YXIgX3RoaXMyID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5zY3JvbGxpbmcpIHJldHVybjtcbiAgICAgICAgdGhpcy5zY3JvbGxpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmhhbmRsZVNjcm9sbFN0YXJ0KCk7XG4gICAgICAgIHRoaXMuZGV0ZWN0U2Nyb2xsaW5nSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoX3RoaXMyLmxhc3RWaWV3U2Nyb2xsTGVmdCA9PT0gX3RoaXMyLnZpZXdTY3JvbGxMZWZ0ICYmIF90aGlzMi5sYXN0Vmlld1Njcm9sbFRvcCA9PT0gX3RoaXMyLnZpZXdTY3JvbGxUb3ApIHtcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKF90aGlzMi5kZXRlY3RTY3JvbGxpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgX3RoaXMyLnNjcm9sbGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIF90aGlzMi5oYW5kbGVTY3JvbGxTdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfdGhpczIubGFzdFZpZXdTY3JvbGxMZWZ0ID0gX3RoaXMyLnZpZXdTY3JvbGxMZWZ0O1xuICAgICAgICAgICAgX3RoaXMyLmxhc3RWaWV3U2Nyb2xsVG9wID0gX3RoaXMyLnZpZXdTY3JvbGxUb3A7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfSxcbiAgICByYWY6IGZ1bmN0aW9uIHJhZihjYWxsYmFjaykge1xuICAgICAgICB2YXIgX3RoaXMzID0gdGhpcztcblxuICAgICAgICBpZiAodGhpcy5yZXF1ZXN0RnJhbWUpIF9yYWYzLmRlZmF1bHQuY2FuY2VsKHRoaXMucmVxdWVzdEZyYW1lKTtcbiAgICAgICAgdGhpcy5yZXF1ZXN0RnJhbWUgPSAoMCwgX3JhZjMuZGVmYXVsdCkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgX3RoaXMzLnJlcXVlc3RGcmFtZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNhbGxiYWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUoY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIF90aGlzNCA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5yYWYoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlcyA9IF90aGlzNC5nZXRWYWx1ZXMoKTtcbiAgICAgICAgICAgIGlmICgoMCwgX2dldFNjcm9sbGJhcldpZHRoMi5kZWZhdWx0KSgpKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9yZWZzMTEgPSBfdGhpczQucmVmcztcbiAgICAgICAgICAgICAgICB2YXIgdGh1bWJIb3Jpem9udGFsID0gX3JlZnMxMS50aHVtYkhvcml6b250YWw7XG4gICAgICAgICAgICAgICAgdmFyIHRodW1iVmVydGljYWwgPSBfcmVmczExLnRodW1iVmVydGljYWw7XG4gICAgICAgICAgICAgICAgdmFyIHRyYWNrSG9yaXpvbnRhbCA9IF9yZWZzMTEudHJhY2tIb3Jpem9udGFsO1xuICAgICAgICAgICAgICAgIHZhciB0cmFja1ZlcnRpY2FsID0gX3JlZnMxMS50cmFja1ZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIHZhciBzY3JvbGxMZWZ0ID0gdmFsdWVzLnNjcm9sbExlZnQ7XG4gICAgICAgICAgICAgICAgdmFyIGNsaWVudFdpZHRoID0gdmFsdWVzLmNsaWVudFdpZHRoO1xuICAgICAgICAgICAgICAgIHZhciBzY3JvbGxXaWR0aCA9IHZhbHVlcy5zY3JvbGxXaWR0aDtcblxuICAgICAgICAgICAgICAgIHZhciB0cmFja0hvcml6b250YWxXaWR0aCA9ICgwLCBfZ2V0SW5uZXJXaWR0aDIuZGVmYXVsdCkodHJhY2tIb3Jpem9udGFsKTtcbiAgICAgICAgICAgICAgICB2YXIgdGh1bWJIb3Jpem9udGFsV2lkdGggPSBfdGhpczQuZ2V0VGh1bWJIb3Jpem9udGFsV2lkdGgoKTtcbiAgICAgICAgICAgICAgICB2YXIgdGh1bWJIb3Jpem9udGFsWCA9IHNjcm9sbExlZnQgLyAoc2Nyb2xsV2lkdGggLSBjbGllbnRXaWR0aCkgKiAodHJhY2tIb3Jpem9udGFsV2lkdGggLSB0aHVtYkhvcml6b250YWxXaWR0aCk7XG4gICAgICAgICAgICAgICAgdmFyIHRodW1iSG9yaXpvbnRhbFN0eWxlID0ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdGh1bWJIb3Jpem9udGFsV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoJyArIHRodW1iSG9yaXpvbnRhbFggKyAncHgpJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdmFyIHNjcm9sbFRvcCA9IHZhbHVlcy5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgICAgdmFyIGNsaWVudEhlaWdodCA9IHZhbHVlcy5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgdmFyIHNjcm9sbEhlaWdodCA9IHZhbHVlcy5zY3JvbGxIZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICB2YXIgdHJhY2tWZXJ0aWNhbEhlaWdodCA9ICgwLCBfZ2V0SW5uZXJIZWlnaHQyLmRlZmF1bHQpKHRyYWNrVmVydGljYWwpO1xuICAgICAgICAgICAgICAgIHZhciB0aHVtYlZlcnRpY2FsSGVpZ2h0ID0gX3RoaXM0LmdldFRodW1iVmVydGljYWxIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgdGh1bWJWZXJ0aWNhbFkgPSBzY3JvbGxUb3AgLyAoc2Nyb2xsSGVpZ2h0IC0gY2xpZW50SGVpZ2h0KSAqICh0cmFja1ZlcnRpY2FsSGVpZ2h0IC0gdGh1bWJWZXJ0aWNhbEhlaWdodCk7XG4gICAgICAgICAgICAgICAgdmFyIHRodW1iVmVydGljYWxTdHlsZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aHVtYlZlcnRpY2FsSGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKCcgKyB0aHVtYlZlcnRpY2FsWSArICdweCknXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAoMCwgX2RvbUNzczIuZGVmYXVsdCkodGh1bWJIb3Jpem9udGFsLCB0aHVtYkhvcml6b250YWxTdHlsZSk7XG4gICAgICAgICAgICAgICAgKDAsIF9kb21Dc3MyLmRlZmF1bHQpKHRodW1iVmVydGljYWwsIHRodW1iVmVydGljYWxTdHlsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSByZXR1cm47XG4gICAgICAgICAgICBjYWxsYmFjayh2YWx1ZXMpO1xuICAgICAgICB9KTtcbiAgICB9LFxuICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICB2YXIgc2Nyb2xsYmFyV2lkdGggPSAoMCwgX2dldFNjcm9sbGJhcldpZHRoMi5kZWZhdWx0KSgpO1xuICAgICAgICB2YXIgX3Byb3BzNCA9IHRoaXMucHJvcHM7XG4gICAgICAgIHZhciBvblNjcm9sbCA9IF9wcm9wczQub25TY3JvbGw7XG4gICAgICAgIHZhciBvblNjcm9sbEZyYW1lID0gX3Byb3BzNC5vblNjcm9sbEZyYW1lO1xuICAgICAgICB2YXIgb25TY3JvbGxTdGFydCA9IF9wcm9wczQub25TY3JvbGxTdGFydDtcbiAgICAgICAgdmFyIG9uU2Nyb2xsU3RvcCA9IF9wcm9wczQub25TY3JvbGxTdG9wO1xuICAgICAgICB2YXIgcmVuZGVyVmlldyA9IF9wcm9wczQucmVuZGVyVmlldztcbiAgICAgICAgdmFyIHJlbmRlclRyYWNrSG9yaXpvbnRhbCA9IF9wcm9wczQucmVuZGVyVHJhY2tIb3Jpem9udGFsO1xuICAgICAgICB2YXIgcmVuZGVyVHJhY2tWZXJ0aWNhbCA9IF9wcm9wczQucmVuZGVyVHJhY2tWZXJ0aWNhbDtcbiAgICAgICAgdmFyIHJlbmRlclRodW1iSG9yaXpvbnRhbCA9IF9wcm9wczQucmVuZGVyVGh1bWJIb3Jpem9udGFsO1xuICAgICAgICB2YXIgcmVuZGVyVGh1bWJWZXJ0aWNhbCA9IF9wcm9wczQucmVuZGVyVGh1bWJWZXJ0aWNhbDtcbiAgICAgICAgdmFyIGF1dG9IaWRlID0gX3Byb3BzNC5hdXRvSGlkZTtcbiAgICAgICAgdmFyIGF1dG9IaWRlVGltZW91dCA9IF9wcm9wczQuYXV0b0hpZGVUaW1lb3V0O1xuICAgICAgICB2YXIgYXV0b0hpZGVEdXJhdGlvbiA9IF9wcm9wczQuYXV0b0hpZGVEdXJhdGlvbjtcbiAgICAgICAgdmFyIHRodW1iU2l6ZSA9IF9wcm9wczQudGh1bWJTaXplO1xuICAgICAgICB2YXIgdGh1bWJNaW5TaXplID0gX3Byb3BzNC50aHVtYk1pblNpemU7XG4gICAgICAgIHZhciB1bml2ZXJzYWwgPSBfcHJvcHM0LnVuaXZlcnNhbDtcbiAgICAgICAgdmFyIHN0eWxlID0gX3Byb3BzNC5zdHlsZTtcbiAgICAgICAgdmFyIGNoaWxkcmVuID0gX3Byb3BzNC5jaGlsZHJlbjtcblxuICAgICAgICB2YXIgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3Byb3BzNCwgWydvblNjcm9sbCcsICdvblNjcm9sbEZyYW1lJywgJ29uU2Nyb2xsU3RhcnQnLCAnb25TY3JvbGxTdG9wJywgJ3JlbmRlclZpZXcnLCAncmVuZGVyVHJhY2tIb3Jpem9udGFsJywgJ3JlbmRlclRyYWNrVmVydGljYWwnLCAncmVuZGVyVGh1bWJIb3Jpem9udGFsJywgJ3JlbmRlclRodW1iVmVydGljYWwnLCAnYXV0b0hpZGUnLCAnYXV0b0hpZGVUaW1lb3V0JywgJ2F1dG9IaWRlRHVyYXRpb24nLCAndGh1bWJTaXplJywgJ3RodW1iTWluU2l6ZScsICd1bml2ZXJzYWwnLCAnc3R5bGUnLCAnY2hpbGRyZW4nXSk7XG5cbiAgICAgICAgdmFyIGRpZE1vdW50VW5pdmVyc2FsID0gdGhpcy5zdGF0ZS5kaWRNb3VudFVuaXZlcnNhbDtcblxuXG4gICAgICAgIHZhciBjb250YWluZXJTdHlsZSA9IF9leHRlbmRzKHt9LCBfc3R5bGVzLmNvbnRhaW5lclN0eWxlRGVmYXVsdCwgc3R5bGUpO1xuXG4gICAgICAgIHZhciB2aWV3U3R5bGUgPSBfZXh0ZW5kcyh7fSwgX3N0eWxlcy52aWV3U3R5bGVEZWZhdWx0LCBzY3JvbGxiYXJXaWR0aCA/IHsgcmlnaHQ6IC1zY3JvbGxiYXJXaWR0aCwgYm90dG9tOiAtc2Nyb2xsYmFyV2lkdGggfSA6IHsgcmlnaHQ6IDAsIGJvdHRvbTogMCB9LCB1bml2ZXJzYWwgJiYgIWRpZE1vdW50VW5pdmVyc2FsID8gX3N0eWxlcy52aWV3U3R5bGVVbml2ZXJzYWxJbml0aWFsIDogdW5kZWZpbmVkKTtcblxuICAgICAgICB2YXIgdHJhY2tIb3Jpem9udGFsU3R5bGUgPSBfZXh0ZW5kcyh7fSwgX3N0eWxlcy50cmFja0hvcml6b250YWxTdHlsZURlZmF1bHQsIGF1dG9IaWRlID8geyB0cmFuc2l0aW9uOiAnb3BhY2l0eSAnICsgYXV0b0hpZGVEdXJhdGlvbiArICdtcycsIG9wYWNpdHk6IDAgfSA6IHVuZGVmaW5lZCwgIXNjcm9sbGJhcldpZHRoIHx8IHVuaXZlcnNhbCAmJiAhZGlkTW91bnRVbml2ZXJzYWwgPyB7IGRpc3BsYXk6ICdub25lJyB9IDogdW5kZWZpbmVkKTtcblxuICAgICAgICB2YXIgdHJhY2tWZXJ0aWNhbFN0eWxlID0gX2V4dGVuZHMoe30sIF9zdHlsZXMudHJhY2tWZXJ0aWNhbFN0eWxlRGVmYXVsdCwgYXV0b0hpZGUgPyB7IHRyYW5zaXRpb246ICdvcGFjaXR5ICcgKyBhdXRvSGlkZUR1cmF0aW9uICsgJ21zJywgb3BhY2l0eTogMCB9IDogdW5kZWZpbmVkLCAhc2Nyb2xsYmFyV2lkdGggfHwgdW5pdmVyc2FsICYmICFkaWRNb3VudFVuaXZlcnNhbCA/IHsgZGlzcGxheTogJ25vbmUnIH0gOiB1bmRlZmluZWQpO1xuXG4gICAgICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudChcbiAgICAgICAgICAgICdkaXYnLFxuICAgICAgICAgICAgX2V4dGVuZHMoe30sIHByb3BzLCB7IHN0eWxlOiBjb250YWluZXJTdHlsZSwgcmVmOiAnY29udGFpbmVyJyB9KSxcbiAgICAgICAgICAgICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShyZW5kZXJWaWV3KHsgc3R5bGU6IHZpZXdTdHlsZSB9KSwgeyByZWY6ICd2aWV3JyB9LCBjaGlsZHJlbiksXG4gICAgICAgICAgICAoMCwgX3JlYWN0LmNsb25lRWxlbWVudCkocmVuZGVyVHJhY2tIb3Jpem9udGFsKHsgc3R5bGU6IHRyYWNrSG9yaXpvbnRhbFN0eWxlIH0pLCB7IHJlZjogJ3RyYWNrSG9yaXpvbnRhbCcgfSwgKDAsIF9yZWFjdC5jbG9uZUVsZW1lbnQpKHJlbmRlclRodW1iSG9yaXpvbnRhbCh7IHN0eWxlOiBfc3R5bGVzLnRodW1iSG9yaXpvbnRhbFN0eWxlRGVmYXVsdCB9KSwgeyByZWY6ICd0aHVtYkhvcml6b250YWwnIH0pKSxcbiAgICAgICAgICAgICgwLCBfcmVhY3QuY2xvbmVFbGVtZW50KShyZW5kZXJUcmFja1ZlcnRpY2FsKHsgc3R5bGU6IHRyYWNrVmVydGljYWxTdHlsZSB9KSwgeyByZWY6ICd0cmFja1ZlcnRpY2FsJyB9LCAoMCwgX3JlYWN0LmNsb25lRWxlbWVudCkocmVuZGVyVGh1bWJWZXJ0aWNhbCh7IHN0eWxlOiBfc3R5bGVzLnRodW1iVmVydGljYWxTdHlsZURlZmF1bHQgfSksIHsgcmVmOiAndGh1bWJWZXJ0aWNhbCcgfSkpXG4gICAgICAgICk7XG4gICAgfVxufSk7XG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvbGliL1Njcm9sbGJhcnMvaW5kZXguanNcbiAqKiBtb2R1bGUgaWQgPSAyNzNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
+
+/***/ },
+/* 274 */
+/***/ function(module, exports, __webpack_require__) {
+
+ eval("var now = __webpack_require__(275)\n , global = typeof window === 'undefined' ? {} : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = global['request' + suffix]\n , caf = global['cancel' + suffix] || global['cancelRequest' + suffix]\n\nfor(var i = 0; i < vendors.length && !raf; i++) {\n raf = global[vendors[i] + 'Request' + suffix]\n caf = global[vendors[i] + 'Cancel' + suffix]\n || global[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(global, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(global, arguments)\n}\n//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vcmFmL2luZGV4LmpzP2UyYjkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSwrQ0FBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsY0FBYyw0QkFBNEI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsZUFBZTtBQUNyQztBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IscUNBQXFDLFVBQVU7QUFDL0M7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIyNzQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbm93ID0gcmVxdWlyZSgncGVyZm9ybWFuY2Utbm93JylcbiAgLCBnbG9iYWwgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/IHt9IDogd2luZG93XG4gICwgdmVuZG9ycyA9IFsnbW96JywgJ3dlYmtpdCddXG4gICwgc3VmZml4ID0gJ0FuaW1hdGlvbkZyYW1lJ1xuICAsIHJhZiA9IGdsb2JhbFsncmVxdWVzdCcgKyBzdWZmaXhdXG4gICwgY2FmID0gZ2xvYmFsWydjYW5jZWwnICsgc3VmZml4XSB8fCBnbG9iYWxbJ2NhbmNlbFJlcXVlc3QnICsgc3VmZml4XVxuXG5mb3IodmFyIGkgPSAwOyBpIDwgdmVuZG9ycy5sZW5ndGggJiYgIXJhZjsgaSsrKSB7XG4gIHJhZiA9IGdsb2JhbFt2ZW5kb3JzW2ldICsgJ1JlcXVlc3QnICsgc3VmZml4XVxuICBjYWYgPSBnbG9iYWxbdmVuZG9yc1tpXSArICdDYW5jZWwnICsgc3VmZml4XVxuICAgICAgfHwgZ2xvYmFsW3ZlbmRvcnNbaV0gKyAnQ2FuY2VsUmVxdWVzdCcgKyBzdWZmaXhdXG59XG5cbi8vIFNvbWUgdmVyc2lvbnMgb2YgRkYgaGF2ZSByQUYgYnV0IG5vdCBjQUZcbmlmKCFyYWYgfHwgIWNhZikge1xuICB2YXIgbGFzdCA9IDBcbiAgICAsIGlkID0gMFxuICAgICwgcXVldWUgPSBbXVxuICAgICwgZnJhbWVEdXJhdGlvbiA9IDEwMDAgLyA2MFxuXG4gIHJhZiA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgaWYocXVldWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YXIgX25vdyA9IG5vdygpXG4gICAgICAgICwgbmV4dCA9IE1hdGgubWF4KDAsIGZyYW1lRHVyYXRpb24gLSAoX25vdyAtIGxhc3QpKVxuICAgICAgbGFzdCA9IG5leHQgKyBfbm93XG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgY3AgPSBxdWV1ZS5zbGljZSgwKVxuICAgICAgICAvLyBDbGVhciBxdWV1ZSBoZXJlIHRvIHByZXZlbnRcbiAgICAgICAgLy8gY2FsbGJhY2tzIGZyb20gYXBwZW5kaW5nIGxpc3RlbmVyc1xuICAgICAgICAvLyB0byB0aGUgY3VycmVudCBmcmFtZSdzIHF1ZXVlXG4gICAgICAgIHF1ZXVlLmxlbmd0aCA9IDBcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGNwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYoIWNwW2ldLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgdHJ5e1xuICAgICAgICAgICAgICBjcFtpXS5jYWxsYmFjayhsYXN0KVxuICAgICAgICAgICAgfSBjYXRjaChlKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93IGUgfSwgMClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIE1hdGgucm91bmQobmV4dCkpXG4gICAgfVxuICAgIHF1ZXVlLnB1c2goe1xuICAgICAgaGFuZGxlOiArK2lkLFxuICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgICAgY2FuY2VsbGVkOiBmYWxzZVxuICAgIH0pXG4gICAgcmV0dXJuIGlkXG4gIH1cblxuICBjYWYgPSBmdW5jdGlvbihoYW5kbGUpIHtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgcXVldWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmKHF1ZXVlW2ldLmhhbmRsZSA9PT0gaGFuZGxlKSB7XG4gICAgICAgIHF1ZXVlW2ldLmNhbmNlbGxlZCA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihmbikge1xuICAvLyBXcmFwIGluIGEgbmV3IGZ1bmN0aW9uIHRvIHByZXZlbnRcbiAgLy8gYGNhbmNlbGAgcG90ZW50aWFsbHkgYmVpbmcgYXNzaWduZWRcbiAgLy8gdG8gdGhlIG5hdGl2ZSByQUYgZnVuY3Rpb25cbiAgcmV0dXJuIHJhZi5jYWxsKGdsb2JhbCwgZm4pXG59XG5tb2R1bGUuZXhwb3J0cy5jYW5jZWwgPSBmdW5jdGlvbigpIHtcbiAgY2FmLmFwcGx5KGdsb2JhbCwgYXJndW1lbnRzKVxufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvfi9yYWYvaW5kZXguanNcbiAqKiBtb2R1bGUgaWQgPSAyNzRcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
+
+/***/ },
+/* 275 */
+/***/ function(module, exports, __webpack_require__) {
+
+ eval("/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.7.1\n(function() {\n var getNanoSeconds, hrtime, loadTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(185)))//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vcmFmL34vcGVyZm9ybWFuY2Utbm93L2xpYi9wZXJmb3JtYW5jZS1ub3cuanM/YTRlOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxDQUFDIiwiZmlsZSI6IjI3NS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjFcbihmdW5jdGlvbigpIHtcbiAgdmFyIGdldE5hbm9TZWNvbmRzLCBocnRpbWUsIGxvYWRUaW1lO1xuXG4gIGlmICgodHlwZW9mIHBlcmZvcm1hbmNlICE9PSBcInVuZGVmaW5lZFwiICYmIHBlcmZvcm1hbmNlICE9PSBudWxsKSAmJiBwZXJmb3JtYW5jZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MgIT09IG51bGwpICYmIHByb2Nlc3MuaHJ0aW1lKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiAoZ2V0TmFub1NlY29uZHMoKSAtIGxvYWRUaW1lKSAvIDFlNjtcbiAgICB9O1xuICAgIGhydGltZSA9IHByb2Nlc3MuaHJ0aW1lO1xuICAgIGdldE5hbm9TZWNvbmRzID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgaHI7XG4gICAgICBociA9IGhydGltZSgpO1xuICAgICAgcmV0dXJuIGhyWzBdICogMWU5ICsgaHJbMV07XG4gICAgfTtcbiAgICBsb2FkVGltZSA9IGdldE5hbm9TZWNvbmRzKCk7XG4gIH0gZWxzZSBpZiAoRGF0ZS5ub3cpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIERhdGUubm93KCkgLSBsb2FkVGltZTtcbiAgICB9O1xuICAgIGxvYWRUaW1lID0gRGF0ZS5ub3coKTtcbiAgfSBlbHNlIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gbG9hZFRpbWU7XG4gICAgfTtcbiAgICBsb2FkVGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICB9XG5cbn0pLmNhbGwodGhpcyk7XG5cblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vfi9yZWFjdC1jdXN0b20tc2Nyb2xsYmFycy9+L3JhZi9+L3BlcmZvcm1hbmNlLW5vdy9saWIvcGVyZm9ybWFuY2Utbm93LmpzXG4gKiogbW9kdWxlIGlkID0gMjc1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
+
+/***/ },
+/* 276 */
+/***/ function(module, exports, __webpack_require__) {
+
+ eval("var prefix = __webpack_require__(277)\nvar toCamelCase = __webpack_require__(278)\nvar cache = { 'float': 'cssFloat' }\nvar addPxToStyle = __webpack_require__(281)\n\nfunction style (element, property, value) {\n var camel = cache[property]\n if (typeof camel === 'undefined') {\n camel = detect(property)\n }\n\n // may be false if CSS prop is unsupported\n if (camel) {\n if (value === undefined) {\n return element.style[camel]\n }\n\n element.style[camel] = addPxToStyle(camel, value)\n }\n}\n\nfunction each (element, properties) {\n for (var k in properties) {\n if (properties.hasOwnProperty(k)) {\n style(element, k, properties[k])\n }\n }\n}\n\nfunction detect (cssProp) {\n var camel = toCamelCase(cssProp)\n var result = prefix(camel)\n cache[camel] = cache[cssProp] = cache[result] = result\n return result\n}\n\nfunction set () {\n if (arguments.length === 2) {\n each(arguments[0], arguments[1])\n } else {\n style(arguments[0], arguments[1], arguments[2])\n }\n}\n\nmodule.exports = set\nmodule.exports.set = set\n\nmodule.exports.get = function (element, properties) {\n if (Array.isArray(properties)) {\n return properties.reduce(function (obj, prop) {\n obj[prop] = style(element, prop || '')\n return obj\n }, {})\n } else {\n return style(element, properties || '')\n }\n}\n//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9pbmRleC5qcz9hMDZlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLElBQUk7QUFDVCxHQUFHO0FBQ0g7QUFDQTtBQUNBIiwiZmlsZSI6IjI3Ni5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBwcmVmaXggPSByZXF1aXJlKCdwcmVmaXgtc3R5bGUnKVxudmFyIHRvQ2FtZWxDYXNlID0gcmVxdWlyZSgndG8tY2FtZWwtY2FzZScpXG52YXIgY2FjaGUgPSB7ICdmbG9hdCc6ICdjc3NGbG9hdCcgfVxudmFyIGFkZFB4VG9TdHlsZSA9IHJlcXVpcmUoJ2FkZC1weC10by1zdHlsZScpXG5cbmZ1bmN0aW9uIHN0eWxlIChlbGVtZW50LCBwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgdmFyIGNhbWVsID0gY2FjaGVbcHJvcGVydHldXG4gIGlmICh0eXBlb2YgY2FtZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY2FtZWwgPSBkZXRlY3QocHJvcGVydHkpXG4gIH1cblxuICAvLyBtYXkgYmUgZmFsc2UgaWYgQ1NTIHByb3AgaXMgdW5zdXBwb3J0ZWRcbiAgaWYgKGNhbWVsKSB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBlbGVtZW50LnN0eWxlW2NhbWVsXVxuICAgIH1cblxuICAgIGVsZW1lbnQuc3R5bGVbY2FtZWxdID0gYWRkUHhUb1N0eWxlKGNhbWVsLCB2YWx1ZSlcbiAgfVxufVxuXG5mdW5jdGlvbiBlYWNoIChlbGVtZW50LCBwcm9wZXJ0aWVzKSB7XG4gIGZvciAodmFyIGsgaW4gcHJvcGVydGllcykge1xuICAgIGlmIChwcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICBzdHlsZShlbGVtZW50LCBrLCBwcm9wZXJ0aWVzW2tdKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkZXRlY3QgKGNzc1Byb3ApIHtcbiAgdmFyIGNhbWVsID0gdG9DYW1lbENhc2UoY3NzUHJvcClcbiAgdmFyIHJlc3VsdCA9IHByZWZpeChjYW1lbClcbiAgY2FjaGVbY2FtZWxdID0gY2FjaGVbY3NzUHJvcF0gPSBjYWNoZVtyZXN1bHRdID0gcmVzdWx0XG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gc2V0ICgpIHtcbiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICBlYWNoKGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdKVxuICB9IGVsc2Uge1xuICAgIHN0eWxlKGFyZ3VtZW50c1swXSwgYXJndW1lbnRzWzFdLCBhcmd1bWVudHNbMl0pXG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXRcbm1vZHVsZS5leHBvcnRzLnNldCA9IHNldFxuXG5tb2R1bGUuZXhwb3J0cy5nZXQgPSBmdW5jdGlvbiAoZWxlbWVudCwgcHJvcGVydGllcykge1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0aWVzKSkge1xuICAgIHJldHVybiBwcm9wZXJ0aWVzLnJlZHVjZShmdW5jdGlvbiAob2JqLCBwcm9wKSB7XG4gICAgICBvYmpbcHJvcF0gPSBzdHlsZShlbGVtZW50LCBwcm9wIHx8ICcnKVxuICAgICAgcmV0dXJuIG9ialxuICAgIH0sIHt9KVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBzdHlsZShlbGVtZW50LCBwcm9wZXJ0aWVzIHx8ICcnKVxuICB9XG59XG5cblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vfi9yZWFjdC1jdXN0b20tc2Nyb2xsYmFycy9+L2RvbS1jc3MvaW5kZXguanNcbiAqKiBtb2R1bGUgaWQgPSAyNzZcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
+
+/***/ },
+/* 277 */
+/***/ function(module, exports) {
+
+ eval("var div = null\nvar prefixes = [ 'Webkit', 'Moz', 'O', 'ms' ]\n\nmodule.exports = function prefixStyle (prop) {\n // re-use a dummy div\n if (!div) {\n div = document.createElement('div')\n }\n\n var style = div.style\n\n // prop exists without prefix\n if (prop in style) {\n return prop\n }\n\n // borderRadius -> BorderRadius\n var titleCase = prop.charAt(0).toUpperCase() + prop.slice(1)\n\n // find the vendor-prefixed prop\n for (var i = prefixes.length; i >= 0; i--) {\n var name = prefixes[i] + titleCase\n // e.g. WebkitBorderRadius or webkitBorderRadius\n if (name in style) {\n return name\n }\n }\n\n return false\n}\n//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L3ByZWZpeC1zdHlsZS9pbmRleC5qcz80NjQ1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsK0JBQStCLFFBQVE7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJmaWxlIjoiMjc3LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIGRpdiA9IG51bGxcbnZhciBwcmVmaXhlcyA9IFsgJ1dlYmtpdCcsICdNb3onLCAnTycsICdtcycgXVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHByZWZpeFN0eWxlIChwcm9wKSB7XG4gIC8vIHJlLXVzZSBhIGR1bW15IGRpdlxuICBpZiAoIWRpdikge1xuICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIH1cblxuICB2YXIgc3R5bGUgPSBkaXYuc3R5bGVcblxuICAvLyBwcm9wIGV4aXN0cyB3aXRob3V0IHByZWZpeFxuICBpZiAocHJvcCBpbiBzdHlsZSkge1xuICAgIHJldHVybiBwcm9wXG4gIH1cblxuICAvLyBib3JkZXJSYWRpdXMgLT4gQm9yZGVyUmFkaXVzXG4gIHZhciB0aXRsZUNhc2UgPSBwcm9wLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcHJvcC5zbGljZSgxKVxuXG4gIC8vIGZpbmQgdGhlIHZlbmRvci1wcmVmaXhlZCBwcm9wXG4gIGZvciAodmFyIGkgPSBwcmVmaXhlcy5sZW5ndGg7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIG5hbWUgPSBwcmVmaXhlc1tpXSArIHRpdGxlQ2FzZVxuICAgIC8vIGUuZy4gV2Via2l0Qm9yZGVyUmFkaXVzIG9yIHdlYmtpdEJvcmRlclJhZGl1c1xuICAgIGlmIChuYW1lIGluIHN0eWxlKSB7XG4gICAgICByZXR1cm4gbmFtZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvfi9kb20tY3NzL34vcHJlZml4LXN0eWxlL2luZGV4LmpzXG4gKiogbW9kdWxlIGlkID0gMjc3XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
+
+/***/ },
+/* 278 */
+/***/ function(module, exports, __webpack_require__) {
+
+ eval("\nvar toSpace = __webpack_require__(!(function webpackMissingModule() { var e = new Error(\"Cannot find module \\\"to-space-case\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e; }()));\n\n\n/**\n * Expose `toCamelCase`.\n */\n\nmodule.exports = toCamelCase;\n\n\n/**\n * Convert a `string` to camel case.\n *\n * @param {String} string\n * @return {String}\n */\n\n\nfunction toCamelCase (string) {\n return toSpace(string).replace(/\\s(\\w)/g, function (matches, letter) {\n return letter.toUpperCase();\n });\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L3RvLWNhbWVsLWNhc2UvaW5kZXguanM/OTA5ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFlBQVk7QUFDWjs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6IjI3OC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxudmFyIHRvU3BhY2UgPSByZXF1aXJlKCd0by1zcGFjZS1jYXNlJyk7XG5cblxuLyoqXG4gKiBFeHBvc2UgYHRvQ2FtZWxDYXNlYC5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cyA9IHRvQ2FtZWxDYXNlO1xuXG5cbi8qKlxuICogQ29udmVydCBhIGBzdHJpbmdgIHRvIGNhbWVsIGNhc2UuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0cmluZ1xuICogQHJldHVybiB7U3RyaW5nfVxuICovXG5cblxuZnVuY3Rpb24gdG9DYW1lbENhc2UgKHN0cmluZykge1xuICByZXR1cm4gdG9TcGFjZShzdHJpbmcpLnJlcGxhY2UoL1xccyhcXHcpL2csIGZ1bmN0aW9uIChtYXRjaGVzLCBsZXR0ZXIpIHtcbiAgICByZXR1cm4gbGV0dGVyLnRvVXBwZXJDYXNlKCk7XG4gIH0pO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L3RvLWNhbWVsLWNhc2UvaW5kZXguanNcbiAqKiBtb2R1bGUgaWQgPSAyNzhcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
+
+/***/ },
+/* 279 */,
+/* 280 */,
+/* 281 */
+/***/ function(module, exports) {
+
+ eval("/* The following list is defined in React's core */\nvar IS_UNITLESS = {\n animationIterationCount: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridColumn: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n\n // SVG-related properties\n fillOpacity: true,\n stopOpacity: true,\n strokeDashoffset: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n\nmodule.exports = function(name, value) {\n if(typeof value === 'number' && !IS_UNITLESS[ name ]) {\n return value + 'px';\n } else {\n return value;\n }\n};//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L2FkZC1weC10by1zdHlsZS9pbmRleC5qcz8yMDkyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EiLCJmaWxlIjoiMjgxLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogVGhlIGZvbGxvd2luZyBsaXN0IGlzIGRlZmluZWQgaW4gUmVhY3QncyBjb3JlICovXG52YXIgSVNfVU5JVExFU1MgPSB7XG4gIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiB0cnVlLFxuICBib3hGbGV4OiB0cnVlLFxuICBib3hGbGV4R3JvdXA6IHRydWUsXG4gIGJveE9yZGluYWxHcm91cDogdHJ1ZSxcbiAgY29sdW1uQ291bnQ6IHRydWUsXG4gIGZsZXg6IHRydWUsXG4gIGZsZXhHcm93OiB0cnVlLFxuICBmbGV4UG9zaXRpdmU6IHRydWUsXG4gIGZsZXhTaHJpbms6IHRydWUsXG4gIGZsZXhOZWdhdGl2ZTogdHJ1ZSxcbiAgZmxleE9yZGVyOiB0cnVlLFxuICBncmlkUm93OiB0cnVlLFxuICBncmlkQ29sdW1uOiB0cnVlLFxuICBmb250V2VpZ2h0OiB0cnVlLFxuICBsaW5lQ2xhbXA6IHRydWUsXG4gIGxpbmVIZWlnaHQ6IHRydWUsXG4gIG9wYWNpdHk6IHRydWUsXG4gIG9yZGVyOiB0cnVlLFxuICBvcnBoYW5zOiB0cnVlLFxuICB0YWJTaXplOiB0cnVlLFxuICB3aWRvd3M6IHRydWUsXG4gIHpJbmRleDogdHJ1ZSxcbiAgem9vbTogdHJ1ZSxcblxuICAvLyBTVkctcmVsYXRlZCBwcm9wZXJ0aWVzXG4gIGZpbGxPcGFjaXR5OiB0cnVlLFxuICBzdG9wT3BhY2l0eTogdHJ1ZSxcbiAgc3Ryb2tlRGFzaG9mZnNldDogdHJ1ZSxcbiAgc3Ryb2tlT3BhY2l0eTogdHJ1ZSxcbiAgc3Ryb2tlV2lkdGg6IHRydWVcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHtcbiAgaWYodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiAhSVNfVU5JVExFU1NbIG5hbWUgXSkge1xuICAgIHJldHVybiB2YWx1ZSArICdweCc7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL34vZG9tLWNzcy9+L2FkZC1weC10by1zdHlsZS9pbmRleC5qc1xuICoqIG1vZHVsZSBpZCA9IDI4MVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ==");
+
+/***/ },
+/* 282 */
+/***/ function(module, exports, __webpack_require__) {
+
+ eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getScrollbarWidth;\n\nvar _domCss = __webpack_require__(276);\n\nvar _domCss2 = _interopRequireDefault(_domCss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollbarWidth = false;\n\nfunction getScrollbarWidth() {\n if (scrollbarWidth !== false) return scrollbarWidth;\n /* istanbul ignore else */\n if (typeof document !== 'undefined') {\n var div = document.createElement('div');\n (0, _domCss2.default)(div, {\n width: 100,\n height: 100,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll',\n MsOverflowStyle: 'scrollbar'\n });\n document.body.appendChild(div);\n scrollbarWidth = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n } else {\n scrollbarWidth = 0;\n }\n return scrollbarWidth;\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi91dGlscy9nZXRTY3JvbGxiYXJXaWR0aC5qcz84YTJlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7O0FBRUE7O0FBRUE7O0FBRUEsc0NBQXNDLHVDQUF1QyxnQkFBZ0I7O0FBRTdGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMjgyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBnZXRTY3JvbGxiYXJXaWR0aDtcblxudmFyIF9kb21Dc3MgPSByZXF1aXJlKCdkb20tY3NzJyk7XG5cbnZhciBfZG9tQ3NzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RvbUNzcyk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbnZhciBzY3JvbGxiYXJXaWR0aCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBnZXRTY3JvbGxiYXJXaWR0aCgpIHtcbiAgICBpZiAoc2Nyb2xsYmFyV2lkdGggIT09IGZhbHNlKSByZXR1cm4gc2Nyb2xsYmFyV2lkdGg7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICgwLCBfZG9tQ3NzMi5kZWZhdWx0KShkaXYsIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAsXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCxcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgdG9wOiAtOTk5OSxcbiAgICAgICAgICAgIG92ZXJmbG93OiAnc2Nyb2xsJyxcbiAgICAgICAgICAgIE1zT3ZlcmZsb3dTdHlsZTogJ3Njcm9sbGJhcidcbiAgICAgICAgfSk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTtcbiAgICAgICAgc2Nyb2xsYmFyV2lkdGggPSBkaXYub2Zmc2V0V2lkdGggLSBkaXYuY2xpZW50V2lkdGg7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzY3JvbGxiYXJXaWR0aCA9IDA7XG4gICAgfVxuICAgIHJldHVybiBzY3JvbGxiYXJXaWR0aDtcbn1cblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4vfi9yZWFjdC1jdXN0b20tc2Nyb2xsYmFycy9saWIvdXRpbHMvZ2V0U2Nyb2xsYmFyV2lkdGguanNcbiAqKiBtb2R1bGUgaWQgPSAyODJcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
+
+/***/ },
+/* 283 */
+/***/ function(module, exports) {
+
+ eval("\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = returnFalse;\nfunction returnFalse() {\n return false;\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi91dGlscy9yZXR1cm5GYWxzZS5qcz8yMTA3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMjgzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHJldHVybkZhbHNlO1xuZnVuY3Rpb24gcmV0dXJuRmFsc2UoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi91dGlscy9yZXR1cm5GYWxzZS5qc1xuICoqIG1vZHVsZSBpZCA9IDI4M1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ==");
+
+/***/ },
+/* 284 */
+/***/ function(module, exports) {
+
+ eval("\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getInnerWidth;\nfunction getInnerWidth(el) {\n var clientWidth = el.clientWidth;\n\n var _getComputedStyle = getComputedStyle(el);\n\n var paddingLeft = _getComputedStyle.paddingLeft;\n var paddingRight = _getComputedStyle.paddingRight;\n\n return clientWidth - parseFloat(paddingLeft) - parseFloat(paddingRight);\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi91dGlscy9nZXRJbm5lcldpZHRoLmpzPzJmNjYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBIiwiZmlsZSI6IjI4NC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBnZXRJbm5lcldpZHRoO1xuZnVuY3Rpb24gZ2V0SW5uZXJXaWR0aChlbCkge1xuICAgIHZhciBjbGllbnRXaWR0aCA9IGVsLmNsaWVudFdpZHRoO1xuXG4gICAgdmFyIF9nZXRDb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbCk7XG5cbiAgICB2YXIgcGFkZGluZ0xlZnQgPSBfZ2V0Q29tcHV0ZWRTdHlsZS5wYWRkaW5nTGVmdDtcbiAgICB2YXIgcGFkZGluZ1JpZ2h0ID0gX2dldENvbXB1dGVkU3R5bGUucGFkZGluZ1JpZ2h0O1xuXG4gICAgcmV0dXJuIGNsaWVudFdpZHRoIC0gcGFyc2VGbG9hdChwYWRkaW5nTGVmdCkgLSBwYXJzZUZsb2F0KHBhZGRpbmdSaWdodCk7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvbGliL3V0aWxzL2dldElubmVyV2lkdGguanNcbiAqKiBtb2R1bGUgaWQgPSAyODRcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyJdLCJzb3VyY2VSb290IjoiIn0=");
+
+/***/ },
+/* 285 */
+/***/ function(module, exports) {
+
+ eval("\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getInnerHeight;\nfunction getInnerHeight(el) {\n var clientHeight = el.clientHeight;\n\n var _getComputedStyle = getComputedStyle(el);\n\n var paddingTop = _getComputedStyle.paddingTop;\n var paddingBottom = _getComputedStyle.paddingBottom;\n\n return clientHeight - parseFloat(paddingTop) - parseFloat(paddingBottom);\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi91dGlscy9nZXRJbm5lckhlaWdodC5qcz8xYjQ0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSIsImZpbGUiOiIyODUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gZ2V0SW5uZXJIZWlnaHQ7XG5mdW5jdGlvbiBnZXRJbm5lckhlaWdodChlbCkge1xuICAgIHZhciBjbGllbnRIZWlnaHQgPSBlbC5jbGllbnRIZWlnaHQ7XG5cbiAgICB2YXIgX2dldENvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsKTtcblxuICAgIHZhciBwYWRkaW5nVG9wID0gX2dldENvbXB1dGVkU3R5bGUucGFkZGluZ1RvcDtcbiAgICB2YXIgcGFkZGluZ0JvdHRvbSA9IF9nZXRDb21wdXRlZFN0eWxlLnBhZGRpbmdCb3R0b207XG5cbiAgICByZXR1cm4gY2xpZW50SGVpZ2h0IC0gcGFyc2VGbG9hdChwYWRkaW5nVG9wKSAtIHBhcnNlRmxvYXQocGFkZGluZ0JvdHRvbSk7XG59XG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvbGliL3V0aWxzL2dldElubmVySGVpZ2h0LmpzXG4gKiogbW9kdWxlIGlkID0gMjg1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
+
+/***/ },
+/* 286 */
+/***/ function(module, exports) {
+
+ eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar containerStyleDefault = exports.containerStyleDefault = {\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n height: '100%'\n};\n\nvar viewStyleDefault = exports.viewStyleDefault = {\n position: 'absolute',\n top: 0,\n left: 0,\n overflow: 'scroll',\n WebkitOverflowScrolling: 'touch'\n};\n\nvar viewStyleUniversalInitial = exports.viewStyleUniversalInitial = {\n right: 0,\n bottom: 0,\n overflow: 'hidden'\n};\n\nvar trackHorizontalStyleDefault = exports.trackHorizontalStyleDefault = {\n position: 'absolute',\n height: 6\n};\n\nvar trackVerticalStyleDefault = exports.trackVerticalStyleDefault = {\n position: 'absolute',\n width: 6\n};\n\nvar thumbHorizontalStyleDefault = exports.thumbHorizontalStyleDefault = {\n position: 'relative',\n display: 'block',\n height: '100%'\n};\n\nvar thumbVerticalStyleDefault = exports.thumbVerticalStyleDefault = {\n position: 'relative',\n display: 'block',\n width: '100%'\n};\n\nvar disableSelectStyle = exports.disableSelectStyle = {\n userSelect: 'none'\n};\n\nvar disableSelectStyleReset = exports.disableSelectStyleReset = {\n userSelect: ''\n};//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9TY3JvbGxiYXJzL3N0eWxlcy5qcz81ZTkxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiMjg2LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG52YXIgY29udGFpbmVyU3R5bGVEZWZhdWx0ID0gZXhwb3J0cy5jb250YWluZXJTdHlsZURlZmF1bHQgPSB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAgaGVpZ2h0OiAnMTAwJSdcbn07XG5cbnZhciB2aWV3U3R5bGVEZWZhdWx0ID0gZXhwb3J0cy52aWV3U3R5bGVEZWZhdWx0ID0ge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHRvcDogMCxcbiAgICBsZWZ0OiAwLFxuICAgIG92ZXJmbG93OiAnc2Nyb2xsJyxcbiAgICBXZWJraXRPdmVyZmxvd1Njcm9sbGluZzogJ3RvdWNoJ1xufTtcblxudmFyIHZpZXdTdHlsZVVuaXZlcnNhbEluaXRpYWwgPSBleHBvcnRzLnZpZXdTdHlsZVVuaXZlcnNhbEluaXRpYWwgPSB7XG4gICAgcmlnaHQ6IDAsXG4gICAgYm90dG9tOiAwLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJ1xufTtcblxudmFyIHRyYWNrSG9yaXpvbnRhbFN0eWxlRGVmYXVsdCA9IGV4cG9ydHMudHJhY2tIb3Jpem9udGFsU3R5bGVEZWZhdWx0ID0ge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIGhlaWdodDogNlxufTtcblxudmFyIHRyYWNrVmVydGljYWxTdHlsZURlZmF1bHQgPSBleHBvcnRzLnRyYWNrVmVydGljYWxTdHlsZURlZmF1bHQgPSB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgd2lkdGg6IDZcbn07XG5cbnZhciB0aHVtYkhvcml6b250YWxTdHlsZURlZmF1bHQgPSBleHBvcnRzLnRodW1iSG9yaXpvbnRhbFN0eWxlRGVmYXVsdCA9IHtcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgIGhlaWdodDogJzEwMCUnXG59O1xuXG52YXIgdGh1bWJWZXJ0aWNhbFN0eWxlRGVmYXVsdCA9IGV4cG9ydHMudGh1bWJWZXJ0aWNhbFN0eWxlRGVmYXVsdCA9IHtcbiAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgIHdpZHRoOiAnMTAwJSdcbn07XG5cbnZhciBkaXNhYmxlU2VsZWN0U3R5bGUgPSBleHBvcnRzLmRpc2FibGVTZWxlY3RTdHlsZSA9IHtcbiAgICB1c2VyU2VsZWN0OiAnbm9uZSdcbn07XG5cbnZhciBkaXNhYmxlU2VsZWN0U3R5bGVSZXNldCA9IGV4cG9ydHMuZGlzYWJsZVNlbGVjdFN0eWxlUmVzZXQgPSB7XG4gICAgdXNlclNlbGVjdDogJydcbn07XG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuL34vcmVhY3QtY3VzdG9tLXNjcm9sbGJhcnMvbGliL1Njcm9sbGJhcnMvc3R5bGVzLmpzXG4gKiogbW9kdWxlIGlkID0gMjg2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9");
+
+/***/ },
+/* 287 */
+/***/ function(module, exports, __webpack_require__) {
+
+ eval("'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.renderViewDefault = renderViewDefault;\nexports.renderTrackHorizontalDefault = renderTrackHorizontalDefault;\nexports.renderTrackVerticalDefault = renderTrackVerticalDefault;\nexports.renderThumbHorizontalDefault = renderThumbHorizontalDefault;\nexports.renderThumbVerticalDefault = renderThumbVerticalDefault;\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction renderViewDefault(props) {\n return _react2.default.createElement('div', props);\n}\n\nfunction renderTrackHorizontalDefault(_ref) {\n var style = _ref.style;\n\n var props = _objectWithoutProperties(_ref, ['style']);\n\n var finalStyle = _extends({}, style, {\n right: 2,\n bottom: 2,\n left: 2,\n borderRadius: 3,\n cursor: 'pointer'\n });\n return _react2.default.createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction renderTrackVerticalDefault(_ref2) {\n var style = _ref2.style;\n\n var props = _objectWithoutProperties(_ref2, ['style']);\n\n var finalStyle = _extends({}, style, {\n right: 2,\n bottom: 2,\n top: 2,\n borderRadius: 3,\n cursor: 'pointer'\n });\n return _react2.default.createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction renderThumbHorizontalDefault(_ref3) {\n var style = _ref3.style;\n\n var props = _objectWithoutProperties(_ref3, ['style']);\n\n var finalStyle = _extends({}, style, {\n cursor: 'pointer',\n borderRadius: 'inherit',\n backgroundColor: 'rgba(0,0,0,.2)'\n });\n return _react2.default.createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction renderThumbVerticalDefault(_ref4) {\n var style = _ref4.style;\n\n var props = _objectWithoutProperties(_ref4, ['style']);\n\n var finalStyle = _extends({}, style, {\n cursor: 'pointer',\n borderRadius: 'inherit',\n backgroundColor: 'rgba(0,0,0,.2)'\n });\n return _react2.default.createElement('div', _extends({ style: finalStyle }, props));\n}//@ sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9TY3JvbGxiYXJzL2RlZmF1bHRSZW5kZXJFbGVtZW50cy5qcz80MDE5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQSxDQUFDOztBQUVELG1EQUFtRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsMkJBQTJCLEVBQUUsRUFBRSxFQUFFLGVBQWU7O0FBRTlQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUEsc0NBQXNDLHVDQUF1QyxnQkFBZ0I7O0FBRTdGLDhDQUE4QyxpQkFBaUIscUJBQXFCLG9DQUFvQyw2REFBNkQsb0JBQW9CLEVBQUUsZUFBZTs7QUFFMU47QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUEsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsMERBQTBELG9CQUFvQjtBQUM5RTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDBEQUEwRCxvQkFBb0I7QUFDOUU7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDBEQUEwRCxvQkFBb0I7QUFDOUU7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLDBEQUEwRCxvQkFBb0I7QUFDOUUiLCJmaWxlIjoiMjg3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkgeyBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgeyB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldOyBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7IGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc291cmNlLCBrZXkpKSB7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSB9IHJldHVybiB0YXJnZXQ7IH07XG5cbmV4cG9ydHMucmVuZGVyVmlld0RlZmF1bHQgPSByZW5kZXJWaWV3RGVmYXVsdDtcbmV4cG9ydHMucmVuZGVyVHJhY2tIb3Jpem9udGFsRGVmYXVsdCA9IHJlbmRlclRyYWNrSG9yaXpvbnRhbERlZmF1bHQ7XG5leHBvcnRzLnJlbmRlclRyYWNrVmVydGljYWxEZWZhdWx0ID0gcmVuZGVyVHJhY2tWZXJ0aWNhbERlZmF1bHQ7XG5leHBvcnRzLnJlbmRlclRodW1iSG9yaXpvbnRhbERlZmF1bHQgPSByZW5kZXJUaHVtYkhvcml6b250YWxEZWZhdWx0O1xuZXhwb3J0cy5yZW5kZXJUaHVtYlZlcnRpY2FsRGVmYXVsdCA9IHJlbmRlclRodW1iVmVydGljYWxEZWZhdWx0O1xuXG52YXIgX3JlYWN0ID0gcmVxdWlyZSgncmVhY3QnKTtcblxudmFyIF9yZWFjdDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9yZWFjdCk7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhvYmosIGtleXMpIHsgdmFyIHRhcmdldCA9IHt9OyBmb3IgKHZhciBpIGluIG9iaikgeyBpZiAoa2V5cy5pbmRleE9mKGkpID49IDApIGNvbnRpbnVlOyBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGkpKSBjb250aW51ZTsgdGFyZ2V0W2ldID0gb2JqW2ldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuZnVuY3Rpb24gcmVuZGVyVmlld0RlZmF1bHQocHJvcHMpIHtcbiAgICByZXR1cm4gX3JlYWN0Mi5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoJ2RpdicsIHByb3BzKTtcbn1cblxuZnVuY3Rpb24gcmVuZGVyVHJhY2tIb3Jpem9udGFsRGVmYXVsdChfcmVmKSB7XG4gICAgdmFyIHN0eWxlID0gX3JlZi5zdHlsZTtcblxuICAgIHZhciBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmLCBbJ3N0eWxlJ10pO1xuXG4gICAgdmFyIGZpbmFsU3R5bGUgPSBfZXh0ZW5kcyh7fSwgc3R5bGUsIHtcbiAgICAgICAgcmlnaHQ6IDIsXG4gICAgICAgIGJvdHRvbTogMixcbiAgICAgICAgbGVmdDogMixcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAzLFxuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJ1xuICAgIH0pO1xuICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnZGl2JywgX2V4dGVuZHMoeyBzdHlsZTogZmluYWxTdHlsZSB9LCBwcm9wcykpO1xufVxuXG5mdW5jdGlvbiByZW5kZXJUcmFja1ZlcnRpY2FsRGVmYXVsdChfcmVmMikge1xuICAgIHZhciBzdHlsZSA9IF9yZWYyLnN0eWxlO1xuXG4gICAgdmFyIHByb3BzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWYyLCBbJ3N0eWxlJ10pO1xuXG4gICAgdmFyIGZpbmFsU3R5bGUgPSBfZXh0ZW5kcyh7fSwgc3R5bGUsIHtcbiAgICAgICAgcmlnaHQ6IDIsXG4gICAgICAgIGJvdHRvbTogMixcbiAgICAgICAgdG9wOiAyLFxuICAgICAgICBib3JkZXJSYWRpdXM6IDMsXG4gICAgICAgIGN1cnNvcjogJ3BvaW50ZXInXG4gICAgfSk7XG4gICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdkaXYnLCBfZXh0ZW5kcyh7IHN0eWxlOiBmaW5hbFN0eWxlIH0sIHByb3BzKSk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlclRodW1iSG9yaXpvbnRhbERlZmF1bHQoX3JlZjMpIHtcbiAgICB2YXIgc3R5bGUgPSBfcmVmMy5zdHlsZTtcblxuICAgIHZhciBwcm9wcyA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfcmVmMywgWydzdHlsZSddKTtcblxuICAgIHZhciBmaW5hbFN0eWxlID0gX2V4dGVuZHMoe30sIHN0eWxlLCB7XG4gICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICBib3JkZXJSYWRpdXM6ICdpbmhlcml0JyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLDAsMCwuMiknXG4gICAgfSk7XG4gICAgcmV0dXJuIF9yZWFjdDIuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCdkaXYnLCBfZXh0ZW5kcyh7IHN0eWxlOiBmaW5hbFN0eWxlIH0sIHByb3BzKSk7XG59XG5cbmZ1bmN0aW9uIHJlbmRlclRodW1iVmVydGljYWxEZWZhdWx0KF9yZWY0KSB7XG4gICAgdmFyIHN0eWxlID0gX3JlZjQuc3R5bGU7XG5cbiAgICB2YXIgcHJvcHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZjQsIFsnc3R5bGUnXSk7XG5cbiAgICB2YXIgZmluYWxTdHlsZSA9IF9leHRlbmRzKHt9LCBzdHlsZSwge1xuICAgICAgICBjdXJzb3I6ICdwb2ludGVyJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAnaW5oZXJpdCcsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwwLDAsLjIpJ1xuICAgIH0pO1xuICAgIHJldHVybiBfcmVhY3QyLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgnZGl2JywgX2V4dGVuZHMoeyBzdHlsZTogZmluYWxTdHlsZSB9LCBwcm9wcykpO1xufVxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi9+L3JlYWN0LWN1c3RvbS1zY3JvbGxiYXJzL2xpYi9TY3JvbGxiYXJzL2RlZmF1bHRSZW5kZXJFbGVtZW50cy5qc1xuICoqIG1vZHVsZSBpZCA9IDI4N1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ==");
+
/***/ }
/******/ ]);
\ No newline at end of file
diff --git a/server/assets/style.css b/server/assets/style.css
index 7a2f2d0e..5278e7f3 100644
--- a/server/assets/style.css
+++ b/server/assets/style.css
@@ -637,6 +637,10 @@ body {
max-height: 35px; }
.torrent__list__wrapper {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
@@ -1375,8 +1379,8 @@ body {
border-radius: 10px;
cursor: pointer;
opacity: 0;
- -webkit-transition: background 0.25s, opacity 0.25s;
- transition: background 0.25s, opacity 0.25s; }
+ -webkit-transition: background 0.25s, opacity 0.5s;
+ transition: background 0.25s, opacity 0.5s; }
.scrollbars__thumb:active {
opacity: 1; }
.scrollbars__thumb:hover, .scrollbars__thumb:active {
diff --git a/server/assets/style.css.map b/server/assets/style.css.map
index 7fe9c21e..1c098203 100644
--- a/server/assets/style.css.map
+++ b/server/assets/style.css.map
@@ -1 +1 @@
-{"version":3,"sources":["style.css","../../../node_modules/inuit-defaults/_settings.defaults.scss","../../../node_modules/inuit-normalize/_generic.normalize.scss","tools/_variables.scss","base/_typography.scss","../../../node_modules/inuit-reset/_generic.reset.scss","../../../node_modules/inuit-box-sizing/_generic.box-sizing.scss","../../../node_modules/inuit-page/_base.page.scss","tools/_reset.scss","base/_animations.scss","base/_form-elements.scss","tools/_colors.scss","base/_layout.scss","base/_main.scss","components/_action-bar.scss","components/_application-content.scss","components/_badge.scss","components/_client-stats.scss","components/_directory-tree.scss","components/_dropdown.scss","components/_floating-action.scss","components/_icons.scss","components/_loading-indicator.scss","components/_modals.scss","components/_priority-meter.scss","components/_progress-bar.scss","components/_scrollbars.scss","components/_sidebar.scss","components/_sidebar-filter.scss","components/_textbox-repeater.scss","components/_torrent-details-panel.scss","components/_torrents.scss","components/_transfer-data.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * inuitcss, by @csswizardry\n *\n * github.com/inuitcss | inuitcss.com\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n@import url(http://fonts.googleapis.com/css?family=Roboto:400italic,700italic,300,700,300italic,400);\n@import url(\"http://fonts.googleapis.com/css?family=Roboto:500,400italic,300,700,400\");\nhtml {\n font-family: sans-serif;\n /* 1 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n -webkit-text-size-adjust: 100%;\n /* 2 */ }\n\n/**\n * Remove default margin.\n */\nbody {\n margin: 0; }\n\n/* HTML5 display definitions\n ========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block; }\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n /* 1 */\n vertical-align: baseline;\n /* 2 */ }\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n display: none;\n height: 0; }\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n display: none; }\n\n/* Links\n ========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n background-color: transparent; }\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\na:active,\na:hover {\n outline: 0; }\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n border-bottom: 1px dotted; }\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n font-weight: bold; }\n\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n font-style: italic; }\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0; }\n\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n background: #ff0;\n color: #000; }\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n font-size: 80%; }\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\n\nsup {\n top: -0.5em; }\n\nsub {\n bottom: -0.25em; }\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n border: 0; }\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n overflow: hidden; }\n\n/* Grouping content\n ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n margin: 1em 40px; }\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n box-sizing: content-box;\n height: 0; }\n\n/**\n * Contain overflow in all browsers.\n */\npre {\n overflow: auto; }\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em; }\n\n/* Forms\n ========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n /* 1 */\n font: inherit;\n /* 2 */\n margin: 0;\n /* 3 */ }\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n overflow: visible; }\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n text-transform: none; }\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */\n cursor: pointer;\n /* 3 */ }\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default; }\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0; }\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n line-height: normal; }\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */ }\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n box-sizing: content-box;\n /* 2 */ }\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em; }\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n border: 0;\n /* 1 */\n padding: 0;\n /* 2 */ }\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n overflow: auto; }\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n font-weight: bold; }\n\n/* Tables\n ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n\ntd,\nth {\n padding: 0; }\n\n/*------------------------------------* #RESET\n\\*------------------------------------*/\n/**\n * As well as using normalize.css, it is often advantageous to remove all\n * margins from certain elements.\n */\nbody,\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\ndl, dd, ol, ul,\nform, fieldset, legend,\nfigure,\ntable, th, td, caption,\nhr {\n margin: 0;\n padding: 0; }\n\n/**\n * Give a help cursor to elements that give extra info on `:hover`.\n */\nabbr[title],\ndfn[title] {\n cursor: help; }\n\n/**\n * Remove underlines from potentially troublesome elements.\n */\nu,\nins {\n text-decoration: none; }\n\n/**\n * Apply faux underlines to inserted text via `border-bottom`.\n */\nins {\n border-bottom: 1px solid; }\n\n/*------------------------------------* #BOX-SIZING\n\\*------------------------------------*/\n/**\n * Set the global `box-sizing` state to `border-box`.\n *\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n * paulirish.com/2012/box-sizing-border-box-ftw\n */\nhtml {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\n*, *:before, *:after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n\n/*------------------------------------* #PAGE\n\\*------------------------------------*/\n/**\n * High-, page-level styling.\n *\n * 1. Set the default `font-size` and `line-height` for the entire project,\n * sourced from our default variables. The `font-size` is calculated to exist\n * in ems, the `line-height` is calculated to exist unitlessly.\n * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when\n * navigating between pages that do/do not have enough content to produce\n * scrollbars naturally.\n * 3. Ensure the page always fills at least the entire height of the viewport.\n * 4. Prevent certain mobile browsers from automatically zooming fonts.\n * 5. Fonts on OSX will look more consistent with other systems that do not\n * render text using sub-pixel anti-aliasing.\n */\nhtml {\n font-size: 1em;\n /* [1] */\n line-height: 1.5;\n /* [1] */\n background-color: #fff;\n color: #333;\n overflow-y: scroll;\n /* [2] */\n min-height: 100%;\n /* [3] */\n -webkit-text-size-adjust: 100%;\n /* [4] */\n -ms-text-size-adjust: 100%;\n /* [4] */\n -moz-osx-font-smoothing: grayscale;\n /* [5] */\n -webkit-font-smoothing: antialiased;\n /* [5] */ }\n\nth {\n font-weight: inherit;\n text-align: left; }\n\n@keyframes fade-in {\n 0% {\n opacity: 0; }\n 100% {\n opacity: 1; } }\n\n@keyframes fade-out {\n 0% {\n opacity: 1; }\n 100% {\n opacity: 0; } }\n\n.textbox,\n.button {\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n outline: none; }\n\n.textbox {\n background: rgba(233, 238, 242, 0.3);\n border-radius: 4px;\n border: 1px solid #e9eef2;\n color: #53718a;\n display: block;\n font-size: 0.9em;\n padding: 10px 15px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%; }\n .textbox::placeholder {\n color: #abbac7;\n font-style: italic;\n transition: color 0.25s; }\n .textbox:focus {\n background: rgba(233, 238, 242, 0.3);\n border-color: #e9eef2;\n color: #258de5; }\n .textbox:focus::placeholder {\n color: #abbac7; }\n\n.button {\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9em;\n font-weight: 400;\n padding: 8px 22px;\n transition: background 0.25s; }\n .button.has-icon .icon {\n height: 16px;\n margin: 0 8.33333px;\n vertical-align: middle;\n width: 16px; }\n .button.has-icon .icon:first-child {\n margin-left: 0; }\n .button.has-icon .icon:last-child {\n margin-right: 0; }\n .button--deemphasize {\n background: #e9eef2;\n color: #66717a; }\n .button--deemphasize:hover {\n background: #d9e2e9;\n color: #5a646c; }\n .button--primary {\n background: #258de5;\n color: #fff;\n white-space: nowrap; }\n .button--primary:hover {\n background: #1a80d7; }\n\n.form__label {\n color: #53718a;\n display: block;\n margin-bottom: 0.1em; }\n\n.form__row + .form__row {\n margin-top: 20px; }\n\nhtml,\nbody {\n height: 100%;\n overflow: hidden; }\n\n.container {\n height: 100%;\n width: 100%; }\n\n.flood {\n align-items: stretch;\n display: flex;\n height: 100%; }\n\n.application__content {\n display: flex;\n height: 100vh;\n flex: 1 2 auto;\n flex-direction: column;\n position: relative; }\n\n.application__panel {\n display: flex;\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0; }\n .application__panel--torrent-list {\n transition: transform 0.5s;\n z-index: 2; }\n .application__panel--torrent-list.is-open {\n transform: translateX(85%); }\n .application__panel--torrent-details {\n right: 15%;\n width: 85%;\n z-index: 1; }\n\n.torrent__header {\n flex: 1;\n min-height: 35px;\n max-height: 35px; }\n\n.torrent__list__wrapper {\n flex: 1; }\n .torrent__list__wrapper--custom-scroll {\n flex: 1;\n height: auto !important; }\n\nbody {\n background: #1a2f3d; }\n\nul {\n list-style: none; }\n\nbody {\n color: #53718a;\n font-family: \"Roboto\", sans-srif; }\n\n.unit {\n display: inline-block;\n font-size: 0.8em;\n font-style: normal;\n margin-bottom: 0.1em;\n opacity: 0.8; }\n\n.text-overflow {\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis; }\n\n.action-bar {\n background: transparent;\n color: #1b1a1c;\n display: flex;\n flex: 0 0 60px;\n position: relative; }\n .action-bar:after {\n background: rgba(26, 47, 61, 0.15);\n bottom: 0;\n content: '';\n height: 1px;\n left: 9px;\n position: absolute;\n right: 0;\n width: auto; }\n .action-bar__item {\n flex: 3; }\n .action-bar__item:first-child {\n text-align: left; }\n .action-bar__item:last-child {\n text-align: right; }\n .action-bar__item--sort-torrents {\n max-width: 225px; }\n .action-bar__item--sort-torrents .dropdown {\n margin: 5px 0 0 15px; }\n .action-bar__item--sort-torrents .dropdown__content {\n min-width: 250px; }\n .action-bar__item--torrent-operations .dropdown {\n display: inline-block;\n height: 60px; }\n .action-bar__item--torrent-operations .dropdown__content {\n min-width: 430px;\n right: 4px; }\n .action-bar__group {\n display: inline-block;\n font-size: 0;\n padding: 0 15px; }\n .action-bar__group--has-divider {\n position: relative; }\n .action-bar__group--has-divider:before {\n background: rgba(122, 128, 128, 0.15);\n content: '';\n position: absolute;\n height: 80%;\n left: 0;\n top: 10%;\n width: 1px; }\n\n.actions {\n list-style: none; }\n\n.action {\n box-shadow: 1px 0 transparent, -1px 0 transparent;\n cursor: pointer;\n display: inline-block;\n height: 60px;\n position: relative;\n width: 60px;\n text-align: center;\n transition: background 0.25s, box-shadow 0.25s; }\n .action:hover {\n background: rgba(51, 62, 74, 0.05);\n box-shadow: 1px 0 rgba(51, 62, 74, 0.15), -1px 0 rgba(51, 62, 74, 0.15); }\n .action:hover .icon {\n fill: #258de5; }\n .action__label {\n display: block;\n position: absolute;\n top: 100%;\n visibility: hidden; }\n .action .icon {\n fill: #909799;\n height: 25px;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translateX(-50%) translateY(-50%);\n width: 30px; }\n\n.application__content {\n background: #e9eef2; }\n\n.badge {\n background: #2b4456;\n border-radius: 100px;\n color: #132532;\n display: inline-block;\n font-size: 0.8em;\n font-weight: 800;\n line-height: 1;\n margin-left: 10px;\n padding: 1px 5px;\n transition: background 0.25s;\n vertical-align: baseline; }\n\n.client-stats {\n height: 200px;\n position: relative; }\n .client-stats .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%); }\n .client-stats .transfer-data-enter {\n opacity: 0;\n transition: opacity 1s; }\n .client-stats .transfer-data-enter.transfer-data-enter-active {\n opacity: 1; }\n .client-stats .transfer-data-leave {\n opacity: 1;\n transition: opacity 1s; }\n .client-stats .transfer-data-leave.transfer-data-leave-active {\n opacity: 0; }\n\n.client-stat {\n align-items: center;\n display: flex;\n height: 100px;\n padding: 0 20px; }\n .client-stat__icon, .client-stat__data {\n position: relative;\n vertical-align: top;\n z-index: 1; }\n .client-stat__icon {\n flex: 0 0 23px; }\n .client-stat__icon .icon {\n display: inline-block;\n height: 25px;\n margin: 6px 0 0 -5px;\n width: auto; }\n .client-stat__data {\n flex: 1; }\n .client-stat__data--primary, .client-stat__data--secondary {\n display: block;\n font-weight: 100;\n line-height: 1.2; }\n .client-stat__data--primary {\n font-size: 1.75em;\n white-space: nowrap; }\n .client-stat__data--primary .unit {\n font-size: 0.65em;\n margin-bottom: 0;\n opacity: 0.5;\n position: relative;\n top: -0.1em; }\n .client-stat__data--secondary {\n font-size: 0.8em;\n font-style: italic;\n font-weight: 400; }\n\n.client-stat--limits {\n background: none;\n border: none;\n color: #53718a;\n display: block;\n outline: none;\n padding: 10px 15px;\n font-size: 0.85em;\n text-align: left;\n transition: color 0.25s;\n vertical-align: middle;\n width: 100%; }\n .client-stat--limits .icon {\n display: inline-block;\n fill: #53718a;\n margin: -2px 5px 0 0;\n transition: fill 0.25s;\n vertical-align: middle;\n width: 14.5px; }\n .client-stat--limits .icon .limits__bars--top {\n opacity: 0.4; }\n .client-stat--limits .icon .limits__bars--bottom {\n opacity: 0.6; }\n .client-stat--limits:hover {\n color: #258de5; }\n .client-stat--limits:hover .icon {\n fill: #258de5; }\n\n.client-stat {\n position: relative; }\n .client-stat .graph {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 0; }\n .client-stat .graph svg {\n height: 100%;\n width: 100%; }\n .client-stat .graph__line {\n fill: none; }\n .client-stat .graph__line--limit {\n stroke-dasharray: 3px 4px;\n stroke-width: 1px; }\n .client-stat .graph__line--rate {\n stroke-width: 1.1px; }\n .client-stat--download .icon {\n fill: rgba(43, 174, 108, 0.75); }\n .client-stat--download .client-stat__data--primary {\n color: #2bae6c; }\n .client-stat--download .client-stat__data--secondary {\n color: rgba(43, 174, 108, 0.75); }\n .client-stat--download .graph .graph--download--gradient--top {\n stop-color: rgba(43, 174, 108, 0.2); }\n .client-stat--download .graph .graph--download--gradient--bottom {\n stop-color: rgba(43, 174, 108, 0); }\n .client-stat--download .graph__area {\n fill: url(\"#graph--download--gradient\"); }\n .client-stat--download .graph__line--limit {\n stroke: rgba(102, 217, 159, 0.15); }\n .client-stat--download .graph__line--rate {\n stroke: rgba(43, 174, 108, 0.4); }\n .client-stat--upload .icon {\n fill: rgba(35, 135, 217, 0.75); }\n .client-stat--upload .client-stat__data--primary {\n color: #2387d9; }\n .client-stat--upload .client-stat__data--secondary {\n color: rgba(35, 135, 217, 0.75); }\n .client-stat--upload .graph .graph--upload--gradient--top {\n stop-color: rgba(35, 135, 217, 0.2); }\n .client-stat--upload .graph .graph--upload--gradient--bottom {\n stop-color: rgba(35, 135, 217, 0); }\n .client-stat--upload .graph__area {\n fill: url(\"#graph--upload--gradient\"); }\n .client-stat--upload .graph__line--limit {\n stroke: rgba(121, 183, 233, 0.15); }\n .client-stat--upload .graph__line--rate {\n stroke: rgba(35, 135, 217, 0.4); }\n\n.directory-tree .icon {\n display: inline-block;\n fill: rgba(82, 120, 147, 0.4);\n height: 14px;\n margin-right: 6px;\n width: 14px; }\n\n.directory-tree__node {\n color: #527893;\n line-height: 1.75;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap; }\n .directory-tree__node--group {\n padding-left: 10px;\n position: relative; }\n .directory-tree__node--group:after {\n background: rgba(82, 120, 147, 0.1);\n content: '';\n height: 100%;\n left: 5px;\n position: absolute;\n top: -5px;\n width: 2px; }\n .directory-tree__node--directory {\n color: #527893;\n cursor: pointer;\n transition: color 0.125s; }\n .directory-tree__node--directory.is-expanded {\n color: #719bb7;\n font-weight: 500; }\n .directory-tree__node--directory.is-expanded .icon {\n fill: rgba(130, 170, 197, 0.5); }\n .directory-tree__node--directory .icon {\n fill: rgba(82, 120, 147, 0.4); }\n .directory-tree__node .file {\n display: flex;\n line-height: 1.7;\n width: 100%; }\n .directory-tree__node .file:hover .file__detail--size, .directory-tree__node .file:hover .file__detail--priority {\n color: #527893; }\n .directory-tree__node .file .icon {\n fill: #344b5b; }\n .directory-tree__node .file__detail {\n flex: 1 1 auto;\n overflow: hidden;\n padding-right: 6.25px;\n text-overflow: ellipsis; }\n .directory-tree__node .file__detail--size, .directory-tree__node .file__detail--priority {\n color: #2b4456;\n flex: 0 0 auto;\n font-size: 0.95em;\n text-align: right;\n transition: color 0.25s; }\n .directory-tree__node .file__detail--priority .icon {\n height: auto;\n margin-right: 0;\n width: 16px; }\n .directory-tree__node .file__detail:last-child {\n padding-right: 0; }\n .directory-tree__node--file-list {\n margin-bottom: 3px; }\n\n.directory-tree__parent-directory {\n margin-left: -1px;\n overflow: hidden;\n text-overflow: ellipsis; }\n .directory-tree__parent-directory .icon {\n fill: rgba(58, 92, 116, 0.5);\n margin-right: 8px;\n vertical-align: middle; }\n\n.directory-tree__tree .directory-tree__tree {\n padding-left: 6px; }\n\n.dropdown {\n display: inline-block;\n outline: none;\n position: relative;\n z-index: 2; }\n .dropdown__button, .dropdown__trigger {\n cursor: pointer; }\n .dropdown__button {\n display: block;\n padding: 12px 15px 7px 15px;\n text-align: left;\n width: auto;\n word-wrap: none; }\n .dropdown__content {\n background: rgba(255, 255, 255, 0.98);\n border-radius: 3px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1), 0 0 35px rgba(26, 47, 61, 0.3);\n color: #95a2ad;\n left: 0;\n position: absolute;\n text-align: left;\n top: 0;\n z-index: 2; }\n .dropdown.is-expanded .dropdown__header .dropdown__value {\n color: #4e6a7c; }\n .dropdown__label {\n color: #abbac7;\n display: block;\n font-size: 0.65em;\n font-weight: 500;\n letter-spacing: 0.1em;\n line-height: 0.9em;\n text-transform: uppercase; }\n .dropdown__button .dropdown__label {\n cursor: pointer; }\n .dropdown__value {\n color: #8899a8;\n transition: color 0.25s; }\n .dropdown__value:after {\n border-top: 5px solid #8899a8;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n content: '';\n display: inline-block;\n margin-left: 10px;\n vertical-align: middle; }\n .dropdown__header {\n position: relative; }\n .dropdown__header:after {\n background: rgba(26, 47, 61, 0.05);\n bottom: 0;\n content: '';\n display: block;\n height: 1px;\n left: 5%;\n position: absolute;\n width: 90%; }\n .dropdown__items {\n display: flex;\n padding: 10px 0; }\n .dropdown__list {\n flex: 1; }\n .dropdown__item {\n padding: 5px 15px; }\n .dropdown__item.is-selectable {\n cursor: pointer;\n display: block;\n font-size: 0.9em;\n transition: background 0.25s, color 0.25s; }\n .dropdown__item.is-selectable:hover {\n background: rgba(233, 238, 242, 0.4);\n color: #788997; }\n .dropdown__item.is-selectable.is-selected {\n color: #258de5; }\n .dropdown--align-right .dropdown {\n left: auto;\n right: 0; }\n\n.dropdown__content-enter {\n animation: fade-in 0.25s both; }\n\n.dropdown__content-leave {\n animation: fade-out 0.25s both; }\n\n.dropdown__content__container {\n padding: 25px 30px; }\n\n.floating-action__button {\n background: #fff;\n border: none;\n border-radius: 16px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1);\n cursor: pointer;\n height: 16px;\n outline: none;\n margin-right: 8px;\n padding: 0;\n position: relative;\n transition: background 0.25s, box-shadow 0.25s;\n width: 16px; }\n .floating-action__button:last-child {\n margin-right: 0; }\n .floating-action__button:hover {\n background: #e9eef2;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.2); }\n .floating-action__button:hover .icon {\n fill: rgba(26, 47, 61, 0.5); }\n .floating-action__button .icon {\n height: 8px;\n fill: rgba(26, 47, 61, 0.3);\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translate(-50%, -50%);\n width: 8px; }\n\n@keyframes loading-indicator-dots-pulse {\n 0% {\n fill-opacity: 0.2; }\n 100% {\n fill-opacity: 0.8; } }\n\n.icon--eta .icon__ring {\n fill-opacity: 1; }\n\n.icon--loading-indicator .loading-indicator--dots__dot {\n animation: loading-indicator-dots-pulse 0.6s linear alternate infinite;\n fill: #fff; }\n .icon--loading-indicator .loading-indicator--dots__dot--center {\n animation-delay: 0.2s; }\n .icon--loading-indicator .loading-indicator--dots__dot--right {\n animation-delay: 0.4s; }\n\n@keyframes loading-indicator-swipe {\n 0% {\n transform: translateX(-100%); }\n 50% {\n transform: translateX(400%); }\n 100% {\n transform: translateX(400%); } }\n\n.loading-indicator {\n height: 18px;\n position: relative;\n width: 32px; }\n .loading-indicator.is-inverse .loading-indicator__bar {\n background: rgba(56, 88, 109, 0.7); }\n .loading-indicator.is-inverse .loading-indicator__bar:after {\n background: rgba(37, 141, 229, 0.75); }\n .loading-indicator__bar {\n background: #e9eef2;\n border-radius: 10px;\n height: 3px;\n left: 0;\n overflow: hidden;\n position: absolute;\n transform: translateY(0);\n width: 100%; }\n .loading-indicator__bar:after {\n animation: loading-indicator-swipe 3s ease-in-out infinite;\n background: rgba(37, 141, 229, 0.75);\n border-radius: 10px;\n content: '';\n display: block;\n height: 100%;\n transform: translateX(-100%);\n width: 25%; }\n .loading-indicator__bar--1 {\n top: 0; }\n .loading-indicator__bar--2 {\n top: 50%;\n transform: translateY(-50%); }\n .loading-indicator__bar--2:after {\n animation-delay: 0.5s; }\n .loading-indicator__bar--3 {\n bottom: 0; }\n .loading-indicator__bar--3:after {\n animation-delay: 1s; }\n\n.modal {\n background: rgba(26, 47, 61, 0.5);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n transition: opacity 0.5s;\n width: 100%;\n z-index: 100; }\n .modal__content {\n background: #fff;\n border-radius: 5px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1), 0 0 35px rgba(26, 47, 61, 0.3);\n left: 50%;\n max-height: 80%;\n max-width: 80%;\n overflow: auto;\n padding: 30px;\n position: absolute;\n top: 10%;\n transform: translate(-50%, 0);\n width: 500px; }\n .modal__content--align-center {\n text-align: center; }\n .modal__footer {\n margin-top: 25px; }\n .modal__button-group {\n text-align: right; }\n .modal__button-group .button + .button {\n margin-left: 20px; }\n .modal__header {\n color: #313436;\n font-size: 1.1em;\n font-weight: 400;\n margin-bottom: 20px; }\n .modal__animation-enter {\n opacity: 0; }\n .modal__animation-enter-active {\n opacity: 1; }\n .modal__animation-leave {\n opacity: 1;\n pointer-events: none; }\n .modal__animation-leave-active {\n opacity: 0; }\n\n.priority-meter {\n height: 8px;\n position: relative;\n width: 17px; }\n .priority-meter__wrapper {\n display: inline-block;\n padding: 5px;\n vertical-align: middle; }\n .priority-meter:before, .priority-meter:after {\n content: '';\n display: block;\n position: absolute; }\n .priority-meter:before {\n height: 2px;\n left: 0;\n top: 3px;\n transition: background 0.25s;\n width: 100%; }\n .priority-meter:after {\n height: 100%;\n top: 0;\n transition: background 0.25s, left 0.25s;\n width: 2px; }\n .priority-meter--level-0:before {\n background: rgba(67, 96, 118, 0.2); }\n .priority-meter--level-0:after {\n left: 0;\n background: #436076; }\n .priority-meter--level-1:before {\n background: rgba(37, 141, 229, 0.2); }\n .priority-meter--level-1:after {\n left: 8px;\n background: #258de5; }\n .priority-meter--level-2:before {\n background: rgba(57, 206, 131, 0.2); }\n .priority-meter--level-2:after {\n background: #39ce83;\n left: 15px; }\n\n.progress-bar {\n height: 3px;\n position: relative;\n transition: opacity 0.25s;\n z-index: 1; }\n .is-selected.is-stopped .progress-bar {\n opacity: 0.5; }\n .progress-bar:after {\n background: #e3e5e5;\n content: '';\n height: 1px;\n left: 0;\n position: absolute;\n z-index: 0;\n top: 1px;\n transition: background 0.25s;\n width: 100%; }\n .is-selected .progress-bar:after {\n background: rgba(255, 255, 255, 0.5); }\n .is-selected.is-stopped .progress-bar:after {\n background: rgba(255, 255, 255, 0.5); }\n .progress-bar__fill {\n background: #39ce83;\n bottom: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: background 0.25s, width 0.25s;\n z-index: 1; }\n .is-seeding .progress-bar__fill {\n background: #258de5; }\n .is-completed .progress-bar__fill,\n .is-stopped .progress-bar__fill {\n background: #e3e5e5; }\n .is-selected .progress-bar__fill {\n background: #fff; }\n .has-error .progress-bar__fill {\n background: #e95779; }\n\n.scrollbars__thumb {\n background: rgba(26, 47, 61, 0.3);\n border-radius: 10px;\n cursor: pointer;\n opacity: 0;\n transition: background 0.25s, opacity 0.25s; }\n .scrollbars__thumb:active {\n opacity: 1; }\n .scrollbars__thumb:hover, .scrollbars__thumb:active {\n background: rgba(26, 47, 61, 0.6); }\n .is-inverted .scrollbars__thumb {\n background: rgba(233, 238, 242, 0.3); }\n .is-inverted .scrollbars__thumb:hover, .is-inverted .scrollbars__thumb:active {\n background: rgba(233, 238, 242, 0.6); }\n\n.scrollbars:hover .scrollbars__thumb {\n opacity: 1; }\n\n.application__sidebar {\n box-shadow: 1px 0 rgba(6, 9, 11, 0.3);\n color: #53718a;\n flex: 1;\n min-width: 200px;\n max-width: 240px;\n overflow: auto;\n position: relative;\n z-index: 2; }\n\n.sidebar__item--search {\n position: relative; }\n .sidebar__item--search .icon {\n fill: #53718a;\n height: 22px;\n left: 17px;\n opacity: 0.5;\n position: absolute;\n top: 50%;\n transition: fill 0.25s, opacity 0.25s;\n transform: translateY(-50%);\n width: 22px; }\n .sidebar__item--search .textbox {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 1px solid rgba(9, 24, 36, 0.4);\n border-left: none;\n border-right: none;\n border-radius: 0;\n background: rgba(9, 24, 36, 0.3);\n box-shadow: none;\n color: #53718a;\n display: block;\n font-size: 1em;\n outline: none;\n padding: 12px 0 12px 45px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%; }\n .sidebar__item--search .textbox::placeholder {\n color: rgba(83, 113, 138, 0.4);\n font-style: italic;\n transition: color 0.25s; }\n .sidebar__item--search.is-in-use .icon {\n fill: #2c9e65;\n opacity: 1; }\n .sidebar__item--search.is-in-use .textbox {\n background: #39ce83;\n border-bottom: 1px solid #39ce83;\n border-top: 1px solid #39ce83;\n color: #1e8954; }\n .sidebar__item--search.is-in-use .textbox::placeholder {\n color: #2cad6d; }\n\n.sidebar__item--speed-limit {\n padding-left: 5px;\n padding-top: 5px; }\n .sidebar__item--speed-limit .dropdown__content {\n min-width: 180px; }\n .sidebar__item--speed-limit .dropdown__items {\n font-size: 0.9em; }\n\n.sidebar-filter {\n font-size: 0.85em;\n padding: 30px 0; }\n .sidebar-filter + .sidebar-filter {\n padding-top: 0; }\n .sidebar-filter__item {\n color: #53718a;\n cursor: pointer;\n font-weight: 400;\n padding: 3px 20px;\n transition: color 0.25s; }\n .sidebar-filter__item:hover {\n color: #7a97af; }\n .sidebar-filter__item:hover .icon {\n fill: #7a97af; }\n .sidebar-filter__item.is-active {\n color: #258de5;\n font-weight: 700; }\n .sidebar-filter__item.is-active .badge {\n background: #3b586d; }\n .sidebar-filter__item.is-active .icon {\n fill: #258de5; }\n .sidebar-filter__item .icon {\n display: inline-block;\n fill: #53718a;\n height: 14px;\n margin-right: 7px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: auto; }\n .sidebar-filter .badge {\n background: #2b4456;\n color: #132532; }\n\n.sidebar-filter__item--heading {\n cursor: default;\n font-size: 0.8em;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n .sidebar-filter__item--heading, .sidebar-filter__item--heading:hover {\n color: rgba(83, 113, 138, 0.5); }\n\n.textbox-repeater .floating-action__group {\n margin-top: -8px;\n position: absolute;\n right: -8px;\n top: 50%; }\n\n.textbox-repeater .floating-action__button {\n position: relative; }\n\n.textbox-repeater .textbox__wrapper {\n position: relative; }\n\n.application__panel--torrent-details {\n background: #0e2231; }\n\n.torrent-details {\n background: #0e2231;\n bottom: 0;\n box-shadow: -1px 0 0 rgba(26, 47, 61, 0.1);\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n left: 0;\n min-width: 400px;\n overflow: auto;\n position: absolute;\n right: 0;\n top: 0;\n transition: opacity 1s;\n z-index: 2; }\n .torrent-details__heading {\n box-shadow: 0 1px 0 rgba(4, 13, 19, 0.3);\n flex: 0 0 auto;\n padding: 12.5px 25px 16.66667px 25px; }\n .torrent-details__heading.is-stopped .torrent__details--tertiary {\n color: #7b9cb4; }\n .torrent-details__heading.has-error .progress-bar__fill {\n background: #be2558; }\n .torrent-details__heading .torrent__details--name {\n color: #c7dbeb;\n font-size: 1.7em;\n font-weight: 300; }\n .torrent-details__heading .torrent__details--tertiary {\n color: #7b9cb4;\n font-size: 1em;\n margin-bottom: 12.5px; }\n .torrent-details__heading .torrent__details--download .icon, .torrent-details__heading .torrent__details--upload .icon, .torrent-details__heading .torrent__details--eta .icon, .torrent-details__heading .torrent__details--ratio .icon {\n height: 12px;\n margin-right: 3px;\n margin-top: -3px;\n vertical-align: middle;\n width: 12px; }\n .torrent-details__heading .torrent__details--ratio .icon, .torrent-details__heading .torrent__details--eta .icon {\n fill: rgba(77, 111, 135, 0.5); }\n .torrent-details__heading .torrent__details--eta {\n opacity: 1;\n visibility: visible; }\n .torrent-details__heading .progress-bar:after {\n background: #2a3e4c; }\n .torrent-details__table {\n color: #527893;\n width: 100%; }\n .torrent-details__table__heading--primary {\n color: #3a5c74;\n font-size: 1.125em; }\n .torrent-details__table__heading--secondary {\n color: rgba(82, 120, 147, 0.5);\n font-size: 0.7em;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n .torrent-details__content {\n flex: 1;\n overflow: auto;\n padding: 16.66667px 25px; }\n .torrent-details__content__wrapper {\n background: rgba(16, 26, 34, 0.4);\n display: flex;\n flex: 1;\n overflow: hidden; }\n .torrent-details__navigation {\n background: rgba(16, 26, 34, 0.1);\n box-shadow: 1px 0 0 rgba(4, 13, 19, 0.35);\n min-width: 125px;\n padding: 12.5px 0; }\n .torrent-details__navigation .navigation__item {\n cursor: pointer;\n padding: 6.25px 25px;\n text-align: right;\n transition: background 0.25s, box-shadow 0.25s, color 0.25s; }\n .torrent-details__navigation .navigation__item.is-active {\n background: rgba(52, 156, 244, 0.07);\n box-shadow: 1px 0 0 #349cf4;\n color: #349cf4; }\n .torrent-details__section__heading, .torrent-details__section__null-data {\n color: #3a5c74;\n font-size: 1.125em; }\n .torrent-details__section__heading .badge {\n background: rgba(82, 120, 147, 0.5);\n color: #0c1b26; }\n\n.torrent-details-enter {\n opacity: 0; }\n\n.torrent-details-enter-active {\n opacity: 1; }\n\n.torrent-details-leave {\n opacity: 0;\n transition: opacity 0.5s; }\n\n.torrents {\n display: flex;\n flex: 1 1 100px;\n position: relative; }\n .torrents:after {\n background: #fff;\n bottom: 0;\n box-shadow: -1px 0 0 0 rgba(26, 47, 61, 0.15);\n content: '';\n height: auto;\n left: 10px;\n position: absolute;\n right: 0;\n top: 0; }\n .torrents .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%); }\n\n.torrent__list {\n margin: 0 0 0 10px;\n padding: 10px 0;\n position: relative; }\n .torrent__list__wrapper {\n list-style: none;\n max-width: 100%;\n opacity: 1;\n overflow: auto;\n transition: opacity 1s;\n user-select: none;\n z-index: 1; }\n .torrent__list--loading-enter {\n opacity: 0;\n transition: opacity 1s; }\n .torrent__list--loading-enter-active {\n opacity: 1; }\n .torrent__list--loading-leave {\n opacity: 1;\n transition: opacity 1s; }\n .torrent__list--loading-leave-active {\n opacity: 0; }\n .torrent__list--empty {\n opacity: 0; }\n\n.torrent {\n cursor: default;\n padding: 10px 20px;\n position: relative;\n transition: background 0.25s; }\n .torrent:hover {\n background: #f6f8fa; }\n .torrent:hover .torrent__more-info {\n opacity: 1; }\n .torrent.is-selected {\n background: #258de5; }\n .torrent__more-info {\n height: 20px;\n margin-top: -10px;\n position: absolute;\n left: -7px;\n opacity: 0;\n top: 50%;\n transition: background 0.25s, box-shadow 0.25s, opacity 0.25s;\n width: 20px; }\n\n.torrent__details {\n align-items: center;\n display: flex;\n flex: 1;\n flex-flow: row wrap;\n list-style: none; }\n .torrent__details--primary, .torrent__details--secondary, .torrent__details--tertiary {\n transition: color 0.25s; }\n .torrent__details--primary {\n color: #333332;\n flex: 4;\n line-height: 1.3;\n white-space: nowrap; }\n .is-stopped .torrent__details--primary {\n color: rgba(51, 51, 50, 0.5); }\n .is-selected .torrent__details--primary {\n color: #fff; }\n .is-selected.is-stopped .torrent__details--primary {\n color: rgba(255, 255, 255, 0.6); }\n .torrent__details--secondary {\n align-items: flex-end;\n color: #807f7e;\n flex: 1;\n font-size: 0.75em;\n min-width: 200px; }\n .torrent__details--secondary li {\n flex: 1 1 auto;\n min-width: 15%; }\n .torrent__details--secondary li.torrent__details--ratio {\n max-width: 30px; }\n .is-stopped .torrent__details--secondary {\n color: rgba(128, 127, 126, 0.5); }\n .is-selected .torrent__details--secondary {\n color: #fff; }\n .is-selected.is-stopped .torrent__details--secondary {\n color: rgba(255, 255, 255, 0.6); }\n .torrent__details--tertiary {\n color: #807f7e;\n display: block;\n font-size: 0.75em;\n margin: 0 0 3px 0; }\n .torrent__details--tertiary li {\n display: inline-block;\n margin-right: 1em; }\n .torrent__details--tertiary li:last-child {\n margin-right: 0; }\n .is-stopped .torrent__details--tertiary {\n color: rgba(128, 127, 126, 0.5); }\n .is-selected .torrent__details--tertiary {\n color: rgba(255, 255, 255, 0.9); }\n .is-selected.is-stopped .torrent__details--tertiary {\n color: rgba(255, 255, 255, 0.5); }\n .torrent__details__label {\n margin-right: 0.5em;\n opacity: 0.5; }\n\n.torrent__details--eta {\n opacity: 0;\n transition: opacity 1s, visibility 1s;\n visibility: hidden; }\n .torrent__details--eta .torrent__details--segment {\n margin-right: 0.25em; }\n .torrent__details--eta .torrent__details--segment:last-child {\n margin-right: 0; }\n .is-actively-downloading .torrent__details--eta {\n opacity: 1;\n visibility: visible; }\n\n.view--torrent-list {\n background: #e9eef2;\n box-shadow: -1px 0 rgba(26, 47, 61, 0.15);\n display: flex;\n flex-direction: column;\n flex: 1;\n flex: 0 1 100%; }\n\n.transfer-data--download {\n color: #39ce83; }\n .transfer-data--download .icon {\n fill: #39ce83; }\n\n.transfer-data--upload {\n color: #258de5; }\n .transfer-data--upload .icon {\n fill: #258de5; }\n","/*!\n * inuitcss, by @csswizardry\n *\n * github.com/inuitcss | inuitcss.com\n */\n///*------------------------------------*\\\n// #DEFAULTS\n//\\*------------------------------------*/\n\n// These variables are inuitcss’ defaults; they should not be modified or\n// adjusted directly; you should predefine the variables in your own project.\n\n\n\n\n\n// High-level base settings.\n$inuit-base-font-size: 16px !default;\n$inuit-base-line-height: 24px !default;\n$inuit-base-text-color: #333 !default;\n$inuit-base-background-color: #fff !default;\n\n\n\n\n\n// Namespace.\n//\n// Would you like inuitcss’ classes to be prepended with a namespace? If so,\n// define it here.\n$inuit-namespace: null !default;\n\n\n\n\n\n// These variables are framework variables, sourced from variables defined\n// above. Feel free to use these variables throughout your project, but do not\n// modify or reassign them.\n$inuit-base-spacing-unit: $inuit-base-line-height;\n$inuit-base-spacing-unit--tiny: round($inuit-base-spacing-unit / 4);\n$inuit-base-spacing-unit--small: round($inuit-base-spacing-unit / 2);\n$inuit-base-spacing-unit--large: round($inuit-base-spacing-unit * 2);\n$inuit-base-spacing-unit--huge: round($inuit-base-spacing-unit * 4);\n","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\n\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n box-sizing: content-box; /* 2 */\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","@import 'colors';\n@import url(http://fonts.googleapis.com/css?family=Roboto:400italic,700italic,300,700,300italic,400);\n\n$font: 'Roboto', sans-srif;\n\n$spacing-unit: 25px;\n$torrent-details--width: 85%;\n","@import url('http://fonts.googleapis.com/css?family=Roboto:500,400italic,300,700,400');\n\nbody {\n color: $foreground;\n font-family: $font;\n}\n\n.unit {\n display: inline-block;\n font-size: 0.8em;\n font-style: normal;\n margin-bottom: 0.1em;\n opacity: 0.8;\n}\n\n.text-overflow {\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis;\n}\n","/*------------------------------------*\\\n #RESET\n\\*------------------------------------*/\n\n/**\n * As well as using normalize.css, it is often advantageous to remove all\n * margins from certain elements.\n */\nbody,\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\ndl, dd, ol, ul,\nform, fieldset, legend,\nfigure,\ntable, th, td, caption,\nhr {\n margin: 0;\n padding: 0;\n}\n\n\n\n\n\n/**\n * Give a help cursor to elements that give extra info on `:hover`.\n */\nabbr[title],\ndfn[title] {\n cursor: help;\n}\n\n\n\n\n\n/**\n * Remove underlines from potentially troublesome elements.\n */\nu,\nins {\n text-decoration: none;\n}\n\n\n\n\n\n/**\n * Apply faux underlines to inserted text via `border-bottom`.\n */\nins {\n border-bottom: 1px solid;\n}\n","/*------------------------------------*\\\n #BOX-SIZING\n\\*------------------------------------*/\n\n/**\n * Set the global `box-sizing` state to `border-box`.\n *\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n * paulirish.com/2012/box-sizing-border-box-ftw\n */\nhtml {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n* {\n\n &,\n &:before,\n &:after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n}\n\n\n\n\n\n// If we have included this file, set a variable to tell the rest of the\n// framework that global `box-sizing: border-box` has been set.\n$inuit-global-border-box: true;\n","/*------------------------------------*\\\n #PAGE\n\\*------------------------------------*/\n\n/**\n * High-, page-level styling.\n *\n * 1. Set the default `font-size` and `line-height` for the entire project,\n * sourced from our default variables. The `font-size` is calculated to exist\n * in ems, the `line-height` is calculated to exist unitlessly.\n * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when\n * navigating between pages that do/do not have enough content to produce\n * scrollbars naturally.\n * 3. Ensure the page always fills at least the entire height of the viewport.\n * 4. Prevent certain mobile browsers from automatically zooming fonts.\n * 5. Fonts on OSX will look more consistent with other systems that do not\n * render text using sub-pixel anti-aliasing.\n */\nhtml {\n font-size: ($inuit-base-font-size / 16px) * 1em; /* [1] */\n line-height: $inuit-base-line-height / $inuit-base-font-size; /* [1] */\n background-color: $inuit-base-background-color;\n color: $inuit-base-text-color;\n overflow-y: scroll; /* [2] */\n min-height: 100%; /* [3] */\n -webkit-text-size-adjust: 100%; /* [4] */\n -ms-text-size-adjust: 100%; /* [4] */\n -moz-osx-font-smoothing: grayscale; /* [5] */\n -webkit-font-smoothing: antialiased; /* [5] */\n}\n","th {\n font-weight: inherit;\n text-align: left;\n}\n","@keyframes fade-in {\n\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n\n}\n\n@keyframes fade-out {\n\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n\n}\n",".textbox,\n.button {\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n outline: none;\n}\n\n.textbox {\n background: $textbox--background;\n border-radius: 4px;\n border: 1px solid $textbox--border;\n color: $textbox--foreground;\n display: block;\n font-size: 0.9em;\n padding: 10px 15px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%;\n\n &::placeholder {\n color: $textbox--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n\n &:focus {\n background: $textbox--active--background;\n border-color: $textbox--active--border;\n color: $textbox--active--foreground;\n\n &::placeholder {\n color: $textbox--active--placeholder;\n }\n }\n\n}\n\n.button {\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9em;\n font-weight: 400;\n padding: 8px 22px;\n transition: background 0.25s;\n\n &.has-icon {\n\n .icon {\n height: 16px;\n margin: 0 $spacing-unit * 1/3;\n vertical-align: middle;\n width: 16px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n &--deemphasize {\n background: $button--deemphasized--background;\n color: $button--deemphasized--foreground;\n\n &:hover {\n background: $button--deemphasized--background--hover;\n color: $button--deemphasized--foreground--hover;\n }\n }\n\n &--primary {\n background: $button--primary--background;\n color: $button--primary--foreground;\n white-space: nowrap;\n\n &:hover {\n background: $button--primary--background--hover;\n }\n }\n}\n\n.form {\n\n &__label {\n color: $form--label--foreground;\n display: block;\n margin-bottom: 0.1em;\n }\n\n &__row {\n\n & + .form__row {\n margin-top: 20px;\n }\n }\n\n}\n","$blue: #258de5;\n$green: #39ce83;\n$white: #fff;\n\n$background: #1a2f3d;\n$foreground: #53718a;\n\n$main-content--background: #e9eef2;\n\n$header--foreground: #313436;\n\n// form elements\n$form--label--foreground: #53718a;\n\n$textbox--background: rgba($main-content--background, 0.3);\n$textbox--foreground: $foreground;\n$textbox--placeholder: #abbac7;\n$textbox--border: $main-content--background;\n$textbox--active--background: $textbox--background;\n$textbox--active--border: $main-content--background;\n$textbox--active--foreground: $blue;\n$textbox--active--placeholder: $textbox--placeholder;\n\n$textbox-repeater--button--background: #fff;\n$textbox-repeater--button--background--hover: $main-content--background;\n$textbox-repeater--button--border: rgba($background, 0.1);\n$textbox-repeater--button--border--hover: rgba($background, 0.2);\n$textbox-repeater--button--foreground: rgba($background, 0.3);\n$textbox-repeater--button--foreground--hover: rgba($background, 0.5);\n\n$button--primary--foreground: #fff;\n$button--primary--background: $blue;\n$button--primary--background--hover: darken($button--primary--background, 5%);\n$button--deemphasized--foreground: #66717a;\n$button--deemphasized--background: $main-content--background;\n$button--deemphasized--foreground--hover: darken($button--deemphasized--foreground, 5%);\n$button--deemphasized--background--hover: darken($button--deemphasized--background, 5%);\n\n// action bar\n$action-bar--background: transparent;\n$action-bar--foreground: #1b1a1c;\n$action-bar--group--border: rgba(#7a8080, 0.15);\n\n$action--foreground: #909799;\n$action--foreground--hover: $blue;\n$action--background--hover: rgba(#333e4a, 0.05);\n$action--border--hover: rgba(#333e4a, 0.15);\n\n// filter bar\n$sidebar--foreground: #53718a;\n$sidebar--border: rgba(darken($sidebar--foreground, 40%), 0.3);\n\n$client-stats--limits--opacity: 0.15;\n$client-stats--speed--fill--top--opacity: 0.2;\n$client-stats--speed--fill--bottom--opacity: 0;\n$client-stats--speed--stroke--opacity: 0.4;\n\n$client-stats--download--primary--foreground: #2bae6c;\n$client-stats--download--secondary--foreground: rgba($client-stats--download--primary--foreground, 0.75);\n$client-stats--download--graph--stroke: rgba(#2bae6c, $client-stats--speed--stroke--opacity);\n$client-stats--download--graph--fill--top: rgba(#2bae6c, $client-stats--speed--fill--top--opacity);\n$client-stats--download--graph--fill--bottom: rgba(#2bae6c, $client-stats--speed--fill--bottom--opacity);\n$client-stats--download--limits--line: rgba(lighten($client-stats--download--primary--foreground, 20%), $client-stats--limits--opacity);\n\n$client-stats--upload--primary--foreground: #2387d9;\n$client-stats--upload--secondary--foreground: rgba($client-stats--upload--primary--foreground, 0.75);\n$client-stats--upload--graph--stroke: rgba(#2387d9, $client-stats--speed--stroke--opacity);\n$client-stats--upload--graph--fill--top: rgba(#2387d9, $client-stats--speed--fill--top--opacity);\n$client-stats--upload--graph--fill--bottom: rgba(#2387d9, $client-stats--speed--fill--bottom--opacity);\n$client-stats--upload--limits--line: rgba(lighten($client-stats--upload--primary--foreground, 20%), $client-stats--limits--opacity);\n\n$client-stats--limits--foreground: $foreground;\n$client-stats--limits--icon--hover: $blue;\n\n$search-torrents--base: #091824;\n$search-torrents--background: rgba($search-torrents--base, 0.3);\n$search-torrents--background--active: $green;\n$search-torrents--border: rgba($search-torrents--background, 0.4);\n$search-torrents--border--active: $search-torrents--background--active;\n$search-torrents--foreground: $sidebar--foreground;\n$search-torrents--foreground--active: #1e8954;\n$search-torrents--placeholder: rgba($sidebar--foreground, 0.4);\n$search-torrents--placeholder--active: #2cad6d;\n\n$search-torrents--icon--foreground: $sidebar--foreground;\n$search-torrents--icon--foreground--active: #2c9e65;\n\n$sidebar-filter--foreground: $sidebar--foreground;\n$sidebar-filter--foreground--header: rgba($sidebar-filter--foreground, 0.5);\n$sidebar-filter--foreground--active: $blue;\n$sidebar-filter--foreground--hover: lighten($sidebar-filter--foreground, 15%);\n\n$sidebar-filter--count--foreground: #132532;\n$sidebar-filter--count--background: #2b4456;\n$sidebar-filter--count--background--active: #3b586d;\n\n\n// torrents list\n$torrent-list--background: #fff;\n$torrent-list--border: rgba($background, 0.15);\n\n$torrent--primary--foreground: #333332;\n$torrent--primary--foreground--stopped: rgba(#333332, 0.5);\n$torrent--primary--foreground--selected: #fff;\n$torrent--primary--foreground--selected--stopped: rgba($torrent--primary--foreground--selected, 0.6);\n$torrent--secondary--foreground: #807f7e;\n$torrent--secondary--foreground--stopped: rgba(#807f7e, 0.5);\n$torrent--secondary--foreground--selected: #fff;\n$torrent--secondary--foreground--selected--stopped: rgba(#fff, 0.6);\n$torrent--tertiary--foreground: #807f7e;\n$torrent--tertiary--foreground--stopped: rgba(#807f7e, 0.5);\n$torrent--tertiary--foreground--selected: rgba(#fff, 0.9);\n$torrent--tertiary--foreground--selected--stopped: rgba(#fff, 0.5);\n\n$torrent--background--hover: #f6f8fa;\n$torrent--background--selected: $blue;\n\n$progress-bar--background: #e3e5e5;\n$progress-bar--background--selected: rgba(#fff, 0.5);\n$progress-bar--background--selected--stopped: rgba(#fff, 0.5);\n$progress-bar--fill: $green;\n\n$progress-bar--fill--stopped: #e3e5e5;\n$progress-bar--fill--completed: $blue;\n$progress-bar--fill--selected: #fff;\n$progress-bar--fill--error: #e95779;\n\n// torrent details\n$torrent-details--background: saturate(lighten(#0c1b26, 2.5%), 4%); //#162835;\n$torrent-details--border: rgba($background, 0.1);\n\n$torrent-details--header--border: rgba(#040d13, 0.3);\n$torrent-details--header--name--foreground: #c7dbeb;\n$torrent-details--header--tertiary--foreground: #7b9cb4;\n$torrent-details--header--progress-bar--track: #2a3e4c;\n$torrent-details--header--progress-bar--fill--error: #be2558;\n\n$torrent-details--navigation--border: rgba(#040d13, 0.35);\n$torrent-details--navigation--item--background--active: rgba(#349cf4, 0.07);\n$torrent-details--navigation--item--foreground--active: #349cf4;\n$torrent-details--navigation--item--border--active: #349cf4;\n$torrent-details--navigation--background: rgba(desaturate(#0c1b26, 15%), 0.1);\n\n$torrent-details--content--background: rgba(desaturate(#0c1b26, 15%), 0.4);\n\n$torrent-details--directory-tree--parent-directory--foreground: #3a5c74;\n$torrent-details--directory-tree--parent-directory--icon--fill: rgba(#3a5c74, 0.5);\n\n$torrent-details--table--foreground: #527893;\n$torrent-details--table--header: rgba(#527893, 0.5);\n$torrent-details--table--header--count--background: rgba(#527893, 0.5);\n$torrent-details--table--header--count--foreground: #0c1b26;\n\n$torrent-details--header--icon--default--fill: rgba(#4d6f87, 0.5);\n\n// tansfer data\n$transfer-data--download: $green;\n$transfer-data--upload: $blue;\n\n// dropdown menu\n$dropdown--background: rgba(#fff, 0.98);\n$dropdown--foreground: #95a2ad;\n$dropdown--container--border: rgba($background, 0.1);\n$dropdown--container--shadow: rgba($background, 0.3);\n$dropdown--label: #abbac7;\n$dropdown--value: #8899a8;\n$dropdown--value--active: #4e6a7c;\n$dropdown--header--border: rgba($background, 0.05);\n$dropdown--item--background--hover: rgba($main-content--background, 0.4);\n$dropdown--item--foreground--hover: darken($dropdown--foreground, 10%);\n$dropdown--item--foreground--active: $blue;\n\n// modal windows\n$modal--background: #fff;\n$modal--overlay: rgba($background, 0.5);\n$modal--header--foreground: $header--foreground;\n$modal--content--border: rgba($background, 0.1);\n$modal--content--shadow: rgba($background, 0.3);\n\n// directory torrent-details--directory-tree--icon-fill\n$directory-tree--filename--foreground: #527893;\n$directory-tree--directory--foreground: $directory-tree--filename--foreground;\n$directory-tree--directory--foreground--open: #719bb7;\n\n$directory-tree--icon--file: #344b5b;\n$directory-tree--icon--folder: rgba(#527893, 0.4);\n$directory-tree--icon--folder--active: rgba(#82aac5, 0.5);\n$directory-tree--icon--folder--open: rgba(#82aac5, 0.5);\n\n$directory-tree--file-details--foreground: #2b4456;\n$directory-tree--file-details--hover--foreground: #527893;\n\n// scrollbars\n$scrollbar--thumb--background--inactive: rgba(#1a2f3d, 0.3);\n$scrollbar--thumb--background--hover: rgba(#1a2f3d, 0.6);\n$scrollbar--thumb--background--inverted--inactive: rgba(#e9eef2, 0.3);\n$scrollbar--thumb--background--inverted--hover: rgba(#e9eef2, 0.6);\n\n// loading indicator\n$loading-indicator--bar--background: #e9eef2;\n$loading-indicator--bar--background--inverse: rgba(#38586d, 0.7);\n$loading-indicator--tick--background: rgba($blue, 0.75);\n$loading-indicator--tick--background--inverse: rgba($blue, 0.75);\n\n// priority meter\n$priority-meter--track--level-0--background: rgba(#436076, 0.2);\n$priority-meter--bar--level-0--background: #436076;\n$priority-meter--track--level-1--background: rgba($blue, 0.2);\n$priority-meter--bar--level-1--background: $blue;\n$priority-meter--track--level-2--background: rgba($green, 0.2);\n$priority-meter--bar--level-2--background: $green;\n","html,\nbody {\n height: 100%;\n overflow: hidden;\n}\n\n.container {\n height: 100%;\n width: 100%;\n}\n\n.flood {\n align-items: stretch;\n display: flex;\n height: 100%;\n}\n\n.application {\n\n &__content {\n display: flex;\n height: 100vh;\n flex: 1 2 auto;\n flex-direction: column;\n position: relative;\n }\n\n &__panel {\n display: flex;\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n\n &--torrent-list {\n transition: transform 0.5s;\n z-index: 2;\n\n &.is-open {\n transform: translateX($torrent-details--width);\n }\n }\n\n &--torrent-details {\n right: 100% - $torrent-details--width;\n width: $torrent-details--width;\n z-index: 1;\n }\n }\n}\n\n.torrent {\n\n &__header {\n flex: 1;\n min-height: 35px;\n max-height: 35px;\n }\n\n &__list {\n\n &__wrapper {\n flex: 1;\n\n &--custom-scroll {\n flex: 1;\n height: auto !important;\n }\n }\n }\n}\n","body {\n background: $background;\n}\n\nul {\n list-style: none;\n}\n",".action-bar {\n background: $action-bar--background;\n color: $action-bar--foreground;\n display: flex;\n flex: 0 0 60px;\n position: relative;\n\n &:after {\n background: $torrent-list--border;\n bottom: 0;\n content: '';\n height: 1px;\n left: 9px;\n position: absolute;\n right: 0;\n width: auto;\n }\n\n &__item {\n flex: 3;\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n }\n\n &--sort-torrents {\n max-width: 225px;\n\n .dropdown {\n margin: 5px 0 0 15px;\n\n &__content {\n min-width: 250px;\n }\n }\n }\n\n &--torrent-operations {\n\n .dropdown {\n display: inline-block;\n height: 60px;\n\n &__content {\n min-width: 430px;\n right: 4px;\n }\n }\n }\n }\n\n &__group {\n display: inline-block;\n font-size: 0;\n padding: 0 15px;\n\n &--has-divider {\n position: relative;\n\n &:before {\n background: $action-bar--group--border;\n content: '';\n position: absolute;\n height: 80%;\n left: 0;\n top: 10%;\n width: 1px;\n }\n }\n }\n}\n\n.actions {\n list-style: none;\n}\n\n.action {\n box-shadow:\n 1px 0 transparent,\n -1px 0 transparent;\n cursor: pointer;\n display: inline-block;\n height: 60px;\n position: relative;\n width: 60px;\n text-align: center;\n transition: background 0.25s, box-shadow 0.25s;\n\n &:hover {\n background: $action--background--hover;\n box-shadow:\n 1px 0 $action--border--hover,\n -1px 0 $action--border--hover;\n\n .icon {\n fill: $action--foreground--hover;\n }\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 100%;\n visibility: hidden;\n }\n\n .icon {\n fill: $action--foreground;\n height: 25px;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translateX(-50%) translateY(-50%);\n width: 30px;\n }\n}\n",".application {\n\n &__content {\n background: $main-content--background;\n }\n}\n",".badge {\n background: $sidebar-filter--count--background;\n border-radius: 100px;\n color: $sidebar-filter--count--foreground;\n display: inline-block;\n font-size: 0.8em;\n font-weight: 800;\n line-height: 1;\n margin-left: 10px;\n padding: 1px 5px;\n transition: background 0.25s;\n vertical-align: baseline;\n}\n",".client-stats {\n height: 200px;\n position: relative;\n\n .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n .transfer-data-enter {\n opacity: 0;\n transition: opacity 1s;\n\n &.transfer-data-enter-active {\n opacity: 1;\n }\n }\n\n .transfer-data-leave {\n opacity: 1;\n transition: opacity 1s;\n\n &.transfer-data-leave-active {\n opacity: 0;\n }\n }\n}\n\n.client-stat {\n align-items: center;\n display: flex;\n height: 100px;\n padding: 0 20px;\n\n &__icon,\n &__data {\n position: relative;\n vertical-align: top;\n z-index: 1;\n }\n\n &__icon {\n flex: 0 0 23px;\n\n .icon {\n display: inline-block;\n height: 25px;\n margin: 6px 0 0 -5px;\n width: auto;\n }\n }\n\n &__data {\n flex: 1;\n\n &--primary,\n &--secondary {\n display: block;\n font-weight: 100;\n line-height: 1.2;\n }\n\n &--primary {\n font-size: 1.75em;\n white-space: nowrap;\n\n .unit {\n font-size: 0.65em;\n margin-bottom: 0;\n opacity: 0.5;\n position: relative;\n top: -0.1em;\n }\n }\n\n &--secondary {\n font-size: 0.8em;\n font-style: italic;\n font-weight: 400;\n }\n }\n}\n\n.client-stat {\n\n &--limits {\n background: none;\n border: none;\n color: $client-stats--limits--foreground;\n display: block;\n outline: none;\n padding: 10px 15px;\n font-size: 0.85em;\n text-align: left;\n transition: color 0.25s;\n vertical-align: middle;\n width: 100%;\n\n .icon {\n display: inline-block;\n fill: $client-stats--limits--foreground;\n margin: -2px 5px 0 0;\n transition: fill 0.25s;\n vertical-align: middle;\n width: 14.5px;\n\n .limits {\n\n &__bars {\n\n &--top {\n opacity: 0.4;\n }\n\n &--bottom {\n opacity: 0.6;\n }\n }\n }\n }\n\n &:hover {\n color: $client-stats--limits--icon--hover;\n\n .icon {\n fill: $client-stats--limits--icon--hover;\n }\n }\n }\n}\n\n.client-stat {\n position: relative;\n\n .graph {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 0;\n\n svg {\n height: 100%;\n width: 100%;\n }\n\n &__line {\n fill: none;\n\n &--limit {\n stroke-dasharray: 3px 4px;\n stroke-width: 1px;\n }\n\n &--rate {\n stroke-width: 1.1px;\n }\n }\n\n }\n\n &--download {\n\n .icon {\n fill: $client-stats--download--secondary--foreground;\n }\n\n .client-stat {\n\n &__data {\n\n &--primary {\n color: $client-stats--download--primary--foreground;\n }\n\n &--secondary {\n color: $client-stats--download--secondary--foreground;\n }\n\n }\n\n }\n\n .graph {\n\n .graph--download--gradient--top {\n stop-color: $client-stats--download--graph--fill--top;\n }\n\n .graph--download--gradient--bottom {\n stop-color: $client-stats--download--graph--fill--bottom;\n }\n\n &__area {\n fill: url('#graph--download--gradient')\n }\n\n &__line {\n\n &--limit {\n stroke: $client-stats--download--limits--line;\n }\n\n &--rate {\n stroke: $client-stats--download--graph--stroke;\n }\n }\n\n }\n\n }\n\n &--upload {\n\n .icon {\n fill: $client-stats--upload--secondary--foreground;\n }\n\n .client-stat {\n\n &__data {\n\n &--primary {\n color: $client-stats--upload--primary--foreground;\n }\n\n &--secondary {\n color: $client-stats--upload--secondary--foreground;\n }\n\n }\n\n }\n\n .graph {\n\n .graph--upload--gradient--top {\n stop-color: $client-stats--upload--graph--fill--top;\n }\n\n .graph--upload--gradient--bottom {\n stop-color: $client-stats--upload--graph--fill--bottom;\n }\n\n &__area {\n fill: url('#graph--upload--gradient')\n }\n\n &__line {\n\n &--limit {\n stroke: $client-stats--upload--limits--line;\n }\n\n &--rate {\n stroke: $client-stats--upload--graph--stroke;\n }\n }\n\n }\n\n }\n\n}\n",".directory-tree {\n\n .icon {\n display: inline-block;\n fill: $directory-tree--icon--folder;\n height: 14px;\n margin-right: 6px;\n width: 14px;\n }\n\n &__node {\n color: $directory-tree--filename--foreground;\n line-height: 1.75;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n\n &--group {\n padding-left: 10px;\n position: relative;\n\n &:after {\n background: rgba(#527893, 0.1);\n content: '';\n height: 100%;\n left: 5px;\n position: absolute;\n top: -5px;\n width: 2px;\n }\n }\n\n &--directory {\n color: $directory-tree--directory--foreground;\n cursor: pointer;\n transition: color 0.125s;\n\n &.is-expanded {\n color: $directory-tree--directory--foreground--open;\n font-weight: 500;\n\n .icon {\n fill: $directory-tree--icon--folder--active;\n }\n }\n\n .icon {\n fill: $directory-tree--icon--folder;\n }\n }\n\n .file {\n display: flex;\n line-height: 1.7;\n width: 100%;\n\n &:hover {\n\n .file {\n\n &__detail {\n\n &--size,\n &--priority {\n color: $directory-tree--file-details--hover--foreground;\n }\n }\n }\n }\n\n .icon {\n fill: $directory-tree--icon--file;\n }\n\n &__detail {\n flex: 1 1 auto;\n overflow: hidden;\n padding-right: $spacing-unit * 1/4;\n text-overflow: ellipsis;\n\n &--size,\n &--priority {\n color: $directory-tree--file-details--foreground;\n flex: 0 0 auto;\n font-size: 0.95em;\n text-align: right;\n transition: color 0.25s;\n }\n\n &--priority {\n\n .icon {\n height: auto;\n margin-right: 0;\n width: 16px;\n }\n }\n\n &:last-child {\n padding-right: 0;\n }\n }\n }\n\n &--file-list {\n margin-bottom: 3px;\n }\n }\n\n &__parent-directory {\n margin-left: -1px;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .icon {\n fill: $torrent-details--directory-tree--parent-directory--icon--fill;\n margin-right: 8px;\n vertical-align: middle;\n }\n }\n\n &__tree {\n\n .directory-tree__tree {\n padding-left: 6px;\n }\n }\n}\n",".dropdown {\n display: inline-block;\n outline: none;\n position: relative;\n z-index: 2;\n\n &__button,\n &__trigger {\n cursor: pointer;\n }\n\n &__button {\n display: block;\n padding: 12px 15px 7px 15px;\n text-align: left;\n width: auto;\n word-wrap: none;\n }\n\n &__content {\n background: $dropdown--background;\n border-radius: 3px;\n box-shadow:\n 0 0 0 1px $dropdown--container--border,\n 0 0 35px $dropdown--container--shadow;\n color: $dropdown--foreground;\n left: 0;\n position: absolute;\n text-align: left;\n top: 0;\n z-index: 2;\n }\n\n &.is-expanded {\n\n .dropdown {\n\n &__header {\n\n .dropdown {\n\n &__value {\n color: $dropdown--value--active;\n }\n }\n }\n }\n }\n\n &__label {\n color: $dropdown--label;\n display: block;\n font-size: 0.65em;\n font-weight: 500;\n letter-spacing: 0.1em;\n line-height: 0.9em;\n text-transform: uppercase;\n\n .dropdown__button & {\n cursor: pointer;\n }\n }\n\n &__value {\n color: $dropdown--value;\n transition: color 0.25s;\n\n &:after {\n border-top: 5px solid $dropdown--value;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n content: '';\n display: inline-block;\n margin-left: 10px;\n vertical-align: middle;\n }\n }\n\n &__header {\n position: relative;\n\n &:after {\n background: $dropdown--header--border;\n bottom: 0;\n content: '';\n display: block;\n height: 1px;\n left: 5%;\n position: absolute;\n width: 90%;\n }\n }\n\n &__items {\n display: flex;\n padding: 10px 0;\n }\n\n &__list {\n flex: 1;\n }\n\n &__item {\n padding: 5px 15px;\n\n &.is-selectable {\n cursor: pointer;\n display: block;\n font-size: 0.9em;\n transition: background 0.25s, color 0.25s;\n\n &:hover {\n background: $dropdown--item--background--hover;\n color: $dropdown--item--foreground--hover;\n }\n\n &.is-selected {\n color: $dropdown--item--foreground--active;\n }\n }\n }\n\n &--align-right & {\n left: auto;\n right: 0;\n }\n}\n\n.dropdown {\n\n &__content {\n\n &-enter {\n animation: fade-in 0.25s both;\n }\n\n &-leave {\n animation: fade-out 0.25s both;\n }\n }\n}\n\n.dropdown {\n\n &__content {\n\n &__container {\n padding: 25px 30px;\n }\n }\n}\n",".floating-action {\n\n &__button {\n background: $textbox-repeater--button--background;\n border: none;\n border-radius: 16px;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border;\n cursor: pointer;\n height: 16px;\n outline: none;\n margin-right: 8px;\n padding: 0;\n position: relative;\n transition: background 0.25s, box-shadow 0.25s;\n width: 16px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background: $textbox-repeater--button--background--hover;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border--hover;\n\n .icon {\n fill: $textbox-repeater--button--foreground--hover;\n }\n }\n\n .icon {\n height: 8px;\n fill: $textbox-repeater--button--foreground;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translate(-50%, -50%);\n width: 8px;\n }\n }\n}\n","@keyframes loading-indicator-dots-pulse {\n 0% {\n fill-opacity: 0.2;\n }\n\n 100% {\n fill-opacity: 0.8;\n }\n}\n\n.icon {\n\n &--eta {\n\n .icon {\n\n &__ring {\n fill-opacity: 1;\n }\n }\n }\n\n &--loading-indicator {\n\n .loading-indicator {\n\n &--dots {\n\n &__dot {\n animation: loading-indicator-dots-pulse 0.6s linear alternate infinite;\n fill: $white;\n\n &--center {\n animation-delay: 0.2s;\n }\n\n &--right {\n animation-delay: 0.4s;\n }\n }\n }\n }\n }\n}\n","@keyframes loading-indicator-swipe {\n 0% {\n transform: translateX(-100%);\n }\n\n 50% {\n transform: translateX(400%);\n }\n\n 100% {\n transform: translateX(400%);\n }\n}\n\n.loading-indicator {\n height: 18px;\n position: relative;\n width: 32px;\n\n &.is-inverse {\n\n .loading-indicator {\n\n &__bar {\n background: $loading-indicator--bar--background--inverse;\n\n &:after {\n background: $loading-indicator--tick--background--inverse;\n }\n }\n }\n }\n\n &__bar {\n background: $loading-indicator--bar--background;\n border-radius: 10px;\n height: 3px;\n left: 0;\n overflow: hidden;\n position: absolute;\n transform: translateY(0);\n width: 100%;\n\n &:after {\n animation: loading-indicator-swipe 3s ease-in-out infinite;\n background: $loading-indicator--tick--background;\n border-radius: 10px;\n content: '';\n display: block;\n height: 100%;\n transform: translateX(-100%);\n width: 25%;\n }\n\n &--1 {\n top: 0;\n }\n\n &--2 {\n top: 50%;\n transform: translateY(-50%);\n\n &:after {\n animation-delay: 0.5s;\n }\n }\n\n &--3 {\n bottom: 0;\n\n &:after {\n animation-delay: 1s;\n }\n }\n }\n}\n",".modal {\n background: $modal--overlay;\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n transition: opacity 0.5s;\n width: 100%;\n z-index: 100;\n\n &__content {\n background: $modal--background;\n border-radius: 5px;\n box-shadow:\n 0 0 0 1px $modal--content--border,\n 0 0 35px $modal--content--shadow;\n left: 50%;\n max-height: 80%;\n max-width: 80%;\n overflow: auto;\n padding: 30px;\n position: absolute;\n top: 10%;\n transform: translate(-50%, 0);\n width: 500px;\n\n &--align-center {\n text-align: center;\n }\n }\n\n &__footer {\n margin-top: $spacing-unit;\n }\n\n &__button-group {\n text-align: right;\n\n .button {\n\n & + .button {\n margin-left: 20px;\n }\n }\n }\n\n &__header {\n color: $modal--header--foreground;\n font-size: 1.1em;\n font-weight: 400;\n margin-bottom: 20px;\n }\n\n &__animation-enter {\n opacity: 0;\n }\n\n &__animation-enter-active {\n opacity: 1;\n }\n\n &__animation-leave {\n opacity: 1;\n pointer-events: none;\n }\n\n &__animation-leave-active {\n opacity: 0;\n }\n}\n",".priority-meter {\n height: 8px;\n position: relative;\n width: 17px;\n\n &__wrapper {\n display: inline-block;\n padding: 5px;\n vertical-align: middle;\n }\n\n &:before,\n &:after {\n content: '';\n display: block;\n position: absolute;\n }\n\n &:before {\n height: 2px;\n left: 0;\n top: 3px;\n transition: background 0.25s;\n width: 100%;\n }\n\n &:after {\n height: 100%;\n top: 0;\n transition: background 0.25s, left 0.25s;\n width: 2px;\n }\n\n &--level-0 {\n\n &:before {\n background: $priority-meter--track--level-0--background;\n }\n\n &:after {\n left: 0;\n background: $priority-meter--bar--level-0--background;\n }\n }\n\n &--level-1 {\n\n &:before {\n background: $priority-meter--track--level-1--background;\n }\n\n &:after {\n left: 8px;\n background: $priority-meter--bar--level-1--background;\n }\n }\n\n &--level-2 {\n\n &:before {\n background: $priority-meter--track--level-2--background;\n }\n\n &:after {\n background: $priority-meter--bar--level-2--background;\n left: 15px;\n }\n }\n}\n",".progress-bar {\n height: 3px;\n position: relative;\n transition: opacity 0.25s;\n z-index: 1;\n\n .is-selected.is-stopped & {\n opacity: 0.5;\n }\n\n &:after {\n background: $progress-bar--background;\n content: '';\n height: 1px;\n left: 0;\n position: absolute;\n z-index: 0;\n top: 1px;\n transition: background 0.25s;\n width: 100%;\n\n .is-selected & {\n background: $progress-bar--background--selected;\n }\n\n .is-selected.is-stopped & {\n background: $progress-bar--background--selected--stopped;\n }\n }\n\n &__fill {\n background: $progress-bar--fill;\n bottom: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: background 0.25s, width 0.25s;\n z-index: 1;\n\n .is-seeding & {\n background: $progress-bar--fill--completed;\n }\n\n .is-completed &,\n .is-stopped & {\n background: $progress-bar--fill--stopped;\n }\n\n .is-selected & {\n background: $progress-bar--fill--selected;\n }\n\n .has-error & {\n background: $progress-bar--fill--error;\n }\n }\n}\n",".scrollbars {\n\n &__thumb {\n background: $scrollbar--thumb--background--inactive;\n border-radius: 10px;\n cursor: pointer;\n opacity: 0;\n transition: background 0.25s, opacity 0.25s;\n\n &:active {\n opacity: 1;\n }\n\n &:hover,\n &:active {\n background: $scrollbar--thumb--background--hover;\n }\n\n .is-inverted & {\n background: $scrollbar--thumb--background--inverted--inactive;\n\n &:hover,\n &:active {\n background: $scrollbar--thumb--background--inverted--hover;\n }\n }\n }\n\n &:hover {\n\n .scrollbars__thumb {\n opacity: 1;\n }\n }\n}\n",".application {\n\n &__sidebar {\n box-shadow: 1px 0 $sidebar--border;\n color: $sidebar--foreground;\n flex: 1;\n min-width: 200px;\n max-width: 240px;\n overflow: auto;\n position: relative;\n z-index: 2;\n }\n}\n\n.sidebar {\n\n &__item {\n\n &--search {\n position: relative;\n\n .icon {\n fill: $search-torrents--icon--foreground;\n height: 22px;\n left: 17px;\n opacity: 0.5;\n position: absolute;\n top: 50%;\n transition: fill 0.25s, opacity 0.25s;\n transform: translateY(-50%);\n width: 22px;\n }\n\n .textbox {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 1px solid $search-torrents--border;\n border-left: none;\n border-right: none;\n border-radius: 0;\n background: $search-torrents--background;\n box-shadow: none;\n color: $search-torrents--foreground;\n display: block;\n font-size: 1em;\n outline: none;\n padding: 12px 0 12px 45px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%;\n\n &::placeholder {\n color: $search-torrents--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n }\n\n &.is-in-use {\n\n .icon {\n fill: $search-torrents--icon--foreground--active;\n opacity: 1;\n }\n\n .textbox {\n background: $search-torrents--background--active;\n border-bottom: 1px solid $search-torrents--border--active;\n border-top: 1px solid $search-torrents--border--active;\n color: $search-torrents--foreground--active;\n\n &::placeholder {\n color: $search-torrents--placeholder--active;\n }\n }\n }\n }\n\n &--speed-limit {\n padding-left: 5px;\n padding-top: 5px;\n\n .dropdown {\n\n &__content {\n min-width: 180px;\n }\n\n &__items {\n font-size: 0.9em;\n }\n }\n }\n }\n}\n",".sidebar-filter {\n font-size: 0.85em;\n padding: 30px 0;\n\n & + .sidebar-filter {\n padding-top: 0;\n }\n\n &__item {\n color: $sidebar-filter--foreground;\n cursor: pointer;\n font-weight: 400;\n padding: 3px 20px;\n transition: color 0.25s;\n\n &:hover {\n color: $sidebar-filter--foreground--hover;\n\n .icon {\n fill: $sidebar-filter--foreground--hover;\n }\n }\n\n &.is-active {\n color: $sidebar-filter--foreground--active;\n font-weight: 700;\n\n .badge {\n background: $sidebar-filter--count--background--active;\n }\n\n .icon {\n fill: $sidebar-filter--foreground--active;\n }\n }\n\n .icon {\n display: inline-block;\n fill: $sidebar-filter--foreground;\n height: 14px;\n margin-right: 7px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: auto;\n }\n }\n\n .badge {\n background: $sidebar-filter--count--background;\n color: $sidebar-filter--count--foreground;\n }\n}\n\n\n.sidebar-filter {\n\n &__item {\n\n &--heading {\n cursor: default;\n font-size: 0.8em;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n\n &,\n &:hover {\n color: $sidebar-filter--foreground--header;\n }\n }\n }\n}\n",".textbox-repeater {\n\n .floating-action {\n\n &__group {\n margin-top: -8px;\n position: absolute;\n right: -8px;\n top: 50%;\n }\n\n &__button {\n position: relative;\n }\n }\n\n .textbox {\n\n &__wrapper {\n position: relative;\n }\n }\n}\n",".application {\n\n &__panel {\n\n &--torrent-details {\n background: $torrent-details--background;\n }\n }\n}\n\n.torrent-details {\n background: $torrent-details--background;\n bottom: 0;\n box-shadow: -1px 0 0 $torrent-details--border;\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n left: 0;\n min-width: 400px;\n overflow: auto;\n position: absolute;\n right: 0;\n top: 0;\n transition: opacity 1s;\n z-index: 2;\n\n &__heading {\n box-shadow: 0 1px 0 $torrent-details--header--border;\n flex: 0 0 auto;\n padding: $spacing-unit * 1/2 $spacing-unit $spacing-unit * 2/3 $spacing-unit;\n\n &.is-stopped {\n\n .torrent {\n\n &__details {\n\n &--tertiary {\n color: $torrent-details--header--tertiary--foreground;\n }\n }\n }\n }\n\n &.has-error {\n\n .progress-bar {\n\n &__fill {\n background: $torrent-details--header--progress-bar--fill--error;\n }\n }\n }\n\n .torrent {\n\n &__details {\n\n &--name {\n color: $torrent-details--header--name--foreground;\n font-size: 1.7em;\n font-weight: 300;\n }\n\n &--tertiary {\n color: $torrent-details--header--tertiary--foreground;\n font-size: 1em;\n margin-bottom: $spacing-unit * 1/2;\n }\n\n &--download,\n &--upload,\n &--eta,\n &--ratio {\n\n .icon {\n height: 12px;\n margin-right: 3px;\n margin-top: -3px;\n vertical-align: middle;\n width: 12px;\n }\n }\n\n &--ratio,\n &--eta {\n\n .icon {\n fill: $torrent-details--header--icon--default--fill;\n }\n }\n\n &--eta {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n\n .progress-bar {\n\n &:after {\n background: $torrent-details--header--progress-bar--track;\n }\n }\n }\n\n &__table {\n color: $torrent-details--table--foreground;\n width: 100%;\n\n &__heading {\n\n &--primary {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.125em;\n }\n\n &--secondary {\n color: $torrent-details--table--header;\n font-size: 0.7em;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n }\n }\n }\n\n &__content {\n flex: 1;\n overflow: auto;\n padding: $spacing-unit * 2/3 $spacing-unit;\n\n &__wrapper {\n background: $torrent-details--content--background;\n display: flex;\n flex: 1;\n overflow: hidden;\n }\n }\n\n &__navigation {\n background: $torrent-details--navigation--background;\n box-shadow: 1px 0 0 $torrent-details--navigation--border;\n min-width: 125px;\n padding: $spacing-unit * 1/2 0;\n\n .navigation {\n\n &__item {\n cursor: pointer;\n padding: $spacing-unit * 1/4 $spacing-unit;\n text-align: right;\n transition: background 0.25s, box-shadow 0.25s, color 0.25s;\n\n &.is-active {\n background: $torrent-details--navigation--item--background--active;\n box-shadow: 1px 0 0 $torrent-details--navigation--item--border--active;\n color: $torrent-details--navigation--item--foreground--active;\n }\n }\n }\n }\n\n &__section {\n\n &__heading,\n &__null-data {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.125em;\n }\n\n &__heading {\n\n .badge {\n background: $torrent-details--table--header--count--background;\n color: $torrent-details--table--header--count--foreground;\n }\n }\n }\n}\n\n.torrent-details-enter {\n opacity: 0;\n}\n\n.torrent-details-enter-active {\n opacity: 1;\n}\n\n.torrent-details-leave {\n opacity: 0;\n transition: opacity 0.5s;\n}\n",".torrents {\n display: flex;\n flex: 1 1 100px;\n position: relative;\n\n &:after {\n background: $torrent-list--background;\n bottom: 0;\n box-shadow: -1px 0 0 0 $torrent-list--border;\n content: '';\n height: auto;\n left: 10px;\n position: absolute;\n right: 0;\n top: 0;\n }\n\n .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.torrent {\n\n &__list {\n margin: 0 0 0 10px;\n padding: 10px 0;\n position: relative;\n\n &__wrapper {\n list-style: none;\n max-width: 100%;\n opacity: 1;\n overflow: auto;\n transition: opacity 1s;\n user-select: none;\n z-index: 1;\n }\n\n &--loading {\n\n &-enter {\n opacity: 0;\n transition: opacity 1s;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-leave {\n opacity: 1;\n transition: opacity 1s;\n\n &-active {\n opacity: 0;\n }\n }\n }\n\n &--empty {\n opacity: 0;\n }\n }\n}\n\n.torrent {\n cursor: default;\n padding: 10px 20px;\n position: relative;\n transition: background 0.25s;\n\n &:hover {\n background: $torrent--background--hover;\n\n .torrent {\n\n &__more-info {\n opacity: 1;\n }\n }\n }\n\n &.is-selected {\n background: $torrent--background--selected;\n }\n\n &__more-info {\n height: 20px;\n margin-top: -10px;\n position: absolute;\n left: -7px;\n opacity: 0;\n top: 50%;\n transition: background 0.25s, box-shadow 0.25s, opacity 0.25s;\n width: 20px;\n }\n}\n\n.torrent {\n\n &__details {\n align-items: center;\n display: flex;\n flex: 1;\n flex-flow: row wrap;\n list-style: none;\n\n &--primary,\n &--secondary,\n &--tertiary {\n transition: color 0.25s;\n }\n\n &--primary {\n color: $torrent--primary--foreground;\n flex: 4;\n line-height: 1.3;\n white-space: nowrap;\n\n .is-stopped & {\n color: $torrent--primary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--primary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--primary--foreground--selected--stopped;\n }\n }\n\n &--secondary {\n align-items: flex-end;\n color: $torrent--secondary--foreground;\n flex: 1;\n font-size: 0.75em;\n min-width: 200px;\n\n li {\n flex: 1 1 auto;\n min-width: 15%;\n\n &.torrent__details--ratio {\n max-width: 30px;\n }\n }\n\n .is-stopped & {\n color: $torrent--secondary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--secondary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--secondary--foreground--selected--stopped;\n }\n }\n\n &--tertiary {\n color: $torrent--tertiary--foreground;\n display: block;\n font-size: 0.75em;\n margin: 0 0 3px 0;\n\n li {\n display: inline-block;\n margin-right: 1em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .is-stopped & {\n color: $torrent--tertiary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--tertiary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--tertiary--foreground--selected--stopped;\n }\n }\n\n &__label {\n margin-right: 0.5em;\n opacity: 0.5;\n }\n }\n}\n\n.torrent {\n\n &__details {\n\n &--eta {\n opacity: 0;\n transition: opacity 1s, visibility 1s;\n visibility: hidden;\n\n .torrent__details--segment {\n margin-right: 0.25em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .is-actively-downloading & {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n}\n\n.view {\n\n &--torrent-list {\n background: #e9eef2;\n box-shadow: -1px 0 $torrent-list--border;\n display: flex;\n flex-direction: column;\n flex: 1;\n flex: 0 1 100%;\n }\n}\n",".transfer-data {\n\n &--download {\n color: $transfer-data--download;\n\n .icon {\n fill: $transfer-data--download;\n }\n }\n\n &--upload {\n color: $transfer-data--upload;\n\n .icon {\n fill: $transfer-data--upload;\n }\n }\n}\n"],"sourceRoot":"/source/"}
\ No newline at end of file
+{"version":3,"sources":["style.css","../../../node_modules/inuit-defaults/_settings.defaults.scss","../../../node_modules/inuit-normalize/_generic.normalize.scss","tools/_variables.scss","base/_typography.scss","../../../node_modules/inuit-reset/_generic.reset.scss","../../../node_modules/inuit-box-sizing/_generic.box-sizing.scss","../../../node_modules/inuit-page/_base.page.scss","tools/_reset.scss","base/_animations.scss","base/_form-elements.scss","tools/_colors.scss","base/_layout.scss","base/_main.scss","components/_action-bar.scss","components/_application-content.scss","components/_badge.scss","components/_client-stats.scss","components/_directory-tree.scss","components/_dropdown.scss","components/_floating-action.scss","components/_icons.scss","components/_loading-indicator.scss","components/_modals.scss","components/_priority-meter.scss","components/_progress-bar.scss","components/_scrollbars.scss","components/_sidebar.scss","components/_sidebar-filter.scss","components/_textbox-repeater.scss","components/_torrent-details-panel.scss","components/_torrents.scss","components/_transfer-data.scss"],"names":[],"mappings":"AAAA,iBAAiB;ACAjB;;;;GAIG;ACJH,4EAA4E;AAE5E;;;;GAIG;ACLH,qGAAY;ACDZ,uFAAY;AFQZ;EACE,wBAAwB;EAAE,OAAO;EACjC,2BAA2B;EAAE,OAAO;EACpC,+BAA+B;EAAE,OAAO,EACzC;;AAED;;GAEG;AAEH;EACE,UAAU,EACX;;AAED;gFACgF;AAEhF;;;;;GAKG;AAEH;;;;;;;;;;;;;EAaE,eAAe,EAChB;;AAED;;;GAGG;AAEH;;;;EAIE,sBAAsB;EAAE,OAAO;EAC/B,yBAAyB;EAAE,OAAO,EACnC;;AAED;;;GAGG;AAEH;EACE,cAAc;EACd,UAAU,EACX;;AAED;;;GAGG;AFEH;;EEEE,cAAc,EACf;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,8BAA8B,EAC/B;;AAED;;;GAGG;AAEH;;EAEE,WAAW,EACZ;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,0BAA0B,EAC3B;;AAED;;GAEG;AAEH;;EAEE,kBAAkB,EACnB;;AAED;;GAEG;AAEH;EACE,mBAAmB,EACpB;;AAED;;;GAGG;AAEH;EACE,eAAe;EACf,iBAAiB,EAClB;;AAED;;GAEG;AAEH;EACE,iBAAiB;EACjB,YAAY,EACb;;AAED;;GAEG;AAEH;EACE,eAAe,EAChB;;AAED;;GAEG;AAEH;;EAEE,eAAe;EACf,eAAe;EACf,mBAAmB;EACnB,yBAAyB,EAC1B;;AAED;EACE,YAAY,EACb;;AAED;EACE,gBAAgB,EACjB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,UAAU,EACX;;AAED;;GAEG;AAEH;EACE,iBAAiB,EAClB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,iBAAiB,EAClB;;AAED;;GAEG;AAEH;EACE,wBAAwB;EACxB,UAAU,EACX;;AAED;;GAEG;AAEH;EACE,eAAe,EAChB;;AAED;;GAEG;AAEH;;;;EAIE,kCAAkC;EAClC,eAAe,EAChB;;AAED;gFACgF;AAEhF;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;EAKE,eAAe;EAAE,OAAO;EACxB,cAAc;EAAE,OAAO;EACvB,UAAU;EAAE,OAAO,EACpB;;AAED;;GAEG;AAEH;EACE,kBAAkB,EACnB;;AAED;;;;;GAKG;AAEH;;EAEE,qBAAqB,EACtB;;AAED;;;;;;GAMG;AAEH;;;;EAIE,2BAA2B;EAAE,OAAO;EACpC,gBAAgB;EAAE,OAAO,EAC1B;;AAED;;GAEG;AAEH;;EAEE,gBAAgB,EACjB;;AAED;;GAEG;AAEH;;EAEE,UAAU;EACV,WAAW,EACZ;;AAED;;;GAGG;AAEH;EACE,oBAAoB,EACrB;;AAED;;;;;;GAMG;AAEH;;EAEE,uBAAuB;EAAE,OAAO;EAChC,WAAW;EAAE,OAAO,EACrB;;AAED;;;;GAIG;AAEH;;EAEE,aAAa,EACd;;AAED;;;GAGG;AAEH;EACE,8BAA8B;EAAE,OAAO;EACvC,wBAAwB;EAAE,OAAO,EAClC;;AAED;;;;GAIG;AAEH;;EAEE,yBAAyB,EAC1B;;AAED;;GAEG;AAEH;EACE,0BAA0B;EAC1B,cAAc;EACd,+BAA+B,EAChC;;AAED;;;GAGG;AAEH;EACE,UAAU;EAAE,OAAO;EACnB,WAAW;EAAE,OAAO,EACrB;;AAED;;GAEG;AAEH;EACE,eAAe,EAChB;;AAED;;;GAGG;AAEH;EACE,kBAAkB,EACnB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,0BAA0B;EAC1B,kBAAkB,EACnB;;AAED;;EAEE,WAAW,EACZ;;AGvaD;wCAEwC;AAExC;;;GAGG;AACH;;;;;;;;EAQI,UAAW;EACX,WAAW,EACd;;AAMD;;GAEG;AACH;;EAEI,aAAa,EAChB;;AAMD;;GAEG;AACH;;EAEI,sBAAsB,EACzB;;AAMD;;GAEG;AACH;EACI,yBAAyB,EAC5B;;ACrDD;wCAEwC;AAExC;;;;;GAKG;AACH;EAGY,uBAAuB,EAClC;;AAED;EAOgB,oBAAoB,EAC3B;;ACxBT;wCAEwC;AAExC;;;;;;;;;;;;;GAaG;AACH;EACI,eAAiC;EAAgB,SAAS;EAC1D,iBAAoC;EAA0B,SAAS;EACvE,uBNDgC;EMEhC,YNHgC;EMIhC,mBAAmB;EAAE,SAAS;EAC9B,iBAAiB;EAAE,SAAS;EAC5B,+BAA+B;EAAE,SAAS;EACtC,2BAA2B;EAAE,SAAS;EAC1C,mCAAmC;EAAE,SAAS;EAC7C,oCAAoC;EAAE,SAAS,EACnD;;AC7BD;EACE,qBAAqB;EACrB,iBAAiB,EAClB;;ACHD;EAEE;IACE,WAAW,EAAA;EAGb;IACE,WAAW,EAAA,EAAA;;AAPf;EAEE;IACE,WAAW,EAAA;EAGb;IACE,WAAW,EAAA,EAAA;;AAKf;EAEE;IACE,WAAW,EAAA;EAGb;IACE,WAAW,EAAA,EAAA;;AAPf;EAEE;IACE,WAAW,EAAA;EAGb;IACE,WAAW,EAAA,EAAA;;ACnBf;;EAEE,iBAAiB;EACjB,sBAAsB;EACtB,yBAAyB;EACzB,cAAc,EACf;;AAED;EACE,qCCFgC;EDGhC,mBAAmB;EACnB,0BCJgC;EDKhC,eCPkB;EDQlB,eAAe;EACf,iBAAiB;EACjB,mBAAmB;EACnB,gEAAwD;EAAxD,wDAAwD;EACxD,YAAY,EAkBb;EA3BD;IAYI,eCJ0B;IDK1B,mBAAmB;IACnB,gCAAwB;IAAxB,wBAAwB,EACzB;EAfH;IAYI,eCJ0B;IDK1B,mBAAmB;IACnB,gCAAwB;IAAxB,wBAAwB,EACzB;EAfH;IAYI,eCJ0B;IDK1B,mBAAmB;IACnB,gCAAwB;IAAxB,wBAAwB,EACzB;EAfH;IAYI,eCJ0B;IDK1B,mBAAmB;IACnB,gCAAwB;IAAxB,wBAAwB,EACzB;EAfH;IAkBI,qCCnB8B;IDoB9B,sBCpB8B;IDqB9B,eC5BU,EDiCX;IAzBH;MAuBM,eCfwB,EDgBzB;IAxBL;MAuBM,eCfwB,EDgBzB;IAxBL;MAuBM,eCfwB,EDgBzB;IAxBL;MAuBM,eCfwB,EDgBzB;;AAKL;EACE,wBAAwB;EACxB,aAAa;EACb,mBAAmB;EACnB,gBAAgB;EAChB,iBAAiB;EACjB,iBAAiB;EACjB,kBAAkB;EAClB,qCAA6B;EAA7B,6BAA6B,EAuC9B;EA/CD;IAaM,aAAa;IACb,oBAAuB;IACvB,uBAAuB;IACvB,YAAY,EASb;IAzBL;MAmBQ,eAAe,EAChB;IApBP;MAuBQ,gBAAgB,EACjB;EAxBP;IA6BI,oBC3D8B;ID4D9B,eClCsC,EDwCvC;IApCH;MAiCM,oBClC0C;MDmC1C,eCpC0C,EDqC3C;EAnCL;IAuCI,oBC5EU;ID6EV,YC/C8B;IDgD9B,oBAAoB,EAKrB;IA9CH;MA4CM,oBCjDqC,EDkDtC;;AAIL;EAGI,eC7E6B;ED8E7B,eAAe;EACf,qBAAqB,EACtB;;AANH;EAWM,iBAAiB,EAClB;;AElGL;;EAEE,aAAa;EACb,iBAAiB,EAClB;;AAED;EACE,aAAa;EACb,YAAY,EACb;;AAED;EACE,2BAAqB;EAArB,6BAAqB;MAArB,wBAAqB;UAArB,qBAAqB;EACrB,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,aAAa,EACd;;AAED;EAGI,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,cAAc;EACd,oBAAe;EAAf,uBAAe;MAAf,mBAAe;UAAf,eAAe;EACf,6BAAuB;EAAvB,8BAAuB;EAAvB,+BAAuB;MAAvB,2BAAuB;UAAvB,uBAAuB;EACvB,mBAAmB,EACpB;;AARH;EAWI,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,UAAU;EACV,QAAQ;EACR,mBAAmB;EACnB,SAAS;EACT,OAAO,EAgBR;EAhCH;IAmBM,2CAA2B;IAA3B,mCAA2B;IAA3B,2BAA2B;IAA3B,mDAA2B;IAC3B,WAAW,EAKZ;IAzBL;MAuBQ,mCAAqB;cAArB,2BAAqB,EACtB;EAxBP;IA4BM,WAAW;IACX,WTxCsB;ISyCtB,WAAW,EACZ;;AAIL;EAGI,oBAAQ;EAAR,gBAAQ;MAAR,YAAQ;UAAR,QAAQ;EACR,iBAAiB;EACjB,iBAAiB,EAClB;;AANH;EAWM,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,oBAAQ;EAAR,gBAAQ;MAAR,YAAQ;UAAR,QAAQ,EAMT;EAlBL;IAeQ,oBAAQ;IAAR,gBAAQ;QAAR,YAAQ;YAAR,QAAQ;IACR,wBAAwB,EACzB;;ACrEP;EACE,oBFGkB,EEFnB;;AAED;EACE,iBAAiB,EAClB;;ATJD;EACE,eOEkB;EPDlB,iCDDwB,ECEzB;;AAED;EACE,sBAAsB;EACtB,iBAAiB;EACjB,mBAAmB;EACnB,qBAAqB;EACrB,aAAa,EACd;;AAED;EACE,iBAAiB;EACjB,mBAAmB;EACnB,wBAAwB,EACzB;;AUnBD;EACE,wBHsCkC;EGrClC,eHsC8B;EGrC9B,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,oBAAe;EAAf,uBAAe;MAAf,mBAAe;UAAf,eAAe;EACf,mBAAmB,EAqEpB;EA1ED;IAQI,mCHJgB;IGKhB,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,mBAAmB;IACnB,SAAS;IACT,YAAY,EACb;EAhBH;IAmBI,oBAAQ;IAAR,gBAAQ;QAAR,YAAQ;YAAR,QAAQ,EAkCT;IArDH;MAsBM,iBAAiB,EAClB;IAvBL;MA0BM,kBAAkB,EACnB;IA3BL;MA8BM,iBAAiB,EASlB;MAvCL;QAiCQ,qBAAqB,EAKtB;QAtCP;UAoCU,iBAAiB,EAClB;IArCT;MA4CQ,sBAAsB;MACtB,aAAa,EAMd;MAnDP;QAgDU,iBAAiB;QACjB,WAAW,EACZ;EAlDT;IAwDI,sBAAsB;IACtB,aAAa;IACb,gBAAgB,EAejB;IAzEH;MA6DM,mBAAmB,EAWpB;MAxEL;QAgEQ,sCHvBgC;QGwBhC,YAAY;QACZ,mBAAmB;QACnB,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,WAAW,EACZ;;AAKP;EACE,iBAAiB,EAClB;;AAED;EACE,kDAEqB;EACrB,gBAAgB;EAChB,sBAAsB;EACtB,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,mBAAmB;EACnB,uDAA+C;EAA/C,+CAA+C,EA8BhD;EAxCD;IAaI,mCHhDoC;IGiDpC,wEHhDgC,EGuDjC;IArBH;MAmBM,cHnGQ,EGoGT;EApBL;IAwBI,eAAe;IACf,mBAAmB;IACnB,UAAU;IACV,mBAAmB,EACpB;EA5BH;IA+BI,cHpEwB;IGqExB,aAAa;IACb,UAAU;IACV,mBAAmB;IACnB,SAAS;IACT,+BAAuB;IAAvB,uBAAuB;IACvB,qDAAsC;YAAtC,6CAAsC;IACtC,YAAY,EACb;;ACvHH;EAGI,oBJI8B,EIH/B;;ACJH;EACE,oBL4FyC;EK3FzC,qBAAqB;EACrB,eLyFyC;EKxFzC,sBAAsB;EACtB,iBAAiB;EACjB,iBAAiB;EACjB,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,qCAA6B;EAA7B,6BAA6B;EAC7B,yBAAyB,EAC1B;;ACZD;EACE,cAAc;EACd,mBAAmB,EA0BpB;EA5BD;IAKI,UAAU;IACV,mBAAmB;IACnB,SAAS;IACT,yCAAoB;YAApB,iCAAoB,EACrB;EATH;IAYI,WAAW;IACX,+BAAuB;IAAvB,uBAAuB,EAKxB;IAlBH;MAgBM,WAAW,EACZ;EAjBL;IAqBI,WAAW;IACX,+BAAuB;IAAvB,uBAAuB,EAKxB;IA3BH;MAyBM,WAAW,EACZ;;AAIL;EACE,0BAAoB;EAApB,4BAAoB;MAApB,uBAAoB;UAApB,oBAAoB;EACpB,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,cAAc;EACd,gBAAgB,EAiDjB;EArDD;IAQI,mBAAmB;IACnB,oBAAoB;IACpB,WAAW,EACZ;EAXH;IAcI,oBAAe;IAAf,uBAAe;QAAf,mBAAe;YAAf,eAAe,EAQhB;IAtBH;MAiBM,sBAAsB;MACtB,aAAa;MACb,qBAAqB;MACrB,YAAY,EACb;EArBL;IAyBI,oBAAQ;IAAR,gBAAQ;QAAR,YAAQ;YAAR,QAAQ,EA2BT;IApDH;MA6BM,eAAe;MACf,iBAAiB;MACjB,iBAAiB,EAClB;IAhCL;MAmCM,kBAAkB;MAClB,oBAAoB,EASrB;MA7CL;QAuCQ,kBAAkB;QAClB,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,YAAY,EACb;IA5CP;MAgDM,iBAAiB;MACjB,mBAAmB;MACnB,iBAAiB,EAClB;;AAIL;EAGI,iBAAiB;EACjB,aAAa;EACb,eNrFgB;EMsFhB,eAAe;EACf,cAAc;EACd,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,gCAAwB;EAAxB,wBAAwB;EACxB,uBAAuB;EACvB,YAAY,EAgCb;EA7CH;IAgBM,sBAAsB;IACtB,cNjGc;IMkGd,qBAAqB;IACrB,+BAAuB;IAAvB,uBAAuB;IACvB,uBAAuB;IACvB,cAAc,EAef;IApCL;MA4BY,aAAa,EACd;IA7BX;MAgCY,aAAa,EACd;EAjCX;IAuCM,eN5HQ,EMiIT;IA5CL;MA0CQ,cN/HM,EMgIP;;AAKP;EACE,mBAAmB,EAoIpB;EArID;IAII,aAAa;IACb,QAAQ;IACR,mBAAmB;IACnB,OAAO;IACP,YAAY;IACZ,WAAW,EAoBZ;IA7BH;MAYM,aAAa;MACb,YAAY,EACb;IAdL;MAiBM,WAAW,EAUZ;MA3BL;QAoBQ,0BAA0B;QAC1B,kBAAkB,EACnB;MAtBP;QAyBQ,oBAAoB,EACrB;EA1BP;IAkCM,+BN9G+C,EM+GhD;EAnCL;IA0CU,eNtH2C,EMuH5C;EA3CT;IA8CU,gCN1H2C,EM2H5C;EA/CT;IAwDQ,oCNjI+C,EMkIhD;EAzDP;IA4DQ,kCNpIkD,EMqInD;EA7DP;IAgEQ,wCAAS,EACV;EAjEP;IAsEU,kCN7IyC,EM8I1C;EAvET;IA0EU,gCNpJ0C,EMqJ3C;EA3ET;IAqFM,+BN1J6C,EM2J9C;EAtFL;IA6FU,eNlKyC,EMmK1C;EA9FT;IAiGU,gCNtKyC,EMuK1C;EAlGT;IA2GQ,oCN7K6C,EM8K9C;EA5GP;IA+GQ,kCNhLgD,EMiLjD;EAhHP;IAmHQ,sCAAS,EACV;EApHP;IAyHU,kCNzLuC,EM0LxC;EA1HT;IA6HU,gCNhMwC,EMiMzC;;ACnQT;EAGI,sBAAsB;EACtB,8BPqLuC;EOpLvC,aAAa;EACb,kBAAkB;EAClB,YAAY,EACb;;AARH;EAWI,ePyK0C;EOxK1C,kBAAkB;EAClB,wBAAwB;EACxB,uBAAuB;EACvB,oBAAoB,EA4FrB;EA3GH;IAkBM,mBAAmB;IACnB,mBAAmB,EAWpB;IA9BL;MAsBQ,oCAAwB;MACxB,YAAY;MACZ,aAAa;MACb,UAAU;MACV,mBAAmB;MACnB,UAAU;MACV,WAAW,EACZ;EA7BP;IAiCM,ePmJwC;IOlJxC,gBAAgB;IAChB,iCAAyB;IAAzB,yBAAyB,EAc1B;IAjDL;MAsCQ,ePgJ6C;MO/I7C,iBAAiB,EAKlB;MA5CP;QA0CU,+BPgJyC,EO/I1C;IA3CT;MA+CQ,8BP0ImC,EOzIpC;EAhDP;IAoDM,qBAAc;IAAd,sBAAc;IAAd,qBAAc;IAAd,cAAc;IACd,iBAAiB;IACjB,YAAY,EAgDb;IAtGL;MAgEc,eP8H2C,EO7H5C;IAjEb;MAuEQ,cPiH4B,EOhH7B;IAxEP;MA2EQ,oBAAe;MAAf,uBAAe;UAAf,mBAAe;cAAf,eAAe;MACf,iBAAiB;MACjB,sBAA4B;MAC5B,wBAAwB,EAuBzB;MArGP;QAkFU,eP2GwC;QO1GxC,oBAAe;QAAf,uBAAe;YAAf,mBAAe;gBAAf,eAAe;QACf,kBAAkB;QAClB,kBAAkB;QAClB,gCAAwB;QAAxB,wBAAwB,EACzB;MAvFT;QA4FY,aAAa;QACb,gBAAgB;QAChB,YAAY,EACb;MA/FX;QAmGU,iBAAiB,EAClB;EApGT;IAyGM,mBAAmB,EACpB;;AA1GL;EA8GI,kBAAkB;EAClB,iBAAiB;EACjB,wBAAwB,EAOzB;EAvHH;IAmHM,6BP+BsE;IO9BtE,kBAAkB;IAClB,uBAAuB,EACxB;;AAtHL;EA4HM,kBAAkB,EACnB;;AC7HL;EACE,sBAAsB;EACtB,cAAc;EACd,mBAAmB;EACnB,WAAW,EA0HZ;EA9HD;IAQI,gBAAgB,EACjB;EATH;IAYI,eAAe;IACf,4BAA4B;IAC5B,iBAAiB;IACjB,YAAY;IACZ,gBAAgB,EACjB;EAjBH;IAoBI,sCR4I4B;IQ3I5B,mBAAmB;IACnB,4ERlBgB;IQqBhB,eRwI0B;IQvI1B,QAAQ;IACR,mBAAmB;IACnB,iBAAiB;IACjB,OAAO;IACP,WAAW,EACZ;EA/BH;IA0CY,eR4HqB,EQ3HtB;EA3CX;IAkDI,eRkHqB;IQjHrB,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,sBAAsB;IACtB,mBAAmB;IACnB,0BAA0B,EAK3B;IAHC;MACE,gBAAgB,EACjB;EA5DL;IAgEI,eRqGqB;IQpGrB,gCAAwB;IAAxB,wBAAwB,EAWzB;IA5EH;MAoEM,8BRiGmB;MQhGnB,mCAAmC;MACnC,oCAAoC;MACpC,YAAY;MACZ,sBAAsB;MACtB,kBAAkB;MAClB,uBAAuB,EACxB;EA3EL;IA+EI,mBAAmB,EAYpB;IA3FH;MAkFM,mCR9Ec;MQ+Ed,UAAU;MACV,YAAY;MACZ,eAAe;MACf,YAAY;MACZ,SAAS;MACT,mBAAmB;MACnB,WAAW,EACZ;EA1FL;IA8FI,qBAAc;IAAd,sBAAc;IAAd,qBAAc;IAAd,cAAc;IACd,gBAAgB,EACjB;EAhGH;IAmGI,oBAAQ;IAAR,gBAAQ;QAAR,YAAQ;YAAR,QAAQ,EACT;EApGH;IAuGI,kBAAkB,EAiBnB;IAxHH;MA0GM,gBAAgB;MAChB,eAAe;MACf,iBAAiB;MACjB,kDAA0C;MAA1C,0CAA0C,EAU3C;MAvHL;QAgHQ,qCRzG0B;QQ0G1B,eRwDkC,EQvDnC;MAlHP;QAqHQ,eRrHM,EQsHP;EAtHP;IA2HI,WAAW;IACX,SAAS,EACV;;AAGH;EAKM,sCAA8B;UAA9B,8BAA8B,EAC/B;;AANL;EASM,uCAA+B;UAA/B,+BAA+B,EAChC;;AAIL;EAKM,mBAAmB,EACpB;;ACpJL;EAGI,iBToBuC;ESnBvC,aAAa;EACb,oBAAoB;EACpB,4CTFgB;ESGhB,gBAAgB;EAChB,aAAa;EACb,cAAc;EACd,kBAAkB;EAClB,WAAW;EACX,mBAAmB;EACnB,uDAA+C;EAA/C,+CAA+C;EAC/C,YAAY,EAyBb;EAvCH;IAiBM,gBAAgB,EACjB;EAlBL;IAqBM,oBTd4B;ISe5B,4CTlBc,ESuBf;IA3BL;MAyBQ,4BTrBY,ESsBb;EA1BP;IA8BM,YAAY;IACZ,4BT3Bc;IS4Bd,UAAU;IACV,mBAAmB;IACnB,SAAS;IACT,+BAAuB;IAAvB,uBAAuB;IACvB,yCAAoB;YAApB,iCAAoB;IACpB,WAAW,EACZ;;ACtCL;EACE;IACE,kBAAkB,EAAA;EAGpB;IACE,kBAAkB,EAAA,EAAA;;AANtB;EACE;IACE,kBAAkB,EAAA;EAGpB;IACE,kBAAkB,EAAA,EAAA;;AAItB;EAOQ,gBAAgB,EACjB;;AARP;EAmBU,+EAAuE;UAAvE,uEAAuE;EACvE,WV5BE,EUqCH;EA7BT;IAuBY,8BAAsB;YAAtB,sBAAsB,EACvB;EAxBX;IA2BY,8BAAsB;YAAtB,sBAAsB,EACvB;;ACtCX;EACE;IACE,qCAAqB;YAArB,6BAAqB,EAAA;EAGvB;IACE,oCAAqB;YAArB,4BAAqB,EAAA;EAGvB;IACE,oCAAqB;YAArB,4BAAqB,EAAA,EAAA;;AAVzB;EACE;IACE,qCAAqB;YAArB,6BAAqB,EAAA;EAGvB;IACE,oCAAqB;YAArB,4BAAqB,EAAA;EAGvB;IACE,oCAAqB;YAArB,4BAAqB,EAAA,EAAA;;AAIzB;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY,EA0Db;EA7DD;IAUQ,mCXgLkD,EW3KnD;IAfP;MAaU,qCX3BI,EW4BL;EAdT;IAoBI,oBXqKwC;IWpKxC,oBAAoB;IACpB,YAAY;IACZ,QAAQ;IACR,iBAAiB;IACjB,mBAAmB;IACnB,iCAAqB;YAArB,yBAAqB;IACrB,YAAY,EAiCb;IA5DH;MA8BM,mEAA2D;cAA3D,2DAA2D;MAC3D,qCX7CQ;MW8CR,oBAAoB;MACpB,YAAY;MACZ,eAAe;MACf,aAAa;MACb,qCAAqB;cAArB,6BAAqB;MACrB,WAAW,EACZ;IAtCL;MAyCM,OAAO,EACR;IA1CL;MA6CM,SAAS;MACT,oCAAqB;cAArB,4BAAqB,EAKtB;MAnDL;QAiDQ,8BAAsB;gBAAtB,sBAAsB,EACvB;IAlDP;MAsDM,UAAU,EAKX;MA3DL;QAyDQ,4BAAoB;gBAApB,oBAAoB,EACrB;;ACxEP;EACE,kCZGkB;EYFlB,aAAa;EACb,QAAQ;EACR,gBAAgB;EAChB,OAAO;EACP,iCAAyB;EAAzB,yBAAyB;EACzB,YAAY;EACZ,aAAa,EA6Dd;EArED;IAWI,iBZkKoB;IYjKpB,mBAAmB;IACnB,4EZTgB;IYYhB,UAAU;IACV,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,cAAc;IACd,mBAAmB;IACnB,SAAS;IACT,sCAAoB;YAApB,8BAAoB;IACpB,aAAa,EAKd;IA7BH;MA2BM,mBAAmB,EACpB;EA5BL;IAgCI,iBpB3Be,EoB4BhB;EAjCH;IAoCI,kBAAkB,EAQnB;IA5CH;MAyCQ,kBAAkB,EACnB;EA1CP;IA+CI,eZtCwB;IYuCxB,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB,EACrB;EAnDH;IAsDI,WAAW,EACZ;EAvDH;IA0DI,WAAW,EACZ;EA3DH;IA8DI,WAAW;IACX,qBAAqB,EACtB;EAhEH;IAmEI,WAAW,EACZ;;ACpEH;EACE,YAAY;EACZ,mBAAmB;EACnB,YAAY,EAiEb;EApED;IAMI,sBAAsB;IACtB,aAAa;IACb,uBAAuB,EACxB;EATH;IAaI,YAAY;IACZ,eAAe;IACf,mBAAmB,EACpB;EAhBH;IAmBI,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,qCAA6B;IAA7B,6BAA6B;IAC7B,YAAY,EACb;EAxBH;IA2BI,aAAa;IACb,OAAO;IACP,iDAAyC;IAAzC,yCAAyC;IACzC,WAAW,EACZ;EA/BH;IAoCM,mCbyKmD,EaxKpD;EArCL;IAwCM,QAAQ;IACR,oBbqK4C,EapK7C;EA1CL;IAgDM,oCbhDQ,EaiDT;EAjDL;IAoDM,UAAU;IACV,oBbrDQ,EasDT;EAtDL;IA4DM,oCb3DS,Ea4DV;EA7DL;IAgEM,oBb/DS;IagET,WAAW,EACZ;;AClEL;EACE,YAAY;EACZ,mBAAmB;EACnB,kCAA0B;EAA1B,0BAA0B;EAC1B,WAAW,EAqDZ;EAnDC;IACE,aAAa,EACd;EARH;IAWI,oBd0G8B;IczG9B,YAAY;IACZ,YAAY;IACZ,QAAQ;IACR,mBAAmB;IACnB,WAAW;IACX,SAAS;IACT,qCAA6B;IAA7B,6BAA6B;IAC7B,YAAY,EASb;IAPC;MACE,qCdgGwC,Ec/FzC;IAED;MACE,qCd6FiD,Ec5FlD;EA3BL;IA+BI,oBd9BW;Ic+BX,UAAU;IACV,aAAa;IACb,QAAQ;IACR,mBAAmB;IACnB,OAAO;IACP,kDAA0C;IAA1C,0CAA0C;IAC1C,WAAW,EAkBZ;IAhBC;MACE,oBdzCQ,Ec0CT;IAED;;MAEE,oBd4E+B,Ec3EhC;IAED;MACE,iBd0E6B,EczE9B;IAED;MACE,oBduE6B,EctE9B;;ACvDL;EAGI,kCf8LiD;Ee7LjD,oBAAoB;EACpB,gBAAgB;EAChB,WAAW;EACX,mDAA2C;EAA3C,2CAA2C,EAmB5C;EA1BH;IAUM,WAAW,EACZ;EAXL;IAeM,kCfmL4C,EelL7C;EAED;IACE,qCfgLyD,Ee1K1D;IAPD;MAKI,qCf6KoD,Ee5KrD;;AAxBP;EA+BM,WAAW,EACZ;;AChCL;EAGI,sChB+CyB;EgB9CzB,ehB6CyB;EgB5CzB,oBAAQ;EAAR,gBAAQ;MAAR,YAAQ;UAAR,QAAQ;EACR,iBAAiB;EACjB,iBAAiB;EACjB,eAAe;EACf,mBAAmB;EACnB,WAAW,EACZ;;AAGH;EAKM,mBAAmB,EAyDpB;EA9DL;IAQQ,chB2BqB;IgB1BrB,aAAa;IACb,WAAW;IACX,aAAa;IACb,mBAAmB;IACnB,SAAS;IACT,8CAAsC;IAAtC,sCAAsC;IACtC,oCAAqB;YAArB,4BAAqB;IACrB,YAAY,EACb;EAjBP;IAoBQ,iBAAiB;IACjB,yBAAyB;IACzB,sBAAsB;IACtB,uChBqCuB;IgBpCvB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,iChBiCuB;IgBhCvB,iBAAiB;IACjB,ehBMqB;IgBLrB,eAAe;IACf,eAAe;IACf,cAAc;IACd,0BAA0B;IAC1B,gEAAwD;IAAxD,wDAAwD;IACxD,YAAY,EAOb;IA1CP;MAsCU,+BhBHmB;MgBInB,mBAAmB;MACnB,gCAAwB;MAAxB,wBAAwB,EACzB;IAzCT;MAsCU,+BhBHmB;MgBInB,mBAAmB;MACnB,gCAAwB;MAAxB,wBAAwB,EACzB;IAzCT;MAsCU,+BhBHmB;MgBInB,mBAAmB;MACnB,gCAAwB;MAAxB,wBAAwB,EACzB;IAzCT;MAsCU,+BhBHmB;MgBInB,mBAAmB;MACnB,gCAAwB;MAAxB,wBAAwB,EACzB;EAzCT;IA+CU,chBwByC;IgBvBzC,WAAW,EACZ;EAjDT;IAoDU,oBhBjEK;IgBkEL,iChBlEK;IgBmEL,8BhBnEK;IgBoEL,ehBWmC,EgBNpC;IA5DT;MA0DY,ehBUkC,EgBTnC;IA3DX;MA0DY,ehBUkC,EgBTnC;IA3DX;MA0DY,ehBUkC,EgBTnC;IA3DX;MA0DY,ehBUkC,EgBTnC;;AA3DX;EAiEM,kBAAkB;EAClB,iBAAiB,EAYlB;EA9EL;IAuEU,iBAAiB,EAClB;EAxET;IA2EU,iBAAiB,EAClB;;AC1FT;EACE,kBAAkB;EAClB,gBAAgB,EAiDjB;EAnDD;IAKI,eAAe,EAChB;EANH;IASI,ejBwCyB;IiBvCzB,gBAAgB;IAChB,iBAAiB;IACjB,kBAAkB;IAClB,gCAAwB;IAAxB,wBAAwB,EAgCzB;IA7CH;MAgBM,ejB0EqC,EiBrEtC;MArBL;QAmBQ,cjBuEmC,EiBtEpC;IApBP;MAwBM,ejBxBQ;MiByBR,iBAAiB,EASlB;MAlCL;QA4BQ,oBjBkE2C,EiBjE5C;MA7BP;QAgCQ,cjBhCM,EiBiCP;IAjCP;MAqCM,sBAAsB;MACtB,cjBWuB;MiBVvB,aAAa;MACb,kBAAkB;MAClB,+BAAuB;MAAvB,uBAAuB;MACvB,uBAAuB;MACvB,YAAY,EACb;EA5CL;IAgDI,oBjB6CuC;IiB5CvC,ejB2CuC,EiB1CxC;;AAIH;EAKM,gBAAgB;EAChB,iBAAiB;EACjB,iBAAiB;EACjB,sBAAsB;EACtB,0BAA0B,EAM3B;EAfL;IAaQ,+BjBlBqB,EiBmBtB;;ACpEP;EAKM,iBAAiB;EACjB,mBAAmB;EACnB,YAAY;EACZ,SAAS,EACV;;AATL;EAYM,mBAAmB,EACpB;;AAbL;EAmBM,mBAAmB,EACpB;;ACpBL;EAKM,oBnB2HgC,EmB1HjC;;AAIL;EACE,oBnBqHoC;EmBpHpC,UAAU;EACV,2CnBTkB;EmBUlB,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,6BAAuB;EAAvB,8BAAuB;EAAvB,+BAAuB;MAAvB,2BAAuB;UAAvB,uBAAuB;EACvB,iBAAiB;EACjB,QAAQ;EACR,iBAAiB;EACjB,eAAe;EACf,mBAAmB;EACnB,SAAS;EACT,OAAO;EACP,+BAAuB;EAAvB,uBAAuB;EACvB,WAAW,EA2JZ;EAzKD;IAiBI,yCnBwG0C;ImBvG1C,oBAAe;IAAf,uBAAe;QAAf,mBAAe;YAAf,eAAe;IACf,qC3BxBe,E2BoGhB;IA/FH;MA4BY,enB+F2C,EmB9F5C;IA7BX;MAuCU,oBnBsFkD,EmBrFnD;IAxCT;MAiDU,enByEyC;MmBxEzC,iBAAiB;MACjB,iBAAiB,EAClB;IApDT;MAuDU,enBoE6C;MmBnE7C,eAAe;MACf,sBAA4B,EAC7B;IA1DT;MAkEY,aAAa;MACb,kBAAkB;MAClB,iBAAiB;MACjB,uBAAuB;MACvB,YAAY,EACb;IAvEX;MA8EY,8BnBiE+C,EmBhEhD;IA/EX;MAmFU,WAAW;MACX,oBAAoB,EACrB;IArFT;MA4FQ,oBnBgC8C,EmB/B/C;EA7FP;IAkGI,enBwCwC;ImBvCxC,YAAY,EAgBb;IAnHH;MAwGQ,enB+B+D;MmB9B/D,mBAAmB,EACpB;IA1GP;MA6GQ,+BnB8BqC;MmB7BrC,iBAAiB;MACjB,sBAAsB;MACtB,0BAA0B,EAC3B;EAjHP;IAsHI,oBAAQ;IAAR,gBAAQ;QAAR,YAAQ;YAAR,QAAQ;IACR,eAAe;IACf,yB3B7He,E2BqIhB;IAhIH;MA2HM,kCnBUgD;MmBThD,qBAAc;MAAd,sBAAc;MAAd,qBAAc;MAAd,cAAc;MACd,oBAAQ;MAAR,gBAAQ;UAAR,YAAQ;cAAR,QAAQ;MACR,iBAAiB,EAClB;EA/HL;IAmII,kCnBAqD;ImBCrD,0CnBL8C;ImBM9C,iBAAiB;IACjB,kBAA8B,EAiB/B;IAvJH;MA2IQ,gBAAgB;MAChB,qB3BjJW;M2BkJX,kBAAkB;MAClB,oEAA4D;MAA5D,4DAA4D,EAO7D;MArJP;QAiJU,qCnBjB0D;QmBkB1D,4BnBhBiD;QmBiBjD,enBlBqD,EmBmBtD;EApJT;IA6JM,enBtBiE;ImBuBjE,mBAAmB,EACpB;EA/JL;IAoKQ,oCnBxBwD;ImByBxD,enBxBmD,EmByBpD;;AAKP;EACE,WAAW,EACZ;;AAED;EACE,WAAW,EACZ;;AAED;EACE,WAAW;EACX,iCAAyB;EAAzB,yBAAyB,EAC1B;;AChMD;EACE,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,oBAAgB;EAAhB,wBAAgB;MAAhB,oBAAgB;UAAhB,gBAAgB;EAChB,mBAAmB,EAoBpB;EAvBD;IAMI,iBpB4F2B;IoB3F3B,UAAU;IACV,8CpBJgB;IoBKhB,YAAY;IACZ,aAAa;IACb,WAAW;IACX,mBAAmB;IACnB,SAAS;IACT,OAAO,EACR;EAfH;IAkBI,UAAU;IACV,mBAAmB;IACnB,SAAS;IACT,yCAAoB;YAApB,iCAAoB,EACrB;;AAGH;EAGI,mBAAmB;EACnB,gBAAgB;EAChB,mBAAmB,EAoCpB;EAzCH;IAQM,iBAAiB;IACjB,gBAAgB;IAChB,WAAW;IACX,eAAe;IACf,+BAAuB;IAAvB,uBAAuB;IACvB,0BAAkB;OAAlB,uBAAkB;QAAlB,sBAAkB;YAAlB,kBAAkB;IAClB,WAAW,EACZ;EAfL;IAoBQ,WAAW;IACX,+BAAuB;IAAvB,uBAAuB,EAKxB;IA1BP;MAwBU,WAAW,EACZ;EAzBT;IA6BQ,WAAW;IACX,+BAAuB;IAAvB,uBAAuB,EAKxB;IAnCP;MAiCU,WAAW,EACZ;EAlCT;IAuCM,WAAW,EACZ;;AAIL;EACE,gBAAgB;EAChB,mBAAmB;EACnB,mBAAmB;EACnB,qCAA6B;EAA7B,6BAA6B,EA2B9B;EA/BD;IAOI,oBpBsCgC,EoB9BjC;IAfH;MAYQ,WAAW,EACZ;EAbP;IAkBI,oBpBvFU,EoBwFX;EAnBH;IAsBI,aAAa;IACb,kBAAkB;IAClB,mBAAmB;IACnB,WAAW;IACX,WAAW;IACX,SAAS;IACT,sEAA8D;IAA9D,8DAA8D;IAC9D,YAAY,EACb;;AAGH;EAGI,0BAAoB;EAApB,4BAAoB;MAApB,uBAAoB;UAApB,oBAAoB;EACpB,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,oBAAQ;EAAR,gBAAQ;MAAR,YAAQ;UAAR,QAAQ;EACR,4BAAoB;MAApB,wBAAoB;UAApB,oBAAoB;EACpB,iBAAiB,EAwFlB;EA/FH;IAYM,gCAAwB;IAAxB,wBAAwB,EACzB;EAbL;IAgBM,epBjBgC;IoBkBhC,oBAAQ;IAAR,gBAAQ;QAAR,YAAQ;YAAR,QAAQ;IACR,iBAAiB;IACjB,oBAAoB,EAarB;IAXC;MACE,6BpBtB4C,EoBuB7C;IAED;MACE,YpBzBqC,EoB0BtC;IAED;MACE,gCpB7BqC,EoB8BtC;EA/BP;IAmCM,uBAAsB;IAAtB,8BAAsB;QAAtB,oBAAsB;gBAAtB,6BAAsB;YAAtB,sBAAsB;IACtB,epBjCkC;IoBkClC,oBAAQ;IAAR,gBAAQ;QAAR,YAAQ;YAAR,QAAQ;IACR,kBAAkB;IAClB,iBAAiB,EAsBlB;IA7DL;MA0CQ,oBAAe;MAAf,uBAAe;UAAf,mBAAe;cAAf,eAAe;MACf,eAAe,EAKhB;MAhDP;QA8CU,gBAAgB,EACjB;IAGH;MACE,gCpB/C8C,EoBgD/C;IAED;MACE,YpBlDuC,EoBmDxC;IAED;MACE,gCpBrDqD,EoBsDtD;EA5DP;IAgEM,epBzDiC;IoB0DjC,eAAe;IACf,kBAAkB;IAClB,kBAAkB,EAsBnB;IAzFL;MAsEQ,sBAAsB;MACtB,kBAAkB,EAKnB;MA5EP;QA0EU,gBAAgB,EACjB;IAGH;MACE,gCpBvE6C,EoBwE9C;IAED;MACE,gCpB1E2C,EoB2E5C;IAED;MACE,gCpB7EoD,EoB8ErD;EAxFP;IA4FM,oBAAoB;IACpB,aAAa,EACd;;AAIL;EAKM,WAAW;EACX,8CAAsC;EAAtC,sCAAsC;EACtC,mBAAmB,EAcpB;EArBL;IAUQ,qBAAqB,EAKtB;IAfP;MAaU,gBAAgB,EACjB;EAGH;IACE,WAAW;IACX,oBAAoB,EACrB;;AAKP;EAGI,oBAAoB;EACpB,0CpBjOgB;EoBkOhB,qBAAc;EAAd,sBAAc;EAAd,qBAAc;EAAd,cAAc;EACd,6BAAuB;EAAvB,8BAAuB;EAAvB,+BAAuB;MAAvB,2BAAuB;UAAvB,uBAAuB;EACvB,oBAAQ;EAAR,gBAAQ;MAAR,YAAQ;UAAR,QAAQ;EACR,oBAAe;EAAf,uBAAe;MAAf,mBAAe;UAAf,eAAe,EAChB;;AC1OH;EAGI,erBFW,EqBOZ;EARH;IAMM,crBLS,EqBMV;;AAPL;EAWI,erBXU,EqBgBX;EAhBH;IAcM,crBdQ,EqBeT","file":"style.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * inuitcss, by @csswizardry\n *\n * github.com/inuitcss | inuitcss.com\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n@import url(http://fonts.googleapis.com/css?family=Roboto:400italic,700italic,300,700,300italic,400);\n@import url(\"http://fonts.googleapis.com/css?family=Roboto:500,400italic,300,700,400\");\nhtml {\n font-family: sans-serif;\n /* 1 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n -webkit-text-size-adjust: 100%;\n /* 2 */ }\n\n/**\n * Remove default margin.\n */\nbody {\n margin: 0; }\n\n/* HTML5 display definitions\n ========================================================================== */\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block; }\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n /* 1 */\n vertical-align: baseline;\n /* 2 */ }\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\naudio:not([controls]) {\n display: none;\n height: 0; }\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n[hidden],\ntemplate {\n display: none; }\n\n/* Links\n ========================================================================== */\n/**\n * Remove the gray background color from active links in IE 10.\n */\na {\n background-color: transparent; }\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\na:active,\na:hover {\n outline: 0; }\n\n/* Text-level semantics\n ========================================================================== */\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\nabbr[title] {\n border-bottom: 1px dotted; }\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\nb,\nstrong {\n font-weight: bold; }\n\n/**\n * Address styling not present in Safari and Chrome.\n */\ndfn {\n font-style: italic; }\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\nh1 {\n font-size: 2em;\n margin: 0.67em 0; }\n\n/**\n * Address styling not present in IE 8/9.\n */\nmark {\n background: #ff0;\n color: #000; }\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\nsmall {\n font-size: 80%; }\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\n\nsup {\n top: -0.5em; }\n\nsub {\n bottom: -0.25em; }\n\n/* Embedded content\n ========================================================================== */\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\nimg {\n border: 0; }\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\nsvg:not(:root) {\n overflow: hidden; }\n\n/* Grouping content\n ========================================================================== */\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\nfigure {\n margin: 1em 40px; }\n\n/**\n * Address differences between Firefox and other browsers.\n */\nhr {\n box-sizing: content-box;\n height: 0; }\n\n/**\n * Contain overflow in all browsers.\n */\npre {\n overflow: auto; }\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em; }\n\n/* Forms\n ========================================================================== */\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n /* 1 */\n font: inherit;\n /* 2 */\n margin: 0;\n /* 3 */ }\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\nbutton {\n overflow: visible; }\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\nbutton,\nselect {\n text-transform: none; }\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */\n cursor: pointer;\n /* 3 */ }\n\n/**\n * Re-set default cursor for disabled elements.\n */\nbutton[disabled],\nhtml input[disabled] {\n cursor: default; }\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0; }\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\ninput {\n line-height: normal; }\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */ }\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto; }\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n box-sizing: content-box;\n /* 2 */ }\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none; }\n\n/**\n * Define consistent border, margin, and padding.\n */\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em; }\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\nlegend {\n border: 0;\n /* 1 */\n padding: 0;\n /* 2 */ }\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\ntextarea {\n overflow: auto; }\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\noptgroup {\n font-weight: bold; }\n\n/* Tables\n ========================================================================== */\n/**\n * Remove most spacing between table cells.\n */\ntable {\n border-collapse: collapse;\n border-spacing: 0; }\n\ntd,\nth {\n padding: 0; }\n\n/*------------------------------------* #RESET\n\\*------------------------------------*/\n/**\n * As well as using normalize.css, it is often advantageous to remove all\n * margins from certain elements.\n */\nbody,\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\ndl, dd, ol, ul,\nform, fieldset, legend,\nfigure,\ntable, th, td, caption,\nhr {\n margin: 0;\n padding: 0; }\n\n/**\n * Give a help cursor to elements that give extra info on `:hover`.\n */\nabbr[title],\ndfn[title] {\n cursor: help; }\n\n/**\n * Remove underlines from potentially troublesome elements.\n */\nu,\nins {\n text-decoration: none; }\n\n/**\n * Apply faux underlines to inserted text via `border-bottom`.\n */\nins {\n border-bottom: 1px solid; }\n\n/*------------------------------------* #BOX-SIZING\n\\*------------------------------------*/\n/**\n * Set the global `box-sizing` state to `border-box`.\n *\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n * paulirish.com/2012/box-sizing-border-box-ftw\n */\nhtml {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box; }\n\n*, *:before, *:after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit; }\n\n/*------------------------------------* #PAGE\n\\*------------------------------------*/\n/**\n * High-, page-level styling.\n *\n * 1. Set the default `font-size` and `line-height` for the entire project,\n * sourced from our default variables. The `font-size` is calculated to exist\n * in ems, the `line-height` is calculated to exist unitlessly.\n * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when\n * navigating between pages that do/do not have enough content to produce\n * scrollbars naturally.\n * 3. Ensure the page always fills at least the entire height of the viewport.\n * 4. Prevent certain mobile browsers from automatically zooming fonts.\n * 5. Fonts on OSX will look more consistent with other systems that do not\n * render text using sub-pixel anti-aliasing.\n */\nhtml {\n font-size: 1em;\n /* [1] */\n line-height: 1.5;\n /* [1] */\n background-color: #fff;\n color: #333;\n overflow-y: scroll;\n /* [2] */\n min-height: 100%;\n /* [3] */\n -webkit-text-size-adjust: 100%;\n /* [4] */\n -ms-text-size-adjust: 100%;\n /* [4] */\n -moz-osx-font-smoothing: grayscale;\n /* [5] */\n -webkit-font-smoothing: antialiased;\n /* [5] */ }\n\nth {\n font-weight: inherit;\n text-align: left; }\n\n@keyframes fade-in {\n 0% {\n opacity: 0; }\n 100% {\n opacity: 1; } }\n\n@keyframes fade-out {\n 0% {\n opacity: 1; }\n 100% {\n opacity: 0; } }\n\n.textbox,\n.button {\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n outline: none; }\n\n.textbox {\n background: rgba(233, 238, 242, 0.3);\n border-radius: 4px;\n border: 1px solid #e9eef2;\n color: #53718a;\n display: block;\n font-size: 0.9em;\n padding: 10px 15px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%; }\n .textbox::placeholder {\n color: #abbac7;\n font-style: italic;\n transition: color 0.25s; }\n .textbox:focus {\n background: rgba(233, 238, 242, 0.3);\n border-color: #e9eef2;\n color: #258de5; }\n .textbox:focus::placeholder {\n color: #abbac7; }\n\n.button {\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9em;\n font-weight: 400;\n padding: 8px 22px;\n transition: background 0.25s; }\n .button.has-icon .icon {\n height: 16px;\n margin: 0 8.33333px;\n vertical-align: middle;\n width: 16px; }\n .button.has-icon .icon:first-child {\n margin-left: 0; }\n .button.has-icon .icon:last-child {\n margin-right: 0; }\n .button--deemphasize {\n background: #e9eef2;\n color: #66717a; }\n .button--deemphasize:hover {\n background: #d9e2e9;\n color: #5a646c; }\n .button--primary {\n background: #258de5;\n color: #fff;\n white-space: nowrap; }\n .button--primary:hover {\n background: #1a80d7; }\n\n.form__label {\n color: #53718a;\n display: block;\n margin-bottom: 0.1em; }\n\n.form__row + .form__row {\n margin-top: 20px; }\n\nhtml,\nbody {\n height: 100%;\n overflow: hidden; }\n\n.container {\n height: 100%;\n width: 100%; }\n\n.flood {\n align-items: stretch;\n display: flex;\n height: 100%; }\n\n.application__content {\n display: flex;\n height: 100vh;\n flex: 1 2 auto;\n flex-direction: column;\n position: relative; }\n\n.application__panel {\n display: flex;\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0; }\n .application__panel--torrent-list {\n transition: transform 0.5s;\n z-index: 2; }\n .application__panel--torrent-list.is-open {\n transform: translateX(85%); }\n .application__panel--torrent-details {\n right: 15%;\n width: 85%;\n z-index: 1; }\n\n.torrent__header {\n flex: 1;\n min-height: 35px;\n max-height: 35px; }\n\n.torrent__list__wrapper {\n display: flex;\n flex: 1; }\n .torrent__list__wrapper--custom-scroll {\n flex: 1;\n height: auto !important; }\n\nbody {\n background: #1a2f3d; }\n\nul {\n list-style: none; }\n\nbody {\n color: #53718a;\n font-family: \"Roboto\", sans-srif; }\n\n.unit {\n display: inline-block;\n font-size: 0.8em;\n font-style: normal;\n margin-bottom: 0.1em;\n opacity: 0.8; }\n\n.text-overflow {\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis; }\n\n.action-bar {\n background: transparent;\n color: #1b1a1c;\n display: flex;\n flex: 0 0 60px;\n position: relative; }\n .action-bar:after {\n background: rgba(26, 47, 61, 0.15);\n bottom: 0;\n content: '';\n height: 1px;\n left: 9px;\n position: absolute;\n right: 0;\n width: auto; }\n .action-bar__item {\n flex: 3; }\n .action-bar__item:first-child {\n text-align: left; }\n .action-bar__item:last-child {\n text-align: right; }\n .action-bar__item--sort-torrents {\n max-width: 225px; }\n .action-bar__item--sort-torrents .dropdown {\n margin: 5px 0 0 15px; }\n .action-bar__item--sort-torrents .dropdown__content {\n min-width: 250px; }\n .action-bar__item--torrent-operations .dropdown {\n display: inline-block;\n height: 60px; }\n .action-bar__item--torrent-operations .dropdown__content {\n min-width: 430px;\n right: 4px; }\n .action-bar__group {\n display: inline-block;\n font-size: 0;\n padding: 0 15px; }\n .action-bar__group--has-divider {\n position: relative; }\n .action-bar__group--has-divider:before {\n background: rgba(122, 128, 128, 0.15);\n content: '';\n position: absolute;\n height: 80%;\n left: 0;\n top: 10%;\n width: 1px; }\n\n.actions {\n list-style: none; }\n\n.action {\n box-shadow: 1px 0 transparent, -1px 0 transparent;\n cursor: pointer;\n display: inline-block;\n height: 60px;\n position: relative;\n width: 60px;\n text-align: center;\n transition: background 0.25s, box-shadow 0.25s; }\n .action:hover {\n background: rgba(51, 62, 74, 0.05);\n box-shadow: 1px 0 rgba(51, 62, 74, 0.15), -1px 0 rgba(51, 62, 74, 0.15); }\n .action:hover .icon {\n fill: #258de5; }\n .action__label {\n display: block;\n position: absolute;\n top: 100%;\n visibility: hidden; }\n .action .icon {\n fill: #909799;\n height: 25px;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translateX(-50%) translateY(-50%);\n width: 30px; }\n\n.application__content {\n background: #e9eef2; }\n\n.badge {\n background: #2b4456;\n border-radius: 100px;\n color: #132532;\n display: inline-block;\n font-size: 0.8em;\n font-weight: 800;\n line-height: 1;\n margin-left: 10px;\n padding: 1px 5px;\n transition: background 0.25s;\n vertical-align: baseline; }\n\n.client-stats {\n height: 200px;\n position: relative; }\n .client-stats .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%); }\n .client-stats .transfer-data-enter {\n opacity: 0;\n transition: opacity 1s; }\n .client-stats .transfer-data-enter.transfer-data-enter-active {\n opacity: 1; }\n .client-stats .transfer-data-leave {\n opacity: 1;\n transition: opacity 1s; }\n .client-stats .transfer-data-leave.transfer-data-leave-active {\n opacity: 0; }\n\n.client-stat {\n align-items: center;\n display: flex;\n height: 100px;\n padding: 0 20px; }\n .client-stat__icon, .client-stat__data {\n position: relative;\n vertical-align: top;\n z-index: 1; }\n .client-stat__icon {\n flex: 0 0 23px; }\n .client-stat__icon .icon {\n display: inline-block;\n height: 25px;\n margin: 6px 0 0 -5px;\n width: auto; }\n .client-stat__data {\n flex: 1; }\n .client-stat__data--primary, .client-stat__data--secondary {\n display: block;\n font-weight: 100;\n line-height: 1.2; }\n .client-stat__data--primary {\n font-size: 1.75em;\n white-space: nowrap; }\n .client-stat__data--primary .unit {\n font-size: 0.65em;\n margin-bottom: 0;\n opacity: 0.5;\n position: relative;\n top: -0.1em; }\n .client-stat__data--secondary {\n font-size: 0.8em;\n font-style: italic;\n font-weight: 400; }\n\n.client-stat--limits {\n background: none;\n border: none;\n color: #53718a;\n display: block;\n outline: none;\n padding: 10px 15px;\n font-size: 0.85em;\n text-align: left;\n transition: color 0.25s;\n vertical-align: middle;\n width: 100%; }\n .client-stat--limits .icon {\n display: inline-block;\n fill: #53718a;\n margin: -2px 5px 0 0;\n transition: fill 0.25s;\n vertical-align: middle;\n width: 14.5px; }\n .client-stat--limits .icon .limits__bars--top {\n opacity: 0.4; }\n .client-stat--limits .icon .limits__bars--bottom {\n opacity: 0.6; }\n .client-stat--limits:hover {\n color: #258de5; }\n .client-stat--limits:hover .icon {\n fill: #258de5; }\n\n.client-stat {\n position: relative; }\n .client-stat .graph {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 0; }\n .client-stat .graph svg {\n height: 100%;\n width: 100%; }\n .client-stat .graph__line {\n fill: none; }\n .client-stat .graph__line--limit {\n stroke-dasharray: 3px 4px;\n stroke-width: 1px; }\n .client-stat .graph__line--rate {\n stroke-width: 1.1px; }\n .client-stat--download .icon {\n fill: rgba(43, 174, 108, 0.75); }\n .client-stat--download .client-stat__data--primary {\n color: #2bae6c; }\n .client-stat--download .client-stat__data--secondary {\n color: rgba(43, 174, 108, 0.75); }\n .client-stat--download .graph .graph--download--gradient--top {\n stop-color: rgba(43, 174, 108, 0.2); }\n .client-stat--download .graph .graph--download--gradient--bottom {\n stop-color: rgba(43, 174, 108, 0); }\n .client-stat--download .graph__area {\n fill: url(\"#graph--download--gradient\"); }\n .client-stat--download .graph__line--limit {\n stroke: rgba(102, 217, 159, 0.15); }\n .client-stat--download .graph__line--rate {\n stroke: rgba(43, 174, 108, 0.4); }\n .client-stat--upload .icon {\n fill: rgba(35, 135, 217, 0.75); }\n .client-stat--upload .client-stat__data--primary {\n color: #2387d9; }\n .client-stat--upload .client-stat__data--secondary {\n color: rgba(35, 135, 217, 0.75); }\n .client-stat--upload .graph .graph--upload--gradient--top {\n stop-color: rgba(35, 135, 217, 0.2); }\n .client-stat--upload .graph .graph--upload--gradient--bottom {\n stop-color: rgba(35, 135, 217, 0); }\n .client-stat--upload .graph__area {\n fill: url(\"#graph--upload--gradient\"); }\n .client-stat--upload .graph__line--limit {\n stroke: rgba(121, 183, 233, 0.15); }\n .client-stat--upload .graph__line--rate {\n stroke: rgba(35, 135, 217, 0.4); }\n\n.directory-tree .icon {\n display: inline-block;\n fill: rgba(82, 120, 147, 0.4);\n height: 14px;\n margin-right: 6px;\n width: 14px; }\n\n.directory-tree__node {\n color: #527893;\n line-height: 1.75;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap; }\n .directory-tree__node--group {\n padding-left: 10px;\n position: relative; }\n .directory-tree__node--group:after {\n background: rgba(82, 120, 147, 0.1);\n content: '';\n height: 100%;\n left: 5px;\n position: absolute;\n top: -5px;\n width: 2px; }\n .directory-tree__node--directory {\n color: #527893;\n cursor: pointer;\n transition: color 0.125s; }\n .directory-tree__node--directory.is-expanded {\n color: #719bb7;\n font-weight: 500; }\n .directory-tree__node--directory.is-expanded .icon {\n fill: rgba(130, 170, 197, 0.5); }\n .directory-tree__node--directory .icon {\n fill: rgba(82, 120, 147, 0.4); }\n .directory-tree__node .file {\n display: flex;\n line-height: 1.7;\n width: 100%; }\n .directory-tree__node .file:hover .file__detail--size, .directory-tree__node .file:hover .file__detail--priority {\n color: #527893; }\n .directory-tree__node .file .icon {\n fill: #344b5b; }\n .directory-tree__node .file__detail {\n flex: 1 1 auto;\n overflow: hidden;\n padding-right: 6.25px;\n text-overflow: ellipsis; }\n .directory-tree__node .file__detail--size, .directory-tree__node .file__detail--priority {\n color: #2b4456;\n flex: 0 0 auto;\n font-size: 0.95em;\n text-align: right;\n transition: color 0.25s; }\n .directory-tree__node .file__detail--priority .icon {\n height: auto;\n margin-right: 0;\n width: 16px; }\n .directory-tree__node .file__detail:last-child {\n padding-right: 0; }\n .directory-tree__node--file-list {\n margin-bottom: 3px; }\n\n.directory-tree__parent-directory {\n margin-left: -1px;\n overflow: hidden;\n text-overflow: ellipsis; }\n .directory-tree__parent-directory .icon {\n fill: rgba(58, 92, 116, 0.5);\n margin-right: 8px;\n vertical-align: middle; }\n\n.directory-tree__tree .directory-tree__tree {\n padding-left: 6px; }\n\n.dropdown {\n display: inline-block;\n outline: none;\n position: relative;\n z-index: 2; }\n .dropdown__button, .dropdown__trigger {\n cursor: pointer; }\n .dropdown__button {\n display: block;\n padding: 12px 15px 7px 15px;\n text-align: left;\n width: auto;\n word-wrap: none; }\n .dropdown__content {\n background: rgba(255, 255, 255, 0.98);\n border-radius: 3px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1), 0 0 35px rgba(26, 47, 61, 0.3);\n color: #95a2ad;\n left: 0;\n position: absolute;\n text-align: left;\n top: 0;\n z-index: 2; }\n .dropdown.is-expanded .dropdown__header .dropdown__value {\n color: #4e6a7c; }\n .dropdown__label {\n color: #abbac7;\n display: block;\n font-size: 0.65em;\n font-weight: 500;\n letter-spacing: 0.1em;\n line-height: 0.9em;\n text-transform: uppercase; }\n .dropdown__button .dropdown__label {\n cursor: pointer; }\n .dropdown__value {\n color: #8899a8;\n transition: color 0.25s; }\n .dropdown__value:after {\n border-top: 5px solid #8899a8;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n content: '';\n display: inline-block;\n margin-left: 10px;\n vertical-align: middle; }\n .dropdown__header {\n position: relative; }\n .dropdown__header:after {\n background: rgba(26, 47, 61, 0.05);\n bottom: 0;\n content: '';\n display: block;\n height: 1px;\n left: 5%;\n position: absolute;\n width: 90%; }\n .dropdown__items {\n display: flex;\n padding: 10px 0; }\n .dropdown__list {\n flex: 1; }\n .dropdown__item {\n padding: 5px 15px; }\n .dropdown__item.is-selectable {\n cursor: pointer;\n display: block;\n font-size: 0.9em;\n transition: background 0.25s, color 0.25s; }\n .dropdown__item.is-selectable:hover {\n background: rgba(233, 238, 242, 0.4);\n color: #788997; }\n .dropdown__item.is-selectable.is-selected {\n color: #258de5; }\n .dropdown--align-right .dropdown {\n left: auto;\n right: 0; }\n\n.dropdown__content-enter {\n animation: fade-in 0.25s both; }\n\n.dropdown__content-leave {\n animation: fade-out 0.25s both; }\n\n.dropdown__content__container {\n padding: 25px 30px; }\n\n.floating-action__button {\n background: #fff;\n border: none;\n border-radius: 16px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1);\n cursor: pointer;\n height: 16px;\n outline: none;\n margin-right: 8px;\n padding: 0;\n position: relative;\n transition: background 0.25s, box-shadow 0.25s;\n width: 16px; }\n .floating-action__button:last-child {\n margin-right: 0; }\n .floating-action__button:hover {\n background: #e9eef2;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.2); }\n .floating-action__button:hover .icon {\n fill: rgba(26, 47, 61, 0.5); }\n .floating-action__button .icon {\n height: 8px;\n fill: rgba(26, 47, 61, 0.3);\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translate(-50%, -50%);\n width: 8px; }\n\n@keyframes loading-indicator-dots-pulse {\n 0% {\n fill-opacity: 0.2; }\n 100% {\n fill-opacity: 0.8; } }\n\n.icon--eta .icon__ring {\n fill-opacity: 1; }\n\n.icon--loading-indicator .loading-indicator--dots__dot {\n animation: loading-indicator-dots-pulse 0.6s linear alternate infinite;\n fill: #fff; }\n .icon--loading-indicator .loading-indicator--dots__dot--center {\n animation-delay: 0.2s; }\n .icon--loading-indicator .loading-indicator--dots__dot--right {\n animation-delay: 0.4s; }\n\n@keyframes loading-indicator-swipe {\n 0% {\n transform: translateX(-100%); }\n 50% {\n transform: translateX(400%); }\n 100% {\n transform: translateX(400%); } }\n\n.loading-indicator {\n height: 18px;\n position: relative;\n width: 32px; }\n .loading-indicator.is-inverse .loading-indicator__bar {\n background: rgba(56, 88, 109, 0.7); }\n .loading-indicator.is-inverse .loading-indicator__bar:after {\n background: rgba(37, 141, 229, 0.75); }\n .loading-indicator__bar {\n background: #e9eef2;\n border-radius: 10px;\n height: 3px;\n left: 0;\n overflow: hidden;\n position: absolute;\n transform: translateY(0);\n width: 100%; }\n .loading-indicator__bar:after {\n animation: loading-indicator-swipe 3s ease-in-out infinite;\n background: rgba(37, 141, 229, 0.75);\n border-radius: 10px;\n content: '';\n display: block;\n height: 100%;\n transform: translateX(-100%);\n width: 25%; }\n .loading-indicator__bar--1 {\n top: 0; }\n .loading-indicator__bar--2 {\n top: 50%;\n transform: translateY(-50%); }\n .loading-indicator__bar--2:after {\n animation-delay: 0.5s; }\n .loading-indicator__bar--3 {\n bottom: 0; }\n .loading-indicator__bar--3:after {\n animation-delay: 1s; }\n\n.modal {\n background: rgba(26, 47, 61, 0.5);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n transition: opacity 0.5s;\n width: 100%;\n z-index: 100; }\n .modal__content {\n background: #fff;\n border-radius: 5px;\n box-shadow: 0 0 0 1px rgba(26, 47, 61, 0.1), 0 0 35px rgba(26, 47, 61, 0.3);\n left: 50%;\n max-height: 80%;\n max-width: 80%;\n overflow: auto;\n padding: 30px;\n position: absolute;\n top: 10%;\n transform: translate(-50%, 0);\n width: 500px; }\n .modal__content--align-center {\n text-align: center; }\n .modal__footer {\n margin-top: 25px; }\n .modal__button-group {\n text-align: right; }\n .modal__button-group .button + .button {\n margin-left: 20px; }\n .modal__header {\n color: #313436;\n font-size: 1.1em;\n font-weight: 400;\n margin-bottom: 20px; }\n .modal__animation-enter {\n opacity: 0; }\n .modal__animation-enter-active {\n opacity: 1; }\n .modal__animation-leave {\n opacity: 1;\n pointer-events: none; }\n .modal__animation-leave-active {\n opacity: 0; }\n\n.priority-meter {\n height: 8px;\n position: relative;\n width: 17px; }\n .priority-meter__wrapper {\n display: inline-block;\n padding: 5px;\n vertical-align: middle; }\n .priority-meter:before, .priority-meter:after {\n content: '';\n display: block;\n position: absolute; }\n .priority-meter:before {\n height: 2px;\n left: 0;\n top: 3px;\n transition: background 0.25s;\n width: 100%; }\n .priority-meter:after {\n height: 100%;\n top: 0;\n transition: background 0.25s, left 0.25s;\n width: 2px; }\n .priority-meter--level-0:before {\n background: rgba(67, 96, 118, 0.2); }\n .priority-meter--level-0:after {\n left: 0;\n background: #436076; }\n .priority-meter--level-1:before {\n background: rgba(37, 141, 229, 0.2); }\n .priority-meter--level-1:after {\n left: 8px;\n background: #258de5; }\n .priority-meter--level-2:before {\n background: rgba(57, 206, 131, 0.2); }\n .priority-meter--level-2:after {\n background: #39ce83;\n left: 15px; }\n\n.progress-bar {\n height: 3px;\n position: relative;\n transition: opacity 0.25s;\n z-index: 1; }\n .is-selected.is-stopped .progress-bar {\n opacity: 0.5; }\n .progress-bar:after {\n background: #e3e5e5;\n content: '';\n height: 1px;\n left: 0;\n position: absolute;\n z-index: 0;\n top: 1px;\n transition: background 0.25s;\n width: 100%; }\n .is-selected .progress-bar:after {\n background: rgba(255, 255, 255, 0.5); }\n .is-selected.is-stopped .progress-bar:after {\n background: rgba(255, 255, 255, 0.5); }\n .progress-bar__fill {\n background: #39ce83;\n bottom: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: background 0.25s, width 0.25s;\n z-index: 1; }\n .is-seeding .progress-bar__fill {\n background: #258de5; }\n .is-completed .progress-bar__fill,\n .is-stopped .progress-bar__fill {\n background: #e3e5e5; }\n .is-selected .progress-bar__fill {\n background: #fff; }\n .has-error .progress-bar__fill {\n background: #e95779; }\n\n.scrollbars__thumb {\n background: rgba(26, 47, 61, 0.3);\n border-radius: 10px;\n cursor: pointer;\n opacity: 0;\n transition: background 0.25s, opacity 0.5s; }\n .scrollbars__thumb:active {\n opacity: 1; }\n .scrollbars__thumb:hover, .scrollbars__thumb:active {\n background: rgba(26, 47, 61, 0.6); }\n .is-inverted .scrollbars__thumb {\n background: rgba(233, 238, 242, 0.3); }\n .is-inverted .scrollbars__thumb:hover, .is-inverted .scrollbars__thumb:active {\n background: rgba(233, 238, 242, 0.6); }\n\n.scrollbars:hover .scrollbars__thumb {\n opacity: 1; }\n\n.application__sidebar {\n box-shadow: 1px 0 rgba(6, 9, 11, 0.3);\n color: #53718a;\n flex: 1;\n min-width: 200px;\n max-width: 240px;\n overflow: auto;\n position: relative;\n z-index: 2; }\n\n.sidebar__item--search {\n position: relative; }\n .sidebar__item--search .icon {\n fill: #53718a;\n height: 22px;\n left: 17px;\n opacity: 0.5;\n position: absolute;\n top: 50%;\n transition: fill 0.25s, opacity 0.25s;\n transform: translateY(-50%);\n width: 22px; }\n .sidebar__item--search .textbox {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 1px solid rgba(9, 24, 36, 0.4);\n border-left: none;\n border-right: none;\n border-radius: 0;\n background: rgba(9, 24, 36, 0.3);\n box-shadow: none;\n color: #53718a;\n display: block;\n font-size: 1em;\n outline: none;\n padding: 12px 0 12px 45px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%; }\n .sidebar__item--search .textbox::placeholder {\n color: rgba(83, 113, 138, 0.4);\n font-style: italic;\n transition: color 0.25s; }\n .sidebar__item--search.is-in-use .icon {\n fill: #2c9e65;\n opacity: 1; }\n .sidebar__item--search.is-in-use .textbox {\n background: #39ce83;\n border-bottom: 1px solid #39ce83;\n border-top: 1px solid #39ce83;\n color: #1e8954; }\n .sidebar__item--search.is-in-use .textbox::placeholder {\n color: #2cad6d; }\n\n.sidebar__item--speed-limit {\n padding-left: 5px;\n padding-top: 5px; }\n .sidebar__item--speed-limit .dropdown__content {\n min-width: 180px; }\n .sidebar__item--speed-limit .dropdown__items {\n font-size: 0.9em; }\n\n.sidebar-filter {\n font-size: 0.85em;\n padding: 30px 0; }\n .sidebar-filter + .sidebar-filter {\n padding-top: 0; }\n .sidebar-filter__item {\n color: #53718a;\n cursor: pointer;\n font-weight: 400;\n padding: 3px 20px;\n transition: color 0.25s; }\n .sidebar-filter__item:hover {\n color: #7a97af; }\n .sidebar-filter__item:hover .icon {\n fill: #7a97af; }\n .sidebar-filter__item.is-active {\n color: #258de5;\n font-weight: 700; }\n .sidebar-filter__item.is-active .badge {\n background: #3b586d; }\n .sidebar-filter__item.is-active .icon {\n fill: #258de5; }\n .sidebar-filter__item .icon {\n display: inline-block;\n fill: #53718a;\n height: 14px;\n margin-right: 7px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: auto; }\n .sidebar-filter .badge {\n background: #2b4456;\n color: #132532; }\n\n.sidebar-filter__item--heading {\n cursor: default;\n font-size: 0.8em;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n .sidebar-filter__item--heading, .sidebar-filter__item--heading:hover {\n color: rgba(83, 113, 138, 0.5); }\n\n.textbox-repeater .floating-action__group {\n margin-top: -8px;\n position: absolute;\n right: -8px;\n top: 50%; }\n\n.textbox-repeater .floating-action__button {\n position: relative; }\n\n.textbox-repeater .textbox__wrapper {\n position: relative; }\n\n.application__panel--torrent-details {\n background: #0e2231; }\n\n.torrent-details {\n background: #0e2231;\n bottom: 0;\n box-shadow: -1px 0 0 rgba(26, 47, 61, 0.1);\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n left: 0;\n min-width: 400px;\n overflow: auto;\n position: absolute;\n right: 0;\n top: 0;\n transition: opacity 1s;\n z-index: 2; }\n .torrent-details__heading {\n box-shadow: 0 1px 0 rgba(4, 13, 19, 0.3);\n flex: 0 0 auto;\n padding: 12.5px 25px 16.66667px 25px; }\n .torrent-details__heading.is-stopped .torrent__details--tertiary {\n color: #7b9cb4; }\n .torrent-details__heading.has-error .progress-bar__fill {\n background: #be2558; }\n .torrent-details__heading .torrent__details--name {\n color: #c7dbeb;\n font-size: 1.7em;\n font-weight: 300; }\n .torrent-details__heading .torrent__details--tertiary {\n color: #7b9cb4;\n font-size: 1em;\n margin-bottom: 12.5px; }\n .torrent-details__heading .torrent__details--download .icon, .torrent-details__heading .torrent__details--upload .icon, .torrent-details__heading .torrent__details--eta .icon, .torrent-details__heading .torrent__details--ratio .icon {\n height: 12px;\n margin-right: 3px;\n margin-top: -3px;\n vertical-align: middle;\n width: 12px; }\n .torrent-details__heading .torrent__details--ratio .icon, .torrent-details__heading .torrent__details--eta .icon {\n fill: rgba(77, 111, 135, 0.5); }\n .torrent-details__heading .torrent__details--eta {\n opacity: 1;\n visibility: visible; }\n .torrent-details__heading .progress-bar:after {\n background: #2a3e4c; }\n .torrent-details__table {\n color: #527893;\n width: 100%; }\n .torrent-details__table__heading--primary {\n color: #3a5c74;\n font-size: 1.125em; }\n .torrent-details__table__heading--secondary {\n color: rgba(82, 120, 147, 0.5);\n font-size: 0.7em;\n letter-spacing: 0.1em;\n text-transform: uppercase; }\n .torrent-details__content {\n flex: 1;\n overflow: auto;\n padding: 16.66667px 25px; }\n .torrent-details__content__wrapper {\n background: rgba(16, 26, 34, 0.4);\n display: flex;\n flex: 1;\n overflow: hidden; }\n .torrent-details__navigation {\n background: rgba(16, 26, 34, 0.1);\n box-shadow: 1px 0 0 rgba(4, 13, 19, 0.35);\n min-width: 125px;\n padding: 12.5px 0; }\n .torrent-details__navigation .navigation__item {\n cursor: pointer;\n padding: 6.25px 25px;\n text-align: right;\n transition: background 0.25s, box-shadow 0.25s, color 0.25s; }\n .torrent-details__navigation .navigation__item.is-active {\n background: rgba(52, 156, 244, 0.07);\n box-shadow: 1px 0 0 #349cf4;\n color: #349cf4; }\n .torrent-details__section__heading, .torrent-details__section__null-data {\n color: #3a5c74;\n font-size: 1.125em; }\n .torrent-details__section__heading .badge {\n background: rgba(82, 120, 147, 0.5);\n color: #0c1b26; }\n\n.torrent-details-enter {\n opacity: 0; }\n\n.torrent-details-enter-active {\n opacity: 1; }\n\n.torrent-details-leave {\n opacity: 0;\n transition: opacity 0.5s; }\n\n.torrents {\n display: flex;\n flex: 1 1 100px;\n position: relative; }\n .torrents:after {\n background: #fff;\n bottom: 0;\n box-shadow: -1px 0 0 0 rgba(26, 47, 61, 0.15);\n content: '';\n height: auto;\n left: 10px;\n position: absolute;\n right: 0;\n top: 0; }\n .torrents .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%); }\n\n.torrent__list {\n margin: 0 0 0 10px;\n padding: 10px 0;\n position: relative; }\n .torrent__list__wrapper {\n list-style: none;\n max-width: 100%;\n opacity: 1;\n overflow: auto;\n transition: opacity 1s;\n user-select: none;\n z-index: 1; }\n .torrent__list--loading-enter {\n opacity: 0;\n transition: opacity 1s; }\n .torrent__list--loading-enter-active {\n opacity: 1; }\n .torrent__list--loading-leave {\n opacity: 1;\n transition: opacity 1s; }\n .torrent__list--loading-leave-active {\n opacity: 0; }\n .torrent__list--empty {\n opacity: 0; }\n\n.torrent {\n cursor: default;\n padding: 10px 20px;\n position: relative;\n transition: background 0.25s; }\n .torrent:hover {\n background: #f6f8fa; }\n .torrent:hover .torrent__more-info {\n opacity: 1; }\n .torrent.is-selected {\n background: #258de5; }\n .torrent__more-info {\n height: 20px;\n margin-top: -10px;\n position: absolute;\n left: -7px;\n opacity: 0;\n top: 50%;\n transition: background 0.25s, box-shadow 0.25s, opacity 0.25s;\n width: 20px; }\n\n.torrent__details {\n align-items: center;\n display: flex;\n flex: 1;\n flex-flow: row wrap;\n list-style: none; }\n .torrent__details--primary, .torrent__details--secondary, .torrent__details--tertiary {\n transition: color 0.25s; }\n .torrent__details--primary {\n color: #333332;\n flex: 4;\n line-height: 1.3;\n white-space: nowrap; }\n .is-stopped .torrent__details--primary {\n color: rgba(51, 51, 50, 0.5); }\n .is-selected .torrent__details--primary {\n color: #fff; }\n .is-selected.is-stopped .torrent__details--primary {\n color: rgba(255, 255, 255, 0.6); }\n .torrent__details--secondary {\n align-items: flex-end;\n color: #807f7e;\n flex: 1;\n font-size: 0.75em;\n min-width: 200px; }\n .torrent__details--secondary li {\n flex: 1 1 auto;\n min-width: 15%; }\n .torrent__details--secondary li.torrent__details--ratio {\n max-width: 30px; }\n .is-stopped .torrent__details--secondary {\n color: rgba(128, 127, 126, 0.5); }\n .is-selected .torrent__details--secondary {\n color: #fff; }\n .is-selected.is-stopped .torrent__details--secondary {\n color: rgba(255, 255, 255, 0.6); }\n .torrent__details--tertiary {\n color: #807f7e;\n display: block;\n font-size: 0.75em;\n margin: 0 0 3px 0; }\n .torrent__details--tertiary li {\n display: inline-block;\n margin-right: 1em; }\n .torrent__details--tertiary li:last-child {\n margin-right: 0; }\n .is-stopped .torrent__details--tertiary {\n color: rgba(128, 127, 126, 0.5); }\n .is-selected .torrent__details--tertiary {\n color: rgba(255, 255, 255, 0.9); }\n .is-selected.is-stopped .torrent__details--tertiary {\n color: rgba(255, 255, 255, 0.5); }\n .torrent__details__label {\n margin-right: 0.5em;\n opacity: 0.5; }\n\n.torrent__details--eta {\n opacity: 0;\n transition: opacity 1s, visibility 1s;\n visibility: hidden; }\n .torrent__details--eta .torrent__details--segment {\n margin-right: 0.25em; }\n .torrent__details--eta .torrent__details--segment:last-child {\n margin-right: 0; }\n .is-actively-downloading .torrent__details--eta {\n opacity: 1;\n visibility: visible; }\n\n.view--torrent-list {\n background: #e9eef2;\n box-shadow: -1px 0 rgba(26, 47, 61, 0.15);\n display: flex;\n flex-direction: column;\n flex: 1;\n flex: 0 1 100%; }\n\n.transfer-data--download {\n color: #39ce83; }\n .transfer-data--download .icon {\n fill: #39ce83; }\n\n.transfer-data--upload {\n color: #258de5; }\n .transfer-data--upload .icon {\n fill: #258de5; }\n","/*!\n * inuitcss, by @csswizardry\n *\n * github.com/inuitcss | inuitcss.com\n */\n///*------------------------------------*\\\n// #DEFAULTS\n//\\*------------------------------------*/\n\n// These variables are inuitcss’ defaults; they should not be modified or\n// adjusted directly; you should predefine the variables in your own project.\n\n\n\n\n\n// High-level base settings.\n$inuit-base-font-size: 16px !default;\n$inuit-base-line-height: 24px !default;\n$inuit-base-text-color: #333 !default;\n$inuit-base-background-color: #fff !default;\n\n\n\n\n\n// Namespace.\n//\n// Would you like inuitcss’ classes to be prepended with a namespace? If so,\n// define it here.\n$inuit-namespace: null !default;\n\n\n\n\n\n// These variables are framework variables, sourced from variables defined\n// above. Feel free to use these variables throughout your project, but do not\n// modify or reassign them.\n$inuit-base-spacing-unit: $inuit-base-line-height;\n$inuit-base-spacing-unit--tiny: round($inuit-base-spacing-unit / 4);\n$inuit-base-spacing-unit--small: round($inuit-base-spacing-unit / 2);\n$inuit-base-spacing-unit--large: round($inuit-base-spacing-unit * 2);\n$inuit-base-spacing-unit--huge: round($inuit-base-spacing-unit * 4);\n","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS and IE text size adjust after device orientation change,\n * without disabling user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox.\n * Correct `block` display not defined for `main` in IE 11.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9/10.\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * Improve readability of focused elements when they are also in an\n * active/hover state.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n */\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n */\n\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9/10.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow not hidden in IE 9/10/11.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n box-sizing: content-box; /* 2 */\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9/10/11.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","@import 'colors';\n@import url(http://fonts.googleapis.com/css?family=Roboto:400italic,700italic,300,700,300italic,400);\n\n$font: 'Roboto', sans-srif;\n\n$spacing-unit: 25px;\n$torrent-details--width: 85%;\n","@import url('http://fonts.googleapis.com/css?family=Roboto:500,400italic,300,700,400');\n\nbody {\n color: $foreground;\n font-family: $font;\n}\n\n.unit {\n display: inline-block;\n font-size: 0.8em;\n font-style: normal;\n margin-bottom: 0.1em;\n opacity: 0.8;\n}\n\n.text-overflow {\n overflow: hidden;\n position: relative;\n text-overflow: ellipsis;\n}\n","/*------------------------------------*\\\n #RESET\n\\*------------------------------------*/\n\n/**\n * As well as using normalize.css, it is often advantageous to remove all\n * margins from certain elements.\n */\nbody,\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\ndl, dd, ol, ul,\nform, fieldset, legend,\nfigure,\ntable, th, td, caption,\nhr {\n margin: 0;\n padding: 0;\n}\n\n\n\n\n\n/**\n * Give a help cursor to elements that give extra info on `:hover`.\n */\nabbr[title],\ndfn[title] {\n cursor: help;\n}\n\n\n\n\n\n/**\n * Remove underlines from potentially troublesome elements.\n */\nu,\nins {\n text-decoration: none;\n}\n\n\n\n\n\n/**\n * Apply faux underlines to inserted text via `border-bottom`.\n */\nins {\n border-bottom: 1px solid;\n}\n","/*------------------------------------*\\\n #BOX-SIZING\n\\*------------------------------------*/\n\n/**\n * Set the global `box-sizing` state to `border-box`.\n *\n * css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice\n * paulirish.com/2012/box-sizing-border-box-ftw\n */\nhtml {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n* {\n\n &,\n &:before,\n &:after {\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n box-sizing: inherit;\n }\n\n}\n\n\n\n\n\n// If we have included this file, set a variable to tell the rest of the\n// framework that global `box-sizing: border-box` has been set.\n$inuit-global-border-box: true;\n","/*------------------------------------*\\\n #PAGE\n\\*------------------------------------*/\n\n/**\n * High-, page-level styling.\n *\n * 1. Set the default `font-size` and `line-height` for the entire project,\n * sourced from our default variables. The `font-size` is calculated to exist\n * in ems, the `line-height` is calculated to exist unitlessly.\n * 2. Force scrollbars to always be visible to prevent awkward ‘jumps’ when\n * navigating between pages that do/do not have enough content to produce\n * scrollbars naturally.\n * 3. Ensure the page always fills at least the entire height of the viewport.\n * 4. Prevent certain mobile browsers from automatically zooming fonts.\n * 5. Fonts on OSX will look more consistent with other systems that do not\n * render text using sub-pixel anti-aliasing.\n */\nhtml {\n font-size: ($inuit-base-font-size / 16px) * 1em; /* [1] */\n line-height: $inuit-base-line-height / $inuit-base-font-size; /* [1] */\n background-color: $inuit-base-background-color;\n color: $inuit-base-text-color;\n overflow-y: scroll; /* [2] */\n min-height: 100%; /* [3] */\n -webkit-text-size-adjust: 100%; /* [4] */\n -ms-text-size-adjust: 100%; /* [4] */\n -moz-osx-font-smoothing: grayscale; /* [5] */\n -webkit-font-smoothing: antialiased; /* [5] */\n}\n","th {\n font-weight: inherit;\n text-align: left;\n}\n","@keyframes fade-in {\n\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n\n}\n\n@keyframes fade-out {\n\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n\n}\n",".textbox,\n.button {\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n outline: none;\n}\n\n.textbox {\n background: $textbox--background;\n border-radius: 4px;\n border: 1px solid $textbox--border;\n color: $textbox--foreground;\n display: block;\n font-size: 0.9em;\n padding: 10px 15px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%;\n\n &::placeholder {\n color: $textbox--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n\n &:focus {\n background: $textbox--active--background;\n border-color: $textbox--active--border;\n color: $textbox--active--foreground;\n\n &::placeholder {\n color: $textbox--active--placeholder;\n }\n }\n\n}\n\n.button {\n background: transparent;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.9em;\n font-weight: 400;\n padding: 8px 22px;\n transition: background 0.25s;\n\n &.has-icon {\n\n .icon {\n height: 16px;\n margin: 0 $spacing-unit * 1/3;\n vertical-align: middle;\n width: 16px;\n\n &:first-child {\n margin-left: 0;\n }\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n &--deemphasize {\n background: $button--deemphasized--background;\n color: $button--deemphasized--foreground;\n\n &:hover {\n background: $button--deemphasized--background--hover;\n color: $button--deemphasized--foreground--hover;\n }\n }\n\n &--primary {\n background: $button--primary--background;\n color: $button--primary--foreground;\n white-space: nowrap;\n\n &:hover {\n background: $button--primary--background--hover;\n }\n }\n}\n\n.form {\n\n &__label {\n color: $form--label--foreground;\n display: block;\n margin-bottom: 0.1em;\n }\n\n &__row {\n\n & + .form__row {\n margin-top: 20px;\n }\n }\n\n}\n","$blue: #258de5;\n$green: #39ce83;\n$white: #fff;\n\n$background: #1a2f3d;\n$foreground: #53718a;\n\n$main-content--background: #e9eef2;\n\n$header--foreground: #313436;\n\n// form elements\n$form--label--foreground: #53718a;\n\n$textbox--background: rgba($main-content--background, 0.3);\n$textbox--foreground: $foreground;\n$textbox--placeholder: #abbac7;\n$textbox--border: $main-content--background;\n$textbox--active--background: $textbox--background;\n$textbox--active--border: $main-content--background;\n$textbox--active--foreground: $blue;\n$textbox--active--placeholder: $textbox--placeholder;\n\n$textbox-repeater--button--background: #fff;\n$textbox-repeater--button--background--hover: $main-content--background;\n$textbox-repeater--button--border: rgba($background, 0.1);\n$textbox-repeater--button--border--hover: rgba($background, 0.2);\n$textbox-repeater--button--foreground: rgba($background, 0.3);\n$textbox-repeater--button--foreground--hover: rgba($background, 0.5);\n\n$button--primary--foreground: #fff;\n$button--primary--background: $blue;\n$button--primary--background--hover: darken($button--primary--background, 5%);\n$button--deemphasized--foreground: #66717a;\n$button--deemphasized--background: $main-content--background;\n$button--deemphasized--foreground--hover: darken($button--deemphasized--foreground, 5%);\n$button--deemphasized--background--hover: darken($button--deemphasized--background, 5%);\n\n// action bar\n$action-bar--background: transparent;\n$action-bar--foreground: #1b1a1c;\n$action-bar--group--border: rgba(#7a8080, 0.15);\n\n$action--foreground: #909799;\n$action--foreground--hover: $blue;\n$action--background--hover: rgba(#333e4a, 0.05);\n$action--border--hover: rgba(#333e4a, 0.15);\n\n// filter bar\n$sidebar--foreground: #53718a;\n$sidebar--border: rgba(darken($sidebar--foreground, 40%), 0.3);\n\n$client-stats--limits--opacity: 0.15;\n$client-stats--speed--fill--top--opacity: 0.2;\n$client-stats--speed--fill--bottom--opacity: 0;\n$client-stats--speed--stroke--opacity: 0.4;\n\n$client-stats--download--primary--foreground: #2bae6c;\n$client-stats--download--secondary--foreground: rgba($client-stats--download--primary--foreground, 0.75);\n$client-stats--download--graph--stroke: rgba(#2bae6c, $client-stats--speed--stroke--opacity);\n$client-stats--download--graph--fill--top: rgba(#2bae6c, $client-stats--speed--fill--top--opacity);\n$client-stats--download--graph--fill--bottom: rgba(#2bae6c, $client-stats--speed--fill--bottom--opacity);\n$client-stats--download--limits--line: rgba(lighten($client-stats--download--primary--foreground, 20%), $client-stats--limits--opacity);\n\n$client-stats--upload--primary--foreground: #2387d9;\n$client-stats--upload--secondary--foreground: rgba($client-stats--upload--primary--foreground, 0.75);\n$client-stats--upload--graph--stroke: rgba(#2387d9, $client-stats--speed--stroke--opacity);\n$client-stats--upload--graph--fill--top: rgba(#2387d9, $client-stats--speed--fill--top--opacity);\n$client-stats--upload--graph--fill--bottom: rgba(#2387d9, $client-stats--speed--fill--bottom--opacity);\n$client-stats--upload--limits--line: rgba(lighten($client-stats--upload--primary--foreground, 20%), $client-stats--limits--opacity);\n\n$client-stats--limits--foreground: $foreground;\n$client-stats--limits--icon--hover: $blue;\n\n$search-torrents--base: #091824;\n$search-torrents--background: rgba($search-torrents--base, 0.3);\n$search-torrents--background--active: $green;\n$search-torrents--border: rgba($search-torrents--background, 0.4);\n$search-torrents--border--active: $search-torrents--background--active;\n$search-torrents--foreground: $sidebar--foreground;\n$search-torrents--foreground--active: #1e8954;\n$search-torrents--placeholder: rgba($sidebar--foreground, 0.4);\n$search-torrents--placeholder--active: #2cad6d;\n\n$search-torrents--icon--foreground: $sidebar--foreground;\n$search-torrents--icon--foreground--active: #2c9e65;\n\n$sidebar-filter--foreground: $sidebar--foreground;\n$sidebar-filter--foreground--header: rgba($sidebar-filter--foreground, 0.5);\n$sidebar-filter--foreground--active: $blue;\n$sidebar-filter--foreground--hover: lighten($sidebar-filter--foreground, 15%);\n\n$sidebar-filter--count--foreground: #132532;\n$sidebar-filter--count--background: #2b4456;\n$sidebar-filter--count--background--active: #3b586d;\n\n\n// torrents list\n$torrent-list--background: #fff;\n$torrent-list--border: rgba($background, 0.15);\n\n$torrent--primary--foreground: #333332;\n$torrent--primary--foreground--stopped: rgba(#333332, 0.5);\n$torrent--primary--foreground--selected: #fff;\n$torrent--primary--foreground--selected--stopped: rgba($torrent--primary--foreground--selected, 0.6);\n$torrent--secondary--foreground: #807f7e;\n$torrent--secondary--foreground--stopped: rgba(#807f7e, 0.5);\n$torrent--secondary--foreground--selected: #fff;\n$torrent--secondary--foreground--selected--stopped: rgba(#fff, 0.6);\n$torrent--tertiary--foreground: #807f7e;\n$torrent--tertiary--foreground--stopped: rgba(#807f7e, 0.5);\n$torrent--tertiary--foreground--selected: rgba(#fff, 0.9);\n$torrent--tertiary--foreground--selected--stopped: rgba(#fff, 0.5);\n\n$torrent--background--hover: #f6f8fa;\n$torrent--background--selected: $blue;\n\n$progress-bar--background: #e3e5e5;\n$progress-bar--background--selected: rgba(#fff, 0.5);\n$progress-bar--background--selected--stopped: rgba(#fff, 0.5);\n$progress-bar--fill: $green;\n\n$progress-bar--fill--stopped: #e3e5e5;\n$progress-bar--fill--completed: $blue;\n$progress-bar--fill--selected: #fff;\n$progress-bar--fill--error: #e95779;\n\n// torrent details\n$torrent-details--background: saturate(lighten(#0c1b26, 2.5%), 4%); //#162835;\n$torrent-details--border: rgba($background, 0.1);\n\n$torrent-details--header--border: rgba(#040d13, 0.3);\n$torrent-details--header--name--foreground: #c7dbeb;\n$torrent-details--header--tertiary--foreground: #7b9cb4;\n$torrent-details--header--progress-bar--track: #2a3e4c;\n$torrent-details--header--progress-bar--fill--error: #be2558;\n\n$torrent-details--navigation--border: rgba(#040d13, 0.35);\n$torrent-details--navigation--item--background--active: rgba(#349cf4, 0.07);\n$torrent-details--navigation--item--foreground--active: #349cf4;\n$torrent-details--navigation--item--border--active: #349cf4;\n$torrent-details--navigation--background: rgba(desaturate(#0c1b26, 15%), 0.1);\n\n$torrent-details--content--background: rgba(desaturate(#0c1b26, 15%), 0.4);\n\n$torrent-details--directory-tree--parent-directory--foreground: #3a5c74;\n$torrent-details--directory-tree--parent-directory--icon--fill: rgba(#3a5c74, 0.5);\n\n$torrent-details--table--foreground: #527893;\n$torrent-details--table--header: rgba(#527893, 0.5);\n$torrent-details--table--header--count--background: rgba(#527893, 0.5);\n$torrent-details--table--header--count--foreground: #0c1b26;\n\n$torrent-details--header--icon--default--fill: rgba(#4d6f87, 0.5);\n\n// tansfer data\n$transfer-data--download: $green;\n$transfer-data--upload: $blue;\n\n// dropdown menu\n$dropdown--background: rgba(#fff, 0.98);\n$dropdown--foreground: #95a2ad;\n$dropdown--container--border: rgba($background, 0.1);\n$dropdown--container--shadow: rgba($background, 0.3);\n$dropdown--label: #abbac7;\n$dropdown--value: #8899a8;\n$dropdown--value--active: #4e6a7c;\n$dropdown--header--border: rgba($background, 0.05);\n$dropdown--item--background--hover: rgba($main-content--background, 0.4);\n$dropdown--item--foreground--hover: darken($dropdown--foreground, 10%);\n$dropdown--item--foreground--active: $blue;\n\n// modal windows\n$modal--background: #fff;\n$modal--overlay: rgba($background, 0.5);\n$modal--header--foreground: $header--foreground;\n$modal--content--border: rgba($background, 0.1);\n$modal--content--shadow: rgba($background, 0.3);\n\n// directory torrent-details--directory-tree--icon-fill\n$directory-tree--filename--foreground: #527893;\n$directory-tree--directory--foreground: $directory-tree--filename--foreground;\n$directory-tree--directory--foreground--open: #719bb7;\n\n$directory-tree--icon--file: #344b5b;\n$directory-tree--icon--folder: rgba(#527893, 0.4);\n$directory-tree--icon--folder--active: rgba(#82aac5, 0.5);\n$directory-tree--icon--folder--open: rgba(#82aac5, 0.5);\n\n$directory-tree--file-details--foreground: #2b4456;\n$directory-tree--file-details--hover--foreground: #527893;\n\n// scrollbars\n$scrollbar--thumb--background--inactive: rgba(#1a2f3d, 0.3);\n$scrollbar--thumb--background--hover: rgba(#1a2f3d, 0.6);\n$scrollbar--thumb--background--inverted--inactive: rgba(#e9eef2, 0.3);\n$scrollbar--thumb--background--inverted--hover: rgba(#e9eef2, 0.6);\n\n// loading indicator\n$loading-indicator--bar--background: #e9eef2;\n$loading-indicator--bar--background--inverse: rgba(#38586d, 0.7);\n$loading-indicator--tick--background: rgba($blue, 0.75);\n$loading-indicator--tick--background--inverse: rgba($blue, 0.75);\n\n// priority meter\n$priority-meter--track--level-0--background: rgba(#436076, 0.2);\n$priority-meter--bar--level-0--background: #436076;\n$priority-meter--track--level-1--background: rgba($blue, 0.2);\n$priority-meter--bar--level-1--background: $blue;\n$priority-meter--track--level-2--background: rgba($green, 0.2);\n$priority-meter--bar--level-2--background: $green;\n","html,\nbody {\n height: 100%;\n overflow: hidden;\n}\n\n.container {\n height: 100%;\n width: 100%;\n}\n\n.flood {\n align-items: stretch;\n display: flex;\n height: 100%;\n}\n\n.application {\n\n &__content {\n display: flex;\n height: 100vh;\n flex: 1 2 auto;\n flex-direction: column;\n position: relative;\n }\n\n &__panel {\n display: flex;\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n\n &--torrent-list {\n transition: transform 0.5s;\n z-index: 2;\n\n &.is-open {\n transform: translateX($torrent-details--width);\n }\n }\n\n &--torrent-details {\n right: 100% - $torrent-details--width;\n width: $torrent-details--width;\n z-index: 1;\n }\n }\n}\n\n.torrent {\n\n &__header {\n flex: 1;\n min-height: 35px;\n max-height: 35px;\n }\n\n &__list {\n\n &__wrapper {\n display: flex;\n flex: 1;\n\n &--custom-scroll {\n flex: 1;\n height: auto !important;\n }\n }\n }\n}\n","body {\n background: $background;\n}\n\nul {\n list-style: none;\n}\n",".action-bar {\n background: $action-bar--background;\n color: $action-bar--foreground;\n display: flex;\n flex: 0 0 60px;\n position: relative;\n\n &:after {\n background: $torrent-list--border;\n bottom: 0;\n content: '';\n height: 1px;\n left: 9px;\n position: absolute;\n right: 0;\n width: auto;\n }\n\n &__item {\n flex: 3;\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n }\n\n &--sort-torrents {\n max-width: 225px;\n\n .dropdown {\n margin: 5px 0 0 15px;\n\n &__content {\n min-width: 250px;\n }\n }\n }\n\n &--torrent-operations {\n\n .dropdown {\n display: inline-block;\n height: 60px;\n\n &__content {\n min-width: 430px;\n right: 4px;\n }\n }\n }\n }\n\n &__group {\n display: inline-block;\n font-size: 0;\n padding: 0 15px;\n\n &--has-divider {\n position: relative;\n\n &:before {\n background: $action-bar--group--border;\n content: '';\n position: absolute;\n height: 80%;\n left: 0;\n top: 10%;\n width: 1px;\n }\n }\n }\n}\n\n.actions {\n list-style: none;\n}\n\n.action {\n box-shadow:\n 1px 0 transparent,\n -1px 0 transparent;\n cursor: pointer;\n display: inline-block;\n height: 60px;\n position: relative;\n width: 60px;\n text-align: center;\n transition: background 0.25s, box-shadow 0.25s;\n\n &:hover {\n background: $action--background--hover;\n box-shadow:\n 1px 0 $action--border--hover,\n -1px 0 $action--border--hover;\n\n .icon {\n fill: $action--foreground--hover;\n }\n }\n\n &__label {\n display: block;\n position: absolute;\n top: 100%;\n visibility: hidden;\n }\n\n .icon {\n fill: $action--foreground;\n height: 25px;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translateX(-50%) translateY(-50%);\n width: 30px;\n }\n}\n",".application {\n\n &__content {\n background: $main-content--background;\n }\n}\n",".badge {\n background: $sidebar-filter--count--background;\n border-radius: 100px;\n color: $sidebar-filter--count--foreground;\n display: inline-block;\n font-size: 0.8em;\n font-weight: 800;\n line-height: 1;\n margin-left: 10px;\n padding: 1px 5px;\n transition: background 0.25s;\n vertical-align: baseline;\n}\n",".client-stats {\n height: 200px;\n position: relative;\n\n .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n .transfer-data-enter {\n opacity: 0;\n transition: opacity 1s;\n\n &.transfer-data-enter-active {\n opacity: 1;\n }\n }\n\n .transfer-data-leave {\n opacity: 1;\n transition: opacity 1s;\n\n &.transfer-data-leave-active {\n opacity: 0;\n }\n }\n}\n\n.client-stat {\n align-items: center;\n display: flex;\n height: 100px;\n padding: 0 20px;\n\n &__icon,\n &__data {\n position: relative;\n vertical-align: top;\n z-index: 1;\n }\n\n &__icon {\n flex: 0 0 23px;\n\n .icon {\n display: inline-block;\n height: 25px;\n margin: 6px 0 0 -5px;\n width: auto;\n }\n }\n\n &__data {\n flex: 1;\n\n &--primary,\n &--secondary {\n display: block;\n font-weight: 100;\n line-height: 1.2;\n }\n\n &--primary {\n font-size: 1.75em;\n white-space: nowrap;\n\n .unit {\n font-size: 0.65em;\n margin-bottom: 0;\n opacity: 0.5;\n position: relative;\n top: -0.1em;\n }\n }\n\n &--secondary {\n font-size: 0.8em;\n font-style: italic;\n font-weight: 400;\n }\n }\n}\n\n.client-stat {\n\n &--limits {\n background: none;\n border: none;\n color: $client-stats--limits--foreground;\n display: block;\n outline: none;\n padding: 10px 15px;\n font-size: 0.85em;\n text-align: left;\n transition: color 0.25s;\n vertical-align: middle;\n width: 100%;\n\n .icon {\n display: inline-block;\n fill: $client-stats--limits--foreground;\n margin: -2px 5px 0 0;\n transition: fill 0.25s;\n vertical-align: middle;\n width: 14.5px;\n\n .limits {\n\n &__bars {\n\n &--top {\n opacity: 0.4;\n }\n\n &--bottom {\n opacity: 0.6;\n }\n }\n }\n }\n\n &:hover {\n color: $client-stats--limits--icon--hover;\n\n .icon {\n fill: $client-stats--limits--icon--hover;\n }\n }\n }\n}\n\n.client-stat {\n position: relative;\n\n .graph {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 0;\n\n svg {\n height: 100%;\n width: 100%;\n }\n\n &__line {\n fill: none;\n\n &--limit {\n stroke-dasharray: 3px 4px;\n stroke-width: 1px;\n }\n\n &--rate {\n stroke-width: 1.1px;\n }\n }\n\n }\n\n &--download {\n\n .icon {\n fill: $client-stats--download--secondary--foreground;\n }\n\n .client-stat {\n\n &__data {\n\n &--primary {\n color: $client-stats--download--primary--foreground;\n }\n\n &--secondary {\n color: $client-stats--download--secondary--foreground;\n }\n\n }\n\n }\n\n .graph {\n\n .graph--download--gradient--top {\n stop-color: $client-stats--download--graph--fill--top;\n }\n\n .graph--download--gradient--bottom {\n stop-color: $client-stats--download--graph--fill--bottom;\n }\n\n &__area {\n fill: url('#graph--download--gradient')\n }\n\n &__line {\n\n &--limit {\n stroke: $client-stats--download--limits--line;\n }\n\n &--rate {\n stroke: $client-stats--download--graph--stroke;\n }\n }\n\n }\n\n }\n\n &--upload {\n\n .icon {\n fill: $client-stats--upload--secondary--foreground;\n }\n\n .client-stat {\n\n &__data {\n\n &--primary {\n color: $client-stats--upload--primary--foreground;\n }\n\n &--secondary {\n color: $client-stats--upload--secondary--foreground;\n }\n\n }\n\n }\n\n .graph {\n\n .graph--upload--gradient--top {\n stop-color: $client-stats--upload--graph--fill--top;\n }\n\n .graph--upload--gradient--bottom {\n stop-color: $client-stats--upload--graph--fill--bottom;\n }\n\n &__area {\n fill: url('#graph--upload--gradient')\n }\n\n &__line {\n\n &--limit {\n stroke: $client-stats--upload--limits--line;\n }\n\n &--rate {\n stroke: $client-stats--upload--graph--stroke;\n }\n }\n\n }\n\n }\n\n}\n",".directory-tree {\n\n .icon {\n display: inline-block;\n fill: $directory-tree--icon--folder;\n height: 14px;\n margin-right: 6px;\n width: 14px;\n }\n\n &__node {\n color: $directory-tree--filename--foreground;\n line-height: 1.75;\n text-overflow: ellipsis;\n vertical-align: middle;\n white-space: nowrap;\n\n &--group {\n padding-left: 10px;\n position: relative;\n\n &:after {\n background: rgba(#527893, 0.1);\n content: '';\n height: 100%;\n left: 5px;\n position: absolute;\n top: -5px;\n width: 2px;\n }\n }\n\n &--directory {\n color: $directory-tree--directory--foreground;\n cursor: pointer;\n transition: color 0.125s;\n\n &.is-expanded {\n color: $directory-tree--directory--foreground--open;\n font-weight: 500;\n\n .icon {\n fill: $directory-tree--icon--folder--active;\n }\n }\n\n .icon {\n fill: $directory-tree--icon--folder;\n }\n }\n\n .file {\n display: flex;\n line-height: 1.7;\n width: 100%;\n\n &:hover {\n\n .file {\n\n &__detail {\n\n &--size,\n &--priority {\n color: $directory-tree--file-details--hover--foreground;\n }\n }\n }\n }\n\n .icon {\n fill: $directory-tree--icon--file;\n }\n\n &__detail {\n flex: 1 1 auto;\n overflow: hidden;\n padding-right: $spacing-unit * 1/4;\n text-overflow: ellipsis;\n\n &--size,\n &--priority {\n color: $directory-tree--file-details--foreground;\n flex: 0 0 auto;\n font-size: 0.95em;\n text-align: right;\n transition: color 0.25s;\n }\n\n &--priority {\n\n .icon {\n height: auto;\n margin-right: 0;\n width: 16px;\n }\n }\n\n &:last-child {\n padding-right: 0;\n }\n }\n }\n\n &--file-list {\n margin-bottom: 3px;\n }\n }\n\n &__parent-directory {\n margin-left: -1px;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .icon {\n fill: $torrent-details--directory-tree--parent-directory--icon--fill;\n margin-right: 8px;\n vertical-align: middle;\n }\n }\n\n &__tree {\n\n .directory-tree__tree {\n padding-left: 6px;\n }\n }\n}\n",".dropdown {\n display: inline-block;\n outline: none;\n position: relative;\n z-index: 2;\n\n &__button,\n &__trigger {\n cursor: pointer;\n }\n\n &__button {\n display: block;\n padding: 12px 15px 7px 15px;\n text-align: left;\n width: auto;\n word-wrap: none;\n }\n\n &__content {\n background: $dropdown--background;\n border-radius: 3px;\n box-shadow:\n 0 0 0 1px $dropdown--container--border,\n 0 0 35px $dropdown--container--shadow;\n color: $dropdown--foreground;\n left: 0;\n position: absolute;\n text-align: left;\n top: 0;\n z-index: 2;\n }\n\n &.is-expanded {\n\n .dropdown {\n\n &__header {\n\n .dropdown {\n\n &__value {\n color: $dropdown--value--active;\n }\n }\n }\n }\n }\n\n &__label {\n color: $dropdown--label;\n display: block;\n font-size: 0.65em;\n font-weight: 500;\n letter-spacing: 0.1em;\n line-height: 0.9em;\n text-transform: uppercase;\n\n .dropdown__button & {\n cursor: pointer;\n }\n }\n\n &__value {\n color: $dropdown--value;\n transition: color 0.25s;\n\n &:after {\n border-top: 5px solid $dropdown--value;\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n content: '';\n display: inline-block;\n margin-left: 10px;\n vertical-align: middle;\n }\n }\n\n &__header {\n position: relative;\n\n &:after {\n background: $dropdown--header--border;\n bottom: 0;\n content: '';\n display: block;\n height: 1px;\n left: 5%;\n position: absolute;\n width: 90%;\n }\n }\n\n &__items {\n display: flex;\n padding: 10px 0;\n }\n\n &__list {\n flex: 1;\n }\n\n &__item {\n padding: 5px 15px;\n\n &.is-selectable {\n cursor: pointer;\n display: block;\n font-size: 0.9em;\n transition: background 0.25s, color 0.25s;\n\n &:hover {\n background: $dropdown--item--background--hover;\n color: $dropdown--item--foreground--hover;\n }\n\n &.is-selected {\n color: $dropdown--item--foreground--active;\n }\n }\n }\n\n &--align-right & {\n left: auto;\n right: 0;\n }\n}\n\n.dropdown {\n\n &__content {\n\n &-enter {\n animation: fade-in 0.25s both;\n }\n\n &-leave {\n animation: fade-out 0.25s both;\n }\n }\n}\n\n.dropdown {\n\n &__content {\n\n &__container {\n padding: 25px 30px;\n }\n }\n}\n",".floating-action {\n\n &__button {\n background: $textbox-repeater--button--background;\n border: none;\n border-radius: 16px;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border;\n cursor: pointer;\n height: 16px;\n outline: none;\n margin-right: 8px;\n padding: 0;\n position: relative;\n transition: background 0.25s, box-shadow 0.25s;\n width: 16px;\n\n &:last-child {\n margin-right: 0;\n }\n\n &:hover {\n background: $textbox-repeater--button--background--hover;\n box-shadow: 0 0 0 1px $textbox-repeater--button--border--hover;\n\n .icon {\n fill: $textbox-repeater--button--foreground--hover;\n }\n }\n\n .icon {\n height: 8px;\n fill: $textbox-repeater--button--foreground;\n left: 50%;\n position: absolute;\n top: 50%;\n transition: fill 0.25s;\n transform: translate(-50%, -50%);\n width: 8px;\n }\n }\n}\n","@keyframes loading-indicator-dots-pulse {\n 0% {\n fill-opacity: 0.2;\n }\n\n 100% {\n fill-opacity: 0.8;\n }\n}\n\n.icon {\n\n &--eta {\n\n .icon {\n\n &__ring {\n fill-opacity: 1;\n }\n }\n }\n\n &--loading-indicator {\n\n .loading-indicator {\n\n &--dots {\n\n &__dot {\n animation: loading-indicator-dots-pulse 0.6s linear alternate infinite;\n fill: $white;\n\n &--center {\n animation-delay: 0.2s;\n }\n\n &--right {\n animation-delay: 0.4s;\n }\n }\n }\n }\n }\n}\n","@keyframes loading-indicator-swipe {\n 0% {\n transform: translateX(-100%);\n }\n\n 50% {\n transform: translateX(400%);\n }\n\n 100% {\n transform: translateX(400%);\n }\n}\n\n.loading-indicator {\n height: 18px;\n position: relative;\n width: 32px;\n\n &.is-inverse {\n\n .loading-indicator {\n\n &__bar {\n background: $loading-indicator--bar--background--inverse;\n\n &:after {\n background: $loading-indicator--tick--background--inverse;\n }\n }\n }\n }\n\n &__bar {\n background: $loading-indicator--bar--background;\n border-radius: 10px;\n height: 3px;\n left: 0;\n overflow: hidden;\n position: absolute;\n transform: translateY(0);\n width: 100%;\n\n &:after {\n animation: loading-indicator-swipe 3s ease-in-out infinite;\n background: $loading-indicator--tick--background;\n border-radius: 10px;\n content: '';\n display: block;\n height: 100%;\n transform: translateX(-100%);\n width: 25%;\n }\n\n &--1 {\n top: 0;\n }\n\n &--2 {\n top: 50%;\n transform: translateY(-50%);\n\n &:after {\n animation-delay: 0.5s;\n }\n }\n\n &--3 {\n bottom: 0;\n\n &:after {\n animation-delay: 1s;\n }\n }\n }\n}\n",".modal {\n background: $modal--overlay;\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n transition: opacity 0.5s;\n width: 100%;\n z-index: 100;\n\n &__content {\n background: $modal--background;\n border-radius: 5px;\n box-shadow:\n 0 0 0 1px $modal--content--border,\n 0 0 35px $modal--content--shadow;\n left: 50%;\n max-height: 80%;\n max-width: 80%;\n overflow: auto;\n padding: 30px;\n position: absolute;\n top: 10%;\n transform: translate(-50%, 0);\n width: 500px;\n\n &--align-center {\n text-align: center;\n }\n }\n\n &__footer {\n margin-top: $spacing-unit;\n }\n\n &__button-group {\n text-align: right;\n\n .button {\n\n & + .button {\n margin-left: 20px;\n }\n }\n }\n\n &__header {\n color: $modal--header--foreground;\n font-size: 1.1em;\n font-weight: 400;\n margin-bottom: 20px;\n }\n\n &__animation-enter {\n opacity: 0;\n }\n\n &__animation-enter-active {\n opacity: 1;\n }\n\n &__animation-leave {\n opacity: 1;\n pointer-events: none;\n }\n\n &__animation-leave-active {\n opacity: 0;\n }\n}\n",".priority-meter {\n height: 8px;\n position: relative;\n width: 17px;\n\n &__wrapper {\n display: inline-block;\n padding: 5px;\n vertical-align: middle;\n }\n\n &:before,\n &:after {\n content: '';\n display: block;\n position: absolute;\n }\n\n &:before {\n height: 2px;\n left: 0;\n top: 3px;\n transition: background 0.25s;\n width: 100%;\n }\n\n &:after {\n height: 100%;\n top: 0;\n transition: background 0.25s, left 0.25s;\n width: 2px;\n }\n\n &--level-0 {\n\n &:before {\n background: $priority-meter--track--level-0--background;\n }\n\n &:after {\n left: 0;\n background: $priority-meter--bar--level-0--background;\n }\n }\n\n &--level-1 {\n\n &:before {\n background: $priority-meter--track--level-1--background;\n }\n\n &:after {\n left: 8px;\n background: $priority-meter--bar--level-1--background;\n }\n }\n\n &--level-2 {\n\n &:before {\n background: $priority-meter--track--level-2--background;\n }\n\n &:after {\n background: $priority-meter--bar--level-2--background;\n left: 15px;\n }\n }\n}\n",".progress-bar {\n height: 3px;\n position: relative;\n transition: opacity 0.25s;\n z-index: 1;\n\n .is-selected.is-stopped & {\n opacity: 0.5;\n }\n\n &:after {\n background: $progress-bar--background;\n content: '';\n height: 1px;\n left: 0;\n position: absolute;\n z-index: 0;\n top: 1px;\n transition: background 0.25s;\n width: 100%;\n\n .is-selected & {\n background: $progress-bar--background--selected;\n }\n\n .is-selected.is-stopped & {\n background: $progress-bar--background--selected--stopped;\n }\n }\n\n &__fill {\n background: $progress-bar--fill;\n bottom: 0;\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n transition: background 0.25s, width 0.25s;\n z-index: 1;\n\n .is-seeding & {\n background: $progress-bar--fill--completed;\n }\n\n .is-completed &,\n .is-stopped & {\n background: $progress-bar--fill--stopped;\n }\n\n .is-selected & {\n background: $progress-bar--fill--selected;\n }\n\n .has-error & {\n background: $progress-bar--fill--error;\n }\n }\n}\n",".scrollbars {\n\n &__thumb {\n background: $scrollbar--thumb--background--inactive;\n border-radius: 10px;\n cursor: pointer;\n opacity: 0;\n transition: background 0.25s, opacity 0.5s;\n\n &:active {\n opacity: 1;\n }\n\n &:hover,\n &:active {\n background: $scrollbar--thumb--background--hover;\n }\n\n .is-inverted & {\n background: $scrollbar--thumb--background--inverted--inactive;\n\n &:hover,\n &:active {\n background: $scrollbar--thumb--background--inverted--hover;\n }\n }\n }\n\n &:hover {\n\n .scrollbars__thumb {\n opacity: 1;\n }\n }\n}\n",".application {\n\n &__sidebar {\n box-shadow: 1px 0 $sidebar--border;\n color: $sidebar--foreground;\n flex: 1;\n min-width: 200px;\n max-width: 240px;\n overflow: auto;\n position: relative;\n z-index: 2;\n }\n}\n\n.sidebar {\n\n &__item {\n\n &--search {\n position: relative;\n\n .icon {\n fill: $search-torrents--icon--foreground;\n height: 22px;\n left: 17px;\n opacity: 0.5;\n position: absolute;\n top: 50%;\n transition: fill 0.25s, opacity 0.25s;\n transform: translateY(-50%);\n width: 22px;\n }\n\n .textbox {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n border: 1px solid $search-torrents--border;\n border-left: none;\n border-right: none;\n border-radius: 0;\n background: $search-torrents--background;\n box-shadow: none;\n color: $search-torrents--foreground;\n display: block;\n font-size: 1em;\n outline: none;\n padding: 12px 0 12px 45px;\n transition: background 0.25s, border 0.25s, color 0.25s;\n width: 100%;\n\n &::placeholder {\n color: $search-torrents--placeholder;\n font-style: italic;\n transition: color 0.25s;\n }\n }\n\n &.is-in-use {\n\n .icon {\n fill: $search-torrents--icon--foreground--active;\n opacity: 1;\n }\n\n .textbox {\n background: $search-torrents--background--active;\n border-bottom: 1px solid $search-torrents--border--active;\n border-top: 1px solid $search-torrents--border--active;\n color: $search-torrents--foreground--active;\n\n &::placeholder {\n color: $search-torrents--placeholder--active;\n }\n }\n }\n }\n\n &--speed-limit {\n padding-left: 5px;\n padding-top: 5px;\n\n .dropdown {\n\n &__content {\n min-width: 180px;\n }\n\n &__items {\n font-size: 0.9em;\n }\n }\n }\n }\n}\n",".sidebar-filter {\n font-size: 0.85em;\n padding: 30px 0;\n\n & + .sidebar-filter {\n padding-top: 0;\n }\n\n &__item {\n color: $sidebar-filter--foreground;\n cursor: pointer;\n font-weight: 400;\n padding: 3px 20px;\n transition: color 0.25s;\n\n &:hover {\n color: $sidebar-filter--foreground--hover;\n\n .icon {\n fill: $sidebar-filter--foreground--hover;\n }\n }\n\n &.is-active {\n color: $sidebar-filter--foreground--active;\n font-weight: 700;\n\n .badge {\n background: $sidebar-filter--count--background--active;\n }\n\n .icon {\n fill: $sidebar-filter--foreground--active;\n }\n }\n\n .icon {\n display: inline-block;\n fill: $sidebar-filter--foreground;\n height: 14px;\n margin-right: 7px;\n transition: fill 0.25s;\n vertical-align: middle;\n width: auto;\n }\n }\n\n .badge {\n background: $sidebar-filter--count--background;\n color: $sidebar-filter--count--foreground;\n }\n}\n\n\n.sidebar-filter {\n\n &__item {\n\n &--heading {\n cursor: default;\n font-size: 0.8em;\n font-weight: 500;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n\n &,\n &:hover {\n color: $sidebar-filter--foreground--header;\n }\n }\n }\n}\n",".textbox-repeater {\n\n .floating-action {\n\n &__group {\n margin-top: -8px;\n position: absolute;\n right: -8px;\n top: 50%;\n }\n\n &__button {\n position: relative;\n }\n }\n\n .textbox {\n\n &__wrapper {\n position: relative;\n }\n }\n}\n",".application {\n\n &__panel {\n\n &--torrent-details {\n background: $torrent-details--background;\n }\n }\n}\n\n.torrent-details {\n background: $torrent-details--background;\n bottom: 0;\n box-shadow: -1px 0 0 $torrent-details--border;\n display: flex;\n flex-direction: column;\n font-size: 0.8em;\n left: 0;\n min-width: 400px;\n overflow: auto;\n position: absolute;\n right: 0;\n top: 0;\n transition: opacity 1s;\n z-index: 2;\n\n &__heading {\n box-shadow: 0 1px 0 $torrent-details--header--border;\n flex: 0 0 auto;\n padding: $spacing-unit * 1/2 $spacing-unit $spacing-unit * 2/3 $spacing-unit;\n\n &.is-stopped {\n\n .torrent {\n\n &__details {\n\n &--tertiary {\n color: $torrent-details--header--tertiary--foreground;\n }\n }\n }\n }\n\n &.has-error {\n\n .progress-bar {\n\n &__fill {\n background: $torrent-details--header--progress-bar--fill--error;\n }\n }\n }\n\n .torrent {\n\n &__details {\n\n &--name {\n color: $torrent-details--header--name--foreground;\n font-size: 1.7em;\n font-weight: 300;\n }\n\n &--tertiary {\n color: $torrent-details--header--tertiary--foreground;\n font-size: 1em;\n margin-bottom: $spacing-unit * 1/2;\n }\n\n &--download,\n &--upload,\n &--eta,\n &--ratio {\n\n .icon {\n height: 12px;\n margin-right: 3px;\n margin-top: -3px;\n vertical-align: middle;\n width: 12px;\n }\n }\n\n &--ratio,\n &--eta {\n\n .icon {\n fill: $torrent-details--header--icon--default--fill;\n }\n }\n\n &--eta {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n\n .progress-bar {\n\n &:after {\n background: $torrent-details--header--progress-bar--track;\n }\n }\n }\n\n &__table {\n color: $torrent-details--table--foreground;\n width: 100%;\n\n &__heading {\n\n &--primary {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.125em;\n }\n\n &--secondary {\n color: $torrent-details--table--header;\n font-size: 0.7em;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n }\n }\n }\n\n &__content {\n flex: 1;\n overflow: auto;\n padding: $spacing-unit * 2/3 $spacing-unit;\n\n &__wrapper {\n background: $torrent-details--content--background;\n display: flex;\n flex: 1;\n overflow: hidden;\n }\n }\n\n &__navigation {\n background: $torrent-details--navigation--background;\n box-shadow: 1px 0 0 $torrent-details--navigation--border;\n min-width: 125px;\n padding: $spacing-unit * 1/2 0;\n\n .navigation {\n\n &__item {\n cursor: pointer;\n padding: $spacing-unit * 1/4 $spacing-unit;\n text-align: right;\n transition: background 0.25s, box-shadow 0.25s, color 0.25s;\n\n &.is-active {\n background: $torrent-details--navigation--item--background--active;\n box-shadow: 1px 0 0 $torrent-details--navigation--item--border--active;\n color: $torrent-details--navigation--item--foreground--active;\n }\n }\n }\n }\n\n &__section {\n\n &__heading,\n &__null-data {\n color: $torrent-details--directory-tree--parent-directory--foreground;\n font-size: 1.125em;\n }\n\n &__heading {\n\n .badge {\n background: $torrent-details--table--header--count--background;\n color: $torrent-details--table--header--count--foreground;\n }\n }\n }\n}\n\n.torrent-details-enter {\n opacity: 0;\n}\n\n.torrent-details-enter-active {\n opacity: 1;\n}\n\n.torrent-details-leave {\n opacity: 0;\n transition: opacity 0.5s;\n}\n",".torrents {\n display: flex;\n flex: 1 1 100px;\n position: relative;\n\n &:after {\n background: $torrent-list--background;\n bottom: 0;\n box-shadow: -1px 0 0 0 $torrent-list--border;\n content: '';\n height: auto;\n left: 10px;\n position: absolute;\n right: 0;\n top: 0;\n }\n\n .loading-indicator {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n}\n\n.torrent {\n\n &__list {\n margin: 0 0 0 10px;\n padding: 10px 0;\n position: relative;\n\n &__wrapper {\n list-style: none;\n max-width: 100%;\n opacity: 1;\n overflow: auto;\n transition: opacity 1s;\n user-select: none;\n z-index: 1;\n }\n\n &--loading {\n\n &-enter {\n opacity: 0;\n transition: opacity 1s;\n\n &-active {\n opacity: 1;\n }\n }\n\n &-leave {\n opacity: 1;\n transition: opacity 1s;\n\n &-active {\n opacity: 0;\n }\n }\n }\n\n &--empty {\n opacity: 0;\n }\n }\n}\n\n.torrent {\n cursor: default;\n padding: 10px 20px;\n position: relative;\n transition: background 0.25s;\n\n &:hover {\n background: $torrent--background--hover;\n\n .torrent {\n\n &__more-info {\n opacity: 1;\n }\n }\n }\n\n &.is-selected {\n background: $torrent--background--selected;\n }\n\n &__more-info {\n height: 20px;\n margin-top: -10px;\n position: absolute;\n left: -7px;\n opacity: 0;\n top: 50%;\n transition: background 0.25s, box-shadow 0.25s, opacity 0.25s;\n width: 20px;\n }\n}\n\n.torrent {\n\n &__details {\n align-items: center;\n display: flex;\n flex: 1;\n flex-flow: row wrap;\n list-style: none;\n\n &--primary,\n &--secondary,\n &--tertiary {\n transition: color 0.25s;\n }\n\n &--primary {\n color: $torrent--primary--foreground;\n flex: 4;\n line-height: 1.3;\n white-space: nowrap;\n\n .is-stopped & {\n color: $torrent--primary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--primary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--primary--foreground--selected--stopped;\n }\n }\n\n &--secondary {\n align-items: flex-end;\n color: $torrent--secondary--foreground;\n flex: 1;\n font-size: 0.75em;\n min-width: 200px;\n\n li {\n flex: 1 1 auto;\n min-width: 15%;\n\n &.torrent__details--ratio {\n max-width: 30px;\n }\n }\n\n .is-stopped & {\n color: $torrent--secondary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--secondary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--secondary--foreground--selected--stopped;\n }\n }\n\n &--tertiary {\n color: $torrent--tertiary--foreground;\n display: block;\n font-size: 0.75em;\n margin: 0 0 3px 0;\n\n li {\n display: inline-block;\n margin-right: 1em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .is-stopped & {\n color: $torrent--tertiary--foreground--stopped;\n }\n\n .is-selected & {\n color: $torrent--tertiary--foreground--selected;\n }\n\n .is-selected.is-stopped & {\n color: $torrent--tertiary--foreground--selected--stopped;\n }\n }\n\n &__label {\n margin-right: 0.5em;\n opacity: 0.5;\n }\n }\n}\n\n.torrent {\n\n &__details {\n\n &--eta {\n opacity: 0;\n transition: opacity 1s, visibility 1s;\n visibility: hidden;\n\n .torrent__details--segment {\n margin-right: 0.25em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n .is-actively-downloading & {\n opacity: 1;\n visibility: visible;\n }\n }\n }\n}\n\n.view {\n\n &--torrent-list {\n background: #e9eef2;\n box-shadow: -1px 0 $torrent-list--border;\n display: flex;\n flex-direction: column;\n flex: 1;\n flex: 0 1 100%;\n }\n}\n",".transfer-data {\n\n &--download {\n color: $transfer-data--download;\n\n .icon {\n fill: $transfer-data--download;\n }\n }\n\n &--upload {\n color: $transfer-data--upload;\n\n .icon {\n fill: $transfer-data--upload;\n }\n }\n}\n"],"sourceRoot":"/source/"}
\ No newline at end of file