From a9186471dc2ee97e4c0328a95d95935b63f0e6c7 Mon Sep 17 00:00:00 2001 From: Tyler Thompson Date: Thu, 23 Mar 2017 10:23:00 -0700 Subject: [PATCH] 13.0.0 --- dist/redux-little-router.js | 1692 +++++++++++++++++---------- dist/redux-little-router.js.map | 2 +- dist/redux-little-router.min.js | 6 +- dist/redux-little-router.min.js.map | 2 +- package.json | 2 +- 5 files changed, 1100 insertions(+), 604 deletions(-) diff --git a/dist/redux-little-router.js b/dist/redux-little-router.js index 049eb675..07aec1ad 100644 --- a/dist/redux-little-router.js +++ b/dist/redux-little-router.js @@ -7,7 +7,7 @@ exports["ReduxLittleRouter"] = factory(require("react")); else root["ReduxLittleRouter"] = factory(root["React"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_35__) { +})(this, function(__WEBPACK_EXTERNAL_MODULE_34__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -69,21 +69,21 @@ return /******/ (function(modules) { // webpackBootstrap var _browserRouter2 = _interopRequireDefault(_browserRouter); - var _expressRouter = __webpack_require__(31); + var _expressRouter = __webpack_require__(30); var _expressRouter2 = _interopRequireDefault(_expressRouter); - var _hapiRouter = __webpack_require__(33); + var _hapiRouter = __webpack_require__(32); var _hapiRouter2 = _interopRequireDefault(_hapiRouter); - var _provider = __webpack_require__(34); + var _provider = __webpack_require__(33); var _provider2 = _interopRequireDefault(_provider); - var _link = __webpack_require__(65); + var _link = __webpack_require__(72); - var _fragment = __webpack_require__(67); + var _fragment = __webpack_require__(74); var _fragment2 = _interopRequireDefault(_fragment); @@ -623,7 +623,7 @@ return /******/ (function(modules) { // webpackBootstrap var _normalizeHref2 = _interopRequireDefault(_normalizeHref); - var _install = __webpack_require__(20); + var _install = __webpack_require__(19); var _install2 = _interopRequireDefault(_install); @@ -662,7 +662,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 9 */ /***/ function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + 'use strict'; exports.__esModule = true; @@ -670,7 +670,7 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; - var _warning = __webpack_require__(11); + var _warning = __webpack_require__(10); var _warning2 = _interopRequireDefault(_warning); @@ -686,9 +686,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createTransitionManager2 = _interopRequireDefault(_createTransitionManager); - var _ExecutionEnvironment = __webpack_require__(18); - - var _DOMUtils = __webpack_require__(19); + var _DOMUtils = __webpack_require__(18); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -700,7 +698,7 @@ return /******/ (function(modules) { // webpackBootstrap return window.history.state || {}; } catch (e) { // IE 11 sometimes throws when accessing window.history.state - // See https://github.com/mjackson/history/pull/289 + // See https://github.com/ReactTraining/history/pull/289 return {}; } }; @@ -712,21 +710,20 @@ return /******/ (function(modules) { // webpackBootstrap var createBrowserHistory = function createBrowserHistory() { var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0; + (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM'); var globalHistory = window.history; var canUseHistory = (0, _DOMUtils.supportsHistory)(); var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)(); - var _props$basename = props.basename, - basename = _props$basename === undefined ? '' : _props$basename, - _props$forceRefresh = props.forceRefresh, + var _props$forceRefresh = props.forceRefresh, forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh, _props$getUserConfirm = props.getUserConfirmation, getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm, _props$keyLength = props.keyLength, keyLength = _props$keyLength === undefined ? 6 : _props$keyLength; + var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : ''; var getDOMLocation = function getDOMLocation(historyState) { var _ref = historyState || {}, @@ -781,17 +778,15 @@ return /******/ (function(modules) { // webpackBootstrap forceNextPop = false; setState(); } else { - (function () { - var action = 'POP'; - - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ action: action, location: location }); - } else { - revertPop(location); - } - }); - })(); + var action = 'POP'; + + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ action: action, location: location }); + } else { + revertPop(location); + } + }); } }; @@ -828,7 +823,7 @@ return /******/ (function(modules) { // webpackBootstrap }; var push = function push(path, state) { - process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; + (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); var action = 'PUSH'; var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location); @@ -856,7 +851,7 @@ return /******/ (function(modules) { // webpackBootstrap setState({ action: action, location: location }); } } else { - process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0; + (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history'); window.location.href = href; } @@ -864,7 +859,7 @@ return /******/ (function(modules) { // webpackBootstrap }; var replace = function replace(path, state) { - process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; + (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); var action = 'REPLACE'; var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location); @@ -890,7 +885,7 @@ return /******/ (function(modules) { // webpackBootstrap setState({ action: action, location: location }); } } else { - process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0; + (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history'); window.location.replace(href); } @@ -953,7 +948,7 @@ return /******/ (function(modules) { // webpackBootstrap return function () { checkDOMListeners(-1); - return unlisten(); + unlisten(); }; }; @@ -975,10 +970,76 @@ return /******/ (function(modules) { // webpackBootstrap }; exports.default = createBrowserHistory; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) /***/ }, /* 10 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + 'use strict'; + + /** + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + var warning = function() {}; + + if (process.env.NODE_ENV !== 'production') { + warning = function(condition, format, args) { + var len = arguments.length; + args = new Array(len > 2 ? len - 2 : 0); + for (var key = 2; key < len; key++) { + args[key - 2] = arguments[key]; + } + if (format === undefined) { + throw new Error( + '`warning(condition, format, ...args)` requires a warning ' + + 'message argument' + ); + } + + if (format.length < 10 || (/^[s\W]*$/).test(format)) { + throw new Error( + 'The warning format should be able to uniquely identify this ' + + 'warning. Please, use a more descriptive format than: ' + format + ); + } + + if (!condition) { + var argIndex = 0; + var message = 'Warning: ' + + format.replace(/%s/g, function() { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch(x) {} + } + }; + } + + module.exports = warning; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11))) + +/***/ }, +/* 11 */ /***/ function(module, exports) { // shim for using process in browser @@ -1163,73 +1224,6 @@ return /******/ (function(modules) { // webpackBootstrap process.umask = function() { return 0; }; -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(process) {/** - * Copyright 2014-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - - 'use strict'; - - /** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - var warning = function() {}; - - if (process.env.NODE_ENV !== 'production') { - warning = function(condition, format, args) { - var len = arguments.length; - args = new Array(len > 2 ? len - 2 : 0); - for (var key = 2; key < len; key++) { - args[key - 2] = arguments[key]; - } - if (format === undefined) { - throw new Error( - '`warning(condition, format, ...args)` requires a warning ' + - 'message argument' - ); - } - - if (format.length < 10 || (/^[s\W]*$/).test(format)) { - throw new Error( - 'The warning format should be able to uniquely identify this ' + - 'warning. Please, use a more descriptive format than: ' + format - ); - } - - if (!condition) { - var argIndex = 0; - var message = 'Warning: ' + - format.replace(/%s/g, function() { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch(x) {} - } - }; - } - - module.exports = warning; - - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) - /***/ }, /* 12 */ /***/ function(module, exports, __webpack_require__) { @@ -1286,7 +1280,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = invariant; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11))) /***/ }, /* 13 */ @@ -1499,6 +1493,10 @@ return /******/ (function(modules) { // webpackBootstrap return path.indexOf(prefix) === 0 ? path.substr(prefix.length) : path; }; + var stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) { + return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; + }; + var parsePath = exports.parsePath = function parsePath(path) { var pathname = path || '/'; var search = ''; @@ -1516,6 +1514,8 @@ return /******/ (function(modules) { // webpackBootstrap pathname = pathname.substr(0, searchIndex); } + pathname = decodeURI(pathname); + return { pathname: pathname, search: search === '?' ? '' : search, @@ -1529,7 +1529,7 @@ return /******/ (function(modules) { // webpackBootstrap hash = location.hash; - var path = pathname || '/'; + var path = encodeURI(pathname || '/'); if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search; @@ -1542,11 +1542,11 @@ return /******/ (function(modules) { // webpackBootstrap /* 17 */ /***/ function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + 'use strict'; exports.__esModule = true; - var _warning = __webpack_require__(11); + var _warning = __webpack_require__(10); var _warning2 = _interopRequireDefault(_warning); @@ -1556,7 +1556,7 @@ return /******/ (function(modules) { // webpackBootstrap var prompt = null; var setPrompt = function setPrompt(nextPrompt) { - process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time') : void 0; + (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time'); prompt = nextPrompt; @@ -1576,7 +1576,7 @@ return /******/ (function(modules) { // webpackBootstrap if (typeof getUserConfirmation === 'function') { getUserConfirmation(result, callback); } else { - process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0; + (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message'); callback(true); } @@ -1627,7 +1627,6 @@ return /******/ (function(modules) { // webpackBootstrap }; exports.default = createTransitionManager; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) /***/ }, /* 18 */ @@ -1637,14 +1636,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.__esModule = true; var canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - 'use strict'; - exports.__esModule = true; var addEventListener = exports.addEventListener = function addEventListener(node, event, listener) { return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener); }; @@ -1697,7 +1689,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 20 */ +/* 19 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -1708,27 +1700,27 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; - var _reducer = __webpack_require__(21); + var _reducer = __webpack_require__(20); var _reducer2 = _interopRequireDefault(_reducer); - var _middleware = __webpack_require__(22); + var _middleware = __webpack_require__(21); var _middleware2 = _interopRequireDefault(_middleware); - var _enhancer = __webpack_require__(23); + var _enhancer = __webpack_require__(22); var _enhancer2 = _interopRequireDefault(_enhancer); - var _createMatcher = __webpack_require__(25); + var _createMatcher = __webpack_require__(24); var _createMatcher2 = _interopRequireDefault(_createMatcher); - var _validateRoutes = __webpack_require__(28); + var _validateRoutes = __webpack_require__(27); var _validateRoutes2 = _interopRequireDefault(_validateRoutes); - var _flattenRoutes = __webpack_require__(29); + var _flattenRoutes = __webpack_require__(28); var _flattenRoutes2 = _interopRequireDefault(_flattenRoutes); @@ -1760,7 +1752,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 21 */ +/* 20 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -1875,7 +1867,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 22 */ +/* 21 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -1920,7 +1912,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 23 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -1935,7 +1927,7 @@ return /******/ (function(modules) { // webpackBootstrap var _locationState = __webpack_require__(7); - var _matchCache = __webpack_require__(24); + var _matchCache = __webpack_require__(23); var _matchCache2 = _interopRequireDefault(_matchCache); @@ -1965,7 +1957,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 24 */ +/* 23 */ /***/ function(module, exports) { 'use strict'; @@ -2010,7 +2002,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = new MatchCache(); /***/ }, -/* 25 */ +/* 24 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2019,7 +2011,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _urlPattern = __webpack_require__(26); + var _urlPattern = __webpack_require__(25); var _urlPattern2 = _interopRequireDefault(_urlPattern); @@ -2106,14 +2098,14 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 26 */ +/* 25 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0 var slice = [].slice; (function(root, factory) { - if (('function' === "function") && (__webpack_require__(27) != null)) { + if (('function' === "function") && (__webpack_require__(26) != null)) { return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else if (typeof exports !== "undefined" && exports !== null) { return module.exports = factory(); @@ -2548,7 +2540,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 27 */ +/* 26 */ /***/ function(module, exports) { /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; @@ -2556,7 +2548,7 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, {})) /***/ }, -/* 28 */ +/* 27 */ /***/ function(module, exports) { 'use strict'; @@ -2580,7 +2572,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 29 */ +/* 28 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -2591,7 +2583,7 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; - var _lodash = __webpack_require__(30); + var _lodash = __webpack_require__(29); var _lodash2 = _interopRequireDefault(_lodash); @@ -2649,7 +2641,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.default = flattenRoutes; /***/ }, -/* 30 */ +/* 29 */ /***/ function(module, exports) { /** @@ -3292,7 +3284,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 31 */ +/* 30 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -3301,7 +3293,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _createMemoryHistory = __webpack_require__(32); + var _createMemoryHistory = __webpack_require__(31); var _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory); @@ -3309,7 +3301,7 @@ return /******/ (function(modules) { // webpackBootstrap var _normalizeHref2 = _interopRequireDefault(_normalizeHref); - var _install = __webpack_require__(20); + var _install = __webpack_require__(19); var _install2 = _interopRequireDefault(_install); @@ -3335,10 +3327,10 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 32 */ +/* 31 */ /***/ function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + 'use strict'; exports.__esModule = true; @@ -3346,7 +3338,7 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; - var _warning = __webpack_require__(11); + var _warning = __webpack_require__(10); var _warning2 = _interopRequireDefault(_warning); @@ -3393,8 +3385,8 @@ return /******/ (function(modules) { // webpackBootstrap }; var index = clamp(initialIndex, 0, initialEntries.length - 1); - var entries = initialEntries.map(function (entry, index) { - return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, index ? createKey() : undefined) : (0, _LocationUtils.createLocation)(entry, undefined, index ? entry.key || createKey() : undefined); + var entries = initialEntries.map(function (entry) { + return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey()); }); // Public interface @@ -3402,7 +3394,7 @@ return /******/ (function(modules) { // webpackBootstrap var createHref = _PathUtils.createPath; var push = function push(path, state) { - process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; + (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); var action = 'PUSH'; var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location); @@ -3430,7 +3422,7 @@ return /******/ (function(modules) { // webpackBootstrap }; var replace = function replace(path, state) { - process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; + (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); var action = 'REPLACE'; var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location); @@ -3508,10 +3500,9 @@ return /******/ (function(modules) { // webpackBootstrap }; exports.default = createMemoryHistory; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) /***/ }, -/* 33 */ +/* 32 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -3520,7 +3511,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _createMemoryHistory = __webpack_require__(32); + var _createMemoryHistory = __webpack_require__(31); var _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory); @@ -3528,7 +3519,7 @@ return /******/ (function(modules) { // webpackBootstrap var _normalizeHref2 = _interopRequireDefault(_normalizeHref); - var _install = __webpack_require__(20); + var _install = __webpack_require__(19); var _install2 = _interopRequireDefault(_install); @@ -3549,7 +3540,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 34 */ +/* 33 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -3563,11 +3554,11 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; }(); - var _react = __webpack_require__(35); + var _react = __webpack_require__(34); var _react2 = _interopRequireDefault(_react); - var _reactRedux = __webpack_require__(36); + var _reactRedux = __webpack_require__(35); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -3645,53 +3636,56 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 35 */ +/* 34 */ /***/ function(module, exports) { - module.exports = __WEBPACK_EXTERNAL_MODULE_35__; + module.exports = __WEBPACK_EXTERNAL_MODULE_34__; /***/ }, -/* 36 */ +/* 35 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; - exports.connect = exports.Provider = undefined; + exports.connect = exports.connectAdvanced = exports.Provider = undefined; - var _Provider = __webpack_require__(37); + var _Provider = __webpack_require__(36); var _Provider2 = _interopRequireDefault(_Provider); - var _connect = __webpack_require__(40); + var _connectAdvanced = __webpack_require__(39); + + var _connectAdvanced2 = _interopRequireDefault(_connectAdvanced); + + var _connect = __webpack_require__(42); var _connect2 = _interopRequireDefault(_connect); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - exports.Provider = _Provider2["default"]; - exports.connect = _connect2["default"]; + exports.Provider = _Provider2.default; + exports.connectAdvanced = _connectAdvanced2.default; + exports.connect = _connect2.default; /***/ }, -/* 37 */ +/* 36 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; exports.__esModule = true; - exports["default"] = undefined; - - var _react = __webpack_require__(35); + exports.default = undefined; - var _storeShape = __webpack_require__(38); + var _react = __webpack_require__(34); - var _storeShape2 = _interopRequireDefault(_storeShape); + var _PropTypes = __webpack_require__(37); - var _warning = __webpack_require__(39); + var _warning = __webpack_require__(38); var _warning2 = _interopRequireDefault(_warning); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -3706,14 +3700,14 @@ return /******/ (function(modules) { // webpackBootstrap } didWarnAboutReceivingStore = true; - (0, _warning2["default"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.'); + (0, _warning2.default)(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.'); } var Provider = function (_Component) { _inherits(Provider, _Component); Provider.prototype.getChildContext = function getChildContext() { - return { store: this.store }; + return { store: this.store, storeSubscription: null }; }; function Provider(props, context) { @@ -3732,7 +3726,7 @@ return /******/ (function(modules) { // webpackBootstrap return Provider; }(_react.Component); - exports["default"] = Provider; + exports.default = Provider; if (process.env.NODE_ENV !== 'production') { @@ -3748,38 +3742,48 @@ return /******/ (function(modules) { // webpackBootstrap } Provider.propTypes = { - store: _storeShape2["default"].isRequired, + store: _PropTypes.storeShape.isRequired, children: _react.PropTypes.element.isRequired }; Provider.childContextTypes = { - store: _storeShape2["default"].isRequired + store: _PropTypes.storeShape.isRequired, + storeSubscription: _PropTypes.subscriptionShape }; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) + Provider.displayName = 'Provider'; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11))) /***/ }, -/* 38 */ +/* 37 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; + exports.storeShape = exports.subscriptionShape = undefined; + + var _react = __webpack_require__(34); - var _react = __webpack_require__(35); + var subscriptionShape = exports.subscriptionShape = _react.PropTypes.shape({ + trySubscribe: _react.PropTypes.func.isRequired, + tryUnsubscribe: _react.PropTypes.func.isRequired, + notifyNestedSubs: _react.PropTypes.func.isRequired, + isSubscribed: _react.PropTypes.func.isRequired + }); - exports["default"] = _react.PropTypes.shape({ + var storeShape = exports.storeShape = _react.PropTypes.shape({ subscribe: _react.PropTypes.func.isRequired, dispatch: _react.PropTypes.func.isRequired, getState: _react.PropTypes.func.isRequired }); /***/ }, -/* 39 */ +/* 38 */ /***/ function(module, exports) { 'use strict'; exports.__esModule = true; - exports["default"] = warning; + exports.default = warning; /** * Prints a warning in the console if it exists. * @@ -3803,7 +3807,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 40 */ +/* 39 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -3812,39 +3816,25 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; - exports["default"] = connect; - - var _react = __webpack_require__(35); - - var _storeShape = __webpack_require__(38); - - var _storeShape2 = _interopRequireDefault(_storeShape); + exports.default = connectAdvanced; - var _shallowEqual = __webpack_require__(41); + var _hoistNonReactStatics = __webpack_require__(40); - var _shallowEqual2 = _interopRequireDefault(_shallowEqual); - - var _wrapActionCreators = __webpack_require__(42); - - var _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators); - - var _warning = __webpack_require__(39); - - var _warning2 = _interopRequireDefault(_warning); + var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); - var _isPlainObject = __webpack_require__(45); + var _invariant = __webpack_require__(12); - var _isPlainObject2 = _interopRequireDefault(_isPlainObject); + var _invariant2 = _interopRequireDefault(_invariant); - var _hoistNonReactStatics = __webpack_require__(64); + var _react = __webpack_require__(34); - var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics); + var _Subscription = __webpack_require__(41); - var _invariant = __webpack_require__(12); + var _Subscription2 = _interopRequireDefault(_Subscription); - var _invariant2 = _interopRequireDefault(_invariant); + var _PropTypes = __webpack_require__(37); - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -3852,381 +3842,584 @@ return /******/ (function(modules) { // webpackBootstrap function _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; } - var defaultMapStateToProps = function defaultMapStateToProps(state) { - return {}; - }; // eslint-disable-line no-unused-vars - var defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) { - return { dispatch: dispatch }; - }; - var defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) { - return _extends({}, parentProps, stateProps, dispatchProps); - }; + function _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; } - function getDisplayName(WrappedComponent) { - return WrappedComponent.displayName || WrappedComponent.name || 'Component'; - } + var hotReloadingVersion = 0; + var dummyState = {}; + function noop() {} + function makeSelectorStateful(sourceSelector, store) { + // wrap the selector in an object that tracks its results between runs. + var selector = { + run: function runComponentSelector(props) { + try { + var nextProps = sourceSelector(store.getState(), props); + if (nextProps !== selector.props || selector.error) { + selector.shouldComponentUpdate = true; + selector.props = nextProps; + selector.error = null; + } + } catch (error) { + selector.shouldComponentUpdate = true; + selector.error = error; + } + } + }; - var errorObject = { value: null }; - function tryCatch(fn, ctx) { - try { - return fn.apply(ctx); - } catch (e) { - errorObject.value = e; - return errorObject; - } + return selector; } - // Helps track hot reloading. - var nextVersion = 0; - - function connect(mapStateToProps, mapDispatchToProps, mergeProps) { - var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - - var shouldSubscribe = Boolean(mapStateToProps); - var mapState = mapStateToProps || defaultMapStateToProps; - - var mapDispatch = void 0; - if (typeof mapDispatchToProps === 'function') { - mapDispatch = mapDispatchToProps; - } else if (!mapDispatchToProps) { - mapDispatch = defaultMapDispatchToProps; - } else { - mapDispatch = (0, _wrapActionCreators2["default"])(mapDispatchToProps); - } - - var finalMergeProps = mergeProps || defaultMergeProps; - var _options$pure = options.pure, - pure = _options$pure === undefined ? true : _options$pure, - _options$withRef = options.withRef, - withRef = _options$withRef === undefined ? false : _options$withRef; - - var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps; - - // Helps track hot reloading. - var version = nextVersion++; + function connectAdvanced( + /* + selectorFactory is a func that is responsible for returning the selector function used to + compute new props from state, props, and dispatch. For example: + export default connectAdvanced((dispatch, options) => (state, props) => ({ + thing: state.things[props.thingId], + saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)), + }))(YourComponent) + Access to dispatch is provided to the factory so selectorFactories can bind actionCreators + outside of their selector as an optimization. Options passed to connectAdvanced are passed to + the selectorFactory, along with displayName and WrappedComponent, as the second argument. + Note that selectorFactory is responsible for all caching/memoization of inbound and outbound + props. Do not use connectAdvanced directly without memoizing results between calls to your + selector, otherwise the Connect component will re-render on every state or props change. + */ + selectorFactory) { + var _contextTypes, _childContextTypes; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$getDisplayName = _ref.getDisplayName, + getDisplayName = _ref$getDisplayName === undefined ? function (name) { + return 'ConnectAdvanced(' + name + ')'; + } : _ref$getDisplayName, + _ref$methodName = _ref.methodName, + methodName = _ref$methodName === undefined ? 'connectAdvanced' : _ref$methodName, + _ref$renderCountProp = _ref.renderCountProp, + renderCountProp = _ref$renderCountProp === undefined ? undefined : _ref$renderCountProp, + _ref$shouldHandleStat = _ref.shouldHandleStateChanges, + shouldHandleStateChanges = _ref$shouldHandleStat === undefined ? true : _ref$shouldHandleStat, + _ref$storeKey = _ref.storeKey, + storeKey = _ref$storeKey === undefined ? 'store' : _ref$storeKey, + _ref$withRef = _ref.withRef, + withRef = _ref$withRef === undefined ? false : _ref$withRef, + connectOptions = _objectWithoutProperties(_ref, ['getDisplayName', 'methodName', 'renderCountProp', 'shouldHandleStateChanges', 'storeKey', 'withRef']); + + var subscriptionKey = storeKey + 'Subscription'; + var version = hotReloadingVersion++; + + var contextTypes = (_contextTypes = {}, _contextTypes[storeKey] = _PropTypes.storeShape, _contextTypes[subscriptionKey] = _PropTypes.subscriptionShape, _contextTypes); + var childContextTypes = (_childContextTypes = {}, _childContextTypes[subscriptionKey] = _PropTypes.subscriptionShape, _childContextTypes); return function wrapWithConnect(WrappedComponent) { - var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')'; - - function checkStateShape(props, methodName) { - if (!(0, _isPlainObject2["default"])(props)) { - (0, _warning2["default"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.')); - } - } - - function computeMergedProps(stateProps, dispatchProps, parentProps) { - var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps); - if (process.env.NODE_ENV !== 'production') { - checkStateShape(mergedProps, 'mergeProps'); - } - return mergedProps; - } + (0, _invariant2.default)(typeof WrappedComponent == 'function', 'You must pass a component to the function returned by ' + ('connect. Instead received ' + JSON.stringify(WrappedComponent))); + + var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component'; + + var displayName = getDisplayName(wrappedComponentName); + + var selectorFactoryOptions = _extends({}, connectOptions, { + getDisplayName: getDisplayName, + methodName: methodName, + renderCountProp: renderCountProp, + shouldHandleStateChanges: shouldHandleStateChanges, + storeKey: storeKey, + withRef: withRef, + displayName: displayName, + wrappedComponentName: wrappedComponentName, + WrappedComponent: WrappedComponent + }); var Connect = function (_Component) { _inherits(Connect, _Component); - Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() { - return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged; - }; - function Connect(props, context) { _classCallCheck(this, Connect); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.version = version; - _this.store = props.store || context.store; + _this.state = {}; + _this.renderCount = 0; + _this.store = props[storeKey] || context[storeKey]; + _this.propsMode = Boolean(props[storeKey]); + _this.setWrappedInstance = _this.setWrappedInstance.bind(_this); - (0, _invariant2["default"])(_this.store, 'Could not find "store" in either the context or ' + ('props of "' + connectDisplayName + '". ') + 'Either wrap the root component in a , ' + ('or explicitly pass "store" as a prop to "' + connectDisplayName + '".')); + (0, _invariant2.default)(_this.store, 'Could not find "' + storeKey + '" in either the context or props of ' + ('"' + displayName + '". Either wrap the root component in a , ') + ('or explicitly pass "' + storeKey + '" as a prop to "' + displayName + '".')); - var storeState = _this.store.getState(); - _this.state = { storeState: storeState }; - _this.clearCache(); + _this.initSelector(); + _this.initSubscription(); return _this; } - Connect.prototype.computeStateProps = function computeStateProps(store, props) { - if (!this.finalMapStateToProps) { - return this.configureFinalMapState(store, props); - } - - var state = store.getState(); - var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state); + Connect.prototype.getChildContext = function getChildContext() { + var _ref2; - if (process.env.NODE_ENV !== 'production') { - checkStateShape(stateProps, 'mapStateToProps'); - } - return stateProps; + // If this component received store from props, its subscription should be transparent + // to any descendants receiving store+subscription from context; it passes along + // subscription passed to it. Otherwise, it shadows the parent subscription, which allows + // Connect to control ordering of notifications to flow top-down. + var subscription = this.propsMode ? null : this.subscription; + return _ref2 = {}, _ref2[subscriptionKey] = subscription || this.context[subscriptionKey], _ref2; }; - Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) { - var mappedState = mapState(store.getState(), props); - var isFactory = typeof mappedState === 'function'; - - this.finalMapStateToProps = isFactory ? mappedState : mapState; - this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1; + Connect.prototype.componentDidMount = function componentDidMount() { + if (!shouldHandleStateChanges) return; + + // componentWillMount fires during server side rendering, but componentDidMount and + // componentWillUnmount do not. Because of this, trySubscribe happens during ...didMount. + // Otherwise, unsubscription would never take place during SSR, causing a memory leak. + // To handle the case where a child component may have triggered a state change by + // dispatching an action in its componentWillMount, we have to re-run the select and maybe + // re-render. + this.subscription.trySubscribe(); + this.selector.run(this.props); + if (this.selector.shouldComponentUpdate) this.forceUpdate(); + }; - if (isFactory) { - return this.computeStateProps(store, props); - } + Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + this.selector.run(nextProps); + }; - if (process.env.NODE_ENV !== 'production') { - checkStateShape(mappedState, 'mapStateToProps'); - } - return mappedState; + Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() { + return this.selector.shouldComponentUpdate; }; - Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) { - if (!this.finalMapDispatchToProps) { - return this.configureFinalMapDispatch(store, props); - } + Connect.prototype.componentWillUnmount = function componentWillUnmount() { + if (this.subscription) this.subscription.tryUnsubscribe(); + this.subscription = null; + this.notifyNestedSubs = noop; + this.store = null; + this.selector.run = noop; + this.selector.shouldComponentUpdate = false; + }; - var dispatch = store.dispatch; + Connect.prototype.getWrappedInstance = function getWrappedInstance() { + (0, _invariant2.default)(withRef, 'To access the wrapped instance, you need to specify ' + ('{ withRef: true } in the options argument of the ' + methodName + '() call.')); + return this.wrappedInstance; + }; - var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch); + Connect.prototype.setWrappedInstance = function setWrappedInstance(ref) { + this.wrappedInstance = ref; + }; - if (process.env.NODE_ENV !== 'production') { - checkStateShape(dispatchProps, 'mapDispatchToProps'); - } - return dispatchProps; + Connect.prototype.initSelector = function initSelector() { + var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions); + this.selector = makeSelectorStateful(sourceSelector, this.store); + this.selector.run(this.props); }; - Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) { - var mappedDispatch = mapDispatch(store.dispatch, props); - var isFactory = typeof mappedDispatch === 'function'; + Connect.prototype.initSubscription = function initSubscription() { + if (!shouldHandleStateChanges) return; + + // parentSub's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey]; + this.subscription = new _Subscription2.default(this.store, parentSub, this.onStateChange.bind(this)); + + // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `this.subscription` will then be null. An + // extra null check every change can be avoided by copying the method onto `this` and then + // replacing it with a no-op on unmount. This can probably be avoided if Subscription's + // listeners logic is changed to not call listeners that have been unsubscribed in the + // middle of the notification loop. + this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription); + }; - this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch; - this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1; + Connect.prototype.onStateChange = function onStateChange() { + this.selector.run(this.props); - if (isFactory) { - return this.computeDispatchProps(store, props); + if (!this.selector.shouldComponentUpdate) { + this.notifyNestedSubs(); + } else { + this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate; + this.setState(dummyState); } + }; - if (process.env.NODE_ENV !== 'production') { - checkStateShape(mappedDispatch, 'mapDispatchToProps'); - } - return mappedDispatch; + Connect.prototype.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() { + // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it + // needs to notify nested subs. Once called, it unimplements itself until further state + // changes occur. Doing it this way vs having a permanent `componentDidMount` that does + // a boolean check every time avoids an extra method call most of the time, resulting + // in some perf boost. + this.componentDidUpdate = undefined; + this.notifyNestedSubs(); }; - Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() { - var nextStateProps = this.computeStateProps(this.store, this.props); - if (this.stateProps && (0, _shallowEqual2["default"])(nextStateProps, this.stateProps)) { - return false; - } + Connect.prototype.isSubscribed = function isSubscribed() { + return Boolean(this.subscription) && this.subscription.isSubscribed(); + }; - this.stateProps = nextStateProps; - return true; + Connect.prototype.addExtraProps = function addExtraProps(props) { + if (!withRef && !renderCountProp && !(this.propsMode && this.subscription)) return props; + // make a shallow copy so that fields added don't leak to the original selector. + // this is especially important for 'ref' since that's a reference back to the component + // instance. a singleton memoized selector would then be holding a reference to the + // instance, preventing the instance from being garbage collected, and that would be bad + var withExtras = _extends({}, props); + if (withRef) withExtras.ref = this.setWrappedInstance; + if (renderCountProp) withExtras[renderCountProp] = this.renderCount++; + if (this.propsMode && this.subscription) withExtras[subscriptionKey] = this.subscription; + return withExtras; }; - Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() { - var nextDispatchProps = this.computeDispatchProps(this.store, this.props); - if (this.dispatchProps && (0, _shallowEqual2["default"])(nextDispatchProps, this.dispatchProps)) { - return false; - } + Connect.prototype.render = function render() { + var selector = this.selector; + selector.shouldComponentUpdate = false; - this.dispatchProps = nextDispatchProps; - return true; + if (selector.error) { + throw selector.error; + } else { + return (0, _react.createElement)(WrappedComponent, this.addExtraProps(selector.props)); + } }; - Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() { - var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props); - if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2["default"])(nextMergedProps, this.mergedProps)) { - return false; - } + return Connect; + }(_react.Component); - this.mergedProps = nextMergedProps; - return true; - }; + Connect.WrappedComponent = WrappedComponent; + Connect.displayName = displayName; + Connect.childContextTypes = childContextTypes; + Connect.contextTypes = contextTypes; + Connect.propTypes = contextTypes; - Connect.prototype.isSubscribed = function isSubscribed() { - return typeof this.unsubscribe === 'function'; - }; + if (process.env.NODE_ENV !== 'production') { + Connect.prototype.componentWillUpdate = function componentWillUpdate() { + // We are hot reloading! + if (this.version !== version) { + this.version = version; + this.initSelector(); - Connect.prototype.trySubscribe = function trySubscribe() { - if (shouldSubscribe && !this.unsubscribe) { - this.unsubscribe = this.store.subscribe(this.handleChange.bind(this)); - this.handleChange(); + if (this.subscription) this.subscription.tryUnsubscribe(); + this.initSubscription(); + if (shouldHandleStateChanges) this.subscription.trySubscribe(); } }; + } - Connect.prototype.tryUnsubscribe = function tryUnsubscribe() { - if (this.unsubscribe) { - this.unsubscribe(); - this.unsubscribe = null; - } - }; + return (0, _hoistNonReactStatics2.default)(Connect, WrappedComponent); + }; + } + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11))) + +/***/ }, +/* 40 */ +/***/ function(module, exports) { + + /** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ + 'use strict'; - Connect.prototype.componentDidMount = function componentDidMount() { - this.trySubscribe(); - }; + var REACT_STATICS = { + childContextTypes: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + mixins: true, + propTypes: true, + type: true + }; - Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - if (!pure || !(0, _shallowEqual2["default"])(nextProps, this.props)) { - this.haveOwnPropsChanged = true; - } - }; + var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + arguments: true, + arity: true + }; - Connect.prototype.componentWillUnmount = function componentWillUnmount() { - this.tryUnsubscribe(); - this.clearCache(); - }; + var isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function'; - Connect.prototype.clearCache = function clearCache() { - this.dispatchProps = null; - this.stateProps = null; - this.mergedProps = null; - this.haveOwnPropsChanged = true; - this.hasStoreStateChanged = true; - this.haveStatePropsBeenPrecalculated = false; - this.statePropsPrecalculationError = null; - this.renderedElement = null; - this.finalMapDispatchToProps = null; - this.finalMapStateToProps = null; - }; + module.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) { + if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components + var keys = Object.getOwnPropertyNames(sourceComponent); - Connect.prototype.handleChange = function handleChange() { - if (!this.unsubscribe) { - return; + /* istanbul ignore else */ + if (isGetOwnPropertySymbolsAvailable) { + keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent)); } - var storeState = this.store.getState(); - var prevStoreState = this.state.storeState; - if (pure && prevStoreState === storeState) { - return; - } + for (var i = 0; i < keys.length; ++i) { + if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) { + try { + targetComponent[keys[i]] = sourceComponent[keys[i]]; + } catch (error) { - if (pure && !this.doStatePropsDependOnOwnProps) { - var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this); - if (!haveStatePropsChanged) { - return; - } - if (haveStatePropsChanged === errorObject) { - this.statePropsPrecalculationError = errorObject.value; - } - this.haveStatePropsBeenPrecalculated = true; + } + } } + } - this.hasStoreStateChanged = true; - this.setState({ storeState: storeState }); - }; + return targetComponent; + }; + + +/***/ }, +/* 41 */ +/***/ function(module, exports) { + + "use strict"; - Connect.prototype.getWrappedInstance = function getWrappedInstance() { - (0, _invariant2["default"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.'); + exports.__esModule = true; + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + // encapsulates the subscription logic for connecting a component to the redux store, as + // well as nesting subscriptions of descendant components, so that we can ensure the + // ancestor components re-render before descendants - return this.refs.wrappedInstance; + var CLEARED = null; + var nullListeners = { + notify: function notify() {} + }; + + function createListenerCollection() { + // the current/next pattern is copied from redux's createStore code. + // TODO: refactor+expose that code to be reusable here? + var current = []; + var next = []; + + return { + clear: function clear() { + next = CLEARED; + current = CLEARED; + }, + notify: function notify() { + var listeners = current = next; + for (var i = 0; i < listeners.length; i++) { + listeners[i](); + } + }, + subscribe: function subscribe(listener) { + var isSubscribed = true; + if (next === current) next = current.slice(); + next.push(listener); + + return function unsubscribe() { + if (!isSubscribed || current === CLEARED) return; + isSubscribed = false; + + if (next === current) next = current.slice(); + next.splice(next.indexOf(listener), 1); }; + } + }; + } - Connect.prototype.render = function render() { - var haveOwnPropsChanged = this.haveOwnPropsChanged, - hasStoreStateChanged = this.hasStoreStateChanged, - haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated, - statePropsPrecalculationError = this.statePropsPrecalculationError, - renderedElement = this.renderedElement; + var Subscription = function () { + function Subscription(store, parentSub, onStateChange) { + _classCallCheck(this, Subscription); + this.store = store; + this.parentSub = parentSub; + this.onStateChange = onStateChange; + this.unsubscribe = null; + this.listeners = nullListeners; + } - this.haveOwnPropsChanged = false; - this.hasStoreStateChanged = false; - this.haveStatePropsBeenPrecalculated = false; - this.statePropsPrecalculationError = null; + Subscription.prototype.addNestedSub = function addNestedSub(listener) { + this.trySubscribe(); + return this.listeners.subscribe(listener); + }; - if (statePropsPrecalculationError) { - throw statePropsPrecalculationError; - } + Subscription.prototype.notifyNestedSubs = function notifyNestedSubs() { + this.listeners.notify(); + }; - var shouldUpdateStateProps = true; - var shouldUpdateDispatchProps = true; - if (pure && renderedElement) { - shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps; - shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps; - } + Subscription.prototype.isSubscribed = function isSubscribed() { + return Boolean(this.unsubscribe); + }; - var haveStatePropsChanged = false; - var haveDispatchPropsChanged = false; - if (haveStatePropsBeenPrecalculated) { - haveStatePropsChanged = true; - } else if (shouldUpdateStateProps) { - haveStatePropsChanged = this.updateStatePropsIfNeeded(); - } - if (shouldUpdateDispatchProps) { - haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded(); - } + Subscription.prototype.trySubscribe = function trySubscribe() { + if (!this.unsubscribe) { + this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange); - var haveMergedPropsChanged = true; - if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) { - haveMergedPropsChanged = this.updateMergedPropsIfNeeded(); - } else { - haveMergedPropsChanged = false; - } + this.listeners = createListenerCollection(); + } + }; - if (!haveMergedPropsChanged && renderedElement) { - return renderedElement; - } + Subscription.prototype.tryUnsubscribe = function tryUnsubscribe() { + if (this.unsubscribe) { + this.unsubscribe(); + this.unsubscribe = null; + this.listeners.clear(); + this.listeners = nullListeners; + } + }; - if (withRef) { - this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, { - ref: 'wrappedInstance' - })); - } else { - this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps); - } + return Subscription; + }(); - return this.renderedElement; - }; + exports.default = Subscription; + +/***/ }, +/* 42 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; - return Connect; - }(_react.Component); + exports.__esModule = true; - Connect.displayName = connectDisplayName; - Connect.WrappedComponent = WrappedComponent; - Connect.contextTypes = { - store: _storeShape2["default"] - }; - Connect.propTypes = { - store: _storeShape2["default"] - }; + var _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; }; - if (process.env.NODE_ENV !== 'production') { - Connect.prototype.componentWillUpdate = function componentWillUpdate() { - if (this.version === version) { - return; - } + exports.createConnect = createConnect; - // We are hot reloading! - this.version = version; - this.trySubscribe(); - this.clearCache(); - }; - } + var _connectAdvanced = __webpack_require__(39); + + var _connectAdvanced2 = _interopRequireDefault(_connectAdvanced); + + var _shallowEqual = __webpack_require__(43); + + var _shallowEqual2 = _interopRequireDefault(_shallowEqual); + + var _mapDispatchToProps = __webpack_require__(44); + + var _mapDispatchToProps2 = _interopRequireDefault(_mapDispatchToProps); + + var _mapStateToProps = __webpack_require__(68); + + var _mapStateToProps2 = _interopRequireDefault(_mapStateToProps); + + var _mergeProps = __webpack_require__(69); - return (0, _hoistNonReactStatics2["default"])(Connect, WrappedComponent); + var _mergeProps2 = _interopRequireDefault(_mergeProps); + + var _selectorFactory = __webpack_require__(70); + + var _selectorFactory2 = _interopRequireDefault(_selectorFactory); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _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; } + + /* + connect is a facade over connectAdvanced. It turns its args into a compatible + selectorFactory, which has the signature: + + (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps + + connect passes its args to connectAdvanced as options, which will in turn pass them to + selectorFactory each time a Connect component instance is instantiated or hot reloaded. + + selectorFactory returns a final props selector from its mapStateToProps, + mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps, + mergePropsFactories, and pure args. + + The resulting final props selector is called by the Connect component instance whenever + it receives new props or store state. + */ + + function match(arg, factories, name) { + for (var i = factories.length - 1; i >= 0; i--) { + var result = factories[i](arg); + if (result) return result; + } + + return function (dispatch, options) { + throw new Error('Invalid value of type ' + typeof arg + ' for ' + name + ' argument when connecting component ' + options.wrappedComponentName + '.'); }; } - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) + + function strictEqual(a, b) { + return a === b; + } + + // createConnect with default args builds the 'official' connect behavior. Calling it with + // different options opens up some testing and extensibility scenarios + function createConnect() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$connectHOC = _ref.connectHOC, + connectHOC = _ref$connectHOC === undefined ? _connectAdvanced2.default : _ref$connectHOC, + _ref$mapStateToPropsF = _ref.mapStateToPropsFactories, + mapStateToPropsFactories = _ref$mapStateToPropsF === undefined ? _mapStateToProps2.default : _ref$mapStateToPropsF, + _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories, + mapDispatchToPropsFactories = _ref$mapDispatchToPro === undefined ? _mapDispatchToProps2.default : _ref$mapDispatchToPro, + _ref$mergePropsFactor = _ref.mergePropsFactories, + mergePropsFactories = _ref$mergePropsFactor === undefined ? _mergeProps2.default : _ref$mergePropsFactor, + _ref$selectorFactory = _ref.selectorFactory, + selectorFactory = _ref$selectorFactory === undefined ? _selectorFactory2.default : _ref$selectorFactory; + + return function connect(mapStateToProps, mapDispatchToProps, mergeProps) { + var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, + _ref2$pure = _ref2.pure, + pure = _ref2$pure === undefined ? true : _ref2$pure, + _ref2$areStatesEqual = _ref2.areStatesEqual, + areStatesEqual = _ref2$areStatesEqual === undefined ? strictEqual : _ref2$areStatesEqual, + _ref2$areOwnPropsEqua = _ref2.areOwnPropsEqual, + areOwnPropsEqual = _ref2$areOwnPropsEqua === undefined ? _shallowEqual2.default : _ref2$areOwnPropsEqua, + _ref2$areStatePropsEq = _ref2.areStatePropsEqual, + areStatePropsEqual = _ref2$areStatePropsEq === undefined ? _shallowEqual2.default : _ref2$areStatePropsEq, + _ref2$areMergedPropsE = _ref2.areMergedPropsEqual, + areMergedPropsEqual = _ref2$areMergedPropsE === undefined ? _shallowEqual2.default : _ref2$areMergedPropsE, + extraOptions = _objectWithoutProperties(_ref2, ['pure', 'areStatesEqual', 'areOwnPropsEqual', 'areStatePropsEqual', 'areMergedPropsEqual']); + + var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps'); + var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps'); + var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps'); + + return connectHOC(selectorFactory, _extends({ + // used in error messages + methodName: 'connect', + + // used to compute Connect's displayName from the wrapped component's displayName. + getDisplayName: function getDisplayName(name) { + return 'Connect(' + name + ')'; + }, + + // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes + shouldHandleStateChanges: Boolean(mapStateToProps), + + // passed through to selectorFactory + initMapStateToProps: initMapStateToProps, + initMapDispatchToProps: initMapDispatchToProps, + initMergeProps: initMergeProps, + pure: pure, + areStatesEqual: areStatesEqual, + areOwnPropsEqual: areOwnPropsEqual, + areStatePropsEqual: areStatePropsEqual, + areMergedPropsEqual: areMergedPropsEqual + + }, extraOptions)); + }; + } + + exports.default = createConnect(); /***/ }, -/* 41 */ +/* 43 */ /***/ function(module, exports) { - "use strict"; + 'use strict'; exports.__esModule = true; - exports["default"] = shallowEqual; + exports.default = shallowEqual; + var hasOwn = Object.prototype.hasOwnProperty; + + function is(x, y) { + if (x === y) { + return x !== 0 || y !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } + } + function shallowEqual(objA, objB) { - if (objA === objB) { - return true; + if (is(objA, objB)) return true; + + if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { + return false; } var keysA = Object.keys(objA); var keysB = Object.keys(objB); - if (keysA.length !== keysB.length) { - return false; - } + if (keysA.length !== keysB.length) return false; - // Test for A's keys different from B. - var hasOwn = Object.prototype.hasOwnProperty; for (var i = 0; i < keysA.length; i++) { - if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) { + if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { return false; } } @@ -4235,24 +4428,40 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 42 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; exports.__esModule = true; - exports["default"] = wrapActionCreators; + exports.whenMapDispatchToPropsIsFunction = whenMapDispatchToPropsIsFunction; + exports.whenMapDispatchToPropsIsMissing = whenMapDispatchToPropsIsMissing; + exports.whenMapDispatchToPropsIsObject = whenMapDispatchToPropsIsObject; - var _redux = __webpack_require__(43); + var _redux = __webpack_require__(45); - function wrapActionCreators(actionCreators) { - return function (dispatch) { - return (0, _redux.bindActionCreators)(actionCreators, dispatch); - }; + var _wrapMapToProps = __webpack_require__(66); + + function whenMapDispatchToPropsIsFunction(mapDispatchToProps) { + return typeof mapDispatchToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapDispatchToProps, 'mapDispatchToProps') : undefined; + } + + function whenMapDispatchToPropsIsMissing(mapDispatchToProps) { + return !mapDispatchToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) { + return { dispatch: dispatch }; + }) : undefined; + } + + function whenMapDispatchToPropsIsObject(mapDispatchToProps) { + return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) { + return (0, _redux.bindActionCreators)(mapDispatchToProps, dispatch); + }) : undefined; } + + exports.default = [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]; /***/ }, -/* 43 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -4260,27 +4469,27 @@ return /******/ (function(modules) { // webpackBootstrap exports.__esModule = true; exports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined; - var _createStore = __webpack_require__(44); + var _createStore = __webpack_require__(46); var _createStore2 = _interopRequireDefault(_createStore); - var _combineReducers = __webpack_require__(59); + var _combineReducers = __webpack_require__(61); var _combineReducers2 = _interopRequireDefault(_combineReducers); - var _bindActionCreators = __webpack_require__(61); + var _bindActionCreators = __webpack_require__(63); var _bindActionCreators2 = _interopRequireDefault(_bindActionCreators); - var _applyMiddleware = __webpack_require__(62); + var _applyMiddleware = __webpack_require__(64); var _applyMiddleware2 = _interopRequireDefault(_applyMiddleware); - var _compose = __webpack_require__(63); + var _compose = __webpack_require__(65); var _compose2 = _interopRequireDefault(_compose); - var _warning = __webpack_require__(60); + var _warning = __webpack_require__(62); var _warning2 = _interopRequireDefault(_warning); @@ -4301,10 +4510,10 @@ return /******/ (function(modules) { // webpackBootstrap exports.bindActionCreators = _bindActionCreators2['default']; exports.applyMiddleware = _applyMiddleware2['default']; exports.compose = _compose2['default']; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11))) /***/ }, -/* 44 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -4313,11 +4522,11 @@ return /******/ (function(modules) { // webpackBootstrap exports.ActionTypes = undefined; exports['default'] = createStore; - var _isPlainObject = __webpack_require__(45); + var _isPlainObject = __webpack_require__(47); var _isPlainObject2 = _interopRequireDefault(_isPlainObject); - var _symbolObservable = __webpack_require__(55); + var _symbolObservable = __webpack_require__(57); var _symbolObservable2 = _interopRequireDefault(_symbolObservable); @@ -4570,12 +4779,12 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 45 */ +/* 47 */ /***/ function(module, exports, __webpack_require__) { - var baseGetTag = __webpack_require__(46), - getPrototype = __webpack_require__(52), - isObjectLike = __webpack_require__(54); + var baseGetTag = __webpack_require__(48), + getPrototype = __webpack_require__(54), + isObjectLike = __webpack_require__(56); /** `Object#toString` result references. */ var objectTag = '[object Object]'; @@ -4638,12 +4847,12 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 46 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { - var Symbol = __webpack_require__(47), - getRawTag = __webpack_require__(50), - objectToString = __webpack_require__(51); + var Symbol = __webpack_require__(49), + getRawTag = __webpack_require__(52), + objectToString = __webpack_require__(53); /** `Object#toString` result references. */ var nullTag = '[object Null]', @@ -4672,10 +4881,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 47 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { - var root = __webpack_require__(48); + var root = __webpack_require__(50); /** Built-in value references. */ var Symbol = root.Symbol; @@ -4684,10 +4893,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 48 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { - var freeGlobal = __webpack_require__(49); + var freeGlobal = __webpack_require__(51); /** Detect free variable `self`. */ var freeSelf = typeof self == 'object' && self && self.Object === Object && self; @@ -4699,7 +4908,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 49 */ +/* 51 */ /***/ function(module, exports) { /* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ @@ -4710,10 +4919,10 @@ return /******/ (function(modules) { // webpackBootstrap /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, -/* 50 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { - var Symbol = __webpack_require__(47); + var Symbol = __webpack_require__(49); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -4762,7 +4971,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 51 */ +/* 53 */ /***/ function(module, exports) { /** Used for built-in method references. */ @@ -4790,10 +4999,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 52 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { - var overArg = __webpack_require__(53); + var overArg = __webpack_require__(55); /** Built-in value references. */ var getPrototype = overArg(Object.getPrototypeOf, Object); @@ -4802,7 +5011,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 53 */ +/* 55 */ /***/ function(module, exports) { /** @@ -4823,7 +5032,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 54 */ +/* 56 */ /***/ function(module, exports) { /** @@ -4858,14 +5067,14 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 55 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(56); + module.exports = __webpack_require__(58); /***/ }, -/* 56 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, module) {'use strict'; @@ -4874,7 +5083,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _ponyfill = __webpack_require__(58); + var _ponyfill = __webpack_require__(60); var _ponyfill2 = _interopRequireDefault(_ponyfill); @@ -4897,10 +5106,10 @@ return /******/ (function(modules) { // webpackBootstrap var result = (0, _ponyfill2['default'])(root); exports['default'] = result; - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(57)(module))) + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(59)(module))) /***/ }, -/* 57 */ +/* 59 */ /***/ function(module, exports) { module.exports = function(module) { @@ -4916,7 +5125,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 58 */ +/* 60 */ /***/ function(module, exports) { 'use strict'; @@ -4944,7 +5153,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 59 */ +/* 61 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {'use strict'; @@ -4952,13 +5161,13 @@ return /******/ (function(modules) { // webpackBootstrap exports.__esModule = true; exports['default'] = combineReducers; - var _createStore = __webpack_require__(44); + var _createStore = __webpack_require__(46); - var _isPlainObject = __webpack_require__(45); + var _isPlainObject = __webpack_require__(47); var _isPlainObject2 = _interopRequireDefault(_isPlainObject); - var _warning = __webpack_require__(60); + var _warning = __webpack_require__(62); var _warning2 = _interopRequireDefault(_warning); @@ -5089,10 +5298,10 @@ return /******/ (function(modules) { // webpackBootstrap return hasChanged ? nextState : state; }; } - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(10))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11))) /***/ }, -/* 60 */ +/* 62 */ /***/ function(module, exports) { 'use strict'; @@ -5122,7 +5331,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 61 */ +/* 63 */ /***/ function(module, exports) { 'use strict'; @@ -5178,7 +5387,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 62 */ +/* 64 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -5189,7 +5398,7 @@ return /******/ (function(modules) { // webpackBootstrap exports['default'] = applyMiddleware; - var _compose = __webpack_require__(63); + var _compose = __webpack_require__(65); var _compose2 = _interopRequireDefault(_compose); @@ -5241,7 +5450,7 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 63 */ +/* 65 */ /***/ function(module, exports) { "use strict"; @@ -5284,63 +5493,354 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 64 */ -/***/ function(module, exports) { +/* 66 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + exports.__esModule = true; + exports.wrapMapToPropsConstant = wrapMapToPropsConstant; + exports.getDependsOnOwnProps = getDependsOnOwnProps; + exports.wrapMapToPropsFunc = wrapMapToPropsFunc; + + var _verifyPlainObject = __webpack_require__(67); + + var _verifyPlainObject2 = _interopRequireDefault(_verifyPlainObject); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function wrapMapToPropsConstant(getConstant) { + return function initConstantSelector(dispatch, options) { + var constant = getConstant(dispatch, options); + + function constantSelector() { + return constant; + } + constantSelector.dependsOnOwnProps = false; + return constantSelector; + }; + } + + // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args + // to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine + // whether mapToProps needs to be invoked when props have changed. + // + // A length of one signals that mapToProps does not depend on props from the parent component. + // A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and + // therefore not reporting its length accurately.. + function getDependsOnOwnProps(mapToProps) { + return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1; + } + + // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction, + // this function wraps mapToProps in a proxy function which does several things: + // + // * Detects whether the mapToProps function being called depends on props, which + // is used by selectorFactory to decide if it should reinvoke on props changes. + // + // * On first call, handles mapToProps if returns another function, and treats that + // new function as the true mapToProps for subsequent calls. + // + // * On first call, verifies the first result is a plain object, in order to warn + // the developer that their mapToProps function is not returning a valid result. + // + function wrapMapToPropsFunc(mapToProps, methodName) { + return function initProxySelector(dispatch, _ref) { + var displayName = _ref.displayName; + + var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) { + return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch); + }; + + // allow detectFactoryAndVerify to get ownProps + proxy.dependsOnOwnProps = true; + + proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) { + proxy.mapToProps = mapToProps; + proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps); + var props = proxy(stateOrDispatch, ownProps); + + if (typeof props === 'function') { + proxy.mapToProps = props; + proxy.dependsOnOwnProps = getDependsOnOwnProps(props); + props = proxy(stateOrDispatch, ownProps); + } + + if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject2.default)(props, displayName, methodName); + + return props; + }; + + return proxy; + }; + } + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11))) + +/***/ }, +/* 67 */ +/***/ function(module, exports, __webpack_require__) { - /** - * Copyright 2015, Yahoo! Inc. - * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. - */ 'use strict'; - var REACT_STATICS = { - childContextTypes: true, - contextTypes: true, - defaultProps: true, - displayName: true, - getDefaultProps: true, - mixins: true, - propTypes: true, - type: true - }; + exports.__esModule = true; + exports.default = verifyPlainObject; - var KNOWN_STATICS = { - name: true, - length: true, - prototype: true, - caller: true, - arguments: true, - arity: true - }; + var _isPlainObject = __webpack_require__(47); - var isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function'; + var _isPlainObject2 = _interopRequireDefault(_isPlainObject); - module.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) { - if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components - var keys = Object.getOwnPropertyNames(sourceComponent); + var _warning = __webpack_require__(38); - /* istanbul ignore else */ - if (isGetOwnPropertySymbolsAvailable) { - keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent)); - } + var _warning2 = _interopRequireDefault(_warning); - for (var i = 0; i < keys.length; ++i) { - if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) { - try { - targetComponent[keys[i]] = sourceComponent[keys[i]]; - } catch (error) { + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - } - } - } - } + function verifyPlainObject(value, displayName, methodName) { + if (!(0, _isPlainObject2.default)(value)) { + (0, _warning2.default)(methodName + '() in ' + displayName + ' must return a plain object. Instead received ' + value + '.'); + } + } + +/***/ }, +/* 68 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; - return targetComponent; - }; + exports.__esModule = true; + exports.whenMapStateToPropsIsFunction = whenMapStateToPropsIsFunction; + exports.whenMapStateToPropsIsMissing = whenMapStateToPropsIsMissing; + + var _wrapMapToProps = __webpack_require__(66); + + function whenMapStateToPropsIsFunction(mapStateToProps) { + return typeof mapStateToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapStateToProps, 'mapStateToProps') : undefined; + } + + function whenMapStateToPropsIsMissing(mapStateToProps) { + return !mapStateToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function () { + return {}; + }) : undefined; + } + + exports.default = [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]; +/***/ }, +/* 69 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + exports.__esModule = true; + + var _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; }; + + exports.defaultMergeProps = defaultMergeProps; + exports.wrapMergePropsFunc = wrapMergePropsFunc; + exports.whenMergePropsIsFunction = whenMergePropsIsFunction; + exports.whenMergePropsIsOmitted = whenMergePropsIsOmitted; + + var _verifyPlainObject = __webpack_require__(67); + + var _verifyPlainObject2 = _interopRequireDefault(_verifyPlainObject); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function defaultMergeProps(stateProps, dispatchProps, ownProps) { + return _extends({}, ownProps, stateProps, dispatchProps); + } + + function wrapMergePropsFunc(mergeProps) { + return function initMergePropsProxy(dispatch, _ref) { + var displayName = _ref.displayName, + pure = _ref.pure, + areMergedPropsEqual = _ref.areMergedPropsEqual; + + var hasRunOnce = false; + var mergedProps = void 0; + + return function mergePropsProxy(stateProps, dispatchProps, ownProps) { + var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps); + + if (hasRunOnce) { + if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps; + } else { + hasRunOnce = true; + mergedProps = nextMergedProps; + + if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject2.default)(mergedProps, displayName, 'mergeProps'); + } + + return mergedProps; + }; + }; + } + + function whenMergePropsIsFunction(mergeProps) { + return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined; + } + + function whenMergePropsIsOmitted(mergeProps) { + return !mergeProps ? function () { + return defaultMergeProps; + } : undefined; + } + + exports.default = [whenMergePropsIsFunction, whenMergePropsIsOmitted]; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11))) /***/ }, -/* 65 */ +/* 70 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {'use strict'; + + exports.__esModule = true; + exports.impureFinalPropsSelectorFactory = impureFinalPropsSelectorFactory; + exports.pureFinalPropsSelectorFactory = pureFinalPropsSelectorFactory; + exports.default = finalPropsSelectorFactory; + + var _verifySubselectors = __webpack_require__(71); + + var _verifySubselectors2 = _interopRequireDefault(_verifySubselectors); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function _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; } + + function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) { + return function impureFinalPropsSelector(state, ownProps) { + return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps); + }; + } + + function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) { + var areStatesEqual = _ref.areStatesEqual, + areOwnPropsEqual = _ref.areOwnPropsEqual, + areStatePropsEqual = _ref.areStatePropsEqual; + + var hasRunAtLeastOnce = false; + var state = void 0; + var ownProps = void 0; + var stateProps = void 0; + var dispatchProps = void 0; + var mergedProps = void 0; + + function handleFirstCall(firstState, firstOwnProps) { + state = firstState; + ownProps = firstOwnProps; + stateProps = mapStateToProps(state, ownProps); + dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + hasRunAtLeastOnce = true; + return mergedProps; + } + + function handleNewPropsAndNewState() { + stateProps = mapStateToProps(state, ownProps); + + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewProps() { + if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps); + + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewState() { + var nextStateProps = mapStateToProps(state, ownProps); + var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps); + stateProps = nextStateProps; + + if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + + return mergedProps; + } + + function handleSubsequentCalls(nextState, nextOwnProps) { + var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps); + var stateChanged = !areStatesEqual(nextState, state); + state = nextState; + ownProps = nextOwnProps; + + if (propsChanged && stateChanged) return handleNewPropsAndNewState(); + if (propsChanged) return handleNewProps(); + if (stateChanged) return handleNewState(); + return mergedProps; + } + + return function pureFinalPropsSelector(nextState, nextOwnProps) { + return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps); + }; + } + + // TODO: Add more comments + + // If pure is true, the selector returned by selectorFactory will memoize its results, + // allowing connectAdvanced's shouldComponentUpdate to return false if final + // props have not changed. If false, the selector will always return a new + // object and shouldComponentUpdate will always return true. + + function finalPropsSelectorFactory(dispatch, _ref2) { + var initMapStateToProps = _ref2.initMapStateToProps, + initMapDispatchToProps = _ref2.initMapDispatchToProps, + initMergeProps = _ref2.initMergeProps, + options = _objectWithoutProperties(_ref2, ['initMapStateToProps', 'initMapDispatchToProps', 'initMergeProps']); + + var mapStateToProps = initMapStateToProps(dispatch, options); + var mapDispatchToProps = initMapDispatchToProps(dispatch, options); + var mergeProps = initMergeProps(dispatch, options); + + if (process.env.NODE_ENV !== 'production') { + (0, _verifySubselectors2.default)(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName); + } + + var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory; + + return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options); + } + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11))) + +/***/ }, +/* 71 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + exports.__esModule = true; + exports.default = verifySubselectors; + + var _warning = __webpack_require__(38); + + var _warning2 = _interopRequireDefault(_warning); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + + function verify(selector, methodName, displayName) { + if (!selector) { + throw new Error('Unexpected value for ' + methodName + ' in ' + displayName + '.'); + } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') { + if (!selector.hasOwnProperty('dependsOnOwnProps')) { + (0, _warning2.default)('The selector for ' + methodName + ' of ' + displayName + ' did not specify a value for dependsOnOwnProps.'); + } + } + } + + function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) { + verify(mapStateToProps, 'mapStateToProps', displayName); + verify(mapDispatchToProps, 'mapDispatchToProps', displayName); + verify(mergeProps, 'mergeProps', displayName); + } + +/***/ }, +/* 72 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -5354,7 +5854,7 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; - var _react = __webpack_require__(35); + var _react = __webpack_require__(34); var _react2 = _interopRequireDefault(_react); @@ -5364,7 +5864,7 @@ return /******/ (function(modules) { // webpackBootstrap var _normalizeHref2 = _interopRequireDefault(_normalizeHref); - var _stringifyHref = __webpack_require__(66); + var _stringifyHref = __webpack_require__(73); var _stringifyHref2 = _interopRequireDefault(_stringifyHref); @@ -5501,7 +6001,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.PersistentQueryLink = PersistentQueryLink; /***/ }, -/* 66 */ +/* 73 */ /***/ function(module, exports) { 'use strict'; @@ -5522,7 +6022,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 67 */ +/* 74 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -5535,15 +6035,15 @@ return /******/ (function(modules) { // webpackBootstrap var _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; }; }(); - var _react = __webpack_require__(35); + var _react = __webpack_require__(34); var _react2 = _interopRequireDefault(_react); - var _matchCache = __webpack_require__(24); + var _matchCache = __webpack_require__(23); var _matchCache2 = _interopRequireDefault(_matchCache); - var _generateId = __webpack_require__(68); + var _generateId = __webpack_require__(75); var _generateId2 = _interopRequireDefault(_generateId); @@ -5658,17 +6158,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - return _react2.default.createElement( - 'div', - null, - children - ); + return _react.Children.only(children); }; exports.default = relativePaths(Fragment); /***/ }, -/* 68 */ +/* 75 */ /***/ function(module, exports) { "use strict"; diff --git a/dist/redux-little-router.js.map b/dist/redux-little-router.js.map index 49f9ee8d..6ee5371f 100644 --- a/dist/redux-little-router.js.map +++ b/dist/redux-little-router.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 27b0a0d7201219a6a1a4","webpack:///./index.js","webpack:///./types.js","webpack:///./actions.js","webpack:///./util/normalize-href.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./util/location-state.js","webpack:///./environment/browser-router.js","webpack:///../~/history/createBrowserHistory.js","webpack:///../~/node-libs-browser/~/process/browser.js","webpack:///../~/warning/browser.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/LocationUtils.js","webpack:///../~/resolve-pathname/index.js","webpack:///../~/value-equal/index.js","webpack:///../~/history/PathUtils.js","webpack:///../~/history/createTransitionManager.js","webpack:///../~/history/ExecutionEnvironment.js","webpack:///../~/history/DOMUtils.js","webpack:///./install.js","webpack:///./reducer.js","webpack:///./middleware.js","webpack:///./enhancer.js","webpack:///./util/match-cache.js","webpack:///./util/create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./util/validate-routes.js","webpack:///./util/flatten-routes.js","webpack:///../~/lodash.assign/index.js","webpack:///./environment/express-router.js","webpack:///../~/history/createMemoryHistory.js","webpack:///./environment/hapi-router.js","webpack:///./components/provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///../~/react-redux/lib/index.js","webpack:///../~/react-redux/lib/components/Provider.js","webpack:///../~/react-redux/lib/utils/storeShape.js","webpack:///../~/react-redux/lib/utils/warning.js","webpack:///../~/react-redux/lib/components/connect.js","webpack:///../~/react-redux/lib/utils/shallowEqual.js","webpack:///../~/react-redux/lib/utils/wrapActionCreators.js","webpack:///../~/redux/lib/index.js","webpack:///../~/redux/lib/createStore.js","webpack:///../~/lodash/isPlainObject.js","webpack:///../~/lodash/_baseGetTag.js","webpack:///../~/lodash/_Symbol.js","webpack:///../~/lodash/_root.js","webpack:///../~/lodash/_freeGlobal.js","webpack:///../~/lodash/_getRawTag.js","webpack:///../~/lodash/_objectToString.js","webpack:///../~/lodash/_getPrototype.js","webpack:///../~/lodash/_overArg.js","webpack:///../~/lodash/isObjectLike.js","webpack:///../~/symbol-observable/index.js","webpack:///../~/symbol-observable/lib/index.js","webpack:///../~/webpack/buildin/module.js","webpack:///../~/symbol-observable/lib/ponyfill.js","webpack:///../~/redux/lib/combineReducers.js","webpack:///../~/redux/lib/utils/warning.js","webpack:///../~/redux/lib/bindActionCreators.js","webpack:///../~/redux/lib/applyMiddleware.js","webpack:///../~/redux/lib/compose.js","webpack:///../~/hoist-non-react-statics/index.js","webpack:///./components/link.js","webpack:///./util/stringify-href.js","webpack:///./components/fragment.js","webpack:///./util/generate-id.js"],"names":["routerForBrowser","routerForExpress","routerForHapi","initializeCurrentLocation","provideRouter","RouterProvider","Link","PersistentQueryLink","Fragment","push","replace","go","goBack","goForward","LOCATION_CHANGED","PUSH","REPLACE","GO","GO_FORWARD","GO_BACK","href","options","type","payload","index","locationDidChange","location","pathnameAndSearch","split","pathname","search","query","parse","resolvedSearch","Object","keys","length","stringify","resolvedQuery","packState","rest","state","reduxLittleRouter","unpackState","restLocation","restState","realLocation","window","routes","basename","getLocation","history","fullPathname","descriptor","nestedRoutes","createMatcher","matchRoute","matchWildcardRoute","reducer","middleware","enhancer","flow","funcs","reduce","prev","curr","resolveQuery","oldLocation","newLocation","oldQuery","oldSearch","persistQuery","resolveBasename","resolvePrevious","previous","initialLocation","action","resolveLocation","next","createStore","userReducer","initialState","store","listen","clear","dispatch","ROUTE_FALLBACK","MatchCache","_data","parentId","route","find","list","predicate","i","item","wildcardMatcher","routeList","incomingUrl","routeToMatch","storedRoute","match","pattern","params","result","eagerMatcher","wildcard","sort","reverse","map","README_MESSAGE","Error","every","indexOf","filterObject","target","acc","key","mapObject","transformKey","transformValue","newKey","newValue","onlyRoutes","withoutRoutes","flattenRoutes","forEach","baseRoute","routeKey","routeValue","parent","locationForRequest","request","path","baseUrl","RouterProviderImpl","props","router","routerState","getState","children","childContextTypes","object","ComposedComponent","LEFT_MOUSE_BUTTON","isNotLeftClick","e","button","hasModifier","Boolean","shiftKey","altKey","metaKey","ctrlKey","shouldIgnoreClick","defaultPrevented","handleClick","onClick","replaceState","preventDefault","navigate","context","rawHref","clickHandler","contextTypes","propTypes","node","relativePaths","RelativeFragment","id","parentRoute","forRoute","routePrefix","string","withConditions","matchResult","previousMatch","get","add","radix","Math","random","Date","now","toString","slice"],"mappings":"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AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAsB,oBAAoB;;AAE1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA,GAAE;AACF;AACA,GAAE;AACF;;;;;;;AC1MA;AACA;AACA;AACA;AACA,GAAE;AACF;;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACrFO,KAAMC,YAAY,SAAZA,SAAY,CACvBb,QADuB,EAGV;AAAA,OADbL,OACa,uEADc,EACd;;AACb;AADa,OAELU,KAFK,GAEcL,QAFd,CAEL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A,qBAAoB,qCAAqC;AACzD;AACA,QAAO;AACP;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wC;;;;;;;ACxTA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACnLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;;AAEA;AACA;;AAEA,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,2BAA0B;;AAE1B;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,G;;;;;;AC9DA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAiD,OAAO;AACxD;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,iCAAgC,QAAQ;AACxC;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,0BAAyB,MAAM;AAC/B;AACA,IAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA,kC;;;;;;ACrEA;;AAEA;;AAEA,qGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA,8B;;;;;;AC3CA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;AACA,G;;;;;;ACpDA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA,oEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2C;;;;;;;ACpFA;;AAEA;AACA,2H;;;;;;ACHA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;AChDA;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;;;mBASe,gBAKI;AAAA,OAJT4B,YAIS,QAJjBN,MAIiB;AAAA,OAHjBG,OAGiB,QAHjBA,OAGiB;AAAA,OAFjBzB,QAEiB,QAFjBA,QAEiB;AAAA,iCADjB6B,aACiB;AAAA,OADjBA,aACiB;;AACjB,iCAAeD,YAAf;AACA,OAAMN,SAAS,6BAAcM,YAAd,CAAf;;AAEA,OAAME,aAAaD,cAAcP,MAAd,CAAnB;AACA,OAAMS,qBAAqBF,cAAcP,MAAd,EAAsB,IAAtB,CAA3B;;AAEA,UAAO;AACLU,cAAS,oCACJhC,QADI,EAEJ8B,WAAW9B,SAASG,QAApB,CAFI,EADJ;AAKL8B,iBAAY,0BAAW,EAAER,gBAAF,EAAX,CALP;AAMLS,eAAU,wBAAS;AACjBZ,qBADiB;AAEjBG,uBAFiB;AAGjBK,6BAHiB;AAIjBC;AAJiB,MAAT;AANL,IAAP;AAaD,E;;;;;;;;;;;;;;ACzCD;;;;AAEA,KAAMI,OAAO,SAAPA,IAAO;AAAA,qCAAIC,KAAJ;AAAIA,UAAJ;AAAA;;AAAA,UACXA,MAAMC,MAAN,CAAa,UAACC,IAAD,EAAOC,IAAP;AAAA,YAAgB;AAAA,cAAaA,KAAKD,gCAAL,CAAb;AAAA,MAAhB;AAAA,IAAb,CADW;AAAA,EAAb;;AASA,KAAME,eAAe,SAAfA,YAAe,OAIa;AAAA,OAHhCC,WAGgC,QAHhCA,WAGgC;AAAA,OAFhCC,WAEgC,QAFhCA,WAEgC;AAAA,OADhC/C,OACgC,QADhCA,OACgC;AAAA,OACjBgD,QADiB,GACeF,WADf,CACxBpC,KADwB;AAAA,OACCuC,SADD,GACeH,WADf,CACPrC,MADO;;AAGhC;AACA;;AACA,OACET,QAAQkD,YAAR,IACAF,QADA,IAEA,CAACD,YAAYtC,MAFb,IAGA,CAACsC,YAAYrC,KAJf,EAKE;AACA,YAAO;AACLoC,+BADK;AAELC,iCACKA,WADL;AAEErC,gBAAOsC,QAFT;AAGEvC,iBAAQwC;AAHV,SAFK;AAOLjD;AAPK,MAAP;AASD;;AAED,UAAO,EAAE8C,wBAAF,EAAeC,wBAAf,EAA4B/C,gBAA5B,EAAP;AACD,EA3BD;;AA6BA,KAAMmD,kBAAkB,SAAlBA,eAAkB,QAIU;AAAA,OAHhCL,WAGgC,SAHhCA,WAGgC;AAAA,OAFhCC,WAEgC,SAFhCA,WAEgC;AAAA,OADhC/C,OACgC,SADhCA,OACgC;AAAA,OACxB4B,QADwB,GACXkB,WADW,CACxBlB,QADwB;;AAEhC,OAAIA,QAAJ,EAAc;AACZ,YAAO;AACLkB,+BADK;AAELC,+BAAenB,kBAAf,IAA4BmB,WAA5B,CAFK;AAGL/C;AAHK,MAAP;AAKD;AACD,UAAO,EAAE8C,wBAAF,EAAeC,wBAAf,EAA4B/C,gBAA5B,EAAP;AACD,EAdD;;AAgBA,KAAMoD,kBAAkB,SAAlBA,eAAkB;AAAA,OACtBN,WADsB,SACtBA,WADsB;AAAA,OAEtBC,WAFsB,SAEtBA,WAFsB;AAAA,OAGtB/C,OAHsB,SAGtBA,OAHsB;AAAA,UAIW;AACjC8C,6BADiC;AAEjCC,+BACKA,WADL;AAEEM,iBAAUP;AAFZ,OAFiC;AAMjC9C;AANiC,IAJX;AAAA,EAAxB;;mBAcE,UAACsD,eAAD;AAAA,UACA,YAA+D;AAAA,SAA9DlC,KAA8D,uEAA5CkC,eAA4C;AAAA,SAA3BC,MAA2B;;AAC7D,SAAIA,OAAOtD,IAAP,4BAAJ,EAAsC;AACpC;AACA,WACEmB,MAAMZ,QAAN,KAAmB+C,OAAOrD,OAAP,CAAeM,QAAlC,IACAY,MAAMX,MAAN,KAAiB8C,OAAOrD,OAAP,CAAeO,MAFlC,EAGE;AACA,gBAAOW,KAAP;AACD;;AAED;AACA;AACA;AACA;;AAZoC,WAa5BiC,QAb4B,GAaCjC,KAbD,CAa5BiC,QAb4B;AAAA,WAafP,YAbe,4BAaC1B,KAbD;;AAAA,WAc5BpB,QAd4B,GAchBuD,OAAOrD,OAdS,CAc5BF,OAd4B;;;AAgBpC,WAAMwD,kBAAkBhB,KACtBK,YADsB,EAEtBM,eAFsB,EAGtBC,eAHsB,CAAxB;;AAMA,cAAOI,gBAAgB;AACrBV,kCADqB;AAErBC,sBAAaQ,OAAOrD,OAFC;AAGrBF,kBAASA,YAAW;AAHC,QAAhB,EAIJ+C,WAJH;AAKD;AACD,YAAO3B,KAAP;AACD,IA/BD;AAAA,E;;;;;;;;;;;;AClEF;;AAPA;mBAcE;AAAA,OAAGU,OAAH,QAAGA,OAAH;AAAA,UAAiC;AAAA,YACjC,UAAC2B,IAAD;AAAA,cACA,UAACF,MAAD,EAA0B;AACxB,iBAAQA,OAAOtD,IAAf;AACA;AACE6B,qBAAQ1C,IAAR,CAAamE,OAAOrD,OAApB;AACA;AACA;AACA;AACF;AACE4B,qBAAQzC,OAAR,CAAgBkE,OAAOrD,OAAvB;AACA;AACF;AACE4B,qBAAQxC,EAAR,CAAWiE,OAAOrD,OAAlB;AACA;AACF;AACE4B,qBAAQvC,MAAR;AACA;AACF;AACEuC,qBAAQtC,SAAR;AACA;AACF;AACE;AACA,oBAAOiE,KAAKF,MAAL,CAAP;AApBF;AAsBD,QAxBD;AAAA,MADiC;AAAA,IAAjC;AAAA,E;;;;;;;;;;;;;;ACTF;;AAEA;;AACA;;;;;;mBAQe;AAAA,OACb5B,MADa,QACbA,MADa;AAAA,OAEbG,OAFa,QAEbA,OAFa;AAAA,OAGbK,UAHa,QAGbA,UAHa;AAAA,OAIbC,kBAJa,QAIbA,kBAJa;AAAA,UAMf,UAACsB,WAAD;AAAA,YAAqC,UACnCC,WADmC,EAEnCC,YAFmC,EAGnCrB,QAHmC,EAIhC;AACH,WAAMsB,QAAQH,YACZC,WADY,EAEZC,YAFY,EAGZrB,QAHY,CAAd;;AAMAT,eAAQgC,MAAR,CAAe,oBAAY;AACzB,8BAAWC,KAAX;AACAF,eAAMG,QAAN,CAAe,6CACV,gCAAY3D,QAAZ,CADU,EAEV8B,WAAW9B,SAASG,QAApB,CAFU,EAAf;AAID,QAND;;AAQA,2BACKqD,KADL;AAEElC,uBAFF;AAGEQ,+BAHF;AAIEC;AAJF;AAMD,MAzBD;AAAA,IANe;AAAA,E;;;;;;;;;;;;;;;;ACdf,KAAM6B,iBAAiB,iBAAvB;;KAEaC,U,WAAAA,U;AAEX,yBAAc;AAAA;;AACZ,UAAKC,KAAL,GAAa,EAAb;AACD;;;;yBAEGC,Q,EAAkBC,K,EAAuB;AAC3C,YAAKF,KAAL,CAAWC,QAAX,IAAuBC,SAASJ,cAAhC;AACD;;;yBAEGG,Q,EAAkC;AACpC,cAAO,KAAKD,KAAL,CAAWC,QAAX,KAAwB,IAA/B;AACD;;;6BAEc;AACb,YAAKD,KAAL,GAAa,EAAb;AACD;;;;;;mBAGY,IAAID,UAAJ,E;;;;;;;;;;;;ACtBf;;;;;;AAQA,KAAMI,OAAO,SAAPA,IAAO,CAACC,IAAD,EAAOC,SAAP,EAAqB;AAChC,QAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,KAAKxD,MAAzB,EAAiC0D,GAAjC,EAAsC;AACpC,SAAMC,OAAOH,KAAKE,CAAL,CAAb;AACA,SAAID,UAAUE,IAAV,CAAJ,EAAqB;AACnB,cAAOA,IAAP;AACD;AACF;AACD,UAAO,IAAP;AACD,EARD;;;AAUA,KAAMC,kBAAkB,SAAlBA,eAAkB,CAACC,SAAD;AAAA,UACtB,UAACC,WAAD,EAAoD;AAAA,SAA9BC,YAA8B,uEAAP,EAAO;;AAClD;AACA,SAAMtE,WAAWqE,YAAYtE,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAjB;;AAEA,SAAMwE,cAAcT,KAAKM,SAAL,EAAgB;AAAA,cAClCP,MAAMA,KAAN,KAAgBS,YADkB;AAAA,MAAhB,CAApB;;AAIA,SAAI,CAACC,WAAL,EAAkB;AAAE,cAAO,IAAP;AAAc;;AAElC,SAAMC,QAAQD,YAAYE,OAAZ,CAAoBD,KAApB,CAA0BxE,QAA1B,CAAd;;AAEA,SAAIwE,KAAJ,EAAW;AACT,cAAO;AACLX,gBAAOU,YAAYV,KADd;AAELa,iBAAQF,KAFH;AAGLG,iBAAQJ,YAAYI;AAHf,QAAP;AAKD;;AAED,YAAO,IAAP;AACD,IAtBqB;AAAA,EAAxB;;AAwBA,KAAMC,eAAe,SAAfA,YAAe,CAACR,SAAD;AAAA,UACnB,UAACC,WAAD,EAAyB;AACzB;AACE,SAAMrE,WAAWqE,YAAYtE,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CAAjB;;AAEA;AACA,UAAK,IAAIkE,IAAI,CAAb,EAAgBA,IAAIG,UAAU7D,MAA9B,EAAsC0D,GAAtC,EAA2C;AACzC,WAAMM,cAAcH,UAAUH,CAAV,CAApB;AACA,WAAMO,QAAQD,YAAYE,OAAZ,CAAoBD,KAApB,CAA0BxE,QAA1B,CAAd;;AAEA,WAAIwE,KAAJ,EAAW;AACT;AACA,gBAAO;AACLX,kBAAOU,YAAYV,KADd;AAELa,mBAAQF,KAFH;AAGLG,mBAAQJ,YAAYI;AAHf,UAAP;AAKD;AACF;;AAED,YAAO,IAAP;AACD,IArBkB;AAAA,EAArB;;mBAuBe,UAACxD,MAAD,EAA4C;AAAA,OAA3B0D,QAA2B,uEAAV,KAAU;;AACzD,OAAMT,YAAY/D,OAAOC,IAAP,CAAYa,MAAZ,EACf2D,IADe,GACRC,OADQ,GACEC,GADF,CACM;AAAA,YAAU;AAC9BnB,mBAD8B;AAE9BY,gBAAS;AACP;AADO,YAEJZ,KAFI,IAEIgB,YAAY,GAAZ,IAAmB,EAFvB,EAFqB;AAM9BF,eAAQxD,OAAO0C,KAAP;AANsB,MAAV;AAAA,IADN,CAAlB;;AAUA,UAAOgB,WACHV,gBAAgBC,SAAhB,CADG,GAEHQ,aAAaR,SAAb,CAFJ;AAGD,E;;;;;;AChFD;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;AACD;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;ACnbD;;;;;;;;;;;;;ACCA,KAAMa,gJAAN;;mBAKe,UAAC9D,MAAD,EAAoB;AACjC,OAAI,CAACA,MAAL,EAAa;AACX,WAAM+D,sLAKFD,cALE,YAAN;AAOD;;AAED;AACA,OACE,CAAC5E,OAAOC,IAAP,CAAYa,MAAZ,EACEgE,KADF,CACQ;AAAA,YAAStB,MAAMuB,OAAN,CAAc,GAAd,MAAuB,CAAhC;AAAA,IADR,CADH,EAGE;AACA,WAAMF,4IAIFD,cAJE,YAAN;AAMD;AACF,E;;;;;;;;;;;;;;AC5BD;;;;;;;;AAEA,KAAMI,eAAe,SAAfA,YAAe,CAACC,MAAD,EAAStB,SAAT;AAAA,UACnB3D,OAAOC,IAAP,CAAYgF,MAAZ,EAAoBpD,MAApB,CAA2B,UAACqD,GAAD,EAAMC,GAAN,EAAc;AACvC,YAAOxB,UAAUwB,GAAV,iBACED,GADF,sBACQC,GADR,EACcF,OAAOE,GAAP,CADd,KAEHD,GAFJ;AAGD,IAJD,EAIG,EAJH,CADmB;AAAA,EAArB;;AAOA,KAAME,YAAY,SAAZA,SAAY,CAACH,MAAD,EAASI,YAAT,EAAuBC,cAAvB;AAAA,UAChBtF,OAAOC,IAAP,CAAYgF,MAAZ,EAAoBpD,MAApB,CAA2B,UAACqD,GAAD,EAAMC,GAAN,EAAc;AACvC,SAAMI,SAASF,eACbA,aAAaF,GAAb,CADa,GACOA,GADtB;AAEA,SAAMK,WAAWF,iBACfA,eAAeL,OAAOE,GAAP,CAAf,CADe,GACeF,OAAOE,GAAP,CADhC;AAEA,yBAAYD,GAAZ,sBAAkBK,MAAlB,EAA2BC,QAA3B;AACD,IAND,EAMG,EANH,CADgB;AAAA,EAAlB;;AASA,KAAMC,aAAa,SAAbA,UAAa;AAAA,UACjBT,aAAalE,MAAb,EAAqB;AAAA,YAAOqE,IAAIJ,OAAJ,CAAY,GAAZ,MAAqB,CAA5B;AAAA,IAArB,CADiB;AAAA,EAAnB;;AAGA,KAAMW,gBAAgB,SAAhBA,aAAgB;AAAA,UACpBV,aAAalE,MAAb,EAAqB;AAAA,YAAOqE,IAAIJ,OAAJ,CAAY,GAAZ,MAAqB,CAA5B;AAAA,IAArB,CADoB;AAAA,EAAtB;;AAGA,KAAMY,gBAAgB,SAAhBA,aAAgB,CAAC7E,MAAD,EAAsC;AAAA,OAArBoE,GAAqB,uEAAP,EAAO;;AAC1DlF,UAAOC,IAAP,CAAYa,MAAZ,EAAoB8E,OAApB,CAA4B,eAAO;AACjC,SAAMC,YAAYV,QAAQ,GAAR,GAAc,EAAd,GAAmBA,GAArC;AACAQ,mBACEP,UACEK,WAAW3E,OAAOqE,GAAP,CAAX,CADF,EAEE;AAAA,mBAAeU,SAAf,GAA2BC,QAA3B;AAAA,MAFF,EAGE;AAAA,2BACKC,UADL;AAEEC,8BACKN,cAAc5E,OAAOqE,GAAP,CAAd,CADL;AAEE3B,kBAAO2B;AAFT;AAFF;AAAA,MAHF,CADF,EAYED,GAZF;AAcD,IAhBD;;AAkBA,yBAAOA,GAAP,EAAYE,UAAUtE,MAAV,EAAkB,IAAlB,EAAwB4E,aAAxB,CAAZ;;AAEA,UAAOR,GAAP;AACD,EAtBD;;mBAwBeS,a;;;;;;ACjDf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAiD,eAAe;;AAEhE;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO,WAAW;AAC7B,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,kBAAiB;AACjB,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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uCAAsC,uCAAuC,kBAAkB;;AAE/F,kDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,kDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,2CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA,GAAE;AACF;AACA,WAAU;AACV;AACA;AACA,qBAAoB;AACpB;;AAEA;AACA;AACA;;AAEA,oBAAmB;AACnB;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,wBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAuB,yBAAyB;AAChD;;AAEA;AACA,yGAAwG,gBAAgB;;AAExH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yFAAwF;AACxF;AACA,YAAW;AACX,UAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;AC1YA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;ACzBA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,E;;;;;;ACXA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wC;;;;;;;AC7CA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,YAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,IAAI;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,oBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc,yBAAyB;AACvC;;AAEA;AACA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA,oBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB;AAChB;AACA,MAAK;AACL;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,aAAY,yBAAyB;;AAErC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,E;;;;;;ACpQA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7DA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;;AAEA;AACA;;AAEA;;;;;;;ACLA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACRA;AACA;;AAEA;;;;;;;;ACHA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;;AAEA;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;;;;;;;ACAA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,UAAS;;;AAGT;AACA;AACA,EAAC;AACD;AACA,EAAC;AACD;AACA,EAAC;AACD;AACA,EAAC;AACD;AACA;;AAEA;AACA,6B;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA,G;;;;;;ACtBA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAmE;AACnE;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA2C,sCAAsC;;AAEjF;AACA;AACA;;AAEA;AACA,oCAAmC,aAAa;AAChD;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,kBAAiB,wBAAwB;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,yEAAwE;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AC7IA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,E;;;;;;ACxBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,cAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AClDA;;AAEA;;AAEA,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,SAAS;AACtB;AACA;AACA,yEAAwE,aAAa;AACrF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;AACA;AACA,E;;;;;;ACzDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA,mEAAkE,aAAa;AAC/E;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,E;;;;;;ACrCA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA,wBAAuB,iBAAiB;AACxC;AACA;AACA;A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","file":"redux-little-router.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_35__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 27b0a0d7201219a6a1a4","// @flow\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_BACK,\n GO_FORWARD\n} from './types';\n\nimport {\n push,\n replace,\n go,\n goBack,\n goForward,\n initializeCurrentLocation\n} from './actions';\n\nimport routerForBrowser from './environment/browser-router';\nimport routerForExpress from './environment/express-router';\nimport routerForHapi from './environment/hapi-router';\n\nimport provideRouter, { RouterProvider } from './components/provider';\nimport { Link, PersistentQueryLink } from './components/link';\nimport Fragment from './components/fragment';\n\nexport {\n // High-level Redux API\n routerForBrowser,\n routerForExpress,\n routerForHapi,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action creators\n push,\n replace,\n go,\n goBack,\n goForward,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n};\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport type { Location as HistoryLocation } from 'history';\n\nexport type Query = { [key: string]: string };\nexport type Params = { [key: string]: string };\n\nexport type LocationOptions = {\n persistQuery?: bool\n};\n\nexport type Location = HistoryLocation & {\n basename?: string,\n options?: LocationOptions,\n params?: Params,\n previous?: Location,\n query?: Query,\n result?: Object\n};\n\nexport type Href = string | Location;\n\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\nexport type BareAction = {\n type: 'ROUTER_GO_BACK' | 'ROUTER_GO_FORWARD'\n};\n\nexport type IndexedAction = {\n type: 'ROUTER_GO',\n payload: number\n};\n\nexport type LocationAction = {\n type: 'ROUTER_LOCATION_CHANGED' | 'ROUTER_PUSH' | 'ROUTER_REPLACE',\n payload: Location\n};\n\nexport type RouterAction =\n | BareAction\n | IndexedAction\n | LocationAction;\n\n\n\n// WEBPACK FOOTER //\n// ./types.js","// @flow\nimport type {\n Location,\n LocationOptions,\n Href\n} from './types';\n\nimport {\n PUSH,\n REPLACE,\n GO,\n GO_BACK,\n GO_FORWARD,\n LOCATION_CHANGED\n} from './types';\n\nimport normalizeHref from './util/normalize-href';\nimport { packState } from './util/location-state';\n\nexport const push = (href: Href, options: LocationOptions) => ({\n type: PUSH,\n payload: packState(normalizeHref(href), options)\n});\n\nexport const replace = (href: Href, options: LocationOptions) => ({\n type: REPLACE,\n payload: packState(normalizeHref(href), options)\n});\n\nexport const go = (index: number) => ({\n type: GO,\n payload: index\n});\n\nexport const goBack = () => ({ type: GO_BACK });\nexport const goForward = () => ({ type: GO_FORWARD });\n\nexport const locationDidChange = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\n\n\n// WEBPACK FOOTER //\n// ./actions.js","// @flow\nimport type { Href, Location } from '../types';\n\nimport qs from 'query-string';\n\nexport default (href: Href): Location => {\n if (typeof href === 'string') {\n const pathnameAndSearch = href.split('?');\n const pathname = pathnameAndSearch[0];\n const search = pathnameAndSearch[1];\n const query = search && qs.parse(search);\n\n return query\n ? { pathname, query, search: `?${search}` }\n : { pathname };\n }\n\n const { search, query } = href;\n\n const resolvedSearch = search || (\n query &&\n Object.keys(query).length &&\n `?${qs.stringify(query)}`\n ) || '';\n const resolvedQuery = query || qs.parse(search);\n\n return {\n ...href,\n search: resolvedSearch,\n query: resolvedQuery\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/normalize-href.js","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result || accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tformatter(decodeURIComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/query-string/index.js\n// module id = 4\n// module chunks = 0","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/strict-uri-encode/index.js\n// module id = 5\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/object-assign/index.js\n// module id = 6\n// module chunks = 0","// @flow\nimport type { Location as HistoryLocation } from 'history';\nimport type { Location, LocationOptions } from '../types';\n\nexport const packState = (\n location: Location,\n options: LocationOptions = {}\n): Location => {\n // eslint-disable-next-line no-unused-vars\n const { query, ...rest } = location;\n return {\n ...rest,\n state: {\n ...rest.state || {},\n\n // Namespace our state to prevent interference\n // with user-provided state\n reduxLittleRouter: {\n query: query || {},\n options\n }\n }\n };\n};\n\nexport const unpackState = (location: HistoryLocation) => {\n const { state = {}, ...restLocation } = location;\n const { reduxLittleRouter = {}, ...restState } = state;\n const { query = {}, options = {} } = reduxLittleRouter;\n\n return {\n ...restLocation,\n state: restState,\n query,\n options\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/location-state.js","// @flow\nimport createBrowserHistory from 'history/createBrowserHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype BrowserRouterArgs = {\n routes: Object,\n basename: string,\n getLocation: () => Location,\n passRouterStateToReducer?: bool\n};\n\n/* istanbul ignore next: unstubbable! */\nconst realLocation = () => window.location;\n\nexport default ({\n routes,\n basename,\n getLocation = realLocation\n}: BrowserRouterArgs) => {\n const history = createBrowserHistory({ basename });\n\n const { pathname: fullPathname, search } = getLocation();\n\n // Strip the basename from the initial pathname\n const pathname = basename\n ? fullPathname.replace(basename, '')\n : fullPathname;\n\n const descriptor = basename\n ? { pathname, basename, search }\n : { pathname, search };\n\n const location = normalizeHref(descriptor);\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/browser-router.js","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var globalHistory = window.history;\n var canUseHistory = (0, _DOMUtils.supportsHistory)();\n var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n var _props$basename = props.basename,\n basename = _props$basename === undefined ? '' : _props$basename,\n _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n if (basename) path = (0, _PathUtils.stripPrefix)(path, basename);\n\n return _extends({}, (0, _PathUtils.parsePath)(path), {\n state: state,\n key: key\n });\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n (function () {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n })();\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + (0, _PathUtils.createPath)(location);\n };\n\n var push = function push(path, state) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n return unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createBrowserHistory.js\n// module id = 9\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/node-libs-browser/~/process/browser.js\n// module id = 10\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/warning/browser.js\n// module id = 11\n// module chunks = 0","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/invariant/browser.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\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 _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = (0, _PathUtils.parsePath)(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/LocationUtils.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar isAbsolute = function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n};\n\n// About 1.5x faster than the two-arg version of Array#splice()\nvar spliceOne = function spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }list.pop();\n};\n\n// This implementation is based heavily on node's url.parse\nvar resolvePathname = function resolvePathname(to) {\n var from = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n};\n\nmodule.exports = resolvePathname;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/resolve-pathname/index.js\n// module id = 14\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar valueEqual = function valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) return false;\n\n return a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n};\n\nexports.default = valueEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/value-equal/index.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar stripPrefix = exports.stripPrefix = function stripPrefix(path, prefix) {\n return path.indexOf(prefix) === 0 ? path.substr(prefix.length) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/PathUtils.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time') : void 0;\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexports.default = createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createTransitionManager.js\n// module id = 17\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/ExecutionEnvironment.js\n// module id = 18\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/DOMUtils.js\n// module id = 19\n// module chunks = 0","// @flow\nimport type { History } from 'history';\nimport type { Location } from './types';\n\nimport reducer from './reducer';\nimport middleware from './middleware';\nimport enhancer from './enhancer';\n\nimport { default as matcherFactory } from './util/create-matcher';\nimport validateRoutes from './util/validate-routes';\nimport flattenRoutes from './util/flatten-routes';\n\ntype InstallArgs = {\n routes: Object,\n history: History,\n location: Location,\n createMatcher?: Function\n};\n\nexport default ({\n routes: nestedRoutes,\n history,\n location,\n createMatcher = matcherFactory\n}: InstallArgs) => {\n validateRoutes(nestedRoutes);\n const routes = flattenRoutes(nestedRoutes);\n\n const matchRoute = createMatcher(routes);\n const matchWildcardRoute = createMatcher(routes, true);\n\n return {\n reducer: reducer({\n ...location,\n ...matchRoute(location.pathname)\n }),\n middleware: middleware({ history }),\n enhancer: enhancer({\n routes,\n history,\n matchRoute,\n matchWildcardRoute\n })\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./install.js","// @flow\nimport type { Location, LocationOptions, LocationAction } from './types';\n\nimport { LOCATION_CHANGED } from './types';\n\nconst flow = (...funcs: Array) =>\n funcs.reduce((prev, curr) => (...args) => curr(prev(...args)));\n\ntype ResolverArgs = {\n oldLocation: Location,\n newLocation: Location,\n options: LocationOptions\n};\n\nconst resolveQuery = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => {\n const { query: oldQuery, search: oldSearch } = oldLocation;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n options.persistQuery &&\n oldQuery &&\n !newLocation.search &&\n !newLocation.query\n ) {\n return {\n oldLocation,\n newLocation: {\n ...newLocation,\n query: oldQuery,\n search: oldSearch\n },\n options\n };\n }\n\n return { oldLocation, newLocation, options };\n};\n\nconst resolveBasename = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => {\n const { basename } = oldLocation;\n if (basename) {\n return {\n oldLocation,\n newLocation: { basename, ...newLocation },\n options\n };\n }\n return { oldLocation, newLocation, options };\n};\n\nconst resolvePrevious = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => ({\n oldLocation,\n newLocation: {\n ...newLocation,\n previous: oldLocation\n },\n options\n});\n\nexport default\n (initialLocation: Location) =>\n (state: Location = initialLocation, action: LocationAction) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (\n state.pathname === action.payload.pathname &&\n state.search === action.payload.search\n ) {\n return state;\n }\n\n // Extract the previous state, but dump the\n // previous state's previous state so that the\n // state tree doesn't keep growing indefinitely\n // eslint-disable-next-line no-unused-vars\n const { previous, ...oldLocation } = state;\n const { options } = action.payload;\n\n const resolveLocation = flow(\n resolveQuery,\n resolveBasename,\n resolvePrevious\n );\n\n return resolveLocation({\n oldLocation,\n newLocation: action.payload,\n options: options || {}\n }).newLocation;\n }\n return state;\n };\n\n\n\n// WEBPACK FOOTER //\n// ./reducer.js","/* eslint-disable consistent-return */\n// @flow\n\nimport type { History } from 'history';\nimport type { Dispatch } from 'redux';\nimport type { RouterAction } from './types';\n\nimport {\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './types';\n\ntype MiddlewareArgs = { history: History };\nexport default\n ({ history }: MiddlewareArgs) => () =>\n (next: Dispatch<*>) =>\n (action: RouterAction) => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n // No return, no next() here\n // We stop all history events from progressing further through the dispatch chain...\n break;\n case REPLACE:\n history.replace(action.payload);\n break;\n case GO:\n history.go(action.payload);\n break;\n case GO_BACK:\n history.goBack();\n break;\n case GO_FORWARD:\n history.goForward();\n break;\n default:\n // ...but we want to leave all events we don't care about undisturbed\n return next(action);\n }\n };\n\n\n\n// WEBPACK FOOTER //\n// ./middleware.js","// @flow\n\nimport type { StoreCreator, Reducer, StoreEnhancer } from 'redux';\nimport type { History } from 'history';\n\nimport { locationDidChange } from './actions';\n\nimport { unpackState } from './util/location-state';\nimport matchCache from './util/match-cache';\n\ntype EnhancerArgs = {\n routes: Object,\n history: History,\n matchRoute: Function,\n matchWildcardRoute: Function\n};\nexport default ({\n routes,\n history,\n matchRoute,\n matchWildcardRoute\n}: EnhancerArgs) =>\n(createStore: StoreCreator<*, *>) => (\n userReducer: Reducer<*, *>,\n initialState: Location,\n enhancer: StoreEnhancer<*, *>\n) => {\n const store = createStore(\n userReducer,\n initialState,\n enhancer\n );\n\n history.listen(location => {\n matchCache.clear();\n store.dispatch(locationDidChange({\n ...unpackState(location),\n ...matchRoute(location.pathname)\n }));\n });\n\n return {\n ...store,\n routes,\n matchRoute,\n matchWildcardRoute\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./enhancer.js","// @flow\n\nconst ROUTE_FALLBACK = '@ROUTE_FALLBACK';\n\nexport class MatchCache {\n _data: { [parentId: string]: string };\n constructor() {\n this._data = {};\n }\n\n add(parentId: string, route: ?string) : void {\n this._data[parentId] = route || ROUTE_FALLBACK;\n }\n\n get(parentId: string) : null | string {\n return this._data[parentId] || null;\n }\n\n clear() : void {\n this._data = {};\n }\n}\n\nexport default new MatchCache();\n\n\n\n// WEBPACK FOOTER //\n// ./util/match-cache.js","// @flow\nimport UrlPattern from 'url-pattern';\n\ntype RouteCache = {\n route: string,\n pattern: UrlPattern,\n result: Object\n};\n\nconst find = (list, predicate) => {\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n if (predicate(item)) {\n return item;\n }\n }\n return null;\n};\n\nconst wildcardMatcher = (routeList: Array) =>\n (incomingUrl: string, routeToMatch: string = '') => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n const storedRoute = find(routeList, route =>\n route.route === routeToMatch\n );\n\n if (!storedRoute) { return null; }\n\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n\n return null;\n };\n\nconst eagerMatcher = (routeList: Array) =>\n (incomingUrl: string) => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n\nexport default (routes: Object, wildcard: bool = false) => {\n const routeList = Object.keys(routes)\n .sort().reverse().map(route => ({\n route,\n pattern: new UrlPattern(\n // Prepend with wildcards if requested\n `${route}${wildcard && '*' || ''}`\n ),\n result: routes[route]\n }));\n\n return wildcard\n ? wildcardMatcher(routeList)\n : eagerMatcher(routeList);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/create-matcher.js","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/url-pattern/lib/url-pattern.js\n// module id = 26\n// module chunks = 0","module.exports = __webpack_amd_options__;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/webpack/buildin/amd-options.js\n// module id = 27\n// module chunks = 0","// @flow\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\nexport default (routes: Object) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (\n !Object.keys(routes)\n .every(route => route.indexOf('/') === 0)\n ) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/validate-routes.js","// @flow\nimport assign from 'lodash.assign';\n\nconst filterObject = (target, predicate) =>\n Object.keys(target).reduce((acc, key) => {\n return predicate(key)\n ? { ...acc, [key]: target[key] }\n : acc;\n }, {});\n\nconst mapObject = (target, transformKey, transformValue) =>\n Object.keys(target).reduce((acc, key) => {\n const newKey = transformKey ?\n transformKey(key) : key;\n const newValue = transformValue ?\n transformValue(target[key]) : target[key];\n return { ...acc, [newKey]: newValue };\n }, {});\n\nconst onlyRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') === 0);\n\nconst withoutRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') !== 0);\n\nconst flattenRoutes = (routes: Object, acc: Object = {}) => {\n Object.keys(routes).forEach(key => {\n const baseRoute = key === '/' ? '' : key;\n flattenRoutes(\n mapObject(\n onlyRoutes(routes[key]),\n routeKey => `${baseRoute}${routeKey}`,\n routeValue => ({\n ...routeValue,\n parent: {\n ...withoutRoutes(routes[key]),\n route: key\n }\n })\n ),\n acc\n );\n });\n\n assign(acc, mapObject(routes, null, withoutRoutes));\n\n return acc;\n};\n\nexport default flattenRoutes;\n\n\n\n// WEBPACK FOOTER //\n// ./util/flatten-routes.js","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash.assign/index.js\n// module id = 30\n// module chunks = 0","// @flow\nimport createMemoryHistory from 'history/createMemoryHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n baseUrl: string,\n url: string,\n query: {[key: string]: string}\n },\n passRouterStateToReducer?: bool\n};\n\nconst locationForRequest = request => {\n const { path: pathname, baseUrl: basename, query } = request;\n const descriptor = basename\n ? { pathname, basename, query }\n : { pathname, query };\n return normalizeHref(descriptor);\n};\n\nexport default ({ routes, request }: ServerRouterArgs) => {\n const history = createMemoryHistory();\n const location = locationForRequest(request);\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/express-router.js","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry, index) {\n return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, index ? createKey() : undefined) : (0, _LocationUtils.createLocation)(entry, undefined, index ? entry.key || createKey() : undefined);\n });\n\n // Public interface\n\n var createHref = _PathUtils.createPath;\n\n var push = function push(path, state) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createMemoryHistory.js\n// module id = 32\n// module chunks = 0","// @flow\nimport createMemoryHistory from 'history/createMemoryHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n url: string,\n query: { [key: string]: string }\n }\n};\n\nexport default ({\n routes,\n request\n}: ServerRouterArgs) => {\n const history = createMemoryHistory();\n\n const location = normalizeHref({\n pathname: request.path,\n query: request.query\n });\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/hapi-router.js","// @flow\nimport type { Store } from 'redux';\n\nimport React, {\n Component,\n PropTypes,\n cloneElement\n} from 'react';\n\nimport { connect } from 'react-redux';\n\nexport type StoreWithRouter = Store & {\n routes: Object\n};\n\nexport type RouterContext = { store: Store<*, *> };\n\ntype Props = {\n store: StoreWithRouter<*, *>,\n children: React.Element<*>\n};\n\nclass RouterProviderImpl extends Component {\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n router: { store: StoreWithRouter<*, *> };\n\n render() {\n const { store } = this.router;\n const routerState = store.getState().router;\n\n // Ensure that the router props from connect()\n // actually get to the child component(s)\n return cloneElement(this.props.children, {\n router: {\n ...routerState,\n\n // This is a hack to allow routes to define\n // unserializable things like components\n result: store.routes[routerState.route]\n }\n });\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: StoreWithRouter<*, *>\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n// WEBPACK FOOTER //\n// ./components/provider.js","module.exports = __WEBPACK_EXTERNAL_MODULE_35__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 35\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connect = require('./components/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports.Provider = _Provider2[\"default\"];\nexports.connect = _connect2[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/index.js\n// module id = 36\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = undefined;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\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 didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n return _react.Children.only(this.props.children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports[\"default\"] = Provider;\n\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _storeShape2[\"default\"].isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _storeShape2[\"default\"].isRequired\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/components/Provider.js\n// module id = 37\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nexports[\"default\"] = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/storeShape.js\n// module id = 38\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/warning.js\n// module id = 39\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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[\"default\"] = connect;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _wrapActionCreators = require('../utils/wrapActionCreators');\n\nvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\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 defaultMapStateToProps = function defaultMapStateToProps(state) {\n return {};\n}; // eslint-disable-line no-unused-vars\nvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n return { dispatch: dispatch };\n};\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n return _extends({}, parentProps, stateProps, dispatchProps);\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nvar errorObject = { value: null };\nfunction tryCatch(fn, ctx) {\n try {\n return fn.apply(ctx);\n } catch (e) {\n errorObject.value = e;\n return errorObject;\n }\n}\n\n// Helps track hot reloading.\nvar nextVersion = 0;\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var shouldSubscribe = Boolean(mapStateToProps);\n var mapState = mapStateToProps || defaultMapStateToProps;\n\n var mapDispatch = void 0;\n if (typeof mapDispatchToProps === 'function') {\n mapDispatch = mapDispatchToProps;\n } else if (!mapDispatchToProps) {\n mapDispatch = defaultMapDispatchToProps;\n } else {\n mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n }\n\n var finalMergeProps = mergeProps || defaultMergeProps;\n var _options$pure = options.pure,\n pure = _options$pure === undefined ? true : _options$pure,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\n // Helps track hot reloading.\n var version = nextVersion++;\n\n return function wrapWithConnect(WrappedComponent) {\n var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\n function checkStateShape(props, methodName) {\n if (!(0, _isPlainObject2[\"default\"])(props)) {\n (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n }\n }\n\n function computeMergedProps(stateProps, dispatchProps, parentProps) {\n var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mergedProps, 'mergeProps');\n }\n return mergedProps;\n }\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n };\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.store = props.store || context.store;\n\n (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\n var storeState = _this.store.getState();\n _this.state = { storeState: storeState };\n _this.clearCache();\n return _this;\n }\n\n Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n if (!this.finalMapStateToProps) {\n return this.configureFinalMapState(store, props);\n }\n\n var state = store.getState();\n var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(stateProps, 'mapStateToProps');\n }\n return stateProps;\n };\n\n Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n var mappedState = mapState(store.getState(), props);\n var isFactory = typeof mappedState === 'function';\n\n this.finalMapStateToProps = isFactory ? mappedState : mapState;\n this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\n if (isFactory) {\n return this.computeStateProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedState, 'mapStateToProps');\n }\n return mappedState;\n };\n\n Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n if (!this.finalMapDispatchToProps) {\n return this.configureFinalMapDispatch(store, props);\n }\n\n var dispatch = store.dispatch;\n\n var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(dispatchProps, 'mapDispatchToProps');\n }\n return dispatchProps;\n };\n\n Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n var mappedDispatch = mapDispatch(store.dispatch, props);\n var isFactory = typeof mappedDispatch === 'function';\n\n this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\n if (isFactory) {\n return this.computeDispatchProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedDispatch, 'mapDispatchToProps');\n }\n return mappedDispatch;\n };\n\n Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n var nextStateProps = this.computeStateProps(this.store, this.props);\n if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n return false;\n }\n\n this.stateProps = nextStateProps;\n return true;\n };\n\n Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n return false;\n }\n\n this.dispatchProps = nextDispatchProps;\n return true;\n };\n\n Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n return false;\n }\n\n this.mergedProps = nextMergedProps;\n return true;\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return typeof this.unsubscribe === 'function';\n };\n\n Connect.prototype.trySubscribe = function trySubscribe() {\n if (shouldSubscribe && !this.unsubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n this.handleChange();\n }\n };\n\n Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n this.trySubscribe();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n this.haveOwnPropsChanged = true;\n }\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n this.tryUnsubscribe();\n this.clearCache();\n };\n\n Connect.prototype.clearCache = function clearCache() {\n this.dispatchProps = null;\n this.stateProps = null;\n this.mergedProps = null;\n this.haveOwnPropsChanged = true;\n this.hasStoreStateChanged = true;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n this.renderedElement = null;\n this.finalMapDispatchToProps = null;\n this.finalMapStateToProps = null;\n };\n\n Connect.prototype.handleChange = function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n\n var storeState = this.store.getState();\n var prevStoreState = this.state.storeState;\n if (pure && prevStoreState === storeState) {\n return;\n }\n\n if (pure && !this.doStatePropsDependOnOwnProps) {\n var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n if (!haveStatePropsChanged) {\n return;\n }\n if (haveStatePropsChanged === errorObject) {\n this.statePropsPrecalculationError = errorObject.value;\n }\n this.haveStatePropsBeenPrecalculated = true;\n }\n\n this.hasStoreStateChanged = true;\n this.setState({ storeState: storeState });\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\n return this.refs.wrappedInstance;\n };\n\n Connect.prototype.render = function render() {\n var haveOwnPropsChanged = this.haveOwnPropsChanged,\n hasStoreStateChanged = this.hasStoreStateChanged,\n haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated,\n statePropsPrecalculationError = this.statePropsPrecalculationError,\n renderedElement = this.renderedElement;\n\n\n this.haveOwnPropsChanged = false;\n this.hasStoreStateChanged = false;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n\n if (statePropsPrecalculationError) {\n throw statePropsPrecalculationError;\n }\n\n var shouldUpdateStateProps = true;\n var shouldUpdateDispatchProps = true;\n if (pure && renderedElement) {\n shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n }\n\n var haveStatePropsChanged = false;\n var haveDispatchPropsChanged = false;\n if (haveStatePropsBeenPrecalculated) {\n haveStatePropsChanged = true;\n } else if (shouldUpdateStateProps) {\n haveStatePropsChanged = this.updateStatePropsIfNeeded();\n }\n if (shouldUpdateDispatchProps) {\n haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n }\n\n var haveMergedPropsChanged = true;\n if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n } else {\n haveMergedPropsChanged = false;\n }\n\n if (!haveMergedPropsChanged && renderedElement) {\n return renderedElement;\n }\n\n if (withRef) {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n ref: 'wrappedInstance'\n }));\n } else {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n }\n\n return this.renderedElement;\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = connectDisplayName;\n Connect.WrappedComponent = WrappedComponent;\n Connect.contextTypes = {\n store: _storeShape2[\"default\"]\n };\n Connect.propTypes = {\n store: _storeShape2[\"default\"]\n };\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n if (this.version === version) {\n return;\n }\n\n // We are hot reloading!\n this.version = version;\n this.trySubscribe();\n this.clearCache();\n };\n }\n\n return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/components/connect.js\n// module id = 40\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/shallowEqual.js\n// module id = 41\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = wrapActionCreators;\n\nvar _redux = require('redux');\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/wrapActionCreators.js\n// module id = 42\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2['default'];\nexports.combineReducers = _combineReducers2['default'];\nexports.bindActionCreators = _bindActionCreators2['default'];\nexports.applyMiddleware = _applyMiddleware2['default'];\nexports.compose = _compose2['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/index.js\n// module id = 43\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/createStore.js\n// module id = 44\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/isPlainObject.js\n// module id = 45\n// module chunks = 0","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_baseGetTag.js\n// module id = 46\n// module chunks = 0","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_Symbol.js\n// module id = 47\n// module chunks = 0","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_root.js\n// module id = 48\n// module chunks = 0","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_freeGlobal.js\n// module id = 49\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_getRawTag.js\n// module id = 50\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_objectToString.js\n// module id = 51\n// module chunks = 0","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_getPrototype.js\n// module id = 52\n// module chunks = 0","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_overArg.js\n// module id = 53\n// module chunks = 0","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/isObjectLike.js\n// module id = 54\n// module chunks = 0","module.exports = require('./lib/index');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/index.js\n// module id = 55\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ponyfill = require('./ponyfill');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root; /* global window */\n\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/lib/index.js\n// module id = 56\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/webpack/buildin/module.js\n// module id = 57\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/lib/ponyfill.js\n// module id = 58\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2['default'])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n (0, _warning2['default'])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/combineReducers.js\n// module id = 59\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/utils/warning.js\n// module id = 60\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/bindActionCreators.js\n// module id = 61\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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['default'] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/applyMiddleware.js\n// module id = 62\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/compose.js\n// module id = 63\n// module chunks = 0","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/hoist-non-react-statics/index.js\n// module id = 64\n// module chunks = 0","// @flow\nimport type { Href } from '../types';\nimport type { RouterContext } from './provider';\n\nimport React, { Component, PropTypes } from 'react';\n\nimport { push, replace } from '../actions';\nimport normalizeHref from '../util/normalize-href';\nimport stringifyHref from '../util/stringify-href';\n\ntype Props = {\n children: React.Element<*>,\n className: string,\n href: Href,\n persistQuery: bool,\n replaceState: bool,\n target: string,\n onClick: EventHandler,\n style: Object\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst isNotLeftClick = e =>\n e.button && e.button !== LEFT_MOUSE_BUTTON;\n\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst shouldIgnoreClick = ({ e, target }) =>\n hasModifier(e) ||\n isNotLeftClick(e) ||\n e.defaultPrevented ||\n target; // let browser handle target=\"_blank\"\n\nconst handleClick = ({\n e,\n target,\n href,\n onClick,\n replaceState,\n persistQuery,\n store\n}) => {\n if (onClick) {\n onClick(e);\n }\n\n if (shouldIgnoreClick({ e, target })) {\n return;\n }\n\n e.preventDefault();\n\n const navigate = replaceState ? replace : push;\n store.dispatch(navigate(href, { persistQuery }));\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n href: rawHref,\n children,\n onClick,\n target,\n replaceState,\n persistQuery,\n ...rest\n } = props;\n\n const { store } = context.router;\n const { router: { basename } } = store.getState();\n\n // Ensure the href has both a search and a query when needed\n const href = normalizeHref(rawHref);\n\n const clickHandler = e => handleClick({\n e,\n target,\n href,\n onClick,\n replaceState,\n persistQuery,\n store\n });\n\n return (\n \n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n// WEBPACK FOOTER //\n// ./components/link.js","// @flow\nimport type { Href } from '../types';\n\nexport default (href: Href, basename: string) => {\n if (typeof href === 'string') {\n return `${basename || ''}${href}`;\n }\n\n const { pathname, search } = href;\n return `${basename || ''}${pathname}${search || ''}`;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/stringify-href.js","// @flow\nimport type { Location } from '../types';\n\nimport React, { Component, PropTypes } from 'react';\nimport matchCache from '../util/match-cache';\nimport generateId from '../util/generate-id';\n\ntype Props = {\n location: Location,\n matchRoute: Function,\n forRoute?: string,\n withConditions?: (location: Location) => bool,\n parentId?: string,\n children: React.Element<*>\n};\n\nconst relativePaths = (ComposedComponent: ReactClass<*>) => {\n class RelativeFragment extends Component {\n constructor() {\n super();\n this.id = generateId();\n }\n\n getChildContext() {\n const { parentRoute } = this.context;\n const { forRoute } = this.props;\n\n return {\n // Append the parent route if this isn't the first\n // RelativeFragment in the hierarchy.\n parentRoute:\n parentRoute &&\n parentRoute !== '/' &&\n parentRoute !== forRoute\n ? `${parentRoute}${forRoute || ''}`\n : forRoute,\n parentId: this.id\n };\n }\n\n props: Props;\n id: string;\n\n render() {\n const { children, forRoute, ...rest } = this.props;\n const { router, parentRoute, parentId } = this.context;\n const { store } = router;\n\n const location = store.getState().router;\n\n const routePrefix = parentRoute &&\n parentRoute !== '/' ? parentRoute : '';\n\n return (\n \n );\n }\n }\n\n // Consumes this context...\n RelativeFragment.contextTypes = {\n router: PropTypes.object,\n parentRoute: PropTypes.string,\n parentId: PropTypes.string\n };\n\n // ...and provides this context.\n RelativeFragment.childContextTypes = {\n parentRoute: PropTypes.string,\n parentId: PropTypes.string\n };\n\n return RelativeFragment;\n};\n\nconst Fragment = (props: Props) => {\n const {\n location,\n matchRoute,\n forRoute,\n withConditions,\n children,\n parentId\n } = props;\n\n const matchResult = matchRoute(location.pathname, forRoute);\n\n if (\n !matchResult ||\n withConditions && !withConditions(location) ||\n forRoute && matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (parentId) {\n const previousMatch = matchCache.get(parentId);\n if (previousMatch && previousMatch !== forRoute) {\n return null;\n } else {\n matchCache.add(parentId, forRoute);\n }\n }\n\n return
{children}
;\n};\n\nexport default relativePaths(Fragment);\n\n\n\n// WEBPACK FOOTER //\n// ./components/fragment.js","/**\n * Returns a psuedo-unique identifier used by fragments\n * to track match status within MatchCache.\n * @returns {String} id\n * @flow\n */\nexport default (): string => {\n const radix = 16;\n const length = 8;\n return (Math.random() * Date.now()).toString(radix).slice(0, length);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/generate-id.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap ac6fbc76cff5a272d8ea","webpack:///./index.js","webpack:///./types.js","webpack:///./actions.js","webpack:///./util/normalize-href.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./util/location-state.js","webpack:///./environment/browser-router.js","webpack:///../~/history/createBrowserHistory.js","webpack:///../~/warning/browser.js","webpack:///../~/node-libs-browser/~/process/browser.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/LocationUtils.js","webpack:///../~/resolve-pathname/index.js","webpack:///../~/value-equal/index.js","webpack:///../~/history/PathUtils.js","webpack:///../~/history/createTransitionManager.js","webpack:///../~/history/DOMUtils.js","webpack:///./install.js","webpack:///./reducer.js","webpack:///./middleware.js","webpack:///./enhancer.js","webpack:///./util/match-cache.js","webpack:///./util/create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./util/validate-routes.js","webpack:///./util/flatten-routes.js","webpack:///../~/lodash.assign/index.js","webpack:///./environment/express-router.js","webpack:///../~/history/createMemoryHistory.js","webpack:///./environment/hapi-router.js","webpack:///./components/provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///../~/react-redux/lib/index.js","webpack:///../~/react-redux/lib/components/Provider.js","webpack:///../~/react-redux/lib/utils/PropTypes.js","webpack:///../~/react-redux/lib/utils/warning.js","webpack:///../~/react-redux/lib/components/connectAdvanced.js","webpack:///../~/hoist-non-react-statics/index.js","webpack:///../~/react-redux/lib/utils/Subscription.js","webpack:///../~/react-redux/lib/connect/connect.js","webpack:///../~/react-redux/lib/utils/shallowEqual.js","webpack:///../~/react-redux/lib/connect/mapDispatchToProps.js","webpack:///../~/redux/lib/index.js","webpack:///../~/redux/lib/createStore.js","webpack:///../~/lodash/isPlainObject.js","webpack:///../~/lodash/_baseGetTag.js","webpack:///../~/lodash/_Symbol.js","webpack:///../~/lodash/_root.js","webpack:///../~/lodash/_freeGlobal.js","webpack:///../~/lodash/_getRawTag.js","webpack:///../~/lodash/_objectToString.js","webpack:///../~/lodash/_getPrototype.js","webpack:///../~/lodash/_overArg.js","webpack:///../~/lodash/isObjectLike.js","webpack:///../~/symbol-observable/index.js","webpack:///../~/symbol-observable/lib/index.js","webpack:///../~/webpack/buildin/module.js","webpack:///../~/symbol-observable/lib/ponyfill.js","webpack:///../~/redux/lib/combineReducers.js","webpack:///../~/redux/lib/utils/warning.js","webpack:///../~/redux/lib/bindActionCreators.js","webpack:///../~/redux/lib/applyMiddleware.js","webpack:///../~/redux/lib/compose.js","webpack:///../~/react-redux/lib/connect/wrapMapToProps.js","webpack:///../~/react-redux/lib/utils/verifyPlainObject.js","webpack:///../~/react-redux/lib/connect/mapStateToProps.js","webpack:///../~/react-redux/lib/connect/mergeProps.js","webpack:///../~/react-redux/lib/connect/selectorFactory.js","webpack:///../~/react-redux/lib/connect/verifySubselectors.js","webpack:///./components/link.js","webpack:///./util/stringify-href.js","webpack:///./components/fragment.js","webpack:///./util/generate-id.js"],"names":["routerForBrowser","routerForExpress","routerForHapi","initializeCurrentLocation","provideRouter","RouterProvider","Link","PersistentQueryLink","Fragment","push","replace","go","goBack","goForward","LOCATION_CHANGED","PUSH","REPLACE","GO","GO_FORWARD","GO_BACK","href","options","type","payload","index","locationDidChange","location","pathnameAndSearch","split","pathname","search","query","parse","resolvedSearch","Object","keys","length","stringify","resolvedQuery","packState","rest","state","reduxLittleRouter","unpackState","restLocation","restState","realLocation","window","routes","basename","getLocation","history","fullPathname","descriptor","nestedRoutes","createMatcher","matchRoute","matchWildcardRoute","reducer","middleware","enhancer","flow","funcs","reduce","prev","curr","resolveQuery","oldLocation","newLocation","oldQuery","oldSearch","persistQuery","resolveBasename","resolvePrevious","previous","initialLocation","action","resolveLocation","next","createStore","userReducer","initialState","store","listen","clear","dispatch","ROUTE_FALLBACK","MatchCache","_data","parentId","route","find","list","predicate","i","item","wildcardMatcher","routeList","incomingUrl","routeToMatch","storedRoute","match","pattern","params","result","eagerMatcher","wildcard","sort","reverse","map","README_MESSAGE","Error","every","indexOf","filterObject","target","acc","key","mapObject","transformKey","transformValue","newKey","newValue","onlyRoutes","withoutRoutes","flattenRoutes","forEach","baseRoute","routeKey","routeValue","parent","locationForRequest","request","path","baseUrl","RouterProviderImpl","props","router","routerState","getState","children","childContextTypes","object","ComposedComponent","LEFT_MOUSE_BUTTON","isNotLeftClick","e","button","hasModifier","Boolean","shiftKey","altKey","metaKey","ctrlKey","shouldIgnoreClick","defaultPrevented","handleClick","onClick","replaceState","preventDefault","navigate","context","rawHref","clickHandler","contextTypes","propTypes","node","relativePaths","RelativeFragment","id","parentRoute","forRoute","routePrefix","string","withConditions","matchResult","previousMatch","get","add","only","radix","Math","random","Date","now","toString","slice"],"mappings":"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AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAsB,oBAAoB;;AAE1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,GAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAI;;AAEJ;AACA;;AAEA;AACA,GAAE;AACF;AACA,GAAE;AACF;;;;;;;AC1MA;AACA;AACA;AACA;AACA,GAAE;AACF;;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACrFO,KAAMC,YAAY,SAAZA,SAAY,CACvBb,QADuB,EAGV;AAAA,OADbL,OACa,uEADc,EACd;;AACb;AADa,OAELU,KAFK,GAEcL,QAFd,CAEL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,QAAO;AACP;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wC;;;;;;ACnTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;;;;;;;AC3DA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACnLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,2CAA0C,yBAAyB,EAAE;AACrE;AACA;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA;;;;;;;;AClDA;;AAEA;AACA;;AAEA,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,2BAA0B;;AAE1B;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,G;;;;;;AC9DA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAiD,OAAO;AACxD;AACA,IAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,iCAAgC,QAAQ;AACxC;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA,0BAAyB,MAAM;AAC/B;AACA,IAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA,kC;;;;;;ACrEA;;AAEA;;AAEA,qGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA,8B;;;;;;AC3CA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;AACA,G;;;;;;AC1DA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA,oEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2C;;;;;;ACpFA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;;AAEF;AACA;AACA;AACA;AACA;A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E,IAAI,CAAb,EAAgBA,IAAIG,UAAU7D,MAA9B,EAAsC0D,GAAtC,EAA2C;AACzC,WAAMM,cAAcH,UAAUH,CAAV,CAApB;AACA,WAAMO,QAAQD,YAAYE,OAAZ,CAAoBD,KAApB,CAA0BxE,QAA1B,CAAd;;AAEA,WAAIwE,KAAJ,EAAW;AACT;AACA,gBAAO;AACLX,kBAAOU,YAAYV,KADd;AAELa,mBAAQF,KAFH;AAGLG,mBAAQJ,YAAYI;AAHf,UAAP;AAKD;AACF;;AAED,YAAO,IAAP;AACD,IArBkB;AAAA,EAArB;;mBAuBe,UAACxD,MAAD,EAA4C;AAAA,OAA3B0D,QAA2B,uEAAV,KAAU;;AACzD,OAAMT,YAAY/D,OAAOC,IAAP,CAAYa,MAAZ,EACf2D,IADe,GACRC,OADQ,GACEC,GADF,CACM;AAAA,YAAU;AAC9BnB,mBAD8B;AAE9BY,gBAAS;AACP;AADO,YAEJZ,KAFI,IAEIgB,YAAY,GAAZ,IAAmB,EAFvB,EAFqB;AAM9BF,eAAQxD,OAAO0C,KAAP;AANsB,MAAV;AAAA,IADN,CAAlB;;AAUA,UAAOgB,WACHV,gBAAgBC,SAAhB,CADG,GAEHQ,aAAaR,SAAb,CAFJ;AAGD,E;;;;;;AChFD;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA,EAAC;AACD;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;;;;;;ACnbD;;;;;;;;;;;;;ACCA,KAAMa,gJAAN;;mBAKe,UAAC9D,MAAD,EAAoB;AACjC,OAAI,CAACA,MAAL,EAAa;AACX,WAAM+D,sLAKFD,cALE,YAAN;AAOD;;AAED;AACA,OACE,CAAC5E,OAAOC,IAAP,CAAYa,MAAZ,EACEgE,KADF,CACQ;AAAA,YAAStB,MAAMuB,OAAN,CAAc,GAAd,MAAuB,CAAhC;AAAA,IADR,CADH,EAGE;AACA,WAAMF,4IAIFD,cAJE,YAAN;AAMD;AACF,E;;;;;;;;;;;;;;AC5BD;;;;;;;;AAEA,KAAMI,eAAe,SAAfA,YAAe,CAACC,MAAD,EAAStB,SAAT;AAAA,UACnB3D,OAAOC,IAAP,CAAYgF,MAAZ,EAAoBpD,MAApB,CAA2B,UAACqD,GAAD,EAAMC,GAAN,EAAc;AACvC,YAAOxB,UAAUwB,GAAV,iBACED,GADF,sBACQC,GADR,EACcF,OAAOE,GAAP,CADd,KAEHD,GAFJ;AAGD,IAJD,EAIG,EAJH,CADmB;AAAA,EAArB;;AAOA,KAAME,YAAY,SAAZA,SAAY,CAACH,MAAD,EAASI,YAAT,EAAuBC,cAAvB;AAAA,UAChBtF,OAAOC,IAAP,CAAYgF,MAAZ,EAAoBpD,MAApB,CAA2B,UAACqD,GAAD,EAAMC,GAAN,EAAc;AACvC,SAAMI,SAASF,eACbA,aAAaF,GAAb,CADa,GACOA,GADtB;AAEA,SAAMK,WAAWF,iBACfA,eAAeL,OAAOE,GAAP,CAAf,CADe,GACeF,OAAOE,GAAP,CADhC;AAEA,yBAAYD,GAAZ,sBAAkBK,MAAlB,EAA2BC,QAA3B;AACD,IAND,EAMG,EANH,CADgB;AAAA,EAAlB;;AASA,KAAMC,aAAa,SAAbA,UAAa;AAAA,UACjBT,aAAalE,MAAb,EAAqB;AAAA,YAAOqE,IAAIJ,OAAJ,CAAY,GAAZ,MAAqB,CAA5B;AAAA,IAArB,CADiB;AAAA,EAAnB;;AAGA,KAAMW,gBAAgB,SAAhBA,aAAgB;AAAA,UACpBV,aAAalE,MAAb,EAAqB;AAAA,YAAOqE,IAAIJ,OAAJ,CAAY,GAAZ,MAAqB,CAA5B;AAAA,IAArB,CADoB;AAAA,EAAtB;;AAGA,KAAMY,gBAAgB,SAAhBA,aAAgB,CAAC7E,MAAD,EAAsC;AAAA,OAArBoE,GAAqB,uEAAP,EAAO;;AAC1DlF,UAAOC,IAAP,CAAYa,MAAZ,EAAoB8E,OAApB,CAA4B,eAAO;AACjC,SAAMC,YAAYV,QAAQ,GAAR,GAAc,EAAd,GAAmBA,GAArC;AACAQ,mBACEP,UACEK,WAAW3E,OAAOqE,GAAP,CAAX,CADF,EAEE;AAAA,mBAAeU,SAAf,GAA2BC,QAA3B;AAAA,MAFF,EAGE;AAAA,2BACKC,UADL;AAEEC,8BACKN,cAAc5E,OAAOqE,GAAP,CAAd,CADL;AAEE3B,kBAAO2B;AAFT;AAFF;AAAA,MAHF,CADF,EAYED,GAZF;AAcD,IAhBD;;AAkBA,yBAAOA,GAAP,EAAYE,UAAUtE,MAAV,EAAkB,IAAlB,EAAwB4E,aAAxB,CAAZ;;AAEA,UAAOR,GAAP;AACD,EAtBD;;mBAwBeS,a;;;;;;ACjDf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAiD,eAAe;;AAEhE;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO,WAAW;AAC7B,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,kBAAiB;AACjB,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AsC,uCAAuC,gBAAgB;;AAE7F,kDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,kDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,2CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e,+CAA8C,iBAAiB,qBAAqB,oCAAoC,6DAA6D,oBAAoB,EAAE,eAAe;;AAE1N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oFAAmF;AACnF;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAwC;AACxC,mDAAkD;;AAElD;AACA;;AAEA;;AAEA;;AAEA,6CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yEAAwE;AACxE;AACA;AACA;AACA,0BAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uGAAsG,gBAAgB;AACtH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;;AChSA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,+CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA,wBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,kBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACjDA;;AAEA;;AAEA,kDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED,gC;;;;;;AC5FA;;AAEA;;AAEA,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,+CAA8C,iBAAiB,qBAAqB,oCAAoC,6DAA6D,oBAAoB,EAAE,eAAe;;AAE1N;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAoC,QAAQ;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAK;AACL;AACA;;AAEA,mC;;;;;;AC/HA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,kBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA,E;;;;;;ACjCA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAY;AACZ,IAAG;AACH;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA,uH;;;;;;AC3BA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wC;;;;;;;AC7CA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,YAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA;AACA;AACA,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,IAAI;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,oBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,gBAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAc,yBAAyB;AACvC;;AAEA;AACA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAiB,OAAO;AACxB;AACA,oBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAgB;AAChB;AACA,MAAK;AACL;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA,aAAY,yBAAyB;;AAErC;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,E;;;;;;ACpQA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7DA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;;AAEA;AACA;;AAEA;;;;;;;ACLA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACRA;AACA;;AAEA;;;;;;;;ACHA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7CA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;;AAEA;AACA;;AAEA;;;;;;;ACLA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;;;;;;;ACAA;;AAEA;AACA;AACA,EAAC;;AAED;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F,UAAS;;;AAGT;AACA;AACA,EAAC;AACD;AACA,EAAC;AACD;AACA,EAAC;AACD;AACA,EAAC;AACD;AACA;;AAEA;AACA,6B;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA;;AAEA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA,G;;;;;;ACtBA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAmE;AACnE;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA2C,sCAAsC;;AAEjF;AACA;AACA;;AAEA;AACA,oCAAmC,aAAa;AAChD;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,kBAAiB,wBAAwB;AACzC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,yEAAwE;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AC7IA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,E;;;;;;ACxBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,gBAAgB;AAC3B;AACA;AACA;AACA,YAAW,SAAS;AACpB;AACA;AACA,cAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AClDA;;AAEA;;AAEA,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,kBAAkB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,SAAS;AACtB;AACA;AACA,yEAAwE,aAAa;AACrF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA,yBAAwB;AACxB;AACA,QAAO;AACP;AACA;AACA,E;;;;;;ACzDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA,mEAAkE,aAAa;AAC/E;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,E;;;;;;ACrCA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,E;;;;;;;AC7EA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA,E;;;;;;ACnBA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA,iF;;;;;;AClBA;;AAEA;;AAEA,oDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA,qBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA,uE;;;;;;;ACzDA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F,+CAA8C,iBAAiB,qBAAqB,oCAAoC,6DAA6D,oBAAoB,EAAE,eAAe;;AAE1N;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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","file":"redux-little-router.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_34__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap ac6fbc76cff5a272d8ea","// @flow\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_BACK,\n GO_FORWARD\n} from './types';\n\nimport {\n push,\n replace,\n go,\n goBack,\n goForward,\n initializeCurrentLocation\n} from './actions';\n\nimport routerForBrowser from './environment/browser-router';\nimport routerForExpress from './environment/express-router';\nimport routerForHapi from './environment/hapi-router';\n\nimport provideRouter, { RouterProvider } from './components/provider';\nimport { Link, PersistentQueryLink } from './components/link';\nimport Fragment from './components/fragment';\n\nexport {\n // High-level Redux API\n routerForBrowser,\n routerForExpress,\n routerForHapi,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action creators\n push,\n replace,\n go,\n goBack,\n goForward,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n};\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport type { Location as HistoryLocation } from 'history';\n\nexport type Query = { [key: string]: string };\nexport type Params = { [key: string]: string };\n\nexport type LocationOptions = {\n persistQuery?: bool\n};\n\nexport type Location = HistoryLocation & {\n basename?: string,\n options?: LocationOptions,\n params?: Params,\n previous?: Location,\n query?: Query,\n result?: Object\n};\n\nexport type Href = string | Location;\n\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\nexport type BareAction = {\n type: 'ROUTER_GO_BACK' | 'ROUTER_GO_FORWARD'\n};\n\nexport type IndexedAction = {\n type: 'ROUTER_GO',\n payload: number\n};\n\nexport type LocationAction = {\n type: 'ROUTER_LOCATION_CHANGED' | 'ROUTER_PUSH' | 'ROUTER_REPLACE',\n payload: Location\n};\n\nexport type RouterAction =\n | BareAction\n | IndexedAction\n | LocationAction;\n\n\n\n// WEBPACK FOOTER //\n// ./types.js","// @flow\nimport type {\n Location,\n LocationOptions,\n Href\n} from './types';\n\nimport {\n PUSH,\n REPLACE,\n GO,\n GO_BACK,\n GO_FORWARD,\n LOCATION_CHANGED\n} from './types';\n\nimport normalizeHref from './util/normalize-href';\nimport { packState } from './util/location-state';\n\nexport const push = (href: Href, options: LocationOptions) => ({\n type: PUSH,\n payload: packState(normalizeHref(href), options)\n});\n\nexport const replace = (href: Href, options: LocationOptions) => ({\n type: REPLACE,\n payload: packState(normalizeHref(href), options)\n});\n\nexport const go = (index: number) => ({\n type: GO,\n payload: index\n});\n\nexport const goBack = () => ({ type: GO_BACK });\nexport const goForward = () => ({ type: GO_FORWARD });\n\nexport const locationDidChange = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\n\n\n// WEBPACK FOOTER //\n// ./actions.js","// @flow\nimport type { Href, Location } from '../types';\n\nimport qs from 'query-string';\n\nexport default (href: Href): Location => {\n if (typeof href === 'string') {\n const pathnameAndSearch = href.split('?');\n const pathname = pathnameAndSearch[0];\n const search = pathnameAndSearch[1];\n const query = search && qs.parse(search);\n\n return query\n ? { pathname, query, search: `?${search}` }\n : { pathname };\n }\n\n const { search, query } = href;\n\n const resolvedSearch = search || (\n query &&\n Object.keys(query).length &&\n `?${qs.stringify(query)}`\n ) || '';\n const resolvedQuery = query || qs.parse(search);\n\n return {\n ...href,\n search: resolvedSearch,\n query: resolvedQuery\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/normalize-href.js","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result || accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tformatter(decodeURIComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/query-string/index.js\n// module id = 4\n// module chunks = 0","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/strict-uri-encode/index.js\n// module id = 5\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/object-assign/index.js\n// module id = 6\n// module chunks = 0","// @flow\nimport type { Location as HistoryLocation } from 'history';\nimport type { Location, LocationOptions } from '../types';\n\nexport const packState = (\n location: Location,\n options: LocationOptions = {}\n): Location => {\n // eslint-disable-next-line no-unused-vars\n const { query, ...rest } = location;\n return {\n ...rest,\n state: {\n ...rest.state || {},\n\n // Namespace our state to prevent interference\n // with user-provided state\n reduxLittleRouter: {\n query: query || {},\n options\n }\n }\n };\n};\n\nexport const unpackState = (location: HistoryLocation) => {\n const { state = {}, ...restLocation } = location;\n const { reduxLittleRouter = {}, ...restState } = state;\n const { query = {}, options = {} } = reduxLittleRouter;\n\n return {\n ...restLocation,\n state: restState,\n query,\n options\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/location-state.js","// @flow\nimport createBrowserHistory from 'history/createBrowserHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype BrowserRouterArgs = {\n routes: Object,\n basename: string,\n getLocation: () => Location,\n passRouterStateToReducer?: bool\n};\n\n/* istanbul ignore next: unstubbable! */\nconst realLocation = () => window.location;\n\nexport default ({\n routes,\n basename,\n getLocation = realLocation\n}: BrowserRouterArgs) => {\n const history = createBrowserHistory({ basename });\n\n const { pathname: fullPathname, search } = getLocation();\n\n // Strip the basename from the initial pathname\n const pathname = basename\n ? fullPathname.replace(basename, '')\n : fullPathname;\n\n const descriptor = basename\n ? { pathname, basename, search }\n : { pathname, search };\n\n const location = normalizeHref(descriptor);\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/browser-router.js","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = (0, _DOMUtils.supportsHistory)();\n var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n if (basename) path = (0, _PathUtils.stripPrefix)(path, basename);\n\n return _extends({}, (0, _PathUtils.parsePath)(path), {\n state: state,\n key: key\n });\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + (0, _PathUtils.createPath)(location);\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createBrowserHistory.js\n// module id = 9\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/warning/browser.js\n// module id = 10\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/node-libs-browser/~/process/browser.js\n// module id = 11\n// module chunks = 0","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/invariant/browser.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\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 _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = (0, _PathUtils.parsePath)(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/LocationUtils.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar isAbsolute = function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n};\n\n// About 1.5x faster than the two-arg version of Array#splice()\nvar spliceOne = function spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }list.pop();\n};\n\n// This implementation is based heavily on node's url.parse\nvar resolvePathname = function resolvePathname(to) {\n var from = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n};\n\nmodule.exports = resolvePathname;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/resolve-pathname/index.js\n// module id = 14\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar valueEqual = function valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) return false;\n\n return a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n};\n\nexports.default = valueEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/value-equal/index.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar stripPrefix = exports.stripPrefix = function stripPrefix(path, prefix) {\n return path.indexOf(prefix) === 0 ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n pathname = decodeURI(pathname);\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = encodeURI(pathname || '/');\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/PathUtils.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexports.default = createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createTransitionManager.js\n// module id = 17\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/DOMUtils.js\n// module id = 18\n// module chunks = 0","// @flow\nimport type { History } from 'history';\nimport type { Location } from './types';\n\nimport reducer from './reducer';\nimport middleware from './middleware';\nimport enhancer from './enhancer';\n\nimport { default as matcherFactory } from './util/create-matcher';\nimport validateRoutes from './util/validate-routes';\nimport flattenRoutes from './util/flatten-routes';\n\ntype InstallArgs = {\n routes: Object,\n history: History,\n location: Location,\n createMatcher?: Function\n};\n\nexport default ({\n routes: nestedRoutes,\n history,\n location,\n createMatcher = matcherFactory\n}: InstallArgs) => {\n validateRoutes(nestedRoutes);\n const routes = flattenRoutes(nestedRoutes);\n\n const matchRoute = createMatcher(routes);\n const matchWildcardRoute = createMatcher(routes, true);\n\n return {\n reducer: reducer({\n ...location,\n ...matchRoute(location.pathname)\n }),\n middleware: middleware({ history }),\n enhancer: enhancer({\n routes,\n history,\n matchRoute,\n matchWildcardRoute\n })\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./install.js","// @flow\nimport type { Location, LocationOptions, LocationAction } from './types';\n\nimport { LOCATION_CHANGED } from './types';\n\nconst flow = (...funcs: Array) =>\n funcs.reduce((prev, curr) => (...args) => curr(prev(...args)));\n\ntype ResolverArgs = {\n oldLocation: Location,\n newLocation: Location,\n options: LocationOptions\n};\n\nconst resolveQuery = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => {\n const { query: oldQuery, search: oldSearch } = oldLocation;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n options.persistQuery &&\n oldQuery &&\n !newLocation.search &&\n !newLocation.query\n ) {\n return {\n oldLocation,\n newLocation: {\n ...newLocation,\n query: oldQuery,\n search: oldSearch\n },\n options\n };\n }\n\n return { oldLocation, newLocation, options };\n};\n\nconst resolveBasename = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => {\n const { basename } = oldLocation;\n if (basename) {\n return {\n oldLocation,\n newLocation: { basename, ...newLocation },\n options\n };\n }\n return { oldLocation, newLocation, options };\n};\n\nconst resolvePrevious = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => ({\n oldLocation,\n newLocation: {\n ...newLocation,\n previous: oldLocation\n },\n options\n});\n\nexport default\n (initialLocation: Location) =>\n (state: Location = initialLocation, action: LocationAction) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (\n state.pathname === action.payload.pathname &&\n state.search === action.payload.search\n ) {\n return state;\n }\n\n // Extract the previous state, but dump the\n // previous state's previous state so that the\n // state tree doesn't keep growing indefinitely\n // eslint-disable-next-line no-unused-vars\n const { previous, ...oldLocation } = state;\n const { options } = action.payload;\n\n const resolveLocation = flow(\n resolveQuery,\n resolveBasename,\n resolvePrevious\n );\n\n return resolveLocation({\n oldLocation,\n newLocation: action.payload,\n options: options || {}\n }).newLocation;\n }\n return state;\n };\n\n\n\n// WEBPACK FOOTER //\n// ./reducer.js","/* eslint-disable consistent-return */\n// @flow\n\nimport type { History } from 'history';\nimport type { Dispatch } from 'redux';\nimport type { RouterAction } from './types';\n\nimport {\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './types';\n\ntype MiddlewareArgs = { history: History };\nexport default\n ({ history }: MiddlewareArgs) => () =>\n (next: Dispatch<*>) =>\n (action: RouterAction) => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n // No return, no next() here\n // We stop all history events from progressing further through the dispatch chain...\n break;\n case REPLACE:\n history.replace(action.payload);\n break;\n case GO:\n history.go(action.payload);\n break;\n case GO_BACK:\n history.goBack();\n break;\n case GO_FORWARD:\n history.goForward();\n break;\n default:\n // ...but we want to leave all events we don't care about undisturbed\n return next(action);\n }\n };\n\n\n\n// WEBPACK FOOTER //\n// ./middleware.js","// @flow\n\nimport type { StoreCreator, Reducer, StoreEnhancer } from 'redux';\nimport type { History } from 'history';\n\nimport { locationDidChange } from './actions';\n\nimport { unpackState } from './util/location-state';\nimport matchCache from './util/match-cache';\n\ntype EnhancerArgs = {\n routes: Object,\n history: History,\n matchRoute: Function,\n matchWildcardRoute: Function\n};\nexport default ({\n routes,\n history,\n matchRoute,\n matchWildcardRoute\n}: EnhancerArgs) =>\n(createStore: StoreCreator<*, *>) => (\n userReducer: Reducer<*, *>,\n initialState: Location,\n enhancer: StoreEnhancer<*, *>\n) => {\n const store = createStore(\n userReducer,\n initialState,\n enhancer\n );\n\n history.listen(location => {\n matchCache.clear();\n store.dispatch(locationDidChange({\n ...unpackState(location),\n ...matchRoute(location.pathname)\n }));\n });\n\n return {\n ...store,\n routes,\n matchRoute,\n matchWildcardRoute\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./enhancer.js","// @flow\n\nconst ROUTE_FALLBACK = '@ROUTE_FALLBACK';\n\nexport class MatchCache {\n _data: { [parentId: string]: string };\n constructor() {\n this._data = {};\n }\n\n add(parentId: string, route: ?string) : void {\n this._data[parentId] = route || ROUTE_FALLBACK;\n }\n\n get(parentId: string) : null | string {\n return this._data[parentId] || null;\n }\n\n clear() : void {\n this._data = {};\n }\n}\n\nexport default new MatchCache();\n\n\n\n// WEBPACK FOOTER //\n// ./util/match-cache.js","// @flow\nimport UrlPattern from 'url-pattern';\n\ntype RouteCache = {\n route: string,\n pattern: UrlPattern,\n result: Object\n};\n\nconst find = (list, predicate) => {\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n if (predicate(item)) {\n return item;\n }\n }\n return null;\n};\n\nconst wildcardMatcher = (routeList: Array) =>\n (incomingUrl: string, routeToMatch: string = '') => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n const storedRoute = find(routeList, route =>\n route.route === routeToMatch\n );\n\n if (!storedRoute) { return null; }\n\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n\n return null;\n };\n\nconst eagerMatcher = (routeList: Array) =>\n (incomingUrl: string) => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n\nexport default (routes: Object, wildcard: bool = false) => {\n const routeList = Object.keys(routes)\n .sort().reverse().map(route => ({\n route,\n pattern: new UrlPattern(\n // Prepend with wildcards if requested\n `${route}${wildcard && '*' || ''}`\n ),\n result: routes[route]\n }));\n\n return wildcard\n ? wildcardMatcher(routeList)\n : eagerMatcher(routeList);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/create-matcher.js","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/url-pattern/lib/url-pattern.js\n// module id = 25\n// module chunks = 0","module.exports = __webpack_amd_options__;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/webpack/buildin/amd-options.js\n// module id = 26\n// module chunks = 0","// @flow\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\nexport default (routes: Object) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (\n !Object.keys(routes)\n .every(route => route.indexOf('/') === 0)\n ) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/validate-routes.js","// @flow\nimport assign from 'lodash.assign';\n\nconst filterObject = (target, predicate) =>\n Object.keys(target).reduce((acc, key) => {\n return predicate(key)\n ? { ...acc, [key]: target[key] }\n : acc;\n }, {});\n\nconst mapObject = (target, transformKey, transformValue) =>\n Object.keys(target).reduce((acc, key) => {\n const newKey = transformKey ?\n transformKey(key) : key;\n const newValue = transformValue ?\n transformValue(target[key]) : target[key];\n return { ...acc, [newKey]: newValue };\n }, {});\n\nconst onlyRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') === 0);\n\nconst withoutRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') !== 0);\n\nconst flattenRoutes = (routes: Object, acc: Object = {}) => {\n Object.keys(routes).forEach(key => {\n const baseRoute = key === '/' ? '' : key;\n flattenRoutes(\n mapObject(\n onlyRoutes(routes[key]),\n routeKey => `${baseRoute}${routeKey}`,\n routeValue => ({\n ...routeValue,\n parent: {\n ...withoutRoutes(routes[key]),\n route: key\n }\n })\n ),\n acc\n );\n });\n\n assign(acc, mapObject(routes, null, withoutRoutes));\n\n return acc;\n};\n\nexport default flattenRoutes;\n\n\n\n// WEBPACK FOOTER //\n// ./util/flatten-routes.js","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash.assign/index.js\n// module id = 29\n// module chunks = 0","// @flow\nimport createMemoryHistory from 'history/createMemoryHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n baseUrl: string,\n url: string,\n query: {[key: string]: string}\n },\n passRouterStateToReducer?: bool\n};\n\nconst locationForRequest = request => {\n const { path: pathname, baseUrl: basename, query } = request;\n const descriptor = basename\n ? { pathname, basename, query }\n : { pathname, query };\n return normalizeHref(descriptor);\n};\n\nexport default ({ routes, request }: ServerRouterArgs) => {\n const history = createMemoryHistory();\n const location = locationForRequest(request);\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/express-router.js","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n });\n\n // Public interface\n\n var createHref = _PathUtils.createPath;\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createMemoryHistory.js\n// module id = 31\n// module chunks = 0","// @flow\nimport createMemoryHistory from 'history/createMemoryHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n url: string,\n query: { [key: string]: string }\n }\n};\n\nexport default ({\n routes,\n request\n}: ServerRouterArgs) => {\n const history = createMemoryHistory();\n\n const location = normalizeHref({\n pathname: request.path,\n query: request.query\n });\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/hapi-router.js","// @flow\nimport type { Store } from 'redux';\n\nimport React, {\n Component,\n PropTypes,\n cloneElement\n} from 'react';\n\nimport { connect } from 'react-redux';\n\nexport type StoreWithRouter = Store & {\n routes: Object\n};\n\nexport type RouterContext = { store: Store<*, *> };\n\ntype Props = {\n store: StoreWithRouter<*, *>,\n children: React.Element<*>\n};\n\nclass RouterProviderImpl extends Component {\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n router: { store: StoreWithRouter<*, *> };\n\n render() {\n const { store } = this.router;\n const routerState = store.getState().router;\n\n // Ensure that the router props from connect()\n // actually get to the child component(s)\n return cloneElement(this.props.children, {\n router: {\n ...routerState,\n\n // This is a hack to allow routes to define\n // unserializable things like components\n result: store.routes[routerState.route]\n }\n });\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: StoreWithRouter<*, *>\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n// WEBPACK FOOTER //\n// ./components/provider.js","module.exports = __WEBPACK_EXTERNAL_MODULE_34__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 34\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.connectAdvanced = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connectAdvanced = require('./components/connectAdvanced');\n\nvar _connectAdvanced2 = _interopRequireDefault(_connectAdvanced);\n\nvar _connect = require('./connect/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Provider = _Provider2.default;\nexports.connectAdvanced = _connectAdvanced2.default;\nexports.connect = _connect2.default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/index.js\n// module id = 35\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = undefined;\n\nvar _react = require('react');\n\nvar _PropTypes = require('../utils/PropTypes');\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\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 didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2.default)(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store, storeSubscription: null };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n return _react.Children.only(this.props.children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports.default = Provider;\n\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _PropTypes.storeShape.isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _PropTypes.storeShape.isRequired,\n storeSubscription: _PropTypes.subscriptionShape\n};\nProvider.displayName = 'Provider';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/components/Provider.js\n// module id = 36\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.storeShape = exports.subscriptionShape = undefined;\n\nvar _react = require('react');\n\nvar subscriptionShape = exports.subscriptionShape = _react.PropTypes.shape({\n trySubscribe: _react.PropTypes.func.isRequired,\n tryUnsubscribe: _react.PropTypes.func.isRequired,\n notifyNestedSubs: _react.PropTypes.func.isRequired,\n isSubscribed: _react.PropTypes.func.isRequired\n});\n\nvar storeShape = exports.storeShape = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/PropTypes.js\n// module id = 37\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/warning.js\n// module id = 38\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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.default = connectAdvanced;\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _react = require('react');\n\nvar _Subscription = require('../utils/Subscription');\n\nvar _Subscription2 = _interopRequireDefault(_Subscription);\n\nvar _PropTypes = require('../utils/PropTypes');\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\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\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\nvar hotReloadingVersion = 0;\nvar dummyState = {};\nfunction noop() {}\nfunction makeSelectorStateful(sourceSelector, store) {\n // wrap the selector in an object that tracks its results between runs.\n var selector = {\n run: function runComponentSelector(props) {\n try {\n var nextProps = sourceSelector(store.getState(), props);\n if (nextProps !== selector.props || selector.error) {\n selector.shouldComponentUpdate = true;\n selector.props = nextProps;\n selector.error = null;\n }\n } catch (error) {\n selector.shouldComponentUpdate = true;\n selector.error = error;\n }\n }\n };\n\n return selector;\n}\n\nfunction connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory) {\n var _contextTypes, _childContextTypes;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$getDisplayName = _ref.getDisplayName,\n getDisplayName = _ref$getDisplayName === undefined ? function (name) {\n return 'ConnectAdvanced(' + name + ')';\n } : _ref$getDisplayName,\n _ref$methodName = _ref.methodName,\n methodName = _ref$methodName === undefined ? 'connectAdvanced' : _ref$methodName,\n _ref$renderCountProp = _ref.renderCountProp,\n renderCountProp = _ref$renderCountProp === undefined ? undefined : _ref$renderCountProp,\n _ref$shouldHandleStat = _ref.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref$shouldHandleStat === undefined ? true : _ref$shouldHandleStat,\n _ref$storeKey = _ref.storeKey,\n storeKey = _ref$storeKey === undefined ? 'store' : _ref$storeKey,\n _ref$withRef = _ref.withRef,\n withRef = _ref$withRef === undefined ? false : _ref$withRef,\n connectOptions = _objectWithoutProperties(_ref, ['getDisplayName', 'methodName', 'renderCountProp', 'shouldHandleStateChanges', 'storeKey', 'withRef']);\n\n var subscriptionKey = storeKey + 'Subscription';\n var version = hotReloadingVersion++;\n\n var contextTypes = (_contextTypes = {}, _contextTypes[storeKey] = _PropTypes.storeShape, _contextTypes[subscriptionKey] = _PropTypes.subscriptionShape, _contextTypes);\n var childContextTypes = (_childContextTypes = {}, _childContextTypes[subscriptionKey] = _PropTypes.subscriptionShape, _childContextTypes);\n\n return function wrapWithConnect(WrappedComponent) {\n (0, _invariant2.default)(typeof WrappedComponent == 'function', 'You must pass a component to the function returned by ' + ('connect. Instead received ' + JSON.stringify(WrappedComponent)));\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n withRef: withRef,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.state = {};\n _this.renderCount = 0;\n _this.store = props[storeKey] || context[storeKey];\n _this.propsMode = Boolean(props[storeKey]);\n _this.setWrappedInstance = _this.setWrappedInstance.bind(_this);\n\n (0, _invariant2.default)(_this.store, 'Could not find \"' + storeKey + '\" in either the context or props of ' + ('\"' + displayName + '\". Either wrap the root component in a , ') + ('or explicitly pass \"' + storeKey + '\" as a prop to \"' + displayName + '\".'));\n\n _this.initSelector();\n _this.initSubscription();\n return _this;\n }\n\n Connect.prototype.getChildContext = function getChildContext() {\n var _ref2;\n\n // If this component received store from props, its subscription should be transparent\n // to any descendants receiving store+subscription from context; it passes along\n // subscription passed to it. Otherwise, it shadows the parent subscription, which allows\n // Connect to control ordering of notifications to flow top-down.\n var subscription = this.propsMode ? null : this.subscription;\n return _ref2 = {}, _ref2[subscriptionKey] = subscription || this.context[subscriptionKey], _ref2;\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n if (!shouldHandleStateChanges) return;\n\n // componentWillMount fires during server side rendering, but componentDidMount and\n // componentWillUnmount do not. Because of this, trySubscribe happens during ...didMount.\n // Otherwise, unsubscription would never take place during SSR, causing a memory leak.\n // To handle the case where a child component may have triggered a state change by\n // dispatching an action in its componentWillMount, we have to re-run the select and maybe\n // re-render.\n this.subscription.trySubscribe();\n this.selector.run(this.props);\n if (this.selector.shouldComponentUpdate) this.forceUpdate();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n this.selector.run(nextProps);\n };\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return this.selector.shouldComponentUpdate;\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.subscription) this.subscription.tryUnsubscribe();\n this.subscription = null;\n this.notifyNestedSubs = noop;\n this.store = null;\n this.selector.run = noop;\n this.selector.shouldComponentUpdate = false;\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2.default)(withRef, 'To access the wrapped instance, you need to specify ' + ('{ withRef: true } in the options argument of the ' + methodName + '() call.'));\n return this.wrappedInstance;\n };\n\n Connect.prototype.setWrappedInstance = function setWrappedInstance(ref) {\n this.wrappedInstance = ref;\n };\n\n Connect.prototype.initSelector = function initSelector() {\n var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions);\n this.selector = makeSelectorStateful(sourceSelector, this.store);\n this.selector.run(this.props);\n };\n\n Connect.prototype.initSubscription = function initSubscription() {\n if (!shouldHandleStateChanges) return;\n\n // parentSub's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey];\n this.subscription = new _Subscription2.default(this.store, parentSub, this.onStateChange.bind(this));\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `this.subscription` will then be null. An\n // extra null check every change can be avoided by copying the method onto `this` and then\n // replacing it with a no-op on unmount. This can probably be avoided if Subscription's\n // listeners logic is changed to not call listeners that have been unsubscribed in the\n // middle of the notification loop.\n this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription);\n };\n\n Connect.prototype.onStateChange = function onStateChange() {\n this.selector.run(this.props);\n\n if (!this.selector.shouldComponentUpdate) {\n this.notifyNestedSubs();\n } else {\n this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate;\n this.setState(dummyState);\n }\n };\n\n Connect.prototype.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() {\n // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it\n // needs to notify nested subs. Once called, it unimplements itself until further state\n // changes occur. Doing it this way vs having a permanent `componentDidMount` that does\n // a boolean check every time avoids an extra method call most of the time, resulting\n // in some perf boost.\n this.componentDidUpdate = undefined;\n this.notifyNestedSubs();\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return Boolean(this.subscription) && this.subscription.isSubscribed();\n };\n\n Connect.prototype.addExtraProps = function addExtraProps(props) {\n if (!withRef && !renderCountProp && !(this.propsMode && this.subscription)) return props;\n // make a shallow copy so that fields added don't leak to the original selector.\n // this is especially important for 'ref' since that's a reference back to the component\n // instance. a singleton memoized selector would then be holding a reference to the\n // instance, preventing the instance from being garbage collected, and that would be bad\n var withExtras = _extends({}, props);\n if (withRef) withExtras.ref = this.setWrappedInstance;\n if (renderCountProp) withExtras[renderCountProp] = this.renderCount++;\n if (this.propsMode && this.subscription) withExtras[subscriptionKey] = this.subscription;\n return withExtras;\n };\n\n Connect.prototype.render = function render() {\n var selector = this.selector;\n selector.shouldComponentUpdate = false;\n\n if (selector.error) {\n throw selector.error;\n } else {\n return (0, _react.createElement)(WrappedComponent, this.addExtraProps(selector.props));\n }\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n Connect.childContextTypes = childContextTypes;\n Connect.contextTypes = contextTypes;\n Connect.propTypes = contextTypes;\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n // We are hot reloading!\n if (this.version !== version) {\n this.version = version;\n this.initSelector();\n\n if (this.subscription) this.subscription.tryUnsubscribe();\n this.initSubscription();\n if (shouldHandleStateChanges) this.subscription.trySubscribe();\n }\n };\n }\n\n return (0, _hoistNonReactStatics2.default)(Connect, WrappedComponent);\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/components/connectAdvanced.js\n// module id = 39\n// module chunks = 0","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/hoist-non-react-statics/index.js\n// module id = 40\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar CLEARED = null;\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n // the current/next pattern is copied from redux's createStore code.\n // TODO: refactor+expose that code to be reusable here?\n var current = [];\n var next = [];\n\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) next = current.slice();\n next.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed || current === CLEARED) return;\n isSubscribed = false;\n\n if (next === current) next = current.slice();\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n}\n\nvar Subscription = function () {\n function Subscription(store, parentSub, onStateChange) {\n _classCallCheck(this, Subscription);\n\n this.store = store;\n this.parentSub = parentSub;\n this.onStateChange = onStateChange;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n }\n\n Subscription.prototype.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n Subscription.prototype.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n Subscription.prototype.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n Subscription.prototype.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange);\n\n this.listeners = createListenerCollection();\n }\n };\n\n Subscription.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexports.default = Subscription;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/Subscription.js\n// module id = 41\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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.createConnect = createConnect;\n\nvar _connectAdvanced = require('../components/connectAdvanced');\n\nvar _connectAdvanced2 = _interopRequireDefault(_connectAdvanced);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _mapDispatchToProps = require('./mapDispatchToProps');\n\nvar _mapDispatchToProps2 = _interopRequireDefault(_mapDispatchToProps);\n\nvar _mapStateToProps = require('./mapStateToProps');\n\nvar _mapStateToProps2 = _interopRequireDefault(_mapStateToProps);\n\nvar _mergeProps = require('./mergeProps');\n\nvar _mergeProps2 = _interopRequireDefault(_mergeProps);\n\nvar _selectorFactory = require('./selectorFactory');\n\nvar _selectorFactory2 = _interopRequireDefault(_selectorFactory);\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\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error('Invalid value of type ' + typeof arg + ' for ' + name + ' argument when connecting component ' + options.wrappedComponentName + '.');\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n\n// createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\nfunction createConnect() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === undefined ? _connectAdvanced2.default : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === undefined ? _mapStateToProps2.default : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === undefined ? _mapDispatchToProps2.default : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === undefined ? _mergeProps2.default : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === undefined ? _selectorFactory2.default : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref2$pure = _ref2.pure,\n pure = _ref2$pure === undefined ? true : _ref2$pure,\n _ref2$areStatesEqual = _ref2.areStatesEqual,\n areStatesEqual = _ref2$areStatesEqual === undefined ? strictEqual : _ref2$areStatesEqual,\n _ref2$areOwnPropsEqua = _ref2.areOwnPropsEqual,\n areOwnPropsEqual = _ref2$areOwnPropsEqua === undefined ? _shallowEqual2.default : _ref2$areOwnPropsEqua,\n _ref2$areStatePropsEq = _ref2.areStatePropsEqual,\n areStatePropsEqual = _ref2$areStatePropsEq === undefined ? _shallowEqual2.default : _ref2$areStatePropsEq,\n _ref2$areMergedPropsE = _ref2.areMergedPropsEqual,\n areMergedPropsEqual = _ref2$areMergedPropsE === undefined ? _shallowEqual2.default : _ref2$areMergedPropsE,\n extraOptions = _objectWithoutProperties(_ref2, ['pure', 'areStatesEqual', 'areOwnPropsEqual', 'areStatePropsEqual', 'areMergedPropsEqual']);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return 'Connect(' + name + ')';\n },\n\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n\n }, extraOptions));\n };\n}\n\nexports.default = createConnect();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/connect.js\n// module id = 42\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = shallowEqual;\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/shallowEqual.js\n// module id = 43\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.whenMapDispatchToPropsIsFunction = whenMapDispatchToPropsIsFunction;\nexports.whenMapDispatchToPropsIsMissing = whenMapDispatchToPropsIsMissing;\nexports.whenMapDispatchToPropsIsObject = whenMapDispatchToPropsIsObject;\n\nvar _redux = require('redux');\n\nvar _wrapMapToProps = require('./wrapMapToProps');\n\nfunction whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\n\nfunction whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) {\n return { dispatch: dispatch };\n }) : undefined;\n}\n\nfunction whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) {\n return (0, _redux.bindActionCreators)(mapDispatchToProps, dispatch);\n }) : undefined;\n}\n\nexports.default = [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/mapDispatchToProps.js\n// module id = 44\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2['default'];\nexports.combineReducers = _combineReducers2['default'];\nexports.bindActionCreators = _bindActionCreators2['default'];\nexports.applyMiddleware = _applyMiddleware2['default'];\nexports.compose = _compose2['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/index.js\n// module id = 45\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/createStore.js\n// module id = 46\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/isPlainObject.js\n// module id = 47\n// module chunks = 0","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_baseGetTag.js\n// module id = 48\n// module chunks = 0","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_Symbol.js\n// module id = 49\n// module chunks = 0","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_root.js\n// module id = 50\n// module chunks = 0","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_freeGlobal.js\n// module id = 51\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_getRawTag.js\n// module id = 52\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_objectToString.js\n// module id = 53\n// module chunks = 0","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_getPrototype.js\n// module id = 54\n// module chunks = 0","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_overArg.js\n// module id = 55\n// module chunks = 0","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/isObjectLike.js\n// module id = 56\n// module chunks = 0","module.exports = require('./lib/index');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/index.js\n// module id = 57\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ponyfill = require('./ponyfill');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root; /* global window */\n\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/lib/index.js\n// module id = 58\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/webpack/buildin/module.js\n// module id = 59\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/lib/ponyfill.js\n// module id = 60\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2['default'])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n (0, _warning2['default'])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/combineReducers.js\n// module id = 61\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/utils/warning.js\n// module id = 62\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/bindActionCreators.js\n// module id = 63\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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['default'] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/applyMiddleware.js\n// module id = 64\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/compose.js\n// module id = 65\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.wrapMapToPropsConstant = wrapMapToPropsConstant;\nexports.getDependsOnOwnProps = getDependsOnOwnProps;\nexports.wrapMapToPropsFunc = wrapMapToPropsFunc;\n\nvar _verifyPlainObject = require('../utils/verifyPlainObject');\n\nvar _verifyPlainObject2 = _interopRequireDefault(_verifyPlainObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n}\n\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n// \n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\nfunction getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n}\n\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n// \n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n// \n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n// \n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n// \nfunction wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n };\n\n // allow detectFactoryAndVerify to get ownProps\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject2.default)(props, displayName, methodName);\n\n return props;\n };\n\n return proxy;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/wrapMapToProps.js\n// module id = 66\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = verifyPlainObject;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction verifyPlainObject(value, displayName, methodName) {\n if (!(0, _isPlainObject2.default)(value)) {\n (0, _warning2.default)(methodName + '() in ' + displayName + ' must return a plain object. Instead received ' + value + '.');\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/verifyPlainObject.js\n// module id = 67\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.whenMapStateToPropsIsFunction = whenMapStateToPropsIsFunction;\nexports.whenMapStateToPropsIsMissing = whenMapStateToPropsIsMissing;\n\nvar _wrapMapToProps = require('./wrapMapToProps');\n\nfunction whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapStateToProps, 'mapStateToProps') : undefined;\n}\n\nfunction whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function () {\n return {};\n }) : undefined;\n}\n\nexports.default = [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/mapStateToProps.js\n// module id = 68\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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.defaultMergeProps = defaultMergeProps;\nexports.wrapMergePropsFunc = wrapMergePropsFunc;\nexports.whenMergePropsIsFunction = whenMergePropsIsFunction;\nexports.whenMergePropsIsOmitted = whenMergePropsIsOmitted;\n\nvar _verifyPlainObject = require('../utils/verifyPlainObject');\n\nvar _verifyPlainObject2 = _interopRequireDefault(_verifyPlainObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\n\nfunction wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n\n var hasRunOnce = false;\n var mergedProps = void 0;\n\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n\n if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject2.default)(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\n\nfunction whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\n\nfunction whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\n\nexports.default = [whenMergePropsIsFunction, whenMergePropsIsOmitted];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/mergeProps.js\n// module id = 69\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.impureFinalPropsSelectorFactory = impureFinalPropsSelectorFactory;\nexports.pureFinalPropsSelectorFactory = pureFinalPropsSelectorFactory;\nexports.default = finalPropsSelectorFactory;\n\nvar _verifySubselectors = require('./verifySubselectors');\n\nvar _verifySubselectors2 = _interopRequireDefault(_verifySubselectors);\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 impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\n\nfunction pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n\n var hasRunAtLeastOnce = false;\n var state = void 0;\n var ownProps = void 0;\n var stateProps = void 0;\n var dispatchProps = void 0;\n var mergedProps = void 0;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\n\n// TODO: Add more comments\n\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nfunction finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutProperties(_ref2, ['initMapStateToProps', 'initMapDispatchToProps', 'initMergeProps']);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _verifySubselectors2.default)(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/selectorFactory.js\n// module id = 70\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = verifySubselectors;\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction verify(selector, methodName, displayName) {\n if (!selector) {\n throw new Error('Unexpected value for ' + methodName + ' in ' + displayName + '.');\n } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') {\n if (!selector.hasOwnProperty('dependsOnOwnProps')) {\n (0, _warning2.default)('The selector for ' + methodName + ' of ' + displayName + ' did not specify a value for dependsOnOwnProps.');\n }\n }\n}\n\nfunction verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) {\n verify(mapStateToProps, 'mapStateToProps', displayName);\n verify(mapDispatchToProps, 'mapDispatchToProps', displayName);\n verify(mergeProps, 'mergeProps', displayName);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/verifySubselectors.js\n// module id = 71\n// module chunks = 0","// @flow\nimport type { Href } from '../types';\nimport type { RouterContext } from './provider';\n\nimport React, { Component, PropTypes } from 'react';\n\nimport { push, replace } from '../actions';\nimport normalizeHref from '../util/normalize-href';\nimport stringifyHref from '../util/stringify-href';\n\ntype Props = {\n children: React.Element<*>,\n className: string,\n href: Href,\n persistQuery: bool,\n replaceState: bool,\n target: string,\n onClick: EventHandler,\n style: Object\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst isNotLeftClick = e =>\n e.button && e.button !== LEFT_MOUSE_BUTTON;\n\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst shouldIgnoreClick = ({ e, target }) =>\n hasModifier(e) ||\n isNotLeftClick(e) ||\n e.defaultPrevented ||\n target; // let browser handle target=\"_blank\"\n\nconst handleClick = ({\n e,\n target,\n href,\n onClick,\n replaceState,\n persistQuery,\n store\n}) => {\n if (onClick) {\n onClick(e);\n }\n\n if (shouldIgnoreClick({ e, target })) {\n return;\n }\n\n e.preventDefault();\n\n const navigate = replaceState ? replace : push;\n store.dispatch(navigate(href, { persistQuery }));\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n href: rawHref,\n children,\n onClick,\n target,\n replaceState,\n persistQuery,\n ...rest\n } = props;\n\n const { store } = context.router;\n const { router: { basename } } = store.getState();\n\n // Ensure the href has both a search and a query when needed\n const href = normalizeHref(rawHref);\n\n const clickHandler = e => handleClick({\n e,\n target,\n href,\n onClick,\n replaceState,\n persistQuery,\n store\n });\n\n return (\n \n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n// WEBPACK FOOTER //\n// ./components/link.js","// @flow\nimport type { Href } from '../types';\n\nexport default (href: Href, basename: string) => {\n if (typeof href === 'string') {\n return `${basename || ''}${href}`;\n }\n\n const { pathname, search } = href;\n return `${basename || ''}${pathname}${search || ''}`;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/stringify-href.js","// @flow\nimport type { Location } from '../types';\n\nimport React, { Children, Component, PropTypes } from 'react';\nimport matchCache from '../util/match-cache';\nimport generateId from '../util/generate-id';\n\ntype Props = {\n location: Location,\n matchRoute: Function,\n forRoute?: string,\n withConditions?: (location: Location) => boolean,\n parentId?: string,\n children: React.Element<*>\n};\n\nconst relativePaths = (ComposedComponent: ReactClass<*>) => {\n class RelativeFragment extends Component {\n constructor() {\n super();\n this.id = generateId();\n }\n\n getChildContext() {\n const { parentRoute } = this.context;\n const { forRoute } = this.props;\n\n return {\n // Append the parent route if this isn't the first\n // RelativeFragment in the hierarchy.\n parentRoute: parentRoute &&\n parentRoute !== '/' &&\n parentRoute !== forRoute\n ? `${parentRoute}${forRoute || ''}`\n : forRoute,\n parentId: this.id\n };\n }\n\n props: Props;\n id: string;\n\n render() {\n const { children, forRoute, ...rest } = this.props;\n const { router, parentRoute, parentId } = this.context;\n const { store } = router;\n\n const location = store.getState().router;\n\n const routePrefix = parentRoute && parentRoute !== '/' ? parentRoute : '';\n\n return (\n \n );\n }\n }\n\n // Consumes this context...\n RelativeFragment.contextTypes = {\n router: PropTypes.object,\n parentRoute: PropTypes.string,\n parentId: PropTypes.string\n };\n\n // ...and provides this context.\n RelativeFragment.childContextTypes = {\n parentRoute: PropTypes.string,\n parentId: PropTypes.string\n };\n\n return RelativeFragment;\n};\n\nconst Fragment = (props: Props) => {\n const {\n location,\n matchRoute,\n forRoute,\n withConditions,\n children,\n parentId\n } = props;\n\n const matchResult = matchRoute(location.pathname, forRoute);\n\n if (\n !matchResult ||\n (withConditions && !withConditions(location)) ||\n (forRoute && matchResult.route !== forRoute)\n ) {\n return null;\n }\n\n if (parentId) {\n const previousMatch = matchCache.get(parentId);\n if (previousMatch && previousMatch !== forRoute) {\n return null;\n } else {\n matchCache.add(parentId, forRoute);\n }\n }\n\n return Children.only(children);\n};\n\nexport default relativePaths(Fragment);\n\n\n\n// WEBPACK FOOTER //\n// ./components/fragment.js","/**\n * Returns a psuedo-unique identifier used by fragments\n * to track match status within MatchCache.\n * @returns {String} id\n * @flow\n */\nexport default (): string => {\n const radix = 16;\n const length = 8;\n return (Math.random() * Date.now()).toString(radix).slice(0, length);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/generate-id.js"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/redux-little-router.min.js b/dist/redux-little-router.min.js index 8e552b99..7d5e72f9 100644 --- a/dist/redux-little-router.min.js +++ b/dist/redux-little-router.min.js @@ -1,8 +1,8 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports.ReduxLittleRouter=e(require("react")):t.ReduxLittleRouter=e(t.React)}(this,function(t){return function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return t[r].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.GO_BACK=e.GO_FORWARD=e.GO=e.REPLACE=e.PUSH=e.LOCATION_CHANGED=e.goForward=e.goBack=e.go=e.replace=e.push=e.Fragment=e.PersistentQueryLink=e.Link=e.RouterProvider=e.provideRouter=e.initializeCurrentLocation=e.routerForHapi=e.routerForExpress=e.routerForBrowser=void 0;var o=n(1),i=n(2),a=n(8),u=r(a),c=n(30),s=r(c),f=n(32),l=r(f),p=n(33),d=r(p),h=n(64),y=n(66),v=r(y);e.routerForBrowser=u.default,e.routerForExpress=s.default,e.routerForHapi=l.default,e.initializeCurrentLocation=i.initializeCurrentLocation,e.provideRouter=d.default,e.RouterProvider=p.RouterProvider,e.Link=h.Link,e.PersistentQueryLink=h.PersistentQueryLink,e.Fragment=v.default,e.push=i.push,e.replace=i.replace,e.go=i.go,e.goBack=i.goBack,e.goForward=i.goForward,e.LOCATION_CHANGED=o.LOCATION_CHANGED,e.PUSH=o.PUSH,e.REPLACE=o.REPLACE,e.GO=o.GO,e.GO_FORWARD=o.GO_FORWARD,e.GO_BACK=o.GO_BACK},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.LOCATION_CHANGED="ROUTER_LOCATION_CHANGED",e.PUSH="ROUTER_PUSH",e.REPLACE="ROUTER_REPLACE",e.GO="ROUTER_GO",e.GO_BACK="ROUTER_GO_BACK",e.GO_FORWARD="ROUTER_GO_FORWARD"},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.initializeCurrentLocation=e.locationDidChange=e.goForward=e.goBack=e.go=e.replace=e.push=void 0;var o=n(1),i=n(3),a=r(i),u=n(7);e.push=function(t,e){return{type:o.PUSH,payload:(0,u.packState)((0,a.default)(t),e)}},e.replace=function(t,e){return{type:o.REPLACE,payload:(0,u.packState)((0,a.default)(t),e)}},e.go=function(t){return{type:o.GO,payload:t}},e.goBack=function(){return{type:o.GO_BACK}},e.goForward=function(){return{type:o.GO_FORWARD}},e.locationDidChange=function(t){return{type:o.LOCATION_CHANGED,payload:t}},e.initializeCurrentLocation=function(t){return{type:o.LOCATION_CHANGED,payload:t}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=Object.assign||function(t){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{},o=t.query,i=n(t,["query"]);return r({},i,{state:r({},i.state||{},{reduxLittleRouter:{query:o||{},options:e}})})};e.packState=o;var i=function(t){var e=t.state,o=void 0===e?{}:e,i=n(t,["state"]),a=o.reduxLittleRouter,u=void 0===a?{}:a,c=n(o,["reduxLittleRouter"]),s=u.query,f=void 0===s?{}:s,l=u.options,p=void 0===l?{}:l;return r({},i,{state:c,query:f,options:p})};e.unpackState=i},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(9),i=r(o),a=n(3),u=r(a),c=n(19),s=r(c),f=function(){return window.location};e.default=function(t){var e=t.routes,n=t.basename,r=t.getLocation,o=void 0===r?f:r,a=(0,i.default)({basename:n}),c=o(),l=c.pathname,p=c.search,d=n?l.replace(n,""):l,h=n?{pathname:d,basename:n,search:p}:{pathname:d,search:p},y=(0,u.default)(h);return(0,s.default)({routes:e,history:a,location:y})}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};p.canUseDOM?void 0:(0,u.default)(!1);var e=window.history,n=(0,d.supportsHistory)(),r=!(0,d.supportsPopStateOnHashChange)(),i=t.basename,a=void 0===i?"":i,f=t.forceRefresh,g=void 0!==f&&f,b=t.getUserConfirmation,m=void 0===b?d.getConfirmation:b,O=t.keyLength,w=void 0===O?6:O,P=function(t){var e=t||{},n=e.key,r=e.state,i=window.location,u=i.pathname,c=i.search,f=i.hash,l=u+c+f;return a&&(l=(0,s.stripPrefix)(l,a)),o({},(0,s.parsePath)(l),{state:r,key:n})},_=function(){return Math.random().toString(36).substr(2,w)},j=(0,l.default)(),C=function(t){o(W,t),W.length=e.length,j.notifyListeners(W.location,W.action)},x=function(t){(0,d.isExtraneousPopstateEvent)(t)||R(P(t.state))},S=function(){R(P(v()))},E=!1,R=function(t){E?(E=!1,C()):!function(){var e="POP";j.confirmTransitionTo(t,e,m,function(n){n?C({action:e,location:t}):M(t)})}()},M=function(t){var e=W.location,n=T.indexOf(e.key);n===-1&&(n=0);var r=T.indexOf(t.key);r===-1&&(r=0);var o=n-r;o&&(E=!0,D(o))},A=P(v()),T=[A.key],k=function(t){return a+(0,s.createPath)(t)},L=function(t,r){var o="PUSH",i=(0,c.createLocation)(t,r,_(),W.location);j.confirmTransitionTo(i,o,m,function(t){if(t){var r=k(i),a=i.key,u=i.state;if(n)if(e.pushState({key:a,state:u},null,r),g)window.location.href=r;else{var c=T.indexOf(W.location.key),s=T.slice(0,c===-1?0:c+1);s.push(i.key),T=s,C({action:o,location:i})}else window.location.href=r}})},N=function(t,r){var o="REPLACE",i=(0,c.createLocation)(t,r,_(),W.location);j.confirmTransitionTo(i,o,m,function(t){if(t){var r=k(i),a=i.key,u=i.state;if(n)if(e.replaceState({key:a,state:u},null,r),g)window.location.replace(r);else{var c=T.indexOf(W.location.key);c!==-1&&(T[c]=i.key),C({action:o,location:i})}else window.location.replace(r)}})},D=function(t){e.go(t)},I=function(){return D(-1)},F=function(){return D(1)},U=0,G=function(t){U+=t,1===U?((0,d.addEventListener)(window,h,x),r&&(0,d.addEventListener)(window,y,S)):0===U&&((0,d.removeEventListener)(window,h,x),r&&(0,d.removeEventListener)(window,y,S))},q=!1,H=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=j.setPrompt(t);return q||(G(1),q=!0),function(){return q&&(q=!1,G(-1)),e()}},B=function(t){var e=j.appendListener(t);return G(1),function(){return G(-1),e()}},W={length:e.length,action:"POP",location:A,createHref:k,push:L,replace:N,go:D,goBack:I,goForward:F,block:H,listen:B};return W};e.default=g},function(t,e,n){"use strict";var r=function(){};t.exports=r},function(t,e,n){"use strict";var r=function(t,e,n,r,o,i,a,u){if(!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,o,i,a,u],f=0;c=new Error(e.replace(/%s/g,function(){return s[f++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}};t.exports=r},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0,e.locationsAreEqual=e.createLocation=void 0;var o=Object.assign||function(t){for(var e=1;e=0;p--){var d=i[p];"."===d?r(i,p):".."===d?(r(i,p),l++):l&&(r(i,p),l--)}if(!c)for(;l--;l)i.unshift("..");!c||""===i[0]||i[0]&&n(i[0])||i.unshift("");var h=i.join("/");return s&&"/"!==h.substr(-1)&&(h+="/"),h};t.exports=o},function(t,e){"use strict";e.__esModule=!0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function t(e,r){if(e===r)return!0;if(null==e||null==r)return!1;if(Array.isArray(e))return!(!Array.isArray(r)||e.length!==r.length)&&e.every(function(e,n){return t(e,r[n])});var o="undefined"==typeof e?"undefined":n(e),i="undefined"==typeof r?"undefined":n(r);if(o!==i)return!1;if("object"===o){var a=e.valueOf(),u=r.valueOf();if(a!==e||u!==r)return t(a,u);var c=Object.keys(e),s=Object.keys(r);return c.length===s.length&&c.every(function(n){return t(e[n],r[n])})}return!1};e.default=r},function(t,e){"use strict";e.__esModule=!0;e.addLeadingSlash=function(t){return"/"===t.charAt(0)?t:"/"+t},e.stripLeadingSlash=function(t){return"/"===t.charAt(0)?t.substr(1):t},e.stripPrefix=function(t,e){return 0===t.indexOf(e)?t.substr(e.length):t},e.parsePath=function(t){var e=t||"/",n="",r="",o=e.indexOf("#");o!==-1&&(r=e.substr(o),e=e.substr(0,o));var i=e.indexOf("?");return i!==-1&&(n=e.substr(i),e=e.substr(0,i)),{pathname:e,search:"?"===n?"":n,hash:"#"===r?"":r}},e.createPath=function(t){var e=t.pathname,n=t.search,r=t.hash,o=e||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=n(10),i=(r(o),function(){var t=null,e=function(e){return t=e,function(){t===e&&(t=null)}},n=function(e,n,r,o){if(null!=t){var i="function"==typeof t?t(e,n):t;"string"==typeof i?"function"==typeof r?r(i,o):o(!0):o(i!==!1)}else o(!0)},r=[],o=function(t){var e=!0,n=function(){e&&t.apply(void 0,arguments)};return r.push(n),function(){e=!1,r=r.filter(function(t){return t!==n})}},i=function(){for(var t=arguments.length,e=Array(t),n=0;n=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}Object.defineProperty(e,"__esModule",{value:!0});var o=Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:t,n=arguments[1];if(n.type===i.LOCATION_CHANGED){if(e.pathname===n.payload.pathname&&e.search===n.payload.search)return e;var o=(e.previous,r(e,["previous"])),f=n.payload.options,l=a(u,c,s);return l({oldLocation:o,newLocation:n.payload,options:f||{}}).newLocation}return e}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(1);e.default=function(t){var e=t.history;return function(){return function(t){return function(n){switch(n.type){case r.PUSH:e.push(n.payload);break;case r.REPLACE:e.replace(n.payload);break;case r.GO:e.go(n.payload);break;case r.GO_BACK:e.goBack();break;case r.GO_FORWARD:e.goForward();break;default:return t(n)}}}}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=Object.assign||function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:"",r=e.split("?")[0],o=a(t,function(t){return t.route===n});if(!o)return null;var i=o.pattern.match(r);return i?{route:o.route,params:i,result:o.result}:null}},c=function(t){return function(e){for(var n=e.split("?")[0],r=0;r1&&void 0!==arguments[1]&&arguments[1],n=Object.keys(t).sort().reverse().map(function(n){return{route:n,pattern:new i.default(""+n+(e&&"*"||"")),result:t[n]}});return e?u(n):c(n)}},function(t,e,n){var r,o,i,a=[].slice;!function(a,u){return null!=n(26)?(o=[],r=u,i="function"==typeof r?r.apply(e,o):r,!(void 0!==i&&(t.exports=i))):"undefined"!=typeof e&&null!==e?t.exports=u():a.UrlPattern=u()}(this,function(){var t,e,n,r,o,i,u,c,s,f,l,p,d,h,y;return s=function(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")},u=function(t,e){var n,r,o;for(o=[],n=-1,r=t.length;++ni))return a=Array.isArray(u)?u[o]:u,r&&(n[e]=o+1),a;if(r)throw new Error("too few values provided for key `"+e+"`")}else if(r)throw new Error("no values provided for key `"+e+"`")},n=function(t,e,r){var o,i;if(Array.isArray(t)){for(o=-1,i=t.length;++o1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).forEach(function(r){var o="/"===r?"":r;t(s(f(e[r]),function(t){return""+o+t},function(t){return i({},t,{parent:i({},l(e[r]),{route:r})})}),n)}),(0,u.default)(n,s(e,null,l)),n};e.default=p},function(t,e){function n(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function r(t,e){for(var n=-1,r=Array(t);++n1?n[o-1]:void 0,a=o>2?n[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,a&&p(n[0],n[1],a)&&(i=o<3?void 0:i,o=1),e=Object(e);++r-1&&t%1==0&&t-1&&t%1==0&&t<=_}function O(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function w(t){return!!t&&"object"==typeof t}function P(t){return v(t)?i(t):u(t)}var _=9007199254740991,j="[object Arguments]",C="[object Function]",x="[object GeneratorFunction]",S=/^(?:0|[1-9]\d*)$/,E=Object.prototype,R=E.hasOwnProperty,M=E.toString,A=E.propertyIsEnumerable,T=o(Object.keys,Object),k=Math.max,L=!A.call({valueOf:1},"valueOf"),N=Array.isArray,D=f(function(t,e){if(L||d(e)||v(e))return void s(e,P(e),t);for(var n in e)R.call(e,n)&&a(t,n,e[n])});t.exports=D},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(31),i=r(o),a=n(3),u=r(a),c=n(19),s=r(c),f=function(t){var e=t.path,n=t.baseUrl,r=t.query,o=n?{pathname:e,basename:n,query:r}:{pathname:e,query:r};return(0,u.default)(o)};e.default=function(t){var e=t.routes,n=t.request,r=(0,i.default)(),o=f(n);return(0,s.default)({routes:e,history:r,location:o})}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Object.assign||function(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{},e=t.getUserConfirmation,n=t.initialEntries,r=void 0===n?["/"]:n,i=t.initialIndex,c=void 0===i?0:i,l=t.keyLength,p=void 0===l?6:l,d=(0,s.default)(),h=function(t){o(S,t),S.length=S.entries.length,d.notifyListeners(S.location,S.action)},y=function(){return Math.random().toString(36).substr(2,p)},v=f(c,0,r.length-1),g=r.map(function(t,e){return"string"==typeof t?(0,u.createLocation)(t,void 0,e?y():void 0):(0,u.createLocation)(t,void 0,e?t.key||y():void 0)}),b=a.createPath,m=function(t,n){var r="PUSH",o=(0,u.createLocation)(t,n,y(),S.location);d.confirmTransitionTo(o,r,e,function(t){if(t){var e=S.index,n=e+1,i=S.entries.slice(0);i.length>n?i.splice(n,i.length-n,o):i.push(o),h({action:r,location:o,index:n,entries:i})}})},O=function(t,n){var r="REPLACE",o=(0,u.createLocation)(t,n,y(),S.location);d.confirmTransitionTo(o,r,e,function(t){t&&(S.entries[S.index]=o,h({action:r,location:o}))})},w=function(t){var n=f(S.index+t,0,S.entries.length-1),r="POP",o=S.entries[n];d.confirmTransitionTo(o,r,e,function(t){t?h({action:r,location:o,index:n}):h()})},P=function(){return w(-1)},_=function(){return w(1)},j=function(t){var e=S.index+t;return e>=0&&e0&&void 0!==arguments[0]&&arguments[0];return d.setPrompt(t)},x=function(t){return d.appendListener(t)},S={length:g.length,action:"POP",location:g[v],index:v,entries:g,createHref:b,push:m,replace:O,go:w,goBack:P,goForward:_,canGo:j,block:C,listen:x};return S};e.default=l},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(31),i=r(o),a=n(3),u=r(a),c=n(19),s=r(c);e.default=function(t){var e=t.routes,n=t.request,r=(0,i.default)(),o=(0,u.default)({pathname:n.path,query:n.query});return(0,s.default)({routes:e,history:r,location:o})}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0}),e.RouterProvider=void 0;var u=Object.assign||function(t){for(var e=1;e3&&void 0!==arguments[3]?arguments[3]:{},s=Boolean(t),p=t||j,h=void 0;h="function"==typeof e?e:e?(0,g.default)(e):C;var v=n||x,b=r.pure,m=void 0===b||b,O=r.withRef,P=void 0!==O&&O,R=m&&v!==x,M=E++;return function(t){function e(t,e,n){var r=v(t,e,n);return r}var n="Connect("+u(t)+")",r=function(r){function u(t,e){o(this,u);var a=i(this,r.call(this,t,e));a.version=M,a.store=t.store||e.store,(0,_.default)(a.store,'Could not find "store" in either the context or '+('props of "'+n+'". ')+"Either wrap the root component in a , "+('or explicitly pass "store" as a prop to "'+n+'".'));var c=a.store.getState();return a.state={storeState:c},a.clearCache(),a}return a(u,r),u.prototype.shouldComponentUpdate=function(){return!m||this.haveOwnPropsChanged||this.hasStoreStateChanged},u.prototype.computeStateProps=function(t,e){if(!this.finalMapStateToProps)return this.configureFinalMapState(t,e);var n=t.getState(),r=this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(n,e):this.finalMapStateToProps(n);return r},u.prototype.configureFinalMapState=function(t,e){var n=p(t.getState(),e),r="function"==typeof n;return this.finalMapStateToProps=r?n:p,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,r?this.computeStateProps(t,e):n},u.prototype.computeDispatchProps=function(t,e){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(t,e);var n=t.dispatch,r=this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(n,e):this.finalMapDispatchToProps(n);return r},u.prototype.configureFinalMapDispatch=function(t,e){var n=h(t.dispatch,e),r="function"==typeof n;return this.finalMapDispatchToProps=r?n:h,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,r?this.computeDispatchProps(t,e):n},u.prototype.updateStatePropsIfNeeded=function(){var t=this.computeStateProps(this.store,this.props);return(!this.stateProps||!(0,y.default)(t,this.stateProps))&&(this.stateProps=t,!0)},u.prototype.updateDispatchPropsIfNeeded=function(){var t=this.computeDispatchProps(this.store,this.props);return(!this.dispatchProps||!(0,y.default)(t,this.dispatchProps))&&(this.dispatchProps=t,!0)},u.prototype.updateMergedPropsIfNeeded=function(){var t=e(this.stateProps,this.dispatchProps,this.props);return!(this.mergedProps&&R&&(0,y.default)(t,this.mergedProps))&&(this.mergedProps=t,!0)},u.prototype.isSubscribed=function(){return"function"==typeof this.unsubscribe},u.prototype.trySubscribe=function(){s&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},u.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},u.prototype.componentDidMount=function(){this.trySubscribe()},u.prototype.componentWillReceiveProps=function(t){m&&(0,y.default)(t,this.props)||(this.haveOwnPropsChanged=!0)},u.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},u.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},u.prototype.handleChange=function(){if(this.unsubscribe){var t=this.store.getState(),e=this.state.storeState;if(!m||e!==t){if(m&&!this.doStatePropsDependOnOwnProps){var n=c(this.updateStatePropsIfNeeded,this);if(!n)return;n===S&&(this.statePropsPrecalculationError=S.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:t})}}},u.prototype.getWrappedInstance=function(){return(0,_.default)(P,"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call."),this.refs.wrappedInstance},u.prototype.render=function(){var e=this.haveOwnPropsChanged,n=this.hasStoreStateChanged,r=this.haveStatePropsBeenPrecalculated,o=this.statePropsPrecalculationError,i=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,o)throw o;var a=!0,u=!0;m&&i&&(a=n||e&&this.doStatePropsDependOnOwnProps,u=e&&this.doDispatchPropsDependOnOwnProps);var c=!1,s=!1;r?c=!0:a&&(c=this.updateStatePropsIfNeeded()),u&&(s=this.updateDispatchPropsIfNeeded());var p=!0;return p=!!(c||s||e)&&this.updateMergedPropsIfNeeded(),!p&&i?i:(P?this.renderedElement=(0,l.createElement)(t,f({},this.mergedProps,{ref:"wrappedInstance"})):this.renderedElement=(0,l.createElement)(t,this.mergedProps),this.renderedElement)},u}(l.Component);return r.displayName=n,r.WrappedComponent=t,r.contextTypes={store:d.default},r.propTypes={store:d.default},(0,w.default)(r,t)}}e.__esModule=!0;var f=Object.assign||function(t){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}Object.defineProperty(e,"__esModule",{value:!0}),e.PersistentQueryLink=e.Link=void 0;var c=function(){function t(t,e){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var c=Object.assign||function(t){for(var e=1;e=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},o=e.query,i=n(e,["query"]);return r({},i,{state:r({},i.state||{},{reduxLittleRouter:{query:o||{},options:t}})})};t.packState=o;var i=function(e){var t=e.state,o=void 0===t?{}:t,i=n(e,["state"]),a=o.reduxLittleRouter,u=void 0===a?{}:a,s=n(o,["reduxLittleRouter"]),c=u.query,f=void 0===c?{}:c,l=u.options,p=void 0===l?{}:l;return r({},i,{state:s,query:f,options:p})};t.unpackState=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(9),i=r(o),a=n(3),u=r(a),s=n(18),c=r(s),f=function(){return window.location};t.default=function(e){var t=e.routes,n=e.basename,r=e.getLocation,o=void 0===r?f:r,a=(0,i.default)({basename:n}),s=o(),l=s.pathname,p=s.search,d=n?l.replace(n,""):l,h=n?{pathname:d,basename:n,search:p}:{pathname:d,search:p},y=(0,u.default)(h);return(0,c.default)({routes:t,history:a,location:y})}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};(0,c.default)(h.canUseDOM,"Browser history needs a DOM");var t=window.history,n=(0,h.supportsHistory)(),r=!(0,h.supportsPopStateOnHashChange)(),a=e.forceRefresh,s=void 0!==a&&a,p=e.getUserConfirmation,g=void 0===p?h.getConfirmation:p,m=e.keyLength,O=void 0===m?6:m,w=e.basename?(0,l.stripTrailingSlash)((0,l.addLeadingSlash)(e.basename)):"",P=function(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname,u=o.search,s=o.hash,c=a+u+s;return w&&(c=(0,l.stripPrefix)(c,w)),i({},(0,l.parsePath)(c),{state:r,key:n})},_=function(){return Math.random().toString(36).substr(2,O)},j=(0,d.default)(),C=function(e){i(W,e),W.length=t.length,j.notifyListeners(W.location,W.action)},S=function(e){(0,h.isExtraneousPopstateEvent)(e)||M(P(e.state))},x=function(){M(P(b()))},E=!1,M=function(e){if(E)E=!1,C();else{var t="POP";j.confirmTransitionTo(e,t,g,function(n){n?C({action:t,location:e}):T(e)})}},T=function(e){var t=W.location,n=A.indexOf(t.key);n===-1&&(n=0);var r=A.indexOf(e.key);r===-1&&(r=0);var o=n-r;o&&(E=!0,I(o))},R=P(b()),A=[R.key],k=function(e){return w+(0,l.createPath)(e)},L=function(e,r){(0,u.default)(!("object"===("undefined"==typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var i="PUSH",a=(0,f.createLocation)(e,r,_(),W.location);j.confirmTransitionTo(a,i,g,function(e){if(e){var r=k(a),o=a.key,c=a.state;if(n)if(t.pushState({key:o,state:c},null,r),s)window.location.href=r;else{var f=A.indexOf(W.location.key),l=A.slice(0,f===-1?0:f+1);l.push(a.key),A=l,C({action:i,location:a})}else(0,u.default)(void 0===c,"Browser history cannot push state in browsers that do not support HTML5 history"),window.location.href=r}})},N=function(e,r){(0,u.default)(!("object"===("undefined"==typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==r),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var i="REPLACE",a=(0,f.createLocation)(e,r,_(),W.location);j.confirmTransitionTo(a,i,g,function(e){if(e){var r=k(a),o=a.key,c=a.state;if(n)if(t.replaceState({key:o,state:c},null,r),s)window.location.replace(r);else{var f=A.indexOf(W.location.key);f!==-1&&(A[f]=a.key),C({action:i,location:a})}else(0,u.default)(void 0===c,"Browser history cannot replace state in browsers that do not support HTML5 history"),window.location.replace(r)}})},I=function(e){t.go(e)},q=function(){return I(-1)},U=function(){return I(1)},F=0,D=function(e){F+=e,1===F?((0,h.addEventListener)(window,y,S),r&&(0,h.addEventListener)(window,v,x)):0===F&&((0,h.removeEventListener)(window,y,S),r&&(0,h.removeEventListener)(window,v,x))},G=!1,H=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=j.setPrompt(e);return G||(D(1),G=!0),function(){return G&&(G=!1,D(-1)),t()}},B=function(e){var t=j.appendListener(e);return D(1),function(){D(-1),t()}},W={length:t.length,action:"POP",location:R,createHref:k,push:L,replace:N,go:I,goBack:q,goForward:U,block:H,listen:B};return W};t.default=g},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){"use strict";var r=function(e,t,n,r,o,i,a,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,u],f=0;s=new Error(t.replace(/%s/g,function(){return c[f++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}};e.exports=r},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.locationsAreEqual=t.createLocation=void 0;var o=Object.assign||function(e){for(var t=1;t=0;p--){var d=i[p];"."===d?r(i,p):".."===d?(r(i,p),l++):l&&(r(i,p),l--)}if(!s)for(;l--;l)i.unshift("..");!s||""===i[0]||i[0]&&n(i[0])||i.unshift("");var h=i.join("/");return c&&"/"!==h.substr(-1)&&(h+="/"),h};e.exports=o},function(e,t){"use strict";t.__esModule=!0;var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function e(t,r){if(t===r)return!0;if(null==t||null==r)return!1;if(Array.isArray(t))return!(!Array.isArray(r)||t.length!==r.length)&&t.every(function(t,n){return e(t,r[n])});var o="undefined"==typeof t?"undefined":n(t),i="undefined"==typeof r?"undefined":n(r);if(o!==i)return!1;if("object"===o){var a=t.valueOf(),u=r.valueOf();if(a!==t||u!==r)return e(a,u);var s=Object.keys(t),c=Object.keys(r);return s.length===c.length&&s.every(function(n){return e(t[n],r[n])})}return!1};t.default=r},function(e,t){"use strict";t.__esModule=!0;t.addLeadingSlash=function(e){return"/"===e.charAt(0)?e:"/"+e},t.stripLeadingSlash=function(e){return"/"===e.charAt(0)?e.substr(1):e},t.stripPrefix=function(e,t){return 0===e.indexOf(t)?e.substr(t.length):e},t.stripTrailingSlash=function(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e},t.parsePath=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");o!==-1&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return i!==-1&&(n=t.substr(i),t=t.substr(0,i)),t=decodeURI(t),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}},t.createPath=function(e){var t=e.pathname,n=e.search,r=e.hash,o=encodeURI(t||"/");return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(10),i=r(o),a=function(){var e=null,t=function(t){return(0,i.default)(null==e,"A history supports only one prompt at a time"),e=t,function(){e===t&&(e=null)}},n=function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):((0,i.default)(!1,"A history needs a getUserConfirmation function in order to use a prompt message"),o(!0)):o(a!==!1)}else o(!0)},r=[],o=function(e){var t=!0,n=function(){t&&e.apply(void 0,arguments)};return r.push(n),function(){t=!1,r=r.filter(function(e){return e!==n})}},a=function(){for(var e=arguments.length,t=Array(e),n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:e,n=arguments[1];if(n.type===i.LOCATION_CHANGED){if(t.pathname===n.payload.pathname&&t.search===n.payload.search)return t;var o=(t.previous,r(t,["previous"])),f=n.payload.options,l=a(u,s,c);return l({oldLocation:o,newLocation:n.payload,options:f||{}}).newLocation}return t}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1);t.default=function(e){var t=e.history;return function(){return function(e){return function(n){switch(n.type){case r.PUSH:t.push(n.payload);break;case r.REPLACE:t.replace(n.payload);break;case r.GO:t.go(n.payload);break;case r.GO_BACK:t.goBack();break;case r.GO_FORWARD:t.goForward();break;default:return e(n)}}}}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:"",r=t.split("?")[0],o=a(e,function(e){return e.route===n});if(!o)return null;var i=o.pattern.match(r);return i?{route:o.route,params:i,result:o.result}:null}},s=function(e){return function(t){for(var n=t.split("?")[0],r=0;r1&&void 0!==arguments[1]&&arguments[1],n=Object.keys(e).sort().reverse().map(function(n){return{route:n,pattern:new i.default(""+n+(t&&"*"||"")),result:e[n]}});return t?u(n):s(n)}},function(e,t,n){var r,o,i,a=[].slice;!function(a,u){return null!=n(25)?(o=[],r=u,i="function"==typeof r?r.apply(t,o):r,!(void 0!==i&&(e.exports=i))):"undefined"!=typeof t&&null!==t?e.exports=u():a.UrlPattern=u()}(this,function(){var e,t,n,r,o,i,u,s,c,f,l,p,d,h,y;return c=function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")},u=function(e,t){var n,r,o;for(o=[],n=-1,r=e.length;++ni))return a=Array.isArray(u)?u[o]:u,r&&(n[t]=o+1),a;if(r)throw new Error("too few values provided for key `"+t+"`")}else if(r)throw new Error("no values provided for key `"+t+"`")},n=function(e,t,r){var o,i;if(Array.isArray(e)){for(o=-1,i=e.length;++o1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(t).forEach(function(r){var o="/"===r?"":r;e(c(f(t[r]),function(e){return""+o+e},function(e){return i({},e,{parent:i({},l(t[r]),{route:r})})}),n)}),(0,u.default)(n,c(t,null,l)),n};t.default=p},function(e,t){function n(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function r(e,t){for(var n=-1,r=Array(e);++n1?n[o-1]:void 0,a=o>2?n[2]:void 0;for(i=e.length>3&&"function"==typeof i?(o--,i):void 0,a&&p(n[0],n[1],a)&&(i=o<3?void 0:i,o=1),t=Object(t);++r-1&&e%1==0&&e-1&&e%1==0&&e<=_}function O(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function w(e){return!!e&&"object"==typeof e}function P(e){return v(e)?i(e):u(e)}var _=9007199254740991,j="[object Arguments]",C="[object Function]",S="[object GeneratorFunction]",x=/^(?:0|[1-9]\d*)$/,E=Object.prototype,M=E.hasOwnProperty,T=E.toString,R=E.propertyIsEnumerable,A=o(Object.keys,Object),k=Math.max,L=!R.call({valueOf:1},"valueOf"),N=Array.isArray,I=f(function(e,t){if(L||d(t)||v(t))return void c(t,P(t),e);for(var n in t)M.call(t,n)&&a(e,n,t[n])});e.exports=I},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(30),i=r(o),a=n(3),u=r(a),s=n(18),c=r(s),f=function(e){var t=e.path,n=e.baseUrl,r=e.query,o=n?{pathname:t,basename:n,query:r}:{pathname:t,query:r};return(0,u.default)(o)};t.default=function(e){var t=e.routes,n=e.request,r=(0,i.default)(),o=f(n);return(0,c.default)({routes:t,history:r,location:o})}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=e.getUserConfirmation,n=e.initialEntries,r=void 0===n?["/"]:n,a=e.initialIndex,f=void 0===a?0:a,d=e.keyLength,h=void 0===d?6:d,y=(0,l.default)(),v=function(e){i(M,e),M.length=M.entries.length,y.notifyListeners(M.location,M.action)},b=function(){return Math.random().toString(36).substr(2,h)},g=p(f,0,r.length-1),m=r.map(function(e){return"string"==typeof e?(0,c.createLocation)(e,void 0,b()):(0,c.createLocation)(e,void 0,e.key||b())}),O=s.createPath,w=function(e,n){(0,u.default)(!("object"===("undefined"==typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var r="PUSH",i=(0,c.createLocation)(e,n,b(),M.location);y.confirmTransitionTo(i,r,t,function(e){if(e){var t=M.index,n=t+1,o=M.entries.slice(0);o.length>n?o.splice(n,o.length-n,i):o.push(i),v({action:r,location:i,index:n,entries:o})}})},P=function(e,n){(0,u.default)(!("object"===("undefined"==typeof e?"undefined":o(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var r="REPLACE",i=(0,c.createLocation)(e,n,b(),M.location);y.confirmTransitionTo(i,r,t,function(e){e&&(M.entries[M.index]=i,v({action:r,location:i}))})},_=function(e){var n=p(M.index+e,0,M.entries.length-1),r="POP",o=M.entries[n];y.confirmTransitionTo(o,r,t,function(e){e?v({action:r,location:o,index:n}):v()})},j=function(){return _(-1)},C=function(){return _(1)},S=function(e){var t=M.index+e;return t>=0&&t0&&void 0!==arguments[0]&&arguments[0];return y.setPrompt(e)},E=function(e){return y.appendListener(e)},M={length:m.length,action:"POP",location:m[g],index:g,entries:m,createHref:O,push:w,replace:P,go:_,goBack:j,goForward:C,canGo:S,block:x,listen:E};return M};t.default=d},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(30),i=r(o),a=n(3),u=r(a),s=n(18),c=r(s);t.default=function(e){var t=e.routes,n=e.request,r=(0,i.default)(),o=(0,u.default)({pathname:n.path,query:n.query});return(0,c.default)({routes:t,history:r,location:o})}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0}),t.RouterProvider=void 0;var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function s(){}function c(e,t){var n={run:function(r){try{var o=e(t.getState(),r);(o!==n.props||n.error)&&(n.shouldComponentUpdate=!0,n.props=o,n.error=null)}catch(e){n.shouldComponentUpdate=!0,n.error=e}}};return n}function f(e){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},f=r.getDisplayName,p=void 0===f?function(e){return"ConnectAdvanced("+e+")"}:f,h=r.methodName,b=void 0===h?"connectAdvanced":h,P=r.renderCountProp,_=void 0===P?void 0:P,j=r.shouldHandleStateChanges,C=void 0===j||j,S=r.storeKey,x=void 0===S?"store":S,E=r.withRef,M=void 0!==E&&E,T=u(r,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef"]),R=x+"Subscription",A=O++,k=(t={},t[x]=m.storeShape,t[R]=m.subscriptionShape,t),L=(n={},n[R]=m.subscriptionShape,n);return function(t){(0,y.default)("function"==typeof t,"You must pass a component to the function returned by connect. Instead received "+JSON.stringify(t));var n=t.displayName||t.name||"Component",r=p(n),u=l({},T,{getDisplayName:p,methodName:b,renderCountProp:_,shouldHandleStateChanges:C,storeKey:x,withRef:M,displayName:r,wrappedComponentName:n,WrappedComponent:t}),f=function(n){function f(e,t){o(this,f);var a=i(this,n.call(this,e,t));return a.version=A,a.state={},a.renderCount=0,a.store=e[x]||t[x],a.propsMode=Boolean(e[x]),a.setWrappedInstance=a.setWrappedInstance.bind(a),(0,y.default)(a.store,'Could not find "'+x+'" in either the context or props of '+('"'+r+'". Either wrap the root component in a , ')+('or explicitly pass "'+x+'" as a prop to "'+r+'".')),a.initSelector(),a.initSubscription(),a}return a(f,n),f.prototype.getChildContext=function(){var e,t=this.propsMode?null:this.subscription;return e={},e[R]=t||this.context[R],e},f.prototype.componentDidMount=function(){C&&(this.subscription.trySubscribe(),this.selector.run(this.props),this.selector.shouldComponentUpdate&&this.forceUpdate())},f.prototype.componentWillReceiveProps=function(e){this.selector.run(e)},f.prototype.shouldComponentUpdate=function(){return this.selector.shouldComponentUpdate},f.prototype.componentWillUnmount=function(){this.subscription&&this.subscription.tryUnsubscribe(),this.subscription=null,this.notifyNestedSubs=s,this.store=null,this.selector.run=s,this.selector.shouldComponentUpdate=!1},f.prototype.getWrappedInstance=function(){return(0,y.default)(M,"To access the wrapped instance, you need to specify "+("{ withRef: true } in the options argument of the "+b+"() call.")),this.wrappedInstance},f.prototype.setWrappedInstance=function(e){this.wrappedInstance=e},f.prototype.initSelector=function(){var t=e(this.store.dispatch,u);this.selector=c(t,this.store),this.selector.run(this.props)},f.prototype.initSubscription=function(){if(C){var e=(this.propsMode?this.props:this.context)[R];this.subscription=new g.default(this.store,e,this.onStateChange.bind(this)),this.notifyNestedSubs=this.subscription.notifyNestedSubs.bind(this.subscription)}},f.prototype.onStateChange=function(){this.selector.run(this.props),this.selector.shouldComponentUpdate?(this.componentDidUpdate=this.notifyNestedSubsOnComponentDidUpdate,this.setState(w)):this.notifyNestedSubs()},f.prototype.notifyNestedSubsOnComponentDidUpdate=function(){this.componentDidUpdate=void 0,this.notifyNestedSubs()},f.prototype.isSubscribed=function(){return Boolean(this.subscription)&&this.subscription.isSubscribed()},f.prototype.addExtraProps=function(e){if(!(M||_||this.propsMode&&this.subscription))return e;var t=l({},e);return M&&(t.ref=this.setWrappedInstance),_&&(t[_]=this.renderCount++),this.propsMode&&this.subscription&&(t[R]=this.subscription),t},f.prototype.render=function(){var e=this.selector;if(e.shouldComponentUpdate=!1,e.error)throw e.error;return(0,v.createElement)(t,this.addExtraProps(e.props))},f}(v.Component);return f.WrappedComponent=t,f.displayName=r,f.childContextTypes=L,f.contextTypes=k,f.propTypes=k,(0,d.default)(f,t)}}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t,n){for(var r=t.length-1;r>=0;r--){var o=t[r](e);if(o)return o}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function a(e,t){return e===t}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.connectHOC,n=void 0===t?f.default:t,r=e.mapStateToPropsFactories,u=void 0===r?v.default:r,c=e.mapDispatchToPropsFactories,l=void 0===c?h.default:c,d=e.mergePropsFactories,y=void 0===d?g.default:d,b=e.selectorFactory,m=void 0===b?O.default:b;return function(e,t,r){var c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},f=c.pure,d=void 0===f||f,h=c.areStatesEqual,v=void 0===h?a:h,b=c.areOwnPropsEqual,g=void 0===b?p.default:b,O=c.areStatePropsEqual,w=void 0===O?p.default:O,P=c.areMergedPropsEqual,_=void 0===P?p.default:P,j=o(c,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),C=i(e,u,"mapStateToProps"),S=i(t,l,"mapDispatchToProps"),x=i(r,y,"mergeProps");return n(m,s({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:C,initMapDispatchToProps:S,initMergeProps:x,pure:d,areStatesEqual:v,areOwnPropsEqual:g,areStatePropsEqual:w,areMergedPropsEqual:_},j))}}t.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t,n,r){return function(o,i){return n(e(o,i),t(r,i),i)}}function a(e,t,n,r,o){function i(o,i){return h=o,y=i,v=e(h,y),b=t(r,y),g=n(v,b,y),d=!0,g}function a(){return v=e(h,y),t.dependsOnOwnProps&&(b=t(r,y)),g=n(v,b,y)}function u(){return e.dependsOnOwnProps&&(v=e(h,y)),t.dependsOnOwnProps&&(b=t(r,y)),g=n(v,b,y)}function s(){var t=e(h,y),r=!p(t,v);return v=t,r&&(g=n(v,b,y)),g}function c(e,t){var n=!l(t,y),r=!f(e,h);return h=e,y=t,n&&r?a():n?u():r?s():g}var f=o.areStatesEqual,l=o.areOwnPropsEqual,p=o.areStatePropsEqual,d=!1,h=void 0,y=void 0,v=void 0,b=void 0,g=void 0;return function(e,t){return d?c(e,t):i(e,t)}}function u(e,t){var n=t.initMapStateToProps,r=t.initMapDispatchToProps,u=t.initMergeProps,s=o(t,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),c=n(e,s),f=r(e,s),l=u(e,s),p=s.pure?a:i;return p(c,f,l,e,s)}t.__esModule=!0,t.impureFinalPropsSelectorFactory=i,t.pureFinalPropsSelectorFactory=a,t.default=u;var s=n(70);r(s)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t,n){if(!e)throw new Error("Unexpected value for "+t+" in "+n+".");"mapStateToProps"!==t&&"mapDispatchToProps"!==t||e.hasOwnProperty("dependsOnOwnProps")||(0,u.default)("The selector for "+t+" of "+n+" did not specify a value for dependsOnOwnProps.")}function i(e,t,n,r){o(e,"mapStateToProps",r),o(t,"mapDispatchToProps",r),o(n,"mergeProps",r)}t.__esModule=!0,t.default=i;var a=n(37),u=r(a)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0}),t.PersistentQueryLink=t.Link=void 0;var s=function(){function e(e,t){for(var n=0;n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tvar packState = function packState(location) {\n\t var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t // eslint-disable-next-line no-unused-vars\n\t var query = location.query,\n\t rest = _objectWithoutProperties(location, ['query']);\n\t\n\t return _extends({}, rest, {\n\t state: _extends({}, rest.state || {}, {\n\t\n\t // Namespace our state to prevent interference\n\t // with user-provided state\n\t reduxLittleRouter: {\n\t query: query || {},\n\t options: options\n\t }\n\t })\n\t });\n\t};\n\t\n\texports.packState = packState;\n\tvar unpackState = function unpackState(location) {\n\t var _location$state = location.state,\n\t state = _location$state === undefined ? {} : _location$state,\n\t restLocation = _objectWithoutProperties(location, ['state']);\n\t\n\t var _state$reduxLittleRou = state.reduxLittleRouter,\n\t reduxLittleRouter = _state$reduxLittleRou === undefined ? {} : _state$reduxLittleRou,\n\t restState = _objectWithoutProperties(state, ['reduxLittleRouter']);\n\t\n\t var _reduxLittleRouter$qu = reduxLittleRouter.query,\n\t query = _reduxLittleRouter$qu === undefined ? {} : _reduxLittleRouter$qu,\n\t _reduxLittleRouter$op = reduxLittleRouter.options,\n\t options = _reduxLittleRouter$op === undefined ? {} : _reduxLittleRouter$op;\n\t\n\t\n\t return _extends({}, restLocation, {\n\t state: restState,\n\t query: query,\n\t options: options\n\t });\n\t};\n\texports.unpackState = unpackState;\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createBrowserHistory = __webpack_require__(9);\n\t\n\tvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\t\n\tvar _normalizeHref = __webpack_require__(3);\n\t\n\tvar _normalizeHref2 = _interopRequireDefault(_normalizeHref);\n\t\n\tvar _install = __webpack_require__(19);\n\t\n\tvar _install2 = _interopRequireDefault(_install);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/* istanbul ignore next: unstubbable! */\n\tvar realLocation = function realLocation() {\n\t return window.location;\n\t};\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes,\n\t basename = _ref.basename,\n\t _ref$getLocation = _ref.getLocation,\n\t getLocation = _ref$getLocation === undefined ? realLocation : _ref$getLocation;\n\t\n\t var history = (0, _createBrowserHistory2.default)({ basename: basename });\n\t\n\t var _getLocation = getLocation(),\n\t fullPathname = _getLocation.pathname,\n\t search = _getLocation.search;\n\t\n\t // Strip the basename from the initial pathname\n\t\n\t\n\t var pathname = basename ? fullPathname.replace(basename, '') : fullPathname;\n\t\n\t var descriptor = basename ? { pathname: pathname, basename: basename, search: search } : { pathname: pathname, search: search };\n\t\n\t var location = (0, _normalizeHref2.default)(descriptor);\n\t\n\t return (0, _install2.default)({ routes: routes, history: history, location: location });\n\t};\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar _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\t\n\tvar _warning = __webpack_require__(10);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _invariant = __webpack_require__(11);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _LocationUtils = __webpack_require__(12);\n\t\n\tvar _PathUtils = __webpack_require__(15);\n\t\n\tvar _createTransitionManager = __webpack_require__(16);\n\t\n\tvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\t\n\tvar _ExecutionEnvironment = __webpack_require__(17);\n\t\n\tvar _DOMUtils = __webpack_require__(18);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar PopStateEvent = 'popstate';\n\tvar HashChangeEvent = 'hashchange';\n\t\n\tvar getHistoryState = function getHistoryState() {\n\t try {\n\t return window.history.state || {};\n\t } catch (e) {\n\t // IE 11 sometimes throws when accessing window.history.state\n\t // See https://github.com/mjackson/history/pull/289\n\t return {};\n\t }\n\t};\n\t\n\t/**\n\t * Creates a history object that uses the HTML5 history API including\n\t * pushState, replaceState, and the popstate event.\n\t */\n\tvar createBrowserHistory = function createBrowserHistory() {\n\t var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t\n\t !_ExecutionEnvironment.canUseDOM ? false ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\t\n\t var globalHistory = window.history;\n\t var canUseHistory = (0, _DOMUtils.supportsHistory)();\n\t var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\t\n\t var _props$basename = props.basename,\n\t basename = _props$basename === undefined ? '' : _props$basename,\n\t _props$forceRefresh = props.forceRefresh,\n\t forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n\t _props$getUserConfirm = props.getUserConfirmation,\n\t getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n\t _props$keyLength = props.keyLength,\n\t keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\t\n\t\n\t var getDOMLocation = function getDOMLocation(historyState) {\n\t var _ref = historyState || {},\n\t key = _ref.key,\n\t state = _ref.state;\n\t\n\t var _window$location = window.location,\n\t pathname = _window$location.pathname,\n\t search = _window$location.search,\n\t hash = _window$location.hash;\n\t\n\t\n\t var path = pathname + search + hash;\n\t\n\t if (basename) path = (0, _PathUtils.stripPrefix)(path, basename);\n\t\n\t return _extends({}, (0, _PathUtils.parsePath)(path), {\n\t state: state,\n\t key: key\n\t });\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength);\n\t };\n\t\n\t var transitionManager = (0, _createTransitionManager2.default)();\n\t\n\t var setState = function setState(nextState) {\n\t _extends(history, nextState);\n\t\n\t history.length = globalHistory.length;\n\t\n\t transitionManager.notifyListeners(history.location, history.action);\n\t };\n\t\n\t var handlePopState = function handlePopState(event) {\n\t // Ignore extraneous popstate events in WebKit.\n\t if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\t\n\t handlePop(getDOMLocation(event.state));\n\t };\n\t\n\t var handleHashChange = function handleHashChange() {\n\t handlePop(getDOMLocation(getHistoryState()));\n\t };\n\t\n\t var forceNextPop = false;\n\t\n\t var handlePop = function handlePop(location) {\n\t if (forceNextPop) {\n\t forceNextPop = false;\n\t setState();\n\t } else {\n\t (function () {\n\t var action = 'POP';\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (ok) {\n\t setState({ action: action, location: location });\n\t } else {\n\t revertPop(location);\n\t }\n\t });\n\t })();\n\t }\n\t };\n\t\n\t var revertPop = function revertPop(fromLocation) {\n\t var toLocation = history.location;\n\t\n\t // TODO: We could probably make this more reliable by\n\t // keeping a list of keys we've seen in sessionStorage.\n\t // Instead, we just default to 0 for keys we don't know.\n\t\n\t var toIndex = allKeys.indexOf(toLocation.key);\n\t\n\t if (toIndex === -1) toIndex = 0;\n\t\n\t var fromIndex = allKeys.indexOf(fromLocation.key);\n\t\n\t if (fromIndex === -1) fromIndex = 0;\n\t\n\t var delta = toIndex - fromIndex;\n\t\n\t if (delta) {\n\t forceNextPop = true;\n\t go(delta);\n\t }\n\t };\n\t\n\t var initialLocation = getDOMLocation(getHistoryState());\n\t var allKeys = [initialLocation.key];\n\t\n\t // Public interface\n\t\n\t var createHref = function createHref(location) {\n\t return basename + (0, _PathUtils.createPath)(location);\n\t };\n\t\n\t var push = function push(path, state) {\n\t false ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\t\n\t var action = 'PUSH';\n\t var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (!ok) return;\n\t\n\t var href = createHref(location);\n\t var key = location.key,\n\t state = location.state;\n\t\n\t\n\t if (canUseHistory) {\n\t globalHistory.pushState({ key: key, state: state }, null, href);\n\t\n\t if (forceRefresh) {\n\t window.location.href = href;\n\t } else {\n\t var prevIndex = allKeys.indexOf(history.location.key);\n\t var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\t\n\t nextKeys.push(location.key);\n\t allKeys = nextKeys;\n\t\n\t setState({ action: action, location: location });\n\t }\n\t } else {\n\t false ? (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n\t\n\t window.location.href = href;\n\t }\n\t });\n\t };\n\t\n\t var replace = function replace(path, state) {\n\t false ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\t\n\t var action = 'REPLACE';\n\t var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (!ok) return;\n\t\n\t var href = createHref(location);\n\t var key = location.key,\n\t state = location.state;\n\t\n\t\n\t if (canUseHistory) {\n\t globalHistory.replaceState({ key: key, state: state }, null, href);\n\t\n\t if (forceRefresh) {\n\t window.location.replace(href);\n\t } else {\n\t var prevIndex = allKeys.indexOf(history.location.key);\n\t\n\t if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\t\n\t setState({ action: action, location: location });\n\t }\n\t } else {\n\t false ? (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n\t\n\t window.location.replace(href);\n\t }\n\t });\n\t };\n\t\n\t var go = function go(n) {\n\t globalHistory.go(n);\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var listenerCount = 0;\n\t\n\t var checkDOMListeners = function checkDOMListeners(delta) {\n\t listenerCount += delta;\n\t\n\t if (listenerCount === 1) {\n\t (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\t\n\t if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n\t } else if (listenerCount === 0) {\n\t (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\t\n\t if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n\t }\n\t };\n\t\n\t var isBlocked = false;\n\t\n\t var block = function block() {\n\t var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\t\n\t var unblock = transitionManager.setPrompt(prompt);\n\t\n\t if (!isBlocked) {\n\t checkDOMListeners(1);\n\t isBlocked = true;\n\t }\n\t\n\t return function () {\n\t if (isBlocked) {\n\t isBlocked = false;\n\t checkDOMListeners(-1);\n\t }\n\t\n\t return unblock();\n\t };\n\t };\n\t\n\t var listen = function listen(listener) {\n\t var unlisten = transitionManager.appendListener(listener);\n\t checkDOMListeners(1);\n\t\n\t return function () {\n\t checkDOMListeners(-1);\n\t return unlisten();\n\t };\n\t };\n\t\n\t var history = {\n\t length: globalHistory.length,\n\t action: 'POP',\n\t location: initialLocation,\n\t createHref: createHref,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t block: block,\n\t listen: listen\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createBrowserHistory;\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2014-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = function() {};\n\t\n\tif (false) {\n\t warning = function(condition, format, args) {\n\t var len = arguments.length;\n\t args = new Array(len > 2 ? len - 2 : 0);\n\t for (var key = 2; key < len; key++) {\n\t args[key - 2] = arguments[key];\n\t }\n\t if (format === undefined) {\n\t throw new Error(\n\t '`warning(condition, format, ...args)` requires a warning ' +\n\t 'message argument'\n\t );\n\t }\n\t\n\t if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n\t throw new Error(\n\t 'The warning format should be able to uniquely identify this ' +\n\t 'warning. Please, use a more descriptive format than: ' + format\n\t );\n\t }\n\t\n\t if (!condition) {\n\t var argIndex = 0;\n\t var message = 'Warning: ' +\n\t format.replace(/%s/g, function() {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch(x) {}\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar invariant = function(condition, format, a, b, c, d, e, f) {\n\t if (false) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t }\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error(\n\t 'Minified exception occurred; use the non-minified dev environment ' +\n\t 'for the full error message and additional helpful warnings.'\n\t );\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(\n\t format.replace(/%s/g, function() { return args[argIndex++]; })\n\t );\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t};\n\t\n\tmodule.exports = invariant;\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.locationsAreEqual = exports.createLocation = undefined;\n\t\n\tvar _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\t\n\tvar _resolvePathname = __webpack_require__(13);\n\t\n\tvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\t\n\tvar _valueEqual = __webpack_require__(14);\n\t\n\tvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\t\n\tvar _PathUtils = __webpack_require__(15);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n\t var location = void 0;\n\t if (typeof path === 'string') {\n\t // Two-arg form: push(path, state)\n\t location = (0, _PathUtils.parsePath)(path);\n\t location.state = state;\n\t } else {\n\t // One-arg form: push(location)\n\t location = _extends({}, path);\n\t\n\t if (location.pathname === undefined) location.pathname = '';\n\t\n\t if (location.search) {\n\t if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n\t } else {\n\t location.search = '';\n\t }\n\t\n\t if (location.hash) {\n\t if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n\t } else {\n\t location.hash = '';\n\t }\n\t\n\t if (state !== undefined && location.state === undefined) location.state = state;\n\t }\n\t\n\t location.key = key;\n\t\n\t if (currentLocation) {\n\t // Resolve incomplete/relative pathname relative to current location.\n\t if (!location.pathname) {\n\t location.pathname = currentLocation.pathname;\n\t } else if (location.pathname.charAt(0) !== '/') {\n\t location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n\t }\n\t }\n\t\n\t return location;\n\t};\n\t\n\tvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n\t return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar isAbsolute = function isAbsolute(pathname) {\n\t return pathname.charAt(0) === '/';\n\t};\n\t\n\t// About 1.5x faster than the two-arg version of Array#splice()\n\tvar spliceOne = function spliceOne(list, index) {\n\t for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n\t list[i] = list[k];\n\t }list.pop();\n\t};\n\t\n\t// This implementation is based heavily on node's url.parse\n\tvar resolvePathname = function resolvePathname(to) {\n\t var from = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n\t\n\t var toParts = to && to.split('/') || [];\n\t var fromParts = from && from.split('/') || [];\n\t\n\t var isToAbs = to && isAbsolute(to);\n\t var isFromAbs = from && isAbsolute(from);\n\t var mustEndAbs = isToAbs || isFromAbs;\n\t\n\t if (to && isAbsolute(to)) {\n\t // to is absolute\n\t fromParts = toParts;\n\t } else if (toParts.length) {\n\t // to is relative, drop the filename\n\t fromParts.pop();\n\t fromParts = fromParts.concat(toParts);\n\t }\n\t\n\t if (!fromParts.length) return '/';\n\t\n\t var hasTrailingSlash = void 0;\n\t if (fromParts.length) {\n\t var last = fromParts[fromParts.length - 1];\n\t hasTrailingSlash = last === '.' || last === '..' || last === '';\n\t } else {\n\t hasTrailingSlash = false;\n\t }\n\t\n\t var up = 0;\n\t for (var i = fromParts.length; i >= 0; i--) {\n\t var part = fromParts[i];\n\t\n\t if (part === '.') {\n\t spliceOne(fromParts, i);\n\t } else if (part === '..') {\n\t spliceOne(fromParts, i);\n\t up++;\n\t } else if (up) {\n\t spliceOne(fromParts, i);\n\t up--;\n\t }\n\t }\n\t\n\t if (!mustEndAbs) for (; up--; up) {\n\t fromParts.unshift('..');\n\t }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\t\n\t var result = fromParts.join('/');\n\t\n\t if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\t\n\t return result;\n\t};\n\t\n\tmodule.exports = resolvePathname;\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar valueEqual = function valueEqual(a, b) {\n\t if (a === b) return true;\n\t\n\t if (a == null || b == null) return false;\n\t\n\t if (Array.isArray(a)) {\n\t if (!Array.isArray(b) || a.length !== b.length) return false;\n\t\n\t return a.every(function (item, index) {\n\t return valueEqual(item, b[index]);\n\t });\n\t }\n\t\n\t var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n\t var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\t\n\t if (aType !== bType) return false;\n\t\n\t if (aType === 'object') {\n\t var aValue = a.valueOf();\n\t var bValue = b.valueOf();\n\t\n\t if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\t\n\t var aKeys = Object.keys(a);\n\t var bKeys = Object.keys(b);\n\t\n\t if (aKeys.length !== bKeys.length) return false;\n\t\n\t return aKeys.every(function (key) {\n\t return valueEqual(a[key], b[key]);\n\t });\n\t }\n\t\n\t return false;\n\t};\n\t\n\texports.default = valueEqual;\n\n/***/ },\n/* 15 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\tvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n\t return path.charAt(0) === '/' ? path : '/' + path;\n\t};\n\t\n\tvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n\t return path.charAt(0) === '/' ? path.substr(1) : path;\n\t};\n\t\n\tvar stripPrefix = exports.stripPrefix = function stripPrefix(path, prefix) {\n\t return path.indexOf(prefix) === 0 ? path.substr(prefix.length) : path;\n\t};\n\t\n\tvar parsePath = exports.parsePath = function parsePath(path) {\n\t var pathname = path || '/';\n\t var search = '';\n\t var hash = '';\n\t\n\t var hashIndex = pathname.indexOf('#');\n\t if (hashIndex !== -1) {\n\t hash = pathname.substr(hashIndex);\n\t pathname = pathname.substr(0, hashIndex);\n\t }\n\t\n\t var searchIndex = pathname.indexOf('?');\n\t if (searchIndex !== -1) {\n\t search = pathname.substr(searchIndex);\n\t pathname = pathname.substr(0, searchIndex);\n\t }\n\t\n\t return {\n\t pathname: pathname,\n\t search: search === '?' ? '' : search,\n\t hash: hash === '#' ? '' : hash\n\t };\n\t};\n\t\n\tvar createPath = exports.createPath = function createPath(location) {\n\t var pathname = location.pathname,\n\t search = location.search,\n\t hash = location.hash;\n\t\n\t\n\t var path = pathname || '/';\n\t\n\t if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\t\n\t if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\t\n\t return path;\n\t};\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _warning = __webpack_require__(10);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createTransitionManager = function createTransitionManager() {\n\t var prompt = null;\n\t\n\t var setPrompt = function setPrompt(nextPrompt) {\n\t false ? (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time') : void 0;\n\t\n\t prompt = nextPrompt;\n\t\n\t return function () {\n\t if (prompt === nextPrompt) prompt = null;\n\t };\n\t };\n\t\n\t var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n\t // TODO: If another transition starts while we're still confirming\n\t // the previous one, we may end up in a weird state. Figure out the\n\t // best way to handle this.\n\t if (prompt != null) {\n\t var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\t\n\t if (typeof result === 'string') {\n\t if (typeof getUserConfirmation === 'function') {\n\t getUserConfirmation(result, callback);\n\t } else {\n\t false ? (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n\t\n\t callback(true);\n\t }\n\t } else {\n\t // Return false from a transition hook to cancel the transition.\n\t callback(result !== false);\n\t }\n\t } else {\n\t callback(true);\n\t }\n\t };\n\t\n\t var listeners = [];\n\t\n\t var appendListener = function appendListener(fn) {\n\t var isActive = true;\n\t\n\t var listener = function listener() {\n\t if (isActive) fn.apply(undefined, arguments);\n\t };\n\t\n\t listeners.push(listener);\n\t\n\t return function () {\n\t isActive = false;\n\t listeners = listeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var notifyListeners = function notifyListeners() {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t listeners.forEach(function (listener) {\n\t return listener.apply(undefined, args);\n\t });\n\t };\n\t\n\t return {\n\t setPrompt: setPrompt,\n\t confirmTransitionTo: confirmTransitionTo,\n\t appendListener: appendListener,\n\t notifyListeners: notifyListeners\n\t };\n\t};\n\t\n\texports.default = createTransitionManager;\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\tvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/***/ },\n/* 18 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\tvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n\t return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n\t};\n\t\n\tvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n\t return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n\t};\n\t\n\tvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n\t return callback(window.confirm(message));\n\t}; // eslint-disable-line no-alert\n\t\n\t/**\n\t * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n\t *\n\t * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n\t * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n\t * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n\t */\n\tvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n\t var ua = window.navigator.userAgent;\n\t\n\t if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\t\n\t return window.history && 'pushState' in window.history;\n\t};\n\t\n\t/**\n\t * Returns true if browser fires popstate on hash change.\n\t * IE10 and IE11 do not.\n\t */\n\tvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n\t return window.navigator.userAgent.indexOf('Trident') === -1;\n\t};\n\t\n\t/**\n\t * Returns false if using go(n) with hash history causes a full page reload.\n\t */\n\tvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n\t return window.navigator.userAgent.indexOf('Firefox') === -1;\n\t};\n\t\n\t/**\n\t * Returns true if a given popstate event is an extraneous WebKit event.\n\t * Accounts for the fact that Chrome on iOS fires real popstate events\n\t * containing undefined state when pressing the back button.\n\t */\n\tvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n\t return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _reducer = __webpack_require__(20);\n\t\n\tvar _reducer2 = _interopRequireDefault(_reducer);\n\t\n\tvar _middleware = __webpack_require__(21);\n\t\n\tvar _middleware2 = _interopRequireDefault(_middleware);\n\t\n\tvar _enhancer = __webpack_require__(22);\n\t\n\tvar _enhancer2 = _interopRequireDefault(_enhancer);\n\t\n\tvar _createMatcher = __webpack_require__(24);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tvar _validateRoutes = __webpack_require__(27);\n\t\n\tvar _validateRoutes2 = _interopRequireDefault(_validateRoutes);\n\t\n\tvar _flattenRoutes = __webpack_require__(28);\n\t\n\tvar _flattenRoutes2 = _interopRequireDefault(_flattenRoutes);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var nestedRoutes = _ref.routes,\n\t history = _ref.history,\n\t location = _ref.location,\n\t _ref$createMatcher = _ref.createMatcher,\n\t createMatcher = _ref$createMatcher === undefined ? _createMatcher2.default : _ref$createMatcher;\n\t\n\t (0, _validateRoutes2.default)(nestedRoutes);\n\t var routes = (0, _flattenRoutes2.default)(nestedRoutes);\n\t\n\t var matchRoute = createMatcher(routes);\n\t var matchWildcardRoute = createMatcher(routes, true);\n\t\n\t return {\n\t reducer: (0, _reducer2.default)(_extends({}, location, matchRoute(location.pathname))),\n\t middleware: (0, _middleware2.default)({ history: history }),\n\t enhancer: (0, _enhancer2.default)({\n\t routes: routes,\n\t history: history,\n\t matchRoute: matchRoute,\n\t matchWildcardRoute: matchWildcardRoute\n\t })\n\t };\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _types = __webpack_require__(1);\n\t\n\tfunction _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\t\n\tvar flow = function flow() {\n\t for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n\t funcs[_key] = arguments[_key];\n\t }\n\t\n\t return funcs.reduce(function (prev, curr) {\n\t return function () {\n\t return curr(prev.apply(undefined, arguments));\n\t };\n\t });\n\t};\n\t\n\tvar resolveQuery = function resolveQuery(_ref) {\n\t var oldLocation = _ref.oldLocation,\n\t newLocation = _ref.newLocation,\n\t options = _ref.options;\n\t var oldQuery = oldLocation.query,\n\t oldSearch = oldLocation.search;\n\t\n\t // Only use the query from state if it exists\n\t // and the href doesn't provide its own query\n\t\n\t if (options.persistQuery && oldQuery && !newLocation.search && !newLocation.query) {\n\t return {\n\t oldLocation: oldLocation,\n\t newLocation: _extends({}, newLocation, {\n\t query: oldQuery,\n\t search: oldSearch\n\t }),\n\t options: options\n\t };\n\t }\n\t\n\t return { oldLocation: oldLocation, newLocation: newLocation, options: options };\n\t};\n\t\n\tvar resolveBasename = function resolveBasename(_ref2) {\n\t var oldLocation = _ref2.oldLocation,\n\t newLocation = _ref2.newLocation,\n\t options = _ref2.options;\n\t var basename = oldLocation.basename;\n\t\n\t if (basename) {\n\t return {\n\t oldLocation: oldLocation,\n\t newLocation: _extends({ basename: basename }, newLocation),\n\t options: options\n\t };\n\t }\n\t return { oldLocation: oldLocation, newLocation: newLocation, options: options };\n\t};\n\t\n\tvar resolvePrevious = function resolvePrevious(_ref3) {\n\t var oldLocation = _ref3.oldLocation,\n\t newLocation = _ref3.newLocation,\n\t options = _ref3.options;\n\t return {\n\t oldLocation: oldLocation,\n\t newLocation: _extends({}, newLocation, {\n\t previous: oldLocation\n\t }),\n\t options: options\n\t };\n\t};\n\t\n\texports.default = function (initialLocation) {\n\t return function () {\n\t var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialLocation;\n\t var action = arguments[1];\n\t\n\t if (action.type === _types.LOCATION_CHANGED) {\n\t // No-op the initial route action\n\t if (state.pathname === action.payload.pathname && state.search === action.payload.search) {\n\t return state;\n\t }\n\t\n\t // Extract the previous state, but dump the\n\t // previous state's previous state so that the\n\t // state tree doesn't keep growing indefinitely\n\t // eslint-disable-next-line no-unused-vars\n\t\n\t var previous = state.previous,\n\t _oldLocation = _objectWithoutProperties(state, ['previous']);\n\t\n\t var _options = action.payload.options;\n\t\n\t\n\t var resolveLocation = flow(resolveQuery, resolveBasename, resolvePrevious);\n\t\n\t return resolveLocation({\n\t oldLocation: _oldLocation,\n\t newLocation: action.payload,\n\t options: _options || {}\n\t }).newLocation;\n\t }\n\t return state;\n\t };\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _types = __webpack_require__(1);\n\t\n\t/* eslint-disable consistent-return */\n\texports.default = function (_ref) {\n\t var history = _ref.history;\n\t return function () {\n\t return function (next) {\n\t return function (action) {\n\t switch (action.type) {\n\t case _types.PUSH:\n\t history.push(action.payload);\n\t // No return, no next() here\n\t // We stop all history events from progressing further through the dispatch chain...\n\t break;\n\t case _types.REPLACE:\n\t history.replace(action.payload);\n\t break;\n\t case _types.GO:\n\t history.go(action.payload);\n\t break;\n\t case _types.GO_BACK:\n\t history.goBack();\n\t break;\n\t case _types.GO_FORWARD:\n\t history.goForward();\n\t break;\n\t default:\n\t // ...but we want to leave all events we don't care about undisturbed\n\t return next(action);\n\t }\n\t };\n\t };\n\t };\n\t};\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _actions = __webpack_require__(2);\n\t\n\tvar _locationState = __webpack_require__(7);\n\t\n\tvar _matchCache = __webpack_require__(23);\n\t\n\tvar _matchCache2 = _interopRequireDefault(_matchCache);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes,\n\t history = _ref.history,\n\t matchRoute = _ref.matchRoute,\n\t matchWildcardRoute = _ref.matchWildcardRoute;\n\t return function (createStore) {\n\t return function (userReducer, initialState, enhancer) {\n\t var store = createStore(userReducer, initialState, enhancer);\n\t\n\t history.listen(function (location) {\n\t _matchCache2.default.clear();\n\t store.dispatch((0, _actions.locationDidChange)(_extends({}, (0, _locationState.unpackState)(location), matchRoute(location.pathname))));\n\t });\n\t\n\t return _extends({}, store, {\n\t routes: routes,\n\t matchRoute: matchRoute,\n\t matchWildcardRoute: matchWildcardRoute\n\t });\n\t };\n\t };\n\t};\n\n/***/ },\n/* 23 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar ROUTE_FALLBACK = '@ROUTE_FALLBACK';\n\t\n\tvar MatchCache = exports.MatchCache = function () {\n\t function MatchCache() {\n\t _classCallCheck(this, MatchCache);\n\t\n\t this._data = {};\n\t }\n\t\n\t _createClass(MatchCache, [{\n\t key: 'add',\n\t value: function add(parentId, route) {\n\t this._data[parentId] = route || ROUTE_FALLBACK;\n\t }\n\t }, {\n\t key: 'get',\n\t value: function get(parentId) {\n\t return this._data[parentId] || null;\n\t }\n\t }, {\n\t key: 'clear',\n\t value: function clear() {\n\t this._data = {};\n\t }\n\t }]);\n\t\n\t return MatchCache;\n\t}();\n\t\n\texports.default = new MatchCache();\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _urlPattern = __webpack_require__(25);\n\t\n\tvar _urlPattern2 = _interopRequireDefault(_urlPattern);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar find = function find(list, predicate) {\n\t for (var i = 0; i < list.length; i++) {\n\t var item = list[i];\n\t if (predicate(item)) {\n\t return item;\n\t }\n\t }\n\t return null;\n\t};\n\t\n\t\n\tvar wildcardMatcher = function wildcardMatcher(routeList) {\n\t return function (incomingUrl) {\n\t var routeToMatch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\t\n\t // Discard query strings\n\t var pathname = incomingUrl.split('?')[0];\n\t\n\t var storedRoute = find(routeList, function (route) {\n\t return route.route === routeToMatch;\n\t });\n\t\n\t if (!storedRoute) {\n\t return null;\n\t }\n\t\n\t var match = storedRoute.pattern.match(pathname);\n\t\n\t if (match) {\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t\n\t return null;\n\t };\n\t};\n\t\n\tvar eagerMatcher = function eagerMatcher(routeList) {\n\t return function (incomingUrl) {\n\t // Discard query strings\n\t var pathname = incomingUrl.split('?')[0];\n\t\n\t // Find the route that matches the URL\n\t for (var i = 0; i < routeList.length; i++) {\n\t var storedRoute = routeList[i];\n\t var match = storedRoute.pattern.match(pathname);\n\t\n\t if (match) {\n\t // Return the matched params and user-defined result object\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t }\n\t\n\t return null;\n\t };\n\t};\n\t\n\texports.default = function (routes) {\n\t var wildcard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\t\n\t var routeList = Object.keys(routes).sort().reverse().map(function (route) {\n\t return {\n\t route: route,\n\t pattern: new _urlPattern2.default(\n\t // Prepend with wildcards if requested\n\t '' + route + (wildcard && '*' || '')),\n\t result: routes[route]\n\t };\n\t });\n\t\n\t return wildcard ? wildcardMatcher(routeList) : eagerMatcher(routeList);\n\t};\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0\n\tvar slice = [].slice;\n\t\n\t(function(root, factory) {\n\t if (('function' === \"function\") && (__webpack_require__(26) != null)) {\n\t return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports !== \"undefined\" && exports !== null) {\n\t return module.exports = factory();\n\t } else {\n\t return root.UrlPattern = factory();\n\t }\n\t})(this, function() {\n\t var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n\t escapeForRegex = function(string) {\n\t return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t };\n\t concatMap = function(array, f) {\n\t var i, length, results;\n\t results = [];\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t results = results.concat(f(array[i]));\n\t }\n\t return results;\n\t };\n\t stringConcatMap = function(array, f) {\n\t var i, length, result;\n\t result = '';\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t result += f(array[i]);\n\t }\n\t return result;\n\t };\n\t regexGroupCount = function(regex) {\n\t return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n\t };\n\t keysAndValuesToObject = function(keys, values) {\n\t var i, key, length, object, value;\n\t object = {};\n\t i = -1;\n\t length = keys.length;\n\t while (++i < length) {\n\t key = keys[i];\n\t value = values[i];\n\t if (value == null) {\n\t continue;\n\t }\n\t if (object[key] != null) {\n\t if (!Array.isArray(object[key])) {\n\t object[key] = [object[key]];\n\t }\n\t object[key].push(value);\n\t } else {\n\t object[key] = value;\n\t }\n\t }\n\t return object;\n\t };\n\t P = {};\n\t P.Result = function(value, rest) {\n\t this.value = value;\n\t this.rest = rest;\n\t };\n\t P.Tagged = function(tag, value) {\n\t this.tag = tag;\n\t this.value = value;\n\t };\n\t P.tag = function(tag, parser) {\n\t return function(input) {\n\t var result, tagged;\n\t result = parser(input);\n\t if (result == null) {\n\t return;\n\t }\n\t tagged = new P.Tagged(tag, result.value);\n\t return new P.Result(tagged, result.rest);\n\t };\n\t };\n\t P.regex = function(regex) {\n\t return function(input) {\n\t var matches, result;\n\t matches = regex.exec(input);\n\t if (matches == null) {\n\t return;\n\t }\n\t result = matches[0];\n\t return new P.Result(result, input.slice(result.length));\n\t };\n\t };\n\t P.sequence = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, rest, result, values;\n\t i = -1;\n\t length = parsers.length;\n\t values = [];\n\t rest = input;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(rest);\n\t if (result == null) {\n\t return;\n\t }\n\t values.push(result.value);\n\t rest = result.rest;\n\t }\n\t return new P.Result(values, rest);\n\t };\n\t };\n\t P.pick = function() {\n\t var indexes, parsers;\n\t indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n\t return function(input) {\n\t var array, result;\n\t result = P.sequence.apply(P, parsers)(input);\n\t if (result == null) {\n\t return;\n\t }\n\t array = result.value;\n\t result.value = array[indexes];\n\t return result;\n\t };\n\t };\n\t P.string = function(string) {\n\t var length;\n\t length = string.length;\n\t return function(input) {\n\t if (input.slice(0, length) === string) {\n\t return new P.Result(string, input.slice(length));\n\t }\n\t };\n\t };\n\t P.lazy = function(fn) {\n\t var cached;\n\t cached = null;\n\t return function(input) {\n\t if (cached == null) {\n\t cached = fn();\n\t }\n\t return cached(input);\n\t };\n\t };\n\t P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n\t var endResult, parserResult, rest, results;\n\t rest = input;\n\t results = stringResult ? '' : [];\n\t while (true) {\n\t if (end != null) {\n\t endResult = end(rest);\n\t if (endResult != null) {\n\t break;\n\t }\n\t }\n\t parserResult = parser(rest);\n\t if (parserResult == null) {\n\t break;\n\t }\n\t if (stringResult) {\n\t results += parserResult.value;\n\t } else {\n\t results.push(parserResult.value);\n\t }\n\t rest = parserResult.rest;\n\t }\n\t if (atLeastOneResultRequired && results.length === 0) {\n\t return;\n\t }\n\t return new P.Result(results, rest);\n\t };\n\t P.many1 = function(parser) {\n\t return function(input) {\n\t return P.baseMany(parser, null, false, true, input);\n\t };\n\t };\n\t P.concatMany1Till = function(parser, end) {\n\t return function(input) {\n\t return P.baseMany(parser, end, true, true, input);\n\t };\n\t };\n\t P.firstChoice = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, result;\n\t i = -1;\n\t length = parsers.length;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(input);\n\t if (result != null) {\n\t return result;\n\t }\n\t }\n\t };\n\t };\n\t newParser = function(options) {\n\t var U;\n\t U = {};\n\t U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n\t U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n\t return U.pattern;\n\t }), P.string(options.optionalSegmentEndChar)));\n\t U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n\t U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n\t return U.name;\n\t })));\n\t U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n\t U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n\t return U.escapedChar;\n\t }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n\t U.token = P.lazy(function() {\n\t return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n\t });\n\t U.pattern = P.many1(P.lazy(function() {\n\t return U.token;\n\t }));\n\t return U;\n\t };\n\t defaultOptions = {\n\t escapeChar: '\\\\',\n\t segmentNameStartChar: ':',\n\t segmentValueCharset: 'a-zA-Z0-9-_~ %',\n\t segmentNameCharset: 'a-zA-Z0-9',\n\t optionalSegmentStartChar: '(',\n\t optionalSegmentEndChar: ')',\n\t wildcardChar: '*'\n\t };\n\t baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return baseAstNodeToRegexString(node, segmentValueCharset);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return '(.*?)';\n\t case 'named':\n\t return \"([\" + segmentValueCharset + \"]+)\";\n\t case 'static':\n\t return escapeForRegex(astNode.value);\n\t case 'optional':\n\t return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n\t }\n\t };\n\t astNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (segmentValueCharset == null) {\n\t segmentValueCharset = defaultOptions.segmentValueCharset;\n\t }\n\t return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n\t };\n\t astNodeToNames = function(astNode) {\n\t if (Array.isArray(astNode)) {\n\t return concatMap(astNode, astNodeToNames);\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return ['_'];\n\t case 'named':\n\t return [astNode.value];\n\t case 'static':\n\t return [];\n\t case 'optional':\n\t return astNodeToNames(astNode.value);\n\t }\n\t };\n\t getParam = function(params, key, nextIndexes, sideEffects) {\n\t var index, maxIndex, result, value;\n\t if (sideEffects == null) {\n\t sideEffects = false;\n\t }\n\t value = params[key];\n\t if (value == null) {\n\t if (sideEffects) {\n\t throw new Error(\"no values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t index = nextIndexes[key] || 0;\n\t maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n\t if (index > maxIndex) {\n\t if (sideEffects) {\n\t throw new Error(\"too few values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t result = Array.isArray(value) ? value[index] : value;\n\t if (sideEffects) {\n\t nextIndexes[key] = index + 1;\n\t }\n\t return result;\n\t };\n\t astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n\t var i, length;\n\t if (Array.isArray(astNode)) {\n\t i = -1;\n\t length = astNode.length;\n\t while (++i < length) {\n\t if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, false) != null;\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, false) != null;\n\t case 'static':\n\t return false;\n\t case 'optional':\n\t return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n\t }\n\t };\n\t stringify = function(astNode, params, nextIndexes) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return stringify(node, params, nextIndexes);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, true);\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, true);\n\t case 'static':\n\t return astNode.value;\n\t case 'optional':\n\t if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n\t return stringify(astNode.value, params, nextIndexes);\n\t } else {\n\t return '';\n\t }\n\t }\n\t };\n\t UrlPattern = function(arg1, arg2) {\n\t var groupCount, options, parsed, parser, withoutWhitespace;\n\t if (arg1 instanceof UrlPattern) {\n\t this.isRegex = arg1.isRegex;\n\t this.regex = arg1.regex;\n\t this.ast = arg1.ast;\n\t this.names = arg1.names;\n\t return;\n\t }\n\t this.isRegex = arg1 instanceof RegExp;\n\t if (!(('string' === typeof arg1) || this.isRegex)) {\n\t throw new TypeError('argument must be a regex or a string');\n\t }\n\t if (this.isRegex) {\n\t this.regex = arg1;\n\t if (arg2 != null) {\n\t if (!Array.isArray(arg2)) {\n\t throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n\t }\n\t groupCount = regexGroupCount(this.regex);\n\t if (arg2.length !== groupCount) {\n\t throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n\t }\n\t this.names = arg2;\n\t }\n\t return;\n\t }\n\t if (arg1 === '') {\n\t throw new Error('argument must not be the empty string');\n\t }\n\t withoutWhitespace = arg1.replace(/\\s+/g, '');\n\t if (withoutWhitespace !== arg1) {\n\t throw new Error('argument must not contain whitespace');\n\t }\n\t options = {\n\t escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n\t segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n\t segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n\t segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n\t optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n\t optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n\t wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n\t };\n\t parser = newParser(options);\n\t parsed = parser.pattern(arg1);\n\t if (parsed == null) {\n\t throw new Error(\"couldn't parse pattern\");\n\t }\n\t if (parsed.rest !== '') {\n\t throw new Error(\"could only partially parse pattern\");\n\t }\n\t this.ast = parsed.value;\n\t this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n\t this.names = astNodeToNames(this.ast);\n\t };\n\t UrlPattern.prototype.match = function(url) {\n\t var groups, match;\n\t match = this.regex.exec(url);\n\t if (match == null) {\n\t return null;\n\t }\n\t groups = match.slice(1);\n\t if (this.names) {\n\t return keysAndValuesToObject(this.names, groups);\n\t } else {\n\t return groups;\n\t }\n\t };\n\t UrlPattern.prototype.stringify = function(params) {\n\t if (params == null) {\n\t params = {};\n\t }\n\t if (this.isRegex) {\n\t throw new Error(\"can't stringify patterns generated from a regex\");\n\t }\n\t if (params !== Object(params)) {\n\t throw new Error(\"argument must be an object or undefined\");\n\t }\n\t return stringify(this.ast, params, {});\n\t };\n\t UrlPattern.escapeForRegex = escapeForRegex;\n\t UrlPattern.concatMap = concatMap;\n\t UrlPattern.stringConcatMap = stringConcatMap;\n\t UrlPattern.regexGroupCount = regexGroupCount;\n\t UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n\t UrlPattern.P = P;\n\t UrlPattern.newParser = newParser;\n\t UrlPattern.defaultOptions = defaultOptions;\n\t UrlPattern.astNodeToRegexString = astNodeToRegexString;\n\t UrlPattern.astNodeToNames = astNodeToNames;\n\t UrlPattern.getParam = getParam;\n\t UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n\t UrlPattern.stringify = stringify;\n\t return UrlPattern;\n\t});\n\n\n/***/ },\n/* 26 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;\r\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, {}))\n\n/***/ },\n/* 27 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar README_MESSAGE = '\\n See the README for more information:\\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\\n';\n\t\n\texports.default = function (routes) {\n\t if (!routes) {\n\t throw Error('\\n Missing route configuration. You must define your routes as\\n an object where the keys are routes and the values are any\\n route-specific data.\\n\\n ' + README_MESSAGE + '\\n ');\n\t }\n\t\n\t // eslint-disable-next-line no-magic-numbers\n\t if (!Object.keys(routes).every(function (route) {\n\t return route.indexOf('/') === 0;\n\t })) {\n\t throw Error('\\n The route configuration you provided is malformed. Make sure\\n that all of your routes start with a slash.\\n\\n ' + README_MESSAGE + '\\n ');\n\t }\n\t};\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _lodash = __webpack_require__(29);\n\t\n\tvar _lodash2 = _interopRequireDefault(_lodash);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tvar filterObject = function filterObject(target, predicate) {\n\t return Object.keys(target).reduce(function (acc, key) {\n\t return predicate(key) ? _extends({}, acc, _defineProperty({}, key, target[key])) : acc;\n\t }, {});\n\t};\n\t\n\tvar mapObject = function mapObject(target, transformKey, transformValue) {\n\t return Object.keys(target).reduce(function (acc, key) {\n\t var newKey = transformKey ? transformKey(key) : key;\n\t var newValue = transformValue ? transformValue(target[key]) : target[key];\n\t return _extends({}, acc, _defineProperty({}, newKey, newValue));\n\t }, {});\n\t};\n\t\n\tvar onlyRoutes = function onlyRoutes(routes) {\n\t return filterObject(routes, function (key) {\n\t return key.indexOf('/') === 0;\n\t });\n\t};\n\t\n\tvar withoutRoutes = function withoutRoutes(routes) {\n\t return filterObject(routes, function (key) {\n\t return key.indexOf('/') !== 0;\n\t });\n\t};\n\t\n\tvar flattenRoutes = function flattenRoutes(routes) {\n\t var acc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t Object.keys(routes).forEach(function (key) {\n\t var baseRoute = key === '/' ? '' : key;\n\t flattenRoutes(mapObject(onlyRoutes(routes[key]), function (routeKey) {\n\t return '' + baseRoute + routeKey;\n\t }, function (routeValue) {\n\t return _extends({}, routeValue, {\n\t parent: _extends({}, withoutRoutes(routes[key]), {\n\t route: key\n\t })\n\t });\n\t }), acc);\n\t });\n\t\n\t (0, _lodash2.default)(acc, mapObject(routes, null, withoutRoutes));\n\t\n\t return acc;\n\t};\n\t\n\texports.default = flattenRoutes;\n\n/***/ },\n/* 29 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\t\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]';\n\t\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\t\n\t/**\n\t * A faster alternative to `Function#apply`, this function invokes `func`\n\t * with the `this` binding of `thisArg` and the arguments of `args`.\n\t *\n\t * @private\n\t * @param {Function} func The function to invoke.\n\t * @param {*} thisArg The `this` binding of `func`.\n\t * @param {Array} args The arguments to invoke `func` with.\n\t * @returns {*} Returns the result of `func`.\n\t */\n\tfunction apply(func, thisArg, args) {\n\t switch (args.length) {\n\t case 0: return func.call(thisArg);\n\t case 1: return func.call(thisArg, args[0]);\n\t case 2: return func.call(thisArg, args[0], args[1]);\n\t case 3: return func.call(thisArg, args[0], args[1], args[2]);\n\t }\n\t return func.apply(thisArg, args);\n\t}\n\t\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\t\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\t\n\t/** Built-in value references. */\n\tvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeKeys = overArg(Object.keys, Object),\n\t nativeMax = Math.max;\n\t\n\t/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\n\tvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\t\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\t\n\t var length = result.length,\n\t skipIndexes = !!length;\n\t\n\t for (var key in value) {\n\t if ((inherited || hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\t\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n\t *\n\t * @private\n\t * @param {Function} func The function to apply a rest parameter to.\n\t * @param {number} [start=func.length-1] The start position of the rest parameter.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction baseRest(func, start) {\n\t start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n\t return function() {\n\t var args = arguments,\n\t index = -1,\n\t length = nativeMax(args.length - start, 0),\n\t array = Array(length);\n\t\n\t while (++index < length) {\n\t array[index] = args[start + index];\n\t }\n\t index = -1;\n\t var otherArgs = Array(start + 1);\n\t while (++index < start) {\n\t otherArgs[index] = args[index];\n\t }\n\t otherArgs[start] = array;\n\t return apply(func, this, otherArgs);\n\t };\n\t}\n\t\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\t\n\t var index = -1,\n\t length = props.length;\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t\n\t var newValue = customizer\n\t ? customizer(object[key], source[key], key, object, source)\n\t : undefined;\n\t\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\t\n\t/**\n\t * Creates a function like `_.assign`.\n\t *\n\t * @private\n\t * @param {Function} assigner The function to assign values.\n\t * @returns {Function} Returns the new assigner function.\n\t */\n\tfunction createAssigner(assigner) {\n\t return baseRest(function(object, sources) {\n\t var index = -1,\n\t length = sources.length,\n\t customizer = length > 1 ? sources[length - 1] : undefined,\n\t guard = length > 2 ? sources[2] : undefined;\n\t\n\t customizer = (assigner.length > 3 && typeof customizer == 'function')\n\t ? (length--, customizer)\n\t : undefined;\n\t\n\t if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n\t customizer = length < 3 ? undefined : customizer;\n\t length = 1;\n\t }\n\t object = Object(object);\n\t while (++index < length) {\n\t var source = sources[index];\n\t if (source) {\n\t assigner(object, source, index, customizer);\n\t }\n\t }\n\t return object;\n\t });\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\t\n\t/**\n\t * Checks if the given arguments are from an iteratee call.\n\t *\n\t * @private\n\t * @param {*} value The potential iteratee value argument.\n\t * @param {*} index The potential iteratee index or key argument.\n\t * @param {*} object The potential iteratee object argument.\n\t * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n\t * else `false`.\n\t */\n\tfunction isIterateeCall(value, index, object) {\n\t if (!isObject(object)) {\n\t return false;\n\t }\n\t var type = typeof index;\n\t if (type == 'number'\n\t ? (isArrayLike(object) && isIndex(index, object.length))\n\t : (type == 'string' && index in object)\n\t ) {\n\t return eq(object[index], value);\n\t }\n\t return false;\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\t\n\t return value === proto;\n\t}\n\t\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\t\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\t\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\t\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\t\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\t\n\t/**\n\t * Assigns own enumerable string keyed properties of source objects to the\n\t * destination object. Source objects are applied from left to right.\n\t * Subsequent sources overwrite property assignments of previous sources.\n\t *\n\t * **Note:** This method mutates `object` and is loosely based on\n\t * [`Object.assign`](https://mdn.io/Object/assign).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.10.0\n\t * @category Object\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [sources] The source objects.\n\t * @returns {Object} Returns `object`.\n\t * @see _.assignIn\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * function Bar() {\n\t * this.c = 3;\n\t * }\n\t *\n\t * Foo.prototype.b = 2;\n\t * Bar.prototype.d = 4;\n\t *\n\t * _.assign({ 'a': 0 }, new Foo, new Bar);\n\t * // => { 'a': 1, 'c': 3 }\n\t */\n\tvar assign = createAssigner(function(object, source) {\n\t if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n\t copyObject(source, keys(source), object);\n\t return;\n\t }\n\t for (var key in source) {\n\t if (hasOwnProperty.call(source, key)) {\n\t assignValue(object, key, source[key]);\n\t }\n\t }\n\t});\n\t\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\t\n\tmodule.exports = assign;\n\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createMemoryHistory = __webpack_require__(31);\n\t\n\tvar _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);\n\t\n\tvar _normalizeHref = __webpack_require__(3);\n\t\n\tvar _normalizeHref2 = _interopRequireDefault(_normalizeHref);\n\t\n\tvar _install = __webpack_require__(19);\n\t\n\tvar _install2 = _interopRequireDefault(_install);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar locationForRequest = function locationForRequest(request) {\n\t var pathname = request.path,\n\t basename = request.baseUrl,\n\t query = request.query;\n\t\n\t var descriptor = basename ? { pathname: pathname, basename: basename, query: query } : { pathname: pathname, query: query };\n\t return (0, _normalizeHref2.default)(descriptor);\n\t};\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes,\n\t request = _ref.request;\n\t\n\t var history = (0, _createMemoryHistory2.default)();\n\t var location = locationForRequest(request);\n\t\n\t return (0, _install2.default)({ routes: routes, history: history, location: location });\n\t};\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar _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\t\n\tvar _warning = __webpack_require__(10);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _PathUtils = __webpack_require__(15);\n\t\n\tvar _LocationUtils = __webpack_require__(12);\n\t\n\tvar _createTransitionManager = __webpack_require__(16);\n\t\n\tvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar clamp = function clamp(n, lowerBound, upperBound) {\n\t return Math.min(Math.max(n, lowerBound), upperBound);\n\t};\n\t\n\t/**\n\t * Creates a history object that stores locations in memory.\n\t */\n\tvar createMemoryHistory = function createMemoryHistory() {\n\t var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t var getUserConfirmation = props.getUserConfirmation,\n\t _props$initialEntries = props.initialEntries,\n\t initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n\t _props$initialIndex = props.initialIndex,\n\t initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n\t _props$keyLength = props.keyLength,\n\t keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\t\n\t\n\t var transitionManager = (0, _createTransitionManager2.default)();\n\t\n\t var setState = function setState(nextState) {\n\t _extends(history, nextState);\n\t\n\t history.length = history.entries.length;\n\t\n\t transitionManager.notifyListeners(history.location, history.action);\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength);\n\t };\n\t\n\t var index = clamp(initialIndex, 0, initialEntries.length - 1);\n\t var entries = initialEntries.map(function (entry, index) {\n\t return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, index ? createKey() : undefined) : (0, _LocationUtils.createLocation)(entry, undefined, index ? entry.key || createKey() : undefined);\n\t });\n\t\n\t // Public interface\n\t\n\t var createHref = _PathUtils.createPath;\n\t\n\t var push = function push(path, state) {\n\t false ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\t\n\t var action = 'PUSH';\n\t var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (!ok) return;\n\t\n\t var prevIndex = history.index;\n\t var nextIndex = prevIndex + 1;\n\t\n\t var nextEntries = history.entries.slice(0);\n\t if (nextEntries.length > nextIndex) {\n\t nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n\t } else {\n\t nextEntries.push(location);\n\t }\n\t\n\t setState({\n\t action: action,\n\t location: location,\n\t index: nextIndex,\n\t entries: nextEntries\n\t });\n\t });\n\t };\n\t\n\t var replace = function replace(path, state) {\n\t false ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\t\n\t var action = 'REPLACE';\n\t var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (!ok) return;\n\t\n\t history.entries[history.index] = location;\n\t\n\t setState({ action: action, location: location });\n\t });\n\t };\n\t\n\t var go = function go(n) {\n\t var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\t\n\t var action = 'POP';\n\t var location = history.entries[nextIndex];\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (ok) {\n\t setState({\n\t action: action,\n\t location: location,\n\t index: nextIndex\n\t });\n\t } else {\n\t // Mimic the behavior of DOM histories by\n\t // causing a render after a cancelled POP.\n\t setState();\n\t }\n\t });\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var canGo = function canGo(n) {\n\t var nextIndex = history.index + n;\n\t return nextIndex >= 0 && nextIndex < history.entries.length;\n\t };\n\t\n\t var block = function block() {\n\t var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\t return transitionManager.setPrompt(prompt);\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return transitionManager.appendListener(listener);\n\t };\n\t\n\t var history = {\n\t length: entries.length,\n\t action: 'POP',\n\t location: entries[index],\n\t index: index,\n\t entries: entries,\n\t createHref: createHref,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t canGo: canGo,\n\t block: block,\n\t listen: listen\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createMemoryHistory;\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createMemoryHistory = __webpack_require__(31);\n\t\n\tvar _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);\n\t\n\tvar _normalizeHref = __webpack_require__(3);\n\t\n\tvar _normalizeHref2 = _interopRequireDefault(_normalizeHref);\n\t\n\tvar _install = __webpack_require__(19);\n\t\n\tvar _install2 = _interopRequireDefault(_install);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes,\n\t request = _ref.request;\n\t\n\t var history = (0, _createMemoryHistory2.default)();\n\t\n\t var location = (0, _normalizeHref2.default)({\n\t pathname: request.path,\n\t query: request.query\n\t });\n\t\n\t return (0, _install2.default)({ routes: routes, history: history, location: location });\n\t};\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.RouterProvider = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _react = __webpack_require__(34);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRedux = __webpack_require__(35);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tvar RouterProviderImpl = function (_Component) {\n\t _inherits(RouterProviderImpl, _Component);\n\t\n\t function RouterProviderImpl(props) {\n\t _classCallCheck(this, RouterProviderImpl);\n\t\n\t var _this = _possibleConstructorReturn(this, (RouterProviderImpl.__proto__ || Object.getPrototypeOf(RouterProviderImpl)).call(this, props));\n\t\n\t _this.router = {\n\t store: props.store\n\t };\n\t return _this;\n\t }\n\t\n\t _createClass(RouterProviderImpl, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t router: this.router\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var store = this.router.store;\n\t\n\t var routerState = store.getState().router;\n\t\n\t // Ensure that the router props from connect()\n\t // actually get to the child component(s)\n\t return (0, _react.cloneElement)(this.props.children, {\n\t router: _extends({}, routerState, {\n\t\n\t // This is a hack to allow routes to define\n\t // unserializable things like components\n\t result: store.routes[routerState.route]\n\t })\n\t });\n\t }\n\t }]);\n\t\n\t return RouterProviderImpl;\n\t}(_react.Component);\n\t\n\tRouterProviderImpl.childContextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar RouterProvider = exports.RouterProvider = (0, _reactRedux.connect)(function (state) {\n\t return {\n\t router: state.router\n\t };\n\t})(RouterProviderImpl);\n\t\n\texports.default = function (_ref) {\n\t var store = _ref.store;\n\t return function (ComposedComponent) {\n\t return function (props) {\n\t return _react2.default.createElement(\n\t RouterProvider,\n\t { store: store },\n\t _react2.default.createElement(ComposedComponent, props)\n\t );\n\t };\n\t };\n\t};\n\n/***/ },\n/* 34 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_34__;\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.connect = exports.Provider = undefined;\n\t\n\tvar _Provider = __webpack_require__(36);\n\t\n\tvar _Provider2 = _interopRequireDefault(_Provider);\n\t\n\tvar _connect = __webpack_require__(39);\n\t\n\tvar _connect2 = _interopRequireDefault(_connect);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\texports.Provider = _Provider2[\"default\"];\n\texports.connect = _connect2[\"default\"];\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = undefined;\n\t\n\tvar _react = __webpack_require__(34);\n\t\n\tvar _storeShape = __webpack_require__(37);\n\t\n\tvar _storeShape2 = _interopRequireDefault(_storeShape);\n\t\n\tvar _warning = __webpack_require__(38);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tvar didWarnAboutReceivingStore = false;\n\tfunction warnAboutReceivingStore() {\n\t if (didWarnAboutReceivingStore) {\n\t return;\n\t }\n\t didWarnAboutReceivingStore = true;\n\t\n\t (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n\t}\n\t\n\tvar Provider = function (_Component) {\n\t _inherits(Provider, _Component);\n\t\n\t Provider.prototype.getChildContext = function getChildContext() {\n\t return { store: this.store };\n\t };\n\t\n\t function Provider(props, context) {\n\t _classCallCheck(this, Provider);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.store = props.store;\n\t return _this;\n\t }\n\t\n\t Provider.prototype.render = function render() {\n\t return _react.Children.only(this.props.children);\n\t };\n\t\n\t return Provider;\n\t}(_react.Component);\n\t\n\texports[\"default\"] = Provider;\n\t\n\t\n\tif (false) {\n\t Provider.prototype.componentWillReceiveProps = function (nextProps) {\n\t var store = this.store;\n\t var nextStore = nextProps.store;\n\t\n\t\n\t if (store !== nextStore) {\n\t warnAboutReceivingStore();\n\t }\n\t };\n\t}\n\t\n\tProvider.propTypes = {\n\t store: _storeShape2[\"default\"].isRequired,\n\t children: _react.PropTypes.element.isRequired\n\t};\n\tProvider.childContextTypes = {\n\t store: _storeShape2[\"default\"].isRequired\n\t};\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _react = __webpack_require__(34);\n\t\n\texports[\"default\"] = _react.PropTypes.shape({\n\t subscribe: _react.PropTypes.func.isRequired,\n\t dispatch: _react.PropTypes.func.isRequired,\n\t getState: _react.PropTypes.func.isRequired\n\t});\n\n/***/ },\n/* 38 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = warning;\n\t/**\n\t * Prints a warning in the console if it exists.\n\t *\n\t * @param {String} message The warning message.\n\t * @returns {void}\n\t */\n\tfunction warning(message) {\n\t /* eslint-disable no-console */\n\t if (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t console.error(message);\n\t }\n\t /* eslint-enable no-console */\n\t try {\n\t // This error was thrown as a convenience so that if you enable\n\t // \"break on all exceptions\" in your console,\n\t // it would pause the execution at this line.\n\t throw new Error(message);\n\t /* eslint-disable no-empty */\n\t } catch (e) {}\n\t /* eslint-enable no-empty */\n\t}\n\n/***/ },\n/* 39 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _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\t\n\texports[\"default\"] = connect;\n\t\n\tvar _react = __webpack_require__(34);\n\t\n\tvar _storeShape = __webpack_require__(37);\n\t\n\tvar _storeShape2 = _interopRequireDefault(_storeShape);\n\t\n\tvar _shallowEqual = __webpack_require__(40);\n\t\n\tvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\t\n\tvar _wrapActionCreators = __webpack_require__(41);\n\t\n\tvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\t\n\tvar _warning = __webpack_require__(38);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _isPlainObject = __webpack_require__(44);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _hoistNonReactStatics = __webpack_require__(63);\n\t\n\tvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\t\n\tvar _invariant = __webpack_require__(11);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tvar defaultMapStateToProps = function defaultMapStateToProps(state) {\n\t return {};\n\t}; // eslint-disable-line no-unused-vars\n\tvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n\t return { dispatch: dispatch };\n\t};\n\tvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n\t return _extends({}, parentProps, stateProps, dispatchProps);\n\t};\n\t\n\tfunction getDisplayName(WrappedComponent) {\n\t return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\t}\n\t\n\tvar errorObject = { value: null };\n\tfunction tryCatch(fn, ctx) {\n\t try {\n\t return fn.apply(ctx);\n\t } catch (e) {\n\t errorObject.value = e;\n\t return errorObject;\n\t }\n\t}\n\t\n\t// Helps track hot reloading.\n\tvar nextVersion = 0;\n\t\n\tfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n\t var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\t\n\t var shouldSubscribe = Boolean(mapStateToProps);\n\t var mapState = mapStateToProps || defaultMapStateToProps;\n\t\n\t var mapDispatch = void 0;\n\t if (typeof mapDispatchToProps === 'function') {\n\t mapDispatch = mapDispatchToProps;\n\t } else if (!mapDispatchToProps) {\n\t mapDispatch = defaultMapDispatchToProps;\n\t } else {\n\t mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n\t }\n\t\n\t var finalMergeProps = mergeProps || defaultMergeProps;\n\t var _options$pure = options.pure,\n\t pure = _options$pure === undefined ? true : _options$pure,\n\t _options$withRef = options.withRef,\n\t withRef = _options$withRef === undefined ? false : _options$withRef;\n\t\n\t var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\t\n\t // Helps track hot reloading.\n\t var version = nextVersion++;\n\t\n\t return function wrapWithConnect(WrappedComponent) {\n\t var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\t\n\t function checkStateShape(props, methodName) {\n\t if (!(0, _isPlainObject2[\"default\"])(props)) {\n\t (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n\t }\n\t }\n\t\n\t function computeMergedProps(stateProps, dispatchProps, parentProps) {\n\t var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n\t if (false) {\n\t checkStateShape(mergedProps, 'mergeProps');\n\t }\n\t return mergedProps;\n\t }\n\t\n\t var Connect = function (_Component) {\n\t _inherits(Connect, _Component);\n\t\n\t Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n\t return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n\t };\n\t\n\t function Connect(props, context) {\n\t _classCallCheck(this, Connect);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.version = version;\n\t _this.store = props.store || context.store;\n\t\n\t (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\t\n\t var storeState = _this.store.getState();\n\t _this.state = { storeState: storeState };\n\t _this.clearCache();\n\t return _this;\n\t }\n\t\n\t Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n\t if (!this.finalMapStateToProps) {\n\t return this.configureFinalMapState(store, props);\n\t }\n\t\n\t var state = store.getState();\n\t var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\t\n\t if (false) {\n\t checkStateShape(stateProps, 'mapStateToProps');\n\t }\n\t return stateProps;\n\t };\n\t\n\t Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n\t var mappedState = mapState(store.getState(), props);\n\t var isFactory = typeof mappedState === 'function';\n\t\n\t this.finalMapStateToProps = isFactory ? mappedState : mapState;\n\t this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\t\n\t if (isFactory) {\n\t return this.computeStateProps(store, props);\n\t }\n\t\n\t if (false) {\n\t checkStateShape(mappedState, 'mapStateToProps');\n\t }\n\t return mappedState;\n\t };\n\t\n\t Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n\t if (!this.finalMapDispatchToProps) {\n\t return this.configureFinalMapDispatch(store, props);\n\t }\n\t\n\t var dispatch = store.dispatch;\n\t\n\t var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\t\n\t if (false) {\n\t checkStateShape(dispatchProps, 'mapDispatchToProps');\n\t }\n\t return dispatchProps;\n\t };\n\t\n\t Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n\t var mappedDispatch = mapDispatch(store.dispatch, props);\n\t var isFactory = typeof mappedDispatch === 'function';\n\t\n\t this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n\t this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\t\n\t if (isFactory) {\n\t return this.computeDispatchProps(store, props);\n\t }\n\t\n\t if (false) {\n\t checkStateShape(mappedDispatch, 'mapDispatchToProps');\n\t }\n\t return mappedDispatch;\n\t };\n\t\n\t Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n\t var nextStateProps = this.computeStateProps(this.store, this.props);\n\t if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n\t return false;\n\t }\n\t\n\t this.stateProps = nextStateProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n\t var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n\t if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n\t return false;\n\t }\n\t\n\t this.dispatchProps = nextDispatchProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n\t var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n\t if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n\t return false;\n\t }\n\t\n\t this.mergedProps = nextMergedProps;\n\t return true;\n\t };\n\t\n\t Connect.prototype.isSubscribed = function isSubscribed() {\n\t return typeof this.unsubscribe === 'function';\n\t };\n\t\n\t Connect.prototype.trySubscribe = function trySubscribe() {\n\t if (shouldSubscribe && !this.unsubscribe) {\n\t this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n\t this.handleChange();\n\t }\n\t };\n\t\n\t Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n\t if (this.unsubscribe) {\n\t this.unsubscribe();\n\t this.unsubscribe = null;\n\t }\n\t };\n\t\n\t Connect.prototype.componentDidMount = function componentDidMount() {\n\t this.trySubscribe();\n\t };\n\t\n\t Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n\t if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n\t this.haveOwnPropsChanged = true;\n\t }\n\t };\n\t\n\t Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n\t this.tryUnsubscribe();\n\t this.clearCache();\n\t };\n\t\n\t Connect.prototype.clearCache = function clearCache() {\n\t this.dispatchProps = null;\n\t this.stateProps = null;\n\t this.mergedProps = null;\n\t this.haveOwnPropsChanged = true;\n\t this.hasStoreStateChanged = true;\n\t this.haveStatePropsBeenPrecalculated = false;\n\t this.statePropsPrecalculationError = null;\n\t this.renderedElement = null;\n\t this.finalMapDispatchToProps = null;\n\t this.finalMapStateToProps = null;\n\t };\n\t\n\t Connect.prototype.handleChange = function handleChange() {\n\t if (!this.unsubscribe) {\n\t return;\n\t }\n\t\n\t var storeState = this.store.getState();\n\t var prevStoreState = this.state.storeState;\n\t if (pure && prevStoreState === storeState) {\n\t return;\n\t }\n\t\n\t if (pure && !this.doStatePropsDependOnOwnProps) {\n\t var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n\t if (!haveStatePropsChanged) {\n\t return;\n\t }\n\t if (haveStatePropsChanged === errorObject) {\n\t this.statePropsPrecalculationError = errorObject.value;\n\t }\n\t this.haveStatePropsBeenPrecalculated = true;\n\t }\n\t\n\t this.hasStoreStateChanged = true;\n\t this.setState({ storeState: storeState });\n\t };\n\t\n\t Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n\t (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\t\n\t return this.refs.wrappedInstance;\n\t };\n\t\n\t Connect.prototype.render = function render() {\n\t var haveOwnPropsChanged = this.haveOwnPropsChanged,\n\t hasStoreStateChanged = this.hasStoreStateChanged,\n\t haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated,\n\t statePropsPrecalculationError = this.statePropsPrecalculationError,\n\t renderedElement = this.renderedElement;\n\t\n\t\n\t this.haveOwnPropsChanged = false;\n\t this.hasStoreStateChanged = false;\n\t this.haveStatePropsBeenPrecalculated = false;\n\t this.statePropsPrecalculationError = null;\n\t\n\t if (statePropsPrecalculationError) {\n\t throw statePropsPrecalculationError;\n\t }\n\t\n\t var shouldUpdateStateProps = true;\n\t var shouldUpdateDispatchProps = true;\n\t if (pure && renderedElement) {\n\t shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n\t shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n\t }\n\t\n\t var haveStatePropsChanged = false;\n\t var haveDispatchPropsChanged = false;\n\t if (haveStatePropsBeenPrecalculated) {\n\t haveStatePropsChanged = true;\n\t } else if (shouldUpdateStateProps) {\n\t haveStatePropsChanged = this.updateStatePropsIfNeeded();\n\t }\n\t if (shouldUpdateDispatchProps) {\n\t haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n\t }\n\t\n\t var haveMergedPropsChanged = true;\n\t if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n\t haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n\t } else {\n\t haveMergedPropsChanged = false;\n\t }\n\t\n\t if (!haveMergedPropsChanged && renderedElement) {\n\t return renderedElement;\n\t }\n\t\n\t if (withRef) {\n\t this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n\t ref: 'wrappedInstance'\n\t }));\n\t } else {\n\t this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n\t }\n\t\n\t return this.renderedElement;\n\t };\n\t\n\t return Connect;\n\t }(_react.Component);\n\t\n\t Connect.displayName = connectDisplayName;\n\t Connect.WrappedComponent = WrappedComponent;\n\t Connect.contextTypes = {\n\t store: _storeShape2[\"default\"]\n\t };\n\t Connect.propTypes = {\n\t store: _storeShape2[\"default\"]\n\t };\n\t\n\t if (false) {\n\t Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n\t if (this.version === version) {\n\t return;\n\t }\n\t\n\t // We are hot reloading!\n\t this.version = version;\n\t this.trySubscribe();\n\t this.clearCache();\n\t };\n\t }\n\t\n\t return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n\t };\n\t}\n\n/***/ },\n/* 40 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = shallowEqual;\n\tfunction shallowEqual(objA, objB) {\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t // Test for A's keys different from B.\n\t var hasOwn = Object.prototype.hasOwnProperty;\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = wrapActionCreators;\n\t\n\tvar _redux = __webpack_require__(42);\n\t\n\tfunction wrapActionCreators(actionCreators) {\n\t return function (dispatch) {\n\t return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n\t };\n\t}\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\t\n\tvar _createStore = __webpack_require__(43);\n\t\n\tvar _createStore2 = _interopRequireDefault(_createStore);\n\t\n\tvar _combineReducers = __webpack_require__(58);\n\t\n\tvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\t\n\tvar _bindActionCreators = __webpack_require__(60);\n\t\n\tvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\t\n\tvar _applyMiddleware = __webpack_require__(61);\n\t\n\tvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\t\n\tvar _compose = __webpack_require__(62);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tvar _warning = __webpack_require__(59);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/*\n\t* This is a dummy function to check if the function name has been altered by minification.\n\t* If the function has been minified and NODE_ENV !== 'production', warn the user.\n\t*/\n\tfunction isCrushed() {}\n\t\n\tif (false) {\n\t (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n\t}\n\t\n\texports.createStore = _createStore2['default'];\n\texports.combineReducers = _combineReducers2['default'];\n\texports.bindActionCreators = _bindActionCreators2['default'];\n\texports.applyMiddleware = _applyMiddleware2['default'];\n\texports.compose = _compose2['default'];\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.ActionTypes = undefined;\n\texports['default'] = createStore;\n\t\n\tvar _isPlainObject = __webpack_require__(44);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _symbolObservable = __webpack_require__(54);\n\t\n\tvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * These are private action types reserved by Redux.\n\t * For any unknown actions, you must return the current state.\n\t * If the current state is undefined, you must return the initial state.\n\t * Do not reference these action types directly in your code.\n\t */\n\tvar ActionTypes = exports.ActionTypes = {\n\t INIT: '@@redux/INIT'\n\t};\n\t\n\t/**\n\t * Creates a Redux store that holds the state tree.\n\t * The only way to change the data in the store is to call `dispatch()` on it.\n\t *\n\t * There should only be a single store in your app. To specify how different\n\t * parts of the state tree respond to actions, you may combine several reducers\n\t * into a single reducer function by using `combineReducers`.\n\t *\n\t * @param {Function} reducer A function that returns the next state tree, given\n\t * the current state tree and the action to handle.\n\t *\n\t * @param {any} [preloadedState] The initial state. You may optionally specify it\n\t * to hydrate the state from the server in universal apps, or to restore a\n\t * previously serialized user session.\n\t * If you use `combineReducers` to produce the root reducer function, this must be\n\t * an object with the same shape as `combineReducers` keys.\n\t *\n\t * @param {Function} enhancer The store enhancer. You may optionally specify it\n\t * to enhance the store with third-party capabilities such as middleware,\n\t * time travel, persistence, etc. The only store enhancer that ships with Redux\n\t * is `applyMiddleware()`.\n\t *\n\t * @returns {Store} A Redux store that lets you read the state, dispatch actions\n\t * and subscribe to changes.\n\t */\n\tfunction createStore(reducer, preloadedState, enhancer) {\n\t var _ref2;\n\t\n\t if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n\t enhancer = preloadedState;\n\t preloadedState = undefined;\n\t }\n\t\n\t if (typeof enhancer !== 'undefined') {\n\t if (typeof enhancer !== 'function') {\n\t throw new Error('Expected the enhancer to be a function.');\n\t }\n\t\n\t return enhancer(createStore)(reducer, preloadedState);\n\t }\n\t\n\t if (typeof reducer !== 'function') {\n\t throw new Error('Expected the reducer to be a function.');\n\t }\n\t\n\t var currentReducer = reducer;\n\t var currentState = preloadedState;\n\t var currentListeners = [];\n\t var nextListeners = currentListeners;\n\t var isDispatching = false;\n\t\n\t function ensureCanMutateNextListeners() {\n\t if (nextListeners === currentListeners) {\n\t nextListeners = currentListeners.slice();\n\t }\n\t }\n\t\n\t /**\n\t * Reads the state tree managed by the store.\n\t *\n\t * @returns {any} The current state tree of your application.\n\t */\n\t function getState() {\n\t return currentState;\n\t }\n\t\n\t /**\n\t * Adds a change listener. It will be called any time an action is dispatched,\n\t * and some part of the state tree may potentially have changed. You may then\n\t * call `getState()` to read the current state tree inside the callback.\n\t *\n\t * You may call `dispatch()` from a change listener, with the following\n\t * caveats:\n\t *\n\t * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n\t * If you subscribe or unsubscribe while the listeners are being invoked, this\n\t * will not have any effect on the `dispatch()` that is currently in progress.\n\t * However, the next `dispatch()` call, whether nested or not, will use a more\n\t * recent snapshot of the subscription list.\n\t *\n\t * 2. The listener should not expect to see all state changes, as the state\n\t * might have been updated multiple times during a nested `dispatch()` before\n\t * the listener is called. It is, however, guaranteed that all subscribers\n\t * registered before the `dispatch()` started will be called with the latest\n\t * state by the time it exits.\n\t *\n\t * @param {Function} listener A callback to be invoked on every dispatch.\n\t * @returns {Function} A function to remove this change listener.\n\t */\n\t function subscribe(listener) {\n\t if (typeof listener !== 'function') {\n\t throw new Error('Expected listener to be a function.');\n\t }\n\t\n\t var isSubscribed = true;\n\t\n\t ensureCanMutateNextListeners();\n\t nextListeners.push(listener);\n\t\n\t return function unsubscribe() {\n\t if (!isSubscribed) {\n\t return;\n\t }\n\t\n\t isSubscribed = false;\n\t\n\t ensureCanMutateNextListeners();\n\t var index = nextListeners.indexOf(listener);\n\t nextListeners.splice(index, 1);\n\t };\n\t }\n\t\n\t /**\n\t * Dispatches an action. It is the only way to trigger a state change.\n\t *\n\t * The `reducer` function, used to create the store, will be called with the\n\t * current state tree and the given `action`. Its return value will\n\t * be considered the **next** state of the tree, and the change listeners\n\t * will be notified.\n\t *\n\t * The base implementation only supports plain object actions. If you want to\n\t * dispatch a Promise, an Observable, a thunk, or something else, you need to\n\t * wrap your store creating function into the corresponding middleware. For\n\t * example, see the documentation for the `redux-thunk` package. Even the\n\t * middleware will eventually dispatch plain object actions using this method.\n\t *\n\t * @param {Object} action A plain object representing “what changed”. It is\n\t * a good idea to keep actions serializable so you can record and replay user\n\t * sessions, or use the time travelling `redux-devtools`. An action must have\n\t * a `type` property which may not be `undefined`. It is a good idea to use\n\t * string constants for action types.\n\t *\n\t * @returns {Object} For convenience, the same action object you dispatched.\n\t *\n\t * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n\t * return something else (for example, a Promise you can await).\n\t */\n\t function dispatch(action) {\n\t if (!(0, _isPlainObject2['default'])(action)) {\n\t throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n\t }\n\t\n\t if (typeof action.type === 'undefined') {\n\t throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n\t }\n\t\n\t if (isDispatching) {\n\t throw new Error('Reducers may not dispatch actions.');\n\t }\n\t\n\t try {\n\t isDispatching = true;\n\t currentState = currentReducer(currentState, action);\n\t } finally {\n\t isDispatching = false;\n\t }\n\t\n\t var listeners = currentListeners = nextListeners;\n\t for (var i = 0; i < listeners.length; i++) {\n\t listeners[i]();\n\t }\n\t\n\t return action;\n\t }\n\t\n\t /**\n\t * Replaces the reducer currently used by the store to calculate the state.\n\t *\n\t * You might need this if your app implements code splitting and you want to\n\t * load some of the reducers dynamically. You might also need this if you\n\t * implement a hot reloading mechanism for Redux.\n\t *\n\t * @param {Function} nextReducer The reducer for the store to use instead.\n\t * @returns {void}\n\t */\n\t function replaceReducer(nextReducer) {\n\t if (typeof nextReducer !== 'function') {\n\t throw new Error('Expected the nextReducer to be a function.');\n\t }\n\t\n\t currentReducer = nextReducer;\n\t dispatch({ type: ActionTypes.INIT });\n\t }\n\t\n\t /**\n\t * Interoperability point for observable/reactive libraries.\n\t * @returns {observable} A minimal observable of state changes.\n\t * For more information, see the observable proposal:\n\t * https://github.com/zenparsing/es-observable\n\t */\n\t function observable() {\n\t var _ref;\n\t\n\t var outerSubscribe = subscribe;\n\t return _ref = {\n\t /**\n\t * The minimal observable subscription method.\n\t * @param {Object} observer Any object that can be used as an observer.\n\t * The observer object should have a `next` method.\n\t * @returns {subscription} An object with an `unsubscribe` method that can\n\t * be used to unsubscribe the observable from the store, and prevent further\n\t * emission of values from the observable.\n\t */\n\t subscribe: function subscribe(observer) {\n\t if (typeof observer !== 'object') {\n\t throw new TypeError('Expected the observer to be an object.');\n\t }\n\t\n\t function observeState() {\n\t if (observer.next) {\n\t observer.next(getState());\n\t }\n\t }\n\t\n\t observeState();\n\t var unsubscribe = outerSubscribe(observeState);\n\t return { unsubscribe: unsubscribe };\n\t }\n\t }, _ref[_symbolObservable2['default']] = function () {\n\t return this;\n\t }, _ref;\n\t }\n\t\n\t // When a store is created, an \"INIT\" action is dispatched so that every\n\t // reducer returns their initial state. This effectively populates\n\t // the initial state tree.\n\t dispatch({ type: ActionTypes.INIT });\n\t\n\t return _ref2 = {\n\t dispatch: dispatch,\n\t subscribe: subscribe,\n\t getState: getState,\n\t replaceReducer: replaceReducer\n\t }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n\t}\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar baseGetTag = __webpack_require__(45),\n\t getPrototype = __webpack_require__(51),\n\t isObjectLike = __webpack_require__(53);\n\t\n\t/** `Object#toString` result references. */\n\tvar objectTag = '[object Object]';\n\t\n\t/** Used for built-in method references. */\n\tvar funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\t\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Used to infer the `Object` constructor. */\n\tvar objectCtorString = funcToString.call(Object);\n\t\n\t/**\n\t * Checks if `value` is a plain object, that is, an object created by the\n\t * `Object` constructor or one with a `[[Prototype]]` of `null`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.8.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * _.isPlainObject(new Foo);\n\t * // => false\n\t *\n\t * _.isPlainObject([1, 2, 3]);\n\t * // => false\n\t *\n\t * _.isPlainObject({ 'x': 0, 'y': 0 });\n\t * // => true\n\t *\n\t * _.isPlainObject(Object.create(null));\n\t * // => true\n\t */\n\tfunction isPlainObject(value) {\n\t if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n\t return false;\n\t }\n\t var proto = getPrototype(value);\n\t if (proto === null) {\n\t return true;\n\t }\n\t var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n\t return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n\t funcToString.call(Ctor) == objectCtorString;\n\t}\n\t\n\tmodule.exports = isPlainObject;\n\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(46),\n\t getRawTag = __webpack_require__(49),\n\t objectToString = __webpack_require__(50);\n\t\n\t/** `Object#toString` result references. */\n\tvar nullTag = '[object Null]',\n\t undefinedTag = '[object Undefined]';\n\t\n\t/** Built-in value references. */\n\tvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\t\n\t/**\n\t * The base implementation of `getTag` without fallbacks for buggy environments.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t if (value == null) {\n\t return value === undefined ? undefinedTag : nullTag;\n\t }\n\t return (symToStringTag && symToStringTag in Object(value))\n\t ? getRawTag(value)\n\t : objectToString(value);\n\t}\n\t\n\tmodule.exports = baseGetTag;\n\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar root = __webpack_require__(47);\n\t\n\t/** Built-in value references. */\n\tvar Symbol = root.Symbol;\n\t\n\tmodule.exports = Symbol;\n\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar freeGlobal = __webpack_require__(48);\n\t\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\t\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\t\n\tmodule.exports = root;\n\n\n/***/ },\n/* 48 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\t\n\tmodule.exports = freeGlobal;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(46);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString = objectProto.toString;\n\t\n\t/** Built-in value references. */\n\tvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\t\n\t/**\n\t * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the raw `toStringTag`.\n\t */\n\tfunction getRawTag(value) {\n\t var isOwn = hasOwnProperty.call(value, symToStringTag),\n\t tag = value[symToStringTag];\n\t\n\t try {\n\t value[symToStringTag] = undefined;\n\t var unmasked = true;\n\t } catch (e) {}\n\t\n\t var result = nativeObjectToString.call(value);\n\t if (unmasked) {\n\t if (isOwn) {\n\t value[symToStringTag] = tag;\n\t } else {\n\t delete value[symToStringTag];\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = getRawTag;\n\n\n/***/ },\n/* 50 */\n/***/ function(module, exports) {\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString = objectProto.toString;\n\t\n\t/**\n\t * Converts `value` to a string using `Object.prototype.toString`.\n\t *\n\t * @private\n\t * @param {*} value The value to convert.\n\t * @returns {string} Returns the converted string.\n\t */\n\tfunction objectToString(value) {\n\t return nativeObjectToString.call(value);\n\t}\n\t\n\tmodule.exports = objectToString;\n\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar overArg = __webpack_require__(52);\n\t\n\t/** Built-in value references. */\n\tvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\t\n\tmodule.exports = getPrototype;\n\n\n/***/ },\n/* 52 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\tmodule.exports = overArg;\n\n\n/***/ },\n/* 53 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return value != null && typeof value == 'object';\n\t}\n\t\n\tmodule.exports = isObjectLike;\n\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(55);\n\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global, module) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _ponyfill = __webpack_require__(57);\n\t\n\tvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar root; /* global window */\n\t\n\t\n\tif (typeof self !== 'undefined') {\n\t root = self;\n\t} else if (typeof window !== 'undefined') {\n\t root = window;\n\t} else if (typeof global !== 'undefined') {\n\t root = global;\n\t} else if (true) {\n\t root = module;\n\t} else {\n\t root = Function('return this')();\n\t}\n\t\n\tvar result = (0, _ponyfill2['default'])(root);\n\texports['default'] = result;\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(56)(module)))\n\n/***/ },\n/* 56 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(module) {\r\n\t\tif(!module.webpackPolyfill) {\r\n\t\t\tmodule.deprecate = function() {};\r\n\t\t\tmodule.paths = [];\r\n\t\t\t// module.parent = undefined by default\r\n\t\t\tmodule.children = [];\r\n\t\t\tmodule.webpackPolyfill = 1;\r\n\t\t}\r\n\t\treturn module;\r\n\t}\r\n\n\n/***/ },\n/* 57 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\texports['default'] = symbolObservablePonyfill;\n\tfunction symbolObservablePonyfill(root) {\n\t\tvar result;\n\t\tvar _Symbol = root.Symbol;\n\t\n\t\tif (typeof _Symbol === 'function') {\n\t\t\tif (_Symbol.observable) {\n\t\t\t\tresult = _Symbol.observable;\n\t\t\t} else {\n\t\t\t\tresult = _Symbol('observable');\n\t\t\t\t_Symbol.observable = result;\n\t\t\t}\n\t\t} else {\n\t\t\tresult = '@@observable';\n\t\t}\n\t\n\t\treturn result;\n\t};\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = combineReducers;\n\t\n\tvar _createStore = __webpack_require__(43);\n\t\n\tvar _isPlainObject = __webpack_require__(44);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _warning = __webpack_require__(59);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction getUndefinedStateErrorMessage(key, action) {\n\t var actionType = action && action.type;\n\t var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\t\n\t return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n\t}\n\t\n\tfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n\t var reducerKeys = Object.keys(reducers);\n\t var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\t\n\t if (reducerKeys.length === 0) {\n\t return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n\t }\n\t\n\t if (!(0, _isPlainObject2['default'])(inputState)) {\n\t return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n\t }\n\t\n\t var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n\t return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n\t });\n\t\n\t unexpectedKeys.forEach(function (key) {\n\t unexpectedKeyCache[key] = true;\n\t });\n\t\n\t if (unexpectedKeys.length > 0) {\n\t return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n\t }\n\t}\n\t\n\tfunction assertReducerSanity(reducers) {\n\t Object.keys(reducers).forEach(function (key) {\n\t var reducer = reducers[key];\n\t var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\t\n\t if (typeof initialState === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n\t }\n\t\n\t var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n\t if (typeof reducer(undefined, { type: type }) === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n\t }\n\t });\n\t}\n\t\n\t/**\n\t * Turns an object whose values are different reducer functions, into a single\n\t * reducer function. It will call every child reducer, and gather their results\n\t * into a single state object, whose keys correspond to the keys of the passed\n\t * reducer functions.\n\t *\n\t * @param {Object} reducers An object whose values correspond to different\n\t * reducer functions that need to be combined into one. One handy way to obtain\n\t * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n\t * undefined for any action. Instead, they should return their initial state\n\t * if the state passed to them was undefined, and the current state for any\n\t * unrecognized action.\n\t *\n\t * @returns {Function} A reducer function that invokes every reducer inside the\n\t * passed object, and builds a state object with the same shape.\n\t */\n\tfunction combineReducers(reducers) {\n\t var reducerKeys = Object.keys(reducers);\n\t var finalReducers = {};\n\t for (var i = 0; i < reducerKeys.length; i++) {\n\t var key = reducerKeys[i];\n\t\n\t if (false) {\n\t if (typeof reducers[key] === 'undefined') {\n\t (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n\t }\n\t }\n\t\n\t if (typeof reducers[key] === 'function') {\n\t finalReducers[key] = reducers[key];\n\t }\n\t }\n\t var finalReducerKeys = Object.keys(finalReducers);\n\t\n\t if (false) {\n\t var unexpectedKeyCache = {};\n\t }\n\t\n\t var sanityError;\n\t try {\n\t assertReducerSanity(finalReducers);\n\t } catch (e) {\n\t sanityError = e;\n\t }\n\t\n\t return function combination() {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (sanityError) {\n\t throw sanityError;\n\t }\n\t\n\t if (false) {\n\t var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\t if (warningMessage) {\n\t (0, _warning2['default'])(warningMessage);\n\t }\n\t }\n\t\n\t var hasChanged = false;\n\t var nextState = {};\n\t for (var i = 0; i < finalReducerKeys.length; i++) {\n\t var key = finalReducerKeys[i];\n\t var reducer = finalReducers[key];\n\t var previousStateForKey = state[key];\n\t var nextStateForKey = reducer(previousStateForKey, action);\n\t if (typeof nextStateForKey === 'undefined') {\n\t var errorMessage = getUndefinedStateErrorMessage(key, action);\n\t throw new Error(errorMessage);\n\t }\n\t nextState[key] = nextStateForKey;\n\t hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n\t }\n\t return hasChanged ? nextState : state;\n\t };\n\t}\n\n/***/ },\n/* 59 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = warning;\n\t/**\n\t * Prints a warning in the console if it exists.\n\t *\n\t * @param {String} message The warning message.\n\t * @returns {void}\n\t */\n\tfunction warning(message) {\n\t /* eslint-disable no-console */\n\t if (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t console.error(message);\n\t }\n\t /* eslint-enable no-console */\n\t try {\n\t // This error was thrown as a convenience so that if you enable\n\t // \"break on all exceptions\" in your console,\n\t // it would pause the execution at this line.\n\t throw new Error(message);\n\t /* eslint-disable no-empty */\n\t } catch (e) {}\n\t /* eslint-enable no-empty */\n\t}\n\n/***/ },\n/* 60 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = bindActionCreators;\n\tfunction bindActionCreator(actionCreator, dispatch) {\n\t return function () {\n\t return dispatch(actionCreator.apply(undefined, arguments));\n\t };\n\t}\n\t\n\t/**\n\t * Turns an object whose values are action creators, into an object with the\n\t * same keys, but with every function wrapped into a `dispatch` call so they\n\t * may be invoked directly. This is just a convenience method, as you can call\n\t * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n\t *\n\t * For convenience, you can also pass a single function as the first argument,\n\t * and get a function in return.\n\t *\n\t * @param {Function|Object} actionCreators An object whose values are action\n\t * creator functions. One handy way to obtain it is to use ES6 `import * as`\n\t * syntax. You may also pass a single function.\n\t *\n\t * @param {Function} dispatch The `dispatch` function available on your Redux\n\t * store.\n\t *\n\t * @returns {Function|Object} The object mimicking the original object, but with\n\t * every action creator wrapped into the `dispatch` call. If you passed a\n\t * function as `actionCreators`, the return value will also be a single\n\t * function.\n\t */\n\tfunction bindActionCreators(actionCreators, dispatch) {\n\t if (typeof actionCreators === 'function') {\n\t return bindActionCreator(actionCreators, dispatch);\n\t }\n\t\n\t if (typeof actionCreators !== 'object' || actionCreators === null) {\n\t throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n\t }\n\t\n\t var keys = Object.keys(actionCreators);\n\t var boundActionCreators = {};\n\t for (var i = 0; i < keys.length; i++) {\n\t var key = keys[i];\n\t var actionCreator = actionCreators[key];\n\t if (typeof actionCreator === 'function') {\n\t boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n\t }\n\t }\n\t return boundActionCreators;\n\t}\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _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\t\n\texports['default'] = applyMiddleware;\n\t\n\tvar _compose = __webpack_require__(62);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * Creates a store enhancer that applies middleware to the dispatch method\n\t * of the Redux store. This is handy for a variety of tasks, such as expressing\n\t * asynchronous actions in a concise manner, or logging every action payload.\n\t *\n\t * See `redux-thunk` package as an example of the Redux middleware.\n\t *\n\t * Because middleware is potentially asynchronous, this should be the first\n\t * store enhancer in the composition chain.\n\t *\n\t * Note that each middleware will be given the `dispatch` and `getState` functions\n\t * as named arguments.\n\t *\n\t * @param {...Function} middlewares The middleware chain to be applied.\n\t * @returns {Function} A store enhancer applying the middleware.\n\t */\n\tfunction applyMiddleware() {\n\t for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n\t middlewares[_key] = arguments[_key];\n\t }\n\t\n\t return function (createStore) {\n\t return function (reducer, preloadedState, enhancer) {\n\t var store = createStore(reducer, preloadedState, enhancer);\n\t var _dispatch = store.dispatch;\n\t var chain = [];\n\t\n\t var middlewareAPI = {\n\t getState: store.getState,\n\t dispatch: function dispatch(action) {\n\t return _dispatch(action);\n\t }\n\t };\n\t chain = middlewares.map(function (middleware) {\n\t return middleware(middlewareAPI);\n\t });\n\t _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\t\n\t return _extends({}, store, {\n\t dispatch: _dispatch\n\t });\n\t };\n\t };\n\t}\n\n/***/ },\n/* 62 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = compose;\n\t/**\n\t * Composes single-argument functions from right to left. The rightmost\n\t * function can take multiple arguments as it provides the signature for\n\t * the resulting composite function.\n\t *\n\t * @param {...Function} funcs The functions to compose.\n\t * @returns {Function} A function obtained by composing the argument functions\n\t * from right to left. For example, compose(f, g, h) is identical to doing\n\t * (...args) => f(g(h(...args))).\n\t */\n\t\n\tfunction compose() {\n\t for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n\t funcs[_key] = arguments[_key];\n\t }\n\t\n\t if (funcs.length === 0) {\n\t return function (arg) {\n\t return arg;\n\t };\n\t }\n\t\n\t if (funcs.length === 1) {\n\t return funcs[0];\n\t }\n\t\n\t var last = funcs[funcs.length - 1];\n\t var rest = funcs.slice(0, -1);\n\t return function () {\n\t return rest.reduceRight(function (composed, f) {\n\t return f(composed);\n\t }, last.apply(undefined, arguments));\n\t };\n\t}\n\n/***/ },\n/* 63 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Copyright 2015, Yahoo! Inc.\n\t * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n\t */\n\t'use strict';\n\t\n\tvar REACT_STATICS = {\n\t childContextTypes: true,\n\t contextTypes: true,\n\t defaultProps: true,\n\t displayName: true,\n\t getDefaultProps: true,\n\t mixins: true,\n\t propTypes: true,\n\t type: true\n\t};\n\t\n\tvar KNOWN_STATICS = {\n\t name: true,\n\t length: true,\n\t prototype: true,\n\t caller: true,\n\t arguments: true,\n\t arity: true\n\t};\n\t\n\tvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\t\n\tmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n\t if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\t var keys = Object.getOwnPropertyNames(sourceComponent);\n\t\n\t /* istanbul ignore else */\n\t if (isGetOwnPropertySymbolsAvailable) {\n\t keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n\t }\n\t\n\t for (var i = 0; i < keys.length; ++i) {\n\t if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n\t try {\n\t targetComponent[keys[i]] = sourceComponent[keys[i]];\n\t } catch (error) {\n\t\n\t }\n\t }\n\t }\n\t }\n\t\n\t return targetComponent;\n\t};\n\n\n/***/ },\n/* 64 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.PersistentQueryLink = exports.Link = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _react = __webpack_require__(34);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _actions = __webpack_require__(2);\n\t\n\tvar _normalizeHref = __webpack_require__(3);\n\t\n\tvar _normalizeHref2 = _interopRequireDefault(_normalizeHref);\n\t\n\tvar _stringifyHref = __webpack_require__(65);\n\t\n\tvar _stringifyHref2 = _interopRequireDefault(_stringifyHref);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar LEFT_MOUSE_BUTTON = 0;\n\t\n\tvar isNotLeftClick = function isNotLeftClick(e) {\n\t return e.button && e.button !== LEFT_MOUSE_BUTTON;\n\t};\n\t\n\tvar hasModifier = function hasModifier(e) {\n\t return Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\t};\n\t\n\tvar shouldIgnoreClick = function shouldIgnoreClick(_ref) {\n\t var e = _ref.e,\n\t target = _ref.target;\n\t return hasModifier(e) || isNotLeftClick(e) || e.defaultPrevented || target;\n\t}; // let browser handle target=\"_blank\"\n\t\n\tvar handleClick = function handleClick(_ref2) {\n\t var e = _ref2.e,\n\t target = _ref2.target,\n\t href = _ref2.href,\n\t onClick = _ref2.onClick,\n\t replaceState = _ref2.replaceState,\n\t persistQuery = _ref2.persistQuery,\n\t store = _ref2.store;\n\t\n\t if (onClick) {\n\t onClick(e);\n\t }\n\t\n\t if (shouldIgnoreClick({ e: e, target: target })) {\n\t return;\n\t }\n\t\n\t e.preventDefault();\n\t\n\t var navigate = replaceState ? _actions.replace : _actions.push;\n\t store.dispatch(navigate(href, { persistQuery: persistQuery }));\n\t};\n\t\n\tvar Link = function Link(props, context) {\n\t var rawHref = props.href,\n\t children = props.children,\n\t onClick = props.onClick,\n\t target = props.target,\n\t replaceState = props.replaceState,\n\t persistQuery = props.persistQuery,\n\t rest = _objectWithoutProperties(props, ['href', 'children', 'onClick', 'target', 'replaceState', 'persistQuery']);\n\t\n\t var store = context.router.store;\n\t\n\t var _store$getState = store.getState(),\n\t basename = _store$getState.router.basename;\n\t\n\t // Ensure the href has both a search and a query when needed\n\t\n\t\n\t var href = (0, _normalizeHref2.default)(rawHref);\n\t\n\t var clickHandler = function clickHandler(e) {\n\t return handleClick({\n\t e: e,\n\t target: target,\n\t href: href,\n\t onClick: onClick,\n\t replaceState: replaceState,\n\t persistQuery: persistQuery,\n\t store: store\n\t });\n\t };\n\t\n\t return _react2.default.createElement(\n\t 'a',\n\t _extends({\n\t href: (0, _stringifyHref2.default)(href, basename),\n\t onClick: clickHandler\n\t }, rest),\n\t children\n\t );\n\t};\n\t\n\tLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar PersistentQueryLink = function (_Component) {\n\t _inherits(PersistentQueryLink, _Component);\n\t\n\t function PersistentQueryLink() {\n\t _classCallCheck(this, PersistentQueryLink);\n\t\n\t return _possibleConstructorReturn(this, (PersistentQueryLink.__proto__ || Object.getPrototypeOf(PersistentQueryLink)).apply(this, arguments));\n\t }\n\t\n\t _createClass(PersistentQueryLink, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props,\n\t children = _props.children,\n\t rest = _objectWithoutProperties(_props, ['children']);\n\t\n\t return _react2.default.createElement(\n\t Link,\n\t _extends({}, rest, { persistQuery: true }),\n\t children\n\t );\n\t }\n\t }]);\n\t\n\t return PersistentQueryLink;\n\t}(_react.Component);\n\t\n\tPersistentQueryLink.propTypes = {\n\t children: _react.PropTypes.node\n\t};\n\t\n\tPersistentQueryLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.Link = Link;\n\texports.PersistentQueryLink = PersistentQueryLink;\n\n/***/ },\n/* 65 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\texports.default = function (href, basename) {\n\t if (typeof href === 'string') {\n\t return '' + (basename || '') + href;\n\t }\n\t\n\t var pathname = href.pathname,\n\t search = href.search;\n\t\n\t return '' + (basename || '') + pathname + (search || '');\n\t};\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _react = __webpack_require__(34);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _matchCache = __webpack_require__(23);\n\t\n\tvar _matchCache2 = _interopRequireDefault(_matchCache);\n\t\n\tvar _generateId = __webpack_require__(67);\n\t\n\tvar _generateId2 = _interopRequireDefault(_generateId);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tvar relativePaths = function relativePaths(ComposedComponent) {\n\t var RelativeFragment = function (_Component) {\n\t _inherits(RelativeFragment, _Component);\n\t\n\t function RelativeFragment() {\n\t _classCallCheck(this, RelativeFragment);\n\t\n\t var _this = _possibleConstructorReturn(this, (RelativeFragment.__proto__ || Object.getPrototypeOf(RelativeFragment)).call(this));\n\t\n\t _this.id = (0, _generateId2.default)();\n\t return _this;\n\t }\n\t\n\t _createClass(RelativeFragment, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t var parentRoute = this.context.parentRoute;\n\t var forRoute = this.props.forRoute;\n\t\n\t\n\t return {\n\t // Append the parent route if this isn't the first\n\t // RelativeFragment in the hierarchy.\n\t parentRoute: parentRoute && parentRoute !== '/' && parentRoute !== forRoute ? '' + parentRoute + (forRoute || '') : forRoute,\n\t parentId: this.id\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props,\n\t children = _props.children,\n\t forRoute = _props.forRoute,\n\t rest = _objectWithoutProperties(_props, ['children', 'forRoute']);\n\t\n\t var _context = this.context,\n\t router = _context.router,\n\t parentRoute = _context.parentRoute,\n\t parentId = _context.parentId;\n\t var store = router.store;\n\t\n\t\n\t var location = store.getState().router;\n\t\n\t var routePrefix = parentRoute && parentRoute !== '/' ? parentRoute : '';\n\t\n\t return _react2.default.createElement(ComposedComponent, _extends({\n\t parentId: parentId,\n\t location: location,\n\t matchRoute: store.matchWildcardRoute,\n\t forRoute: forRoute && '' + routePrefix + forRoute,\n\t children: children\n\t }, rest));\n\t }\n\t }]);\n\t\n\t return RelativeFragment;\n\t }(_react.Component);\n\t\n\t // Consumes this context...\n\t\n\t\n\t RelativeFragment.contextTypes = {\n\t router: _react.PropTypes.object,\n\t parentRoute: _react.PropTypes.string,\n\t parentId: _react.PropTypes.string\n\t };\n\t\n\t // ...and provides this context.\n\t RelativeFragment.childContextTypes = {\n\t parentRoute: _react.PropTypes.string,\n\t parentId: _react.PropTypes.string\n\t };\n\t\n\t return RelativeFragment;\n\t};\n\t\n\tvar Fragment = function Fragment(props) {\n\t var location = props.location,\n\t matchRoute = props.matchRoute,\n\t forRoute = props.forRoute,\n\t withConditions = props.withConditions,\n\t children = props.children,\n\t parentId = props.parentId;\n\t\n\t\n\t var matchResult = matchRoute(location.pathname, forRoute);\n\t\n\t if (!matchResult || withConditions && !withConditions(location) || forRoute && matchResult.route !== forRoute) {\n\t return null;\n\t }\n\t\n\t if (parentId) {\n\t var previousMatch = _matchCache2.default.get(parentId);\n\t if (previousMatch && previousMatch !== forRoute) {\n\t return null;\n\t } else {\n\t _matchCache2.default.add(parentId, forRoute);\n\t }\n\t }\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t children\n\t );\n\t};\n\t\n\texports.default = relativePaths(Fragment);\n\n/***/ },\n/* 67 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\t/**\n\t * Returns a psuedo-unique identifier used by fragments\n\t * to track match status within MatchCache.\n\t * @returns {String} id\n\t * \n\t */\n\texports.default = function () {\n\t var radix = 16;\n\t var length = 8;\n\t return (Math.random() * Date.now()).toString(radix).slice(0, length);\n\t};\n\n/***/ }\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// redux-little-router.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 8270e03855d1ea57488c","// @flow\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_BACK,\n GO_FORWARD\n} from './types';\n\nimport {\n push,\n replace,\n go,\n goBack,\n goForward,\n initializeCurrentLocation\n} from './actions';\n\nimport routerForBrowser from './environment/browser-router';\nimport routerForExpress from './environment/express-router';\nimport routerForHapi from './environment/hapi-router';\n\nimport provideRouter, { RouterProvider } from './components/provider';\nimport { Link, PersistentQueryLink } from './components/link';\nimport Fragment from './components/fragment';\n\nexport {\n // High-level Redux API\n routerForBrowser,\n routerForExpress,\n routerForHapi,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action creators\n push,\n replace,\n go,\n goBack,\n goForward,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n};\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport type { Location as HistoryLocation } from 'history';\n\nexport type Query = { [key: string]: string };\nexport type Params = { [key: string]: string };\n\nexport type LocationOptions = {\n persistQuery?: bool\n};\n\nexport type Location = HistoryLocation & {\n basename?: string,\n options?: LocationOptions,\n params?: Params,\n previous?: Location,\n query?: Query,\n result?: Object\n};\n\nexport type Href = string | Location;\n\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\nexport type BareAction = {\n type: 'ROUTER_GO_BACK' | 'ROUTER_GO_FORWARD'\n};\n\nexport type IndexedAction = {\n type: 'ROUTER_GO',\n payload: number\n};\n\nexport type LocationAction = {\n type: 'ROUTER_LOCATION_CHANGED' | 'ROUTER_PUSH' | 'ROUTER_REPLACE',\n payload: Location\n};\n\nexport type RouterAction =\n | BareAction\n | IndexedAction\n | LocationAction;\n\n\n\n// WEBPACK FOOTER //\n// ./types.js","// @flow\nimport type {\n Location,\n LocationOptions,\n Href\n} from './types';\n\nimport {\n PUSH,\n REPLACE,\n GO,\n GO_BACK,\n GO_FORWARD,\n LOCATION_CHANGED\n} from './types';\n\nimport normalizeHref from './util/normalize-href';\nimport { packState } from './util/location-state';\n\nexport const push = (href: Href, options: LocationOptions) => ({\n type: PUSH,\n payload: packState(normalizeHref(href), options)\n});\n\nexport const replace = (href: Href, options: LocationOptions) => ({\n type: REPLACE,\n payload: packState(normalizeHref(href), options)\n});\n\nexport const go = (index: number) => ({\n type: GO,\n payload: index\n});\n\nexport const goBack = () => ({ type: GO_BACK });\nexport const goForward = () => ({ type: GO_FORWARD });\n\nexport const locationDidChange = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\n\n\n// WEBPACK FOOTER //\n// ./actions.js","// @flow\nimport type { Href, Location } from '../types';\n\nimport qs from 'query-string';\n\nexport default (href: Href): Location => {\n if (typeof href === 'string') {\n const pathnameAndSearch = href.split('?');\n const pathname = pathnameAndSearch[0];\n const search = pathnameAndSearch[1];\n const query = search && qs.parse(search);\n\n return query\n ? { pathname, query, search: `?${search}` }\n : { pathname };\n }\n\n const { search, query } = href;\n\n const resolvedSearch = search || (\n query &&\n Object.keys(query).length &&\n `?${qs.stringify(query)}`\n ) || '';\n const resolvedQuery = query || qs.parse(search);\n\n return {\n ...href,\n search: resolvedSearch,\n query: resolvedQuery\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/normalize-href.js","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result || accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tformatter(decodeURIComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/query-string/index.js\n// module id = 4\n// module chunks = 0","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/strict-uri-encode/index.js\n// module id = 5\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/object-assign/index.js\n// module id = 6\n// module chunks = 0","// @flow\nimport type { Location as HistoryLocation } from 'history';\nimport type { Location, LocationOptions } from '../types';\n\nexport const packState = (\n location: Location,\n options: LocationOptions = {}\n): Location => {\n // eslint-disable-next-line no-unused-vars\n const { query, ...rest } = location;\n return {\n ...rest,\n state: {\n ...rest.state || {},\n\n // Namespace our state to prevent interference\n // with user-provided state\n reduxLittleRouter: {\n query: query || {},\n options\n }\n }\n };\n};\n\nexport const unpackState = (location: HistoryLocation) => {\n const { state = {}, ...restLocation } = location;\n const { reduxLittleRouter = {}, ...restState } = state;\n const { query = {}, options = {} } = reduxLittleRouter;\n\n return {\n ...restLocation,\n state: restState,\n query,\n options\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/location-state.js","// @flow\nimport createBrowserHistory from 'history/createBrowserHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype BrowserRouterArgs = {\n routes: Object,\n basename: string,\n getLocation: () => Location,\n passRouterStateToReducer?: bool\n};\n\n/* istanbul ignore next: unstubbable! */\nconst realLocation = () => window.location;\n\nexport default ({\n routes,\n basename,\n getLocation = realLocation\n}: BrowserRouterArgs) => {\n const history = createBrowserHistory({ basename });\n\n const { pathname: fullPathname, search } = getLocation();\n\n // Strip the basename from the initial pathname\n const pathname = basename\n ? fullPathname.replace(basename, '')\n : fullPathname;\n\n const descriptor = basename\n ? { pathname, basename, search }\n : { pathname, search };\n\n const location = normalizeHref(descriptor);\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/browser-router.js","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/mjackson/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'Browser history needs a DOM') : (0, _invariant2.default)(false) : void 0;\n\n var globalHistory = window.history;\n var canUseHistory = (0, _DOMUtils.supportsHistory)();\n var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n var _props$basename = props.basename,\n basename = _props$basename === undefined ? '' : _props$basename,\n _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n if (basename) path = (0, _PathUtils.stripPrefix)(path, basename);\n\n return _extends({}, (0, _PathUtils.parsePath)(path), {\n state: state,\n key: key\n });\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n (function () {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n })();\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + (0, _PathUtils.createPath)(location);\n };\n\n var push = function push(path, state) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n return unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createBrowserHistory.js\n// module id = 9\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/warning/browser.js\n// module id = 10\n// module chunks = 0","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/invariant/browser.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\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 _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = (0, _PathUtils.parsePath)(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/LocationUtils.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar isAbsolute = function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n};\n\n// About 1.5x faster than the two-arg version of Array#splice()\nvar spliceOne = function spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }list.pop();\n};\n\n// This implementation is based heavily on node's url.parse\nvar resolvePathname = function resolvePathname(to) {\n var from = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n};\n\nmodule.exports = resolvePathname;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/resolve-pathname/index.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar valueEqual = function valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) return false;\n\n return a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n};\n\nexports.default = valueEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/value-equal/index.js\n// module id = 14\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar stripPrefix = exports.stripPrefix = function stripPrefix(path, prefix) {\n return path.indexOf(prefix) === 0 ? path.substr(prefix.length) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/PathUtils.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time') : void 0;\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexports.default = createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createTransitionManager.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/ExecutionEnvironment.js\n// module id = 17\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/DOMUtils.js\n// module id = 18\n// module chunks = 0","// @flow\nimport type { History } from 'history';\nimport type { Location } from './types';\n\nimport reducer from './reducer';\nimport middleware from './middleware';\nimport enhancer from './enhancer';\n\nimport { default as matcherFactory } from './util/create-matcher';\nimport validateRoutes from './util/validate-routes';\nimport flattenRoutes from './util/flatten-routes';\n\ntype InstallArgs = {\n routes: Object,\n history: History,\n location: Location,\n createMatcher?: Function\n};\n\nexport default ({\n routes: nestedRoutes,\n history,\n location,\n createMatcher = matcherFactory\n}: InstallArgs) => {\n validateRoutes(nestedRoutes);\n const routes = flattenRoutes(nestedRoutes);\n\n const matchRoute = createMatcher(routes);\n const matchWildcardRoute = createMatcher(routes, true);\n\n return {\n reducer: reducer({\n ...location,\n ...matchRoute(location.pathname)\n }),\n middleware: middleware({ history }),\n enhancer: enhancer({\n routes,\n history,\n matchRoute,\n matchWildcardRoute\n })\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./install.js","// @flow\nimport type { Location, LocationOptions, LocationAction } from './types';\n\nimport { LOCATION_CHANGED } from './types';\n\nconst flow = (...funcs: Array) =>\n funcs.reduce((prev, curr) => (...args) => curr(prev(...args)));\n\ntype ResolverArgs = {\n oldLocation: Location,\n newLocation: Location,\n options: LocationOptions\n};\n\nconst resolveQuery = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => {\n const { query: oldQuery, search: oldSearch } = oldLocation;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n options.persistQuery &&\n oldQuery &&\n !newLocation.search &&\n !newLocation.query\n ) {\n return {\n oldLocation,\n newLocation: {\n ...newLocation,\n query: oldQuery,\n search: oldSearch\n },\n options\n };\n }\n\n return { oldLocation, newLocation, options };\n};\n\nconst resolveBasename = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => {\n const { basename } = oldLocation;\n if (basename) {\n return {\n oldLocation,\n newLocation: { basename, ...newLocation },\n options\n };\n }\n return { oldLocation, newLocation, options };\n};\n\nconst resolvePrevious = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => ({\n oldLocation,\n newLocation: {\n ...newLocation,\n previous: oldLocation\n },\n options\n});\n\nexport default\n (initialLocation: Location) =>\n (state: Location = initialLocation, action: LocationAction) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (\n state.pathname === action.payload.pathname &&\n state.search === action.payload.search\n ) {\n return state;\n }\n\n // Extract the previous state, but dump the\n // previous state's previous state so that the\n // state tree doesn't keep growing indefinitely\n // eslint-disable-next-line no-unused-vars\n const { previous, ...oldLocation } = state;\n const { options } = action.payload;\n\n const resolveLocation = flow(\n resolveQuery,\n resolveBasename,\n resolvePrevious\n );\n\n return resolveLocation({\n oldLocation,\n newLocation: action.payload,\n options: options || {}\n }).newLocation;\n }\n return state;\n };\n\n\n\n// WEBPACK FOOTER //\n// ./reducer.js","/* eslint-disable consistent-return */\n// @flow\n\nimport type { History } from 'history';\nimport type { Dispatch } from 'redux';\nimport type { RouterAction } from './types';\n\nimport {\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './types';\n\ntype MiddlewareArgs = { history: History };\nexport default\n ({ history }: MiddlewareArgs) => () =>\n (next: Dispatch<*>) =>\n (action: RouterAction) => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n // No return, no next() here\n // We stop all history events from progressing further through the dispatch chain...\n break;\n case REPLACE:\n history.replace(action.payload);\n break;\n case GO:\n history.go(action.payload);\n break;\n case GO_BACK:\n history.goBack();\n break;\n case GO_FORWARD:\n history.goForward();\n break;\n default:\n // ...but we want to leave all events we don't care about undisturbed\n return next(action);\n }\n };\n\n\n\n// WEBPACK FOOTER //\n// ./middleware.js","// @flow\n\nimport type { StoreCreator, Reducer, StoreEnhancer } from 'redux';\nimport type { History } from 'history';\n\nimport { locationDidChange } from './actions';\n\nimport { unpackState } from './util/location-state';\nimport matchCache from './util/match-cache';\n\ntype EnhancerArgs = {\n routes: Object,\n history: History,\n matchRoute: Function,\n matchWildcardRoute: Function\n};\nexport default ({\n routes,\n history,\n matchRoute,\n matchWildcardRoute\n}: EnhancerArgs) =>\n(createStore: StoreCreator<*, *>) => (\n userReducer: Reducer<*, *>,\n initialState: Location,\n enhancer: StoreEnhancer<*, *>\n) => {\n const store = createStore(\n userReducer,\n initialState,\n enhancer\n );\n\n history.listen(location => {\n matchCache.clear();\n store.dispatch(locationDidChange({\n ...unpackState(location),\n ...matchRoute(location.pathname)\n }));\n });\n\n return {\n ...store,\n routes,\n matchRoute,\n matchWildcardRoute\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./enhancer.js","// @flow\n\nconst ROUTE_FALLBACK = '@ROUTE_FALLBACK';\n\nexport class MatchCache {\n _data: { [parentId: string]: string };\n constructor() {\n this._data = {};\n }\n\n add(parentId: string, route: ?string) : void {\n this._data[parentId] = route || ROUTE_FALLBACK;\n }\n\n get(parentId: string) : null | string {\n return this._data[parentId] || null;\n }\n\n clear() : void {\n this._data = {};\n }\n}\n\nexport default new MatchCache();\n\n\n\n// WEBPACK FOOTER //\n// ./util/match-cache.js","// @flow\nimport UrlPattern from 'url-pattern';\n\ntype RouteCache = {\n route: string,\n pattern: UrlPattern,\n result: Object\n};\n\nconst find = (list, predicate) => {\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n if (predicate(item)) {\n return item;\n }\n }\n return null;\n};\n\nconst wildcardMatcher = (routeList: Array) =>\n (incomingUrl: string, routeToMatch: string = '') => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n const storedRoute = find(routeList, route =>\n route.route === routeToMatch\n );\n\n if (!storedRoute) { return null; }\n\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n\n return null;\n };\n\nconst eagerMatcher = (routeList: Array) =>\n (incomingUrl: string) => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n\nexport default (routes: Object, wildcard: bool = false) => {\n const routeList = Object.keys(routes)\n .sort().reverse().map(route => ({\n route,\n pattern: new UrlPattern(\n // Prepend with wildcards if requested\n `${route}${wildcard && '*' || ''}`\n ),\n result: routes[route]\n }));\n\n return wildcard\n ? wildcardMatcher(routeList)\n : eagerMatcher(routeList);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/create-matcher.js","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/url-pattern/lib/url-pattern.js\n// module id = 25\n// module chunks = 0","module.exports = __webpack_amd_options__;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/webpack/buildin/amd-options.js\n// module id = 26\n// module chunks = 0","// @flow\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\nexport default (routes: Object) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (\n !Object.keys(routes)\n .every(route => route.indexOf('/') === 0)\n ) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/validate-routes.js","// @flow\nimport assign from 'lodash.assign';\n\nconst filterObject = (target, predicate) =>\n Object.keys(target).reduce((acc, key) => {\n return predicate(key)\n ? { ...acc, [key]: target[key] }\n : acc;\n }, {});\n\nconst mapObject = (target, transformKey, transformValue) =>\n Object.keys(target).reduce((acc, key) => {\n const newKey = transformKey ?\n transformKey(key) : key;\n const newValue = transformValue ?\n transformValue(target[key]) : target[key];\n return { ...acc, [newKey]: newValue };\n }, {});\n\nconst onlyRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') === 0);\n\nconst withoutRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') !== 0);\n\nconst flattenRoutes = (routes: Object, acc: Object = {}) => {\n Object.keys(routes).forEach(key => {\n const baseRoute = key === '/' ? '' : key;\n flattenRoutes(\n mapObject(\n onlyRoutes(routes[key]),\n routeKey => `${baseRoute}${routeKey}`,\n routeValue => ({\n ...routeValue,\n parent: {\n ...withoutRoutes(routes[key]),\n route: key\n }\n })\n ),\n acc\n );\n });\n\n assign(acc, mapObject(routes, null, withoutRoutes));\n\n return acc;\n};\n\nexport default flattenRoutes;\n\n\n\n// WEBPACK FOOTER //\n// ./util/flatten-routes.js","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash.assign/index.js\n// module id = 29\n// module chunks = 0","// @flow\nimport createMemoryHistory from 'history/createMemoryHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n baseUrl: string,\n url: string,\n query: {[key: string]: string}\n },\n passRouterStateToReducer?: bool\n};\n\nconst locationForRequest = request => {\n const { path: pathname, baseUrl: basename, query } = request;\n const descriptor = basename\n ? { pathname, basename, query }\n : { pathname, query };\n return normalizeHref(descriptor);\n};\n\nexport default ({ routes, request }: ServerRouterArgs) => {\n const history = createMemoryHistory();\n const location = locationForRequest(request);\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/express-router.js","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry, index) {\n return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, index ? createKey() : undefined) : (0, _LocationUtils.createLocation)(entry, undefined, index ? entry.key || createKey() : undefined);\n });\n\n // Public interface\n\n var createHref = _PathUtils.createPath;\n\n var push = function push(path, state) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createMemoryHistory.js\n// module id = 31\n// module chunks = 0","// @flow\nimport createMemoryHistory from 'history/createMemoryHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n url: string,\n query: { [key: string]: string }\n }\n};\n\nexport default ({\n routes,\n request\n}: ServerRouterArgs) => {\n const history = createMemoryHistory();\n\n const location = normalizeHref({\n pathname: request.path,\n query: request.query\n });\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/hapi-router.js","// @flow\nimport type { Store } from 'redux';\n\nimport React, {\n Component,\n PropTypes,\n cloneElement\n} from 'react';\n\nimport { connect } from 'react-redux';\n\nexport type StoreWithRouter = Store & {\n routes: Object\n};\n\nexport type RouterContext = { store: Store<*, *> };\n\ntype Props = {\n store: StoreWithRouter<*, *>,\n children: React.Element<*>\n};\n\nclass RouterProviderImpl extends Component {\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n router: { store: StoreWithRouter<*, *> };\n\n render() {\n const { store } = this.router;\n const routerState = store.getState().router;\n\n // Ensure that the router props from connect()\n // actually get to the child component(s)\n return cloneElement(this.props.children, {\n router: {\n ...routerState,\n\n // This is a hack to allow routes to define\n // unserializable things like components\n result: store.routes[routerState.route]\n }\n });\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: StoreWithRouter<*, *>\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n// WEBPACK FOOTER //\n// ./components/provider.js","module.exports = __WEBPACK_EXTERNAL_MODULE_34__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 34\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connect = require('./components/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports.Provider = _Provider2[\"default\"];\nexports.connect = _connect2[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/index.js\n// module id = 35\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = undefined;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\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 didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2[\"default\"])(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n return _react.Children.only(this.props.children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports[\"default\"] = Provider;\n\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _storeShape2[\"default\"].isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _storeShape2[\"default\"].isRequired\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/components/Provider.js\n// module id = 36\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nexports[\"default\"] = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/storeShape.js\n// module id = 37\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/warning.js\n// module id = 38\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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[\"default\"] = connect;\n\nvar _react = require('react');\n\nvar _storeShape = require('../utils/storeShape');\n\nvar _storeShape2 = _interopRequireDefault(_storeShape);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _wrapActionCreators = require('../utils/wrapActionCreators');\n\nvar _wrapActionCreators2 = _interopRequireDefault(_wrapActionCreators);\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\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 defaultMapStateToProps = function defaultMapStateToProps(state) {\n return {};\n}; // eslint-disable-line no-unused-vars\nvar defaultMapDispatchToProps = function defaultMapDispatchToProps(dispatch) {\n return { dispatch: dispatch };\n};\nvar defaultMergeProps = function defaultMergeProps(stateProps, dispatchProps, parentProps) {\n return _extends({}, parentProps, stateProps, dispatchProps);\n};\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nvar errorObject = { value: null };\nfunction tryCatch(fn, ctx) {\n try {\n return fn.apply(ctx);\n } catch (e) {\n errorObject.value = e;\n return errorObject;\n }\n}\n\n// Helps track hot reloading.\nvar nextVersion = 0;\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var shouldSubscribe = Boolean(mapStateToProps);\n var mapState = mapStateToProps || defaultMapStateToProps;\n\n var mapDispatch = void 0;\n if (typeof mapDispatchToProps === 'function') {\n mapDispatch = mapDispatchToProps;\n } else if (!mapDispatchToProps) {\n mapDispatch = defaultMapDispatchToProps;\n } else {\n mapDispatch = (0, _wrapActionCreators2[\"default\"])(mapDispatchToProps);\n }\n\n var finalMergeProps = mergeProps || defaultMergeProps;\n var _options$pure = options.pure,\n pure = _options$pure === undefined ? true : _options$pure,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var checkMergedEquals = pure && finalMergeProps !== defaultMergeProps;\n\n // Helps track hot reloading.\n var version = nextVersion++;\n\n return function wrapWithConnect(WrappedComponent) {\n var connectDisplayName = 'Connect(' + getDisplayName(WrappedComponent) + ')';\n\n function checkStateShape(props, methodName) {\n if (!(0, _isPlainObject2[\"default\"])(props)) {\n (0, _warning2[\"default\"])(methodName + '() in ' + connectDisplayName + ' must return a plain object. ' + ('Instead received ' + props + '.'));\n }\n }\n\n function computeMergedProps(stateProps, dispatchProps, parentProps) {\n var mergedProps = finalMergeProps(stateProps, dispatchProps, parentProps);\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mergedProps, 'mergeProps');\n }\n return mergedProps;\n }\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return !pure || this.haveOwnPropsChanged || this.hasStoreStateChanged;\n };\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.store = props.store || context.store;\n\n (0, _invariant2[\"default\"])(_this.store, 'Could not find \"store\" in either the context or ' + ('props of \"' + connectDisplayName + '\". ') + 'Either wrap the root component in a , ' + ('or explicitly pass \"store\" as a prop to \"' + connectDisplayName + '\".'));\n\n var storeState = _this.store.getState();\n _this.state = { storeState: storeState };\n _this.clearCache();\n return _this;\n }\n\n Connect.prototype.computeStateProps = function computeStateProps(store, props) {\n if (!this.finalMapStateToProps) {\n return this.configureFinalMapState(store, props);\n }\n\n var state = store.getState();\n var stateProps = this.doStatePropsDependOnOwnProps ? this.finalMapStateToProps(state, props) : this.finalMapStateToProps(state);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(stateProps, 'mapStateToProps');\n }\n return stateProps;\n };\n\n Connect.prototype.configureFinalMapState = function configureFinalMapState(store, props) {\n var mappedState = mapState(store.getState(), props);\n var isFactory = typeof mappedState === 'function';\n\n this.finalMapStateToProps = isFactory ? mappedState : mapState;\n this.doStatePropsDependOnOwnProps = this.finalMapStateToProps.length !== 1;\n\n if (isFactory) {\n return this.computeStateProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedState, 'mapStateToProps');\n }\n return mappedState;\n };\n\n Connect.prototype.computeDispatchProps = function computeDispatchProps(store, props) {\n if (!this.finalMapDispatchToProps) {\n return this.configureFinalMapDispatch(store, props);\n }\n\n var dispatch = store.dispatch;\n\n var dispatchProps = this.doDispatchPropsDependOnOwnProps ? this.finalMapDispatchToProps(dispatch, props) : this.finalMapDispatchToProps(dispatch);\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(dispatchProps, 'mapDispatchToProps');\n }\n return dispatchProps;\n };\n\n Connect.prototype.configureFinalMapDispatch = function configureFinalMapDispatch(store, props) {\n var mappedDispatch = mapDispatch(store.dispatch, props);\n var isFactory = typeof mappedDispatch === 'function';\n\n this.finalMapDispatchToProps = isFactory ? mappedDispatch : mapDispatch;\n this.doDispatchPropsDependOnOwnProps = this.finalMapDispatchToProps.length !== 1;\n\n if (isFactory) {\n return this.computeDispatchProps(store, props);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n checkStateShape(mappedDispatch, 'mapDispatchToProps');\n }\n return mappedDispatch;\n };\n\n Connect.prototype.updateStatePropsIfNeeded = function updateStatePropsIfNeeded() {\n var nextStateProps = this.computeStateProps(this.store, this.props);\n if (this.stateProps && (0, _shallowEqual2[\"default\"])(nextStateProps, this.stateProps)) {\n return false;\n }\n\n this.stateProps = nextStateProps;\n return true;\n };\n\n Connect.prototype.updateDispatchPropsIfNeeded = function updateDispatchPropsIfNeeded() {\n var nextDispatchProps = this.computeDispatchProps(this.store, this.props);\n if (this.dispatchProps && (0, _shallowEqual2[\"default\"])(nextDispatchProps, this.dispatchProps)) {\n return false;\n }\n\n this.dispatchProps = nextDispatchProps;\n return true;\n };\n\n Connect.prototype.updateMergedPropsIfNeeded = function updateMergedPropsIfNeeded() {\n var nextMergedProps = computeMergedProps(this.stateProps, this.dispatchProps, this.props);\n if (this.mergedProps && checkMergedEquals && (0, _shallowEqual2[\"default\"])(nextMergedProps, this.mergedProps)) {\n return false;\n }\n\n this.mergedProps = nextMergedProps;\n return true;\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return typeof this.unsubscribe === 'function';\n };\n\n Connect.prototype.trySubscribe = function trySubscribe() {\n if (shouldSubscribe && !this.unsubscribe) {\n this.unsubscribe = this.store.subscribe(this.handleChange.bind(this));\n this.handleChange();\n }\n };\n\n Connect.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n this.trySubscribe();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!pure || !(0, _shallowEqual2[\"default\"])(nextProps, this.props)) {\n this.haveOwnPropsChanged = true;\n }\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n this.tryUnsubscribe();\n this.clearCache();\n };\n\n Connect.prototype.clearCache = function clearCache() {\n this.dispatchProps = null;\n this.stateProps = null;\n this.mergedProps = null;\n this.haveOwnPropsChanged = true;\n this.hasStoreStateChanged = true;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n this.renderedElement = null;\n this.finalMapDispatchToProps = null;\n this.finalMapStateToProps = null;\n };\n\n Connect.prototype.handleChange = function handleChange() {\n if (!this.unsubscribe) {\n return;\n }\n\n var storeState = this.store.getState();\n var prevStoreState = this.state.storeState;\n if (pure && prevStoreState === storeState) {\n return;\n }\n\n if (pure && !this.doStatePropsDependOnOwnProps) {\n var haveStatePropsChanged = tryCatch(this.updateStatePropsIfNeeded, this);\n if (!haveStatePropsChanged) {\n return;\n }\n if (haveStatePropsChanged === errorObject) {\n this.statePropsPrecalculationError = errorObject.value;\n }\n this.haveStatePropsBeenPrecalculated = true;\n }\n\n this.hasStoreStateChanged = true;\n this.setState({ storeState: storeState });\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2[\"default\"])(withRef, 'To access the wrapped instance, you need to specify ' + '{ withRef: true } as the fourth argument of the connect() call.');\n\n return this.refs.wrappedInstance;\n };\n\n Connect.prototype.render = function render() {\n var haveOwnPropsChanged = this.haveOwnPropsChanged,\n hasStoreStateChanged = this.hasStoreStateChanged,\n haveStatePropsBeenPrecalculated = this.haveStatePropsBeenPrecalculated,\n statePropsPrecalculationError = this.statePropsPrecalculationError,\n renderedElement = this.renderedElement;\n\n\n this.haveOwnPropsChanged = false;\n this.hasStoreStateChanged = false;\n this.haveStatePropsBeenPrecalculated = false;\n this.statePropsPrecalculationError = null;\n\n if (statePropsPrecalculationError) {\n throw statePropsPrecalculationError;\n }\n\n var shouldUpdateStateProps = true;\n var shouldUpdateDispatchProps = true;\n if (pure && renderedElement) {\n shouldUpdateStateProps = hasStoreStateChanged || haveOwnPropsChanged && this.doStatePropsDependOnOwnProps;\n shouldUpdateDispatchProps = haveOwnPropsChanged && this.doDispatchPropsDependOnOwnProps;\n }\n\n var haveStatePropsChanged = false;\n var haveDispatchPropsChanged = false;\n if (haveStatePropsBeenPrecalculated) {\n haveStatePropsChanged = true;\n } else if (shouldUpdateStateProps) {\n haveStatePropsChanged = this.updateStatePropsIfNeeded();\n }\n if (shouldUpdateDispatchProps) {\n haveDispatchPropsChanged = this.updateDispatchPropsIfNeeded();\n }\n\n var haveMergedPropsChanged = true;\n if (haveStatePropsChanged || haveDispatchPropsChanged || haveOwnPropsChanged) {\n haveMergedPropsChanged = this.updateMergedPropsIfNeeded();\n } else {\n haveMergedPropsChanged = false;\n }\n\n if (!haveMergedPropsChanged && renderedElement) {\n return renderedElement;\n }\n\n if (withRef) {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, _extends({}, this.mergedProps, {\n ref: 'wrappedInstance'\n }));\n } else {\n this.renderedElement = (0, _react.createElement)(WrappedComponent, this.mergedProps);\n }\n\n return this.renderedElement;\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.displayName = connectDisplayName;\n Connect.WrappedComponent = WrappedComponent;\n Connect.contextTypes = {\n store: _storeShape2[\"default\"]\n };\n Connect.propTypes = {\n store: _storeShape2[\"default\"]\n };\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n if (this.version === version) {\n return;\n }\n\n // We are hot reloading!\n this.version = version;\n this.trySubscribe();\n this.clearCache();\n };\n }\n\n return (0, _hoistNonReactStatics2[\"default\"])(Connect, WrappedComponent);\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/components/connect.js\n// module id = 39\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/shallowEqual.js\n// module id = 40\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports[\"default\"] = wrapActionCreators;\n\nvar _redux = require('redux');\n\nfunction wrapActionCreators(actionCreators) {\n return function (dispatch) {\n return (0, _redux.bindActionCreators)(actionCreators, dispatch);\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/wrapActionCreators.js\n// module id = 41\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2['default'];\nexports.combineReducers = _combineReducers2['default'];\nexports.bindActionCreators = _bindActionCreators2['default'];\nexports.applyMiddleware = _applyMiddleware2['default'];\nexports.compose = _compose2['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/index.js\n// module id = 42\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/createStore.js\n// module id = 43\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/isPlainObject.js\n// module id = 44\n// module chunks = 0","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_baseGetTag.js\n// module id = 45\n// module chunks = 0","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_Symbol.js\n// module id = 46\n// module chunks = 0","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_root.js\n// module id = 47\n// module chunks = 0","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_freeGlobal.js\n// module id = 48\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_getRawTag.js\n// module id = 49\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_objectToString.js\n// module id = 50\n// module chunks = 0","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_getPrototype.js\n// module id = 51\n// module chunks = 0","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_overArg.js\n// module id = 52\n// module chunks = 0","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/isObjectLike.js\n// module id = 53\n// module chunks = 0","module.exports = require('./lib/index');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/index.js\n// module id = 54\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ponyfill = require('./ponyfill');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root; /* global window */\n\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/lib/index.js\n// module id = 55\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/webpack/buildin/module.js\n// module id = 56\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/lib/ponyfill.js\n// module id = 57\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2['default'])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n (0, _warning2['default'])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/combineReducers.js\n// module id = 58\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/utils/warning.js\n// module id = 59\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/bindActionCreators.js\n// module id = 60\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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['default'] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/applyMiddleware.js\n// module id = 61\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/compose.js\n// module id = 62\n// module chunks = 0","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/hoist-non-react-statics/index.js\n// module id = 63\n// module chunks = 0","// @flow\nimport type { Href } from '../types';\nimport type { RouterContext } from './provider';\n\nimport React, { Component, PropTypes } from 'react';\n\nimport { push, replace } from '../actions';\nimport normalizeHref from '../util/normalize-href';\nimport stringifyHref from '../util/stringify-href';\n\ntype Props = {\n children: React.Element<*>,\n className: string,\n href: Href,\n persistQuery: bool,\n replaceState: bool,\n target: string,\n onClick: EventHandler,\n style: Object\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst isNotLeftClick = e =>\n e.button && e.button !== LEFT_MOUSE_BUTTON;\n\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst shouldIgnoreClick = ({ e, target }) =>\n hasModifier(e) ||\n isNotLeftClick(e) ||\n e.defaultPrevented ||\n target; // let browser handle target=\"_blank\"\n\nconst handleClick = ({\n e,\n target,\n href,\n onClick,\n replaceState,\n persistQuery,\n store\n}) => {\n if (onClick) {\n onClick(e);\n }\n\n if (shouldIgnoreClick({ e, target })) {\n return;\n }\n\n e.preventDefault();\n\n const navigate = replaceState ? replace : push;\n store.dispatch(navigate(href, { persistQuery }));\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n href: rawHref,\n children,\n onClick,\n target,\n replaceState,\n persistQuery,\n ...rest\n } = props;\n\n const { store } = context.router;\n const { router: { basename } } = store.getState();\n\n // Ensure the href has both a search and a query when needed\n const href = normalizeHref(rawHref);\n\n const clickHandler = e => handleClick({\n e,\n target,\n href,\n onClick,\n replaceState,\n persistQuery,\n store\n });\n\n return (\n \n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n// WEBPACK FOOTER //\n// ./components/link.js","// @flow\nimport type { Href } from '../types';\n\nexport default (href: Href, basename: string) => {\n if (typeof href === 'string') {\n return `${basename || ''}${href}`;\n }\n\n const { pathname, search } = href;\n return `${basename || ''}${pathname}${search || ''}`;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/stringify-href.js","// @flow\nimport type { Location } from '../types';\n\nimport React, { Component, PropTypes } from 'react';\nimport matchCache from '../util/match-cache';\nimport generateId from '../util/generate-id';\n\ntype Props = {\n location: Location,\n matchRoute: Function,\n forRoute?: string,\n withConditions?: (location: Location) => bool,\n parentId?: string,\n children: React.Element<*>\n};\n\nconst relativePaths = (ComposedComponent: ReactClass<*>) => {\n class RelativeFragment extends Component {\n constructor() {\n super();\n this.id = generateId();\n }\n\n getChildContext() {\n const { parentRoute } = this.context;\n const { forRoute } = this.props;\n\n return {\n // Append the parent route if this isn't the first\n // RelativeFragment in the hierarchy.\n parentRoute:\n parentRoute &&\n parentRoute !== '/' &&\n parentRoute !== forRoute\n ? `${parentRoute}${forRoute || ''}`\n : forRoute,\n parentId: this.id\n };\n }\n\n props: Props;\n id: string;\n\n render() {\n const { children, forRoute, ...rest } = this.props;\n const { router, parentRoute, parentId } = this.context;\n const { store } = router;\n\n const location = store.getState().router;\n\n const routePrefix = parentRoute &&\n parentRoute !== '/' ? parentRoute : '';\n\n return (\n \n );\n }\n }\n\n // Consumes this context...\n RelativeFragment.contextTypes = {\n router: PropTypes.object,\n parentRoute: PropTypes.string,\n parentId: PropTypes.string\n };\n\n // ...and provides this context.\n RelativeFragment.childContextTypes = {\n parentRoute: PropTypes.string,\n parentId: PropTypes.string\n };\n\n return RelativeFragment;\n};\n\nconst Fragment = (props: Props) => {\n const {\n location,\n matchRoute,\n forRoute,\n withConditions,\n children,\n parentId\n } = props;\n\n const matchResult = matchRoute(location.pathname, forRoute);\n\n if (\n !matchResult ||\n withConditions && !withConditions(location) ||\n forRoute && matchResult.route !== forRoute\n ) {\n return null;\n }\n\n if (parentId) {\n const previousMatch = matchCache.get(parentId);\n if (previousMatch && previousMatch !== forRoute) {\n return null;\n } else {\n matchCache.add(parentId, forRoute);\n }\n }\n\n return
{children}
;\n};\n\nexport default relativePaths(Fragment);\n\n\n\n// WEBPACK FOOTER //\n// ./components/fragment.js","/**\n * Returns a psuedo-unique identifier used by fragments\n * to track match status within MatchCache.\n * @returns {String} id\n * @flow\n */\nexport default (): string => {\n const radix = 16;\n const length = 8;\n return (Math.random() * Date.now()).toString(radix).slice(0, length);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/generate-id.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///redux-little-router.min.js","webpack:///webpack/bootstrap 8ee1ca1f9da66f9887ec","webpack:///./index.js","webpack:///./types.js","webpack:///./actions.js","webpack:///./util/normalize-href.js","webpack:///../~/query-string/index.js","webpack:///../~/strict-uri-encode/index.js","webpack:///../~/object-assign/index.js","webpack:///./util/location-state.js","webpack:///./environment/browser-router.js","webpack:///../~/history/createBrowserHistory.js","webpack:///../~/warning/browser.js","webpack:///../~/invariant/browser.js","webpack:///../~/history/LocationUtils.js","webpack:///../~/resolve-pathname/index.js","webpack:///../~/value-equal/index.js","webpack:///../~/history/PathUtils.js","webpack:///../~/history/createTransitionManager.js","webpack:///../~/history/DOMUtils.js","webpack:///./install.js","webpack:///./reducer.js","webpack:///./middleware.js","webpack:///./enhancer.js","webpack:///./util/match-cache.js","webpack:///./util/create-matcher.js","webpack:///../~/url-pattern/lib/url-pattern.js","webpack:///../~/webpack/buildin/amd-options.js","webpack:///./util/validate-routes.js","webpack:///./util/flatten-routes.js","webpack:///../~/lodash.assign/index.js","webpack:///./environment/express-router.js","webpack:///../~/history/createMemoryHistory.js","webpack:///./environment/hapi-router.js","webpack:///./components/provider.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///../~/react-redux/lib/index.js","webpack:///../~/react-redux/lib/components/Provider.js","webpack:///../~/react-redux/lib/utils/PropTypes.js","webpack:///../~/react-redux/lib/utils/warning.js","webpack:///../~/react-redux/lib/components/connectAdvanced.js","webpack:///../~/hoist-non-react-statics/index.js","webpack:///../~/react-redux/lib/utils/Subscription.js","webpack:///../~/react-redux/lib/connect/connect.js","webpack:///../~/react-redux/lib/utils/shallowEqual.js","webpack:///../~/react-redux/lib/connect/mapDispatchToProps.js","webpack:///../~/redux/lib/index.js","webpack:///../~/redux/lib/createStore.js","webpack:///../~/lodash/isPlainObject.js","webpack:///../~/lodash/_baseGetTag.js","webpack:///../~/lodash/_Symbol.js","webpack:///../~/lodash/_root.js","webpack:///../~/lodash/_freeGlobal.js","webpack:///../~/lodash/_getRawTag.js","webpack:///../~/lodash/_objectToString.js","webpack:///../~/lodash/_getPrototype.js","webpack:///../~/lodash/_overArg.js","webpack:///../~/lodash/isObjectLike.js","webpack:///../~/symbol-observable/index.js","webpack:///../~/symbol-observable/lib/index.js","webpack:///../~/webpack/buildin/module.js","webpack:///../~/symbol-observable/lib/ponyfill.js","webpack:///../~/redux/lib/combineReducers.js","webpack:///../~/redux/lib/utils/warning.js","webpack:///../~/redux/lib/bindActionCreators.js","webpack:///../~/redux/lib/applyMiddleware.js","webpack:///../~/redux/lib/compose.js","webpack:///../~/react-redux/lib/connect/wrapMapToProps.js","webpack:///../~/react-redux/lib/utils/verifyPlainObject.js","webpack:///../~/react-redux/lib/connect/mapStateToProps.js","webpack:///../~/react-redux/lib/connect/mergeProps.js","webpack:///../~/react-redux/lib/connect/selectorFactory.js","webpack:///../~/react-redux/lib/connect/verifySubselectors.js","webpack:///./components/link.js","webpack:///./util/stringify-href.js","webpack:///./components/fragment.js","webpack:///./util/generate-id.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_33__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","GO_BACK","GO_FORWARD","GO","REPLACE","PUSH","LOCATION_CHANGED","goForward","goBack","go","replace","push","Fragment","PersistentQueryLink","Link","RouterProvider","provideRouter","initializeCurrentLocation","routerForHapi","routerForExpress","routerForBrowser","undefined","_types","_actions","_browserRouter","_browserRouter2","_expressRouter","_expressRouter2","_hapiRouter","_hapiRouter2","_provider","_provider2","_link","_fragment","_fragment2","locationDidChange","_normalizeHref","_normalizeHref2","_locationState","href","options","type","payload","packState","index","location","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","_queryString","_queryString2","pathnameAndSearch","split","pathname","search","query","parse","resolvedSearch","keys","stringify","resolvedQuery","encoderForArrayFormat","opts","arrayFormat","encode","join","parserForArrayFormat","result","accumulator","exec","concat","strict","strictUriEncode","encodeURIComponent","keysSorter","input","Array","isArray","sort","a","b","Number","map","objectAssign","extract","str","formatter","ret","create","trim","forEach","param","parts","shift","val","decodeURIComponent","reduce","Boolean","defaults","slice","val2","filter","x","charCodeAt","toString","toUpperCase","toObject","TypeError","shouldUseNative","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","n","test3","letter","err","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","from","symbols","to","s","_objectWithoutProperties","indexOf","rest","state","reduxLittleRouter","unpackState","_location$state","restLocation","_state$reduxLittleRou","restState","_reduxLittleRouter$qu","_reduxLittleRouter$op","_createBrowserHistory","_createBrowserHistory2","_install","_install2","realLocation","window","_ref","routes","basename","_ref$getLocation","getLocation","history","_getLocation","fullPathname","descriptor","_typeof","Symbol","iterator","constructor","_warning","_warning2","_invariant","_invariant2","_LocationUtils","_PathUtils","_createTransitionManager","_createTransitionManager2","_DOMUtils","PopStateEvent","HashChangeEvent","getHistoryState","e","createBrowserHistory","props","canUseDOM","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","supportsPopStateOnHashChange","_props$forceRefresh","forceRefresh","_props$getUserConfirm","getUserConfirmation","getConfirmation","_props$keyLength","keyLength","stripTrailingSlash","addLeadingSlash","getDOMLocation","historyState","_window$location","hash","path","stripPrefix","parsePath","createKey","Math","random","substr","transitionManager","setState","nextState","notifyListeners","action","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","confirmTransitionTo","ok","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","initialLocation","createHref","createPath","createLocation","pushState","prevIndex","nextKeys","replaceState","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","block","prompt","unblock","setPrompt","listen","listener","unlisten","appendListener","warning","invariant","condition","format","d","f","error","Error","args","argIndex","name","framesToPop","locationsAreEqual","_resolvePathname","_resolvePathname2","_valueEqual","_valueEqual2","currentLocation","charAt","isAbsolute","spliceOne","list","k","pop","resolvePathname","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","hasTrailingSlash","last","up","part","unshift","valueEqual","every","item","aType","bType","aValue","valueOf","bValue","aKeys","bKeys","stripLeadingSlash","prefix","hashIndex","searchIndex","decodeURI","encodeURI","createTransitionManager","nextPrompt","callback","listeners","fn","isActive","apply","_len","_key","document","createElement","node","attachEvent","detachEvent","message","confirm","ua","navigator","userAgent","supportsGoWithoutReloadUsingHash","_reducer","_reducer2","_middleware","_middleware2","_enhancer","_enhancer2","_createMatcher","_createMatcher2","_validateRoutes","_validateRoutes2","_flattenRoutes","_flattenRoutes2","nestedRoutes","_ref$createMatcher","createMatcher","matchRoute","matchWildcardRoute","reducer","middleware","enhancer","flow","funcs","prev","curr","resolveQuery","oldLocation","newLocation","oldQuery","oldSearch","persistQuery","resolveBasename","_ref2","resolvePrevious","_ref3","previous","resolveLocation","next","_matchCache","_matchCache2","createStore","userReducer","initialState","store","clear","dispatch","_classCallCheck","instance","Constructor","_createClass","defineProperties","enumerable","configurable","writable","protoProps","staticProps","ROUTE_FALLBACK","MatchCache","_data","parentId","route","_urlPattern","_urlPattern2","find","predicate","wildcardMatcher","routeList","incomingUrl","routeToMatch","storedRoute","match","pattern","params","eagerMatcher","wildcard","reverse","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","UrlPattern","P","astNodeContainsSegmentsForProvidedParams","astNodeToNames","astNodeToRegexString","baseAstNodeToRegexString","concatMap","defaultOptions","escapeForRegex","getParam","keysAndValuesToObject","newParser","regexGroupCount","stringConcatMap","string","array","results","regex","RegExp","values","object","Result","Tagged","tag","parser","tagged","matches","sequence","parsers","pick","indexes","lazy","cached","baseMany","end","stringResult","atLeastOneResultRequired","endResult","parserResult","many1","concatMany1Till","firstChoice","U","wildcardChar","optional","optionalSegmentStartChar","optionalSegmentEndChar","segmentNameCharset","named","segmentNameStartChar","escapedChar","escapeChar","token","segmentValueCharset","astNode","nextIndexes","sideEffects","maxIndex","arg1","arg2","groupCount","parsed","withoutWhitespace","isRegex","ast","names","url","groups","__webpack_amd_options__","README_MESSAGE","_defineProperty","_lodash","_lodash2","filterObject","acc","mapObject","transformKey","transformValue","newKey","newValue","onlyRoutes","withoutRoutes","flattenRoutes","baseRoute","routeKey","routeValue","parent","func","thisArg","baseTimes","iteratee","overArg","transform","arg","arrayLikeKeys","inherited","isArguments","skipIndexes","isIndex","assignValue","objValue","eq","baseKeys","isPrototype","nativeKeys","baseRest","start","nativeMax","otherArgs","copyObject","customizer","createAssigner","assigner","sources","guard","isIterateeCall","MAX_SAFE_INTEGER","reIsUint","test","isObject","isArrayLike","Ctor","proto","objectProto","other","isArrayLikeObject","objectToString","argsTag","isLength","isFunction","isObjectLike","funcTag","genTag","max","nonEnumShadows","_createMemoryHistory","_createMemoryHistory2","locationForRequest","request","baseUrl","clamp","lowerBound","upperBound","min","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","splice","canGo","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","_react","_react2","_reactRedux","RouterProviderImpl","_Component","_this","getPrototypeOf","router","routerState","getState","cloneElement","children","Component","childContextTypes","PropTypes","connect","ComposedComponent","connectAdvanced","Provider","_Provider","_Provider2","_connectAdvanced","_connectAdvanced2","_connect","_connect2","_PropTypes","context","getChildContext","storeSubscription","render","Children","only","propTypes","storeShape","isRequired","element","subscriptionShape","displayName","shape","trySubscribe","tryUnsubscribe","notifyNestedSubs","isSubscribed","subscribe","console","noop","makeSelectorStateful","sourceSelector","selector","run","nextProps","shouldComponentUpdate","selectorFactory","_contextTypes","_childContextTypes","_ref$getDisplayName","getDisplayName","_ref$methodName","methodName","_ref$renderCountProp","renderCountProp","_ref$shouldHandleStat","shouldHandleStateChanges","_ref$storeKey","storeKey","_ref$withRef","withRef","connectOptions","subscriptionKey","version","hotReloadingVersion","contextTypes","WrappedComponent","JSON","wrappedComponentName","selectorFactoryOptions","Connect","renderCount","propsMode","setWrappedInstance","bind","initSelector","initSubscription","subscription","componentDidMount","forceUpdate","componentWillReceiveProps","componentWillUnmount","getWrappedInstance","wrappedInstance","ref","parentSub","_Subscription2","onStateChange","componentDidUpdate","notifyNestedSubsOnComponentDidUpdate","dummyState","addExtraProps","withExtras","_hoistNonReactStatics2","_hoistNonReactStatics","_Subscription","REACT_STATICS","defaultProps","getDefaultProps","mixins","KNOWN_STATICS","caller","arity","isGetOwnPropertySymbolsAvailable","targetComponent","sourceComponent","customStatics","createListenerCollection","current","CLEARED","notify","nullListeners","Subscription","unsubscribe","addNestedSub","factories","strictEqual","createConnect","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_mapStateToProps2","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_mapDispatchToProps2","_ref$mergePropsFactor","mergePropsFactories","_mergeProps2","_ref$selectorFactory","_selectorFactory2","mapStateToProps","mapDispatchToProps","mergeProps","_ref2$pure","pure","_ref2$areStatesEqual","areStatesEqual","_ref2$areOwnPropsEqua","areOwnPropsEqual","_shallowEqual2","_ref2$areStatePropsEq","areStatePropsEqual","_ref2$areMergedPropsE","areMergedPropsEqual","extraOptions","initMapStateToProps","initMapDispatchToProps","initMergeProps","_shallowEqual","_mapDispatchToProps","_mapStateToProps","_mergeProps","_selectorFactory","is","y","shallowEqual","objA","objB","keysA","keysB","hasOwn","whenMapDispatchToPropsIsFunction","_wrapMapToProps","wrapMapToPropsFunc","whenMapDispatchToPropsIsMissing","wrapMapToPropsConstant","whenMapDispatchToPropsIsObject","_redux","bindActionCreators","compose","applyMiddleware","combineReducers","_createStore","_createStore2","_combineReducers","_combineReducers2","_bindActionCreators","_bindActionCreators2","_applyMiddleware","_applyMiddleware2","_compose","_compose2","preloadedState","ensureCanMutateNextListeners","nextListeners","currentListeners","currentState","_isPlainObject2","isDispatching","currentReducer","replaceReducer","nextReducer","ActionTypes","INIT","observable","outerSubscribe","observer","observeState","_symbolObservable2","_isPlainObject","_symbolObservable","isPlainObject","baseGetTag","objectTag","getPrototype","funcToString","objectCtorString","funcProto","Function","undefinedTag","nullTag","symToStringTag","getRawTag","toStringTag","freeGlobal","freeSelf","global","isOwn","unmasked","nativeObjectToString","_ponyfill","_ponyfill2","webpackPolyfill","deprecate","paths","symbolObservablePonyfill","_Symbol","getUndefinedStateErrorMessage","actionType","actionName","assertReducerSanity","reducers","substring","reducerKeys","finalReducers","sanityError","finalReducerKeys","hasChanged","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","actionCreators","boundActionCreators","middlewares","_dispatch","chain","middlewareAPI","reduceRight","composed","getConstant","constantSelector","constant","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","proxy","stateOrDispatch","ownProps","_verifyPlainObject","verifyPlainObject","whenMapStateToPropsIsFunction","whenMapStateToPropsIsMissing","defaultMergeProps","stateProps","dispatchProps","wrapMergePropsFunc","hasRunOnce","mergedProps","nextMergedProps","whenMergePropsIsFunction","whenMergePropsIsOmitted","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","handleFirstCall","firstState","firstOwnProps","hasRunAtLeastOnce","handleNewPropsAndNewState","handleNewProps","handleNewState","nextStateProps","statePropsChanged","handleSubsequentCalls","nextOwnProps","propsChanged","stateChanged","finalPropsSelectorFactory","_verifySubselectors","verify","verifySubselectors","_stringifyHref","_stringifyHref2","LEFT_MOUSE_BUTTON","isNotLeftClick","button","hasModifier","shiftKey","altKey","metaKey","ctrlKey","shouldIgnoreClick","defaultPrevented","handleClick","onClick","preventDefault","navigate","rawHref","_store$getState","clickHandler","_props","_generateId","_generateId2","relativePaths","RelativeFragment","parentRoute","forRoute","_context","routePrefix","withConditions","matchResult","previousMatch","get","add","radix","Date","now"],"mappings":"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","file":"redux-little-router.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_33__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReduxLittleRouter\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReduxLittleRouter\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_33__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.GO_BACK = exports.GO_FORWARD = exports.GO = exports.REPLACE = exports.PUSH = exports.LOCATION_CHANGED = exports.goForward = exports.goBack = exports.go = exports.replace = exports.push = exports.Fragment = exports.PersistentQueryLink = exports.Link = exports.RouterProvider = exports.provideRouter = exports.initializeCurrentLocation = exports.routerForHapi = exports.routerForExpress = exports.routerForBrowser = undefined;\n\t\n\tvar _types = __webpack_require__(1);\n\t\n\tvar _actions = __webpack_require__(2);\n\t\n\tvar _browserRouter = __webpack_require__(8);\n\t\n\tvar _browserRouter2 = _interopRequireDefault(_browserRouter);\n\t\n\tvar _expressRouter = __webpack_require__(29);\n\t\n\tvar _expressRouter2 = _interopRequireDefault(_expressRouter);\n\t\n\tvar _hapiRouter = __webpack_require__(31);\n\t\n\tvar _hapiRouter2 = _interopRequireDefault(_hapiRouter);\n\t\n\tvar _provider = __webpack_require__(32);\n\t\n\tvar _provider2 = _interopRequireDefault(_provider);\n\t\n\tvar _link = __webpack_require__(71);\n\t\n\tvar _fragment = __webpack_require__(73);\n\t\n\tvar _fragment2 = _interopRequireDefault(_fragment);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.routerForBrowser = _browserRouter2.default;\n\texports.routerForExpress = _expressRouter2.default;\n\texports.routerForHapi = _hapiRouter2.default;\n\texports.initializeCurrentLocation = _actions.initializeCurrentLocation;\n\texports.provideRouter = _provider2.default;\n\texports.RouterProvider = _provider.RouterProvider;\n\texports.Link = _link.Link;\n\texports.PersistentQueryLink = _link.PersistentQueryLink;\n\texports.Fragment = _fragment2.default;\n\texports.push = _actions.push;\n\texports.replace = _actions.replace;\n\texports.go = _actions.go;\n\texports.goBack = _actions.goBack;\n\texports.goForward = _actions.goForward;\n\texports.LOCATION_CHANGED = _types.LOCATION_CHANGED;\n\texports.PUSH = _types.PUSH;\n\texports.REPLACE = _types.REPLACE;\n\texports.GO = _types.GO;\n\texports.GO_FORWARD = _types.GO_FORWARD;\n\texports.GO_BACK = _types.GO_BACK;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar LOCATION_CHANGED = exports.LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\n\tvar PUSH = exports.PUSH = 'ROUTER_PUSH';\n\tvar REPLACE = exports.REPLACE = 'ROUTER_REPLACE';\n\tvar GO = exports.GO = 'ROUTER_GO';\n\tvar GO_BACK = exports.GO_BACK = 'ROUTER_GO_BACK';\n\tvar GO_FORWARD = exports.GO_FORWARD = 'ROUTER_GO_FORWARD';\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.initializeCurrentLocation = exports.locationDidChange = exports.goForward = exports.goBack = exports.go = exports.replace = exports.push = undefined;\n\t\n\tvar _types = __webpack_require__(1);\n\t\n\tvar _normalizeHref = __webpack_require__(3);\n\t\n\tvar _normalizeHref2 = _interopRequireDefault(_normalizeHref);\n\t\n\tvar _locationState = __webpack_require__(7);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar push = exports.push = function push(href, options) {\n\t return {\n\t type: _types.PUSH,\n\t payload: (0, _locationState.packState)((0, _normalizeHref2.default)(href), options)\n\t };\n\t};\n\t\n\tvar replace = exports.replace = function replace(href, options) {\n\t return {\n\t type: _types.REPLACE,\n\t payload: (0, _locationState.packState)((0, _normalizeHref2.default)(href), options)\n\t };\n\t};\n\t\n\tvar go = exports.go = function go(index) {\n\t return {\n\t type: _types.GO,\n\t payload: index\n\t };\n\t};\n\t\n\tvar goBack = exports.goBack = function goBack() {\n\t return { type: _types.GO_BACK };\n\t};\n\tvar goForward = exports.goForward = function goForward() {\n\t return { type: _types.GO_FORWARD };\n\t};\n\t\n\tvar locationDidChange = exports.locationDidChange = function locationDidChange(location) {\n\t return {\n\t type: _types.LOCATION_CHANGED,\n\t payload: location\n\t };\n\t};\n\t\n\tvar initializeCurrentLocation = exports.initializeCurrentLocation = function initializeCurrentLocation(location) {\n\t return {\n\t type: _types.LOCATION_CHANGED,\n\t payload: location\n\t };\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _queryString = __webpack_require__(4);\n\t\n\tvar _queryString2 = _interopRequireDefault(_queryString);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (href) {\n\t if (typeof href === 'string') {\n\t var pathnameAndSearch = href.split('?');\n\t var pathname = pathnameAndSearch[0];\n\t var _search = pathnameAndSearch[1];\n\t var _query = _search && _queryString2.default.parse(_search);\n\t\n\t return _query ? { pathname: pathname, query: _query, search: '?' + _search } : { pathname: pathname };\n\t }\n\t\n\t var search = href.search,\n\t query = href.query;\n\t\n\t\n\t var resolvedSearch = search || query && Object.keys(query).length && '?' + _queryString2.default.stringify(query) || '';\n\t var resolvedQuery = query || _queryString2.default.parse(search);\n\t\n\t return _extends({}, href, {\n\t search: resolvedSearch,\n\t query: resolvedQuery\n\t });\n\t};\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\tvar strictUriEncode = __webpack_require__(5);\n\tvar objectAssign = __webpack_require__(6);\n\t\n\tfunction encoderForArrayFormat(opts) {\n\t\tswitch (opts.arrayFormat) {\n\t\t\tcase 'index':\n\t\t\t\treturn function (key, value, index) {\n\t\t\t\t\treturn value === null ? [\n\t\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t\t'[',\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\t']'\n\t\t\t\t\t].join('') : [\n\t\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t\t'[',\n\t\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t\t']=',\n\t\t\t\t\t\tencode(value, opts)\n\t\t\t\t\t].join('');\n\t\t\t\t};\n\t\n\t\t\tcase 'bracket':\n\t\t\t\treturn function (key, value) {\n\t\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t\t'[]=',\n\t\t\t\t\t\tencode(value, opts)\n\t\t\t\t\t].join('');\n\t\t\t\t};\n\t\n\t\t\tdefault:\n\t\t\t\treturn function (key, value) {\n\t\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t\t'=',\n\t\t\t\t\t\tencode(value, opts)\n\t\t\t\t\t].join('');\n\t\t\t\t};\n\t\t}\n\t}\n\t\n\tfunction parserForArrayFormat(opts) {\n\t\tvar result;\n\t\n\t\tswitch (opts.arrayFormat) {\n\t\t\tcase 'index':\n\t\t\t\treturn function (key, value, accumulator) {\n\t\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\t\n\t\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\t\n\t\t\t\t\tif (!result) {\n\t\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t\t}\n\t\n\t\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t\t};\n\t\n\t\t\tcase 'bracket':\n\t\t\t\treturn function (key, value, accumulator) {\n\t\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\n\t\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\t\n\t\t\t\t\tif (!result || accumulator[key] === undefined) {\n\t\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t\t};\n\t\n\t\t\tdefault:\n\t\t\t\treturn function (key, value, accumulator) {\n\t\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t\t};\n\t\t}\n\t}\n\t\n\tfunction encode(value, opts) {\n\t\tif (opts.encode) {\n\t\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t\t}\n\t\n\t\treturn value;\n\t}\n\t\n\tfunction keysSorter(input) {\n\t\tif (Array.isArray(input)) {\n\t\t\treturn input.sort();\n\t\t} else if (typeof input === 'object') {\n\t\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\t\treturn Number(a) - Number(b);\n\t\t\t}).map(function (key) {\n\t\t\t\treturn input[key];\n\t\t\t});\n\t\t}\n\t\n\t\treturn input;\n\t}\n\t\n\texports.extract = function (str) {\n\t\treturn str.split('?')[1] || '';\n\t};\n\t\n\texports.parse = function (str, opts) {\n\t\topts = objectAssign({arrayFormat: 'none'}, opts);\n\t\n\t\tvar formatter = parserForArrayFormat(opts);\n\t\n\t\t// Create an object with no prototype\n\t\t// https://github.com/sindresorhus/query-string/issues/47\n\t\tvar ret = Object.create(null);\n\t\n\t\tif (typeof str !== 'string') {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\t\n\t\tif (!str) {\n\t\t\treturn ret;\n\t\t}\n\t\n\t\tstr.split('&').forEach(function (param) {\n\t\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\t\tvar key = parts.shift();\n\t\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\t\n\t\t\t// missing `=` should be `null`:\n\t\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\t\tval = val === undefined ? null : decodeURIComponent(val);\n\t\n\t\t\tformatter(decodeURIComponent(key), val, ret);\n\t\t});\n\t\n\t\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\t\tvar val = ret[key];\n\t\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t\t// Sort object keys, not values\n\t\t\t\tresult[key] = keysSorter(val);\n\t\t\t} else {\n\t\t\t\tresult[key] = val;\n\t\t\t}\n\t\n\t\t\treturn result;\n\t\t}, Object.create(null));\n\t};\n\t\n\texports.stringify = function (obj, opts) {\n\t\tvar defaults = {\n\t\t\tencode: true,\n\t\t\tstrict: true,\n\t\t\tarrayFormat: 'none'\n\t\t};\n\t\n\t\topts = objectAssign(defaults, opts);\n\t\n\t\tvar formatter = encoderForArrayFormat(opts);\n\t\n\t\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\t\tvar val = obj[key];\n\t\n\t\t\tif (val === undefined) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\n\t\t\tif (val === null) {\n\t\t\t\treturn encode(key, opts);\n\t\t\t}\n\t\n\t\t\tif (Array.isArray(val)) {\n\t\t\t\tvar result = [];\n\t\n\t\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t\t});\n\t\n\t\t\t\treturn result.join('&');\n\t\t\t}\n\t\n\t\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t\t}).filter(function (x) {\n\t\t\treturn x.length > 0;\n\t\t}).join('&') : '';\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\tmodule.exports = function (str) {\n\t\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t\t});\n\t};\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t/*\n\tobject-assign\n\t(c) Sindre Sorhus\n\t@license MIT\n\t*/\n\t\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (getOwnPropertySymbols) {\n\t\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tfunction _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\t\n\tvar packState = function packState(location) {\n\t var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t // eslint-disable-next-line no-unused-vars\n\t var query = location.query,\n\t rest = _objectWithoutProperties(location, ['query']);\n\t\n\t return _extends({}, rest, {\n\t state: _extends({}, rest.state || {}, {\n\t\n\t // Namespace our state to prevent interference\n\t // with user-provided state\n\t reduxLittleRouter: {\n\t query: query || {},\n\t options: options\n\t }\n\t })\n\t });\n\t};\n\t\n\texports.packState = packState;\n\tvar unpackState = function unpackState(location) {\n\t var _location$state = location.state,\n\t state = _location$state === undefined ? {} : _location$state,\n\t restLocation = _objectWithoutProperties(location, ['state']);\n\t\n\t var _state$reduxLittleRou = state.reduxLittleRouter,\n\t reduxLittleRouter = _state$reduxLittleRou === undefined ? {} : _state$reduxLittleRou,\n\t restState = _objectWithoutProperties(state, ['reduxLittleRouter']);\n\t\n\t var _reduxLittleRouter$qu = reduxLittleRouter.query,\n\t query = _reduxLittleRouter$qu === undefined ? {} : _reduxLittleRouter$qu,\n\t _reduxLittleRouter$op = reduxLittleRouter.options,\n\t options = _reduxLittleRouter$op === undefined ? {} : _reduxLittleRouter$op;\n\t\n\t\n\t return _extends({}, restLocation, {\n\t state: restState,\n\t query: query,\n\t options: options\n\t });\n\t};\n\texports.unpackState = unpackState;\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createBrowserHistory = __webpack_require__(9);\n\t\n\tvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\t\n\tvar _normalizeHref = __webpack_require__(3);\n\t\n\tvar _normalizeHref2 = _interopRequireDefault(_normalizeHref);\n\t\n\tvar _install = __webpack_require__(18);\n\t\n\tvar _install2 = _interopRequireDefault(_install);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/* istanbul ignore next: unstubbable! */\n\tvar realLocation = function realLocation() {\n\t return window.location;\n\t};\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes,\n\t basename = _ref.basename,\n\t _ref$getLocation = _ref.getLocation,\n\t getLocation = _ref$getLocation === undefined ? realLocation : _ref$getLocation;\n\t\n\t var history = (0, _createBrowserHistory2.default)({ basename: basename });\n\t\n\t var _getLocation = getLocation(),\n\t fullPathname = _getLocation.pathname,\n\t search = _getLocation.search;\n\t\n\t // Strip the basename from the initial pathname\n\t\n\t\n\t var pathname = basename ? fullPathname.replace(basename, '') : fullPathname;\n\t\n\t var descriptor = basename ? { pathname: pathname, basename: basename, search: search } : { pathname: pathname, search: search };\n\t\n\t var location = (0, _normalizeHref2.default)(descriptor);\n\t\n\t return (0, _install2.default)({ routes: routes, history: history, location: location });\n\t};\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar _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\t\n\tvar _warning = __webpack_require__(10);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _invariant = __webpack_require__(11);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _LocationUtils = __webpack_require__(12);\n\t\n\tvar _PathUtils = __webpack_require__(15);\n\t\n\tvar _createTransitionManager = __webpack_require__(16);\n\t\n\tvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\t\n\tvar _DOMUtils = __webpack_require__(17);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar PopStateEvent = 'popstate';\n\tvar HashChangeEvent = 'hashchange';\n\t\n\tvar getHistoryState = function getHistoryState() {\n\t try {\n\t return window.history.state || {};\n\t } catch (e) {\n\t // IE 11 sometimes throws when accessing window.history.state\n\t // See https://github.com/ReactTraining/history/pull/289\n\t return {};\n\t }\n\t};\n\t\n\t/**\n\t * Creates a history object that uses the HTML5 history API including\n\t * pushState, replaceState, and the popstate event.\n\t */\n\tvar createBrowserHistory = function createBrowserHistory() {\n\t var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t\n\t (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\t\n\t var globalHistory = window.history;\n\t var canUseHistory = (0, _DOMUtils.supportsHistory)();\n\t var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\t\n\t var _props$forceRefresh = props.forceRefresh,\n\t forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n\t _props$getUserConfirm = props.getUserConfirmation,\n\t getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n\t _props$keyLength = props.keyLength,\n\t keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\t\n\t var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\t\n\t var getDOMLocation = function getDOMLocation(historyState) {\n\t var _ref = historyState || {},\n\t key = _ref.key,\n\t state = _ref.state;\n\t\n\t var _window$location = window.location,\n\t pathname = _window$location.pathname,\n\t search = _window$location.search,\n\t hash = _window$location.hash;\n\t\n\t\n\t var path = pathname + search + hash;\n\t\n\t if (basename) path = (0, _PathUtils.stripPrefix)(path, basename);\n\t\n\t return _extends({}, (0, _PathUtils.parsePath)(path), {\n\t state: state,\n\t key: key\n\t });\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength);\n\t };\n\t\n\t var transitionManager = (0, _createTransitionManager2.default)();\n\t\n\t var setState = function setState(nextState) {\n\t _extends(history, nextState);\n\t\n\t history.length = globalHistory.length;\n\t\n\t transitionManager.notifyListeners(history.location, history.action);\n\t };\n\t\n\t var handlePopState = function handlePopState(event) {\n\t // Ignore extraneous popstate events in WebKit.\n\t if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\t\n\t handlePop(getDOMLocation(event.state));\n\t };\n\t\n\t var handleHashChange = function handleHashChange() {\n\t handlePop(getDOMLocation(getHistoryState()));\n\t };\n\t\n\t var forceNextPop = false;\n\t\n\t var handlePop = function handlePop(location) {\n\t if (forceNextPop) {\n\t forceNextPop = false;\n\t setState();\n\t } else {\n\t var action = 'POP';\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (ok) {\n\t setState({ action: action, location: location });\n\t } else {\n\t revertPop(location);\n\t }\n\t });\n\t }\n\t };\n\t\n\t var revertPop = function revertPop(fromLocation) {\n\t var toLocation = history.location;\n\t\n\t // TODO: We could probably make this more reliable by\n\t // keeping a list of keys we've seen in sessionStorage.\n\t // Instead, we just default to 0 for keys we don't know.\n\t\n\t var toIndex = allKeys.indexOf(toLocation.key);\n\t\n\t if (toIndex === -1) toIndex = 0;\n\t\n\t var fromIndex = allKeys.indexOf(fromLocation.key);\n\t\n\t if (fromIndex === -1) fromIndex = 0;\n\t\n\t var delta = toIndex - fromIndex;\n\t\n\t if (delta) {\n\t forceNextPop = true;\n\t go(delta);\n\t }\n\t };\n\t\n\t var initialLocation = getDOMLocation(getHistoryState());\n\t var allKeys = [initialLocation.key];\n\t\n\t // Public interface\n\t\n\t var createHref = function createHref(location) {\n\t return basename + (0, _PathUtils.createPath)(location);\n\t };\n\t\n\t var push = function push(path, state) {\n\t (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\t\n\t var action = 'PUSH';\n\t var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (!ok) return;\n\t\n\t var href = createHref(location);\n\t var key = location.key,\n\t state = location.state;\n\t\n\t\n\t if (canUseHistory) {\n\t globalHistory.pushState({ key: key, state: state }, null, href);\n\t\n\t if (forceRefresh) {\n\t window.location.href = href;\n\t } else {\n\t var prevIndex = allKeys.indexOf(history.location.key);\n\t var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\t\n\t nextKeys.push(location.key);\n\t allKeys = nextKeys;\n\t\n\t setState({ action: action, location: location });\n\t }\n\t } else {\n\t (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\t\n\t window.location.href = href;\n\t }\n\t });\n\t };\n\t\n\t var replace = function replace(path, state) {\n\t (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\t\n\t var action = 'REPLACE';\n\t var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (!ok) return;\n\t\n\t var href = createHref(location);\n\t var key = location.key,\n\t state = location.state;\n\t\n\t\n\t if (canUseHistory) {\n\t globalHistory.replaceState({ key: key, state: state }, null, href);\n\t\n\t if (forceRefresh) {\n\t window.location.replace(href);\n\t } else {\n\t var prevIndex = allKeys.indexOf(history.location.key);\n\t\n\t if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\t\n\t setState({ action: action, location: location });\n\t }\n\t } else {\n\t (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\t\n\t window.location.replace(href);\n\t }\n\t });\n\t };\n\t\n\t var go = function go(n) {\n\t globalHistory.go(n);\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var listenerCount = 0;\n\t\n\t var checkDOMListeners = function checkDOMListeners(delta) {\n\t listenerCount += delta;\n\t\n\t if (listenerCount === 1) {\n\t (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\t\n\t if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n\t } else if (listenerCount === 0) {\n\t (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\t\n\t if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n\t }\n\t };\n\t\n\t var isBlocked = false;\n\t\n\t var block = function block() {\n\t var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\t\n\t var unblock = transitionManager.setPrompt(prompt);\n\t\n\t if (!isBlocked) {\n\t checkDOMListeners(1);\n\t isBlocked = true;\n\t }\n\t\n\t return function () {\n\t if (isBlocked) {\n\t isBlocked = false;\n\t checkDOMListeners(-1);\n\t }\n\t\n\t return unblock();\n\t };\n\t };\n\t\n\t var listen = function listen(listener) {\n\t var unlisten = transitionManager.appendListener(listener);\n\t checkDOMListeners(1);\n\t\n\t return function () {\n\t checkDOMListeners(-1);\n\t unlisten();\n\t };\n\t };\n\t\n\t var history = {\n\t length: globalHistory.length,\n\t action: 'POP',\n\t location: initialLocation,\n\t createHref: createHref,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t block: block,\n\t listen: listen\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createBrowserHistory;\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2014-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = function() {};\n\t\n\tif (false) {\n\t warning = function(condition, format, args) {\n\t var len = arguments.length;\n\t args = new Array(len > 2 ? len - 2 : 0);\n\t for (var key = 2; key < len; key++) {\n\t args[key - 2] = arguments[key];\n\t }\n\t if (format === undefined) {\n\t throw new Error(\n\t '`warning(condition, format, ...args)` requires a warning ' +\n\t 'message argument'\n\t );\n\t }\n\t\n\t if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n\t throw new Error(\n\t 'The warning format should be able to uniquely identify this ' +\n\t 'warning. Please, use a more descriptive format than: ' + format\n\t );\n\t }\n\t\n\t if (!condition) {\n\t var argIndex = 0;\n\t var message = 'Warning: ' +\n\t format.replace(/%s/g, function() {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch(x) {}\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar invariant = function(condition, format, a, b, c, d, e, f) {\n\t if (false) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t }\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error(\n\t 'Minified exception occurred; use the non-minified dev environment ' +\n\t 'for the full error message and additional helpful warnings.'\n\t );\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(\n\t format.replace(/%s/g, function() { return args[argIndex++]; })\n\t );\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t};\n\t\n\tmodule.exports = invariant;\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.locationsAreEqual = exports.createLocation = undefined;\n\t\n\tvar _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\t\n\tvar _resolvePathname = __webpack_require__(13);\n\t\n\tvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\t\n\tvar _valueEqual = __webpack_require__(14);\n\t\n\tvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\t\n\tvar _PathUtils = __webpack_require__(15);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n\t var location = void 0;\n\t if (typeof path === 'string') {\n\t // Two-arg form: push(path, state)\n\t location = (0, _PathUtils.parsePath)(path);\n\t location.state = state;\n\t } else {\n\t // One-arg form: push(location)\n\t location = _extends({}, path);\n\t\n\t if (location.pathname === undefined) location.pathname = '';\n\t\n\t if (location.search) {\n\t if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n\t } else {\n\t location.search = '';\n\t }\n\t\n\t if (location.hash) {\n\t if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n\t } else {\n\t location.hash = '';\n\t }\n\t\n\t if (state !== undefined && location.state === undefined) location.state = state;\n\t }\n\t\n\t location.key = key;\n\t\n\t if (currentLocation) {\n\t // Resolve incomplete/relative pathname relative to current location.\n\t if (!location.pathname) {\n\t location.pathname = currentLocation.pathname;\n\t } else if (location.pathname.charAt(0) !== '/') {\n\t location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n\t }\n\t }\n\t\n\t return location;\n\t};\n\t\n\tvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n\t return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n\t};\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tvar isAbsolute = function isAbsolute(pathname) {\n\t return pathname.charAt(0) === '/';\n\t};\n\t\n\t// About 1.5x faster than the two-arg version of Array#splice()\n\tvar spliceOne = function spliceOne(list, index) {\n\t for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n\t list[i] = list[k];\n\t }list.pop();\n\t};\n\t\n\t// This implementation is based heavily on node's url.parse\n\tvar resolvePathname = function resolvePathname(to) {\n\t var from = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n\t\n\t var toParts = to && to.split('/') || [];\n\t var fromParts = from && from.split('/') || [];\n\t\n\t var isToAbs = to && isAbsolute(to);\n\t var isFromAbs = from && isAbsolute(from);\n\t var mustEndAbs = isToAbs || isFromAbs;\n\t\n\t if (to && isAbsolute(to)) {\n\t // to is absolute\n\t fromParts = toParts;\n\t } else if (toParts.length) {\n\t // to is relative, drop the filename\n\t fromParts.pop();\n\t fromParts = fromParts.concat(toParts);\n\t }\n\t\n\t if (!fromParts.length) return '/';\n\t\n\t var hasTrailingSlash = void 0;\n\t if (fromParts.length) {\n\t var last = fromParts[fromParts.length - 1];\n\t hasTrailingSlash = last === '.' || last === '..' || last === '';\n\t } else {\n\t hasTrailingSlash = false;\n\t }\n\t\n\t var up = 0;\n\t for (var i = fromParts.length; i >= 0; i--) {\n\t var part = fromParts[i];\n\t\n\t if (part === '.') {\n\t spliceOne(fromParts, i);\n\t } else if (part === '..') {\n\t spliceOne(fromParts, i);\n\t up++;\n\t } else if (up) {\n\t spliceOne(fromParts, i);\n\t up--;\n\t }\n\t }\n\t\n\t if (!mustEndAbs) for (; up--; up) {\n\t fromParts.unshift('..');\n\t }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\t\n\t var result = fromParts.join('/');\n\t\n\t if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\t\n\t return result;\n\t};\n\t\n\tmodule.exports = resolvePathname;\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar valueEqual = function valueEqual(a, b) {\n\t if (a === b) return true;\n\t\n\t if (a == null || b == null) return false;\n\t\n\t if (Array.isArray(a)) {\n\t if (!Array.isArray(b) || a.length !== b.length) return false;\n\t\n\t return a.every(function (item, index) {\n\t return valueEqual(item, b[index]);\n\t });\n\t }\n\t\n\t var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n\t var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\t\n\t if (aType !== bType) return false;\n\t\n\t if (aType === 'object') {\n\t var aValue = a.valueOf();\n\t var bValue = b.valueOf();\n\t\n\t if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\t\n\t var aKeys = Object.keys(a);\n\t var bKeys = Object.keys(b);\n\t\n\t if (aKeys.length !== bKeys.length) return false;\n\t\n\t return aKeys.every(function (key) {\n\t return valueEqual(a[key], b[key]);\n\t });\n\t }\n\t\n\t return false;\n\t};\n\t\n\texports.default = valueEqual;\n\n/***/ },\n/* 15 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\tvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n\t return path.charAt(0) === '/' ? path : '/' + path;\n\t};\n\t\n\tvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n\t return path.charAt(0) === '/' ? path.substr(1) : path;\n\t};\n\t\n\tvar stripPrefix = exports.stripPrefix = function stripPrefix(path, prefix) {\n\t return path.indexOf(prefix) === 0 ? path.substr(prefix.length) : path;\n\t};\n\t\n\tvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n\t return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n\t};\n\t\n\tvar parsePath = exports.parsePath = function parsePath(path) {\n\t var pathname = path || '/';\n\t var search = '';\n\t var hash = '';\n\t\n\t var hashIndex = pathname.indexOf('#');\n\t if (hashIndex !== -1) {\n\t hash = pathname.substr(hashIndex);\n\t pathname = pathname.substr(0, hashIndex);\n\t }\n\t\n\t var searchIndex = pathname.indexOf('?');\n\t if (searchIndex !== -1) {\n\t search = pathname.substr(searchIndex);\n\t pathname = pathname.substr(0, searchIndex);\n\t }\n\t\n\t pathname = decodeURI(pathname);\n\t\n\t return {\n\t pathname: pathname,\n\t search: search === '?' ? '' : search,\n\t hash: hash === '#' ? '' : hash\n\t };\n\t};\n\t\n\tvar createPath = exports.createPath = function createPath(location) {\n\t var pathname = location.pathname,\n\t search = location.search,\n\t hash = location.hash;\n\t\n\t\n\t var path = encodeURI(pathname || '/');\n\t\n\t if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\t\n\t if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\t\n\t return path;\n\t};\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _warning = __webpack_require__(10);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar createTransitionManager = function createTransitionManager() {\n\t var prompt = null;\n\t\n\t var setPrompt = function setPrompt(nextPrompt) {\n\t (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\t\n\t prompt = nextPrompt;\n\t\n\t return function () {\n\t if (prompt === nextPrompt) prompt = null;\n\t };\n\t };\n\t\n\t var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n\t // TODO: If another transition starts while we're still confirming\n\t // the previous one, we may end up in a weird state. Figure out the\n\t // best way to handle this.\n\t if (prompt != null) {\n\t var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\t\n\t if (typeof result === 'string') {\n\t if (typeof getUserConfirmation === 'function') {\n\t getUserConfirmation(result, callback);\n\t } else {\n\t (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\t\n\t callback(true);\n\t }\n\t } else {\n\t // Return false from a transition hook to cancel the transition.\n\t callback(result !== false);\n\t }\n\t } else {\n\t callback(true);\n\t }\n\t };\n\t\n\t var listeners = [];\n\t\n\t var appendListener = function appendListener(fn) {\n\t var isActive = true;\n\t\n\t var listener = function listener() {\n\t if (isActive) fn.apply(undefined, arguments);\n\t };\n\t\n\t listeners.push(listener);\n\t\n\t return function () {\n\t isActive = false;\n\t listeners = listeners.filter(function (item) {\n\t return item !== listener;\n\t });\n\t };\n\t };\n\t\n\t var notifyListeners = function notifyListeners() {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t listeners.forEach(function (listener) {\n\t return listener.apply(undefined, args);\n\t });\n\t };\n\t\n\t return {\n\t setPrompt: setPrompt,\n\t confirmTransitionTo: confirmTransitionTo,\n\t appendListener: appendListener,\n\t notifyListeners: notifyListeners\n\t };\n\t};\n\t\n\texports.default = createTransitionManager;\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\tvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\t\n\tvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n\t return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n\t};\n\t\n\tvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n\t return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n\t};\n\t\n\tvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n\t return callback(window.confirm(message));\n\t}; // eslint-disable-line no-alert\n\t\n\t/**\n\t * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n\t *\n\t * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n\t * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n\t * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n\t */\n\tvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n\t var ua = window.navigator.userAgent;\n\t\n\t if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\t\n\t return window.history && 'pushState' in window.history;\n\t};\n\t\n\t/**\n\t * Returns true if browser fires popstate on hash change.\n\t * IE10 and IE11 do not.\n\t */\n\tvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n\t return window.navigator.userAgent.indexOf('Trident') === -1;\n\t};\n\t\n\t/**\n\t * Returns false if using go(n) with hash history causes a full page reload.\n\t */\n\tvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n\t return window.navigator.userAgent.indexOf('Firefox') === -1;\n\t};\n\t\n\t/**\n\t * Returns true if a given popstate event is an extraneous WebKit event.\n\t * Accounts for the fact that Chrome on iOS fires real popstate events\n\t * containing undefined state when pressing the back button.\n\t */\n\tvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n\t return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n\t};\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _reducer = __webpack_require__(19);\n\t\n\tvar _reducer2 = _interopRequireDefault(_reducer);\n\t\n\tvar _middleware = __webpack_require__(20);\n\t\n\tvar _middleware2 = _interopRequireDefault(_middleware);\n\t\n\tvar _enhancer = __webpack_require__(21);\n\t\n\tvar _enhancer2 = _interopRequireDefault(_enhancer);\n\t\n\tvar _createMatcher = __webpack_require__(23);\n\t\n\tvar _createMatcher2 = _interopRequireDefault(_createMatcher);\n\t\n\tvar _validateRoutes = __webpack_require__(26);\n\t\n\tvar _validateRoutes2 = _interopRequireDefault(_validateRoutes);\n\t\n\tvar _flattenRoutes = __webpack_require__(27);\n\t\n\tvar _flattenRoutes2 = _interopRequireDefault(_flattenRoutes);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var nestedRoutes = _ref.routes,\n\t history = _ref.history,\n\t location = _ref.location,\n\t _ref$createMatcher = _ref.createMatcher,\n\t createMatcher = _ref$createMatcher === undefined ? _createMatcher2.default : _ref$createMatcher;\n\t\n\t (0, _validateRoutes2.default)(nestedRoutes);\n\t var routes = (0, _flattenRoutes2.default)(nestedRoutes);\n\t\n\t var matchRoute = createMatcher(routes);\n\t var matchWildcardRoute = createMatcher(routes, true);\n\t\n\t return {\n\t reducer: (0, _reducer2.default)(_extends({}, location, matchRoute(location.pathname))),\n\t middleware: (0, _middleware2.default)({ history: history }),\n\t enhancer: (0, _enhancer2.default)({\n\t routes: routes,\n\t history: history,\n\t matchRoute: matchRoute,\n\t matchWildcardRoute: matchWildcardRoute\n\t })\n\t };\n\t};\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _types = __webpack_require__(1);\n\t\n\tfunction _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\t\n\tvar flow = function flow() {\n\t for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n\t funcs[_key] = arguments[_key];\n\t }\n\t\n\t return funcs.reduce(function (prev, curr) {\n\t return function () {\n\t return curr(prev.apply(undefined, arguments));\n\t };\n\t });\n\t};\n\t\n\tvar resolveQuery = function resolveQuery(_ref) {\n\t var oldLocation = _ref.oldLocation,\n\t newLocation = _ref.newLocation,\n\t options = _ref.options;\n\t var oldQuery = oldLocation.query,\n\t oldSearch = oldLocation.search;\n\t\n\t // Only use the query from state if it exists\n\t // and the href doesn't provide its own query\n\t\n\t if (options.persistQuery && oldQuery && !newLocation.search && !newLocation.query) {\n\t return {\n\t oldLocation: oldLocation,\n\t newLocation: _extends({}, newLocation, {\n\t query: oldQuery,\n\t search: oldSearch\n\t }),\n\t options: options\n\t };\n\t }\n\t\n\t return { oldLocation: oldLocation, newLocation: newLocation, options: options };\n\t};\n\t\n\tvar resolveBasename = function resolveBasename(_ref2) {\n\t var oldLocation = _ref2.oldLocation,\n\t newLocation = _ref2.newLocation,\n\t options = _ref2.options;\n\t var basename = oldLocation.basename;\n\t\n\t if (basename) {\n\t return {\n\t oldLocation: oldLocation,\n\t newLocation: _extends({ basename: basename }, newLocation),\n\t options: options\n\t };\n\t }\n\t return { oldLocation: oldLocation, newLocation: newLocation, options: options };\n\t};\n\t\n\tvar resolvePrevious = function resolvePrevious(_ref3) {\n\t var oldLocation = _ref3.oldLocation,\n\t newLocation = _ref3.newLocation,\n\t options = _ref3.options;\n\t return {\n\t oldLocation: oldLocation,\n\t newLocation: _extends({}, newLocation, {\n\t previous: oldLocation\n\t }),\n\t options: options\n\t };\n\t};\n\t\n\texports.default = function (initialLocation) {\n\t return function () {\n\t var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialLocation;\n\t var action = arguments[1];\n\t\n\t if (action.type === _types.LOCATION_CHANGED) {\n\t // No-op the initial route action\n\t if (state.pathname === action.payload.pathname && state.search === action.payload.search) {\n\t return state;\n\t }\n\t\n\t // Extract the previous state, but dump the\n\t // previous state's previous state so that the\n\t // state tree doesn't keep growing indefinitely\n\t // eslint-disable-next-line no-unused-vars\n\t\n\t var previous = state.previous,\n\t _oldLocation = _objectWithoutProperties(state, ['previous']);\n\t\n\t var _options = action.payload.options;\n\t\n\t\n\t var resolveLocation = flow(resolveQuery, resolveBasename, resolvePrevious);\n\t\n\t return resolveLocation({\n\t oldLocation: _oldLocation,\n\t newLocation: action.payload,\n\t options: _options || {}\n\t }).newLocation;\n\t }\n\t return state;\n\t };\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _types = __webpack_require__(1);\n\t\n\t/* eslint-disable consistent-return */\n\texports.default = function (_ref) {\n\t var history = _ref.history;\n\t return function () {\n\t return function (next) {\n\t return function (action) {\n\t switch (action.type) {\n\t case _types.PUSH:\n\t history.push(action.payload);\n\t // No return, no next() here\n\t // We stop all history events from progressing further through the dispatch chain...\n\t break;\n\t case _types.REPLACE:\n\t history.replace(action.payload);\n\t break;\n\t case _types.GO:\n\t history.go(action.payload);\n\t break;\n\t case _types.GO_BACK:\n\t history.goBack();\n\t break;\n\t case _types.GO_FORWARD:\n\t history.goForward();\n\t break;\n\t default:\n\t // ...but we want to leave all events we don't care about undisturbed\n\t return next(action);\n\t }\n\t };\n\t };\n\t };\n\t};\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _actions = __webpack_require__(2);\n\t\n\tvar _locationState = __webpack_require__(7);\n\t\n\tvar _matchCache = __webpack_require__(22);\n\t\n\tvar _matchCache2 = _interopRequireDefault(_matchCache);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes,\n\t history = _ref.history,\n\t matchRoute = _ref.matchRoute,\n\t matchWildcardRoute = _ref.matchWildcardRoute;\n\t return function (createStore) {\n\t return function (userReducer, initialState, enhancer) {\n\t var store = createStore(userReducer, initialState, enhancer);\n\t\n\t history.listen(function (location) {\n\t _matchCache2.default.clear();\n\t store.dispatch((0, _actions.locationDidChange)(_extends({}, (0, _locationState.unpackState)(location), matchRoute(location.pathname))));\n\t });\n\t\n\t return _extends({}, store, {\n\t routes: routes,\n\t matchRoute: matchRoute,\n\t matchWildcardRoute: matchWildcardRoute\n\t });\n\t };\n\t };\n\t};\n\n/***/ },\n/* 22 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar ROUTE_FALLBACK = '@ROUTE_FALLBACK';\n\t\n\tvar MatchCache = exports.MatchCache = function () {\n\t function MatchCache() {\n\t _classCallCheck(this, MatchCache);\n\t\n\t this._data = {};\n\t }\n\t\n\t _createClass(MatchCache, [{\n\t key: 'add',\n\t value: function add(parentId, route) {\n\t this._data[parentId] = route || ROUTE_FALLBACK;\n\t }\n\t }, {\n\t key: 'get',\n\t value: function get(parentId) {\n\t return this._data[parentId] || null;\n\t }\n\t }, {\n\t key: 'clear',\n\t value: function clear() {\n\t this._data = {};\n\t }\n\t }]);\n\t\n\t return MatchCache;\n\t}();\n\t\n\texports.default = new MatchCache();\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _urlPattern = __webpack_require__(24);\n\t\n\tvar _urlPattern2 = _interopRequireDefault(_urlPattern);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar find = function find(list, predicate) {\n\t for (var i = 0; i < list.length; i++) {\n\t var item = list[i];\n\t if (predicate(item)) {\n\t return item;\n\t }\n\t }\n\t return null;\n\t};\n\t\n\t\n\tvar wildcardMatcher = function wildcardMatcher(routeList) {\n\t return function (incomingUrl) {\n\t var routeToMatch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\t\n\t // Discard query strings\n\t var pathname = incomingUrl.split('?')[0];\n\t\n\t var storedRoute = find(routeList, function (route) {\n\t return route.route === routeToMatch;\n\t });\n\t\n\t if (!storedRoute) {\n\t return null;\n\t }\n\t\n\t var match = storedRoute.pattern.match(pathname);\n\t\n\t if (match) {\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t\n\t return null;\n\t };\n\t};\n\t\n\tvar eagerMatcher = function eagerMatcher(routeList) {\n\t return function (incomingUrl) {\n\t // Discard query strings\n\t var pathname = incomingUrl.split('?')[0];\n\t\n\t // Find the route that matches the URL\n\t for (var i = 0; i < routeList.length; i++) {\n\t var storedRoute = routeList[i];\n\t var match = storedRoute.pattern.match(pathname);\n\t\n\t if (match) {\n\t // Return the matched params and user-defined result object\n\t return {\n\t route: storedRoute.route,\n\t params: match,\n\t result: storedRoute.result\n\t };\n\t }\n\t }\n\t\n\t return null;\n\t };\n\t};\n\t\n\texports.default = function (routes) {\n\t var wildcard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\t\n\t var routeList = Object.keys(routes).sort().reverse().map(function (route) {\n\t return {\n\t route: route,\n\t pattern: new _urlPattern2.default(\n\t // Prepend with wildcards if requested\n\t '' + route + (wildcard && '*' || '')),\n\t result: routes[route]\n\t };\n\t });\n\t\n\t return wildcard ? wildcardMatcher(routeList) : eagerMatcher(routeList);\n\t};\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Generated by CoffeeScript 1.10.0\n\tvar slice = [].slice;\n\t\n\t(function(root, factory) {\n\t if (('function' === \"function\") && (__webpack_require__(25) != null)) {\n\t return !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t } else if (typeof exports !== \"undefined\" && exports !== null) {\n\t return module.exports = factory();\n\t } else {\n\t return root.UrlPattern = factory();\n\t }\n\t})(this, function() {\n\t var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n\t escapeForRegex = function(string) {\n\t return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\t };\n\t concatMap = function(array, f) {\n\t var i, length, results;\n\t results = [];\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t results = results.concat(f(array[i]));\n\t }\n\t return results;\n\t };\n\t stringConcatMap = function(array, f) {\n\t var i, length, result;\n\t result = '';\n\t i = -1;\n\t length = array.length;\n\t while (++i < length) {\n\t result += f(array[i]);\n\t }\n\t return result;\n\t };\n\t regexGroupCount = function(regex) {\n\t return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n\t };\n\t keysAndValuesToObject = function(keys, values) {\n\t var i, key, length, object, value;\n\t object = {};\n\t i = -1;\n\t length = keys.length;\n\t while (++i < length) {\n\t key = keys[i];\n\t value = values[i];\n\t if (value == null) {\n\t continue;\n\t }\n\t if (object[key] != null) {\n\t if (!Array.isArray(object[key])) {\n\t object[key] = [object[key]];\n\t }\n\t object[key].push(value);\n\t } else {\n\t object[key] = value;\n\t }\n\t }\n\t return object;\n\t };\n\t P = {};\n\t P.Result = function(value, rest) {\n\t this.value = value;\n\t this.rest = rest;\n\t };\n\t P.Tagged = function(tag, value) {\n\t this.tag = tag;\n\t this.value = value;\n\t };\n\t P.tag = function(tag, parser) {\n\t return function(input) {\n\t var result, tagged;\n\t result = parser(input);\n\t if (result == null) {\n\t return;\n\t }\n\t tagged = new P.Tagged(tag, result.value);\n\t return new P.Result(tagged, result.rest);\n\t };\n\t };\n\t P.regex = function(regex) {\n\t return function(input) {\n\t var matches, result;\n\t matches = regex.exec(input);\n\t if (matches == null) {\n\t return;\n\t }\n\t result = matches[0];\n\t return new P.Result(result, input.slice(result.length));\n\t };\n\t };\n\t P.sequence = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, rest, result, values;\n\t i = -1;\n\t length = parsers.length;\n\t values = [];\n\t rest = input;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(rest);\n\t if (result == null) {\n\t return;\n\t }\n\t values.push(result.value);\n\t rest = result.rest;\n\t }\n\t return new P.Result(values, rest);\n\t };\n\t };\n\t P.pick = function() {\n\t var indexes, parsers;\n\t indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n\t return function(input) {\n\t var array, result;\n\t result = P.sequence.apply(P, parsers)(input);\n\t if (result == null) {\n\t return;\n\t }\n\t array = result.value;\n\t result.value = array[indexes];\n\t return result;\n\t };\n\t };\n\t P.string = function(string) {\n\t var length;\n\t length = string.length;\n\t return function(input) {\n\t if (input.slice(0, length) === string) {\n\t return new P.Result(string, input.slice(length));\n\t }\n\t };\n\t };\n\t P.lazy = function(fn) {\n\t var cached;\n\t cached = null;\n\t return function(input) {\n\t if (cached == null) {\n\t cached = fn();\n\t }\n\t return cached(input);\n\t };\n\t };\n\t P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n\t var endResult, parserResult, rest, results;\n\t rest = input;\n\t results = stringResult ? '' : [];\n\t while (true) {\n\t if (end != null) {\n\t endResult = end(rest);\n\t if (endResult != null) {\n\t break;\n\t }\n\t }\n\t parserResult = parser(rest);\n\t if (parserResult == null) {\n\t break;\n\t }\n\t if (stringResult) {\n\t results += parserResult.value;\n\t } else {\n\t results.push(parserResult.value);\n\t }\n\t rest = parserResult.rest;\n\t }\n\t if (atLeastOneResultRequired && results.length === 0) {\n\t return;\n\t }\n\t return new P.Result(results, rest);\n\t };\n\t P.many1 = function(parser) {\n\t return function(input) {\n\t return P.baseMany(parser, null, false, true, input);\n\t };\n\t };\n\t P.concatMany1Till = function(parser, end) {\n\t return function(input) {\n\t return P.baseMany(parser, end, true, true, input);\n\t };\n\t };\n\t P.firstChoice = function() {\n\t var parsers;\n\t parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\t return function(input) {\n\t var i, length, parser, result;\n\t i = -1;\n\t length = parsers.length;\n\t while (++i < length) {\n\t parser = parsers[i];\n\t result = parser(input);\n\t if (result != null) {\n\t return result;\n\t }\n\t }\n\t };\n\t };\n\t newParser = function(options) {\n\t var U;\n\t U = {};\n\t U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n\t U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n\t return U.pattern;\n\t }), P.string(options.optionalSegmentEndChar)));\n\t U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n\t U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n\t return U.name;\n\t })));\n\t U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n\t U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n\t return U.escapedChar;\n\t }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n\t U.token = P.lazy(function() {\n\t return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n\t });\n\t U.pattern = P.many1(P.lazy(function() {\n\t return U.token;\n\t }));\n\t return U;\n\t };\n\t defaultOptions = {\n\t escapeChar: '\\\\',\n\t segmentNameStartChar: ':',\n\t segmentValueCharset: 'a-zA-Z0-9-_~ %',\n\t segmentNameCharset: 'a-zA-Z0-9',\n\t optionalSegmentStartChar: '(',\n\t optionalSegmentEndChar: ')',\n\t wildcardChar: '*'\n\t };\n\t baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return baseAstNodeToRegexString(node, segmentValueCharset);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return '(.*?)';\n\t case 'named':\n\t return \"([\" + segmentValueCharset + \"]+)\";\n\t case 'static':\n\t return escapeForRegex(astNode.value);\n\t case 'optional':\n\t return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n\t }\n\t };\n\t astNodeToRegexString = function(astNode, segmentValueCharset) {\n\t if (segmentValueCharset == null) {\n\t segmentValueCharset = defaultOptions.segmentValueCharset;\n\t }\n\t return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n\t };\n\t astNodeToNames = function(astNode) {\n\t if (Array.isArray(astNode)) {\n\t return concatMap(astNode, astNodeToNames);\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return ['_'];\n\t case 'named':\n\t return [astNode.value];\n\t case 'static':\n\t return [];\n\t case 'optional':\n\t return astNodeToNames(astNode.value);\n\t }\n\t };\n\t getParam = function(params, key, nextIndexes, sideEffects) {\n\t var index, maxIndex, result, value;\n\t if (sideEffects == null) {\n\t sideEffects = false;\n\t }\n\t value = params[key];\n\t if (value == null) {\n\t if (sideEffects) {\n\t throw new Error(\"no values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t index = nextIndexes[key] || 0;\n\t maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n\t if (index > maxIndex) {\n\t if (sideEffects) {\n\t throw new Error(\"too few values provided for key `\" + key + \"`\");\n\t } else {\n\t return;\n\t }\n\t }\n\t result = Array.isArray(value) ? value[index] : value;\n\t if (sideEffects) {\n\t nextIndexes[key] = index + 1;\n\t }\n\t return result;\n\t };\n\t astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n\t var i, length;\n\t if (Array.isArray(astNode)) {\n\t i = -1;\n\t length = astNode.length;\n\t while (++i < length) {\n\t if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, false) != null;\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, false) != null;\n\t case 'static':\n\t return false;\n\t case 'optional':\n\t return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n\t }\n\t };\n\t stringify = function(astNode, params, nextIndexes) {\n\t if (Array.isArray(astNode)) {\n\t return stringConcatMap(astNode, function(node) {\n\t return stringify(node, params, nextIndexes);\n\t });\n\t }\n\t switch (astNode.tag) {\n\t case 'wildcard':\n\t return getParam(params, '_', nextIndexes, true);\n\t case 'named':\n\t return getParam(params, astNode.value, nextIndexes, true);\n\t case 'static':\n\t return astNode.value;\n\t case 'optional':\n\t if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n\t return stringify(astNode.value, params, nextIndexes);\n\t } else {\n\t return '';\n\t }\n\t }\n\t };\n\t UrlPattern = function(arg1, arg2) {\n\t var groupCount, options, parsed, parser, withoutWhitespace;\n\t if (arg1 instanceof UrlPattern) {\n\t this.isRegex = arg1.isRegex;\n\t this.regex = arg1.regex;\n\t this.ast = arg1.ast;\n\t this.names = arg1.names;\n\t return;\n\t }\n\t this.isRegex = arg1 instanceof RegExp;\n\t if (!(('string' === typeof arg1) || this.isRegex)) {\n\t throw new TypeError('argument must be a regex or a string');\n\t }\n\t if (this.isRegex) {\n\t this.regex = arg1;\n\t if (arg2 != null) {\n\t if (!Array.isArray(arg2)) {\n\t throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n\t }\n\t groupCount = regexGroupCount(this.regex);\n\t if (arg2.length !== groupCount) {\n\t throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n\t }\n\t this.names = arg2;\n\t }\n\t return;\n\t }\n\t if (arg1 === '') {\n\t throw new Error('argument must not be the empty string');\n\t }\n\t withoutWhitespace = arg1.replace(/\\s+/g, '');\n\t if (withoutWhitespace !== arg1) {\n\t throw new Error('argument must not contain whitespace');\n\t }\n\t options = {\n\t escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n\t segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n\t segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n\t segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n\t optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n\t optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n\t wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n\t };\n\t parser = newParser(options);\n\t parsed = parser.pattern(arg1);\n\t if (parsed == null) {\n\t throw new Error(\"couldn't parse pattern\");\n\t }\n\t if (parsed.rest !== '') {\n\t throw new Error(\"could only partially parse pattern\");\n\t }\n\t this.ast = parsed.value;\n\t this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n\t this.names = astNodeToNames(this.ast);\n\t };\n\t UrlPattern.prototype.match = function(url) {\n\t var groups, match;\n\t match = this.regex.exec(url);\n\t if (match == null) {\n\t return null;\n\t }\n\t groups = match.slice(1);\n\t if (this.names) {\n\t return keysAndValuesToObject(this.names, groups);\n\t } else {\n\t return groups;\n\t }\n\t };\n\t UrlPattern.prototype.stringify = function(params) {\n\t if (params == null) {\n\t params = {};\n\t }\n\t if (this.isRegex) {\n\t throw new Error(\"can't stringify patterns generated from a regex\");\n\t }\n\t if (params !== Object(params)) {\n\t throw new Error(\"argument must be an object or undefined\");\n\t }\n\t return stringify(this.ast, params, {});\n\t };\n\t UrlPattern.escapeForRegex = escapeForRegex;\n\t UrlPattern.concatMap = concatMap;\n\t UrlPattern.stringConcatMap = stringConcatMap;\n\t UrlPattern.regexGroupCount = regexGroupCount;\n\t UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n\t UrlPattern.P = P;\n\t UrlPattern.newParser = newParser;\n\t UrlPattern.defaultOptions = defaultOptions;\n\t UrlPattern.astNodeToRegexString = astNodeToRegexString;\n\t UrlPattern.astNodeToNames = astNodeToNames;\n\t UrlPattern.getParam = getParam;\n\t UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n\t UrlPattern.stringify = stringify;\n\t return UrlPattern;\n\t});\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;\r\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, {}))\n\n/***/ },\n/* 26 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar README_MESSAGE = '\\n See the README for more information:\\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\\n';\n\t\n\texports.default = function (routes) {\n\t if (!routes) {\n\t throw Error('\\n Missing route configuration. You must define your routes as\\n an object where the keys are routes and the values are any\\n route-specific data.\\n\\n ' + README_MESSAGE + '\\n ');\n\t }\n\t\n\t // eslint-disable-next-line no-magic-numbers\n\t if (!Object.keys(routes).every(function (route) {\n\t return route.indexOf('/') === 0;\n\t })) {\n\t throw Error('\\n The route configuration you provided is malformed. Make sure\\n that all of your routes start with a slash.\\n\\n ' + README_MESSAGE + '\\n ');\n\t }\n\t};\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _lodash = __webpack_require__(28);\n\t\n\tvar _lodash2 = _interopRequireDefault(_lodash);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tvar filterObject = function filterObject(target, predicate) {\n\t return Object.keys(target).reduce(function (acc, key) {\n\t return predicate(key) ? _extends({}, acc, _defineProperty({}, key, target[key])) : acc;\n\t }, {});\n\t};\n\t\n\tvar mapObject = function mapObject(target, transformKey, transformValue) {\n\t return Object.keys(target).reduce(function (acc, key) {\n\t var newKey = transformKey ? transformKey(key) : key;\n\t var newValue = transformValue ? transformValue(target[key]) : target[key];\n\t return _extends({}, acc, _defineProperty({}, newKey, newValue));\n\t }, {});\n\t};\n\t\n\tvar onlyRoutes = function onlyRoutes(routes) {\n\t return filterObject(routes, function (key) {\n\t return key.indexOf('/') === 0;\n\t });\n\t};\n\t\n\tvar withoutRoutes = function withoutRoutes(routes) {\n\t return filterObject(routes, function (key) {\n\t return key.indexOf('/') !== 0;\n\t });\n\t};\n\t\n\tvar flattenRoutes = function flattenRoutes(routes) {\n\t var acc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t Object.keys(routes).forEach(function (key) {\n\t var baseRoute = key === '/' ? '' : key;\n\t flattenRoutes(mapObject(onlyRoutes(routes[key]), function (routeKey) {\n\t return '' + baseRoute + routeKey;\n\t }, function (routeValue) {\n\t return _extends({}, routeValue, {\n\t parent: _extends({}, withoutRoutes(routes[key]), {\n\t route: key\n\t })\n\t });\n\t }), acc);\n\t });\n\t\n\t (0, _lodash2.default)(acc, mapObject(routes, null, withoutRoutes));\n\t\n\t return acc;\n\t};\n\t\n\texports.default = flattenRoutes;\n\n/***/ },\n/* 28 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\t\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]';\n\t\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\t\n\t/**\n\t * A faster alternative to `Function#apply`, this function invokes `func`\n\t * with the `this` binding of `thisArg` and the arguments of `args`.\n\t *\n\t * @private\n\t * @param {Function} func The function to invoke.\n\t * @param {*} thisArg The `this` binding of `func`.\n\t * @param {Array} args The arguments to invoke `func` with.\n\t * @returns {*} Returns the result of `func`.\n\t */\n\tfunction apply(func, thisArg, args) {\n\t switch (args.length) {\n\t case 0: return func.call(thisArg);\n\t case 1: return func.call(thisArg, args[0]);\n\t case 2: return func.call(thisArg, args[0], args[1]);\n\t case 3: return func.call(thisArg, args[0], args[1], args[2]);\n\t }\n\t return func.apply(thisArg, args);\n\t}\n\t\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\t\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\t\n\t/** Built-in value references. */\n\tvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeKeys = overArg(Object.keys, Object),\n\t nativeMax = Math.max;\n\t\n\t/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\n\tvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\t\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t // Safari 9 makes `arguments.length` enumerable in strict mode.\n\t var result = (isArray(value) || isArguments(value))\n\t ? baseTimes(value.length, String)\n\t : [];\n\t\n\t var length = result.length,\n\t skipIndexes = !!length;\n\t\n\t for (var key in value) {\n\t if ((inherited || hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t object[key] = value;\n\t }\n\t}\n\t\n\t/**\n\t * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeys(object) {\n\t if (!isPrototype(object)) {\n\t return nativeKeys(object);\n\t }\n\t var result = [];\n\t for (var key in Object(object)) {\n\t if (hasOwnProperty.call(object, key) && key != 'constructor') {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\t/**\n\t * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n\t *\n\t * @private\n\t * @param {Function} func The function to apply a rest parameter to.\n\t * @param {number} [start=func.length-1] The start position of the rest parameter.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction baseRest(func, start) {\n\t start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n\t return function() {\n\t var args = arguments,\n\t index = -1,\n\t length = nativeMax(args.length - start, 0),\n\t array = Array(length);\n\t\n\t while (++index < length) {\n\t array[index] = args[start + index];\n\t }\n\t index = -1;\n\t var otherArgs = Array(start + 1);\n\t while (++index < start) {\n\t otherArgs[index] = args[index];\n\t }\n\t otherArgs[start] = array;\n\t return apply(func, this, otherArgs);\n\t };\n\t}\n\t\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t object || (object = {});\n\t\n\t var index = -1,\n\t length = props.length;\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t\n\t var newValue = customizer\n\t ? customizer(object[key], source[key], key, object, source)\n\t : undefined;\n\t\n\t assignValue(object, key, newValue === undefined ? source[key] : newValue);\n\t }\n\t return object;\n\t}\n\t\n\t/**\n\t * Creates a function like `_.assign`.\n\t *\n\t * @private\n\t * @param {Function} assigner The function to assign values.\n\t * @returns {Function} Returns the new assigner function.\n\t */\n\tfunction createAssigner(assigner) {\n\t return baseRest(function(object, sources) {\n\t var index = -1,\n\t length = sources.length,\n\t customizer = length > 1 ? sources[length - 1] : undefined,\n\t guard = length > 2 ? sources[2] : undefined;\n\t\n\t customizer = (assigner.length > 3 && typeof customizer == 'function')\n\t ? (length--, customizer)\n\t : undefined;\n\t\n\t if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n\t customizer = length < 3 ? undefined : customizer;\n\t length = 1;\n\t }\n\t object = Object(object);\n\t while (++index < length) {\n\t var source = sources[index];\n\t if (source) {\n\t assigner(object, source, index, customizer);\n\t }\n\t }\n\t return object;\n\t });\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\t\n\t/**\n\t * Checks if the given arguments are from an iteratee call.\n\t *\n\t * @private\n\t * @param {*} value The potential iteratee value argument.\n\t * @param {*} index The potential iteratee index or key argument.\n\t * @param {*} object The potential iteratee object argument.\n\t * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n\t * else `false`.\n\t */\n\tfunction isIterateeCall(value, index, object) {\n\t if (!isObject(object)) {\n\t return false;\n\t }\n\t var type = typeof index;\n\t if (type == 'number'\n\t ? (isArrayLike(object) && isIndex(index, object.length))\n\t : (type == 'string' && index in object)\n\t ) {\n\t return eq(object[index], value);\n\t }\n\t return false;\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\t\n\t return value === proto;\n\t}\n\t\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\t\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tfunction isArguments(value) {\n\t // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n\t return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n\t (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as an `Array` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n\t * @example\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\t\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\t\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\t\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8-9 which returns 'object' for typed array and other constructors.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\t\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\t\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\t\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\t\n\t/**\n\t * Assigns own enumerable string keyed properties of source objects to the\n\t * destination object. Source objects are applied from left to right.\n\t * Subsequent sources overwrite property assignments of previous sources.\n\t *\n\t * **Note:** This method mutates `object` and is loosely based on\n\t * [`Object.assign`](https://mdn.io/Object/assign).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.10.0\n\t * @category Object\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [sources] The source objects.\n\t * @returns {Object} Returns `object`.\n\t * @see _.assignIn\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * function Bar() {\n\t * this.c = 3;\n\t * }\n\t *\n\t * Foo.prototype.b = 2;\n\t * Bar.prototype.d = 4;\n\t *\n\t * _.assign({ 'a': 0 }, new Foo, new Bar);\n\t * // => { 'a': 1, 'c': 3 }\n\t */\n\tvar assign = createAssigner(function(object, source) {\n\t if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n\t copyObject(source, keys(source), object);\n\t return;\n\t }\n\t for (var key in source) {\n\t if (hasOwnProperty.call(source, key)) {\n\t assignValue(object, key, source[key]);\n\t }\n\t }\n\t});\n\t\n\t/**\n\t * Creates an array of the own enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects. See the\n\t * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * for more details.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keys(new Foo);\n\t * // => ['a', 'b'] (iteration order is not guaranteed)\n\t *\n\t * _.keys('hi');\n\t * // => ['0', '1']\n\t */\n\tfunction keys(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n\t}\n\t\n\tmodule.exports = assign;\n\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createMemoryHistory = __webpack_require__(30);\n\t\n\tvar _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);\n\t\n\tvar _normalizeHref = __webpack_require__(3);\n\t\n\tvar _normalizeHref2 = _interopRequireDefault(_normalizeHref);\n\t\n\tvar _install = __webpack_require__(18);\n\t\n\tvar _install2 = _interopRequireDefault(_install);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar locationForRequest = function locationForRequest(request) {\n\t var pathname = request.path,\n\t basename = request.baseUrl,\n\t query = request.query;\n\t\n\t var descriptor = basename ? { pathname: pathname, basename: basename, query: query } : { pathname: pathname, query: query };\n\t return (0, _normalizeHref2.default)(descriptor);\n\t};\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes,\n\t request = _ref.request;\n\t\n\t var history = (0, _createMemoryHistory2.default)();\n\t var location = locationForRequest(request);\n\t\n\t return (0, _install2.default)({ routes: routes, history: history, location: location });\n\t};\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar _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\t\n\tvar _warning = __webpack_require__(10);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tvar _PathUtils = __webpack_require__(15);\n\t\n\tvar _LocationUtils = __webpack_require__(12);\n\t\n\tvar _createTransitionManager = __webpack_require__(16);\n\t\n\tvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar clamp = function clamp(n, lowerBound, upperBound) {\n\t return Math.min(Math.max(n, lowerBound), upperBound);\n\t};\n\t\n\t/**\n\t * Creates a history object that stores locations in memory.\n\t */\n\tvar createMemoryHistory = function createMemoryHistory() {\n\t var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t var getUserConfirmation = props.getUserConfirmation,\n\t _props$initialEntries = props.initialEntries,\n\t initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n\t _props$initialIndex = props.initialIndex,\n\t initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n\t _props$keyLength = props.keyLength,\n\t keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\t\n\t\n\t var transitionManager = (0, _createTransitionManager2.default)();\n\t\n\t var setState = function setState(nextState) {\n\t _extends(history, nextState);\n\t\n\t history.length = history.entries.length;\n\t\n\t transitionManager.notifyListeners(history.location, history.action);\n\t };\n\t\n\t var createKey = function createKey() {\n\t return Math.random().toString(36).substr(2, keyLength);\n\t };\n\t\n\t var index = clamp(initialIndex, 0, initialEntries.length - 1);\n\t var entries = initialEntries.map(function (entry) {\n\t return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n\t });\n\t\n\t // Public interface\n\t\n\t var createHref = _PathUtils.createPath;\n\t\n\t var push = function push(path, state) {\n\t (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\t\n\t var action = 'PUSH';\n\t var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (!ok) return;\n\t\n\t var prevIndex = history.index;\n\t var nextIndex = prevIndex + 1;\n\t\n\t var nextEntries = history.entries.slice(0);\n\t if (nextEntries.length > nextIndex) {\n\t nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n\t } else {\n\t nextEntries.push(location);\n\t }\n\t\n\t setState({\n\t action: action,\n\t location: location,\n\t index: nextIndex,\n\t entries: nextEntries\n\t });\n\t });\n\t };\n\t\n\t var replace = function replace(path, state) {\n\t (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\t\n\t var action = 'REPLACE';\n\t var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (!ok) return;\n\t\n\t history.entries[history.index] = location;\n\t\n\t setState({ action: action, location: location });\n\t });\n\t };\n\t\n\t var go = function go(n) {\n\t var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\t\n\t var action = 'POP';\n\t var location = history.entries[nextIndex];\n\t\n\t transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n\t if (ok) {\n\t setState({\n\t action: action,\n\t location: location,\n\t index: nextIndex\n\t });\n\t } else {\n\t // Mimic the behavior of DOM histories by\n\t // causing a render after a cancelled POP.\n\t setState();\n\t }\n\t });\n\t };\n\t\n\t var goBack = function goBack() {\n\t return go(-1);\n\t };\n\t\n\t var goForward = function goForward() {\n\t return go(1);\n\t };\n\t\n\t var canGo = function canGo(n) {\n\t var nextIndex = history.index + n;\n\t return nextIndex >= 0 && nextIndex < history.entries.length;\n\t };\n\t\n\t var block = function block() {\n\t var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\t return transitionManager.setPrompt(prompt);\n\t };\n\t\n\t var listen = function listen(listener) {\n\t return transitionManager.appendListener(listener);\n\t };\n\t\n\t var history = {\n\t length: entries.length,\n\t action: 'POP',\n\t location: entries[index],\n\t index: index,\n\t entries: entries,\n\t createHref: createHref,\n\t push: push,\n\t replace: replace,\n\t go: go,\n\t goBack: goBack,\n\t goForward: goForward,\n\t canGo: canGo,\n\t block: block,\n\t listen: listen\n\t };\n\t\n\t return history;\n\t};\n\t\n\texports.default = createMemoryHistory;\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createMemoryHistory = __webpack_require__(30);\n\t\n\tvar _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);\n\t\n\tvar _normalizeHref = __webpack_require__(3);\n\t\n\tvar _normalizeHref2 = _interopRequireDefault(_normalizeHref);\n\t\n\tvar _install = __webpack_require__(18);\n\t\n\tvar _install2 = _interopRequireDefault(_install);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = function (_ref) {\n\t var routes = _ref.routes,\n\t request = _ref.request;\n\t\n\t var history = (0, _createMemoryHistory2.default)();\n\t\n\t var location = (0, _normalizeHref2.default)({\n\t pathname: request.path,\n\t query: request.query\n\t });\n\t\n\t return (0, _install2.default)({ routes: routes, history: history, location: location });\n\t};\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.RouterProvider = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _react = __webpack_require__(33);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactRedux = __webpack_require__(34);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tvar RouterProviderImpl = function (_Component) {\n\t _inherits(RouterProviderImpl, _Component);\n\t\n\t function RouterProviderImpl(props) {\n\t _classCallCheck(this, RouterProviderImpl);\n\t\n\t var _this = _possibleConstructorReturn(this, (RouterProviderImpl.__proto__ || Object.getPrototypeOf(RouterProviderImpl)).call(this, props));\n\t\n\t _this.router = {\n\t store: props.store\n\t };\n\t return _this;\n\t }\n\t\n\t _createClass(RouterProviderImpl, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t return {\n\t router: this.router\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var store = this.router.store;\n\t\n\t var routerState = store.getState().router;\n\t\n\t // Ensure that the router props from connect()\n\t // actually get to the child component(s)\n\t return (0, _react.cloneElement)(this.props.children, {\n\t router: _extends({}, routerState, {\n\t\n\t // This is a hack to allow routes to define\n\t // unserializable things like components\n\t result: store.routes[routerState.route]\n\t })\n\t });\n\t }\n\t }]);\n\t\n\t return RouterProviderImpl;\n\t}(_react.Component);\n\t\n\tRouterProviderImpl.childContextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar RouterProvider = exports.RouterProvider = (0, _reactRedux.connect)(function (state) {\n\t return {\n\t router: state.router\n\t };\n\t})(RouterProviderImpl);\n\t\n\texports.default = function (_ref) {\n\t var store = _ref.store;\n\t return function (ComposedComponent) {\n\t return function (props) {\n\t return _react2.default.createElement(\n\t RouterProvider,\n\t { store: store },\n\t _react2.default.createElement(ComposedComponent, props)\n\t );\n\t };\n\t };\n\t};\n\n/***/ },\n/* 33 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_33__;\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.connect = exports.connectAdvanced = exports.Provider = undefined;\n\t\n\tvar _Provider = __webpack_require__(35);\n\t\n\tvar _Provider2 = _interopRequireDefault(_Provider);\n\t\n\tvar _connectAdvanced = __webpack_require__(38);\n\t\n\tvar _connectAdvanced2 = _interopRequireDefault(_connectAdvanced);\n\t\n\tvar _connect = __webpack_require__(41);\n\t\n\tvar _connect2 = _interopRequireDefault(_connect);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.Provider = _Provider2.default;\n\texports.connectAdvanced = _connectAdvanced2.default;\n\texports.connect = _connect2.default;\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.default = undefined;\n\t\n\tvar _react = __webpack_require__(33);\n\t\n\tvar _PropTypes = __webpack_require__(36);\n\t\n\tvar _warning = __webpack_require__(37);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tvar didWarnAboutReceivingStore = false;\n\tfunction warnAboutReceivingStore() {\n\t if (didWarnAboutReceivingStore) {\n\t return;\n\t }\n\t didWarnAboutReceivingStore = true;\n\t\n\t (0, _warning2.default)(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n\t}\n\t\n\tvar Provider = function (_Component) {\n\t _inherits(Provider, _Component);\n\t\n\t Provider.prototype.getChildContext = function getChildContext() {\n\t return { store: this.store, storeSubscription: null };\n\t };\n\t\n\t function Provider(props, context) {\n\t _classCallCheck(this, Provider);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.store = props.store;\n\t return _this;\n\t }\n\t\n\t Provider.prototype.render = function render() {\n\t return _react.Children.only(this.props.children);\n\t };\n\t\n\t return Provider;\n\t}(_react.Component);\n\t\n\texports.default = Provider;\n\t\n\t\n\tif (false) {\n\t Provider.prototype.componentWillReceiveProps = function (nextProps) {\n\t var store = this.store;\n\t var nextStore = nextProps.store;\n\t\n\t\n\t if (store !== nextStore) {\n\t warnAboutReceivingStore();\n\t }\n\t };\n\t}\n\t\n\tProvider.propTypes = {\n\t store: _PropTypes.storeShape.isRequired,\n\t children: _react.PropTypes.element.isRequired\n\t};\n\tProvider.childContextTypes = {\n\t store: _PropTypes.storeShape.isRequired,\n\t storeSubscription: _PropTypes.subscriptionShape\n\t};\n\tProvider.displayName = 'Provider';\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.storeShape = exports.subscriptionShape = undefined;\n\t\n\tvar _react = __webpack_require__(33);\n\t\n\tvar subscriptionShape = exports.subscriptionShape = _react.PropTypes.shape({\n\t trySubscribe: _react.PropTypes.func.isRequired,\n\t tryUnsubscribe: _react.PropTypes.func.isRequired,\n\t notifyNestedSubs: _react.PropTypes.func.isRequired,\n\t isSubscribed: _react.PropTypes.func.isRequired\n\t});\n\t\n\tvar storeShape = exports.storeShape = _react.PropTypes.shape({\n\t subscribe: _react.PropTypes.func.isRequired,\n\t dispatch: _react.PropTypes.func.isRequired,\n\t getState: _react.PropTypes.func.isRequired\n\t});\n\n/***/ },\n/* 37 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.default = warning;\n\t/**\n\t * Prints a warning in the console if it exists.\n\t *\n\t * @param {String} message The warning message.\n\t * @returns {void}\n\t */\n\tfunction warning(message) {\n\t /* eslint-disable no-console */\n\t if (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t console.error(message);\n\t }\n\t /* eslint-enable no-console */\n\t try {\n\t // This error was thrown as a convenience so that if you enable\n\t // \"break on all exceptions\" in your console,\n\t // it would pause the execution at this line.\n\t throw new Error(message);\n\t /* eslint-disable no-empty */\n\t } catch (e) {}\n\t /* eslint-enable no-empty */\n\t}\n\n/***/ },\n/* 38 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _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\t\n\texports.default = connectAdvanced;\n\t\n\tvar _hoistNonReactStatics = __webpack_require__(39);\n\t\n\tvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\t\n\tvar _invariant = __webpack_require__(11);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _react = __webpack_require__(33);\n\t\n\tvar _Subscription = __webpack_require__(40);\n\t\n\tvar _Subscription2 = _interopRequireDefault(_Subscription);\n\t\n\tvar _PropTypes = __webpack_require__(36);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar hotReloadingVersion = 0;\n\tvar dummyState = {};\n\tfunction noop() {}\n\tfunction makeSelectorStateful(sourceSelector, store) {\n\t // wrap the selector in an object that tracks its results between runs.\n\t var selector = {\n\t run: function runComponentSelector(props) {\n\t try {\n\t var nextProps = sourceSelector(store.getState(), props);\n\t if (nextProps !== selector.props || selector.error) {\n\t selector.shouldComponentUpdate = true;\n\t selector.props = nextProps;\n\t selector.error = null;\n\t }\n\t } catch (error) {\n\t selector.shouldComponentUpdate = true;\n\t selector.error = error;\n\t }\n\t }\n\t };\n\t\n\t return selector;\n\t}\n\t\n\tfunction connectAdvanced(\n\t/*\n\t selectorFactory is a func that is responsible for returning the selector function used to\n\t compute new props from state, props, and dispatch. For example:\n\t export default connectAdvanced((dispatch, options) => (state, props) => ({\n\t thing: state.things[props.thingId],\n\t saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n\t }))(YourComponent)\n\t Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n\t outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n\t the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n\t Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n\t props. Do not use connectAdvanced directly without memoizing results between calls to your\n\t selector, otherwise the Connect component will re-render on every state or props change.\n\t*/\n\tselectorFactory) {\n\t var _contextTypes, _childContextTypes;\n\t\n\t var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$getDisplayName = _ref.getDisplayName,\n\t getDisplayName = _ref$getDisplayName === undefined ? function (name) {\n\t return 'ConnectAdvanced(' + name + ')';\n\t } : _ref$getDisplayName,\n\t _ref$methodName = _ref.methodName,\n\t methodName = _ref$methodName === undefined ? 'connectAdvanced' : _ref$methodName,\n\t _ref$renderCountProp = _ref.renderCountProp,\n\t renderCountProp = _ref$renderCountProp === undefined ? undefined : _ref$renderCountProp,\n\t _ref$shouldHandleStat = _ref.shouldHandleStateChanges,\n\t shouldHandleStateChanges = _ref$shouldHandleStat === undefined ? true : _ref$shouldHandleStat,\n\t _ref$storeKey = _ref.storeKey,\n\t storeKey = _ref$storeKey === undefined ? 'store' : _ref$storeKey,\n\t _ref$withRef = _ref.withRef,\n\t withRef = _ref$withRef === undefined ? false : _ref$withRef,\n\t connectOptions = _objectWithoutProperties(_ref, ['getDisplayName', 'methodName', 'renderCountProp', 'shouldHandleStateChanges', 'storeKey', 'withRef']);\n\t\n\t var subscriptionKey = storeKey + 'Subscription';\n\t var version = hotReloadingVersion++;\n\t\n\t var contextTypes = (_contextTypes = {}, _contextTypes[storeKey] = _PropTypes.storeShape, _contextTypes[subscriptionKey] = _PropTypes.subscriptionShape, _contextTypes);\n\t var childContextTypes = (_childContextTypes = {}, _childContextTypes[subscriptionKey] = _PropTypes.subscriptionShape, _childContextTypes);\n\t\n\t return function wrapWithConnect(WrappedComponent) {\n\t (0, _invariant2.default)(typeof WrappedComponent == 'function', 'You must pass a component to the function returned by ' + ('connect. Instead received ' + JSON.stringify(WrappedComponent)));\n\t\n\t var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\t\n\t var displayName = getDisplayName(wrappedComponentName);\n\t\n\t var selectorFactoryOptions = _extends({}, connectOptions, {\n\t getDisplayName: getDisplayName,\n\t methodName: methodName,\n\t renderCountProp: renderCountProp,\n\t shouldHandleStateChanges: shouldHandleStateChanges,\n\t storeKey: storeKey,\n\t withRef: withRef,\n\t displayName: displayName,\n\t wrappedComponentName: wrappedComponentName,\n\t WrappedComponent: WrappedComponent\n\t });\n\t\n\t var Connect = function (_Component) {\n\t _inherits(Connect, _Component);\n\t\n\t function Connect(props, context) {\n\t _classCallCheck(this, Connect);\n\t\n\t var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\t\n\t _this.version = version;\n\t _this.state = {};\n\t _this.renderCount = 0;\n\t _this.store = props[storeKey] || context[storeKey];\n\t _this.propsMode = Boolean(props[storeKey]);\n\t _this.setWrappedInstance = _this.setWrappedInstance.bind(_this);\n\t\n\t (0, _invariant2.default)(_this.store, 'Could not find \"' + storeKey + '\" in either the context or props of ' + ('\"' + displayName + '\". Either wrap the root component in a , ') + ('or explicitly pass \"' + storeKey + '\" as a prop to \"' + displayName + '\".'));\n\t\n\t _this.initSelector();\n\t _this.initSubscription();\n\t return _this;\n\t }\n\t\n\t Connect.prototype.getChildContext = function getChildContext() {\n\t var _ref2;\n\t\n\t // If this component received store from props, its subscription should be transparent\n\t // to any descendants receiving store+subscription from context; it passes along\n\t // subscription passed to it. Otherwise, it shadows the parent subscription, which allows\n\t // Connect to control ordering of notifications to flow top-down.\n\t var subscription = this.propsMode ? null : this.subscription;\n\t return _ref2 = {}, _ref2[subscriptionKey] = subscription || this.context[subscriptionKey], _ref2;\n\t };\n\t\n\t Connect.prototype.componentDidMount = function componentDidMount() {\n\t if (!shouldHandleStateChanges) return;\n\t\n\t // componentWillMount fires during server side rendering, but componentDidMount and\n\t // componentWillUnmount do not. Because of this, trySubscribe happens during ...didMount.\n\t // Otherwise, unsubscription would never take place during SSR, causing a memory leak.\n\t // To handle the case where a child component may have triggered a state change by\n\t // dispatching an action in its componentWillMount, we have to re-run the select and maybe\n\t // re-render.\n\t this.subscription.trySubscribe();\n\t this.selector.run(this.props);\n\t if (this.selector.shouldComponentUpdate) this.forceUpdate();\n\t };\n\t\n\t Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n\t this.selector.run(nextProps);\n\t };\n\t\n\t Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n\t return this.selector.shouldComponentUpdate;\n\t };\n\t\n\t Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n\t if (this.subscription) this.subscription.tryUnsubscribe();\n\t this.subscription = null;\n\t this.notifyNestedSubs = noop;\n\t this.store = null;\n\t this.selector.run = noop;\n\t this.selector.shouldComponentUpdate = false;\n\t };\n\t\n\t Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n\t (0, _invariant2.default)(withRef, 'To access the wrapped instance, you need to specify ' + ('{ withRef: true } in the options argument of the ' + methodName + '() call.'));\n\t return this.wrappedInstance;\n\t };\n\t\n\t Connect.prototype.setWrappedInstance = function setWrappedInstance(ref) {\n\t this.wrappedInstance = ref;\n\t };\n\t\n\t Connect.prototype.initSelector = function initSelector() {\n\t var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions);\n\t this.selector = makeSelectorStateful(sourceSelector, this.store);\n\t this.selector.run(this.props);\n\t };\n\t\n\t Connect.prototype.initSubscription = function initSubscription() {\n\t if (!shouldHandleStateChanges) return;\n\t\n\t // parentSub's source should match where store came from: props vs. context. A component\n\t // connected to the store via props shouldn't use subscription from context, or vice versa.\n\t var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey];\n\t this.subscription = new _Subscription2.default(this.store, parentSub, this.onStateChange.bind(this));\n\t\n\t // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n\t // the middle of the notification loop, where `this.subscription` will then be null. An\n\t // extra null check every change can be avoided by copying the method onto `this` and then\n\t // replacing it with a no-op on unmount. This can probably be avoided if Subscription's\n\t // listeners logic is changed to not call listeners that have been unsubscribed in the\n\t // middle of the notification loop.\n\t this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription);\n\t };\n\t\n\t Connect.prototype.onStateChange = function onStateChange() {\n\t this.selector.run(this.props);\n\t\n\t if (!this.selector.shouldComponentUpdate) {\n\t this.notifyNestedSubs();\n\t } else {\n\t this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate;\n\t this.setState(dummyState);\n\t }\n\t };\n\t\n\t Connect.prototype.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() {\n\t // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it\n\t // needs to notify nested subs. Once called, it unimplements itself until further state\n\t // changes occur. Doing it this way vs having a permanent `componentDidMount` that does\n\t // a boolean check every time avoids an extra method call most of the time, resulting\n\t // in some perf boost.\n\t this.componentDidUpdate = undefined;\n\t this.notifyNestedSubs();\n\t };\n\t\n\t Connect.prototype.isSubscribed = function isSubscribed() {\n\t return Boolean(this.subscription) && this.subscription.isSubscribed();\n\t };\n\t\n\t Connect.prototype.addExtraProps = function addExtraProps(props) {\n\t if (!withRef && !renderCountProp && !(this.propsMode && this.subscription)) return props;\n\t // make a shallow copy so that fields added don't leak to the original selector.\n\t // this is especially important for 'ref' since that's a reference back to the component\n\t // instance. a singleton memoized selector would then be holding a reference to the\n\t // instance, preventing the instance from being garbage collected, and that would be bad\n\t var withExtras = _extends({}, props);\n\t if (withRef) withExtras.ref = this.setWrappedInstance;\n\t if (renderCountProp) withExtras[renderCountProp] = this.renderCount++;\n\t if (this.propsMode && this.subscription) withExtras[subscriptionKey] = this.subscription;\n\t return withExtras;\n\t };\n\t\n\t Connect.prototype.render = function render() {\n\t var selector = this.selector;\n\t selector.shouldComponentUpdate = false;\n\t\n\t if (selector.error) {\n\t throw selector.error;\n\t } else {\n\t return (0, _react.createElement)(WrappedComponent, this.addExtraProps(selector.props));\n\t }\n\t };\n\t\n\t return Connect;\n\t }(_react.Component);\n\t\n\t Connect.WrappedComponent = WrappedComponent;\n\t Connect.displayName = displayName;\n\t Connect.childContextTypes = childContextTypes;\n\t Connect.contextTypes = contextTypes;\n\t Connect.propTypes = contextTypes;\n\t\n\t if (false) {\n\t Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n\t // We are hot reloading!\n\t if (this.version !== version) {\n\t this.version = version;\n\t this.initSelector();\n\t\n\t if (this.subscription) this.subscription.tryUnsubscribe();\n\t this.initSubscription();\n\t if (shouldHandleStateChanges) this.subscription.trySubscribe();\n\t }\n\t };\n\t }\n\t\n\t return (0, _hoistNonReactStatics2.default)(Connect, WrappedComponent);\n\t };\n\t}\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Copyright 2015, Yahoo! Inc.\n\t * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n\t */\n\t'use strict';\n\t\n\tvar REACT_STATICS = {\n\t childContextTypes: true,\n\t contextTypes: true,\n\t defaultProps: true,\n\t displayName: true,\n\t getDefaultProps: true,\n\t mixins: true,\n\t propTypes: true,\n\t type: true\n\t};\n\t\n\tvar KNOWN_STATICS = {\n\t name: true,\n\t length: true,\n\t prototype: true,\n\t caller: true,\n\t arguments: true,\n\t arity: true\n\t};\n\t\n\tvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\t\n\tmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n\t if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n\t var keys = Object.getOwnPropertyNames(sourceComponent);\n\t\n\t /* istanbul ignore else */\n\t if (isGetOwnPropertySymbolsAvailable) {\n\t keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n\t }\n\t\n\t for (var i = 0; i < keys.length; ++i) {\n\t if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n\t try {\n\t targetComponent[keys[i]] = sourceComponent[keys[i]];\n\t } catch (error) {\n\t\n\t }\n\t }\n\t }\n\t }\n\t\n\t return targetComponent;\n\t};\n\n\n/***/ },\n/* 40 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t// encapsulates the subscription logic for connecting a component to the redux store, as\n\t// well as nesting subscriptions of descendant components, so that we can ensure the\n\t// ancestor components re-render before descendants\n\t\n\tvar CLEARED = null;\n\tvar nullListeners = {\n\t notify: function notify() {}\n\t};\n\t\n\tfunction createListenerCollection() {\n\t // the current/next pattern is copied from redux's createStore code.\n\t // TODO: refactor+expose that code to be reusable here?\n\t var current = [];\n\t var next = [];\n\t\n\t return {\n\t clear: function clear() {\n\t next = CLEARED;\n\t current = CLEARED;\n\t },\n\t notify: function notify() {\n\t var listeners = current = next;\n\t for (var i = 0; i < listeners.length; i++) {\n\t listeners[i]();\n\t }\n\t },\n\t subscribe: function subscribe(listener) {\n\t var isSubscribed = true;\n\t if (next === current) next = current.slice();\n\t next.push(listener);\n\t\n\t return function unsubscribe() {\n\t if (!isSubscribed || current === CLEARED) return;\n\t isSubscribed = false;\n\t\n\t if (next === current) next = current.slice();\n\t next.splice(next.indexOf(listener), 1);\n\t };\n\t }\n\t };\n\t}\n\t\n\tvar Subscription = function () {\n\t function Subscription(store, parentSub, onStateChange) {\n\t _classCallCheck(this, Subscription);\n\t\n\t this.store = store;\n\t this.parentSub = parentSub;\n\t this.onStateChange = onStateChange;\n\t this.unsubscribe = null;\n\t this.listeners = nullListeners;\n\t }\n\t\n\t Subscription.prototype.addNestedSub = function addNestedSub(listener) {\n\t this.trySubscribe();\n\t return this.listeners.subscribe(listener);\n\t };\n\t\n\t Subscription.prototype.notifyNestedSubs = function notifyNestedSubs() {\n\t this.listeners.notify();\n\t };\n\t\n\t Subscription.prototype.isSubscribed = function isSubscribed() {\n\t return Boolean(this.unsubscribe);\n\t };\n\t\n\t Subscription.prototype.trySubscribe = function trySubscribe() {\n\t if (!this.unsubscribe) {\n\t this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange);\n\t\n\t this.listeners = createListenerCollection();\n\t }\n\t };\n\t\n\t Subscription.prototype.tryUnsubscribe = function tryUnsubscribe() {\n\t if (this.unsubscribe) {\n\t this.unsubscribe();\n\t this.unsubscribe = null;\n\t this.listeners.clear();\n\t this.listeners = nullListeners;\n\t }\n\t };\n\t\n\t return Subscription;\n\t}();\n\t\n\texports.default = Subscription;\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _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\t\n\texports.createConnect = createConnect;\n\t\n\tvar _connectAdvanced = __webpack_require__(38);\n\t\n\tvar _connectAdvanced2 = _interopRequireDefault(_connectAdvanced);\n\t\n\tvar _shallowEqual = __webpack_require__(42);\n\t\n\tvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\t\n\tvar _mapDispatchToProps = __webpack_require__(43);\n\t\n\tvar _mapDispatchToProps2 = _interopRequireDefault(_mapDispatchToProps);\n\t\n\tvar _mapStateToProps = __webpack_require__(67);\n\t\n\tvar _mapStateToProps2 = _interopRequireDefault(_mapStateToProps);\n\t\n\tvar _mergeProps = __webpack_require__(68);\n\t\n\tvar _mergeProps2 = _interopRequireDefault(_mergeProps);\n\t\n\tvar _selectorFactory = __webpack_require__(69);\n\t\n\tvar _selectorFactory2 = _interopRequireDefault(_selectorFactory);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\t/*\n\t connect is a facade over connectAdvanced. It turns its args into a compatible\n\t selectorFactory, which has the signature:\n\t\n\t (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n\t \n\t connect passes its args to connectAdvanced as options, which will in turn pass them to\n\t selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\t\n\t selectorFactory returns a final props selector from its mapStateToProps,\n\t mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n\t mergePropsFactories, and pure args.\n\t\n\t The resulting final props selector is called by the Connect component instance whenever\n\t it receives new props or store state.\n\t */\n\t\n\tfunction match(arg, factories, name) {\n\t for (var i = factories.length - 1; i >= 0; i--) {\n\t var result = factories[i](arg);\n\t if (result) return result;\n\t }\n\t\n\t return function (dispatch, options) {\n\t throw new Error('Invalid value of type ' + typeof arg + ' for ' + name + ' argument when connecting component ' + options.wrappedComponentName + '.');\n\t };\n\t}\n\t\n\tfunction strictEqual(a, b) {\n\t return a === b;\n\t}\n\t\n\t// createConnect with default args builds the 'official' connect behavior. Calling it with\n\t// different options opens up some testing and extensibility scenarios\n\tfunction createConnect() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t _ref$connectHOC = _ref.connectHOC,\n\t connectHOC = _ref$connectHOC === undefined ? _connectAdvanced2.default : _ref$connectHOC,\n\t _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n\t mapStateToPropsFactories = _ref$mapStateToPropsF === undefined ? _mapStateToProps2.default : _ref$mapStateToPropsF,\n\t _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n\t mapDispatchToPropsFactories = _ref$mapDispatchToPro === undefined ? _mapDispatchToProps2.default : _ref$mapDispatchToPro,\n\t _ref$mergePropsFactor = _ref.mergePropsFactories,\n\t mergePropsFactories = _ref$mergePropsFactor === undefined ? _mergeProps2.default : _ref$mergePropsFactor,\n\t _ref$selectorFactory = _ref.selectorFactory,\n\t selectorFactory = _ref$selectorFactory === undefined ? _selectorFactory2.default : _ref$selectorFactory;\n\t\n\t return function connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n\t var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n\t _ref2$pure = _ref2.pure,\n\t pure = _ref2$pure === undefined ? true : _ref2$pure,\n\t _ref2$areStatesEqual = _ref2.areStatesEqual,\n\t areStatesEqual = _ref2$areStatesEqual === undefined ? strictEqual : _ref2$areStatesEqual,\n\t _ref2$areOwnPropsEqua = _ref2.areOwnPropsEqual,\n\t areOwnPropsEqual = _ref2$areOwnPropsEqua === undefined ? _shallowEqual2.default : _ref2$areOwnPropsEqua,\n\t _ref2$areStatePropsEq = _ref2.areStatePropsEqual,\n\t areStatePropsEqual = _ref2$areStatePropsEq === undefined ? _shallowEqual2.default : _ref2$areStatePropsEq,\n\t _ref2$areMergedPropsE = _ref2.areMergedPropsEqual,\n\t areMergedPropsEqual = _ref2$areMergedPropsE === undefined ? _shallowEqual2.default : _ref2$areMergedPropsE,\n\t extraOptions = _objectWithoutProperties(_ref2, ['pure', 'areStatesEqual', 'areOwnPropsEqual', 'areStatePropsEqual', 'areMergedPropsEqual']);\n\t\n\t var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n\t var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n\t var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n\t\n\t return connectHOC(selectorFactory, _extends({\n\t // used in error messages\n\t methodName: 'connect',\n\t\n\t // used to compute Connect's displayName from the wrapped component's displayName.\n\t getDisplayName: function getDisplayName(name) {\n\t return 'Connect(' + name + ')';\n\t },\n\t\n\t // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n\t shouldHandleStateChanges: Boolean(mapStateToProps),\n\t\n\t // passed through to selectorFactory\n\t initMapStateToProps: initMapStateToProps,\n\t initMapDispatchToProps: initMapDispatchToProps,\n\t initMergeProps: initMergeProps,\n\t pure: pure,\n\t areStatesEqual: areStatesEqual,\n\t areOwnPropsEqual: areOwnPropsEqual,\n\t areStatePropsEqual: areStatePropsEqual,\n\t areMergedPropsEqual: areMergedPropsEqual\n\t\n\t }, extraOptions));\n\t };\n\t}\n\t\n\texports.default = createConnect();\n\n/***/ },\n/* 42 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.default = shallowEqual;\n\tvar hasOwn = Object.prototype.hasOwnProperty;\n\t\n\tfunction is(x, y) {\n\t if (x === y) {\n\t return x !== 0 || y !== 0 || 1 / x === 1 / y;\n\t } else {\n\t return x !== x && y !== y;\n\t }\n\t}\n\t\n\tfunction shallowEqual(objA, objB) {\n\t if (is(objA, objB)) return true;\n\t\n\t if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n\t return false;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) return false;\n\t\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.whenMapDispatchToPropsIsFunction = whenMapDispatchToPropsIsFunction;\n\texports.whenMapDispatchToPropsIsMissing = whenMapDispatchToPropsIsMissing;\n\texports.whenMapDispatchToPropsIsObject = whenMapDispatchToPropsIsObject;\n\t\n\tvar _redux = __webpack_require__(44);\n\t\n\tvar _wrapMapToProps = __webpack_require__(65);\n\t\n\tfunction whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n\t return typeof mapDispatchToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n\t}\n\t\n\tfunction whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n\t return !mapDispatchToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) {\n\t return { dispatch: dispatch };\n\t }) : undefined;\n\t}\n\t\n\tfunction whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n\t return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) {\n\t return (0, _redux.bindActionCreators)(mapDispatchToProps, dispatch);\n\t }) : undefined;\n\t}\n\t\n\texports.default = [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\t\n\tvar _createStore = __webpack_require__(45);\n\t\n\tvar _createStore2 = _interopRequireDefault(_createStore);\n\t\n\tvar _combineReducers = __webpack_require__(60);\n\t\n\tvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\t\n\tvar _bindActionCreators = __webpack_require__(62);\n\t\n\tvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\t\n\tvar _applyMiddleware = __webpack_require__(63);\n\t\n\tvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\t\n\tvar _compose = __webpack_require__(64);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tvar _warning = __webpack_require__(61);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/*\n\t* This is a dummy function to check if the function name has been altered by minification.\n\t* If the function has been minified and NODE_ENV !== 'production', warn the user.\n\t*/\n\tfunction isCrushed() {}\n\t\n\tif (false) {\n\t (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n\t}\n\t\n\texports.createStore = _createStore2['default'];\n\texports.combineReducers = _combineReducers2['default'];\n\texports.bindActionCreators = _bindActionCreators2['default'];\n\texports.applyMiddleware = _applyMiddleware2['default'];\n\texports.compose = _compose2['default'];\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.ActionTypes = undefined;\n\texports['default'] = createStore;\n\t\n\tvar _isPlainObject = __webpack_require__(46);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _symbolObservable = __webpack_require__(56);\n\t\n\tvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * These are private action types reserved by Redux.\n\t * For any unknown actions, you must return the current state.\n\t * If the current state is undefined, you must return the initial state.\n\t * Do not reference these action types directly in your code.\n\t */\n\tvar ActionTypes = exports.ActionTypes = {\n\t INIT: '@@redux/INIT'\n\t};\n\t\n\t/**\n\t * Creates a Redux store that holds the state tree.\n\t * The only way to change the data in the store is to call `dispatch()` on it.\n\t *\n\t * There should only be a single store in your app. To specify how different\n\t * parts of the state tree respond to actions, you may combine several reducers\n\t * into a single reducer function by using `combineReducers`.\n\t *\n\t * @param {Function} reducer A function that returns the next state tree, given\n\t * the current state tree and the action to handle.\n\t *\n\t * @param {any} [preloadedState] The initial state. You may optionally specify it\n\t * to hydrate the state from the server in universal apps, or to restore a\n\t * previously serialized user session.\n\t * If you use `combineReducers` to produce the root reducer function, this must be\n\t * an object with the same shape as `combineReducers` keys.\n\t *\n\t * @param {Function} enhancer The store enhancer. You may optionally specify it\n\t * to enhance the store with third-party capabilities such as middleware,\n\t * time travel, persistence, etc. The only store enhancer that ships with Redux\n\t * is `applyMiddleware()`.\n\t *\n\t * @returns {Store} A Redux store that lets you read the state, dispatch actions\n\t * and subscribe to changes.\n\t */\n\tfunction createStore(reducer, preloadedState, enhancer) {\n\t var _ref2;\n\t\n\t if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n\t enhancer = preloadedState;\n\t preloadedState = undefined;\n\t }\n\t\n\t if (typeof enhancer !== 'undefined') {\n\t if (typeof enhancer !== 'function') {\n\t throw new Error('Expected the enhancer to be a function.');\n\t }\n\t\n\t return enhancer(createStore)(reducer, preloadedState);\n\t }\n\t\n\t if (typeof reducer !== 'function') {\n\t throw new Error('Expected the reducer to be a function.');\n\t }\n\t\n\t var currentReducer = reducer;\n\t var currentState = preloadedState;\n\t var currentListeners = [];\n\t var nextListeners = currentListeners;\n\t var isDispatching = false;\n\t\n\t function ensureCanMutateNextListeners() {\n\t if (nextListeners === currentListeners) {\n\t nextListeners = currentListeners.slice();\n\t }\n\t }\n\t\n\t /**\n\t * Reads the state tree managed by the store.\n\t *\n\t * @returns {any} The current state tree of your application.\n\t */\n\t function getState() {\n\t return currentState;\n\t }\n\t\n\t /**\n\t * Adds a change listener. It will be called any time an action is dispatched,\n\t * and some part of the state tree may potentially have changed. You may then\n\t * call `getState()` to read the current state tree inside the callback.\n\t *\n\t * You may call `dispatch()` from a change listener, with the following\n\t * caveats:\n\t *\n\t * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n\t * If you subscribe or unsubscribe while the listeners are being invoked, this\n\t * will not have any effect on the `dispatch()` that is currently in progress.\n\t * However, the next `dispatch()` call, whether nested or not, will use a more\n\t * recent snapshot of the subscription list.\n\t *\n\t * 2. The listener should not expect to see all state changes, as the state\n\t * might have been updated multiple times during a nested `dispatch()` before\n\t * the listener is called. It is, however, guaranteed that all subscribers\n\t * registered before the `dispatch()` started will be called with the latest\n\t * state by the time it exits.\n\t *\n\t * @param {Function} listener A callback to be invoked on every dispatch.\n\t * @returns {Function} A function to remove this change listener.\n\t */\n\t function subscribe(listener) {\n\t if (typeof listener !== 'function') {\n\t throw new Error('Expected listener to be a function.');\n\t }\n\t\n\t var isSubscribed = true;\n\t\n\t ensureCanMutateNextListeners();\n\t nextListeners.push(listener);\n\t\n\t return function unsubscribe() {\n\t if (!isSubscribed) {\n\t return;\n\t }\n\t\n\t isSubscribed = false;\n\t\n\t ensureCanMutateNextListeners();\n\t var index = nextListeners.indexOf(listener);\n\t nextListeners.splice(index, 1);\n\t };\n\t }\n\t\n\t /**\n\t * Dispatches an action. It is the only way to trigger a state change.\n\t *\n\t * The `reducer` function, used to create the store, will be called with the\n\t * current state tree and the given `action`. Its return value will\n\t * be considered the **next** state of the tree, and the change listeners\n\t * will be notified.\n\t *\n\t * The base implementation only supports plain object actions. If you want to\n\t * dispatch a Promise, an Observable, a thunk, or something else, you need to\n\t * wrap your store creating function into the corresponding middleware. For\n\t * example, see the documentation for the `redux-thunk` package. Even the\n\t * middleware will eventually dispatch plain object actions using this method.\n\t *\n\t * @param {Object} action A plain object representing “what changed”. It is\n\t * a good idea to keep actions serializable so you can record and replay user\n\t * sessions, or use the time travelling `redux-devtools`. An action must have\n\t * a `type` property which may not be `undefined`. It is a good idea to use\n\t * string constants for action types.\n\t *\n\t * @returns {Object} For convenience, the same action object you dispatched.\n\t *\n\t * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n\t * return something else (for example, a Promise you can await).\n\t */\n\t function dispatch(action) {\n\t if (!(0, _isPlainObject2['default'])(action)) {\n\t throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n\t }\n\t\n\t if (typeof action.type === 'undefined') {\n\t throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n\t }\n\t\n\t if (isDispatching) {\n\t throw new Error('Reducers may not dispatch actions.');\n\t }\n\t\n\t try {\n\t isDispatching = true;\n\t currentState = currentReducer(currentState, action);\n\t } finally {\n\t isDispatching = false;\n\t }\n\t\n\t var listeners = currentListeners = nextListeners;\n\t for (var i = 0; i < listeners.length; i++) {\n\t listeners[i]();\n\t }\n\t\n\t return action;\n\t }\n\t\n\t /**\n\t * Replaces the reducer currently used by the store to calculate the state.\n\t *\n\t * You might need this if your app implements code splitting and you want to\n\t * load some of the reducers dynamically. You might also need this if you\n\t * implement a hot reloading mechanism for Redux.\n\t *\n\t * @param {Function} nextReducer The reducer for the store to use instead.\n\t * @returns {void}\n\t */\n\t function replaceReducer(nextReducer) {\n\t if (typeof nextReducer !== 'function') {\n\t throw new Error('Expected the nextReducer to be a function.');\n\t }\n\t\n\t currentReducer = nextReducer;\n\t dispatch({ type: ActionTypes.INIT });\n\t }\n\t\n\t /**\n\t * Interoperability point for observable/reactive libraries.\n\t * @returns {observable} A minimal observable of state changes.\n\t * For more information, see the observable proposal:\n\t * https://github.com/zenparsing/es-observable\n\t */\n\t function observable() {\n\t var _ref;\n\t\n\t var outerSubscribe = subscribe;\n\t return _ref = {\n\t /**\n\t * The minimal observable subscription method.\n\t * @param {Object} observer Any object that can be used as an observer.\n\t * The observer object should have a `next` method.\n\t * @returns {subscription} An object with an `unsubscribe` method that can\n\t * be used to unsubscribe the observable from the store, and prevent further\n\t * emission of values from the observable.\n\t */\n\t subscribe: function subscribe(observer) {\n\t if (typeof observer !== 'object') {\n\t throw new TypeError('Expected the observer to be an object.');\n\t }\n\t\n\t function observeState() {\n\t if (observer.next) {\n\t observer.next(getState());\n\t }\n\t }\n\t\n\t observeState();\n\t var unsubscribe = outerSubscribe(observeState);\n\t return { unsubscribe: unsubscribe };\n\t }\n\t }, _ref[_symbolObservable2['default']] = function () {\n\t return this;\n\t }, _ref;\n\t }\n\t\n\t // When a store is created, an \"INIT\" action is dispatched so that every\n\t // reducer returns their initial state. This effectively populates\n\t // the initial state tree.\n\t dispatch({ type: ActionTypes.INIT });\n\t\n\t return _ref2 = {\n\t dispatch: dispatch,\n\t subscribe: subscribe,\n\t getState: getState,\n\t replaceReducer: replaceReducer\n\t }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n\t}\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar baseGetTag = __webpack_require__(47),\n\t getPrototype = __webpack_require__(53),\n\t isObjectLike = __webpack_require__(55);\n\t\n\t/** `Object#toString` result references. */\n\tvar objectTag = '[object Object]';\n\t\n\t/** Used for built-in method references. */\n\tvar funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\t\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Used to infer the `Object` constructor. */\n\tvar objectCtorString = funcToString.call(Object);\n\t\n\t/**\n\t * Checks if `value` is a plain object, that is, an object created by the\n\t * `Object` constructor or one with a `[[Prototype]]` of `null`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.8.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * _.isPlainObject(new Foo);\n\t * // => false\n\t *\n\t * _.isPlainObject([1, 2, 3]);\n\t * // => false\n\t *\n\t * _.isPlainObject({ 'x': 0, 'y': 0 });\n\t * // => true\n\t *\n\t * _.isPlainObject(Object.create(null));\n\t * // => true\n\t */\n\tfunction isPlainObject(value) {\n\t if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n\t return false;\n\t }\n\t var proto = getPrototype(value);\n\t if (proto === null) {\n\t return true;\n\t }\n\t var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n\t return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n\t funcToString.call(Ctor) == objectCtorString;\n\t}\n\t\n\tmodule.exports = isPlainObject;\n\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(48),\n\t getRawTag = __webpack_require__(51),\n\t objectToString = __webpack_require__(52);\n\t\n\t/** `Object#toString` result references. */\n\tvar nullTag = '[object Null]',\n\t undefinedTag = '[object Undefined]';\n\t\n\t/** Built-in value references. */\n\tvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\t\n\t/**\n\t * The base implementation of `getTag` without fallbacks for buggy environments.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t if (value == null) {\n\t return value === undefined ? undefinedTag : nullTag;\n\t }\n\t return (symToStringTag && symToStringTag in Object(value))\n\t ? getRawTag(value)\n\t : objectToString(value);\n\t}\n\t\n\tmodule.exports = baseGetTag;\n\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar root = __webpack_require__(49);\n\t\n\t/** Built-in value references. */\n\tvar Symbol = root.Symbol;\n\t\n\tmodule.exports = Symbol;\n\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar freeGlobal = __webpack_require__(50);\n\t\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\t\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\t\n\tmodule.exports = root;\n\n\n/***/ },\n/* 50 */\n/***/ function(module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\t\n\tmodule.exports = freeGlobal;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(48);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString = objectProto.toString;\n\t\n\t/** Built-in value references. */\n\tvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\t\n\t/**\n\t * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the raw `toStringTag`.\n\t */\n\tfunction getRawTag(value) {\n\t var isOwn = hasOwnProperty.call(value, symToStringTag),\n\t tag = value[symToStringTag];\n\t\n\t try {\n\t value[symToStringTag] = undefined;\n\t var unmasked = true;\n\t } catch (e) {}\n\t\n\t var result = nativeObjectToString.call(value);\n\t if (unmasked) {\n\t if (isOwn) {\n\t value[symToStringTag] = tag;\n\t } else {\n\t delete value[symToStringTag];\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = getRawTag;\n\n\n/***/ },\n/* 52 */\n/***/ function(module, exports) {\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString = objectProto.toString;\n\t\n\t/**\n\t * Converts `value` to a string using `Object.prototype.toString`.\n\t *\n\t * @private\n\t * @param {*} value The value to convert.\n\t * @returns {string} Returns the converted string.\n\t */\n\tfunction objectToString(value) {\n\t return nativeObjectToString.call(value);\n\t}\n\t\n\tmodule.exports = objectToString;\n\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar overArg = __webpack_require__(54);\n\t\n\t/** Built-in value references. */\n\tvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\t\n\tmodule.exports = getPrototype;\n\n\n/***/ },\n/* 54 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\tmodule.exports = overArg;\n\n\n/***/ },\n/* 55 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return value != null && typeof value == 'object';\n\t}\n\t\n\tmodule.exports = isObjectLike;\n\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(57);\n\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global, module) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _ponyfill = __webpack_require__(59);\n\t\n\tvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar root; /* global window */\n\t\n\t\n\tif (typeof self !== 'undefined') {\n\t root = self;\n\t} else if (typeof window !== 'undefined') {\n\t root = window;\n\t} else if (typeof global !== 'undefined') {\n\t root = global;\n\t} else if (true) {\n\t root = module;\n\t} else {\n\t root = Function('return this')();\n\t}\n\t\n\tvar result = (0, _ponyfill2['default'])(root);\n\texports['default'] = result;\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(58)(module)))\n\n/***/ },\n/* 58 */\n/***/ function(module, exports) {\n\n\tmodule.exports = function(module) {\r\n\t\tif(!module.webpackPolyfill) {\r\n\t\t\tmodule.deprecate = function() {};\r\n\t\t\tmodule.paths = [];\r\n\t\t\t// module.parent = undefined by default\r\n\t\t\tmodule.children = [];\r\n\t\t\tmodule.webpackPolyfill = 1;\r\n\t\t}\r\n\t\treturn module;\r\n\t}\r\n\n\n/***/ },\n/* 59 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\texports['default'] = symbolObservablePonyfill;\n\tfunction symbolObservablePonyfill(root) {\n\t\tvar result;\n\t\tvar _Symbol = root.Symbol;\n\t\n\t\tif (typeof _Symbol === 'function') {\n\t\t\tif (_Symbol.observable) {\n\t\t\t\tresult = _Symbol.observable;\n\t\t\t} else {\n\t\t\t\tresult = _Symbol('observable');\n\t\t\t\t_Symbol.observable = result;\n\t\t\t}\n\t\t} else {\n\t\t\tresult = '@@observable';\n\t\t}\n\t\n\t\treturn result;\n\t};\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = combineReducers;\n\t\n\tvar _createStore = __webpack_require__(45);\n\t\n\tvar _isPlainObject = __webpack_require__(46);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _warning = __webpack_require__(61);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction getUndefinedStateErrorMessage(key, action) {\n\t var actionType = action && action.type;\n\t var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\t\n\t return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n\t}\n\t\n\tfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n\t var reducerKeys = Object.keys(reducers);\n\t var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\t\n\t if (reducerKeys.length === 0) {\n\t return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n\t }\n\t\n\t if (!(0, _isPlainObject2['default'])(inputState)) {\n\t return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n\t }\n\t\n\t var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n\t return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n\t });\n\t\n\t unexpectedKeys.forEach(function (key) {\n\t unexpectedKeyCache[key] = true;\n\t });\n\t\n\t if (unexpectedKeys.length > 0) {\n\t return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n\t }\n\t}\n\t\n\tfunction assertReducerSanity(reducers) {\n\t Object.keys(reducers).forEach(function (key) {\n\t var reducer = reducers[key];\n\t var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\t\n\t if (typeof initialState === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n\t }\n\t\n\t var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n\t if (typeof reducer(undefined, { type: type }) === 'undefined') {\n\t throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n\t }\n\t });\n\t}\n\t\n\t/**\n\t * Turns an object whose values are different reducer functions, into a single\n\t * reducer function. It will call every child reducer, and gather their results\n\t * into a single state object, whose keys correspond to the keys of the passed\n\t * reducer functions.\n\t *\n\t * @param {Object} reducers An object whose values correspond to different\n\t * reducer functions that need to be combined into one. One handy way to obtain\n\t * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n\t * undefined for any action. Instead, they should return their initial state\n\t * if the state passed to them was undefined, and the current state for any\n\t * unrecognized action.\n\t *\n\t * @returns {Function} A reducer function that invokes every reducer inside the\n\t * passed object, and builds a state object with the same shape.\n\t */\n\tfunction combineReducers(reducers) {\n\t var reducerKeys = Object.keys(reducers);\n\t var finalReducers = {};\n\t for (var i = 0; i < reducerKeys.length; i++) {\n\t var key = reducerKeys[i];\n\t\n\t if (false) {\n\t if (typeof reducers[key] === 'undefined') {\n\t (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n\t }\n\t }\n\t\n\t if (typeof reducers[key] === 'function') {\n\t finalReducers[key] = reducers[key];\n\t }\n\t }\n\t var finalReducerKeys = Object.keys(finalReducers);\n\t\n\t if (false) {\n\t var unexpectedKeyCache = {};\n\t }\n\t\n\t var sanityError;\n\t try {\n\t assertReducerSanity(finalReducers);\n\t } catch (e) {\n\t sanityError = e;\n\t }\n\t\n\t return function combination() {\n\t var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\t var action = arguments[1];\n\t\n\t if (sanityError) {\n\t throw sanityError;\n\t }\n\t\n\t if (false) {\n\t var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\t if (warningMessage) {\n\t (0, _warning2['default'])(warningMessage);\n\t }\n\t }\n\t\n\t var hasChanged = false;\n\t var nextState = {};\n\t for (var i = 0; i < finalReducerKeys.length; i++) {\n\t var key = finalReducerKeys[i];\n\t var reducer = finalReducers[key];\n\t var previousStateForKey = state[key];\n\t var nextStateForKey = reducer(previousStateForKey, action);\n\t if (typeof nextStateForKey === 'undefined') {\n\t var errorMessage = getUndefinedStateErrorMessage(key, action);\n\t throw new Error(errorMessage);\n\t }\n\t nextState[key] = nextStateForKey;\n\t hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n\t }\n\t return hasChanged ? nextState : state;\n\t };\n\t}\n\n/***/ },\n/* 61 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = warning;\n\t/**\n\t * Prints a warning in the console if it exists.\n\t *\n\t * @param {String} message The warning message.\n\t * @returns {void}\n\t */\n\tfunction warning(message) {\n\t /* eslint-disable no-console */\n\t if (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t console.error(message);\n\t }\n\t /* eslint-enable no-console */\n\t try {\n\t // This error was thrown as a convenience so that if you enable\n\t // \"break on all exceptions\" in your console,\n\t // it would pause the execution at this line.\n\t throw new Error(message);\n\t /* eslint-disable no-empty */\n\t } catch (e) {}\n\t /* eslint-enable no-empty */\n\t}\n\n/***/ },\n/* 62 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = bindActionCreators;\n\tfunction bindActionCreator(actionCreator, dispatch) {\n\t return function () {\n\t return dispatch(actionCreator.apply(undefined, arguments));\n\t };\n\t}\n\t\n\t/**\n\t * Turns an object whose values are action creators, into an object with the\n\t * same keys, but with every function wrapped into a `dispatch` call so they\n\t * may be invoked directly. This is just a convenience method, as you can call\n\t * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n\t *\n\t * For convenience, you can also pass a single function as the first argument,\n\t * and get a function in return.\n\t *\n\t * @param {Function|Object} actionCreators An object whose values are action\n\t * creator functions. One handy way to obtain it is to use ES6 `import * as`\n\t * syntax. You may also pass a single function.\n\t *\n\t * @param {Function} dispatch The `dispatch` function available on your Redux\n\t * store.\n\t *\n\t * @returns {Function|Object} The object mimicking the original object, but with\n\t * every action creator wrapped into the `dispatch` call. If you passed a\n\t * function as `actionCreators`, the return value will also be a single\n\t * function.\n\t */\n\tfunction bindActionCreators(actionCreators, dispatch) {\n\t if (typeof actionCreators === 'function') {\n\t return bindActionCreator(actionCreators, dispatch);\n\t }\n\t\n\t if (typeof actionCreators !== 'object' || actionCreators === null) {\n\t throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n\t }\n\t\n\t var keys = Object.keys(actionCreators);\n\t var boundActionCreators = {};\n\t for (var i = 0; i < keys.length; i++) {\n\t var key = keys[i];\n\t var actionCreator = actionCreators[key];\n\t if (typeof actionCreator === 'function') {\n\t boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n\t }\n\t }\n\t return boundActionCreators;\n\t}\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _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\t\n\texports['default'] = applyMiddleware;\n\t\n\tvar _compose = __webpack_require__(64);\n\t\n\tvar _compose2 = _interopRequireDefault(_compose);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * Creates a store enhancer that applies middleware to the dispatch method\n\t * of the Redux store. This is handy for a variety of tasks, such as expressing\n\t * asynchronous actions in a concise manner, or logging every action payload.\n\t *\n\t * See `redux-thunk` package as an example of the Redux middleware.\n\t *\n\t * Because middleware is potentially asynchronous, this should be the first\n\t * store enhancer in the composition chain.\n\t *\n\t * Note that each middleware will be given the `dispatch` and `getState` functions\n\t * as named arguments.\n\t *\n\t * @param {...Function} middlewares The middleware chain to be applied.\n\t * @returns {Function} A store enhancer applying the middleware.\n\t */\n\tfunction applyMiddleware() {\n\t for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n\t middlewares[_key] = arguments[_key];\n\t }\n\t\n\t return function (createStore) {\n\t return function (reducer, preloadedState, enhancer) {\n\t var store = createStore(reducer, preloadedState, enhancer);\n\t var _dispatch = store.dispatch;\n\t var chain = [];\n\t\n\t var middlewareAPI = {\n\t getState: store.getState,\n\t dispatch: function dispatch(action) {\n\t return _dispatch(action);\n\t }\n\t };\n\t chain = middlewares.map(function (middleware) {\n\t return middleware(middlewareAPI);\n\t });\n\t _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\t\n\t return _extends({}, store, {\n\t dispatch: _dispatch\n\t });\n\t };\n\t };\n\t}\n\n/***/ },\n/* 64 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = compose;\n\t/**\n\t * Composes single-argument functions from right to left. The rightmost\n\t * function can take multiple arguments as it provides the signature for\n\t * the resulting composite function.\n\t *\n\t * @param {...Function} funcs The functions to compose.\n\t * @returns {Function} A function obtained by composing the argument functions\n\t * from right to left. For example, compose(f, g, h) is identical to doing\n\t * (...args) => f(g(h(...args))).\n\t */\n\t\n\tfunction compose() {\n\t for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n\t funcs[_key] = arguments[_key];\n\t }\n\t\n\t if (funcs.length === 0) {\n\t return function (arg) {\n\t return arg;\n\t };\n\t }\n\t\n\t if (funcs.length === 1) {\n\t return funcs[0];\n\t }\n\t\n\t var last = funcs[funcs.length - 1];\n\t var rest = funcs.slice(0, -1);\n\t return function () {\n\t return rest.reduceRight(function (composed, f) {\n\t return f(composed);\n\t }, last.apply(undefined, arguments));\n\t };\n\t}\n\n/***/ },\n/* 65 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.wrapMapToPropsConstant = wrapMapToPropsConstant;\n\texports.getDependsOnOwnProps = getDependsOnOwnProps;\n\texports.wrapMapToPropsFunc = wrapMapToPropsFunc;\n\t\n\tvar _verifyPlainObject = __webpack_require__(66);\n\t\n\tvar _verifyPlainObject2 = _interopRequireDefault(_verifyPlainObject);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction wrapMapToPropsConstant(getConstant) {\n\t return function initConstantSelector(dispatch, options) {\n\t var constant = getConstant(dispatch, options);\n\t\n\t function constantSelector() {\n\t return constant;\n\t }\n\t constantSelector.dependsOnOwnProps = false;\n\t return constantSelector;\n\t };\n\t}\n\t\n\t// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n\t// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n\t// whether mapToProps needs to be invoked when props have changed.\n\t// \n\t// A length of one signals that mapToProps does not depend on props from the parent component.\n\t// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n\t// therefore not reporting its length accurately..\n\tfunction getDependsOnOwnProps(mapToProps) {\n\t return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n\t}\n\t\n\t// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n\t// this function wraps mapToProps in a proxy function which does several things:\n\t// \n\t// * Detects whether the mapToProps function being called depends on props, which\n\t// is used by selectorFactory to decide if it should reinvoke on props changes.\n\t// \n\t// * On first call, handles mapToProps if returns another function, and treats that\n\t// new function as the true mapToProps for subsequent calls.\n\t// \n\t// * On first call, verifies the first result is a plain object, in order to warn\n\t// the developer that their mapToProps function is not returning a valid result.\n\t// \n\tfunction wrapMapToPropsFunc(mapToProps, methodName) {\n\t return function initProxySelector(dispatch, _ref) {\n\t var displayName = _ref.displayName;\n\t\n\t var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n\t return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n\t };\n\t\n\t // allow detectFactoryAndVerify to get ownProps\n\t proxy.dependsOnOwnProps = true;\n\t\n\t proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n\t proxy.mapToProps = mapToProps;\n\t proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n\t var props = proxy(stateOrDispatch, ownProps);\n\t\n\t if (typeof props === 'function') {\n\t proxy.mapToProps = props;\n\t proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n\t props = proxy(stateOrDispatch, ownProps);\n\t }\n\t\n\t if (false) (0, _verifyPlainObject2.default)(props, displayName, methodName);\n\t\n\t return props;\n\t };\n\t\n\t return proxy;\n\t };\n\t}\n\n/***/ },\n/* 66 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.default = verifyPlainObject;\n\t\n\tvar _isPlainObject = __webpack_require__(46);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _warning = __webpack_require__(37);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction verifyPlainObject(value, displayName, methodName) {\n\t if (!(0, _isPlainObject2.default)(value)) {\n\t (0, _warning2.default)(methodName + '() in ' + displayName + ' must return a plain object. Instead received ' + value + '.');\n\t }\n\t}\n\n/***/ },\n/* 67 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.whenMapStateToPropsIsFunction = whenMapStateToPropsIsFunction;\n\texports.whenMapStateToPropsIsMissing = whenMapStateToPropsIsMissing;\n\t\n\tvar _wrapMapToProps = __webpack_require__(65);\n\t\n\tfunction whenMapStateToPropsIsFunction(mapStateToProps) {\n\t return typeof mapStateToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapStateToProps, 'mapStateToProps') : undefined;\n\t}\n\t\n\tfunction whenMapStateToPropsIsMissing(mapStateToProps) {\n\t return !mapStateToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function () {\n\t return {};\n\t }) : undefined;\n\t}\n\t\n\texports.default = [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];\n\n/***/ },\n/* 68 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _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\t\n\texports.defaultMergeProps = defaultMergeProps;\n\texports.wrapMergePropsFunc = wrapMergePropsFunc;\n\texports.whenMergePropsIsFunction = whenMergePropsIsFunction;\n\texports.whenMergePropsIsOmitted = whenMergePropsIsOmitted;\n\t\n\tvar _verifyPlainObject = __webpack_require__(66);\n\t\n\tvar _verifyPlainObject2 = _interopRequireDefault(_verifyPlainObject);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction defaultMergeProps(stateProps, dispatchProps, ownProps) {\n\t return _extends({}, ownProps, stateProps, dispatchProps);\n\t}\n\t\n\tfunction wrapMergePropsFunc(mergeProps) {\n\t return function initMergePropsProxy(dispatch, _ref) {\n\t var displayName = _ref.displayName,\n\t pure = _ref.pure,\n\t areMergedPropsEqual = _ref.areMergedPropsEqual;\n\t\n\t var hasRunOnce = false;\n\t var mergedProps = void 0;\n\t\n\t return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n\t var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\t\n\t if (hasRunOnce) {\n\t if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n\t } else {\n\t hasRunOnce = true;\n\t mergedProps = nextMergedProps;\n\t\n\t if (false) (0, _verifyPlainObject2.default)(mergedProps, displayName, 'mergeProps');\n\t }\n\t\n\t return mergedProps;\n\t };\n\t };\n\t}\n\t\n\tfunction whenMergePropsIsFunction(mergeProps) {\n\t return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n\t}\n\t\n\tfunction whenMergePropsIsOmitted(mergeProps) {\n\t return !mergeProps ? function () {\n\t return defaultMergeProps;\n\t } : undefined;\n\t}\n\t\n\texports.default = [whenMergePropsIsFunction, whenMergePropsIsOmitted];\n\n/***/ },\n/* 69 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.impureFinalPropsSelectorFactory = impureFinalPropsSelectorFactory;\n\texports.pureFinalPropsSelectorFactory = pureFinalPropsSelectorFactory;\n\texports.default = finalPropsSelectorFactory;\n\t\n\tvar _verifySubselectors = __webpack_require__(70);\n\t\n\tvar _verifySubselectors2 = _interopRequireDefault(_verifySubselectors);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tfunction impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n\t return function impureFinalPropsSelector(state, ownProps) {\n\t return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n\t };\n\t}\n\t\n\tfunction pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n\t var areStatesEqual = _ref.areStatesEqual,\n\t areOwnPropsEqual = _ref.areOwnPropsEqual,\n\t areStatePropsEqual = _ref.areStatePropsEqual;\n\t\n\t var hasRunAtLeastOnce = false;\n\t var state = void 0;\n\t var ownProps = void 0;\n\t var stateProps = void 0;\n\t var dispatchProps = void 0;\n\t var mergedProps = void 0;\n\t\n\t function handleFirstCall(firstState, firstOwnProps) {\n\t state = firstState;\n\t ownProps = firstOwnProps;\n\t stateProps = mapStateToProps(state, ownProps);\n\t dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\t mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\t hasRunAtLeastOnce = true;\n\t return mergedProps;\n\t }\n\t\n\t function handleNewPropsAndNewState() {\n\t stateProps = mapStateToProps(state, ownProps);\n\t\n\t if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\t\n\t mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\t return mergedProps;\n\t }\n\t\n\t function handleNewProps() {\n\t if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n\t\n\t if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\t\n\t mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\t return mergedProps;\n\t }\n\t\n\t function handleNewState() {\n\t var nextStateProps = mapStateToProps(state, ownProps);\n\t var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n\t stateProps = nextStateProps;\n\t\n\t if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\t\n\t return mergedProps;\n\t }\n\t\n\t function handleSubsequentCalls(nextState, nextOwnProps) {\n\t var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n\t var stateChanged = !areStatesEqual(nextState, state);\n\t state = nextState;\n\t ownProps = nextOwnProps;\n\t\n\t if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n\t if (propsChanged) return handleNewProps();\n\t if (stateChanged) return handleNewState();\n\t return mergedProps;\n\t }\n\t\n\t return function pureFinalPropsSelector(nextState, nextOwnProps) {\n\t return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n\t };\n\t}\n\t\n\t// TODO: Add more comments\n\t\n\t// If pure is true, the selector returned by selectorFactory will memoize its results,\n\t// allowing connectAdvanced's shouldComponentUpdate to return false if final\n\t// props have not changed. If false, the selector will always return a new\n\t// object and shouldComponentUpdate will always return true.\n\t\n\tfunction finalPropsSelectorFactory(dispatch, _ref2) {\n\t var initMapStateToProps = _ref2.initMapStateToProps,\n\t initMapDispatchToProps = _ref2.initMapDispatchToProps,\n\t initMergeProps = _ref2.initMergeProps,\n\t options = _objectWithoutProperties(_ref2, ['initMapStateToProps', 'initMapDispatchToProps', 'initMergeProps']);\n\t\n\t var mapStateToProps = initMapStateToProps(dispatch, options);\n\t var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n\t var mergeProps = initMergeProps(dispatch, options);\n\t\n\t if (false) {\n\t (0, _verifySubselectors2.default)(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n\t }\n\t\n\t var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n\t\n\t return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n\t}\n\n/***/ },\n/* 70 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.default = verifySubselectors;\n\t\n\tvar _warning = __webpack_require__(37);\n\t\n\tvar _warning2 = _interopRequireDefault(_warning);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction verify(selector, methodName, displayName) {\n\t if (!selector) {\n\t throw new Error('Unexpected value for ' + methodName + ' in ' + displayName + '.');\n\t } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') {\n\t if (!selector.hasOwnProperty('dependsOnOwnProps')) {\n\t (0, _warning2.default)('The selector for ' + methodName + ' of ' + displayName + ' did not specify a value for dependsOnOwnProps.');\n\t }\n\t }\n\t}\n\t\n\tfunction verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) {\n\t verify(mapStateToProps, 'mapStateToProps', displayName);\n\t verify(mapDispatchToProps, 'mapDispatchToProps', displayName);\n\t verify(mergeProps, 'mergeProps', displayName);\n\t}\n\n/***/ },\n/* 71 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.PersistentQueryLink = exports.Link = undefined;\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _react = __webpack_require__(33);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _actions = __webpack_require__(2);\n\t\n\tvar _normalizeHref = __webpack_require__(3);\n\t\n\tvar _normalizeHref2 = _interopRequireDefault(_normalizeHref);\n\t\n\tvar _stringifyHref = __webpack_require__(72);\n\t\n\tvar _stringifyHref2 = _interopRequireDefault(_stringifyHref);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tfunction _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\t\n\tvar LEFT_MOUSE_BUTTON = 0;\n\t\n\tvar isNotLeftClick = function isNotLeftClick(e) {\n\t return e.button && e.button !== LEFT_MOUSE_BUTTON;\n\t};\n\t\n\tvar hasModifier = function hasModifier(e) {\n\t return Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\t};\n\t\n\tvar shouldIgnoreClick = function shouldIgnoreClick(_ref) {\n\t var e = _ref.e,\n\t target = _ref.target;\n\t return hasModifier(e) || isNotLeftClick(e) || e.defaultPrevented || target;\n\t}; // let browser handle target=\"_blank\"\n\t\n\tvar handleClick = function handleClick(_ref2) {\n\t var e = _ref2.e,\n\t target = _ref2.target,\n\t href = _ref2.href,\n\t onClick = _ref2.onClick,\n\t replaceState = _ref2.replaceState,\n\t persistQuery = _ref2.persistQuery,\n\t store = _ref2.store;\n\t\n\t if (onClick) {\n\t onClick(e);\n\t }\n\t\n\t if (shouldIgnoreClick({ e: e, target: target })) {\n\t return;\n\t }\n\t\n\t e.preventDefault();\n\t\n\t var navigate = replaceState ? _actions.replace : _actions.push;\n\t store.dispatch(navigate(href, { persistQuery: persistQuery }));\n\t};\n\t\n\tvar Link = function Link(props, context) {\n\t var rawHref = props.href,\n\t children = props.children,\n\t onClick = props.onClick,\n\t target = props.target,\n\t replaceState = props.replaceState,\n\t persistQuery = props.persistQuery,\n\t rest = _objectWithoutProperties(props, ['href', 'children', 'onClick', 'target', 'replaceState', 'persistQuery']);\n\t\n\t var store = context.router.store;\n\t\n\t var _store$getState = store.getState(),\n\t basename = _store$getState.router.basename;\n\t\n\t // Ensure the href has both a search and a query when needed\n\t\n\t\n\t var href = (0, _normalizeHref2.default)(rawHref);\n\t\n\t var clickHandler = function clickHandler(e) {\n\t return handleClick({\n\t e: e,\n\t target: target,\n\t href: href,\n\t onClick: onClick,\n\t replaceState: replaceState,\n\t persistQuery: persistQuery,\n\t store: store\n\t });\n\t };\n\t\n\t return _react2.default.createElement(\n\t 'a',\n\t _extends({\n\t href: (0, _stringifyHref2.default)(href, basename),\n\t onClick: clickHandler\n\t }, rest),\n\t children\n\t );\n\t};\n\t\n\tLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\tvar PersistentQueryLink = function (_Component) {\n\t _inherits(PersistentQueryLink, _Component);\n\t\n\t function PersistentQueryLink() {\n\t _classCallCheck(this, PersistentQueryLink);\n\t\n\t return _possibleConstructorReturn(this, (PersistentQueryLink.__proto__ || Object.getPrototypeOf(PersistentQueryLink)).apply(this, arguments));\n\t }\n\t\n\t _createClass(PersistentQueryLink, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props,\n\t children = _props.children,\n\t rest = _objectWithoutProperties(_props, ['children']);\n\t\n\t return _react2.default.createElement(\n\t Link,\n\t _extends({}, rest, { persistQuery: true }),\n\t children\n\t );\n\t }\n\t }]);\n\t\n\t return PersistentQueryLink;\n\t}(_react.Component);\n\t\n\tPersistentQueryLink.propTypes = {\n\t children: _react.PropTypes.node\n\t};\n\t\n\tPersistentQueryLink.contextTypes = {\n\t router: _react.PropTypes.object\n\t};\n\t\n\texports.Link = Link;\n\texports.PersistentQueryLink = PersistentQueryLink;\n\n/***/ },\n/* 72 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\texports.default = function (href, basename) {\n\t if (typeof href === 'string') {\n\t return '' + (basename || '') + href;\n\t }\n\t\n\t var pathname = href.pathname,\n\t search = href.search;\n\t\n\t return '' + (basename || '') + pathname + (search || '');\n\t};\n\n/***/ },\n/* 73 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\tvar _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\t\n\tvar _react = __webpack_require__(33);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _matchCache = __webpack_require__(22);\n\t\n\tvar _matchCache2 = _interopRequireDefault(_matchCache);\n\t\n\tvar _generateId = __webpack_require__(74);\n\t\n\tvar _generateId2 = _interopRequireDefault(_generateId);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _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\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _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\t\n\tvar relativePaths = function relativePaths(ComposedComponent) {\n\t var RelativeFragment = function (_Component) {\n\t _inherits(RelativeFragment, _Component);\n\t\n\t function RelativeFragment() {\n\t _classCallCheck(this, RelativeFragment);\n\t\n\t var _this = _possibleConstructorReturn(this, (RelativeFragment.__proto__ || Object.getPrototypeOf(RelativeFragment)).call(this));\n\t\n\t _this.id = (0, _generateId2.default)();\n\t return _this;\n\t }\n\t\n\t _createClass(RelativeFragment, [{\n\t key: 'getChildContext',\n\t value: function getChildContext() {\n\t var parentRoute = this.context.parentRoute;\n\t var forRoute = this.props.forRoute;\n\t\n\t\n\t return {\n\t // Append the parent route if this isn't the first\n\t // RelativeFragment in the hierarchy.\n\t parentRoute: parentRoute && parentRoute !== '/' && parentRoute !== forRoute ? '' + parentRoute + (forRoute || '') : forRoute,\n\t parentId: this.id\n\t };\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props,\n\t children = _props.children,\n\t forRoute = _props.forRoute,\n\t rest = _objectWithoutProperties(_props, ['children', 'forRoute']);\n\t\n\t var _context = this.context,\n\t router = _context.router,\n\t parentRoute = _context.parentRoute,\n\t parentId = _context.parentId;\n\t var store = router.store;\n\t\n\t\n\t var location = store.getState().router;\n\t\n\t var routePrefix = parentRoute && parentRoute !== '/' ? parentRoute : '';\n\t\n\t return _react2.default.createElement(ComposedComponent, _extends({\n\t parentId: parentId,\n\t location: location,\n\t matchRoute: store.matchWildcardRoute,\n\t forRoute: forRoute && '' + routePrefix + forRoute,\n\t children: children\n\t }, rest));\n\t }\n\t }]);\n\t\n\t return RelativeFragment;\n\t }(_react.Component);\n\t\n\t // Consumes this context...\n\t\n\t\n\t RelativeFragment.contextTypes = {\n\t router: _react.PropTypes.object,\n\t parentRoute: _react.PropTypes.string,\n\t parentId: _react.PropTypes.string\n\t };\n\t\n\t // ...and provides this context.\n\t RelativeFragment.childContextTypes = {\n\t parentRoute: _react.PropTypes.string,\n\t parentId: _react.PropTypes.string\n\t };\n\t\n\t return RelativeFragment;\n\t};\n\t\n\tvar Fragment = function Fragment(props) {\n\t var location = props.location,\n\t matchRoute = props.matchRoute,\n\t forRoute = props.forRoute,\n\t withConditions = props.withConditions,\n\t children = props.children,\n\t parentId = props.parentId;\n\t\n\t\n\t var matchResult = matchRoute(location.pathname, forRoute);\n\t\n\t if (!matchResult || withConditions && !withConditions(location) || forRoute && matchResult.route !== forRoute) {\n\t return null;\n\t }\n\t\n\t if (parentId) {\n\t var previousMatch = _matchCache2.default.get(parentId);\n\t if (previousMatch && previousMatch !== forRoute) {\n\t return null;\n\t } else {\n\t _matchCache2.default.add(parentId, forRoute);\n\t }\n\t }\n\t\n\t return _react.Children.only(children);\n\t};\n\t\n\texports.default = relativePaths(Fragment);\n\n/***/ },\n/* 74 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\t/**\n\t * Returns a psuedo-unique identifier used by fragments\n\t * to track match status within MatchCache.\n\t * @returns {String} id\n\t * \n\t */\n\texports.default = function () {\n\t var radix = 16;\n\t var length = 8;\n\t return (Math.random() * Date.now()).toString(radix).slice(0, length);\n\t};\n\n/***/ }\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// redux-little-router.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 8ee1ca1f9da66f9887ec","// @flow\nimport {\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_BACK,\n GO_FORWARD\n} from './types';\n\nimport {\n push,\n replace,\n go,\n goBack,\n goForward,\n initializeCurrentLocation\n} from './actions';\n\nimport routerForBrowser from './environment/browser-router';\nimport routerForExpress from './environment/express-router';\nimport routerForHapi from './environment/hapi-router';\n\nimport provideRouter, { RouterProvider } from './components/provider';\nimport { Link, PersistentQueryLink } from './components/link';\nimport Fragment from './components/fragment';\n\nexport {\n // High-level Redux API\n routerForBrowser,\n routerForExpress,\n routerForHapi,\n initializeCurrentLocation,\n\n // React API\n provideRouter,\n RouterProvider,\n Link,\n PersistentQueryLink,\n Fragment,\n\n // Public action creators\n push,\n replace,\n go,\n goBack,\n goForward,\n\n // Public action types\n LOCATION_CHANGED,\n PUSH,\n REPLACE,\n GO,\n GO_FORWARD,\n GO_BACK\n};\n\n\n\n// WEBPACK FOOTER //\n// ./index.js","// @flow\nimport type { Location as HistoryLocation } from 'history';\n\nexport type Query = { [key: string]: string };\nexport type Params = { [key: string]: string };\n\nexport type LocationOptions = {\n persistQuery?: bool\n};\n\nexport type Location = HistoryLocation & {\n basename?: string,\n options?: LocationOptions,\n params?: Params,\n previous?: Location,\n query?: Query,\n result?: Object\n};\n\nexport type Href = string | Location;\n\nexport const LOCATION_CHANGED = 'ROUTER_LOCATION_CHANGED';\nexport const PUSH = 'ROUTER_PUSH';\nexport const REPLACE = 'ROUTER_REPLACE';\nexport const GO = 'ROUTER_GO';\nexport const GO_BACK = 'ROUTER_GO_BACK';\nexport const GO_FORWARD = 'ROUTER_GO_FORWARD';\n\nexport type BareAction = {\n type: 'ROUTER_GO_BACK' | 'ROUTER_GO_FORWARD'\n};\n\nexport type IndexedAction = {\n type: 'ROUTER_GO',\n payload: number\n};\n\nexport type LocationAction = {\n type: 'ROUTER_LOCATION_CHANGED' | 'ROUTER_PUSH' | 'ROUTER_REPLACE',\n payload: Location\n};\n\nexport type RouterAction =\n | BareAction\n | IndexedAction\n | LocationAction;\n\n\n\n// WEBPACK FOOTER //\n// ./types.js","// @flow\nimport type {\n Location,\n LocationOptions,\n Href\n} from './types';\n\nimport {\n PUSH,\n REPLACE,\n GO,\n GO_BACK,\n GO_FORWARD,\n LOCATION_CHANGED\n} from './types';\n\nimport normalizeHref from './util/normalize-href';\nimport { packState } from './util/location-state';\n\nexport const push = (href: Href, options: LocationOptions) => ({\n type: PUSH,\n payload: packState(normalizeHref(href), options)\n});\n\nexport const replace = (href: Href, options: LocationOptions) => ({\n type: REPLACE,\n payload: packState(normalizeHref(href), options)\n});\n\nexport const go = (index: number) => ({\n type: GO,\n payload: index\n});\n\nexport const goBack = () => ({ type: GO_BACK });\nexport const goForward = () => ({ type: GO_FORWARD });\n\nexport const locationDidChange = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\nexport const initializeCurrentLocation = (location: Location) => ({\n type: LOCATION_CHANGED,\n payload: location\n});\n\n\n\n// WEBPACK FOOTER //\n// ./actions.js","// @flow\nimport type { Href, Location } from '../types';\n\nimport qs from 'query-string';\n\nexport default (href: Href): Location => {\n if (typeof href === 'string') {\n const pathnameAndSearch = href.split('?');\n const pathname = pathnameAndSearch[0];\n const search = pathnameAndSearch[1];\n const query = search && qs.parse(search);\n\n return query\n ? { pathname, query, search: `?${search}` }\n : { pathname };\n }\n\n const { search, query } = href;\n\n const resolvedSearch = search || (\n query &&\n Object.keys(query).length &&\n `?${qs.stringify(query)}`\n ) || '';\n const resolvedQuery = query || qs.parse(search);\n\n return {\n ...href,\n search: resolvedSearch,\n query: resolvedQuery\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/normalize-href.js","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result || accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tformatter(decodeURIComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/query-string/index.js\n// module id = 4\n// module chunks = 0","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/strict-uri-encode/index.js\n// module id = 5\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/object-assign/index.js\n// module id = 6\n// module chunks = 0","// @flow\nimport type { Location as HistoryLocation } from 'history';\nimport type { Location, LocationOptions } from '../types';\n\nexport const packState = (\n location: Location,\n options: LocationOptions = {}\n): Location => {\n // eslint-disable-next-line no-unused-vars\n const { query, ...rest } = location;\n return {\n ...rest,\n state: {\n ...rest.state || {},\n\n // Namespace our state to prevent interference\n // with user-provided state\n reduxLittleRouter: {\n query: query || {},\n options\n }\n }\n };\n};\n\nexport const unpackState = (location: HistoryLocation) => {\n const { state = {}, ...restLocation } = location;\n const { reduxLittleRouter = {}, ...restState } = state;\n const { query = {}, options = {} } = reduxLittleRouter;\n\n return {\n ...restLocation,\n state: restState,\n query,\n options\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/location-state.js","// @flow\nimport createBrowserHistory from 'history/createBrowserHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype BrowserRouterArgs = {\n routes: Object,\n basename: string,\n getLocation: () => Location,\n passRouterStateToReducer?: bool\n};\n\n/* istanbul ignore next: unstubbable! */\nconst realLocation = () => window.location;\n\nexport default ({\n routes,\n basename,\n getLocation = realLocation\n}: BrowserRouterArgs) => {\n const history = createBrowserHistory({ basename });\n\n const { pathname: fullPathname, search } = getLocation();\n\n // Strip the basename from the initial pathname\n const pathname = basename\n ? fullPathname.replace(basename, '')\n : fullPathname;\n\n const descriptor = basename\n ? { pathname, basename, search }\n : { pathname, search };\n\n const location = normalizeHref(descriptor);\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/browser-router.js","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = (0, _DOMUtils.supportsHistory)();\n var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n if (basename) path = (0, _PathUtils.stripPrefix)(path, basename);\n\n return _extends({}, (0, _PathUtils.parsePath)(path), {\n state: state,\n key: key\n });\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + (0, _PathUtils.createPath)(location);\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createBrowserHistory.js\n// module id = 9\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/warning/browser.js\n// module id = 10\n// module chunks = 0","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/invariant/browser.js\n// module id = 11\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\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 _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = (0, _PathUtils.parsePath)(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/LocationUtils.js\n// module id = 12\n// module chunks = 0","'use strict';\n\nvar isAbsolute = function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n};\n\n// About 1.5x faster than the two-arg version of Array#splice()\nvar spliceOne = function spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }list.pop();\n};\n\n// This implementation is based heavily on node's url.parse\nvar resolvePathname = function resolvePathname(to) {\n var from = arguments.length <= 1 || arguments[1] === undefined ? '' : arguments[1];\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n};\n\nmodule.exports = resolvePathname;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/resolve-pathname/index.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar valueEqual = function valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) return false;\n\n return a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n};\n\nexports.default = valueEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/value-equal/index.js\n// module id = 14\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar stripPrefix = exports.stripPrefix = function stripPrefix(path, prefix) {\n return path.indexOf(prefix) === 0 ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n pathname = decodeURI(pathname);\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = encodeURI(pathname || '/');\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/PathUtils.js\n// module id = 15\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexports.default = createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createTransitionManager.js\n// module id = 16\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/DOMUtils.js\n// module id = 17\n// module chunks = 0","// @flow\nimport type { History } from 'history';\nimport type { Location } from './types';\n\nimport reducer from './reducer';\nimport middleware from './middleware';\nimport enhancer from './enhancer';\n\nimport { default as matcherFactory } from './util/create-matcher';\nimport validateRoutes from './util/validate-routes';\nimport flattenRoutes from './util/flatten-routes';\n\ntype InstallArgs = {\n routes: Object,\n history: History,\n location: Location,\n createMatcher?: Function\n};\n\nexport default ({\n routes: nestedRoutes,\n history,\n location,\n createMatcher = matcherFactory\n}: InstallArgs) => {\n validateRoutes(nestedRoutes);\n const routes = flattenRoutes(nestedRoutes);\n\n const matchRoute = createMatcher(routes);\n const matchWildcardRoute = createMatcher(routes, true);\n\n return {\n reducer: reducer({\n ...location,\n ...matchRoute(location.pathname)\n }),\n middleware: middleware({ history }),\n enhancer: enhancer({\n routes,\n history,\n matchRoute,\n matchWildcardRoute\n })\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./install.js","// @flow\nimport type { Location, LocationOptions, LocationAction } from './types';\n\nimport { LOCATION_CHANGED } from './types';\n\nconst flow = (...funcs: Array) =>\n funcs.reduce((prev, curr) => (...args) => curr(prev(...args)));\n\ntype ResolverArgs = {\n oldLocation: Location,\n newLocation: Location,\n options: LocationOptions\n};\n\nconst resolveQuery = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => {\n const { query: oldQuery, search: oldSearch } = oldLocation;\n\n // Only use the query from state if it exists\n // and the href doesn't provide its own query\n if (\n options.persistQuery &&\n oldQuery &&\n !newLocation.search &&\n !newLocation.query\n ) {\n return {\n oldLocation,\n newLocation: {\n ...newLocation,\n query: oldQuery,\n search: oldSearch\n },\n options\n };\n }\n\n return { oldLocation, newLocation, options };\n};\n\nconst resolveBasename = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => {\n const { basename } = oldLocation;\n if (basename) {\n return {\n oldLocation,\n newLocation: { basename, ...newLocation },\n options\n };\n }\n return { oldLocation, newLocation, options };\n};\n\nconst resolvePrevious = ({\n oldLocation,\n newLocation,\n options\n}: ResolverArgs): ResolverArgs => ({\n oldLocation,\n newLocation: {\n ...newLocation,\n previous: oldLocation\n },\n options\n});\n\nexport default\n (initialLocation: Location) =>\n (state: Location = initialLocation, action: LocationAction) => {\n if (action.type === LOCATION_CHANGED) {\n // No-op the initial route action\n if (\n state.pathname === action.payload.pathname &&\n state.search === action.payload.search\n ) {\n return state;\n }\n\n // Extract the previous state, but dump the\n // previous state's previous state so that the\n // state tree doesn't keep growing indefinitely\n // eslint-disable-next-line no-unused-vars\n const { previous, ...oldLocation } = state;\n const { options } = action.payload;\n\n const resolveLocation = flow(\n resolveQuery,\n resolveBasename,\n resolvePrevious\n );\n\n return resolveLocation({\n oldLocation,\n newLocation: action.payload,\n options: options || {}\n }).newLocation;\n }\n return state;\n };\n\n\n\n// WEBPACK FOOTER //\n// ./reducer.js","/* eslint-disable consistent-return */\n// @flow\n\nimport type { History } from 'history';\nimport type { Dispatch } from 'redux';\nimport type { RouterAction } from './types';\n\nimport {\n PUSH, REPLACE, GO,\n GO_BACK, GO_FORWARD\n} from './types';\n\ntype MiddlewareArgs = { history: History };\nexport default\n ({ history }: MiddlewareArgs) => () =>\n (next: Dispatch<*>) =>\n (action: RouterAction) => {\n switch (action.type) {\n case PUSH:\n history.push(action.payload);\n // No return, no next() here\n // We stop all history events from progressing further through the dispatch chain...\n break;\n case REPLACE:\n history.replace(action.payload);\n break;\n case GO:\n history.go(action.payload);\n break;\n case GO_BACK:\n history.goBack();\n break;\n case GO_FORWARD:\n history.goForward();\n break;\n default:\n // ...but we want to leave all events we don't care about undisturbed\n return next(action);\n }\n };\n\n\n\n// WEBPACK FOOTER //\n// ./middleware.js","// @flow\n\nimport type { StoreCreator, Reducer, StoreEnhancer } from 'redux';\nimport type { History } from 'history';\n\nimport { locationDidChange } from './actions';\n\nimport { unpackState } from './util/location-state';\nimport matchCache from './util/match-cache';\n\ntype EnhancerArgs = {\n routes: Object,\n history: History,\n matchRoute: Function,\n matchWildcardRoute: Function\n};\nexport default ({\n routes,\n history,\n matchRoute,\n matchWildcardRoute\n}: EnhancerArgs) =>\n(createStore: StoreCreator<*, *>) => (\n userReducer: Reducer<*, *>,\n initialState: Location,\n enhancer: StoreEnhancer<*, *>\n) => {\n const store = createStore(\n userReducer,\n initialState,\n enhancer\n );\n\n history.listen(location => {\n matchCache.clear();\n store.dispatch(locationDidChange({\n ...unpackState(location),\n ...matchRoute(location.pathname)\n }));\n });\n\n return {\n ...store,\n routes,\n matchRoute,\n matchWildcardRoute\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./enhancer.js","// @flow\n\nconst ROUTE_FALLBACK = '@ROUTE_FALLBACK';\n\nexport class MatchCache {\n _data: { [parentId: string]: string };\n constructor() {\n this._data = {};\n }\n\n add(parentId: string, route: ?string) : void {\n this._data[parentId] = route || ROUTE_FALLBACK;\n }\n\n get(parentId: string) : null | string {\n return this._data[parentId] || null;\n }\n\n clear() : void {\n this._data = {};\n }\n}\n\nexport default new MatchCache();\n\n\n\n// WEBPACK FOOTER //\n// ./util/match-cache.js","// @flow\nimport UrlPattern from 'url-pattern';\n\ntype RouteCache = {\n route: string,\n pattern: UrlPattern,\n result: Object\n};\n\nconst find = (list, predicate) => {\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n if (predicate(item)) {\n return item;\n }\n }\n return null;\n};\n\nconst wildcardMatcher = (routeList: Array) =>\n (incomingUrl: string, routeToMatch: string = '') => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n const storedRoute = find(routeList, route =>\n route.route === routeToMatch\n );\n\n if (!storedRoute) { return null; }\n\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n\n return null;\n };\n\nconst eagerMatcher = (routeList: Array) =>\n (incomingUrl: string) => {\n // Discard query strings\n const pathname = incomingUrl.split('?')[0];\n\n // Find the route that matches the URL\n for (let i = 0; i < routeList.length; i++) {\n const storedRoute = routeList[i];\n const match = storedRoute.pattern.match(pathname);\n\n if (match) {\n // Return the matched params and user-defined result object\n return {\n route: storedRoute.route,\n params: match,\n result: storedRoute.result\n };\n }\n }\n\n return null;\n };\n\nexport default (routes: Object, wildcard: bool = false) => {\n const routeList = Object.keys(routes)\n .sort().reverse().map(route => ({\n route,\n pattern: new UrlPattern(\n // Prepend with wildcards if requested\n `${route}${wildcard && '*' || ''}`\n ),\n result: routes[route]\n }));\n\n return wildcard\n ? wildcardMatcher(routeList)\n : eagerMatcher(routeList);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/create-matcher.js","// Generated by CoffeeScript 1.10.0\nvar slice = [].slice;\n\n(function(root, factory) {\n if (('function' === typeof define) && (define.amd != null)) {\n return define([], factory);\n } else if (typeof exports !== \"undefined\" && exports !== null) {\n return module.exports = factory();\n } else {\n return root.UrlPattern = factory();\n }\n})(this, function() {\n var P, UrlPattern, astNodeContainsSegmentsForProvidedParams, astNodeToNames, astNodeToRegexString, baseAstNodeToRegexString, concatMap, defaultOptions, escapeForRegex, getParam, keysAndValuesToObject, newParser, regexGroupCount, stringConcatMap, stringify;\n escapeForRegex = function(string) {\n return string.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n };\n concatMap = function(array, f) {\n var i, length, results;\n results = [];\n i = -1;\n length = array.length;\n while (++i < length) {\n results = results.concat(f(array[i]));\n }\n return results;\n };\n stringConcatMap = function(array, f) {\n var i, length, result;\n result = '';\n i = -1;\n length = array.length;\n while (++i < length) {\n result += f(array[i]);\n }\n return result;\n };\n regexGroupCount = function(regex) {\n return (new RegExp(regex.toString() + '|')).exec('').length - 1;\n };\n keysAndValuesToObject = function(keys, values) {\n var i, key, length, object, value;\n object = {};\n i = -1;\n length = keys.length;\n while (++i < length) {\n key = keys[i];\n value = values[i];\n if (value == null) {\n continue;\n }\n if (object[key] != null) {\n if (!Array.isArray(object[key])) {\n object[key] = [object[key]];\n }\n object[key].push(value);\n } else {\n object[key] = value;\n }\n }\n return object;\n };\n P = {};\n P.Result = function(value, rest) {\n this.value = value;\n this.rest = rest;\n };\n P.Tagged = function(tag, value) {\n this.tag = tag;\n this.value = value;\n };\n P.tag = function(tag, parser) {\n return function(input) {\n var result, tagged;\n result = parser(input);\n if (result == null) {\n return;\n }\n tagged = new P.Tagged(tag, result.value);\n return new P.Result(tagged, result.rest);\n };\n };\n P.regex = function(regex) {\n return function(input) {\n var matches, result;\n matches = regex.exec(input);\n if (matches == null) {\n return;\n }\n result = matches[0];\n return new P.Result(result, input.slice(result.length));\n };\n };\n P.sequence = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, rest, result, values;\n i = -1;\n length = parsers.length;\n values = [];\n rest = input;\n while (++i < length) {\n parser = parsers[i];\n result = parser(rest);\n if (result == null) {\n return;\n }\n values.push(result.value);\n rest = result.rest;\n }\n return new P.Result(values, rest);\n };\n };\n P.pick = function() {\n var indexes, parsers;\n indexes = arguments[0], parsers = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n return function(input) {\n var array, result;\n result = P.sequence.apply(P, parsers)(input);\n if (result == null) {\n return;\n }\n array = result.value;\n result.value = array[indexes];\n return result;\n };\n };\n P.string = function(string) {\n var length;\n length = string.length;\n return function(input) {\n if (input.slice(0, length) === string) {\n return new P.Result(string, input.slice(length));\n }\n };\n };\n P.lazy = function(fn) {\n var cached;\n cached = null;\n return function(input) {\n if (cached == null) {\n cached = fn();\n }\n return cached(input);\n };\n };\n P.baseMany = function(parser, end, stringResult, atLeastOneResultRequired, input) {\n var endResult, parserResult, rest, results;\n rest = input;\n results = stringResult ? '' : [];\n while (true) {\n if (end != null) {\n endResult = end(rest);\n if (endResult != null) {\n break;\n }\n }\n parserResult = parser(rest);\n if (parserResult == null) {\n break;\n }\n if (stringResult) {\n results += parserResult.value;\n } else {\n results.push(parserResult.value);\n }\n rest = parserResult.rest;\n }\n if (atLeastOneResultRequired && results.length === 0) {\n return;\n }\n return new P.Result(results, rest);\n };\n P.many1 = function(parser) {\n return function(input) {\n return P.baseMany(parser, null, false, true, input);\n };\n };\n P.concatMany1Till = function(parser, end) {\n return function(input) {\n return P.baseMany(parser, end, true, true, input);\n };\n };\n P.firstChoice = function() {\n var parsers;\n parsers = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return function(input) {\n var i, length, parser, result;\n i = -1;\n length = parsers.length;\n while (++i < length) {\n parser = parsers[i];\n result = parser(input);\n if (result != null) {\n return result;\n }\n }\n };\n };\n newParser = function(options) {\n var U;\n U = {};\n U.wildcard = P.tag('wildcard', P.string(options.wildcardChar));\n U.optional = P.tag('optional', P.pick(1, P.string(options.optionalSegmentStartChar), P.lazy(function() {\n return U.pattern;\n }), P.string(options.optionalSegmentEndChar)));\n U.name = P.regex(new RegExp(\"^[\" + options.segmentNameCharset + \"]+\"));\n U.named = P.tag('named', P.pick(1, P.string(options.segmentNameStartChar), P.lazy(function() {\n return U.name;\n })));\n U.escapedChar = P.pick(1, P.string(options.escapeChar), P.regex(/^./));\n U[\"static\"] = P.tag('static', P.concatMany1Till(P.firstChoice(P.lazy(function() {\n return U.escapedChar;\n }), P.regex(/^./)), P.firstChoice(P.string(options.segmentNameStartChar), P.string(options.optionalSegmentStartChar), P.string(options.optionalSegmentEndChar), U.wildcard)));\n U.token = P.lazy(function() {\n return P.firstChoice(U.wildcard, U.optional, U.named, U[\"static\"]);\n });\n U.pattern = P.many1(P.lazy(function() {\n return U.token;\n }));\n return U;\n };\n defaultOptions = {\n escapeChar: '\\\\',\n segmentNameStartChar: ':',\n segmentValueCharset: 'a-zA-Z0-9-_~ %',\n segmentNameCharset: 'a-zA-Z0-9',\n optionalSegmentStartChar: '(',\n optionalSegmentEndChar: ')',\n wildcardChar: '*'\n };\n baseAstNodeToRegexString = function(astNode, segmentValueCharset) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return baseAstNodeToRegexString(node, segmentValueCharset);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return '(.*?)';\n case 'named':\n return \"([\" + segmentValueCharset + \"]+)\";\n case 'static':\n return escapeForRegex(astNode.value);\n case 'optional':\n return '(?:' + baseAstNodeToRegexString(astNode.value, segmentValueCharset) + ')?';\n }\n };\n astNodeToRegexString = function(astNode, segmentValueCharset) {\n if (segmentValueCharset == null) {\n segmentValueCharset = defaultOptions.segmentValueCharset;\n }\n return '^' + baseAstNodeToRegexString(astNode, segmentValueCharset) + '$';\n };\n astNodeToNames = function(astNode) {\n if (Array.isArray(astNode)) {\n return concatMap(astNode, astNodeToNames);\n }\n switch (astNode.tag) {\n case 'wildcard':\n return ['_'];\n case 'named':\n return [astNode.value];\n case 'static':\n return [];\n case 'optional':\n return astNodeToNames(astNode.value);\n }\n };\n getParam = function(params, key, nextIndexes, sideEffects) {\n var index, maxIndex, result, value;\n if (sideEffects == null) {\n sideEffects = false;\n }\n value = params[key];\n if (value == null) {\n if (sideEffects) {\n throw new Error(\"no values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n index = nextIndexes[key] || 0;\n maxIndex = Array.isArray(value) ? value.length - 1 : 0;\n if (index > maxIndex) {\n if (sideEffects) {\n throw new Error(\"too few values provided for key `\" + key + \"`\");\n } else {\n return;\n }\n }\n result = Array.isArray(value) ? value[index] : value;\n if (sideEffects) {\n nextIndexes[key] = index + 1;\n }\n return result;\n };\n astNodeContainsSegmentsForProvidedParams = function(astNode, params, nextIndexes) {\n var i, length;\n if (Array.isArray(astNode)) {\n i = -1;\n length = astNode.length;\n while (++i < length) {\n if (astNodeContainsSegmentsForProvidedParams(astNode[i], params, nextIndexes)) {\n return true;\n }\n }\n return false;\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, false) != null;\n case 'named':\n return getParam(params, astNode.value, nextIndexes, false) != null;\n case 'static':\n return false;\n case 'optional':\n return astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes);\n }\n };\n stringify = function(astNode, params, nextIndexes) {\n if (Array.isArray(astNode)) {\n return stringConcatMap(astNode, function(node) {\n return stringify(node, params, nextIndexes);\n });\n }\n switch (astNode.tag) {\n case 'wildcard':\n return getParam(params, '_', nextIndexes, true);\n case 'named':\n return getParam(params, astNode.value, nextIndexes, true);\n case 'static':\n return astNode.value;\n case 'optional':\n if (astNodeContainsSegmentsForProvidedParams(astNode.value, params, nextIndexes)) {\n return stringify(astNode.value, params, nextIndexes);\n } else {\n return '';\n }\n }\n };\n UrlPattern = function(arg1, arg2) {\n var groupCount, options, parsed, parser, withoutWhitespace;\n if (arg1 instanceof UrlPattern) {\n this.isRegex = arg1.isRegex;\n this.regex = arg1.regex;\n this.ast = arg1.ast;\n this.names = arg1.names;\n return;\n }\n this.isRegex = arg1 instanceof RegExp;\n if (!(('string' === typeof arg1) || this.isRegex)) {\n throw new TypeError('argument must be a regex or a string');\n }\n if (this.isRegex) {\n this.regex = arg1;\n if (arg2 != null) {\n if (!Array.isArray(arg2)) {\n throw new Error('if first argument is a regex the second argument may be an array of group names but you provided something else');\n }\n groupCount = regexGroupCount(this.regex);\n if (arg2.length !== groupCount) {\n throw new Error(\"regex contains \" + groupCount + \" groups but array of group names contains \" + arg2.length);\n }\n this.names = arg2;\n }\n return;\n }\n if (arg1 === '') {\n throw new Error('argument must not be the empty string');\n }\n withoutWhitespace = arg1.replace(/\\s+/g, '');\n if (withoutWhitespace !== arg1) {\n throw new Error('argument must not contain whitespace');\n }\n options = {\n escapeChar: (arg2 != null ? arg2.escapeChar : void 0) || defaultOptions.escapeChar,\n segmentNameStartChar: (arg2 != null ? arg2.segmentNameStartChar : void 0) || defaultOptions.segmentNameStartChar,\n segmentNameCharset: (arg2 != null ? arg2.segmentNameCharset : void 0) || defaultOptions.segmentNameCharset,\n segmentValueCharset: (arg2 != null ? arg2.segmentValueCharset : void 0) || defaultOptions.segmentValueCharset,\n optionalSegmentStartChar: (arg2 != null ? arg2.optionalSegmentStartChar : void 0) || defaultOptions.optionalSegmentStartChar,\n optionalSegmentEndChar: (arg2 != null ? arg2.optionalSegmentEndChar : void 0) || defaultOptions.optionalSegmentEndChar,\n wildcardChar: (arg2 != null ? arg2.wildcardChar : void 0) || defaultOptions.wildcardChar\n };\n parser = newParser(options);\n parsed = parser.pattern(arg1);\n if (parsed == null) {\n throw new Error(\"couldn't parse pattern\");\n }\n if (parsed.rest !== '') {\n throw new Error(\"could only partially parse pattern\");\n }\n this.ast = parsed.value;\n this.regex = new RegExp(astNodeToRegexString(this.ast, options.segmentValueCharset));\n this.names = astNodeToNames(this.ast);\n };\n UrlPattern.prototype.match = function(url) {\n var groups, match;\n match = this.regex.exec(url);\n if (match == null) {\n return null;\n }\n groups = match.slice(1);\n if (this.names) {\n return keysAndValuesToObject(this.names, groups);\n } else {\n return groups;\n }\n };\n UrlPattern.prototype.stringify = function(params) {\n if (params == null) {\n params = {};\n }\n if (this.isRegex) {\n throw new Error(\"can't stringify patterns generated from a regex\");\n }\n if (params !== Object(params)) {\n throw new Error(\"argument must be an object or undefined\");\n }\n return stringify(this.ast, params, {});\n };\n UrlPattern.escapeForRegex = escapeForRegex;\n UrlPattern.concatMap = concatMap;\n UrlPattern.stringConcatMap = stringConcatMap;\n UrlPattern.regexGroupCount = regexGroupCount;\n UrlPattern.keysAndValuesToObject = keysAndValuesToObject;\n UrlPattern.P = P;\n UrlPattern.newParser = newParser;\n UrlPattern.defaultOptions = defaultOptions;\n UrlPattern.astNodeToRegexString = astNodeToRegexString;\n UrlPattern.astNodeToNames = astNodeToNames;\n UrlPattern.getParam = getParam;\n UrlPattern.astNodeContainsSegmentsForProvidedParams = astNodeContainsSegmentsForProvidedParams;\n UrlPattern.stringify = stringify;\n return UrlPattern;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/url-pattern/lib/url-pattern.js\n// module id = 24\n// module chunks = 0","module.exports = __webpack_amd_options__;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/webpack/buildin/amd-options.js\n// module id = 25\n// module chunks = 0","// @flow\nconst README_MESSAGE = `\n See the README for more information:\n https://github.com/FormidableLabs/redux-little-router#wiring-up-the-boilerplate\n`;\n\nexport default (routes: Object) => {\n if (!routes) {\n throw Error(`\n Missing route configuration. You must define your routes as\n an object where the keys are routes and the values are any\n route-specific data.\n\n ${README_MESSAGE}\n `);\n }\n\n // eslint-disable-next-line no-magic-numbers\n if (\n !Object.keys(routes)\n .every(route => route.indexOf('/') === 0)\n ) {\n throw Error(`\n The route configuration you provided is malformed. Make sure\n that all of your routes start with a slash.\n\n ${README_MESSAGE}\n `);\n }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/validate-routes.js","// @flow\nimport assign from 'lodash.assign';\n\nconst filterObject = (target, predicate) =>\n Object.keys(target).reduce((acc, key) => {\n return predicate(key)\n ? { ...acc, [key]: target[key] }\n : acc;\n }, {});\n\nconst mapObject = (target, transformKey, transformValue) =>\n Object.keys(target).reduce((acc, key) => {\n const newKey = transformKey ?\n transformKey(key) : key;\n const newValue = transformValue ?\n transformValue(target[key]) : target[key];\n return { ...acc, [newKey]: newValue };\n }, {});\n\nconst onlyRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') === 0);\n\nconst withoutRoutes = routes =>\n filterObject(routes, key => key.indexOf('/') !== 0);\n\nconst flattenRoutes = (routes: Object, acc: Object = {}) => {\n Object.keys(routes).forEach(key => {\n const baseRoute = key === '/' ? '' : key;\n flattenRoutes(\n mapObject(\n onlyRoutes(routes[key]),\n routeKey => `${baseRoute}${routeKey}`,\n routeValue => ({\n ...routeValue,\n parent: {\n ...withoutRoutes(routes[key]),\n route: key\n }\n })\n ),\n acc\n );\n });\n\n assign(acc, mapObject(routes, null, withoutRoutes));\n\n return acc;\n};\n\nexport default flattenRoutes;\n\n\n\n// WEBPACK FOOTER //\n// ./util/flatten-routes.js","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/** Detect if properties shadowing those on `Object.prototype` are non-enumerable. */\nvar nonEnumShadows = !propertyIsEnumerable.call({ 'valueOf': 1 }, 'valueOf');\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = array;\n return apply(func, this, otherArgs);\n };\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (nonEnumShadows || isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash.assign/index.js\n// module id = 28\n// module chunks = 0","// @flow\nimport createMemoryHistory from 'history/createMemoryHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n baseUrl: string,\n url: string,\n query: {[key: string]: string}\n },\n passRouterStateToReducer?: bool\n};\n\nconst locationForRequest = request => {\n const { path: pathname, baseUrl: basename, query } = request;\n const descriptor = basename\n ? { pathname, basename, query }\n : { pathname, query };\n return normalizeHref(descriptor);\n};\n\nexport default ({ routes, request }: ServerRouterArgs) => {\n const history = createMemoryHistory();\n const location = locationForRequest(request);\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/express-router.js","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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 _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n });\n\n // Public interface\n\n var createHref = _PathUtils.createPath;\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/history/createMemoryHistory.js\n// module id = 30\n// module chunks = 0","// @flow\nimport createMemoryHistory from 'history/createMemoryHistory';\n\nimport normalizeHref from '../util/normalize-href';\nimport install from '../install';\n\ntype ServerRouterArgs = {\n routes: Object,\n request: {\n path: string,\n url: string,\n query: { [key: string]: string }\n }\n};\n\nexport default ({\n routes,\n request\n}: ServerRouterArgs) => {\n const history = createMemoryHistory();\n\n const location = normalizeHref({\n pathname: request.path,\n query: request.query\n });\n\n return install({ routes, history, location });\n};\n\n\n\n// WEBPACK FOOTER //\n// ./environment/hapi-router.js","// @flow\nimport type { Store } from 'redux';\n\nimport React, {\n Component,\n PropTypes,\n cloneElement\n} from 'react';\n\nimport { connect } from 'react-redux';\n\nexport type StoreWithRouter = Store & {\n routes: Object\n};\n\nexport type RouterContext = { store: Store<*, *> };\n\ntype Props = {\n store: StoreWithRouter<*, *>,\n children: React.Element<*>\n};\n\nclass RouterProviderImpl extends Component {\n constructor(props: Props) {\n super(props);\n this.router = {\n store: props.store\n };\n }\n\n getChildContext() {\n return {\n router: this.router\n };\n }\n\n router: { store: StoreWithRouter<*, *> };\n\n render() {\n const { store } = this.router;\n const routerState = store.getState().router;\n\n // Ensure that the router props from connect()\n // actually get to the child component(s)\n return cloneElement(this.props.children, {\n router: {\n ...routerState,\n\n // This is a hack to allow routes to define\n // unserializable things like components\n result: store.routes[routerState.route]\n }\n });\n }\n}\n\nRouterProviderImpl.childContextTypes = {\n router: PropTypes.object\n};\n\ntype ProvideRouterArgs = {\n store: StoreWithRouter<*, *>\n};\n\nexport const RouterProvider = connect(state => ({\n router: state.router\n}))(RouterProviderImpl);\n\nexport default ({ store }: ProvideRouterArgs) =>\n (ComposedComponent: ReactClass<*>) => (props: Object) =>\n \n \n ;\n\n\n\n// WEBPACK FOOTER //\n// ./components/provider.js","module.exports = __WEBPACK_EXTERNAL_MODULE_33__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 33\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.connect = exports.connectAdvanced = exports.Provider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _connectAdvanced = require('./components/connectAdvanced');\n\nvar _connectAdvanced2 = _interopRequireDefault(_connectAdvanced);\n\nvar _connect = require('./connect/connect');\n\nvar _connect2 = _interopRequireDefault(_connect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Provider = _Provider2.default;\nexports.connectAdvanced = _connectAdvanced2.default;\nexports.connect = _connect2.default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/index.js\n// module id = 34\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = undefined;\n\nvar _react = require('react');\n\nvar _PropTypes = require('../utils/PropTypes');\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\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 didWarnAboutReceivingStore = false;\nfunction warnAboutReceivingStore() {\n if (didWarnAboutReceivingStore) {\n return;\n }\n didWarnAboutReceivingStore = true;\n\n (0, _warning2.default)(' does not support changing `store` on the fly. ' + 'It is most likely that you see this error because you updated to ' + 'Redux 2.x and React Redux 2.x which no longer hot reload reducers ' + 'automatically. See https://github.com/reactjs/react-redux/releases/' + 'tag/v2.0.0 for the migration instructions.');\n}\n\nvar Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n Provider.prototype.getChildContext = function getChildContext() {\n return { store: this.store, storeSubscription: null };\n };\n\n function Provider(props, context) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.store = props.store;\n return _this;\n }\n\n Provider.prototype.render = function render() {\n return _react.Children.only(this.props.children);\n };\n\n return Provider;\n}(_react.Component);\n\nexports.default = Provider;\n\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.prototype.componentWillReceiveProps = function (nextProps) {\n var store = this.store;\n var nextStore = nextProps.store;\n\n\n if (store !== nextStore) {\n warnAboutReceivingStore();\n }\n };\n}\n\nProvider.propTypes = {\n store: _PropTypes.storeShape.isRequired,\n children: _react.PropTypes.element.isRequired\n};\nProvider.childContextTypes = {\n store: _PropTypes.storeShape.isRequired,\n storeSubscription: _PropTypes.subscriptionShape\n};\nProvider.displayName = 'Provider';\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/components/Provider.js\n// module id = 35\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.storeShape = exports.subscriptionShape = undefined;\n\nvar _react = require('react');\n\nvar subscriptionShape = exports.subscriptionShape = _react.PropTypes.shape({\n trySubscribe: _react.PropTypes.func.isRequired,\n tryUnsubscribe: _react.PropTypes.func.isRequired,\n notifyNestedSubs: _react.PropTypes.func.isRequired,\n isSubscribed: _react.PropTypes.func.isRequired\n});\n\nvar storeShape = exports.storeShape = _react.PropTypes.shape({\n subscribe: _react.PropTypes.func.isRequired,\n dispatch: _react.PropTypes.func.isRequired,\n getState: _react.PropTypes.func.isRequired\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/PropTypes.js\n// module id = 36\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/warning.js\n// module id = 37\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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.default = connectAdvanced;\n\nvar _hoistNonReactStatics = require('hoist-non-react-statics');\n\nvar _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _react = require('react');\n\nvar _Subscription = require('../utils/Subscription');\n\nvar _Subscription2 = _interopRequireDefault(_Subscription);\n\nvar _PropTypes = require('../utils/PropTypes');\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\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\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\nvar hotReloadingVersion = 0;\nvar dummyState = {};\nfunction noop() {}\nfunction makeSelectorStateful(sourceSelector, store) {\n // wrap the selector in an object that tracks its results between runs.\n var selector = {\n run: function runComponentSelector(props) {\n try {\n var nextProps = sourceSelector(store.getState(), props);\n if (nextProps !== selector.props || selector.error) {\n selector.shouldComponentUpdate = true;\n selector.props = nextProps;\n selector.error = null;\n }\n } catch (error) {\n selector.shouldComponentUpdate = true;\n selector.error = error;\n }\n }\n };\n\n return selector;\n}\n\nfunction connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory) {\n var _contextTypes, _childContextTypes;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$getDisplayName = _ref.getDisplayName,\n getDisplayName = _ref$getDisplayName === undefined ? function (name) {\n return 'ConnectAdvanced(' + name + ')';\n } : _ref$getDisplayName,\n _ref$methodName = _ref.methodName,\n methodName = _ref$methodName === undefined ? 'connectAdvanced' : _ref$methodName,\n _ref$renderCountProp = _ref.renderCountProp,\n renderCountProp = _ref$renderCountProp === undefined ? undefined : _ref$renderCountProp,\n _ref$shouldHandleStat = _ref.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref$shouldHandleStat === undefined ? true : _ref$shouldHandleStat,\n _ref$storeKey = _ref.storeKey,\n storeKey = _ref$storeKey === undefined ? 'store' : _ref$storeKey,\n _ref$withRef = _ref.withRef,\n withRef = _ref$withRef === undefined ? false : _ref$withRef,\n connectOptions = _objectWithoutProperties(_ref, ['getDisplayName', 'methodName', 'renderCountProp', 'shouldHandleStateChanges', 'storeKey', 'withRef']);\n\n var subscriptionKey = storeKey + 'Subscription';\n var version = hotReloadingVersion++;\n\n var contextTypes = (_contextTypes = {}, _contextTypes[storeKey] = _PropTypes.storeShape, _contextTypes[subscriptionKey] = _PropTypes.subscriptionShape, _contextTypes);\n var childContextTypes = (_childContextTypes = {}, _childContextTypes[subscriptionKey] = _PropTypes.subscriptionShape, _childContextTypes);\n\n return function wrapWithConnect(WrappedComponent) {\n (0, _invariant2.default)(typeof WrappedComponent == 'function', 'You must pass a component to the function returned by ' + ('connect. Instead received ' + JSON.stringify(WrappedComponent)));\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n withRef: withRef,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var Connect = function (_Component) {\n _inherits(Connect, _Component);\n\n function Connect(props, context) {\n _classCallCheck(this, Connect);\n\n var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));\n\n _this.version = version;\n _this.state = {};\n _this.renderCount = 0;\n _this.store = props[storeKey] || context[storeKey];\n _this.propsMode = Boolean(props[storeKey]);\n _this.setWrappedInstance = _this.setWrappedInstance.bind(_this);\n\n (0, _invariant2.default)(_this.store, 'Could not find \"' + storeKey + '\" in either the context or props of ' + ('\"' + displayName + '\". Either wrap the root component in a , ') + ('or explicitly pass \"' + storeKey + '\" as a prop to \"' + displayName + '\".'));\n\n _this.initSelector();\n _this.initSubscription();\n return _this;\n }\n\n Connect.prototype.getChildContext = function getChildContext() {\n var _ref2;\n\n // If this component received store from props, its subscription should be transparent\n // to any descendants receiving store+subscription from context; it passes along\n // subscription passed to it. Otherwise, it shadows the parent subscription, which allows\n // Connect to control ordering of notifications to flow top-down.\n var subscription = this.propsMode ? null : this.subscription;\n return _ref2 = {}, _ref2[subscriptionKey] = subscription || this.context[subscriptionKey], _ref2;\n };\n\n Connect.prototype.componentDidMount = function componentDidMount() {\n if (!shouldHandleStateChanges) return;\n\n // componentWillMount fires during server side rendering, but componentDidMount and\n // componentWillUnmount do not. Because of this, trySubscribe happens during ...didMount.\n // Otherwise, unsubscription would never take place during SSR, causing a memory leak.\n // To handle the case where a child component may have triggered a state change by\n // dispatching an action in its componentWillMount, we have to re-run the select and maybe\n // re-render.\n this.subscription.trySubscribe();\n this.selector.run(this.props);\n if (this.selector.shouldComponentUpdate) this.forceUpdate();\n };\n\n Connect.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n this.selector.run(nextProps);\n };\n\n Connect.prototype.shouldComponentUpdate = function shouldComponentUpdate() {\n return this.selector.shouldComponentUpdate;\n };\n\n Connect.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.subscription) this.subscription.tryUnsubscribe();\n this.subscription = null;\n this.notifyNestedSubs = noop;\n this.store = null;\n this.selector.run = noop;\n this.selector.shouldComponentUpdate = false;\n };\n\n Connect.prototype.getWrappedInstance = function getWrappedInstance() {\n (0, _invariant2.default)(withRef, 'To access the wrapped instance, you need to specify ' + ('{ withRef: true } in the options argument of the ' + methodName + '() call.'));\n return this.wrappedInstance;\n };\n\n Connect.prototype.setWrappedInstance = function setWrappedInstance(ref) {\n this.wrappedInstance = ref;\n };\n\n Connect.prototype.initSelector = function initSelector() {\n var sourceSelector = selectorFactory(this.store.dispatch, selectorFactoryOptions);\n this.selector = makeSelectorStateful(sourceSelector, this.store);\n this.selector.run(this.props);\n };\n\n Connect.prototype.initSubscription = function initSubscription() {\n if (!shouldHandleStateChanges) return;\n\n // parentSub's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var parentSub = (this.propsMode ? this.props : this.context)[subscriptionKey];\n this.subscription = new _Subscription2.default(this.store, parentSub, this.onStateChange.bind(this));\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `this.subscription` will then be null. An\n // extra null check every change can be avoided by copying the method onto `this` and then\n // replacing it with a no-op on unmount. This can probably be avoided if Subscription's\n // listeners logic is changed to not call listeners that have been unsubscribed in the\n // middle of the notification loop.\n this.notifyNestedSubs = this.subscription.notifyNestedSubs.bind(this.subscription);\n };\n\n Connect.prototype.onStateChange = function onStateChange() {\n this.selector.run(this.props);\n\n if (!this.selector.shouldComponentUpdate) {\n this.notifyNestedSubs();\n } else {\n this.componentDidUpdate = this.notifyNestedSubsOnComponentDidUpdate;\n this.setState(dummyState);\n }\n };\n\n Connect.prototype.notifyNestedSubsOnComponentDidUpdate = function notifyNestedSubsOnComponentDidUpdate() {\n // `componentDidUpdate` is conditionally implemented when `onStateChange` determines it\n // needs to notify nested subs. Once called, it unimplements itself until further state\n // changes occur. Doing it this way vs having a permanent `componentDidMount` that does\n // a boolean check every time avoids an extra method call most of the time, resulting\n // in some perf boost.\n this.componentDidUpdate = undefined;\n this.notifyNestedSubs();\n };\n\n Connect.prototype.isSubscribed = function isSubscribed() {\n return Boolean(this.subscription) && this.subscription.isSubscribed();\n };\n\n Connect.prototype.addExtraProps = function addExtraProps(props) {\n if (!withRef && !renderCountProp && !(this.propsMode && this.subscription)) return props;\n // make a shallow copy so that fields added don't leak to the original selector.\n // this is especially important for 'ref' since that's a reference back to the component\n // instance. a singleton memoized selector would then be holding a reference to the\n // instance, preventing the instance from being garbage collected, and that would be bad\n var withExtras = _extends({}, props);\n if (withRef) withExtras.ref = this.setWrappedInstance;\n if (renderCountProp) withExtras[renderCountProp] = this.renderCount++;\n if (this.propsMode && this.subscription) withExtras[subscriptionKey] = this.subscription;\n return withExtras;\n };\n\n Connect.prototype.render = function render() {\n var selector = this.selector;\n selector.shouldComponentUpdate = false;\n\n if (selector.error) {\n throw selector.error;\n } else {\n return (0, _react.createElement)(WrappedComponent, this.addExtraProps(selector.props));\n }\n };\n\n return Connect;\n }(_react.Component);\n\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n Connect.childContextTypes = childContextTypes;\n Connect.contextTypes = contextTypes;\n Connect.propTypes = contextTypes;\n\n if (process.env.NODE_ENV !== 'production') {\n Connect.prototype.componentWillUpdate = function componentWillUpdate() {\n // We are hot reloading!\n if (this.version !== version) {\n this.version = version;\n this.initSelector();\n\n if (this.subscription) this.subscription.tryUnsubscribe();\n this.initSubscription();\n if (shouldHandleStateChanges) this.subscription.trySubscribe();\n }\n };\n }\n\n return (0, _hoistNonReactStatics2.default)(Connect, WrappedComponent);\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/components/connectAdvanced.js\n// module id = 38\n// module chunks = 0","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n'use strict';\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n arguments: true,\n arity: true\n};\n\nvar isGetOwnPropertySymbolsAvailable = typeof Object.getOwnPropertySymbols === 'function';\n\nmodule.exports = function hoistNonReactStatics(targetComponent, sourceComponent, customStatics) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n var keys = Object.getOwnPropertyNames(sourceComponent);\n\n /* istanbul ignore else */\n if (isGetOwnPropertySymbolsAvailable) {\n keys = keys.concat(Object.getOwnPropertySymbols(sourceComponent));\n }\n\n for (var i = 0; i < keys.length; ++i) {\n if (!REACT_STATICS[keys[i]] && !KNOWN_STATICS[keys[i]] && (!customStatics || !customStatics[keys[i]])) {\n try {\n targetComponent[keys[i]] = sourceComponent[keys[i]];\n } catch (error) {\n\n }\n }\n }\n }\n\n return targetComponent;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/hoist-non-react-statics/index.js\n// module id = 39\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar CLEARED = null;\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n // the current/next pattern is copied from redux's createStore code.\n // TODO: refactor+expose that code to be reusable here?\n var current = [];\n var next = [];\n\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) next = current.slice();\n next.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed || current === CLEARED) return;\n isSubscribed = false;\n\n if (next === current) next = current.slice();\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n}\n\nvar Subscription = function () {\n function Subscription(store, parentSub, onStateChange) {\n _classCallCheck(this, Subscription);\n\n this.store = store;\n this.parentSub = parentSub;\n this.onStateChange = onStateChange;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n }\n\n Subscription.prototype.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n Subscription.prototype.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n Subscription.prototype.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n Subscription.prototype.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.onStateChange) : this.store.subscribe(this.onStateChange);\n\n this.listeners = createListenerCollection();\n }\n };\n\n Subscription.prototype.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexports.default = Subscription;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/Subscription.js\n// module id = 40\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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.createConnect = createConnect;\n\nvar _connectAdvanced = require('../components/connectAdvanced');\n\nvar _connectAdvanced2 = _interopRequireDefault(_connectAdvanced);\n\nvar _shallowEqual = require('../utils/shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _mapDispatchToProps = require('./mapDispatchToProps');\n\nvar _mapDispatchToProps2 = _interopRequireDefault(_mapDispatchToProps);\n\nvar _mapStateToProps = require('./mapStateToProps');\n\nvar _mapStateToProps2 = _interopRequireDefault(_mapStateToProps);\n\nvar _mergeProps = require('./mergeProps');\n\nvar _mergeProps2 = _interopRequireDefault(_mergeProps);\n\nvar _selectorFactory = require('./selectorFactory');\n\nvar _selectorFactory2 = _interopRequireDefault(_selectorFactory);\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\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error('Invalid value of type ' + typeof arg + ' for ' + name + ' argument when connecting component ' + options.wrappedComponentName + '.');\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n\n// createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\nfunction createConnect() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === undefined ? _connectAdvanced2.default : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === undefined ? _mapStateToProps2.default : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === undefined ? _mapDispatchToProps2.default : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === undefined ? _mergeProps2.default : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === undefined ? _selectorFactory2.default : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps) {\n var _ref2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {},\n _ref2$pure = _ref2.pure,\n pure = _ref2$pure === undefined ? true : _ref2$pure,\n _ref2$areStatesEqual = _ref2.areStatesEqual,\n areStatesEqual = _ref2$areStatesEqual === undefined ? strictEqual : _ref2$areStatesEqual,\n _ref2$areOwnPropsEqua = _ref2.areOwnPropsEqual,\n areOwnPropsEqual = _ref2$areOwnPropsEqua === undefined ? _shallowEqual2.default : _ref2$areOwnPropsEqua,\n _ref2$areStatePropsEq = _ref2.areStatePropsEqual,\n areStatePropsEqual = _ref2$areStatePropsEq === undefined ? _shallowEqual2.default : _ref2$areStatePropsEq,\n _ref2$areMergedPropsE = _ref2.areMergedPropsEqual,\n areMergedPropsEqual = _ref2$areMergedPropsE === undefined ? _shallowEqual2.default : _ref2$areMergedPropsE,\n extraOptions = _objectWithoutProperties(_ref2, ['pure', 'areStatesEqual', 'areOwnPropsEqual', 'areStatePropsEqual', 'areMergedPropsEqual']);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return 'Connect(' + name + ')';\n },\n\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n\n }, extraOptions));\n };\n}\n\nexports.default = createConnect();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/connect.js\n// module id = 41\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = shallowEqual;\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/shallowEqual.js\n// module id = 42\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.whenMapDispatchToPropsIsFunction = whenMapDispatchToPropsIsFunction;\nexports.whenMapDispatchToPropsIsMissing = whenMapDispatchToPropsIsMissing;\nexports.whenMapDispatchToPropsIsObject = whenMapDispatchToPropsIsObject;\n\nvar _redux = require('redux');\n\nvar _wrapMapToProps = require('./wrapMapToProps');\n\nfunction whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\n\nfunction whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) {\n return { dispatch: dispatch };\n }) : undefined;\n}\n\nfunction whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) {\n return (0, _redux.bindActionCreators)(mapDispatchToProps, dispatch);\n }) : undefined;\n}\n\nexports.default = [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/mapDispatchToProps.js\n// module id = 43\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.compose = exports.applyMiddleware = exports.bindActionCreators = exports.combineReducers = exports.createStore = undefined;\n\nvar _createStore = require('./createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _combineReducers = require('./combineReducers');\n\nvar _combineReducers2 = _interopRequireDefault(_combineReducers);\n\nvar _bindActionCreators = require('./bindActionCreators');\n\nvar _bindActionCreators2 = _interopRequireDefault(_bindActionCreators);\n\nvar _applyMiddleware = require('./applyMiddleware');\n\nvar _applyMiddleware2 = _interopRequireDefault(_applyMiddleware);\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/*\n* This is a dummy function to check if the function name has been altered by minification.\n* If the function has been minified and NODE_ENV !== 'production', warn the user.\n*/\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n (0, _warning2['default'])('You are currently using minified code outside of NODE_ENV === \\'production\\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.createStore = _createStore2['default'];\nexports.combineReducers = _combineReducers2['default'];\nexports.bindActionCreators = _bindActionCreators2['default'];\nexports.applyMiddleware = _applyMiddleware2['default'];\nexports.compose = _compose2['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/index.js\n// module id = 44\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n};\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} enhancer The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/zenparsing/es-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/createStore.js\n// module id = 45\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/isPlainObject.js\n// module id = 46\n// module chunks = 0","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_baseGetTag.js\n// module id = 47\n// module chunks = 0","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_Symbol.js\n// module id = 48\n// module chunks = 0","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_root.js\n// module id = 49\n// module chunks = 0","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_freeGlobal.js\n// module id = 50\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_getRawTag.js\n// module id = 51\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_objectToString.js\n// module id = 52\n// module chunks = 0","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_getPrototype.js\n// module id = 53\n// module chunks = 0","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/_overArg.js\n// module id = 54\n// module chunks = 0","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/lodash/isObjectLike.js\n// module id = 55\n// module chunks = 0","module.exports = require('./lib/index');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/index.js\n// module id = 56\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ponyfill = require('./ponyfill');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root; /* global window */\n\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/lib/index.js\n// module id = 57\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/webpack/buildin/module.js\n// module id = 58\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/symbol-observable/lib/ponyfill.js\n// module id = 59\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = combineReducers;\n\nvar _createStore = require('./createStore');\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === _createStore.ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!(0, _isPlainObject2['default'])(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerSanity(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: _createStore.ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + _createStore.ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n (0, _warning2['default'])('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n if (process.env.NODE_ENV !== 'production') {\n var unexpectedKeyCache = {};\n }\n\n var sanityError;\n try {\n assertReducerSanity(finalReducers);\n } catch (e) {\n sanityError = e;\n }\n\n return function combination() {\n var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var action = arguments[1];\n\n if (sanityError) {\n throw sanityError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n (0, _warning2['default'])(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var i = 0; i < finalReducerKeys.length; i++) {\n var key = finalReducerKeys[i];\n var reducer = finalReducers[key];\n var previousStateForKey = state[key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(key, action);\n throw new Error(errorMessage);\n }\n nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/combineReducers.js\n// module id = 60\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = warning;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/utils/warning.js\n// module id = 61\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = bindActionCreators;\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/bindActionCreators.js\n// module id = 62\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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['default'] = applyMiddleware;\n\nvar _compose = require('./compose');\n\nvar _compose2 = _interopRequireDefault(_compose);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = _compose2['default'].apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/applyMiddleware.js\n// module id = 63\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = compose;\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nfunction compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n var last = funcs[funcs.length - 1];\n var rest = funcs.slice(0, -1);\n return function () {\n return rest.reduceRight(function (composed, f) {\n return f(composed);\n }, last.apply(undefined, arguments));\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/redux/lib/compose.js\n// module id = 64\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.wrapMapToPropsConstant = wrapMapToPropsConstant;\nexports.getDependsOnOwnProps = getDependsOnOwnProps;\nexports.wrapMapToPropsFunc = wrapMapToPropsFunc;\n\nvar _verifyPlainObject = require('../utils/verifyPlainObject');\n\nvar _verifyPlainObject2 = _interopRequireDefault(_verifyPlainObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n}\n\n// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n// \n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\nfunction getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n}\n\n// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n// \n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n// \n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n// \n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n// \nfunction wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n };\n\n // allow detectFactoryAndVerify to get ownProps\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject2.default)(props, displayName, methodName);\n\n return props;\n };\n\n return proxy;\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/wrapMapToProps.js\n// module id = 65\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = verifyPlainObject;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _warning = require('./warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction verifyPlainObject(value, displayName, methodName) {\n if (!(0, _isPlainObject2.default)(value)) {\n (0, _warning2.default)(methodName + '() in ' + displayName + ' must return a plain object. Instead received ' + value + '.');\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/utils/verifyPlainObject.js\n// module id = 66\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.whenMapStateToPropsIsFunction = whenMapStateToPropsIsFunction;\nexports.whenMapStateToPropsIsMissing = whenMapStateToPropsIsMissing;\n\nvar _wrapMapToProps = require('./wrapMapToProps');\n\nfunction whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapStateToProps, 'mapStateToProps') : undefined;\n}\n\nfunction whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function () {\n return {};\n }) : undefined;\n}\n\nexports.default = [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/mapStateToProps.js\n// module id = 67\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\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.defaultMergeProps = defaultMergeProps;\nexports.wrapMergePropsFunc = wrapMergePropsFunc;\nexports.whenMergePropsIsFunction = whenMergePropsIsFunction;\nexports.whenMergePropsIsOmitted = whenMergePropsIsOmitted;\n\nvar _verifyPlainObject = require('../utils/verifyPlainObject');\n\nvar _verifyPlainObject2 = _interopRequireDefault(_verifyPlainObject);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\n\nfunction wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n\n var hasRunOnce = false;\n var mergedProps = void 0;\n\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n\n if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject2.default)(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\n\nfunction whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\n\nfunction whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\n\nexports.default = [whenMergePropsIsFunction, whenMergePropsIsOmitted];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/mergeProps.js\n// module id = 68\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.impureFinalPropsSelectorFactory = impureFinalPropsSelectorFactory;\nexports.pureFinalPropsSelectorFactory = pureFinalPropsSelectorFactory;\nexports.default = finalPropsSelectorFactory;\n\nvar _verifySubselectors = require('./verifySubselectors');\n\nvar _verifySubselectors2 = _interopRequireDefault(_verifySubselectors);\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 impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\n\nfunction pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n\n var hasRunAtLeastOnce = false;\n var state = void 0;\n var ownProps = void 0;\n var stateProps = void 0;\n var dispatchProps = void 0;\n var mergedProps = void 0;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\n\n// TODO: Add more comments\n\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nfunction finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutProperties(_ref2, ['initMapStateToProps', 'initMapDispatchToProps', 'initMergeProps']);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _verifySubselectors2.default)(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/selectorFactory.js\n// module id = 69\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = verifySubselectors;\n\nvar _warning = require('../utils/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction verify(selector, methodName, displayName) {\n if (!selector) {\n throw new Error('Unexpected value for ' + methodName + ' in ' + displayName + '.');\n } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') {\n if (!selector.hasOwnProperty('dependsOnOwnProps')) {\n (0, _warning2.default)('The selector for ' + methodName + ' of ' + displayName + ' did not specify a value for dependsOnOwnProps.');\n }\n }\n}\n\nfunction verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) {\n verify(mapStateToProps, 'mapStateToProps', displayName);\n verify(mapDispatchToProps, 'mapDispatchToProps', displayName);\n verify(mergeProps, 'mergeProps', displayName);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ../~/react-redux/lib/connect/verifySubselectors.js\n// module id = 70\n// module chunks = 0","// @flow\nimport type { Href } from '../types';\nimport type { RouterContext } from './provider';\n\nimport React, { Component, PropTypes } from 'react';\n\nimport { push, replace } from '../actions';\nimport normalizeHref from '../util/normalize-href';\nimport stringifyHref from '../util/stringify-href';\n\ntype Props = {\n children: React.Element<*>,\n className: string,\n href: Href,\n persistQuery: bool,\n replaceState: bool,\n target: string,\n onClick: EventHandler,\n style: Object\n};\n\nconst LEFT_MOUSE_BUTTON = 0;\n\nconst isNotLeftClick = e =>\n e.button && e.button !== LEFT_MOUSE_BUTTON;\n\nconst hasModifier = e =>\n Boolean(e.shiftKey || e.altKey || e.metaKey || e.ctrlKey);\n\nconst shouldIgnoreClick = ({ e, target }) =>\n hasModifier(e) ||\n isNotLeftClick(e) ||\n e.defaultPrevented ||\n target; // let browser handle target=\"_blank\"\n\nconst handleClick = ({\n e,\n target,\n href,\n onClick,\n replaceState,\n persistQuery,\n store\n}) => {\n if (onClick) {\n onClick(e);\n }\n\n if (shouldIgnoreClick({ e, target })) {\n return;\n }\n\n e.preventDefault();\n\n const navigate = replaceState ? replace : push;\n store.dispatch(navigate(href, { persistQuery }));\n};\n\nconst Link = (\n props: Props,\n context: {\n router: RouterContext\n }\n) => {\n const {\n href: rawHref,\n children,\n onClick,\n target,\n replaceState,\n persistQuery,\n ...rest\n } = props;\n\n const { store } = context.router;\n const { router: { basename } } = store.getState();\n\n // Ensure the href has both a search and a query when needed\n const href = normalizeHref(rawHref);\n\n const clickHandler = e => handleClick({\n e,\n target,\n href,\n onClick,\n replaceState,\n persistQuery,\n store\n });\n\n return (\n \n {children}\n \n );\n};\n\nLink.contextTypes = {\n router: PropTypes.object\n};\n\nconst PersistentQueryLink = class extends Component {\n render() {\n const { children, ...rest } = this.props;\n return {children};\n }\n};\n\nPersistentQueryLink.propTypes = {\n children: PropTypes.node\n};\n\nPersistentQueryLink.contextTypes = {\n router: PropTypes.object\n};\n\nexport { Link, PersistentQueryLink };\n\n\n\n// WEBPACK FOOTER //\n// ./components/link.js","// @flow\nimport type { Href } from '../types';\n\nexport default (href: Href, basename: string) => {\n if (typeof href === 'string') {\n return `${basename || ''}${href}`;\n }\n\n const { pathname, search } = href;\n return `${basename || ''}${pathname}${search || ''}`;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/stringify-href.js","// @flow\nimport type { Location } from '../types';\n\nimport React, { Children, Component, PropTypes } from 'react';\nimport matchCache from '../util/match-cache';\nimport generateId from '../util/generate-id';\n\ntype Props = {\n location: Location,\n matchRoute: Function,\n forRoute?: string,\n withConditions?: (location: Location) => boolean,\n parentId?: string,\n children: React.Element<*>\n};\n\nconst relativePaths = (ComposedComponent: ReactClass<*>) => {\n class RelativeFragment extends Component {\n constructor() {\n super();\n this.id = generateId();\n }\n\n getChildContext() {\n const { parentRoute } = this.context;\n const { forRoute } = this.props;\n\n return {\n // Append the parent route if this isn't the first\n // RelativeFragment in the hierarchy.\n parentRoute: parentRoute &&\n parentRoute !== '/' &&\n parentRoute !== forRoute\n ? `${parentRoute}${forRoute || ''}`\n : forRoute,\n parentId: this.id\n };\n }\n\n props: Props;\n id: string;\n\n render() {\n const { children, forRoute, ...rest } = this.props;\n const { router, parentRoute, parentId } = this.context;\n const { store } = router;\n\n const location = store.getState().router;\n\n const routePrefix = parentRoute && parentRoute !== '/' ? parentRoute : '';\n\n return (\n \n );\n }\n }\n\n // Consumes this context...\n RelativeFragment.contextTypes = {\n router: PropTypes.object,\n parentRoute: PropTypes.string,\n parentId: PropTypes.string\n };\n\n // ...and provides this context.\n RelativeFragment.childContextTypes = {\n parentRoute: PropTypes.string,\n parentId: PropTypes.string\n };\n\n return RelativeFragment;\n};\n\nconst Fragment = (props: Props) => {\n const {\n location,\n matchRoute,\n forRoute,\n withConditions,\n children,\n parentId\n } = props;\n\n const matchResult = matchRoute(location.pathname, forRoute);\n\n if (\n !matchResult ||\n (withConditions && !withConditions(location)) ||\n (forRoute && matchResult.route !== forRoute)\n ) {\n return null;\n }\n\n if (parentId) {\n const previousMatch = matchCache.get(parentId);\n if (previousMatch && previousMatch !== forRoute) {\n return null;\n } else {\n matchCache.add(parentId, forRoute);\n }\n }\n\n return Children.only(children);\n};\n\nexport default relativePaths(Fragment);\n\n\n\n// WEBPACK FOOTER //\n// ./components/fragment.js","/**\n * Returns a psuedo-unique identifier used by fragments\n * to track match status within MatchCache.\n * @returns {String} id\n * @flow\n */\nexport default (): string => {\n const radix = 16;\n const length = 8;\n return (Math.random() * Date.now()).toString(radix).slice(0, length);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./util/generate-id.js"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 481e80d9..89ef8801 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "redux-little-router", - "version": "13.0.0-0", + "version": "13.0.0", "description": "A barebones routing solution for Redux applications.", "main": "lib/index.js", "scripts": {