text: (window["webpackJsonp"] = window["webpackJsonp"] || []).push([["static/development/pages/_app.js"],{
  
  /***/ "./node_modules/native-url/dist/index.js":
  /*!***********************************************!*\
    !*** ./node_modules/native-url/dist/index.js ***!
    \***********************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  var e,t=(e=__webpack_require__(/*! querystring */ "./node_modules/querystring-es3/index.js"))&&"object"==typeof e&&"default"in e?e.default:e,r=/https?|ftp|gopher|file/;function o(e){"string"==typeof e&&(e=g(e));var o=function(e,t,r){var o=e.auth,a=e.hostname,s=e.protocol||"",c=e.pathname||"",h=e.hash||"",p=e.query||"",n=!1;o=o?encodeURIComponent(o).replace(/%3A/i,":")+"@":"",e.host?n=o+e.host:a&&(n=o+(~a.indexOf(":")?"["+a+"]":a),e.port&&(n+=":"+e.port)),p&&"object"==typeof p&&(p=t.encode(p));var l=e.search||p&&"?"+p||"";return s&&":"!==s.substr(-1)&&(s+=":"),e.slashes||(!s||r.test(s))&&!1!==n?(n="//"+(n||""),c&&"/"!==c[0]&&(c="/"+c)):n||(n=""),h&&"#"!==h[0]&&(h="#"+h),l&&"?"!==l[0]&&(l="?"+l),{protocol:s,host:n,pathname:c=c.replace(/[?#]/g,encodeURIComponent),search:l=l.replace("#","%23"),hash:h}}(e,t,r);return""+o.protocol+o.host+o.pathname+o.search+o.hash}var a="http://",s="w.w",c=a+s,h=/^([a-z0-9.+-]*:\/\/\/)([a-z0-9.+-]:\/*)?/i,p=/https?|ftp|gopher|file/;function n(e,t){var r="string"==typeof e?g(e):e;e="object"==typeof e?o(e):e;var s=g(t),n="";r.protocol&&!r.slashes&&(n=r.protocol,e=e.replace(r.protocol,""),n+="/"===t[0]||"/"===e[0]?"/":""),n&&s.protocol&&(n="",s.slashes||(n=s.protocol,t=t.replace(s.protocol,"")));var l=e.match(h);l&&!s.protocol&&(e=e.substr((n=l[1]+(l[2]||"")).length),/^\/\/[^/]/.test(t)&&(n=n.slice(0,-1)));var i=new URL(e,c+"/"),f=new URL(t,i).toString().replace(c,""),u=s.protocol||r.protocol;return u+=r.slashes||s.slashes?"//":"",!n&&u?f=f.replace(a,u):n&&(f=f.replace(a,"")),p.test(f)||~t.indexOf(".")||"/"===e.slice(-1)||"/"===t.slice(-1)||"/"!==f.slice(-1)||(f=f.slice(0,-1)),n&&(f=n+("/"===f[0]?f.substr(1):f)),f}function l(){}l.parse=g,l.format=o,l.resolve=n,l.resolveObject=n;var i=/^https?|ftp|gopher|file/,f=/^(.*?)([#?].*)/,u=/^([a-z0-9.+-]*:)(\/{0,3})(.*)/i,m=/^([a-z0-9.+-]*:)?\/\/\/*/i,v=/^([a-z0-9.+-]*:)(\/{0,2})\[(.*)\]$/i;function d(e){try{return decodeURI(e)}catch(t){return e}}function g(e,r,a){if(void 0===r&&(r=!1),void 0===a&&(a=!1),e&&"object"==typeof e&&e instanceof l)return e;var h=(e=e.trim()).match(f);e=h?d(h[1]).replace(/\\/g,"/")+h[2]:d(e).replace(/\\/g,"/"),v.test(e)&&"/"!==e.slice(-1)&&(e+="/");var p=!/(^javascript)/.test(e)&&e.match(u),n=m.test(e),g="";p&&(i.test(p[1])||(g=p[1].toLowerCase(),e=""+p[2]+p[3]),p[2]||(n=!1,i.test(p[1])?(g=p[1],e=""+p[3]):e="//"+p[3]),3!==p[2].length&&1!==p[2].length||(g=p[1],e="/"+p[3]));var b,y=(h?h[1]:e).match(/(:[0-9]+)/),j="";y&&y[1]&&3===y[1].length&&(e=e.replace(j=y[1],j+"00"));var w=new l,x="",U="";try{b=new URL(e)}catch(t){x=t,g||a||!/^\/\//.test(e)||/^\/\/.+[@.]/.test(e)||(U="/",e=e.substr(1));try{b=new URL(e,c)}catch(e){return w.protocol=g,w.href=g,w}}w.slashes=n&&!U,w.host=b.host===s?"":b.host,w.hostname=b.hostname===s?"":b.hostname.replace(/(\[|\])/g,""),w.protocol=x?g||null:b.protocol,w.search=b.search.replace(/\\/g,"%5C"),w.hash=b.hash.replace(/\\/g,"%5C");var R=e.split("#");!w.search&&~R[0].indexOf("?")&&(w.search="?"),w.hash||""!==R[1]||(w.hash="#"),w.query=r?t.decode(b.search.substr(1)):w.search.substr(1),w.pathname=U+d(b.pathname).replace(/"/g,"%22"),"about:"===w.protocol&&"blank"===w.pathname&&(w.protocol="",w.pathname=""),x&&"/"!==e[0]&&(w.pathname=w.pathname.substr(1)),g&&!i.test(g)&&"/"!==e.slice(-1)&&"/"===w.pathname&&(w.pathname=""),w.path=w.pathname+w.search,w.auth=[b.username,b.password].map(decodeURIComponent).filter(Boolean).join(":"),w.port=b.port,j&&(w.host=w.host.replace(j+"00",j),w.port=w.port.slice(0,-2)),w.href=U?""+w.pathname+w.search+w.hash:o(w);var O=/^(file)/.test(w.href)?["host","hostname"]:[];return Object.keys(w).forEach(function(e){~O.indexOf(e)||(w[e]=w[e]||null)}),w}exports.parse=g,exports.format=o,exports.resolve=n,exports.resolveObject=function(e,t){return g(n(e,t))},exports.Url=l;
  //# sourceMappingURL=index.js.map
  
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!./":
  /*!*******************************************************************************************************************************************!*\
    !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app ***!
    \*******************************************************************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  
      (window.__NEXT_P=window.__NEXT_P||[]).push(["/_app", function() {
        var mod = __webpack_require__(/*! next/dist/pages/_app */ "./node_modules/next/dist/pages/_app.js")
        if(true) {
          module.hot.accept(/*! next/dist/pages/_app */ "./node_modules/next/dist/pages/_app.js", function() {
            if(!next.router.components["/_app"]) return
            var updatedPage = __webpack_require__(/*! next/dist/pages/_app */ "./node_modules/next/dist/pages/_app.js")
            next.router.update("/_app", updatedPage)
          })
        }
        return mod
      }]);
    
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/client/router.js":
  /*!*************************************************!*\
    !*** ./node_modules/next/dist/client/router.js ***!
    \*************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  var _construct = __webpack_require__(/*! @babel/runtime/helpers/construct */ "./node_modules/next/node_modules/@babel/runtime/helpers/construct.js");
  
  function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
  
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
  
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
  
  var _interopRequireWildcard = __webpack_require__(/*! @babel/runtime/helpers/interopRequireWildcard */ "./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js");
  
  var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js");
  
  exports.__esModule = true;
  exports.useRouter = useRouter;
  exports.makePublicRouterInstance = makePublicRouterInstance;
  exports.createRouter = exports.withRouter = exports["default"] = void 0;
  
  var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js"));
  
  var _router2 = _interopRequireWildcard(__webpack_require__(/*! ../next-server/lib/router/router */ "./node_modules/next/dist/next-server/lib/router/router.js"));
  
  exports.Router = _router2["default"];
  exports.NextRouter = _router2.NextRouter;
  
  var _routerContext = __webpack_require__(/*! ../next-server/lib/router-context */ "./node_modules/next/dist/next-server/lib/router-context.js");
  
  var _withRouter = _interopRequireDefault(__webpack_require__(/*! ./with-router */ "./node_modules/next/dist/client/with-router.js"));
  
  exports.withRouter = _withRouter["default"];
  /* global window */
  
  var singletonRouter = {
    router: null,
    // holds the actual router instance
    readyCallbacks: [],
    ready: function ready(cb) {
      if (this.router) return cb();
  
      if (true) {
        this.readyCallbacks.push(cb);
      }
    }
  }; // Create public properties and methods of the router in the singletonRouter
  
  var urlPropertyFields = ['pathname', 'route', 'query', 'asPath', 'components', 'isFallback', 'basePath'];
  var routerEvents = ['routeChangeStart', 'beforeHistoryChange', 'routeChangeComplete', 'routeChangeError', 'hashChangeStart', 'hashChangeComplete'];
  var coreMethodFields = ['push', 'replace', 'reload', 'back', 'prefetch', 'beforePopState']; // Events is a static property on the router, the router doesn't have to be initialized to use it
  
  Object.defineProperty(singletonRouter, 'events', {
    get: function get() {
      return _router2["default"].events;
    }
  });
  urlPropertyFields.forEach(function (field) {
    // Here we need to use Object.defineProperty because, we need to return
    // the property assigned to the actual router
    // The value might get changed as we change routes and this is the
    // proper way to access it
    Object.defineProperty(singletonRouter, field, {
      get: function get() {
        var router = getRouter();
        return router[field];
      }
    });
  });
  coreMethodFields.forEach(function (field) {
    // We don't really know the types here, so we add them later instead
    ;
  
    singletonRouter[field] = function () {
      var router = getRouter();
      return router[field].apply(router, arguments);
    };
  });
  routerEvents.forEach(function (event) {
    singletonRouter.ready(function () {
      _router2["default"].events.on(event, function () {
        var eventField = "on" + event.charAt(0).toUpperCase() + event.substring(1);
        var _singletonRouter = singletonRouter;
  
        if (_singletonRouter[eventField]) {
          try {
            _singletonRouter[eventField].apply(_singletonRouter, arguments);
          } catch (err) {
            // tslint:disable-next-line:no-console
            console.error("Error when running the Router event: " + eventField); // tslint:disable-next-line:no-console
  
            console.error(err.message + "\n" + err.stack);
          }
        }
      });
    });
  });
  
  function getRouter() {
    if (!singletonRouter.router) {
      var message = 'No router instance found.\n' + 'You should only use "next/router" inside the client side of your app.\n';
      throw new Error(message);
    }
  
    return singletonRouter.router;
  } // Export the singletonRouter and this is the public API.
  
  
  var _default = singletonRouter; // Reexport the withRoute HOC
  
  exports["default"] = _default;
  
  function useRouter() {
    return _react["default"].useContext(_routerContext.RouterContext);
  } // INTERNAL APIS
  // -------------
  // (do not use following exports inside the app)
  // Create a router and assign it as the singleton instance.
  // This is used in client side when we are initilizing the app.
  // This should **not** use inside the server.
  
  
  var createRouter = function createRouter() {
    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
      args[_key] = arguments[_key];
    }
  
    singletonRouter.router = _construct(_router2["default"], args);
    singletonRouter.readyCallbacks.forEach(function (cb) {
      return cb();
    });
    singletonRouter.readyCallbacks = [];
    return singletonRouter.router;
  }; // This function is used to create the `withRouter` router instance
  
  
  exports.createRouter = createRouter;
  
  function makePublicRouterInstance(router) {
    var _router = router;
    var instance = {};
  
    var _iterator = _createForOfIteratorHelper(urlPropertyFields),
        _step;
  
    try {
      for (_iterator.s(); !(_step = _iterator.n()).done;) {
        var property = _step.value;
  
        if (typeof _router[property] === 'object') {
          instance[property] = Object.assign({}, _router[property]); // makes sure query is not stateful
  
          continue;
        }
  
        instance[property] = _router[property];
      } // Events is a static property on the router, the router doesn't have to be initialized to use it
  
    } catch (err) {
      _iterator.e(err);
    } finally {
      _iterator.f();
    }
  
    instance.events = _router2["default"].events;
    coreMethodFields.forEach(function (field) {
      instance[field] = function () {
        return _router[field].apply(_router, arguments);
      };
    });
    return instance;
  }
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/client/with-router.js":
  /*!******************************************************!*\
    !*** ./node_modules/next/dist/client/with-router.js ***!
    \******************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js");
  
  exports.__esModule = true;
  exports["default"] = withRouter;
  
  var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js"));
  
  var _router = __webpack_require__(/*! ./router */ "./node_modules/next/dist/client/router.js");
  
  function withRouter(ComposedComponent) {
    function WithRouterWrapper(props) {
      return _react["default"].createElement(ComposedComponent, Object.assign({
        router: (0, _router.useRouter)()
      }, props));
    }
  
    WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps // This is needed to allow checking for custom getInitialProps in _app
    ;
    WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;
  
    if (true) {
      var name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';
      WithRouterWrapper.displayName = "withRouter(" + name + ")";
    }
  
    return WithRouterWrapper;
  }
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/next-server/lib/mitt.js":
  /*!********************************************************!*\
    !*** ./node_modules/next/dist/next-server/lib/mitt.js ***!
    \********************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  /*
  MIT License
  
  Copyright (c) Jason Miller (https://jasonformat.com/)
  
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
  
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
  
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  function mitt() {
    var all = Object.create(null);
    return {
      on: function on(type, handler) {
        ;
        (all[type] || (all[type] = [])).push(handler);
      },
      off: function off(type, handler) {
        if (all[type]) {
          // tslint:disable-next-line:no-bitwise
          all[type].splice(all[type].indexOf(handler) >>> 0, 1);
        }
      },
      emit: function emit(type) {
        for (var _len = arguments.length, evts = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
          evts[_key - 1] = arguments[_key];
        }
  
        // eslint-disable-next-line array-callback-return
        ;
        (all[type] || []).slice().map(function (handler) {
          handler.apply(void 0, evts);
        });
      }
    };
  }
  
  exports["default"] = mitt;
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/next-server/lib/router-context.js":
  /*!******************************************************************!*\
    !*** ./node_modules/next/dist/next-server/lib/router-context.js ***!
    \******************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  var __importStar = this && this.__importStar || function (mod) {
    if (mod && mod.__esModule) return mod;
    var result = {};
    if (mod != null) for (var k in mod) {
      if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
    }
    result["default"] = mod;
    return result;
  };
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  var React = __importStar(__webpack_require__(/*! react */ "./node_modules/react/index.js"));
  
  exports.RouterContext = React.createContext(null);
  
  if (true) {
    exports.RouterContext.displayName = 'RouterContext';
  }
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/next-server/lib/router/router.js":
  /*!*****************************************************************!*\
    !*** ./node_modules/next/dist/next-server/lib/router/router.js ***!
    \*****************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  var _regeneratorRuntime = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/next/node_modules/@babel/runtime/regenerator/index.js");
  
  var _slicedToArray = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js");
  
  var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js");
  
  var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js");
  
  var __importDefault = this && this.__importDefault || function (mod) {
    return mod && mod.__esModule ? mod : {
      "default": mod
    };
  };
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  var url_1 = __webpack_require__(/*! url */ "./node_modules/native-url/dist/index.js");
  
  var mitt_1 = __importDefault(__webpack_require__(/*! ../mitt */ "./node_modules/next/dist/next-server/lib/mitt.js"));
  
  var utils_1 = __webpack_require__(/*! ../utils */ "./node_modules/next/dist/next-server/lib/utils.js");
  
  var is_dynamic_1 = __webpack_require__(/*! ./utils/is-dynamic */ "./node_modules/next/dist/next-server/lib/router/utils/is-dynamic.js");
  
  var route_matcher_1 = __webpack_require__(/*! ./utils/route-matcher */ "./node_modules/next/dist/next-server/lib/router/utils/route-matcher.js");
  
  var route_regex_1 = __webpack_require__(/*! ./utils/route-regex */ "./node_modules/next/dist/next-server/lib/router/utils/route-regex.js");
  
  var basePath =  false || '';
  
  function addBasePath(path) {
    return path.indexOf(basePath) !== 0 ? basePath + path : path;
  }
  
  exports.addBasePath = addBasePath;
  
  function delBasePath(path) {
    return path.indexOf(basePath) === 0 ? path.substr(basePath.length) || '/' : path;
  }
  
  function toRoute(path) {
    return path.replace(/\/$/, '') || '/';
  }
  
  var prepareRoute = function prepareRoute(path) {
    return toRoute(!path || path === '/' ? '/index' : path);
  };
  
  function fetchNextData(pathname, query, isServerRender, cb) {
    var attempts = isServerRender ? 3 : 1;
  
    function getResponse() {
      return fetch(utils_1.formatWithValidation({
        // @ts-ignore __NEXT_DATA__
        pathname: "/_next/data/".concat(__NEXT_DATA__.buildId).concat(pathname, ".json"),
        query: query
      }), {
        // Cookies are required to be present for Next.js' SSG "Preview Mode".
        // Cookies may also be required for `getServerSideProps`.
        //
        // > `fetch` won’t send cookies, unless you set the credentials init
        // > option.
        // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
        //
        // > For maximum browser compatibility when it comes to sending &
        // > receiving cookies, always supply the `credentials: 'same-origin'`
        // > option instead of relying on the default.
        // https://github.com/github/fetch#caveats
        credentials: 'same-origin'
      }).then(function (res) {
        if (!res.ok) {
          if (--attempts > 0 && res.status >= 500) {
            return getResponse();
          }
  
          throw new Error("Failed to load static props");
        }
  
        return res.json();
      });
    }
  
    return getResponse().then(function (data) {
      return cb ? cb(data) : data;
    })["catch"](function (err) {
      // We should only trigger a server-side transition if this was caused
      // on a client-side transition. Otherwise, we'd get into an infinite
      // loop.
      if (!isServerRender) {
        ;
        err.code = 'PAGE_LOAD_ERROR';
      }
  
      throw err;
    });
  }
  
  var Router = /*#__PURE__*/function () {
    function Router(pathname, query, as, _ref) {
      var _this = this;
  
      var initialProps = _ref.initialProps,
          pageLoader = _ref.pageLoader,
          App = _ref.App,
          wrapApp = _ref.wrapApp,
          Component = _ref.Component,
          err = _ref.err,
          subscription = _ref.subscription,
          isFallback = _ref.isFallback;
  
      _classCallCheck(this, Router);
  
      // Static Data Cache
      this.sdc = {};
  
      this.onPopState = function (e) {
        if (!e.state) {
          // We get state as undefined for two reasons.
          //  1. With older safari (< 8) and older chrome (< 34)
          //  2. When the URL changed with #
          //
          // In the both cases, we don't need to proceed and change the route.
          // (as it's already changed)
          // But we can simply replace the state with the new changes.
          // Actually, for (1) we don't need to nothing. But it's hard to detect that event.
          // So, doing the following for (1) does no harm.
          var _pathname = _this.pathname,
              _query = _this.query;
  
          _this.changeState('replaceState', utils_1.formatWithValidation({
            pathname: _pathname,
            query: _query
          }), utils_1.getURL());
  
          return;
        } // Make sure we don't re-render on initial load,
        // can be caused by navigating back from an external site
  
  
        if (e.state && _this.isSsr && e.state.as === _this.asPath && url_1.parse(e.state.url).pathname === _this.pathname) {
          return;
        } // If the downstream application returns falsy, return.
        // They will then be responsible for handling the event.
  
  
        if (_this._bps && !_this._bps(e.state)) {
          return;
        }
  
        var _e$state = e.state,
            url = _e$state.url,
            as = _e$state.as,
            options = _e$state.options;
  
        if (true) {
          if (typeof url === 'undefined' || typeof as === 'undefined') {
            console.warn('`popstate` event triggered but `event.state` did not have `url` or `as` https://err.sh/zeit/next.js/popstate-state-empty');
          }
        }
  
        _this.replace(url, as, options);
      };
  
      this._getStaticData = function (asPath) {
        var pathname = prepareRoute(url_1.parse(asPath).pathname);
        return  false ? undefined : fetchNextData(pathname, null, _this.isSsr, function (data) {
          return _this.sdc[pathname] = data;
        });
      };
  
      this._getServerData = function (asPath) {
        var _url_1$parse = url_1.parse(asPath, true),
            pathname = _url_1$parse.pathname,
            query = _url_1$parse.query;
  
        pathname = prepareRoute(pathname);
        return fetchNextData(pathname, query, _this.isSsr);
      }; // represents the current component key
  
  
      this.route = toRoute(pathname); // set up the component cache (by route keys)
  
      this.components = {}; // We should not keep the cache, if there's an error
      // Otherwise, this cause issues when when going back and
      // come again to the errored page.
  
      if (pathname !== '/_error') {
        this.components[this.route] = {
          Component: Component,
          props: initialProps,
          err: err,
          __N_SSG: initialProps && initialProps.__N_SSG,
          __N_SSP: initialProps && initialProps.__N_SSP
        };
      }
  
      this.components['/_app'] = {
        Component: App
      }; // Backwards compat for Router.router.events
      // TODO: Should be remove the following major version as it was never documented
  
      this.events = Router.events;
      this.pageLoader = pageLoader;
      this.pathname = pathname;
      this.query = query; // if auto prerendered and dynamic route wait to update asPath
      // until after mount to prevent hydration mismatch
  
      this.asPath = // @ts-ignore this is temporarily global (attached to window)
      is_dynamic_1.isDynamicRoute(pathname) && __NEXT_DATA__.autoExport ? pathname : as;
      this.basePath = basePath;
      this.sub = subscription;
      this.clc = null;
      this._wrapApp = wrapApp; // make sure to ignore extra popState in safari on navigating
      // back from external site
  
      this.isSsr = true;
      this.isFallback = isFallback;
  
      if (true) {
        // in order for `e.state` to work on the `onpopstate` event
        // we have to register the initial route upon initialization
        this.changeState('replaceState', utils_1.formatWithValidation({
          pathname: pathname,
          query: query
        }), as);
        window.addEventListener('popstate', this.onPopState);
      }
    } // @deprecated backwards compatibility even though it's a private method.
  
  
    _createClass(Router, [{
      key: "update",
      value: function update(route, mod) {
        var Component = mod["default"] || mod;
        var data = this.components[route];
  
        if (!data) {
          throw new Error("Cannot update unavailable route: ".concat(route));
        }
  
        var newData = Object.assign(Object.assign({}, data), {
          Component: Component,
          __N_SSG: mod.__N_SSG,
          __N_SSP: mod.__N_SSP
        });
        this.components[route] = newData; // pages/_app.js updated
  
        if (route === '/_app') {
          this.notify(this.components[this.route]);
          return;
        }
  
        if (route === this.route) {
          this.notify(newData);
        }
      }
    }, {
      key: "reload",
      value: function reload() {
        window.location.reload();
      }
      /**
       * Go back in history
       */
  
    }, {
      key: "back",
      value: function back() {
        window.history.back();
      }
      /**
       * Performs a `pushState` with arguments
       * @param url of the route
       * @param as masks `url` for the browser
       * @param options object you can define `shallow` and other options
       */
  
    }, {
      key: "push",
      value: function push(url) {
        var as = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : url;
        var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
        return this.change('pushState', url, as, options);
      }
      /**
       * Performs a `replaceState` with arguments
       * @param url of the route
       * @param as masks `url` for the browser
       * @param options object you can define `shallow` and other options
       */
  
    }, {
      key: "replace",
      value: function replace(url) {
        var as = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : url;
        var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
        return this.change('replaceState', url, as, options);
      }
    }, {
      key: "change",
      value: function change(method, _url, _as, options) {
        var _this2 = this;
  
        return new Promise(function (resolve, reject) {
          if (!options._h) {
            _this2.isSsr = false;
          } // marking route changes as a navigation start entry
  
  
          if (utils_1.ST) {
            performance.mark('routeChange');
          } // If url and as provided as an object representation,
          // we'll format them into the string version here.
  
  
          var url = typeof _url === 'object' ? utils_1.formatWithValidation(_url) : _url;
          var as = typeof _as === 'object' ? utils_1.formatWithValidation(_as) : _as;
          url = addBasePath(url);
          as = addBasePath(as); // Add the ending slash to the paths. So, we can serve the
          // "<page>/index.html" directly for the SSR page.
  
          if (false) { var rewriteUrlForNextExport; }
  
          _this2.abortComponentLoad(as); // If the url change is only related to a hash change
          // We should not proceed. We should only change the state.
          // WARNING: `_h` is an internal option for handing Next.js client-side
          // hydration. Your app should _never_ use this property. It may change at
          // any time without notice.
  
  
          if (!options._h && _this2.onlyAHashChange(as)) {
            _this2.asPath = as;
            Router.events.emit('hashChangeStart', as);
  
            _this2.changeState(method, url, as, options);
  
            _this2.scrollToHash(as);
  
            Router.events.emit('hashChangeComplete', as);
            return resolve(true);
          }
  
          var _url_1$parse2 = url_1.parse(url, true),
              pathname = _url_1$parse2.pathname,
              query = _url_1$parse2.query,
              protocol = _url_1$parse2.protocol;
  
          if (!pathname || protocol) {
            if (true) {
              throw new Error("Invalid href passed to router: ".concat(url, " https://err.sh/zeit/next.js/invalid-href-passed"));
            }
  
            return resolve(false);
          } // If asked to change the current URL we should reload the current page
          // (not location.reload() but reload getInitialProps and other Next.js stuffs)
          // We also need to set the method = replaceState always
          // as this should not go into the history (That's how browsers work)
          // We should compare the new asPath to the current asPath, not the url
  
  
          if (!_this2.urlIsNew(as)) {
            method = 'replaceState';
          }
  
          var route = toRoute(pathname);
          var _options$shallow = options.shallow,
              shallow = _options$shallow === void 0 ? false : _options$shallow;
  
          if (is_dynamic_1.isDynamicRoute(route)) {
            var _url_1$parse3 = url_1.parse(as),
                asPathname = _url_1$parse3.pathname;
  
            var routeRegex = route_regex_1.getRouteRegex(route);
            var routeMatch = route_matcher_1.getRouteMatcher(routeRegex)(asPathname);
  
            if (!routeMatch) {
              var missingParams = Object.keys(routeRegex.groups).filter(function (param) {
                return !query[param];
              });
  
              if (missingParams.length > 0) {
                if (true) {
                  console.warn("Mismatching `as` and `href` failed to manually provide " + "the params: ".concat(missingParams.join(', '), " in the `href`'s `query`"));
                }
  
                return reject(new Error("The provided `as` value (".concat(asPathname, ") is incompatible with the `href` value (").concat(route, "). ") + "Read more: https://err.sh/zeit/next.js/incompatible-href-as"));
              }
            } else {
              // Merge params into `query`, overwriting any specified in search
              Object.assign(query, routeMatch);
            }
          }
  
          Router.events.emit('routeChangeStart', as); // If shallow is true and the route exists in the router cache we reuse the previous result
  
          _this2.getRouteInfo(route, pathname, query, as, shallow).then(function (routeInfo) {
            var error = routeInfo.error;
  
            if (error && error.cancelled) {
              return resolve(false);
            }
  
            Router.events.emit('beforeHistoryChange', as);
  
            _this2.changeState(method, url, as, options);
  
            if (true) {
              var appComp = _this2.components['/_app'].Component;
              window.next.isPrerendered = appComp.getInitialProps === appComp.origGetInitialProps && !routeInfo.Component.getInitialProps;
            }
  
            _this2.set(route, pathname, query, as, routeInfo);
  
            if (error) {
              Router.events.emit('routeChangeError', error, as);
              throw error;
            }
  
            Router.events.emit('routeChangeComplete', as);
            return resolve(true);
          }, reject);
        });
      }
    }, {
      key: "changeState",
      value: function changeState(method, url, as) {
        var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
  
        if (true) {
          if (typeof window.history === 'undefined') {
            console.error("Warning: window.history is not available.");
            return;
          }
  
          if (typeof window.history[method] === 'undefined') {
            console.error("Warning: window.history.".concat(method, " is not available"));
            return;
          }
        }
  
        if (method !== 'pushState' || utils_1.getURL() !== as) {
          window.history[method]({
            url: url,
            as: as,
            options: options
          }, // Most browsers currently ignores this parameter, although they may use it in the future.
          // Passing the empty string here should be safe against future changes to the method.
          // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState
          '', as);
        }
      }
    }, {
      key: "getRouteInfo",
      value: function getRouteInfo(route, pathname, query, as) {
        var _this3 = this;
  
        var shallow = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
        var cachedRouteInfo = this.components[route]; // If there is a shallow route transition possible
        // If the route is already rendered on the screen.
  
        if (shallow && cachedRouteInfo && this.route === route) {
          return Promise.resolve(cachedRouteInfo);
        }
  
        var handleError = function handleError(err, loadErrorFail) {
          return new Promise(function (resolve) {
            if (err.code === 'PAGE_LOAD_ERROR' || loadErrorFail) {
              // If we can't load the page it could be one of following reasons
              //  1. Page doesn't exists
              //  2. Page does exist in a different zone
              //  3. Internal error while loading the page
              // So, doing a hard reload is the proper way to deal with this.
              window.location.href = as; // Changing the URL doesn't block executing the current code path.
              // So, we need to mark it as a cancelled error and stop the routing logic.
  
              err.cancelled = true; // @ts-ignore TODO: fix the control flow here
  
              return resolve({
                error: err
              });
            }
  
            if (err.cancelled) {
              // @ts-ignore TODO: fix the control flow here
              return resolve({
                error: err
              });
            }
  
            resolve(_this3.fetchComponent('/_error').then(function (res) {
              var Component = res.page;
              var routeInfo = {
                Component: Component,
                err: err
              };
              return new Promise(function (resolve) {
                _this3.getInitialProps(Component, {
                  err: err,
                  pathname: pathname,
                  query: query
                }).then(function (props) {
                  routeInfo.props = props;
                  routeInfo.error = err;
                  resolve(routeInfo);
                }, function (gipErr) {
                  console.error('Error in error page `getInitialProps`: ', gipErr);
                  routeInfo.error = err;
                  routeInfo.props = {};
                  resolve(routeInfo);
                });
              });
            })["catch"](function (err) {
              return handleError(err, true);
            }));
          });
        };
  
        return new Promise(function (resolve, reject) {
          if (cachedRouteInfo) {
            return resolve(cachedRouteInfo);
          }
  
          _this3.fetchComponent(route).then(function (res) {
            return resolve({
              Component: res.page,
              __N_SSG: res.mod.__N_SSG,
              __N_SSP: res.mod.__N_SSP
            });
          }, reject);
        }).then(function (routeInfo) {
          var Component = routeInfo.Component,
              __N_SSG = routeInfo.__N_SSG,
              __N_SSP = routeInfo.__N_SSP;
  
          if (true) {
            var _require = __webpack_require__(/*! react-is */ "./node_modules/next/node_modules/react-is/index.js"),
                isValidElementType = _require.isValidElementType;
  
            if (!isValidElementType(Component)) {
              throw new Error("The default export is not a React Component in page: \"".concat(pathname, "\""));
            }
          }
  
          return _this3._getData(function () {
            return __N_SSG ? _this3._getStaticData(as) : __N_SSP ? _this3._getServerData(as) : _this3.getInitialProps(Component, // we provide AppTree later so this needs to be `any`
            {
              pathname: pathname,
              query: query,
              asPath: as
            });
          }).then(function (props) {
            routeInfo.props = props;
            _this3.components[route] = routeInfo;
            return routeInfo;
          });
        })["catch"](handleError);
      }
    }, {
      key: "set",
      value: function set(route, pathname, query, as, data) {
        this.isFallback = false;
        this.route = route;
        this.pathname = pathname;
        this.query = query;
        this.asPath = as;
        this.notify(data);
      }
      /**
       * Callback to execute before replacing router state
       * @param cb callback to be executed
       */
  
    }, {
      key: "beforePopState",
      value: function beforePopState(cb) {
        this._bps = cb;
      }
    }, {
      key: "onlyAHashChange",
      value: function onlyAHashChange(as) {
        if (!this.asPath) return false;
  
        var _this$asPath$split = this.asPath.split('#'),
            _this$asPath$split2 = _slicedToArray(_this$asPath$split, 2),
            oldUrlNoHash = _this$asPath$split2[0],
            oldHash = _this$asPath$split2[1];
  
        var _as$split = as.split('#'),
            _as$split2 = _slicedToArray(_as$split, 2),
            newUrlNoHash = _as$split2[0],
            newHash = _as$split2[1]; // Makes sure we scroll to the provided hash if the url/hash are the same
  
  
        if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {
          return true;
        } // If the urls are change, there's more than a hash change
  
  
        if (oldUrlNoHash !== newUrlNoHash) {
          return false;
        } // If the hash has changed, then it's a hash only change.
        // This check is necessary to handle both the enter and
        // leave hash === '' cases. The identity case falls through
        // and is treated as a next reload.
  
  
        return oldHash !== newHash;
      }
    }, {
      key: "scrollToHash",
      value: function scrollToHash(as) {
        var _as$split3 = as.split('#'),
            _as$split4 = _slicedToArray(_as$split3, 2),
            hash = _as$split4[1]; // Scroll to top if the hash is just `#` with no value
  
  
        if (hash === '') {
          window.scrollTo(0, 0);
          return;
        } // First we check if the element by id is found
  
  
        var idEl = document.getElementById(hash);
  
        if (idEl) {
          idEl.scrollIntoView();
          return;
        } // If there's no element with the id, we check the `name` property
        // To mirror browsers
  
  
        var nameEl = document.getElementsByName(hash)[0];
  
        if (nameEl) {
          nameEl.scrollIntoView();
        }
      }
    }, {
      key: "urlIsNew",
      value: function urlIsNew(asPath) {
        return this.asPath !== asPath;
      }
      /**
       * Prefetch page code, you may wait for the data during page rendering.
       * This feature only works in production!
       * @param url the href of prefetched page
       * @param asPath the as path of the prefetched page
       */
  
    }, {
      key: "prefetch",
      value: function prefetch(url) {
        var _this4 = this;
  
        var asPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : url;
        var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
        return new Promise(function (resolve, reject) {
          var _url_1$parse4 = url_1.parse(url),
              pathname = _url_1$parse4.pathname,
              protocol = _url_1$parse4.protocol;
  
          if (!pathname || protocol) {
            if (true) {
              throw new Error("Invalid href passed to router: ".concat(url, " https://err.sh/zeit/next.js/invalid-href-passed"));
            }
  
            return;
          } // Prefetch is not supported in development mode because it would trigger on-demand-entries
  
  
          if (true) {
            return;
          }
  
          var route = delBasePath(toRoute(pathname));
          Promise.all([_this4.pageLoader.prefetchData(url, delBasePath(asPath)), _this4.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)]).then(function () {
            return resolve();
          }, reject);
        });
      }
    }, {
      key: "fetchComponent",
      value: function fetchComponent(route) {
        var cancelled, cancel, componentResult, error;
        return _regeneratorRuntime.async(function fetchComponent$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                cancelled = false;
  
                cancel = this.clc = function () {
                  cancelled = true;
                };
  
                route = delBasePath(route);
                _context.next = 5;
                return _regeneratorRuntime.awrap(this.pageLoader.loadPage(route));
  
              case 5:
                componentResult = _context.sent;
  
                if (!cancelled) {
                  _context.next = 10;
                  break;
                }
  
                error = new Error("Abort fetching component for route: \"".concat(route, "\""));
                error.cancelled = true;
                throw error;
  
              case 10:
                if (cancel === this.clc) {
                  this.clc = null;
                }
  
                return _context.abrupt("return", componentResult);
  
              case 12:
              case "end":
                return _context.stop();
            }
          }
        }, null, this, null, Promise);
      }
    }, {
      key: "_getData",
      value: function _getData(fn) {
        var _this5 = this;
  
        var cancelled = false;
  
        var cancel = function cancel() {
          cancelled = true;
        };
  
        this.clc = cancel;
        return fn().then(function (data) {
          if (cancel === _this5.clc) {
            _this5.clc = null;
          }
  
          if (cancelled) {
            var err = new Error('Loading initial props cancelled');
            err.cancelled = true;
            throw err;
          }
  
          return data;
        });
      }
    }, {
      key: "getInitialProps",
      value: function getInitialProps(Component, ctx) {
        var App = this.components['/_app'].Component;
  
        var AppTree = this._wrapApp(App);
  
        ctx.AppTree = AppTree;
        return utils_1.loadGetInitialProps(App, {
          AppTree: AppTree,
          Component: Component,
          router: this,
          ctx: ctx
        });
      }
    }, {
      key: "abortComponentLoad",
      value: function abortComponentLoad(as) {
        if (this.clc) {
          var e = new Error('Route Cancelled');
          e.cancelled = true;
          Router.events.emit('routeChangeError', e, as);
          this.clc();
          this.clc = null;
        }
      }
    }, {
      key: "notify",
      value: function notify(data) {
        this.sub(data, this.components['/_app'].Component);
      }
    }], [{
      key: "_rewriteUrlForNextExport",
      value: function _rewriteUrlForNextExport(url) {
        if (false) { var rewriteUrlForNextExport; } else {
          return url;
        }
      }
    }]);
  
    return Router;
  }();
  
  exports["default"] = Router;
  Router.events = mitt_1["default"]();
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/next-server/lib/router/utils/is-dynamic.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/next/dist/next-server/lib/router/utils/is-dynamic.js ***!
    \***************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  }); // Identify /[param]/ in route string
  
  var TEST_ROUTE = /\/\[[^/]+?\](?=\/|$)/;
  
  function isDynamicRoute(route) {
    return TEST_ROUTE.test(route);
  }
  
  exports.isDynamicRoute = isDynamicRoute;
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/next-server/lib/router/utils/route-matcher.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/next/dist/next-server/lib/router/utils/route-matcher.js ***!
    \******************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  function getRouteMatcher(routeRegex) {
    var re = routeRegex.re,
        groups = routeRegex.groups;
    return function (pathname) {
      var routeMatch = re.exec(pathname);
  
      if (!routeMatch) {
        return false;
      }
  
      var decode = function decode(param) {
        try {
          return decodeURIComponent(param);
        } catch (_) {
          var err = new Error('failed to decode param');
          err.code = 'DECODE_FAILED';
          throw err;
        }
      };
  
      var params = {};
      Object.keys(groups).forEach(function (slugName) {
        var g = groups[slugName];
        var m = routeMatch[g.pos];
  
        if (m !== undefined) {
          params[slugName] = ~m.indexOf('/') ? m.split('/').map(function (entry) {
            return decode(entry);
          }) : g.repeat ? [decode(m)] : decode(m);
        }
      });
      return params;
    };
  }
  
  exports.getRouteMatcher = getRouteMatcher;
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/next-server/lib/router/utils/route-regex.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/next/dist/next-server/lib/router/utils/route-regex.js ***!
    \****************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  function getRouteRegex(normalizedRoute) {
    // Escape all characters that could be considered RegEx
    var escapedRoute = (normalizedRoute.replace(/\/$/, '') || '/').replace(/[|\\{}()[\]^$+*?.-]/g, '\\$&');
    var groups = {};
    var groupIndex = 1;
    var parameterizedRoute = escapedRoute.replace(/\/\\\[([^/]+?)\\\](?=\/|$)/g, function (_, $1) {
      var isCatchAll = /^(\\\.){3}/.test($1);
      groups[$1 // Un-escape key
      .replace(/\\([|\\{}()[\]^$+*?.-])/g, '$1').replace(/^\.{3}/, '') // eslint-disable-next-line no-sequences
      ] = {
        pos: groupIndex++,
        repeat: isCatchAll
      };
      return isCatchAll ? '/(.+?)' : '/([^/]+?)';
    });
    return {
      re: new RegExp('^' + parameterizedRoute + '(?:/)?$', 'i'),
      groups: groups
    };
  }
  
  exports.getRouteRegex = getRouteRegex;
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/next-server/lib/utils.js":
  /*!*********************************************************!*\
    !*** ./node_modules/next/dist/next-server/lib/utils.js ***!
    \*********************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  var _regeneratorRuntime = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/next/node_modules/@babel/runtime/regenerator/index.js");
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  var url_1 = __webpack_require__(/*! url */ "./node_modules/native-url/dist/index.js");
  /**
   * Utils
   */
  
  
  function execOnce(fn) {
    var used = false;
    var result;
    return function () {
      if (!used) {
        used = true;
        result = fn.apply(void 0, arguments);
      }
  
      return result;
    };
  }
  
  exports.execOnce = execOnce;
  
  function getLocationOrigin() {
    var _window$location = window.location,
        protocol = _window$location.protocol,
        hostname = _window$location.hostname,
        port = _window$location.port;
    return "".concat(protocol, "//").concat(hostname).concat(port ? ':' + port : '');
  }
  
  exports.getLocationOrigin = getLocationOrigin;
  
  function getURL() {
    var href = window.location.href;
    var origin = getLocationOrigin();
    return href.substring(origin.length);
  }
  
  exports.getURL = getURL;
  
  function getDisplayName(Component) {
    return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';
  }
  
  exports.getDisplayName = getDisplayName;
  
  function isResSent(res) {
    return res.finished || res.headersSent;
  }
  
  exports.isResSent = isResSent;
  
  function loadGetInitialProps(App, ctx) {
    var _a, message, res, props, _message;
  
    return _regeneratorRuntime.async(function loadGetInitialProps$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            if (false) {}
  
            if (!((_a = App.prototype) === null || _a === void 0 ? void 0 : _a.getInitialProps)) {
              _context.next = 4;
              break;
            }
  
            message = "\"".concat(getDisplayName(App), ".getInitialProps()\" is defined as an instance method - visit https://err.sh/zeit/next.js/get-initial-props-as-an-instance-method for more information.");
            throw new Error(message);
  
          case 4:
            // when called from _app `ctx` is nested in `ctx`
            res = ctx.res || ctx.ctx && ctx.ctx.res;
  
            if (App.getInitialProps) {
              _context.next = 12;
              break;
            }
  
            if (!(ctx.ctx && ctx.Component)) {
              _context.next = 11;
              break;
            }
  
            _context.next = 9;
            return _regeneratorRuntime.awrap(loadGetInitialProps(ctx.Component, ctx.ctx));
  
          case 9:
            _context.t0 = _context.sent;
            return _context.abrupt("return", {
              pageProps: _context.t0
            });
  
          case 11:
            return _context.abrupt("return", {});
  
          case 12:
            _context.next = 14;
            return _regeneratorRuntime.awrap(App.getInitialProps(ctx));
  
          case 14:
            props = _context.sent;
  
            if (!(res && isResSent(res))) {
              _context.next = 17;
              break;
            }
  
            return _context.abrupt("return", props);
  
          case 17:
            if (props) {
              _context.next = 20;
              break;
            }
  
            _message = "\"".concat(getDisplayName(App), ".getInitialProps()\" should resolve to an object. But found \"").concat(props, "\" instead.");
            throw new Error(_message);
  
          case 20:
            if (true) {
              if (Object.keys(props).length === 0 && !ctx.ctx) {
                console.warn("".concat(getDisplayName(App), " returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://err.sh/zeit/next.js/empty-object-getInitialProps"));
              }
            }
  
            return _context.abrupt("return", props);
  
          case 22:
          case "end":
            return _context.stop();
        }
      }
    }, null, null, null, Promise);
  }
  
  exports.loadGetInitialProps = loadGetInitialProps;
  exports.urlObjectKeys = ['auth', 'hash', 'host', 'hostname', 'href', 'path', 'pathname', 'port', 'protocol', 'query', 'search', 'slashes'];
  
  function formatWithValidation(url, options) {
    if (true) {
      if (url !== null && typeof url === 'object') {
        Object.keys(url).forEach(function (key) {
          if (exports.urlObjectKeys.indexOf(key) === -1) {
            console.warn("Unknown key passed via urlObject into url.format: ".concat(key));
          }
        });
      }
    }
  
    return url_1.format(url, options);
  }
  
  exports.formatWithValidation = formatWithValidation;
  exports.SP = typeof performance !== 'undefined';
  exports.ST = exports.SP && typeof performance.mark === 'function' && typeof performance.measure === 'function';
  
  /***/ }),
  
  /***/ "./node_modules/next/dist/pages/_app.js":
  /*!**********************************************!*\
    !*** ./node_modules/next/dist/pages/_app.js ***!
    \**********************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  var _classCallCheck = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js");
  
  var _createClass = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js");
  
  var _inherits = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/next/node_modules/@babel/runtime/helpers/inherits.js");
  
  var _possibleConstructorReturn = __webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ "./node_modules/next/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js");
  
  var _getPrototypeOf = __webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ "./node_modules/next/node_modules/@babel/runtime/helpers/getPrototypeOf.js");
  
  var _regeneratorRuntime = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/next/node_modules/@babel/runtime/regenerator/index.js");
  
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
  
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
  
  var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js");
  
  exports.__esModule = true;
  exports.Container = Container;
  exports.createUrl = createUrl;
  exports["default"] = void 0;
  
  var _react = _interopRequireDefault(__webpack_require__(/*! react */ "./node_modules/react/index.js"));
  
  var _utils = __webpack_require__(/*! ../next-server/lib/utils */ "./node_modules/next/dist/next-server/lib/utils.js");
  
  exports.AppInitialProps = _utils.AppInitialProps;
  /**
  * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.
  * This allows for keeping state between navigation, custom error handling, injecting additional data.
  */
  
  function appGetInitialProps(_ref) {
    var Component, ctx, pageProps;
    return _regeneratorRuntime.async(function appGetInitialProps$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            Component = _ref.Component, ctx = _ref.ctx;
            _context.next = 3;
            return _regeneratorRuntime.awrap((0, _utils.loadGetInitialProps)(Component, ctx));
  
          case 3:
            pageProps = _context.sent;
            return _context.abrupt("return", {
              pageProps: pageProps
            });
  
          case 5:
          case "end":
            return _context.stop();
        }
      }
    }, null, null, null, Promise);
  }
  
  var App = /*#__PURE__*/function (_react$default$Compon) {
    _inherits(App, _react$default$Compon);
  
    var _super = _createSuper(App);
  
    function App() {
      _classCallCheck(this, App);
  
      return _super.apply(this, arguments);
    }
  
    _createClass(App, [{
      key: "componentDidCatch",
      // Kept here for backwards compatibility.
      // When someone ended App they could call `super.componentDidCatch`.
      // @deprecated This method is no longer needed. Errors are caught at the top level
      value: function componentDidCatch(error, _errorInfo) {
        throw error;
      }
    }, {
      key: "render",
      value: function render() {
        var _this$props = this.props,
            router = _this$props.router,
            Component = _this$props.Component,
            pageProps = _this$props.pageProps,
            __N_SSG = _this$props.__N_SSG,
            __N_SSP = _this$props.__N_SSP;
        return _react["default"].createElement(Component, Object.assign({}, pageProps, // we don't add the legacy URL prop if it's using non-legacy
        // methods like getStaticProps and getServerSideProps
        !(__N_SSG || __N_SSP) ? {
          url: createUrl(router)
        } : {}));
      }
    }]);
  
    return App;
  }(_react["default"].Component);
  
  exports["default"] = App;
  App.origGetInitialProps = appGetInitialProps;
  App.getInitialProps = appGetInitialProps;
  var warnContainer;
  var warnUrl;
  
  if (true) {
    warnContainer = (0, _utils.execOnce)(function () {
      console.warn("Warning: the `Container` in `_app` has been deprecated and should be removed. https://err.sh/zeit/next.js/app-container-deprecated");
    });
    warnUrl = (0, _utils.execOnce)(function () {
      console.error("Warning: the 'url' property is deprecated. https://err.sh/zeit/next.js/url-deprecated");
    });
  } // @deprecated noop for now until removal
  
  
  function Container(p) {
    if (true) warnContainer();
    return p.children;
  }
  
  function createUrl(router) {
    // This is to make sure we don't references the router object at call time
    var pathname = router.pathname,
        asPath = router.asPath,
        query = router.query;
    return {
      get query() {
        if (true) warnUrl();
        return query;
      },
  
      get pathname() {
        if (true) warnUrl();
        return pathname;
      },
  
      get asPath() {
        if (true) warnUrl();
        return asPath;
      },
  
      back: function back() {
        if (true) warnUrl();
        router.back();
      },
      push: function push(url, as) {
        if (true) warnUrl();
        return router.push(url, as);
      },
      pushTo: function pushTo(href, as) {
        if (true) warnUrl();
        var pushRoute = as ? href : '';
        var pushUrl = as || href;
        return router.push(pushRoute, pushUrl);
      },
      replace: function replace(url, as) {
        if (true) warnUrl();
        return router.replace(url, as);
      },
      replaceTo: function replaceTo(href, as) {
        if (true) warnUrl();
        var replaceRoute = as ? href : '';
        var replaceUrl = as || href;
        return router.replace(replaceRoute, replaceUrl);
      }
    };
  }
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithHoles.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithHoles.js ***!
    \*********************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function _arrayWithHoles(arr) {
    if (Array.isArray(arr)) return arr;
  }
  
  module.exports = _arrayWithHoles;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/assertThisInitialized.js":
  /*!****************************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
    \****************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function _assertThisInitialized(self) {
    if (self === void 0) {
      throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
    }
  
    return self;
  }
  
  module.exports = _assertThisInitialized;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js ***!
    \*********************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function _classCallCheck(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError("Cannot call a class as a function");
    }
  }
  
  module.exports = _classCallCheck;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/construct.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/construct.js ***!
    \****************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf */ "./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js");
  
  function isNativeReflectConstruct() {
    if (typeof Reflect === "undefined" || !Reflect.construct) return false;
    if (Reflect.construct.sham) return false;
    if (typeof Proxy === "function") return true;
  
    try {
      Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
      return true;
    } catch (e) {
      return false;
    }
  }
  
  function _construct(Parent, args, Class) {
    if (isNativeReflectConstruct()) {
      module.exports = _construct = Reflect.construct;
    } else {
      module.exports = _construct = function _construct(Parent, args, Class) {
        var a = [null];
        a.push.apply(a, args);
        var Constructor = Function.bind.apply(Parent, a);
        var instance = new Constructor();
        if (Class) setPrototypeOf(instance, Class.prototype);
        return instance;
      };
    }
  
    return _construct.apply(null, arguments);
  }
  
  module.exports = _construct;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js":
  /*!******************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js ***!
    \******************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  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);
    }
  }
  
  function _createClass(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps);
    if (staticProps) _defineProperties(Constructor, staticProps);
    return Constructor;
  }
  
  module.exports = _createClass;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/getPrototypeOf.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
    \*********************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function _getPrototypeOf(o) {
    module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
      return o.__proto__ || Object.getPrototypeOf(o);
    };
    return _getPrototypeOf(o);
  }
  
  module.exports = _getPrototypeOf;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/inherits.js":
  /*!***************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/inherits.js ***!
    \***************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf */ "./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js");
  
  function _inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
      throw new TypeError("Super expression must either be null or a function");
    }
  
    subClass.prototype = Object.create(superClass && superClass.prototype, {
      constructor: {
        value: subClass,
        writable: true,
        configurable: true
      }
    });
    if (superClass) setPrototypeOf(subClass, superClass);
  }
  
  module.exports = _inherits;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js":
  /*!****************************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
    \****************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
      "default": obj
    };
  }
  
  module.exports = _interopRequireDefault;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js":
  /*!*****************************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js ***!
    \*****************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  var _typeof = __webpack_require__(/*! ../helpers/typeof */ "./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js");
  
  function _getRequireWildcardCache() {
    if (typeof WeakMap !== "function") return null;
    var cache = new WeakMap();
  
    _getRequireWildcardCache = function _getRequireWildcardCache() {
      return cache;
    };
  
    return cache;
  }
  
  function _interopRequireWildcard(obj) {
    if (obj && obj.__esModule) {
      return obj;
    }
  
    if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") {
      return {
        "default": obj
      };
    }
  
    var cache = _getRequireWildcardCache();
  
    if (cache && cache.has(obj)) {
      return cache.get(obj);
    }
  
    var newObj = {};
    var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
  
    for (var key in obj) {
      if (Object.prototype.hasOwnProperty.call(obj, key)) {
        var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
  
        if (desc && (desc.get || desc.set)) {
          Object.defineProperty(newObj, key, desc);
        } else {
          newObj[key] = obj[key];
        }
      }
    }
  
    newObj["default"] = obj;
  
    if (cache) {
      cache.set(obj, newObj);
    }
  
    return newObj;
  }
  
  module.exports = _interopRequireWildcard;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":
  /*!***************************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js ***!
    \***************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function _iterableToArrayLimit(arr, i) {
    if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
      return;
    }
  
    var _arr = [];
    var _n = true;
    var _d = false;
    var _e = undefined;
  
    try {
      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value);
  
        if (i && _arr.length === i) break;
      }
    } catch (err) {
      _d = true;
      _e = err;
    } finally {
      try {
        if (!_n && _i["return"] != null) _i["return"]();
      } finally {
        if (_d) throw _e;
      }
    }
  
    return _arr;
  }
  
  module.exports = _iterableToArrayLimit;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableRest.js":
  /*!**********************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableRest.js ***!
    \**********************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function _nonIterableRest() {
    throw new TypeError("Invalid attempt to destructure non-iterable instance");
  }
  
  module.exports = _nonIterableRest;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
  /*!********************************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
    \********************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  var _typeof = __webpack_require__(/*! ../helpers/typeof */ "./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js");
  
  var assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized */ "./node_modules/next/node_modules/@babel/runtime/helpers/assertThisInitialized.js");
  
  function _possibleConstructorReturn(self, call) {
    if (call && (_typeof(call) === "object" || typeof call === "function")) {
      return call;
    }
  
    return assertThisInitialized(self);
  }
  
  module.exports = _possibleConstructorReturn;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js":
  /*!*********************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
    \*********************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function _setPrototypeOf(o, p) {
    module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
      o.__proto__ = p;
      return o;
    };
  
    return _setPrototypeOf(o, p);
  }
  
  module.exports = _setPrototypeOf;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js":
  /*!********************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js ***!
    \********************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  var arrayWithHoles = __webpack_require__(/*! ./arrayWithHoles */ "./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithHoles.js");
  
  var iterableToArrayLimit = __webpack_require__(/*! ./iterableToArrayLimit */ "./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js");
  
  var nonIterableRest = __webpack_require__(/*! ./nonIterableRest */ "./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableRest.js");
  
  function _slicedToArray(arr, i) {
    return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();
  }
  
  module.exports = _slicedToArray;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js":
  /*!*************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js ***!
    \*************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
  
  function _typeof(obj) {
    if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") {
      module.exports = _typeof = function _typeof(obj) {
        return _typeof2(obj);
      };
    } else {
      module.exports = _typeof = function _typeof(obj) {
        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
      };
    }
  
    return _typeof(obj);
  }
  
  module.exports = _typeof;
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/@babel/runtime/regenerator/index.js":
  /*!****************************************************************************!*\
    !*** ./node_modules/next/node_modules/@babel/runtime/regenerator/index.js ***!
    \****************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  module.exports = __webpack_require__(/*! regenerator-runtime */ "./node_modules/regenerator-runtime/runtime.js");
  
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/react-is/cjs/react-is.development.js":
  /*!*****************************************************************************!*\
    !*** ./node_modules/next/node_modules/react-is/cjs/react-is.development.js ***!
    \*****************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  /** @license React v16.8.6
   * react-is.development.js
   *
   * Copyright (c) Facebook, Inc. and its affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */
  
  
  
  
  
  if (true) {
    (function() {
  'use strict';
  
  Object.defineProperty(exports, '__esModule', { value: true });
  
  // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
  // nor polyfill, then a plain number is used for performance.
  var hasSymbol = typeof Symbol === 'function' && Symbol.for;
  
  var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
  var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
  var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
  var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
  var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
  var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
  var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;
  var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
  var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
  var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
  var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
  var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
  var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
  
  function isValidElementType(type) {
    return typeof type === 'string' || typeof type === 'function' ||
    // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
    type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE);
  }
  
  /**
   * Forked from fbjs/warning:
   * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
   *
   * Only change is we use console.warn instead of console.error,
   * and do nothing when 'console' is not supported.
   * This really simplifies the code.
   * ---
   * 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 lowPriorityWarning = function () {};
  
  {
    var printWarning = function (format) {
      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        args[_key - 1] = arguments[_key];
      }
  
      var argIndex = 0;
      var message = 'Warning: ' + format.replace(/%s/g, function () {
        return args[argIndex++];
      });
      if (typeof console !== 'undefined') {
        console.warn(message);
      }
      try {
        // --- Welcome to debugging React ---
        // 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) {}
    };
  
    lowPriorityWarning = function (condition, format) {
      if (format === undefined) {
        throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');
      }
      if (!condition) {
        for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
          args[_key2 - 2] = arguments[_key2];
        }
  
        printWarning.apply(undefined, [format].concat(args));
      }
    };
  }
  
  var lowPriorityWarning$1 = lowPriorityWarning;
  
  function typeOf(object) {
    if (typeof object === 'object' && object !== null) {
      var $$typeof = object.$$typeof;
      switch ($$typeof) {
        case REACT_ELEMENT_TYPE:
          var type = object.type;
  
          switch (type) {
            case REACT_ASYNC_MODE_TYPE:
            case REACT_CONCURRENT_MODE_TYPE:
            case REACT_FRAGMENT_TYPE:
            case REACT_PROFILER_TYPE:
            case REACT_STRICT_MODE_TYPE:
            case REACT_SUSPENSE_TYPE:
              return type;
            default:
              var $$typeofType = type && type.$$typeof;
  
              switch ($$typeofType) {
                case REACT_CONTEXT_TYPE:
                case REACT_FORWARD_REF_TYPE:
                case REACT_PROVIDER_TYPE:
                  return $$typeofType;
                default:
                  return $$typeof;
              }
          }
        case REACT_LAZY_TYPE:
        case REACT_MEMO_TYPE:
        case REACT_PORTAL_TYPE:
          return $$typeof;
      }
    }
  
    return undefined;
  }
  
  // AsyncMode is deprecated along with isAsyncMode
  var AsyncMode = REACT_ASYNC_MODE_TYPE;
  var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
  var ContextConsumer = REACT_CONTEXT_TYPE;
  var ContextProvider = REACT_PROVIDER_TYPE;
  var Element = REACT_ELEMENT_TYPE;
  var ForwardRef = REACT_FORWARD_REF_TYPE;
  var Fragment = REACT_FRAGMENT_TYPE;
  var Lazy = REACT_LAZY_TYPE;
  var Memo = REACT_MEMO_TYPE;
  var Portal = REACT_PORTAL_TYPE;
  var Profiler = REACT_PROFILER_TYPE;
  var StrictMode = REACT_STRICT_MODE_TYPE;
  var Suspense = REACT_SUSPENSE_TYPE;
  
  var hasWarnedAboutDeprecatedIsAsyncMode = false;
  
  // AsyncMode should be deprecated
  function isAsyncMode(object) {
    {
      if (!hasWarnedAboutDeprecatedIsAsyncMode) {
        hasWarnedAboutDeprecatedIsAsyncMode = true;
        lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
      }
    }
    return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
  }
  function isConcurrentMode(object) {
    return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
  }
  function isContextConsumer(object) {
    return typeOf(object) === REACT_CONTEXT_TYPE;
  }
  function isContextProvider(object) {
    return typeOf(object) === REACT_PROVIDER_TYPE;
  }
  function isElement(object) {
    return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
  }
  function isForwardRef(object) {
    return typeOf(object) === REACT_FORWARD_REF_TYPE;
  }
  function isFragment(object) {
    return typeOf(object) === REACT_FRAGMENT_TYPE;
  }
  function isLazy(object) {
    return typeOf(object) === REACT_LAZY_TYPE;
  }
  function isMemo(object) {
    return typeOf(object) === REACT_MEMO_TYPE;
  }
  function isPortal(object) {
    return typeOf(object) === REACT_PORTAL_TYPE;
  }
  function isProfiler(object) {
    return typeOf(object) === REACT_PROFILER_TYPE;
  }
  function isStrictMode(object) {
    return typeOf(object) === REACT_STRICT_MODE_TYPE;
  }
  function isSuspense(object) {
    return typeOf(object) === REACT_SUSPENSE_TYPE;
  }
  
  exports.typeOf = typeOf;
  exports.AsyncMode = AsyncMode;
  exports.ConcurrentMode = ConcurrentMode;
  exports.ContextConsumer = ContextConsumer;
  exports.ContextProvider = ContextProvider;
  exports.Element = Element;
  exports.ForwardRef = ForwardRef;
  exports.Fragment = Fragment;
  exports.Lazy = Lazy;
  exports.Memo = Memo;
  exports.Portal = Portal;
  exports.Profiler = Profiler;
  exports.StrictMode = StrictMode;
  exports.Suspense = Suspense;
  exports.isValidElementType = isValidElementType;
  exports.isAsyncMode = isAsyncMode;
  exports.isConcurrentMode = isConcurrentMode;
  exports.isContextConsumer = isContextConsumer;
  exports.isContextProvider = isContextProvider;
  exports.isElement = isElement;
  exports.isForwardRef = isForwardRef;
  exports.isFragment = isFragment;
  exports.isLazy = isLazy;
  exports.isMemo = isMemo;
  exports.isPortal = isPortal;
  exports.isProfiler = isProfiler;
  exports.isStrictMode = isStrictMode;
  exports.isSuspense = isSuspense;
    })();
  }
  
  
  /***/ }),
  
  /***/ "./node_modules/next/node_modules/react-is/index.js":
  /*!**********************************************************!*\
    !*** ./node_modules/next/node_modules/react-is/index.js ***!
    \**********************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  if (false) {} else {
    module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "./node_modules/next/node_modules/react-is/cjs/react-is.development.js");
  }
  
  
  /***/ }),
  
  /***/ "./node_modules/querystring-es3/decode.js":
  /*!************************************************!*\
    !*** ./node_modules/querystring-es3/decode.js ***!
    \************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  // Copyright Joyent, Inc. and other Node contributors.
  //
  // Permission is hereby granted, free of charge, to any person obtaining a
  // copy of this software and associated documentation files (the
  // "Software"), to deal in the Software without restriction, including
  // without limitation the rights to use, copy, modify, merge, publish,
  // distribute, sublicense, and/or sell copies of the Software, and to permit
  // persons to whom the Software is furnished to do so, subject to the
  // following conditions:
  //
  // The above copyright notice and this permission notice shall be included
  // in all copies or substantial portions of the Software.
  //
  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
  
  
  
  // If obj.hasOwnProperty has been overridden, then calling
  // obj.hasOwnProperty(prop) will break.
  // See: https://github.com/joyent/node/issues/1707
  function hasOwnProperty(obj, prop) {
    return Object.prototype.hasOwnProperty.call(obj, prop);
  }
  
  module.exports = function(qs, sep, eq, options) {
    sep = sep || '&';
    eq = eq || '=';
    var obj = {};
  
    if (typeof qs !== 'string' || qs.length === 0) {
      return obj;
    }
  
    var regexp = /\+/g;
    qs = qs.split(sep);
  
    var maxKeys = 1000;
    if (options && typeof options.maxKeys === 'number') {
      maxKeys = options.maxKeys;
    }
  
    var len = qs.length;
    // maxKeys <= 0 means that we should not limit keys count
    if (maxKeys > 0 && len > maxKeys) {
      len = maxKeys;
    }
  
    for (var i = 0; i < len; ++i) {
      var x = qs[i].replace(regexp, '%20'),
          idx = x.indexOf(eq),
          kstr, vstr, k, v;
  
      if (idx >= 0) {
        kstr = x.substr(0, idx);
        vstr = x.substr(idx + 1);
      } else {
        kstr = x;
        vstr = '';
      }
  
      k = decodeURIComponent(kstr);
      v = decodeURIComponent(vstr);
  
      if (!hasOwnProperty(obj, k)) {
        obj[k] = v;
      } else if (isArray(obj[k])) {
        obj[k].push(v);
      } else {
        obj[k] = [obj[k], v];
      }
    }
  
    return obj;
  };
  
  var isArray = Array.isArray || function (xs) {
    return Object.prototype.toString.call(xs) === '[object Array]';
  };
  
  
  /***/ }),
  
  /***/ "./node_modules/querystring-es3/encode.js":
  /*!************************************************!*\
    !*** ./node_modules/querystring-es3/encode.js ***!
    \************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  // Copyright Joyent, Inc. and other Node contributors.
  //
  // Permission is hereby granted, free of charge, to any person obtaining a
  // copy of this software and associated documentation files (the
  // "Software"), to deal in the Software without restriction, including
  // without limitation the rights to use, copy, modify, merge, publish,
  // distribute, sublicense, and/or sell copies of the Software, and to permit
  // persons to whom the Software is furnished to do so, subject to the
  // following conditions:
  //
  // The above copyright notice and this permission notice shall be included
  // in all copies or substantial portions of the Software.
  //
  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
  // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
  // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
  // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
  
  
  
  var stringifyPrimitive = function(v) {
    switch (typeof v) {
      case 'string':
        return v;
  
      case 'boolean':
        return v ? 'true' : 'false';
  
      case 'number':
        return isFinite(v) ? v : '';
  
      default:
        return '';
    }
  };
  
  module.exports = function(obj, sep, eq, name) {
    sep = sep || '&';
    eq = eq || '=';
    if (obj === null) {
      obj = undefined;
    }
  
    if (typeof obj === 'object') {
      return map(objectKeys(obj), function(k) {
        var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
        if (isArray(obj[k])) {
          return map(obj[k], function(v) {
            return ks + encodeURIComponent(stringifyPrimitive(v));
          }).join(sep);
        } else {
          return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
        }
      }).join(sep);
  
    }
  
    if (!name) return '';
    return encodeURIComponent(stringifyPrimitive(name)) + eq +
           encodeURIComponent(stringifyPrimitive(obj));
  };
  
  var isArray = Array.isArray || function (xs) {
    return Object.prototype.toString.call(xs) === '[object Array]';
  };
  
  function map (xs, f) {
    if (xs.map) return xs.map(f);
    var res = [];
    for (var i = 0; i < xs.length; i++) {
      res.push(f(xs[i], i));
    }
    return res;
  }
  
  var objectKeys = Object.keys || function (obj) {
    var res = [];
    for (var key in obj) {
      if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);
    }
    return res;
  };
  
  
  /***/ }),
  
  /***/ "./node_modules/querystring-es3/index.js":
  /*!***********************************************!*\
    !*** ./node_modules/querystring-es3/index.js ***!
    \***********************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  exports.decode = exports.parse = __webpack_require__(/*! ./decode */ "./node_modules/querystring-es3/decode.js");
  exports.encode = exports.stringify = __webpack_require__(/*! ./encode */ "./node_modules/querystring-es3/encode.js");
  
  
  /***/ }),
  
  /***/ "./node_modules/react/index.js":
  /*!*******************************************************************************************!*\
    !*** delegated ./node_modules/react/index.js from dll-reference dll_2adc2403d89adc16ead0 ***!
    \*******************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  module.exports = (__webpack_require__(/*! dll-reference dll_2adc2403d89adc16ead0 */ "dll-reference dll_2adc2403d89adc16ead0"))("./node_modules/react/index.js");
  
  /***/ }),
  
  /***/ "./node_modules/regenerator-runtime/runtime.js":
  /*!*****************************************************!*\
    !*** ./node_modules/regenerator-runtime/runtime.js ***!
    \*****************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  /**
   * Copyright (c) 2014-present, Facebook, Inc.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */
  
  var runtime = (function (exports) {
    "use strict";
  
    var Op = Object.prototype;
    var hasOwn = Op.hasOwnProperty;
    var undefined; // More compressible than void 0.
    var $Symbol = typeof Symbol === "function" ? Symbol : {};
    var iteratorSymbol = $Symbol.iterator || "@@iterator";
    var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
    var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
  
    function wrap(innerFn, outerFn, self, tryLocsList) {
      // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
      var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
      var generator = Object.create(protoGenerator.prototype);
      var context = new Context(tryLocsList || []);
  
      // The ._invoke method unifies the implementations of the .next,
      // .throw, and .return methods.
      generator._invoke = makeInvokeMethod(innerFn, self, context);
  
      return generator;
    }
    exports.wrap = wrap;
  
    // Try/catch helper to minimize deoptimizations. Returns a completion
    // record like context.tryEntries[i].completion. This interface could
    // have been (and was previously) designed to take a closure to be
    // invoked without arguments, but in all the cases we care about we
    // already have an existing method we want to call, so there's no need
    // to create a new function object. We can even get away with assuming
    // the method takes exactly one argument, since that happens to be true
    // in every case, so we don't have to touch the arguments object. The
    // only additional allocation required is the completion record, which
    // has a stable shape and so hopefully should be cheap to allocate.
    function tryCatch(fn, obj, arg) {
      try {
        return { type: "normal", arg: fn.call(obj, arg) };
      } catch (err) {
        return { type: "throw", arg: err };
      }
    }
  
    var GenStateSuspendedStart = "suspendedStart";
    var GenStateSuspendedYield = "suspendedYield";
    var GenStateExecuting = "executing";
    var GenStateCompleted = "completed";
  
    // Returning this object from the innerFn has the same effect as
    // breaking out of the dispatch switch statement.
    var ContinueSentinel = {};
  
    // Dummy constructor functions that we use as the .constructor and
    // .constructor.prototype properties for functions that return Generator
    // objects. For full spec compliance, you may wish to configure your
    // minifier not to mangle the names of these two functions.
    function Generator() {}
    function GeneratorFunction() {}
    function GeneratorFunctionPrototype() {}
  
    // This is a polyfill for %IteratorPrototype% for environments that
    // don't natively support it.
    var IteratorPrototype = {};
    IteratorPrototype[iteratorSymbol] = function () {
      return this;
    };
  
    var getProto = Object.getPrototypeOf;
    var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
    if (NativeIteratorPrototype &&
        NativeIteratorPrototype !== Op &&
        hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
      // This environment has a native %IteratorPrototype%; use it instead
      // of the polyfill.
      IteratorPrototype = NativeIteratorPrototype;
    }
  
    var Gp = GeneratorFunctionPrototype.prototype =
      Generator.prototype = Object.create(IteratorPrototype);
    GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
    GeneratorFunctionPrototype.constructor = GeneratorFunction;
    GeneratorFunctionPrototype[toStringTagSymbol] =
      GeneratorFunction.displayName = "GeneratorFunction";
  
    // Helper for defining the .next, .throw, and .return methods of the
    // Iterator interface in terms of a single ._invoke method.
    function defineIteratorMethods(prototype) {
      ["next", "throw", "return"].forEach(function(method) {
        prototype[method] = function(arg) {
          return this._invoke(method, arg);
        };
      });
    }
  
    exports.isGeneratorFunction = function(genFun) {
      var ctor = typeof genFun === "function" && genFun.constructor;
      return ctor
        ? ctor === GeneratorFunction ||
          // For the native GeneratorFunction constructor, the best we can
          // do is to check its .name property.
          (ctor.displayName || ctor.name) === "GeneratorFunction"
        : false;
    };
  
    exports.mark = function(genFun) {
      if (Object.setPrototypeOf) {
        Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
      } else {
        genFun.__proto__ = GeneratorFunctionPrototype;
        if (!(toStringTagSymbol in genFun)) {
          genFun[toStringTagSymbol] = "GeneratorFunction";
        }
      }
      genFun.prototype = Object.create(Gp);
      return genFun;
    };
  
    // Within the body of any async function, `await x` is transformed to
    // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
    // `hasOwn.call(value, "__await")` to determine if the yielded value is
    // meant to be awaited.
    exports.awrap = function(arg) {
      return { __await: arg };
    };
  
    function AsyncIterator(generator, PromiseImpl) {
      function invoke(method, arg, resolve, reject) {
        var record = tryCatch(generator[method], generator, arg);
        if (record.type === "throw") {
          reject(record.arg);
        } else {
          var result = record.arg;
          var value = result.value;
          if (value &&
              typeof value === "object" &&
              hasOwn.call(value, "__await")) {
            return PromiseImpl.resolve(value.__await).then(function(value) {
              invoke("next", value, resolve, reject);
            }, function(err) {
              invoke("throw", err, resolve, reject);
            });
          }
  
          return PromiseImpl.resolve(value).then(function(unwrapped) {
            // When a yielded Promise is resolved, its final value becomes
            // the .value of the Promise<{value,done}> result for the
            // current iteration.
            result.value = unwrapped;
            resolve(result);
          }, function(error) {
            // If a rejected Promise was yielded, throw the rejection back
            // into the async generator function so it can be handled there.
            return invoke("throw", error, resolve, reject);
          });
        }
      }
  
      var previousPromise;
  
      function enqueue(method, arg) {
        function callInvokeWithMethodAndArg() {
          return new PromiseImpl(function(resolve, reject) {
            invoke(method, arg, resolve, reject);
          });
        }
  
        return previousPromise =
          // If enqueue has been called before, then we want to wait until
          // all previous Promises have been resolved before calling invoke,
          // so that results are always delivered in the correct order. If
          // enqueue has not been called before, then it is important to
          // call invoke immediately, without waiting on a callback to fire,
          // so that the async generator function has the opportunity to do
          // any necessary setup in a predictable way. This predictability
          // is why the Promise constructor synchronously invokes its
          // executor callback, and why async functions synchronously
          // execute code before the first await. Since we implement simple
          // async functions in terms of async generators, it is especially
          // important to get this right, even though it requires care.
          previousPromise ? previousPromise.then(
            callInvokeWithMethodAndArg,
            // Avoid propagating failures to Promises returned by later
            // invocations of the iterator.
            callInvokeWithMethodAndArg
          ) : callInvokeWithMethodAndArg();
      }
  
      // Define the unified helper method that is used to implement .next,
      // .throw, and .return (see defineIteratorMethods).
      this._invoke = enqueue;
    }
  
    defineIteratorMethods(AsyncIterator.prototype);
    AsyncIterator.prototype[asyncIteratorSymbol] = function () {
      return this;
    };
    exports.AsyncIterator = AsyncIterator;
  
    // Note that simple async functions are implemented on top of
    // AsyncIterator objects; they just return a Promise for the value of
    // the final result produced by the iterator.
    exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
      if (PromiseImpl === void 0) PromiseImpl = Promise;
  
      var iter = new AsyncIterator(
        wrap(innerFn, outerFn, self, tryLocsList),
        PromiseImpl
      );
  
      return exports.isGeneratorFunction(outerFn)
        ? iter // If outerFn is a generator, return the full iterator.
        : iter.next().then(function(result) {
            return result.done ? result.value : iter.next();
          });
    };
  
    function makeInvokeMethod(innerFn, self, context) {
      var state = GenStateSuspendedStart;
  
      return function invoke(method, arg) {
        if (state === GenStateExecuting) {
          throw new Error("Generator is already running");
        }
  
        if (state === GenStateCompleted) {
          if (method === "throw") {
            throw arg;
          }
  
          // Be forgiving, per 25.3.3.3.3 of the spec:
          // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
          return doneResult();
        }
  
        context.method = method;
        context.arg = arg;
  
        while (true) {
          var delegate = context.delegate;
          if (delegate) {
            var delegateResult = maybeInvokeDelegate(delegate, context);
            if (delegateResult) {
              if (delegateResult === ContinueSentinel) continue;
              return delegateResult;
            }
          }
  
          if (context.method === "next") {
            // Setting context._sent for legacy support of Babel's
            // function.sent implementation.
            context.sent = context._sent = context.arg;
  
          } else if (context.method === "throw") {
            if (state === GenStateSuspendedStart) {
              state = GenStateCompleted;
              throw context.arg;
            }
  
            context.dispatchException(context.arg);
  
          } else if (context.method === "return") {
            context.abrupt("return", context.arg);
          }
  
          state = GenStateExecuting;
  
          var record = tryCatch(innerFn, self, context);
          if (record.type === "normal") {
            // If an exception is thrown from innerFn, we leave state ===
            // GenStateExecuting and loop back for another invocation.
            state = context.done
              ? GenStateCompleted
              : GenStateSuspendedYield;
  
            if (record.arg === ContinueSentinel) {
              continue;
            }
  
            return {
              value: record.arg,
              done: context.done
            };
  
          } else if (record.type === "throw") {
            state = GenStateCompleted;
            // Dispatch the exception by looping back around to the
            // context.dispatchException(context.arg) call above.
            context.method = "throw";
            context.arg = record.arg;
          }
        }
      };
    }
  
    // Call delegate.iterator[context.method](context.arg) and handle the
    // result, either by returning a { value, done } result from the
    // delegate iterator, or by modifying context.method and context.arg,
    // setting context.delegate to null, and returning the ContinueSentinel.
    function maybeInvokeDelegate(delegate, context) {
      var method = delegate.iterator[context.method];
      if (method === undefined) {
        // A .throw or .return when the delegate iterator has no .throw
        // method always terminates the yield* loop.
        context.delegate = null;
  
        if (context.method === "throw") {
          // Note: ["return"] must be used for ES3 parsing compatibility.
          if (delegate.iterator["return"]) {
            // If the delegate iterator has a return method, give it a
            // chance to clean up.
            context.method = "return";
            context.arg = undefined;
            maybeInvokeDelegate(delegate, context);
  
            if (context.method === "throw") {
              // If maybeInvokeDelegate(context) changed context.method from
              // "return" to "throw", let that override the TypeError below.
              return ContinueSentinel;
            }
          }
  
          context.method = "throw";
          context.arg = new TypeError(
            "The iterator does not provide a 'throw' method");
        }
  
        return ContinueSentinel;
      }
  
      var record = tryCatch(method, delegate.iterator, context.arg);
  
      if (record.type === "throw") {
        context.method = "throw";
        context.arg = record.arg;
        context.delegate = null;
        return ContinueSentinel;
      }
  
      var info = record.arg;
  
      if (! info) {
        context.method = "throw";
        context.arg = new TypeError("iterator result is not an object");
        context.delegate = null;
        return ContinueSentinel;
      }
  
      if (info.done) {
        // Assign the result of the finished delegate to the temporary
        // variable specified by delegate.resultName (see delegateYield).
        context[delegate.resultName] = info.value;
  
        // Resume execution at the desired location (see delegateYield).
        context.next = delegate.nextLoc;
  
        // If context.method was "throw" but the delegate handled the
        // exception, let the outer generator proceed normally. If
        // context.method was "next", forget context.arg since it has been
        // "consumed" by the delegate iterator. If context.method was
        // "return", allow the original .return call to continue in the
        // outer generator.
        if (context.method !== "return") {
          context.method = "next";
          context.arg = undefined;
        }
  
      } else {
        // Re-yield the result returned by the delegate method.
        return info;
      }
  
      // The delegate iterator is finished, so forget it and continue with
      // the outer generator.
      context.delegate = null;
      return ContinueSentinel;
    }
  
    // Define Generator.prototype.{next,throw,return} in terms of the
    // unified ._invoke helper method.
    defineIteratorMethods(Gp);
  
    Gp[toStringTagSymbol] = "Generator";
  
    // A Generator should always return itself as the iterator object when the
    // @@iterator function is called on it. Some browsers' implementations of the
    // iterator prototype chain incorrectly implement this, causing the Generator
    // object to not be returned from this call. This ensures that doesn't happen.
    // See https://github.com/facebook/regenerator/issues/274 for more details.
    Gp[iteratorSymbol] = function() {
      return this;
    };
  
    Gp.toString = function() {
      return "[object Generator]";
    };
  
    function pushTryEntry(locs) {
      var entry = { tryLoc: locs[0] };
  
      if (1 in locs) {
        entry.catchLoc = locs[1];
      }
  
      if (2 in locs) {
        entry.finallyLoc = locs[2];
        entry.afterLoc = locs[3];
      }
  
      this.tryEntries.push(entry);
    }
  
    function resetTryEntry(entry) {
      var record = entry.completion || {};
      record.type = "normal";
      delete record.arg;
      entry.completion = record;
    }
  
    function Context(tryLocsList) {
      // The root entry object (effectively a try statement without a catch
      // or a finally block) gives us a place to store values thrown from
      // locations where there is no enclosing try statement.
      this.tryEntries = [{ tryLoc: "root" }];
      tryLocsList.forEach(pushTryEntry, this);
      this.reset(true);
    }
  
    exports.keys = function(object) {
      var keys = [];
      for (var key in object) {
        keys.push(key);
      }
      keys.reverse();
  
      // Rather than returning an object with a next method, we keep
      // things simple and return the next function itself.
      return function next() {
        while (keys.length) {
          var key = keys.pop();
          if (key in object) {
            next.value = key;
            next.done = false;
            return next;
          }
        }
  
        // To avoid creating an additional object, we just hang the .value
        // and .done properties off the next function object itself. This
        // also ensures that the minifier will not anonymize the function.
        next.done = true;
        return next;
      };
    };
  
    function values(iterable) {
      if (iterable) {
        var iteratorMethod = iterable[iteratorSymbol];
        if (iteratorMethod) {
          return iteratorMethod.call(iterable);
        }
  
        if (typeof iterable.next === "function") {
          return iterable;
        }
  
        if (!isNaN(iterable.length)) {
          var i = -1, next = function next() {
            while (++i < iterable.length) {
              if (hasOwn.call(iterable, i)) {
                next.value = iterable[i];
                next.done = false;
                return next;
              }
            }
  
            next.value = undefined;
            next.done = true;
  
            return next;
          };
  
          return next.next = next;
        }
      }
  
      // Return an iterator with no values.
      return { next: doneResult };
    }
    exports.values = values;
  
    function doneResult() {
      return { value: undefined, done: true };
    }
  
    Context.prototype = {
      constructor: Context,
  
      reset: function(skipTempReset) {
        this.prev = 0;
        this.next = 0;
        // Resetting context._sent for legacy support of Babel's
        // function.sent implementation.
        this.sent = this._sent = undefined;
        this.done = false;
        this.delegate = null;
  
        this.method = "next";
        this.arg = undefined;
  
        this.tryEntries.forEach(resetTryEntry);
  
        if (!skipTempReset) {
          for (var name in this) {
            // Not sure about the optimal order of these conditions:
            if (name.charAt(0) === "t" &&
                hasOwn.call(this, name) &&
                !isNaN(+name.slice(1))) {
              this[name] = undefined;
            }
          }
        }
      },
  
      stop: function() {
        this.done = true;
  
        var rootEntry = this.tryEntries[0];
        var rootRecord = rootEntry.completion;
        if (rootRecord.type === "throw") {
          throw rootRecord.arg;
        }
  
        return this.rval;
      },
  
      dispatchException: function(exception) {
        if (this.done) {
          throw exception;
        }
  
        var context = this;
        function handle(loc, caught) {
          record.type = "throw";
          record.arg = exception;
          context.next = loc;
  
          if (caught) {
            // If the dispatched exception was caught by a catch block,
            // then let that catch block handle the exception normally.
            context.method = "next";
            context.arg = undefined;
          }
  
          return !! caught;
        }
  
        for (var i = this.tryEntries.length - 1; i >= 0; --i) {
          var entry = this.tryEntries[i];
          var record = entry.completion;
  
          if (entry.tryLoc === "root") {
            // Exception thrown outside of any try block that could handle
            // it, so set the completion value of the entire function to
            // throw the exception.
            return handle("end");
          }
  
          if (entry.tryLoc <= this.prev) {
            var hasCatch = hasOwn.call(entry, "catchLoc");
            var hasFinally = hasOwn.call(entry, "finallyLoc");
  
            if (hasCatch && hasFinally) {
              if (this.prev < entry.catchLoc) {
                return handle(entry.catchLoc, true);
              } else if (this.prev < entry.finallyLoc) {
                return handle(entry.finallyLoc);
              }
  
            } else if (hasCatch) {
              if (this.prev < entry.catchLoc) {
                return handle(entry.catchLoc, true);
              }
  
            } else if (hasFinally) {
              if (this.prev < entry.finallyLoc) {
                return handle(entry.finallyLoc);
              }
  
            } else {
              throw new Error("try statement without catch or finally");
            }
          }
        }
      },
  
      abrupt: function(type, arg) {
        for (var i = this.tryEntries.length - 1; i >= 0; --i) {
          var entry = this.tryEntries[i];
          if (entry.tryLoc <= this.prev &&
              hasOwn.call(entry, "finallyLoc") &&
              this.prev < entry.finallyLoc) {
            var finallyEntry = entry;
            break;
          }
        }
  
        if (finallyEntry &&
            (type === "break" ||
             type === "continue") &&
            finallyEntry.tryLoc <= arg &&
            arg <= finallyEntry.finallyLoc) {
          // Ignore the finally entry if control is not jumping to a
          // location outside the try/catch block.
          finallyEntry = null;
        }
  
        var record = finallyEntry ? finallyEntry.completion : {};
        record.type = type;
        record.arg = arg;
  
        if (finallyEntry) {
          this.method = "next";
          this.next = finallyEntry.finallyLoc;
          return ContinueSentinel;
        }
  
        return this.complete(record);
      },
  
      complete: function(record, afterLoc) {
        if (record.type === "throw") {
          throw record.arg;
        }
  
        if (record.type === "break" ||
            record.type === "continue") {
          this.next = record.arg;
        } else if (record.type === "return") {
          this.rval = this.arg = record.arg;
          this.method = "return";
          this.next = "end";
        } else if (record.type === "normal" && afterLoc) {
          this.next = afterLoc;
        }
  
        return ContinueSentinel;
      },
  
      finish: function(finallyLoc) {
        for (var i = this.tryEntries.length - 1; i >= 0; --i) {
          var entry = this.tryEntries[i];
          if (entry.finallyLoc === finallyLoc) {
            this.complete(entry.completion, entry.afterLoc);
            resetTryEntry(entry);
            return ContinueSentinel;
          }
        }
      },
  
      "catch": function(tryLoc) {
        for (var i = this.tryEntries.length - 1; i >= 0; --i) {
          var entry = this.tryEntries[i];
          if (entry.tryLoc === tryLoc) {
            var record = entry.completion;
            if (record.type === "throw") {
              var thrown = record.arg;
              resetTryEntry(entry);
            }
            return thrown;
          }
        }
  
        // The context.catch method must only be called with a location
        // argument that corresponds to a known catch block.
        throw new Error("illegal catch attempt");
      },
  
      delegateYield: function(iterable, resultName, nextLoc) {
        this.delegate = {
          iterator: values(iterable),
          resultName: resultName,
          nextLoc: nextLoc
        };
  
        if (this.method === "next") {
          // Deliberately forget the last sent value so that we don't
          // accidentally pass it on to the delegate.
          this.arg = undefined;
        }
  
        return ContinueSentinel;
      }
    };
  
    // Regardless of whether this script is executing as a CommonJS module
    // or not, return the runtime object so that we can declare the variable
    // regeneratorRuntime in the outer scope, which allows this module to be
    // injected easily by `bin/regenerator --include-runtime script.js`.
    return exports;
  
  }(
    // If this script is executing as a CommonJS module, use module.exports
    // as the regeneratorRuntime namespace. Otherwise create a new empty
    // object. Either way, the resulting object will be used to initialize
    // the regeneratorRuntime variable at the top of this file.
     true ? module.exports : undefined
  ));
  
  try {
    regeneratorRuntime = runtime;
  } catch (accidentalStrictMode) {
    // This module should not be running in strict mode, so the above
    // assignment should always work unless something is misconfigured. Just
    // in case runtime.js accidentally runs in strict mode, we can escape
    // strict mode using a global Function call. This could conceivably fail
    // if a Content Security Policy forbids using Function, but in that case
    // the proper solution is to fix the accidental strict mode problem. If
    // you've misconfigured your bundler to force strict mode and applied a
    // CSP to forbid Function, and you're not willing to fix either of those
    // problems, please detail your unique predicament in a GitHub issue.
    Function("r", "regeneratorRuntime = r")(runtime);
  }
  
  
  /***/ }),
  
  /***/ 0:
  /*!*****************************************************************************************************************************************!*\
    !*** multi next-client-pages-loader?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app ./node_modules/next/dist/client/router.js ***!
    \*****************************************************************************************************************************************/
  /*! no static exports found */
  /***/ (function(module, exports, __webpack_require__) {
  
  __webpack_require__(/*! next-client-pages-loader?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app! */"./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?page=%2F_app&absolutePagePath=next%2Fdist%2Fpages%2F_app!./");
  module.exports = __webpack_require__(/*! /Users/tommoor/Projects/outline-site/node_modules/next/dist/client/router.js */"./node_modules/next/dist/client/router.js");
  
  
  /***/ }),
  
  /***/ "dll-reference dll_2adc2403d89adc16ead0":
  /*!*******************************************!*\
    !*** external "dll_2adc2403d89adc16ead0" ***!
    \*******************************************/
  /*! no static exports found */
  /***/ (function(module, exports) {
  
  module.exports = dll_2adc2403d89adc16ead0;
  
  /***/ })
  
  },[[0,"static/runtime/webpack.js"]]]);
  //# sourceMappingURL=_app.js.map