Browse Source

Get Monorepo In Good State

Francesco Baccetti 4 years ago
parent
commit
64a758c0f9
100 changed files with 3994 additions and 0 deletions
  1. BIN
      .parcel-cache/01/1313c5d25308f454e685f435861a8c.v8
  2. 12 0
      .parcel-cache/01/d587b0604e1b24da4667f608a6a9a3.blob
  3. BIN
      .parcel-cache/02/2584ec8383f1d264699aacccd3be37.v8
  4. 18 0
      .parcel-cache/02/2617adc0d4f4c75b8e3ee2a5b4910e.blob
  5. 10 0
      .parcel-cache/04/d5bca48abcc00fdb5d3c99d563eb83.blob
  6. 263 0
      .parcel-cache/05/939c96e46ef82a2c12b1d407ace2d6.blob
  7. 76 0
      .parcel-cache/06/b383d8a2237cbeb46c9e13052b1b37.blob
  8. 26 0
      .parcel-cache/08/a6260a80f2a09bd2406a445b263c36.blob
  9. BIN
      .parcel-cache/09/c591012a74868674803630427ceb6f.blob
  10. BIN
      .parcel-cache/0b/55a491f9902481d3f8a48da365e1f4.v8
  11. BIN
      .parcel-cache/0c/44b6b79a29f7e7004c8dd6e5c93780.v8
  12. BIN
      .parcel-cache/0d/56c2efe1da98bfebbb323c52071548.v8
  13. BIN
      .parcel-cache/0d/6ccf11ce5a35965ac11aeecd7b2dd5.blob
  14. 24 0
      .parcel-cache/0f/8218104ae14837688ad483b2b10830.blob
  15. BIN
      .parcel-cache/0f/f425d86cea570881e568b1789d1694.blob
  16. BIN
      .parcel-cache/11/0e2906cd9ad7492fb5d7f78d8e0602.v8
  17. BIN
      .parcel-cache/12/5b48bf535a97f3b255d4f92506acc4.blob
  18. BIN
      .parcel-cache/13/0b9856cb9a07222b8417bbf23cb04f.blob
  19. 2 0
      .parcel-cache/13/2aeecacb4ca0db56fd124ad8012a4c.txt
  20. 643 0
      .parcel-cache/16/8294e7ff21045c69aeea6308fb718c.blob
  21. BIN
      .parcel-cache/17/2c8c4491652a2711df0e5a007e9332.v8
  22. BIN
      .parcel-cache/17/832b468a87b2ba82cb87a905bb125a.v8
  23. BIN
      .parcel-cache/18/4ead623a233d34e77143dc903204e6.v8
  24. BIN
      .parcel-cache/19/ae38c87251ae95d30c229143f35443.v8
  25. BIN
      .parcel-cache/1a/67e9b270ca1b895323a324af24e9e1.blob
  26. BIN
      .parcel-cache/1a/c8d64f5947da805f677cd14ae34b9e.blob
  27. BIN
      .parcel-cache/1a/f364050ffc7cd1174605384e49bb3f.blob
  28. BIN
      .parcel-cache/1b/f847786814f7578a8699d62f2bc8ba.v8
  29. 11 0
      .parcel-cache/1e/24f42a4a380ec6e2d6970ec44b3877.blob
  30. BIN
      .parcel-cache/1f/045222640676f4dc7e6a975879cc1b.v8
  31. BIN
      .parcel-cache/1f/97a927139bf5e0656f836c61a74a30.blob
  32. 34 0
      .parcel-cache/1f/9defa36d86a5c7087aefafe6099400.blob
  33. BIN
      .parcel-cache/22/6ea3fcb933ffe7a691751ca967606b.v8
  34. BIN
      .parcel-cache/22/79dfee9bd5c7974bb7223e2e98dbe8.blob
  35. BIN
      .parcel-cache/25/8a0f457f339d001e83fa1bfd1b9873.v8
  36. BIN
      .parcel-cache/26/22a598ca54cbe4a1df65cdee7a9f25.v8
  37. 7 0
      .parcel-cache/27/2ec97392d556bad3d4d5050e1d9886.blob
  38. BIN
      .parcel-cache/28/51dce5d6e77c001f2e505ed8e51710.v8
  39. BIN
      .parcel-cache/2b/a89e4ce9633582f0fc0f9ddfbe7cc8.blob
  40. 29 0
      .parcel-cache/2b/c22f2d110c2155efbee67a748af63a.blob
  41. BIN
      .parcel-cache/2d/e8129d22da75a243bb3d5ac5efaa90.v8
  42. 54 0
      .parcel-cache/2e/882443712c111ffb4f55786a9e669b.blob
  43. BIN
      .parcel-cache/2f/9dd52702122ac3d38ddf0a3ca6ef02.blob
  44. 99 0
      .parcel-cache/2f/e32642b267413c48e9d7c1caf75d9f.blob
  45. BIN
      .parcel-cache/30/1857460c291521fbfad2d13e6435d6.v8
  46. BIN
      .parcel-cache/31/ae2924ae355d301ab68385b07fabd4.blob
  47. 37 0
      .parcel-cache/31/ae4f46a9cd7eb91a18b2733834b986.blob
  48. BIN
      .parcel-cache/32/91e1c656fb417d34f92632e4d474bf.v8
  49. 55 0
      .parcel-cache/33/40420c19b7e5d2719a65a0131148ff.blob
  50. 48 0
      .parcel-cache/33/ec6a29744622bf8e199d3fe2565dfd.blob
  51. BIN
      .parcel-cache/34/029aa1611c0174aef91a5c1842e234.blob
  52. BIN
      .parcel-cache/34/7da848d3ab1b94f1c49da614b33f7b.v8
  53. BIN
      .parcel-cache/35/12886de872ba40491215865a4b0c70.v8
  54. 23 0
      .parcel-cache/35/72a0dc5e9536242b22fe5ac260fe35.blob
  55. BIN
      .parcel-cache/35/8a276fd5336cecf3b2581477335f8e.v8
  56. BIN
      .parcel-cache/36/9a90d281caed9c4b31b4f16ebc0e79.v8
  57. 7 0
      .parcel-cache/37/ac8e423f0e3786fd88fb753ff3ae7e.blob
  58. 13 0
      .parcel-cache/39/0bc6700660c799ca902b46dd7de1a0.blob
  59. BIN
      .parcel-cache/39/ef40343f7dec15d3b78a9c7249197c.v8
  60. BIN
      .parcel-cache/3a/1ac7387389e8e98905abca4f5c9be8.v8
  61. BIN
      .parcel-cache/3a/841981a262e8d7b31fbd40dcde0c41.blob
  62. BIN
      .parcel-cache/3c/35c1401391618dc6ac55f4fa61548a.v8
  63. BIN
      .parcel-cache/3c/7c9c199974c622eb65614103b7b019.blob
  64. BIN
      .parcel-cache/3d/028eaacdc63877125d33eaff65ffe6.v8
  65. BIN
      .parcel-cache/3d/ec8732f2ff6ebac7b5a231d9d4f19f.v8
  66. BIN
      .parcel-cache/3e/60072b25c9105950b3f9c14a612a7a.v8
  67. 7 0
      .parcel-cache/3e/77119e7ee832549d0f0a9c1830ccdf.blob
  68. BIN
      .parcel-cache/3e/c121aebdd50d1e391ae81260a8b4ce.v8
  69. BIN
      .parcel-cache/3f/4e84bc1c1b3a5c1144ceb2a0f3399e.v8
  70. BIN
      .parcel-cache/42/44d0569269721154c6cfb81491ad8b.blob
  71. 47 0
      .parcel-cache/42/c69973c8236a851797e9d54049dd62.blob
  72. BIN
      .parcel-cache/45/079ec6bbf64d0bc6febd31e83b96bd.v8
  73. BIN
      .parcel-cache/45/c816405ac4aef98afac0431bb399c0.v8
  74. 2 0
      .parcel-cache/46/ba2fa9c4984e0394662d57018ecda8.txt
  75. BIN
      .parcel-cache/47/1a56d7f10a1e8686a405227650dc6f.blob
  76. 558 0
      .parcel-cache/47/f4192b6f0c76c54861e24f739c272b.blob
  77. BIN
      .parcel-cache/49/341de330ce816c67536ea0f113045e.blob
  78. 189 0
      .parcel-cache/4b/362525bde8ea65bfdc557a28160208.blob
  79. 0 0
      .parcel-cache/4c/e23fbf4b0c80f4efcdbafb0a8f209b.blob
  80. BIN
      .parcel-cache/4e/063cec453e25294fbb0525fcdc46a3.blob
  81. BIN
      .parcel-cache/51/0761379360aea3d233cf9281112fb0.blob
  82. 13 0
      .parcel-cache/52/f8c26f2ab84588e8cf19926504ee04.blob
  83. 13 0
      .parcel-cache/53/5a5fe44561aecefd31d6441b05ffac.blob
  84. 16 0
      .parcel-cache/53/99673094b7b6fcceca21d8c8c24e3a.blob
  85. BIN
      .parcel-cache/56/d378523c61f796ff4924964efe0d69.v8
  86. 384 0
      .parcel-cache/57/dd67142531f90d0e445cad2ea43cdd.blob
  87. 222 0
      .parcel-cache/57/f2ab1ef02d62fc0933450e09e4e9b0.blob
  88. 43 0
      .parcel-cache/5a/fc57500d711d920ad9aa77a719cc20.blob
  89. BIN
      .parcel-cache/5b/2a24f303efd57a2647cffcbf061dd6.v8
  90. 139 0
      .parcel-cache/5b/7e5724afa2075491c30f5d815abce7.blob
  91. BIN
      .parcel-cache/62/586d4b7fb6ab8ff0e75fdc933f782f.blob
  92. BIN
      .parcel-cache/62/b883ddf9f8fcfbb097cccbfc524e36.v8
  93. 16 0
      .parcel-cache/63/f5ff9ac3716cd8615125be32c8e5e2.blob
  94. BIN
      .parcel-cache/63/ff13c594f6c5705b1d0d88c5a56aa2.v8
  95. BIN
      .parcel-cache/66/136f1ae72eb4b07ff2e6600e2e2301.v8
  96. BIN
      .parcel-cache/67/0586990f7948e8b7ded960e0aa186a.v8
  97. BIN
      .parcel-cache/67/325b2ec5360fa2ca63a1e8a2cb3614.blob
  98. BIN
      .parcel-cache/67/7674103446a5a63ed2515a2c04c278.v8
  99. 854 0
      .parcel-cache/6e/1a0b722b040fbe0376740e68af4669.blob
  100. BIN
      .parcel-cache/6e/1d8b652bf9a5ae49b792e3507ca87e.v8

BIN
.parcel-cache/01/1313c5d25308f454e685f435861a8c.v8


+ 12 - 0
.parcel-cache/01/d587b0604e1b24da4667f608a6a9a3.blob

@@ -0,0 +1,12 @@
+/**
+ * Copyright (c) 2013-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.
+ */
+
+'use strict';
+
+var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
+
+module.exports = ReactPropTypesSecret;

BIN
.parcel-cache/02/2584ec8383f1d264699aacccd3be37.v8


+ 18 - 0
.parcel-cache/02/2617adc0d4f4c75b8e3ee2a5b4910e.blob

@@ -0,0 +1,18 @@
+/**
+ * Copyright (c) 2013-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.
+ */
+if ("development" !== 'production') {
+  var ReactIs = require('react-is'); // By explicitly using `prop-types` you are opting into new development behavior.
+  // http://fb.me/prop-types-in-prod
+
+
+  var throwOnDirectAccess = true;
+  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);
+} else {
+  // By explicitly using `prop-types` you are opting into new production behavior.
+  // http://fb.me/prop-types-in-prod
+  module.exports = require('./factoryWithThrowingShims')();
+}

File diff suppressed because it is too large
+ 10 - 0
.parcel-cache/04/d5bca48abcc00fdb5d3c99d563eb83.blob


+ 263 - 0
.parcel-cache/05/939c96e46ef82a2c12b1d407ace2d6.blob

@@ -0,0 +1,263 @@
+"use strict";
+
+var global = arguments[3];
+
+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 HMR_HOST = null;
+var HMR_PORT = 12345;
+var HMR_ENV_HASH = "d751713988987e9331980363e24189ce";
+module.bundle.HMR_BUNDLE_ID = "9677950b377d8783c801420daf7bdb91";
+/* global HMR_HOST, HMR_PORT, HMR_ENV_HASH */
+
+var OVERLAY_ID = '__parcel__error__overlay__';
+var OldModule = module.bundle.Module;
+
+function Module(moduleName) {
+  OldModule.call(this, moduleName);
+  this.hot = {
+    data: module.bundle.hotData,
+    _acceptCallbacks: [],
+    _disposeCallbacks: [],
+    accept: function accept(fn) {
+      this._acceptCallbacks.push(fn || function () {});
+    },
+    dispose: function dispose(fn) {
+      this._disposeCallbacks.push(fn);
+    }
+  };
+  module.bundle.hotData = null;
+}
+
+module.bundle.Module = Module;
+var checkedAssets, assetsToAccept, acceptedAssets; // eslint-disable-next-line no-redeclare
+
+var parent = module.bundle.parent;
+
+if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {
+  var hostname = HMR_HOST || (location.protocol.indexOf('http') === 0 ? location.hostname : 'localhost');
+  var port = HMR_PORT || location.port;
+  var protocol = location.protocol === 'https:' ? 'wss' : 'ws';
+  var ws = new WebSocket(protocol + '://' + hostname + (port ? ':' + port : '') + '/');
+
+  ws.onmessage = function (event) {
+    checkedAssets = {};
+    assetsToAccept = [];
+    acceptedAssets = {};
+    var data = JSON.parse(event.data);
+
+    if (data.type === 'update') {
+      // Remove error overlay if there is one
+      removeErrorOverlay();
+      var assets = data.assets.filter(function (asset) {
+        return asset.envHash === HMR_ENV_HASH;
+      }); // Handle HMR Update
+
+      var handled = false;
+      assets.forEach(function (asset) {
+        var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);
+
+        if (didAccept) {
+          handled = true;
+        }
+      });
+
+      if (handled) {
+        console.clear();
+        assets.forEach(function (asset) {
+          hmrApply(global.parcelRequire, asset);
+        });
+
+        for (var i = 0; i < assetsToAccept.length; i++) {
+          var id = assetsToAccept[i][1];
+
+          if (!acceptedAssets[id]) {
+            hmrAcceptRun(assetsToAccept[i][0], id);
+          }
+        }
+      } else {
+        window.location.reload();
+      }
+    }
+
+    if (data.type === 'error') {
+      // Log parcel errors to console
+      var _iterator = _createForOfIteratorHelper(data.diagnostics.ansi),
+          _step;
+
+      try {
+        for (_iterator.s(); !(_step = _iterator.n()).done;) {
+          var ansiDiagnostic = _step.value;
+          var stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack;
+          console.error('🚨 [parcel]: ' + ansiDiagnostic.message + '\n' + stack + '\n\n' + ansiDiagnostic.hints.join('\n'));
+        } // Render the fancy html overlay
+
+      } catch (err) {
+        _iterator.e(err);
+      } finally {
+        _iterator.f();
+      }
+
+      removeErrorOverlay();
+      var overlay = createErrorOverlay(data.diagnostics.html);
+      document.body.appendChild(overlay);
+    }
+  };
+
+  ws.onerror = function (e) {
+    console.error(e.message);
+  };
+
+  ws.onclose = function (e) {
+    console.warn('[parcel] 🚨 Connection to the HMR server was lost');
+  };
+}
+
+function removeErrorOverlay() {
+  var overlay = document.getElementById(OVERLAY_ID);
+
+  if (overlay) {
+    overlay.remove();
+    console.log('[parcel] ✨ Error resolved');
+  }
+}
+
+function createErrorOverlay(diagnostics) {
+  var overlay = document.createElement('div');
+  overlay.id = OVERLAY_ID;
+  var errorHTML = '<div style="background: black; opacity: 0.85; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; font-family: Menlo, Consolas, monospace; z-index: 9999;">';
+
+  var _iterator2 = _createForOfIteratorHelper(diagnostics),
+      _step2;
+
+  try {
+    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
+      var diagnostic = _step2.value;
+      var stack = diagnostic.codeframe ? diagnostic.codeframe : diagnostic.stack;
+      errorHTML += "\n      <div>\n        <div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">\n          \uD83D\uDEA8 ".concat(diagnostic.message, "\n        </div>\n        <pre>\n          ").concat(stack, "\n        </pre>\n        <div>\n          ").concat(diagnostic.hints.map(function (hint) {
+        return '<div>' + hint + '</div>';
+      }).join(''), "\n        </div>\n      </div>\n    ");
+    }
+  } catch (err) {
+    _iterator2.e(err);
+  } finally {
+    _iterator2.f();
+  }
+
+  errorHTML += '</div>';
+  overlay.innerHTML = errorHTML;
+  return overlay;
+}
+
+function getParents(bundle, id) {
+  var modules = bundle.modules;
+
+  if (!modules) {
+    return [];
+  }
+
+  var parents = [];
+  var k, d, dep;
+
+  for (k in modules) {
+    for (d in modules[k][1]) {
+      dep = modules[k][1][d];
+
+      if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {
+        parents.push([bundle, k]);
+      }
+    }
+  }
+
+  if (bundle.parent) {
+    parents = parents.concat(getParents(bundle.parent, id));
+  }
+
+  return parents;
+}
+
+function hmrApply(bundle, asset) {
+  var modules = bundle.modules;
+
+  if (!modules) {
+    return;
+  }
+
+  if (modules[asset.id] || !bundle.parent) {
+    if (asset.type === 'css') {
+      var newStyle = document.createElement('style');
+      newStyle.innerHTML = asset.output;
+      document.body.appendChild(newStyle);
+    } else {
+      var fn = new Function('require', 'module', 'exports', asset.output);
+      modules[asset.id] = [fn, asset.depsByBundle[bundle.HMR_BUNDLE_ID]];
+    }
+  } else if (bundle.parent) {
+    hmrApply(bundle.parent, asset);
+  }
+}
+
+function hmrAcceptCheck(bundle, id) {
+  var modules = bundle.modules;
+
+  if (!modules) {
+    return;
+  }
+
+  if (!modules[id] && bundle.parent) {
+    return hmrAcceptCheck(bundle.parent, id);
+  }
+
+  if (checkedAssets[id]) {
+    return;
+  }
+
+  checkedAssets[id] = true;
+  var cached = bundle.cache[id];
+  assetsToAccept.push([bundle, id]);
+
+  if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
+    return true;
+  }
+
+  return getParents(global.parcelRequire, id).some(function (v) {
+    return hmrAcceptCheck(v[0], v[1]);
+  });
+}
+
+function hmrAcceptRun(bundle, id) {
+  var cached = bundle.cache[id];
+  bundle.hotData = {};
+
+  if (cached && cached.hot) {
+    cached.hot.data = bundle.hotData;
+  }
+
+  if (cached && cached.hot && cached.hot._disposeCallbacks.length) {
+    cached.hot._disposeCallbacks.forEach(function (cb) {
+      cb(bundle.hotData);
+    });
+  }
+
+  delete bundle.cache[id];
+  bundle(id);
+  cached = bundle.cache[id];
+
+  if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
+    cached.hot._acceptCallbacks.forEach(function (cb) {
+      var assetsToAlsoAccept = cb(function () {
+        return getParents(global.parcelRequire, id);
+      });
+
+      if (assetsToAlsoAccept && assetsToAccept.length) {
+        assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept);
+      }
+    });
+  }
+
+  acceptedAssets[id] = true;
+}

+ 76 - 0
.parcel-cache/06/b383d8a2237cbeb46c9e13052b1b37.blob

@@ -0,0 +1,76 @@
+"use strict";
+
+var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
+
+exports.__esModule = true;
+exports.wrapMapToPropsConstant = wrapMapToPropsConstant;
+exports.getDependsOnOwnProps = getDependsOnOwnProps;
+exports.wrapMapToPropsFunc = wrapMapToPropsFunc;
+
+var _verifyPlainObject = _interopRequireDefault(require("../utils/verifyPlainObject"));
+
+function wrapMapToPropsConstant(getConstant) {
+  return function initConstantSelector(dispatch, options) {
+    var constant = getConstant(dispatch, options);
+
+    function constantSelector() {
+      return constant;
+    }
+
+    constantSelector.dependsOnOwnProps = false;
+    return constantSelector;
+  };
+} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args
+// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine
+// whether mapToProps needs to be invoked when props have changed.
+//
+// A length of one signals that mapToProps does not depend on props from the parent component.
+// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and
+// therefore not reporting its length accurately..
+
+
+function getDependsOnOwnProps(mapToProps) {
+  return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
+} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,
+// this function wraps mapToProps in a proxy function which does several things:
+//
+//  * Detects whether the mapToProps function being called depends on props, which
+//    is used by selectorFactory to decide if it should reinvoke on props changes.
+//
+//  * On first call, handles mapToProps if returns another function, and treats that
+//    new function as the true mapToProps for subsequent calls.
+//
+//  * On first call, verifies the first result is a plain object, in order to warn
+//    the developer that their mapToProps function is not returning a valid result.
+//
+
+
+function wrapMapToPropsFunc(mapToProps, methodName) {
+  return function initProxySelector(dispatch, _ref) {
+    var displayName = _ref.displayName;
+
+    var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {
+      return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);
+    }; // allow detectFactoryAndVerify to get ownProps
+
+
+    proxy.dependsOnOwnProps = true;
+
+    proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {
+      proxy.mapToProps = mapToProps;
+      proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
+      var props = proxy(stateOrDispatch, ownProps);
+
+      if (typeof props === 'function') {
+        proxy.mapToProps = props;
+        proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
+        props = proxy(stateOrDispatch, ownProps);
+      }
+
+      if ("development" !== 'production') (0, _verifyPlainObject["default"])(props, displayName, methodName);
+      return props;
+    };
+
+    return proxy;
+  };
+}

+ 26 - 0
.parcel-cache/08/a6260a80f2a09bd2406a445b263c36.blob

@@ -0,0 +1,26 @@
+"use strict";
+
+var helpers = require("../../../node_modules/@parcel/transformer-react-refresh-wrap/lib/helpers/helpers.js");
+
+var prevRefreshReg = window.$RefreshReg$;
+var prevRefreshSig = window.$RefreshSig$;
+helpers.prelude(module);
+
+try {
+  var _react = _interopRequireDefault(require("react"));
+
+  var _reactDom = _interopRequireDefault(require("react-dom"));
+
+  var _App = _interopRequireDefault(require("./App"));
+
+  var _core = require("@emotion/core");
+
+  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+
+  _reactDom["default"].render((0, _core.jsx)(_App["default"], null), document.getElementById("root"));
+
+  helpers.postlude(module);
+} finally {
+  window.$RefreshReg$ = prevRefreshReg;
+  window.$RefreshSig$ = prevRefreshSig;
+}

BIN
.parcel-cache/09/c591012a74868674803630427ceb6f.blob


BIN
.parcel-cache/0b/55a491f9902481d3f8a48da365e1f4.v8


BIN
.parcel-cache/0c/44b6b79a29f7e7004c8dd6e5c93780.v8


BIN
.parcel-cache/0d/56c2efe1da98bfebbb323c52071548.v8


BIN
.parcel-cache/0d/6ccf11ce5a35965ac11aeecd7b2dd5.blob


+ 24 - 0
.parcel-cache/0f/8218104ae14837688ad483b2b10830.blob

@@ -0,0 +1,24 @@
+"use strict";
+
+exports.__esModule = true;
+exports.getBatch = exports.setBatch = void 0;
+
+// Default to a dummy "batch" implementation that just runs the callback
+function defaultNoopBatch(callback) {
+  callback();
+}
+
+var batch = defaultNoopBatch; // Allow injecting another batching function later
+
+var setBatch = function setBatch(newBatch) {
+  return batch = newBatch;
+}; // Supply a getter just to skip dealing with ESM bindings
+
+
+exports.setBatch = setBatch;
+
+var getBatch = function getBatch() {
+  return batch;
+};
+
+exports.getBatch = getBatch;

BIN
.parcel-cache/0f/f425d86cea570881e568b1789d1694.blob


BIN
.parcel-cache/11/0e2906cd9ad7492fb5d7f78d8e0602.v8


BIN
.parcel-cache/12/5b48bf535a97f3b255d4f92506acc4.blob


BIN
.parcel-cache/13/0b9856cb9a07222b8417bbf23cb04f.blob


+ 2 - 0
.parcel-cache/13/2aeecacb4ca0db56fd124ad8012a4c.txt

@@ -0,0 +1,2 @@
+80226556
+1591883431162088000

+ 643 - 0
.parcel-cache/16/8294e7ff21045c69aeea6308fb718c.blob

@@ -0,0 +1,643 @@
+/**
+ * Copyright (c) 2013-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.
+ */
+'use strict';
+
+var ReactIs = require('react-is');
+
+var assign = require('object-assign');
+
+var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
+
+var checkPropTypes = require('./checkPropTypes');
+
+var has = Function.call.bind(Object.prototype.hasOwnProperty);
+
+var printWarning = function () {};
+
+if ("development" !== 'production') {
+  printWarning = function (text) {
+    var message = 'Warning: ' + text;
+
+    if (typeof console !== 'undefined') {
+      console.error(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) {}
+  };
+}
+
+function emptyFunctionThatReturnsNull() {
+  return null;
+}
+
+module.exports = function (isValidElement, throwOnDirectAccess) {
+  /* global Symbol */
+  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
+  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
+
+  /**
+   * Returns the iterator method function contained on the iterable object.
+   *
+   * Be sure to invoke the function with the iterable as context:
+   *
+   *     var iteratorFn = getIteratorFn(myIterable);
+   *     if (iteratorFn) {
+   *       var iterator = iteratorFn.call(myIterable);
+   *       ...
+   *     }
+   *
+   * @param {?object} maybeIterable
+   * @return {?function}
+   */
+
+  function getIteratorFn(maybeIterable) {
+    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
+
+    if (typeof iteratorFn === 'function') {
+      return iteratorFn;
+    }
+  }
+  /**
+   * Collection of methods that allow declaration and validation of props that are
+   * supplied to React components. Example usage:
+   *
+   *   var Props = require('ReactPropTypes');
+   *   var MyArticle = React.createClass({
+   *     propTypes: {
+   *       // An optional string prop named "description".
+   *       description: Props.string,
+   *
+   *       // A required enum prop named "category".
+   *       category: Props.oneOf(['News','Photos']).isRequired,
+   *
+   *       // A prop named "dialog" that requires an instance of Dialog.
+   *       dialog: Props.instanceOf(Dialog).isRequired
+   *     },
+   *     render: function() { ... }
+   *   });
+   *
+   * A more formal specification of how these methods are used:
+   *
+   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
+   *   decl := ReactPropTypes.{type}(.isRequired)?
+   *
+   * Each and every declaration produces a function with the same signature. This
+   * allows the creation of custom validation functions. For example:
+   *
+   *  var MyLink = React.createClass({
+   *    propTypes: {
+   *      // An optional string or URI prop named "href".
+   *      href: function(props, propName, componentName) {
+   *        var propValue = props[propName];
+   *        if (propValue != null && typeof propValue !== 'string' &&
+   *            !(propValue instanceof URI)) {
+   *          return new Error(
+   *            'Expected a string or an URI for ' + propName + ' in ' +
+   *            componentName
+   *          );
+   *        }
+   *      }
+   *    },
+   *    render: function() {...}
+   *  });
+   *
+   * @internal
+   */
+
+
+  var ANONYMOUS = '<<anonymous>>'; // Important!
+  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
+
+  var ReactPropTypes = {
+    array: createPrimitiveTypeChecker('array'),
+    bool: createPrimitiveTypeChecker('boolean'),
+    func: createPrimitiveTypeChecker('function'),
+    number: createPrimitiveTypeChecker('number'),
+    object: createPrimitiveTypeChecker('object'),
+    string: createPrimitiveTypeChecker('string'),
+    symbol: createPrimitiveTypeChecker('symbol'),
+    any: createAnyTypeChecker(),
+    arrayOf: createArrayOfTypeChecker,
+    element: createElementTypeChecker(),
+    elementType: createElementTypeTypeChecker(),
+    instanceOf: createInstanceTypeChecker,
+    node: createNodeChecker(),
+    objectOf: createObjectOfTypeChecker,
+    oneOf: createEnumTypeChecker,
+    oneOfType: createUnionTypeChecker,
+    shape: createShapeTypeChecker,
+    exact: createStrictShapeTypeChecker
+  };
+  /**
+   * inlined Object.is polyfill to avoid requiring consumers ship their own
+   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
+   */
+
+  /*eslint-disable no-self-compare*/
+
+  function is(x, y) {
+    // SameValue algorithm
+    if (x === y) {
+      // Steps 1-5, 7-10
+      // Steps 6.b-6.e: +0 != -0
+      return x !== 0 || 1 / x === 1 / y;
+    } else {
+      // Step 6.a: NaN == NaN
+      return x !== x && y !== y;
+    }
+  }
+  /*eslint-enable no-self-compare*/
+
+  /**
+   * We use an Error-like object for backward compatibility as people may call
+   * PropTypes directly and inspect their output. However, we don't use real
+   * Errors anymore. We don't inspect their stack anyway, and creating them
+   * is prohibitively expensive if they are created too often, such as what
+   * happens in oneOfType() for any type before the one that matched.
+   */
+
+
+  function PropTypeError(message) {
+    this.message = message;
+    this.stack = '';
+  } // Make `instanceof Error` still work for returned errors.
+
+
+  PropTypeError.prototype = Error.prototype;
+
+  function createChainableTypeChecker(validate) {
+    if ("development" !== 'production') {
+      var manualPropTypeCallCache = {};
+      var manualPropTypeWarningCount = 0;
+    }
+
+    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
+      componentName = componentName || ANONYMOUS;
+      propFullName = propFullName || propName;
+
+      if (secret !== ReactPropTypesSecret) {
+        if (throwOnDirectAccess) {
+          // New behavior only for users of `prop-types` package
+          var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use `PropTypes.checkPropTypes()` to call them. ' + 'Read more at http://fb.me/use-check-prop-types');
+          err.name = 'Invariant Violation';
+          throw err;
+        } else if ("development" !== 'production' && typeof console !== 'undefined') {
+          // Old behavior for people using React.PropTypes
+          var cacheKey = componentName + ':' + propName;
+
+          if (!manualPropTypeCallCache[cacheKey] && // Avoid spamming the console because they are often not actionable except for lib authors
+          manualPropTypeWarningCount < 3) {
+            printWarning('You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.');
+            manualPropTypeCallCache[cacheKey] = true;
+            manualPropTypeWarningCount++;
+          }
+        }
+      }
+
+      if (props[propName] == null) {
+        if (isRequired) {
+          if (props[propName] === null) {
+            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
+          }
+
+          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
+        }
+
+        return null;
+      } else {
+        return validate(props, propName, componentName, location, propFullName);
+      }
+    }
+
+    var chainedCheckType = checkType.bind(null, false);
+    chainedCheckType.isRequired = checkType.bind(null, true);
+    return chainedCheckType;
+  }
+
+  function createPrimitiveTypeChecker(expectedType) {
+    function validate(props, propName, componentName, location, propFullName, secret) {
+      var propValue = props[propName];
+      var propType = getPropType(propValue);
+
+      if (propType !== expectedType) {
+        // `propValue` being instance of, say, date/regexp, pass the 'object'
+        // check, but we can offer a more precise error message here rather than
+        // 'of type `object`'.
+        var preciseType = getPreciseType(propValue);
+        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
+      }
+
+      return null;
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createAnyTypeChecker() {
+    return createChainableTypeChecker(emptyFunctionThatReturnsNull);
+  }
+
+  function createArrayOfTypeChecker(typeChecker) {
+    function validate(props, propName, componentName, location, propFullName) {
+      if (typeof typeChecker !== 'function') {
+        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
+      }
+
+      var propValue = props[propName];
+
+      if (!Array.isArray(propValue)) {
+        var propType = getPropType(propValue);
+        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
+      }
+
+      for (var i = 0; i < propValue.length; i++) {
+        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
+
+        if (error instanceof Error) {
+          return error;
+        }
+      }
+
+      return null;
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createElementTypeChecker() {
+    function validate(props, propName, componentName, location, propFullName) {
+      var propValue = props[propName];
+
+      if (!isValidElement(propValue)) {
+        var propType = getPropType(propValue);
+        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
+      }
+
+      return null;
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createElementTypeTypeChecker() {
+    function validate(props, propName, componentName, location, propFullName) {
+      var propValue = props[propName];
+
+      if (!ReactIs.isValidElementType(propValue)) {
+        var propType = getPropType(propValue);
+        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
+      }
+
+      return null;
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createInstanceTypeChecker(expectedClass) {
+    function validate(props, propName, componentName, location, propFullName) {
+      if (!(props[propName] instanceof expectedClass)) {
+        var expectedClassName = expectedClass.name || ANONYMOUS;
+        var actualClassName = getClassName(props[propName]);
+        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
+      }
+
+      return null;
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createEnumTypeChecker(expectedValues) {
+    if (!Array.isArray(expectedValues)) {
+      if ("development" !== 'production') {
+        if (arguments.length > 1) {
+          printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');
+        } else {
+          printWarning('Invalid argument supplied to oneOf, expected an array.');
+        }
+      }
+
+      return emptyFunctionThatReturnsNull;
+    }
+
+    function validate(props, propName, componentName, location, propFullName) {
+      var propValue = props[propName];
+
+      for (var i = 0; i < expectedValues.length; i++) {
+        if (is(propValue, expectedValues[i])) {
+          return null;
+        }
+      }
+
+      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
+        var type = getPreciseType(value);
+
+        if (type === 'symbol') {
+          return String(value);
+        }
+
+        return value;
+      });
+      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createObjectOfTypeChecker(typeChecker) {
+    function validate(props, propName, componentName, location, propFullName) {
+      if (typeof typeChecker !== 'function') {
+        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
+      }
+
+      var propValue = props[propName];
+      var propType = getPropType(propValue);
+
+      if (propType !== 'object') {
+        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
+      }
+
+      for (var key in propValue) {
+        if (has(propValue, key)) {
+          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
+
+          if (error instanceof Error) {
+            return error;
+          }
+        }
+      }
+
+      return null;
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createUnionTypeChecker(arrayOfTypeCheckers) {
+    if (!Array.isArray(arrayOfTypeCheckers)) {
+      "development" !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
+      return emptyFunctionThatReturnsNull;
+    }
+
+    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
+      var checker = arrayOfTypeCheckers[i];
+
+      if (typeof checker !== 'function') {
+        printWarning('Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.');
+        return emptyFunctionThatReturnsNull;
+      }
+    }
+
+    function validate(props, propName, componentName, location, propFullName) {
+      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
+        var checker = arrayOfTypeCheckers[i];
+
+        if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
+          return null;
+        }
+      }
+
+      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createNodeChecker() {
+    function validate(props, propName, componentName, location, propFullName) {
+      if (!isNode(props[propName])) {
+        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
+      }
+
+      return null;
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createShapeTypeChecker(shapeTypes) {
+    function validate(props, propName, componentName, location, propFullName) {
+      var propValue = props[propName];
+      var propType = getPropType(propValue);
+
+      if (propType !== 'object') {
+        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
+      }
+
+      for (var key in shapeTypes) {
+        var checker = shapeTypes[key];
+
+        if (!checker) {
+          continue;
+        }
+
+        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
+
+        if (error) {
+          return error;
+        }
+      }
+
+      return null;
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function createStrictShapeTypeChecker(shapeTypes) {
+    function validate(props, propName, componentName, location, propFullName) {
+      var propValue = props[propName];
+      var propType = getPropType(propValue);
+
+      if (propType !== 'object') {
+        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
+      } // We need to check all keys in case some are required but missing from
+      // props.
+
+
+      var allKeys = assign({}, props[propName], shapeTypes);
+
+      for (var key in allKeys) {
+        var checker = shapeTypes[key];
+
+        if (!checker) {
+          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\nBad object: ' + JSON.stringify(props[propName], null, '  ') + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, '  '));
+        }
+
+        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
+
+        if (error) {
+          return error;
+        }
+      }
+
+      return null;
+    }
+
+    return createChainableTypeChecker(validate);
+  }
+
+  function isNode(propValue) {
+    switch (typeof propValue) {
+      case 'number':
+      case 'string':
+      case 'undefined':
+        return true;
+
+      case 'boolean':
+        return !propValue;
+
+      case 'object':
+        if (Array.isArray(propValue)) {
+          return propValue.every(isNode);
+        }
+
+        if (propValue === null || isValidElement(propValue)) {
+          return true;
+        }
+
+        var iteratorFn = getIteratorFn(propValue);
+
+        if (iteratorFn) {
+          var iterator = iteratorFn.call(propValue);
+          var step;
+
+          if (iteratorFn !== propValue.entries) {
+            while (!(step = iterator.next()).done) {
+              if (!isNode(step.value)) {
+                return false;
+              }
+            }
+          } else {
+            // Iterator will provide entry [k,v] tuples rather than values.
+            while (!(step = iterator.next()).done) {
+              var entry = step.value;
+
+              if (entry) {
+                if (!isNode(entry[1])) {
+                  return false;
+                }
+              }
+            }
+          }
+        } else {
+          return false;
+        }
+
+        return true;
+
+      default:
+        return false;
+    }
+  }
+
+  function isSymbol(propType, propValue) {
+    // Native Symbol.
+    if (propType === 'symbol') {
+      return true;
+    } // falsy value can't be a Symbol
+
+
+    if (!propValue) {
+      return false;
+    } // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
+
+
+    if (propValue['@@toStringTag'] === 'Symbol') {
+      return true;
+    } // Fallback for non-spec compliant Symbols which are polyfilled.
+
+
+    if (typeof Symbol === 'function' && propValue instanceof Symbol) {
+      return true;
+    }
+
+    return false;
+  } // Equivalent of `typeof` but with special handling for array and regexp.
+
+
+  function getPropType(propValue) {
+    var propType = typeof propValue;
+
+    if (Array.isArray(propValue)) {
+      return 'array';
+    }
+
+    if (propValue instanceof RegExp) {
+      // Old webkits (at least until Android 4.0) return 'function' rather than
+      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
+      // passes PropTypes.object.
+      return 'object';
+    }
+
+    if (isSymbol(propType, propValue)) {
+      return 'symbol';
+    }
+
+    return propType;
+  } // This handles more types than `getPropType`. Only used for error messages.
+  // See `createPrimitiveTypeChecker`.
+
+
+  function getPreciseType(propValue) {
+    if (typeof propValue === 'undefined' || propValue === null) {
+      return '' + propValue;
+    }
+
+    var propType = getPropType(propValue);
+
+    if (propType === 'object') {
+      if (propValue instanceof Date) {
+        return 'date';
+      } else if (propValue instanceof RegExp) {
+        return 'regexp';
+      }
+    }
+
+    return propType;
+  } // Returns a string that is postfixed to a warning about an invalid type.
+  // For example, "undefined" or "of type array"
+
+
+  function getPostfixForTypeWarning(value) {
+    var type = getPreciseType(value);
+
+    switch (type) {
+      case 'array':
+      case 'object':
+        return 'an ' + type;
+
+      case 'boolean':
+      case 'date':
+      case 'regexp':
+        return 'a ' + type;
+
+      default:
+        return type;
+    }
+  } // Returns class name of the object, if any.
+
+
+  function getClassName(propValue) {
+    if (!propValue.constructor || !propValue.constructor.name) {
+      return ANONYMOUS;
+    }
+
+    return propValue.constructor.name;
+  }
+
+  ReactPropTypes.checkPropTypes = checkPropTypes;
+  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
+  ReactPropTypes.PropTypes = ReactPropTypes;
+  return ReactPropTypes;
+};

BIN
.parcel-cache/17/2c8c4491652a2711df0e5a007e9332.v8


BIN
.parcel-cache/17/832b468a87b2ba82cb87a905bb125a.v8


BIN
.parcel-cache/18/4ead623a233d34e77143dc903204e6.v8


BIN
.parcel-cache/19/ae38c87251ae95d30c229143f35443.v8


BIN
.parcel-cache/1a/67e9b270ca1b895323a324af24e9e1.blob


BIN
.parcel-cache/1a/c8d64f5947da805f677cd14ae34b9e.blob


BIN
.parcel-cache/1a/f364050ffc7cd1174605384e49bb3f.blob


BIN
.parcel-cache/1b/f847786814f7578a8699d62f2bc8ba.v8


+ 11 - 0
.parcel-cache/1e/24f42a4a380ec6e2d6970ec44b3877.blob

@@ -0,0 +1,11 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.REMOVE_DUMMY_ACTION = exports.ADD_DUMMY_ACTION = void 0;
+// This is just a placeholder. It should be used as a guideline and then deleted.
+var ADD_DUMMY_ACTION = "ADD_DUMMY_ACTION";
+exports.ADD_DUMMY_ACTION = ADD_DUMMY_ACTION;
+var REMOVE_DUMMY_ACTION = "REMOVE_DUMMY_ACTION";
+exports.REMOVE_DUMMY_ACTION = REMOVE_DUMMY_ACTION;

BIN
.parcel-cache/1f/045222640676f4dc7e6a975879cc1b.v8


BIN
.parcel-cache/1f/97a927139bf5e0656f836c61a74a30.blob


+ 34 - 0
.parcel-cache/1f/9defa36d86a5c7087aefafe6099400.blob

@@ -0,0 +1,34 @@
+'use strict';
+
+var global = arguments[3];
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _ponyfill = require('./ponyfill.js');
+
+var _ponyfill2 = _interopRequireDefault(_ponyfill);
+
+function _interopRequireDefault(obj) {
+  return obj && obj.__esModule ? obj : {
+    'default': obj
+  };
+}
+
+var root;
+/* global window */
+
+if (typeof self !== 'undefined') {
+  root = self;
+} else if (typeof window !== 'undefined') {
+  root = window;
+} else if (typeof global !== 'undefined') {
+  root = global;
+} else if (typeof module !== 'undefined') {
+  root = module;
+} else {
+  root = Function('return this')();
+}
+
+var result = (0, _ponyfill2['default'])(root);
+exports['default'] = result;

BIN
.parcel-cache/22/6ea3fcb933ffe7a691751ca967606b.v8


BIN
.parcel-cache/22/79dfee9bd5c7974bb7223e2e98dbe8.blob


BIN
.parcel-cache/25/8a0f457f339d001e83fa1bfd1b9873.v8


BIN
.parcel-cache/26/22a598ca54cbe4a1df65cdee7a9f25.v8


+ 7 - 0
.parcel-cache/27/2ec97392d556bad3d4d5050e1d9886.blob

@@ -0,0 +1,7 @@
+'use strict';
+
+if ("development" === 'production') {
+  module.exports = require('./cjs/react.production.min.js');
+} else {
+  module.exports = require('./cjs/react.development.js');
+}

BIN
.parcel-cache/28/51dce5d6e77c001f2e505ed8e51710.v8


BIN
.parcel-cache/2b/a89e4ce9633582f0fc0f9ddfbe7cc8.blob


+ 29 - 0
.parcel-cache/2b/c22f2d110c2155efbee67a748af63a.blob

@@ -0,0 +1,29 @@
+"use strict";
+
+exports.__esModule = true;
+exports["default"] = warning;
+
+/**
+ * Prints a warning in the console if it exists.
+ *
+ * @param {String} message The warning message.
+ * @returns {void}
+ */
+function warning(message) {
+  /* eslint-disable no-console */
+  if (typeof console !== 'undefined' && typeof console.error === 'function') {
+    console.error(message);
+  }
+  /* eslint-enable no-console */
+
+
+  try {
+    // This error was thrown as a convenience so that if you enable
+    // "break on all exceptions" in your console,
+    // it would pause the execution at this line.
+    throw new Error(message);
+    /* eslint-disable no-empty */
+  } catch (e) {}
+  /* eslint-enable no-empty */
+
+}

BIN
.parcel-cache/2d/e8129d22da75a243bb3d5ac5efaa90.v8


+ 54 - 0
.parcel-cache/2e/882443712c111ffb4f55786a9e669b.blob

@@ -0,0 +1,54 @@
+"use strict";
+
+var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
+
+exports.__esModule = true;
+exports.defaultMergeProps = defaultMergeProps;
+exports.wrapMergePropsFunc = wrapMergePropsFunc;
+exports.whenMergePropsIsFunction = whenMergePropsIsFunction;
+exports.whenMergePropsIsOmitted = whenMergePropsIsOmitted;
+exports["default"] = void 0;
+
+var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
+
+var _verifyPlainObject = _interopRequireDefault(require("../utils/verifyPlainObject"));
+
+function defaultMergeProps(stateProps, dispatchProps, ownProps) {
+  return (0, _extends2["default"])({}, ownProps, {}, stateProps, {}, dispatchProps);
+}
+
+function wrapMergePropsFunc(mergeProps) {
+  return function initMergePropsProxy(dispatch, _ref) {
+    var displayName = _ref.displayName,
+        pure = _ref.pure,
+        areMergedPropsEqual = _ref.areMergedPropsEqual;
+    var hasRunOnce = false;
+    var mergedProps;
+    return function mergePropsProxy(stateProps, dispatchProps, ownProps) {
+      var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);
+
+      if (hasRunOnce) {
+        if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;
+      } else {
+        hasRunOnce = true;
+        mergedProps = nextMergedProps;
+        if ("development" !== 'production') (0, _verifyPlainObject["default"])(mergedProps, displayName, 'mergeProps');
+      }
+
+      return mergedProps;
+    };
+  };
+}
+
+function whenMergePropsIsFunction(mergeProps) {
+  return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;
+}
+
+function whenMergePropsIsOmitted(mergeProps) {
+  return !mergeProps ? function () {
+    return defaultMergeProps;
+  } : undefined;
+}
+
+var _default = [whenMergePropsIsFunction, whenMergePropsIsOmitted];
+exports["default"] = _default;

BIN
.parcel-cache/2f/9dd52702122ac3d38ddf0a3ca6ef02.blob


+ 99 - 0
.parcel-cache/2f/e32642b267413c48e9d7c1caf75d9f.blob

@@ -0,0 +1,99 @@
+"use strict";
+
+var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
+
+exports.__esModule = true;
+exports.impureFinalPropsSelectorFactory = impureFinalPropsSelectorFactory;
+exports.pureFinalPropsSelectorFactory = pureFinalPropsSelectorFactory;
+exports["default"] = finalPropsSelectorFactory;
+
+var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
+
+var _verifySubselectors = _interopRequireDefault(require("./verifySubselectors"));
+
+function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {
+  return function impureFinalPropsSelector(state, ownProps) {
+    return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);
+  };
+}
+
+function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {
+  var areStatesEqual = _ref.areStatesEqual,
+      areOwnPropsEqual = _ref.areOwnPropsEqual,
+      areStatePropsEqual = _ref.areStatePropsEqual;
+  var hasRunAtLeastOnce = false;
+  var state;
+  var ownProps;
+  var stateProps;
+  var dispatchProps;
+  var mergedProps;
+
+  function handleFirstCall(firstState, firstOwnProps) {
+    state = firstState;
+    ownProps = firstOwnProps;
+    stateProps = mapStateToProps(state, ownProps);
+    dispatchProps = mapDispatchToProps(dispatch, ownProps);
+    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
+    hasRunAtLeastOnce = true;
+    return mergedProps;
+  }
+
+  function handleNewPropsAndNewState() {
+    stateProps = mapStateToProps(state, ownProps);
+    if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
+    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
+    return mergedProps;
+  }
+
+  function handleNewProps() {
+    if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);
+    if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
+    mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
+    return mergedProps;
+  }
+
+  function handleNewState() {
+    var nextStateProps = mapStateToProps(state, ownProps);
+    var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);
+    stateProps = nextStateProps;
+    if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
+    return mergedProps;
+  }
+
+  function handleSubsequentCalls(nextState, nextOwnProps) {
+    var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);
+    var stateChanged = !areStatesEqual(nextState, state);
+    state = nextState;
+    ownProps = nextOwnProps;
+    if (propsChanged && stateChanged) return handleNewPropsAndNewState();
+    if (propsChanged) return handleNewProps();
+    if (stateChanged) return handleNewState();
+    return mergedProps;
+  }
+
+  return function pureFinalPropsSelector(nextState, nextOwnProps) {
+    return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);
+  };
+} // TODO: Add more comments
+// If pure is true, the selector returned by selectorFactory will memoize its results,
+// allowing connectAdvanced's shouldComponentUpdate to return false if final
+// props have not changed. If false, the selector will always return a new
+// object and shouldComponentUpdate will always return true.
+
+
+function finalPropsSelectorFactory(dispatch, _ref2) {
+  var initMapStateToProps = _ref2.initMapStateToProps,
+      initMapDispatchToProps = _ref2.initMapDispatchToProps,
+      initMergeProps = _ref2.initMergeProps,
+      options = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]);
+  var mapStateToProps = initMapStateToProps(dispatch, options);
+  var mapDispatchToProps = initMapDispatchToProps(dispatch, options);
+  var mergeProps = initMergeProps(dispatch, options);
+
+  if ("development" !== 'production') {
+    (0, _verifySubselectors["default"])(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);
+  }
+
+  var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;
+  return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);
+}

BIN
.parcel-cache/30/1857460c291521fbfad2d13e6435d6.v8


BIN
.parcel-cache/31/ae2924ae355d301ab68385b07fabd4.blob


+ 37 - 0
.parcel-cache/31/ae4f46a9cd7eb91a18b2733834b986.blob

@@ -0,0 +1,37 @@
+'use strict';
+
+function checkDCE() {
+  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */
+  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {
+    return;
+  }
+
+  if ("development" !== 'production') {
+    // This branch is unreachable because this function is only called
+    // in production, but the condition is true only in development.
+    // Therefore if the branch is still here, dead code elimination wasn't
+    // properly applied.
+    // Don't change the message. React DevTools relies on it. Also make sure
+    // this message doesn't occur elsewhere in this function, or it will cause
+    // a false positive.
+    throw new Error('^_^');
+  }
+
+  try {
+    // Verify that the code above has been dead code eliminated (DCE'd).
+    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);
+  } catch (err) {
+    // DevTools shouldn't crash React, no matter what.
+    // We should still report in case we break this code.
+    console.error(err);
+  }
+}
+
+if ("development" === 'production') {
+  // DCE check should happen before ReactDOM bundle executes so that
+  // DevTools can report bad minification during injection.
+  checkDCE();
+  module.exports = require('./cjs/react-dom.production.min.js');
+} else {
+  module.exports = require('./cjs/react-dom.development.js');
+}

BIN
.parcel-cache/32/91e1c656fb417d34f92632e4d474bf.v8


+ 55 - 0
.parcel-cache/33/40420c19b7e5d2719a65a0131148ff.blob

@@ -0,0 +1,55 @@
+var _typeof = require("../helpers/typeof");
+
+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;

+ 48 - 0
.parcel-cache/33/ec6a29744622bf8e199d3fe2565dfd.blob

@@ -0,0 +1,48 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports["default"] = void 0;
+
+var _DummyTypes = require("./../types/DummyTypes");
+
+function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
+
+function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+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 _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
+
+function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
+
+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 initialState = [];
+
+var DummyReducer = function DummyReducer() {
+  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;
+  var action = arguments.length > 1 ? arguments[1] : undefined;
+
+  switch (action.type) {
+    case _DummyTypes.ADD_DUMMY_ACTION:
+      return [].concat(_toConsumableArray(state), [action.dummy]);
+
+    case _DummyTypes.REMOVE_DUMMY_ACTION:
+      return state.filter(function (dummy) {
+        return dummy.id !== action.id;
+      });
+
+    default:
+      return state;
+  }
+};
+
+_c = DummyReducer;
+var _default = DummyReducer;
+exports["default"] = _default;
+
+var _c;
+
+$RefreshReg$(_c, "DummyReducer");

BIN
.parcel-cache/34/029aa1611c0174aef91a5c1842e234.blob


BIN
.parcel-cache/34/7da848d3ab1b94f1c49da614b33f7b.v8


BIN
.parcel-cache/35/12886de872ba40491215865a4b0c70.v8


+ 23 - 0
.parcel-cache/35/72a0dc5e9536242b22fe5ac260fe35.blob

@@ -0,0 +1,23 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+Object.defineProperty(exports, "Layout", {
+  enumerable: true,
+  get: function get() {
+    return _Layout["default"];
+  }
+});
+Object.defineProperty(exports, "VideoGallery", {
+  enumerable: true,
+  get: function get() {
+    return _VideoGallery["default"];
+  }
+});
+
+var _Layout = _interopRequireDefault(require("./Layout"));
+
+var _VideoGallery = _interopRequireDefault(require("./VideoGallery"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

BIN
.parcel-cache/35/8a276fd5336cecf3b2581477335f8e.v8


BIN
.parcel-cache/36/9a90d281caed9c4b31b4f16ebc0e79.v8


+ 7 - 0
.parcel-cache/37/ac8e423f0e3786fd88fb753ff3ae7e.blob

@@ -0,0 +1,7 @@
+'use strict';
+
+if ("development" === 'production') {
+  module.exports = require('./cjs/scheduler-tracing.production.min.js');
+} else {
+  module.exports = require('./cjs/scheduler-tracing.development.js');
+}

+ 13 - 0
.parcel-cache/39/0bc6700660c799ca902b46dd7de1a0.blob

@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="UTF-8">
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
+		<title>Atlas</title>
+	</head>
+
+	<body>
+		<div id="root">not rendered</div>
+		<script src="89bc4fb69ef82c15dd39c4a8f83f910e"></script>
+	</body>
+</html>

BIN
.parcel-cache/39/ef40343f7dec15d3b78a9c7249197c.v8


BIN
.parcel-cache/3a/1ac7387389e8e98905abca4f5c9be8.v8


BIN
.parcel-cache/3a/841981a262e8d7b31fbd40dcde0c41.blob


BIN
.parcel-cache/3c/35c1401391618dc6ac55f4fa61548a.v8


BIN
.parcel-cache/3c/7c9c199974c622eb65614103b7b019.blob


BIN
.parcel-cache/3d/028eaacdc63877125d33eaff65ffe6.v8


BIN
.parcel-cache/3d/ec8732f2ff6ebac7b5a231d9d4f19f.v8


BIN
.parcel-cache/3e/60072b25c9105950b3f9c14a612a7a.v8


+ 7 - 0
.parcel-cache/3e/77119e7ee832549d0f0a9c1830ccdf.blob

@@ -0,0 +1,7 @@
+'use strict';
+
+if ("development" === 'production') {
+  module.exports = require('./cjs/scheduler.production.min.js');
+} else {
+  module.exports = require('./cjs/scheduler.development.js');
+}

BIN
.parcel-cache/3e/c121aebdd50d1e391ae81260a8b4ce.v8


BIN
.parcel-cache/3f/4e84bc1c1b3a5c1144ceb2a0f3399e.v8


BIN
.parcel-cache/42/44d0569269721154c6cfb81491ad8b.blob


+ 47 - 0
.parcel-cache/42/c69973c8236a851797e9d54049dd62.blob

@@ -0,0 +1,47 @@
+"use strict";
+
+var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
+
+exports.__esModule = true;
+
+var _Provider = _interopRequireDefault(require("./components/Provider"));
+
+exports.Provider = _Provider["default"];
+
+var _connectAdvanced = _interopRequireDefault(require("./components/connectAdvanced"));
+
+exports.connectAdvanced = _connectAdvanced["default"];
+
+var _Context = require("./components/Context");
+
+exports.ReactReduxContext = _Context.ReactReduxContext;
+
+var _connect = _interopRequireDefault(require("./connect/connect"));
+
+exports.connect = _connect["default"];
+
+var _useDispatch = require("./hooks/useDispatch");
+
+exports.useDispatch = _useDispatch.useDispatch;
+exports.createDispatchHook = _useDispatch.createDispatchHook;
+
+var _useSelector = require("./hooks/useSelector");
+
+exports.useSelector = _useSelector.useSelector;
+exports.createSelectorHook = _useSelector.createSelectorHook;
+
+var _useStore = require("./hooks/useStore");
+
+exports.useStore = _useStore.useStore;
+exports.createStoreHook = _useStore.createStoreHook;
+
+var _batch = require("./utils/batch");
+
+var _reactBatchedUpdates = require("./utils/reactBatchedUpdates");
+
+exports.batch = _reactBatchedUpdates.unstable_batchedUpdates;
+
+var _shallowEqual = _interopRequireDefault(require("./utils/shallowEqual"));
+
+exports.shallowEqual = _shallowEqual["default"];
+(0, _batch.setBatch)(_reactBatchedUpdates.unstable_batchedUpdates);

BIN
.parcel-cache/45/079ec6bbf64d0bc6febd31e83b96bd.v8


BIN
.parcel-cache/45/c816405ac4aef98afac0431bb399c0.v8


+ 2 - 0
.parcel-cache/46/ba2fa9c4984e0394662d57018ecda8.txt

@@ -0,0 +1,2 @@
+80226511
+1591883431157686000

BIN
.parcel-cache/47/1a56d7f10a1e8686a405227650dc6f.blob


+ 558 - 0
.parcel-cache/47/f4192b6f0c76c54861e24f739c272b.blob

@@ -0,0 +1,558 @@
+/** @license React v0.6.0
+ * react-refresh-runtime.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.
+ */
+'use strict';
+
+if ("development" !== "production") {
+  (function () {
+    'use strict'; // 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; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
+    // (unstable) APIs that have been removed. Can we remove the symbols?
+
+    var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
+    var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
+    var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // We never remove these associations.
+    // It's OK to reference families, but use WeakMap/Set for types.
+
+    var allFamiliesByID = new Map();
+    var allFamiliesByType = new PossiblyWeakMap();
+    var allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families
+    // that have actually been edited here. This keeps checks fast.
+    // $FlowIssue
+
+    var updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call.
+    // It is an array of [Family, NextType] tuples.
+
+    var pendingUpdates = []; // This is injected by the renderer via DevTools global hook.
+
+    var helpersByRendererID = new Map();
+    var helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates.
+
+    var mountedRoots = new Set(); // If a root captures an error, we add its element to this Map so we can retry on edit.
+
+    var failedRoots = new Map();
+    var didSomeRootFailOnMount = false;
+
+    function computeFullKey(signature) {
+      if (signature.fullKey !== null) {
+        return signature.fullKey;
+      }
+
+      var fullKey = signature.ownKey;
+      var hooks;
+
+      try {
+        hooks = signature.getCustomHooks();
+      } catch (err) {
+        // This can happen in an edge case, e.g. if expression like Foo.useSomething
+        // depends on Foo which is lazily initialized during rendering.
+        // In that case just assume we'll have to remount.
+        signature.forceReset = true;
+        signature.fullKey = fullKey;
+        return fullKey;
+      }
+
+      for (var i = 0; i < hooks.length; i++) {
+        var hook = hooks[i];
+
+        if (typeof hook !== 'function') {
+          // Something's wrong. Assume we need to remount.
+          signature.forceReset = true;
+          signature.fullKey = fullKey;
+          return fullKey;
+        }
+
+        var nestedHookSignature = allSignaturesByType.get(hook);
+
+        if (nestedHookSignature === undefined) {
+          // No signature means Hook wasn't in the source code, e.g. in a library.
+          // We'll skip it because we can assume it won't change during this session.
+          continue;
+        }
+
+        var nestedHookKey = computeFullKey(nestedHookSignature);
+
+        if (nestedHookSignature.forceReset) {
+          signature.forceReset = true;
+        }
+
+        fullKey += '\n---\n' + nestedHookKey;
+      }
+
+      signature.fullKey = fullKey;
+      return fullKey;
+    }
+
+    function haveEqualSignatures(prevType, nextType) {
+      var prevSignature = allSignaturesByType.get(prevType);
+      var nextSignature = allSignaturesByType.get(nextType);
+
+      if (prevSignature === undefined && nextSignature === undefined) {
+        return true;
+      }
+
+      if (prevSignature === undefined || nextSignature === undefined) {
+        return false;
+      }
+
+      if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {
+        return false;
+      }
+
+      if (nextSignature.forceReset) {
+        return false;
+      }
+
+      return true;
+    }
+
+    function isReactClass(type) {
+      return type.prototype && type.prototype.isReactComponent;
+    }
+
+    function canPreserveStateBetween(prevType, nextType) {
+      if (isReactClass(prevType) || isReactClass(nextType)) {
+        return false;
+      }
+
+      if (haveEqualSignatures(prevType, nextType)) {
+        return true;
+      }
+
+      return false;
+    }
+
+    function resolveFamily(type) {
+      // Only check updated types to keep lookups fast.
+      return updatedFamiliesByType.get(type);
+    }
+
+    function performReactRefresh() {
+      {
+        if (pendingUpdates.length === 0) {
+          return null;
+        }
+
+        var staleFamilies = new Set();
+        var updatedFamilies = new Set();
+        var updates = pendingUpdates;
+        pendingUpdates = [];
+        updates.forEach(function (_ref) {
+          var family = _ref[0],
+              nextType = _ref[1]; // Now that we got a real edit, we can create associations
+          // that will be read by the React reconciler.
+
+          var prevType = family.current;
+          updatedFamiliesByType.set(prevType, family);
+          updatedFamiliesByType.set(nextType, family);
+          family.current = nextType; // Determine whether this should be a re-render or a re-mount.
+
+          if (canPreserveStateBetween(prevType, nextType)) {
+            updatedFamilies.add(family);
+          } else {
+            staleFamilies.add(family);
+          }
+        }); // TODO: rename these fields to something more meaningful.
+
+        var update = {
+          updatedFamilies: updatedFamilies,
+          // Families that will re-render preserving state
+          staleFamilies: staleFamilies // Families that will be remounted
+
+        };
+        helpersByRendererID.forEach(function (helpers) {
+          // Even if there are no roots, set the handler on first update.
+          // This ensures that if *new* roots are mounted, they'll use the resolve handler.
+          helpers.setRefreshHandler(resolveFamily);
+        });
+        var didError = false;
+        var firstError = null;
+        failedRoots.forEach(function (element, root) {
+          var helpers = helpersByRoot.get(root);
+
+          if (helpers === undefined) {
+            throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');
+          }
+
+          try {
+            helpers.scheduleRoot(root, element);
+          } catch (err) {
+            if (!didError) {
+              didError = true;
+              firstError = err;
+            } // Keep trying other roots.
+
+          }
+        });
+        mountedRoots.forEach(function (root) {
+          var helpers = helpersByRoot.get(root);
+
+          if (helpers === undefined) {
+            throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');
+          }
+
+          try {
+            helpers.scheduleRefresh(root, update);
+          } catch (err) {
+            if (!didError) {
+              didError = true;
+              firstError = err;
+            } // Keep trying other roots.
+
+          }
+        });
+
+        if (didError) {
+          throw firstError;
+        }
+
+        return update;
+      }
+    }
+
+    function register(type, id) {
+      {
+        if (type === null) {
+          return;
+        }
+
+        if (typeof type !== 'function' && typeof type !== 'object') {
+          return;
+        } // This can happen in an edge case, e.g. if we register
+        // return value of a HOC but it returns a cached component.
+        // Ignore anything but the first registration for each type.
+
+
+        if (allFamiliesByType.has(type)) {
+          return;
+        } // Create family or remember to update it.
+        // None of this bookkeeping affects reconciliation
+        // until the first performReactRefresh() call above.
+
+
+        var family = allFamiliesByID.get(id);
+
+        if (family === undefined) {
+          family = {
+            current: type
+          };
+          allFamiliesByID.set(id, family);
+        } else {
+          pendingUpdates.push([family, type]);
+        }
+
+        allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them.
+
+        if (typeof type === 'object' && type !== null) {
+          switch (type.$$typeof) {
+            case REACT_FORWARD_REF_TYPE:
+              register(type.render, id + '$render');
+              break;
+
+            case REACT_MEMO_TYPE:
+              register(type.type, id + '$type');
+              break;
+          }
+        }
+      }
+    }
+
+    function setSignature(type, key) {
+      var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+      var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined;
+      {
+        allSignaturesByType.set(type, {
+          forceReset: forceReset,
+          ownKey: key,
+          fullKey: null,
+          getCustomHooks: getCustomHooks || function () {
+            return [];
+          }
+        });
+      }
+    } // This is lazily called during first render for a type.
+    // It captures Hook list at that time so inline requires don't break comparisons.
+
+
+    function collectCustomHooksForSignature(type) {
+      {
+        var signature = allSignaturesByType.get(type);
+
+        if (signature !== undefined) {
+          computeFullKey(signature);
+        }
+      }
+    }
+
+    function getFamilyByID(id) {
+      {
+        return allFamiliesByID.get(id);
+      }
+    }
+
+    function getFamilyByType(type) {
+      {
+        return allFamiliesByType.get(type);
+      }
+    }
+
+    function findAffectedHostInstances(families) {
+      {
+        var affectedInstances = new Set();
+        mountedRoots.forEach(function (root) {
+          var helpers = helpersByRoot.get(root);
+
+          if (helpers === undefined) {
+            throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');
+          }
+
+          var instancesForRoot = helpers.findHostInstancesForRefresh(root, families);
+          instancesForRoot.forEach(function (inst) {
+            affectedInstances.add(inst);
+          });
+        });
+        return affectedInstances;
+      }
+    }
+
+    function injectIntoGlobalHook(globalObject) {
+      {
+        // For React Native, the global hook will be set up by require('react-devtools-core').
+        // That code will run before us. So we need to monkeypatch functions on existing hook.
+        // For React Web, the global hook will be set up by the extension.
+        // This will also run before us.
+        var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;
+
+        if (hook === undefined) {
+          // However, if there is no DevTools extension, we'll need to set up the global hook ourselves.
+          // Note that in this case it's important that renderer code runs *after* this method call.
+          // Otherwise, the renderer will think that there is no global hook, and won't do the injection.
+          var nextID = 0;
+          globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {
+            supportsFiber: true,
+            inject: function (injected) {
+              return nextID++;
+            },
+            onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {},
+            onCommitFiberUnmount: function () {}
+          };
+        } // Here, we just want to get a reference to scheduleRefresh.
+
+
+        var oldInject = hook.inject;
+
+        hook.inject = function (injected) {
+          var id = oldInject.apply(this, arguments);
+
+          if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {
+            // This version supports React Refresh.
+            helpersByRendererID.set(id, injected);
+          }
+
+          return id;
+        }; // We also want to track currently mounted roots.
+
+
+        var oldOnCommitFiberRoot = hook.onCommitFiberRoot;
+
+        hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {
+          var helpers = helpersByRendererID.get(id);
+
+          if (helpers === undefined) {
+            return;
+          }
+
+          helpersByRoot.set(root, helpers);
+          var current = root.current;
+          var alternate = current.alternate; // We need to determine whether this root has just (un)mounted.
+          // This logic is copy-pasted from similar logic in the DevTools backend.
+          // If this breaks with some refactoring, you'll want to update DevTools too.
+
+          if (alternate !== null) {
+            var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null;
+            var isMounted = current.memoizedState != null && current.memoizedState.element != null;
+
+            if (!wasMounted && isMounted) {
+              // Mount a new root.
+              mountedRoots.add(root);
+              failedRoots.delete(root);
+            } else if (wasMounted && isMounted) {// Update an existing root.
+              // This doesn't affect our mounted root Set.
+            } else if (wasMounted && !isMounted) {
+              // Unmount an existing root.
+              mountedRoots.delete(root);
+
+              if (didError) {
+                // We'll remount it on future edits.
+                // Remember what was rendered so we can restore it.
+                failedRoots.set(root, alternate.memoizedState.element);
+              } else {
+                helpersByRoot.delete(root);
+              }
+            } else if (!wasMounted && !isMounted) {
+              if (didError && !failedRoots.has(root)) {
+                // The root had an error during the initial mount.
+                // We can't read its last element from the memoized state
+                // because there was no previously committed alternate.
+                // Ideally, it would be nice if we had a way to extract
+                // the last attempted rendered element, but accessing the update queue
+                // would tie this package too closely to the reconciler version.
+                // So instead, we just set a flag.
+                // TODO: Maybe we could fix this as the same time as when we fix
+                // DevTools to not depend on `alternate.memoizedState.element`.
+                didSomeRootFailOnMount = true;
+              }
+            }
+          } else {
+            // Mount a new root.
+            mountedRoots.add(root);
+          }
+
+          return oldOnCommitFiberRoot.apply(this, arguments);
+        };
+      }
+    }
+
+    function hasUnrecoverableErrors() {
+      return didSomeRootFailOnMount;
+    } // Exposed for testing.
+
+
+    function _getMountedRootCount() {
+      {
+        return mountedRoots.size;
+      }
+    } // This is a wrapper over more primitive functions for setting signature.
+    // Signatures let us decide whether the Hook order has changed on refresh.
+    //
+    // This function is intended to be used as a transform target, e.g.:
+    // var _s = createSignatureFunctionForTransform()
+    //
+    // function Hello() {
+    //   const [foo, setFoo] = useState(0);
+    //   const value = useCustomHook();
+    //   _s(); /* Second call triggers collecting the custom Hook list.
+    //          * This doesn't happen during the module evaluation because we
+    //          * don't want to change the module order with inline requires.
+    //          * Next calls are noops. */
+    //   return <h1>Hi</h1>;
+    // }
+    //
+    // /* First call specifies the signature: */
+    // _s(
+    //   Hello,
+    //   'useState{[foo, setFoo]}(0)',
+    //   () => [useCustomHook], /* Lazy to avoid triggering inline requires */
+    // );
+
+
+    function createSignatureFunctionForTransform() {
+      {
+        var call = 0;
+        var savedType;
+        var hasCustomHooks;
+        return function (type, key, forceReset, getCustomHooks) {
+          switch (call++) {
+            case 0:
+              savedType = type;
+              hasCustomHooks = typeof getCustomHooks === 'function';
+              setSignature(type, key, forceReset, getCustomHooks);
+              break;
+
+            case 1:
+              if (hasCustomHooks) {
+                collectCustomHooksForSignature(savedType);
+              }
+
+              break;
+          }
+
+          return type;
+        };
+      }
+    }
+
+    function isLikelyComponentType(type) {
+      {
+        switch (typeof type) {
+          case 'function':
+            {
+              // First, deal with classes.
+              if (type.prototype != null) {
+                if (type.prototype.isReactComponent) {
+                  // React class.
+                  return true;
+                }
+
+                var ownNames = Object.getOwnPropertyNames(type.prototype);
+
+                if (ownNames.length > 1 || ownNames[0] !== 'constructor') {
+                  // This looks like a class.
+                  return false;
+                } // eslint-disable-next-line no-proto
+
+
+                if (type.prototype.__proto__ !== Object.prototype) {
+                  // It has a superclass.
+                  return false;
+                } // Pass through.
+                // This looks like a regular function with empty prototype.
+
+              } // For plain functions and arrows, use name as a heuristic.
+
+
+              var name = type.name || type.displayName;
+              return typeof name === 'string' && /^[A-Z]/.test(name);
+            }
+
+          case 'object':
+            {
+              if (type != null) {
+                switch (type.$$typeof) {
+                  case REACT_FORWARD_REF_TYPE:
+                  case REACT_MEMO_TYPE:
+                    // Definitely React components.
+                    return true;
+
+                  default:
+                    return false;
+                }
+              }
+
+              return false;
+            }
+
+          default:
+            {
+              return false;
+            }
+        }
+      }
+    }
+
+    var ReactFreshRuntime = Object.freeze({
+      performReactRefresh: performReactRefresh,
+      register: register,
+      setSignature: setSignature,
+      collectCustomHooksForSignature: collectCustomHooksForSignature,
+      getFamilyByID: getFamilyByID,
+      getFamilyByType: getFamilyByType,
+      findAffectedHostInstances: findAffectedHostInstances,
+      injectIntoGlobalHook: injectIntoGlobalHook,
+      hasUnrecoverableErrors: hasUnrecoverableErrors,
+      _getMountedRootCount: _getMountedRootCount,
+      createSignatureFunctionForTransform: createSignatureFunctionForTransform,
+      isLikelyComponentType: isLikelyComponentType
+    }); // This is hacky but makes it work with both Rollup and Jest.
+
+    var runtime = ReactFreshRuntime.default || ReactFreshRuntime;
+    module.exports = runtime;
+  })();
+}

BIN
.parcel-cache/49/341de330ce816c67536ea0f113045e.blob


+ 189 - 0
.parcel-cache/4b/362525bde8ea65bfdc557a28160208.blob

@@ -0,0 +1,189 @@
+"use strict";
+
+var Refresh = require('react-refresh/runtime');
+
+function debounce(func, delay) {
+  if ("development" === 'test') {
+    return function (args) {
+      func.call(null, args);
+    };
+  } else {
+    var timeout = undefined;
+    return function (args) {
+      clearTimeout(timeout);
+      timeout = setTimeout(function () {
+        timeout = undefined;
+        func.call(null, args);
+      }, delay);
+    };
+  }
+}
+
+var enqueueUpdate = debounce(function () {
+  Refresh.performReactRefresh();
+}, 30); // Everthing below is either adapted or copied from
+// https://github.com/facebook/metro/blob/61de16bd1edd7e738dd0311c89555a644023ab2d/packages/metro/src/lib/polyfills/require.js
+// MIT License - Copyright (c) Facebook, Inc. and its affiliates.
+
+module.exports.prelude = function (module) {
+  window.$RefreshReg$ = function (type, id) {
+    Refresh.register(type, module.id + ' ' + id);
+  };
+
+  window.$RefreshSig$ = Refresh.createSignatureFunctionForTransform;
+};
+
+module.exports.postlude = function (module) {
+  if (isReactRefreshBoundary(module.exports)) {
+    registerExportsForReactRefresh(module);
+
+    if (module.hot) {
+      module.hot.dispose(function (data) {
+        if (Refresh.hasUnrecoverableErrors()) {
+          window.location.reload();
+        }
+
+        data.prevExports = module.exports;
+      });
+      module.hot.accept(function (getParents) {
+        var prevExports = module.hot.data.prevExports;
+        var nextExports = module.exports; // Since we just executed the code for it, it's possible
+        // that the new exports make it ineligible for being a boundary.
+
+        var isNoLongerABoundary = !isReactRefreshBoundary(nextExports); // It can also become ineligible if its exports are incompatible
+        // with the previous exports.
+        // For example, if you add/remove/change exports, we'll want
+        // to re-execute the importing modules, and force those components
+        // to re-render. Similarly, if you convert a class component
+        // to a function, we want to invalidate the boundary.
+
+        var didInvalidate = shouldInvalidateReactRefreshBoundary(prevExports, nextExports);
+
+        if (isNoLongerABoundary || didInvalidate) {
+          // We'll be conservative. The only case in which we won't do a full
+          // reload is if all parent modules are also refresh boundaries.
+          // In that case we'll add them to the current queue.
+          var parents = getParents();
+
+          if (parents.length === 0) {
+            // Looks like we bubbled to the root. Can't recover from that.
+            window.location.reload();
+            return;
+          }
+
+          return parents;
+        }
+
+        enqueueUpdate();
+      });
+    }
+  }
+};
+
+function isReactRefreshBoundary(exports) {
+  if (Refresh.isLikelyComponentType(exports)) {
+    return true;
+  }
+
+  if (exports == null || typeof exports !== 'object') {
+    // Exit if we can't iterate over exports.
+    return false;
+  }
+
+  var hasExports = false;
+  var areAllExportsComponents = true;
+
+  for (var key in exports) {
+    hasExports = true;
+
+    if (key === '__esModule') {
+      continue;
+    }
+
+    var desc = Object.getOwnPropertyDescriptor(exports, key);
+
+    if (desc && desc.get) {
+      // Don't invoke getters as they may have side effects.
+      return false;
+    }
+
+    var exportValue = exports[key];
+
+    if (!Refresh.isLikelyComponentType(exportValue)) {
+      areAllExportsComponents = false;
+    }
+  }
+
+  return hasExports && areAllExportsComponents;
+}
+
+function shouldInvalidateReactRefreshBoundary(prevExports, nextExports) {
+  var prevSignature = getRefreshBoundarySignature(prevExports);
+  var nextSignature = getRefreshBoundarySignature(nextExports);
+
+  if (prevSignature.length !== nextSignature.length) {
+    return true;
+  }
+
+  for (var i = 0; i < nextSignature.length; i++) {
+    if (prevSignature[i] !== nextSignature[i]) {
+      return true;
+    }
+  }
+
+  return false;
+} // When this signature changes, it's unsafe to stop at this refresh boundary.
+
+
+function getRefreshBoundarySignature(exports) {
+  var signature = [];
+  signature.push(Refresh.getFamilyByType(exports));
+
+  if (exports == null || typeof exports !== 'object') {
+    // Exit if we can't iterate over exports.
+    // (This is important for legacy environments.)
+    return signature;
+  }
+
+  for (var key in exports) {
+    if (key === '__esModule') {
+      continue;
+    }
+
+    var desc = Object.getOwnPropertyDescriptor(exports, key);
+
+    if (desc && desc.get) {
+      continue;
+    }
+
+    var exportValue = exports[key];
+    signature.push(key);
+    signature.push(Refresh.getFamilyByType(exportValue));
+  }
+
+  return signature;
+}
+
+function registerExportsForReactRefresh(module) {
+  var exports = module.exports,
+      id = module.id;
+  Refresh.register(exports, id + ' %exports%');
+
+  if (exports == null || typeof exports !== 'object') {
+    // Exit if we can't iterate over exports.
+    // (This is important for legacy environments.)
+    return;
+  }
+
+  for (var key in exports) {
+    var desc = Object.getOwnPropertyDescriptor(exports, key);
+
+    if (desc && desc.get) {
+      // Don't invoke getters as they may have side effects.
+      continue;
+    }
+
+    var exportValue = exports[key];
+    Refresh.register(exportValue, id + ' %exports% ' + key);
+  }
+}

File diff suppressed because it is too large
+ 0 - 0
.parcel-cache/4c/e23fbf4b0c80f4efcdbafb0a8f209b.blob


BIN
.parcel-cache/4e/063cec453e25294fbb0525fcdc46a3.blob


BIN
.parcel-cache/51/0761379360aea3d233cf9281112fb0.blob


+ 13 - 0
.parcel-cache/52/f8c26f2ab84588e8cf19926504ee04.blob

@@ -0,0 +1,13 @@
+"use strict";
+
+var Refresh = require('react-refresh/runtime');
+
+Refresh.injectIntoGlobalHook(window);
+
+window.$RefreshReg$ = function () {};
+
+window.$RefreshSig$ = function () {
+  return function (type) {
+    return type;
+  };
+};

+ 13 - 0
.parcel-cache/53/5a5fe44561aecefd31d6441b05ffac.blob

@@ -0,0 +1,13 @@
+'use strict';
+
+Object.defineProperty(exports, '__esModule', { value: true });
+
+function memoize(fn) {
+  var cache = {};
+  return function (arg) {
+    if (cache[arg] === undefined) cache[arg] = fn(arg);
+    return cache[arg];
+  };
+}
+
+exports.default = memoize;

+ 16 - 0
.parcel-cache/53/99673094b7b6fcceca21d8c8c24e3a.blob

@@ -0,0 +1,16 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports["default"] = void 0;
+
+var _redux = require("redux");
+
+var _reducers = _interopRequireDefault(require("./reducers"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+
+var store = (0, _redux.createStore)(_reducers["default"], window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());
+var _default = store;
+exports["default"] = _default;

BIN
.parcel-cache/56/d378523c61f796ff4924964efe0d69.v8


+ 384 - 0
.parcel-cache/57/dd67142531f90d0e445cad2ea43cdd.blob

@@ -0,0 +1,384 @@
+"use strict";
+
+var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
+
+var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
+
+exports.__esModule = true;
+exports["default"] = connectAdvanced;
+
+var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
+
+var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
+
+var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
+
+var _react = _interopRequireWildcard(require("react"));
+
+var _reactIs = require("react-is");
+
+var _Subscription = _interopRequireDefault(require("../utils/Subscription"));
+
+var _useIsomorphicLayoutEffect = require("../utils/useIsomorphicLayoutEffect");
+
+var _Context = require("./Context"); // Define some constant arrays just to avoid re-creating these
+
+
+var EMPTY_ARRAY = [];
+var NO_SUBSCRIPTION_ARRAY = [null, null];
+
+var stringifyComponent = function stringifyComponent(Comp) {
+  try {
+    return JSON.stringify(Comp);
+  } catch (err) {
+    return String(Comp);
+  }
+};
+
+function storeStateUpdatesReducer(state, action) {
+  var updateCount = state[1];
+  return [action.payload, updateCount + 1];
+}
+
+function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {
+  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
+    return effectFunc.apply(void 0, effectArgs);
+  }, dependencies);
+}
+
+function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {
+  // We want to capture the wrapper props and child props we used for later comparisons
+  lastWrapperProps.current = wrapperProps;
+  lastChildProps.current = actualChildProps;
+  renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update
+
+  if (childPropsFromStoreUpdate.current) {
+    childPropsFromStoreUpdate.current = null;
+    notifyNestedSubs();
+  }
+}
+
+function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {
+  // If we're not subscribed to the store, nothing to do here
+  if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts
+
+  var didUnsubscribe = false;
+  var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component
+
+  var checkForUpdates = function checkForUpdates() {
+    if (didUnsubscribe) {
+      // Don't run stale listeners.
+      // Redux doesn't guarantee unsubscriptions happen until next dispatch.
+      return;
+    }
+
+    var latestStoreState = store.getState();
+    var newChildProps, error;
+
+    try {
+      // Actually run the selector with the most recent store state and wrapper props
+      // to determine what the child props should be
+      newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);
+    } catch (e) {
+      error = e;
+      lastThrownError = e;
+    }
+
+    if (!error) {
+      lastThrownError = null;
+    } // If the child props haven't changed, nothing to do here - cascade the subscription update
+
+
+    if (newChildProps === lastChildProps.current) {
+      if (!renderIsScheduled.current) {
+        notifyNestedSubs();
+      }
+    } else {
+      // Save references to the new child props.  Note that we track the "child props from store update"
+      // as a ref instead of a useState/useReducer because we need a way to determine if that value has
+      // been processed.  If this went into useState/useReducer, we couldn't clear out the value without
+      // forcing another re-render, which we don't want.
+      lastChildProps.current = newChildProps;
+      childPropsFromStoreUpdate.current = newChildProps;
+      renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render
+
+      forceComponentUpdateDispatch({
+        type: 'STORE_UPDATED',
+        payload: {
+          error: error
+        }
+      });
+    }
+  }; // Actually subscribe to the nearest connected ancestor (or store)
+
+
+  subscription.onStateChange = checkForUpdates;
+  subscription.trySubscribe(); // Pull data from the store after first render in case the store has
+  // changed since we began.
+
+  checkForUpdates();
+
+  var unsubscribeWrapper = function unsubscribeWrapper() {
+    didUnsubscribe = true;
+    subscription.tryUnsubscribe();
+    subscription.onStateChange = null;
+
+    if (lastThrownError) {
+      // It's possible that we caught an error due to a bad mapState function, but the
+      // parent re-rendered without this component and we're about to unmount.
+      // This shouldn't happen as long as we do top-down subscriptions correctly, but
+      // if we ever do those wrong, this throw will surface the error in our tests.
+      // In that case, throw the error from here so it doesn't get lost.
+      throw lastThrownError;
+    }
+  };
+
+  return unsubscribeWrapper;
+}
+
+var initStateUpdates = function initStateUpdates() {
+  return [null, 0];
+};
+
+function connectAdvanced(
+/*
+  selectorFactory is a func that is responsible for returning the selector function used to
+  compute new props from state, props, and dispatch. For example:
+      export default connectAdvanced((dispatch, options) => (state, props) => ({
+      thing: state.things[props.thingId],
+      saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),
+    }))(YourComponent)
+    Access to dispatch is provided to the factory so selectorFactories can bind actionCreators
+  outside of their selector as an optimization. Options passed to connectAdvanced are passed to
+  the selectorFactory, along with displayName and WrappedComponent, as the second argument.
+    Note that selectorFactory is responsible for all caching/memoization of inbound and outbound
+  props. Do not use connectAdvanced directly without memoizing results between calls to your
+  selector, otherwise the Connect component will re-render on every state or props change.
+*/
+selectorFactory, // options object:
+_ref) {
+  if (_ref === void 0) {
+    _ref = {};
+  }
+
+  var _ref2 = _ref,
+      _ref2$getDisplayName = _ref2.getDisplayName,
+      getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {
+    return "ConnectAdvanced(" + name + ")";
+  } : _ref2$getDisplayName,
+      _ref2$methodName = _ref2.methodName,
+      methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,
+      _ref2$renderCountProp = _ref2.renderCountProp,
+      renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,
+      _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,
+      shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,
+      _ref2$storeKey = _ref2.storeKey,
+      storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,
+      _ref2$withRef = _ref2.withRef,
+      withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,
+      _ref2$forwardRef = _ref2.forwardRef,
+      forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,
+      _ref2$context = _ref2.context,
+      context = _ref2$context === void 0 ? _Context.ReactReduxContext : _ref2$context,
+      connectOptions = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"]);
+
+  if ("development" !== 'production') {
+    if (renderCountProp !== undefined) {
+      throw new Error("renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension");
+    }
+
+    if (withRef) {
+      throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');
+    }
+
+    var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + "React.createContext(), and pass the context object to React Redux's Provider and specific components" + ' like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. ' + 'You may also pass a {context : MyContext} option to connect';
+
+    if (storeKey !== 'store') {
+      throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);
+    }
+  }
+
+  var Context = context;
+  return function wrapWithConnect(WrappedComponent) {
+    if ("development" !== 'production' && !(0, _reactIs.isValidElementType)(WrappedComponent)) {
+      throw new Error("You must pass a component to the function returned by " + (methodName + ". Instead received " + stringifyComponent(WrappedComponent)));
+    }
+
+    var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
+    var displayName = getDisplayName(wrappedComponentName);
+    var selectorFactoryOptions = (0, _extends2["default"])({}, connectOptions, {
+      getDisplayName: getDisplayName,
+      methodName: methodName,
+      renderCountProp: renderCountProp,
+      shouldHandleStateChanges: shouldHandleStateChanges,
+      storeKey: storeKey,
+      displayName: displayName,
+      wrappedComponentName: wrappedComponentName,
+      WrappedComponent: WrappedComponent
+    });
+    var pure = connectOptions.pure;
+
+    function createChildSelector(store) {
+      return selectorFactory(store.dispatch, selectorFactoryOptions);
+    } // If we aren't running in "pure" mode, we don't want to memoize values.
+    // To avoid conditionally calling hooks, we fall back to a tiny wrapper
+    // that just executes the given callback immediately.
+
+
+    var usePureOnlyMemo = pure ? _react.useMemo : function (callback) {
+      return callback();
+    };
+
+    function ConnectFunction(props) {
+      var _useMemo = (0, _react.useMemo)(function () {
+        // Distinguish between actual "data" props that were passed to the wrapper component,
+        // and values needed to control behavior (forwarded refs, alternate context instances).
+        // To maintain the wrapperProps object reference, memoize this destructuring.
+        var forwardedRef = props.forwardedRef,
+            wrapperProps = (0, _objectWithoutPropertiesLoose2["default"])(props, ["forwardedRef"]);
+        return [props.context, forwardedRef, wrapperProps];
+      }, [props]),
+          propsContext = _useMemo[0],
+          forwardedRef = _useMemo[1],
+          wrapperProps = _useMemo[2];
+
+      var ContextToUse = (0, _react.useMemo)(function () {
+        // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.
+        // Memoize the check that determines which context instance we should use.
+        return propsContext && propsContext.Consumer && (0, _reactIs.isContextConsumer)(_react["default"].createElement(propsContext.Consumer, null)) ? propsContext : Context;
+      }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available
+
+      var contextValue = (0, _react.useContext)(ContextToUse); // The store _must_ exist as either a prop or in context.
+      // We'll check to see if it _looks_ like a Redux store first.
+      // This allows us to pass through a `store` prop that is just a plain value.
+
+      var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
+      var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
+
+      if ("development" !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {
+        throw new Error("Could not find \"store\" in the context of " + ("\"" + displayName + "\". Either wrap the root component in a <Provider>, ") + "or pass a custom React context provider to <Provider> and the corresponding " + ("React context consumer to " + displayName + " in connect options."));
+      } // Based on the previous check, one of these must be true
+
+
+      var store = didStoreComeFromProps ? props.store : contextValue.store;
+      var childPropsSelector = (0, _react.useMemo)(function () {
+        // The child props selector needs the store reference as an input.
+        // Re-create this selector whenever the store changes.
+        return createChildSelector(store);
+      }, [store]);
+
+      var _useMemo2 = (0, _react.useMemo)(function () {
+        if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component
+        // connected to the store via props shouldn't use subscription from context, or vice versa.
+
+        var subscription = new _Subscription["default"](store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in
+        // the middle of the notification loop, where `subscription` will then be null. This can
+        // probably be avoided if Subscription's listeners logic is changed to not call listeners
+        // that have been unsubscribed in the  middle of the notification loop.
+
+        var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);
+        return [subscription, notifyNestedSubs];
+      }, [store, didStoreComeFromProps, contextValue]),
+          subscription = _useMemo2[0],
+          notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,
+      // and memoize that value to avoid unnecessary context updates.
+
+
+      var overriddenContextValue = (0, _react.useMemo)(function () {
+        if (didStoreComeFromProps) {
+          // This component is directly subscribed to a store from props.
+          // We don't want descendants reading from this store - pass down whatever
+          // the existing context value is from the nearest connected ancestor.
+          return contextValue;
+        } // Otherwise, put this component's subscription instance into context, so that
+        // connected descendants won't update until after this component is done
+
+
+        return (0, _extends2["default"])({}, contextValue, {
+          subscription: subscription
+        });
+      }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update
+      // causes a change to the calculated child component props (or we caught an error in mapState)
+
+      var _useReducer = (0, _react.useReducer)(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),
+          _useReducer$ = _useReducer[0],
+          previousStateUpdateResult = _useReducer$[0],
+          forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards
+
+
+      if (previousStateUpdateResult && previousStateUpdateResult.error) {
+        throw previousStateUpdateResult.error;
+      } // Set up refs to coordinate values between the subscription effect and the render logic
+
+
+      var lastChildProps = (0, _react.useRef)();
+      var lastWrapperProps = (0, _react.useRef)(wrapperProps);
+      var childPropsFromStoreUpdate = (0, _react.useRef)();
+      var renderIsScheduled = (0, _react.useRef)(false);
+      var actualChildProps = usePureOnlyMemo(function () {
+        // Tricky logic here:
+        // - This render may have been triggered by a Redux store update that produced new child props
+        // - However, we may have gotten new wrapper props after that
+        // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.
+        // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.
+        // So, we'll use the child props from store update only if the wrapper props are the same as last time.
+        if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {
+          return childPropsFromStoreUpdate.current;
+        } // TODO We're reading the store directly in render() here. Bad idea?
+        // This will likely cause Bad Things (TM) to happen in Concurrent Mode.
+        // Note that we do this because on renders _not_ caused by store updates, we need the latest store state
+        // to determine what the child props should be.
+
+
+        return childPropsSelector(store.getState(), wrapperProps);
+      }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns
+      // about useLayoutEffect in SSR, so we try to detect environment and fall back to
+      // just useEffect instead to avoid the warning, since neither will run anyway.
+
+      useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes
+
+      useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.
+      // We memoize the elements for the rendered child component as an optimization.
+
+      var renderedWrappedComponent = (0, _react.useMemo)(function () {
+        return _react["default"].createElement(WrappedComponent, (0, _extends2["default"])({}, actualChildProps, {
+          ref: forwardedRef
+        }));
+      }, [forwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering
+      // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.
+
+      var renderedChild = (0, _react.useMemo)(function () {
+        if (shouldHandleStateChanges) {
+          // If this component is subscribed to store updates, we need to pass its own
+          // subscription instance down to our descendants. That means rendering the same
+          // Context instance, and putting a different value into the context.
+          return _react["default"].createElement(ContextToUse.Provider, {
+            value: overriddenContextValue
+          }, renderedWrappedComponent);
+        }
+
+        return renderedWrappedComponent;
+      }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);
+      return renderedChild;
+    } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed.
+
+
+    var Connect = pure ? _react["default"].memo(ConnectFunction) : ConnectFunction;
+    Connect.WrappedComponent = WrappedComponent;
+    Connect.displayName = displayName;
+
+    if (forwardRef) {
+      var forwarded = _react["default"].forwardRef(function forwardConnectRef(props, ref) {
+        return _react["default"].createElement(Connect, (0, _extends2["default"])({}, props, {
+          forwardedRef: ref
+        }));
+      });
+
+      forwarded.displayName = displayName;
+      forwarded.WrappedComponent = WrappedComponent;
+      return (0, _hoistNonReactStatics["default"])(forwarded, WrappedComponent);
+    }
+
+    return (0, _hoistNonReactStatics["default"])(Connect, WrappedComponent);
+  };
+}

+ 222 - 0
.parcel-cache/57/f2ab1ef02d62fc0933450e09e4e9b0.blob

@@ -0,0 +1,222 @@
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+  value: true
+});
+
+function _interopDefault(ex) {
+  return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;
+}
+
+var sheet = require('@emotion/sheet');
+
+var Stylis = _interopDefault(require('@emotion/stylis'));
+
+require('@emotion/weak-memoize'); // https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet
+// inlined to avoid umd wrapper and peerDep warnings/installing stylis
+// since we use stylis after closure compiler
+
+
+var delimiter = '/*|*/';
+var needle = delimiter + '}';
+
+function toSheet(block) {
+  if (block) {
+    Sheet.current.insert(block + '}');
+  }
+}
+
+var Sheet = {
+  current: null
+};
+
+var ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {
+  switch (context) {
+    // property
+    case 1:
+      {
+        switch (content.charCodeAt(0)) {
+          case 64:
+            {
+              // @import
+              Sheet.current.insert(content + ';');
+              return '';
+            }
+          // charcode for l
+
+          case 108:
+            {
+              // charcode for b
+              // this ignores label
+              if (content.charCodeAt(2) === 98) {
+                return '';
+              }
+            }
+        }
+
+        break;
+      }
+    // selector
+
+    case 2:
+      {
+        if (ns === 0) return content + delimiter;
+        break;
+      }
+    // at-rule
+
+    case 3:
+      {
+        switch (ns) {
+          // @font-face, @page
+          case 102:
+          case 112:
+            {
+              Sheet.current.insert(selectors[0] + content);
+              return '';
+            }
+
+          default:
+            {
+              return content + (at === 0 ? delimiter : '');
+            }
+        }
+      }
+
+    case -2:
+      {
+        content.split(needle).forEach(toSheet);
+      }
+  }
+};
+
+var createCache = function createCache(options) {
+  if (options === undefined) options = {};
+  var key = options.key || 'css';
+  var stylisOptions;
+
+  if (options.prefix !== undefined) {
+    stylisOptions = {
+      prefix: options.prefix
+    };
+  }
+
+  var stylis = new Stylis(stylisOptions);
+
+  if ("development" !== 'production') {
+    // $FlowFixMe
+    if (/[^a-z-]/.test(key)) {
+      throw new Error("Emotion key must only contain lower case alphabetical characters and - but \"" + key + "\" was passed");
+    }
+  }
+
+  var inserted = {}; // $FlowFixMe
+
+  var container;
+  {
+    container = options.container || document.head;
+    var nodes = document.querySelectorAll("style[data-emotion-" + key + "]");
+    Array.prototype.forEach.call(nodes, function (node) {
+      var attrib = node.getAttribute("data-emotion-" + key); // $FlowFixMe
+
+      attrib.split(' ').forEach(function (id) {
+        inserted[id] = true;
+      });
+
+      if (node.parentNode !== container) {
+        container.appendChild(node);
+      }
+    });
+  }
+
+  var _insert;
+
+  {
+    stylis.use(options.stylisPlugins)(ruleSheet);
+
+    _insert = function insert(selector, serialized, sheet, shouldCache) {
+      var name = serialized.name;
+      Sheet.current = sheet;
+
+      if ("development" !== 'production' && serialized.map !== undefined) {
+        var map = serialized.map;
+        Sheet.current = {
+          insert: function insert(rule) {
+            sheet.insert(rule + map);
+          }
+        };
+      }
+
+      stylis(selector, serialized.styles);
+
+      if (shouldCache) {
+        cache.inserted[name] = true;
+      }
+    };
+  }
+
+  if ("development" !== 'production') {
+    // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a
+    var commentStart = /\/\*/g;
+    var commentEnd = /\*\//g;
+    stylis.use(function (context, content) {
+      switch (context) {
+        case -1:
+          {
+            while (commentStart.test(content)) {
+              commentEnd.lastIndex = commentStart.lastIndex;
+
+              if (commentEnd.test(content)) {
+                commentStart.lastIndex = commentEnd.lastIndex;
+                continue;
+              }
+
+              throw new Error('Your styles have an unterminated comment ("/*" without corresponding "*/").');
+            }
+
+            commentStart.lastIndex = 0;
+            break;
+          }
+      }
+    });
+    stylis.use(function (context, content, selectors) {
+      switch (context) {
+        case -1:
+          {
+            var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';
+            var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);
+
+            if (unsafePseudoClasses && cache.compat !== true) {
+              unsafePseudoClasses.forEach(function (unsafePseudoClass) {
+                var ignoreRegExp = new RegExp(unsafePseudoClass + ".*\\/\\* " + flag + " \\*\\/");
+                var ignore = ignoreRegExp.test(content);
+
+                if (unsafePseudoClass && !ignore) {
+                  console.error("The pseudo class \"" + unsafePseudoClass + "\" is potentially unsafe when doing server-side rendering. Try changing it to \"" + unsafePseudoClass.split('-child')[0] + "-of-type\".");
+                }
+              });
+            }
+
+            break;
+          }
+      }
+    });
+  }
+
+  var cache = {
+    key: key,
+    sheet: new sheet.StyleSheet({
+      key: key,
+      container: container,
+      nonce: options.nonce,
+      speedy: options.speedy
+    }),
+    nonce: options.nonce,
+    inserted: inserted,
+    registered: {},
+    insert: _insert
+  };
+  return cache;
+};
+
+exports.default = createCache;

+ 43 - 0
.parcel-cache/5a/fc57500d711d920ad9aa77a719cc20.blob

@@ -0,0 +1,43 @@
+"use strict";
+
+var helpers = require("../../../../node_modules/@parcel/transformer-react-refresh-wrap/lib/helpers/helpers.js");
+
+var prevRefreshReg = window.$RefreshReg$;
+var prevRefreshSig = window.$RefreshSig$;
+helpers.prelude(module);
+
+try {
+  Object.defineProperty(exports, "__esModule", {
+    value: true
+  });
+  exports["default"] = Layout;
+
+  var _react = _interopRequireDefault(require("react"));
+
+  var _core = require("@emotion/core");
+
+  var _emotionNormalize = _interopRequireDefault(require("emotion-normalize"));
+
+  var _components = require("@joystream/components");
+
+  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
+
+  var globalStyles = /*#__PURE__*/(0, _core.css)(_emotionNormalize["default"], ";body{box-sizing:border-box;font-family:", _components.theme.typography.fonts.base, ";background:", _components.theme.colors.black, ";color:", _components.theme.colors.gray[500], ";}h1,h2,h3,h4,h5,h6{font-family:", _components.theme.typography.fonts.headers, ";color:", _components.theme.colors.white, ";};label:globalStyles;" + ("development" === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkxheW91dC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT3dCIiwiZmlsZSI6IkxheW91dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjc3MsIEdsb2JhbCB9IGZyb20gXCJAZW1vdGlvbi9jb3JlXCI7XG5pbXBvcnQgZW1vdGlvbk5vcm1hbGl6ZSBmcm9tIFwiZW1vdGlvbi1ub3JtYWxpemVcIjtcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBqb3lzdHJlYW0vY29tcG9uZW50c1wiO1xuXG50eXBlIExheW91dFByb3BzID0geyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIHwgUmVhY3QuUmVhY3ROb2RlW10gfTtcblxuY29uc3QgZ2xvYmFsU3R5bGVzID0gY3NzYFxuXHQke2Vtb3Rpb25Ob3JtYWxpemV9O1xuXG5cdGJvZHkge1xuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdFx0Zm9udC1mYW1pbHk6ICR7dGhlbWUudHlwb2dyYXBoeS5mb250cy5iYXNlfTtcblx0XHRiYWNrZ3JvdW5kOiAke3RoZW1lLmNvbG9ycy5ibGFja307XG5cdFx0Y29sb3I6ICR7dGhlbWUuY29sb3JzLmdyYXlbNTAwXX07XG5cdH1cblxuXHRoMSxcblx0aDIsXG5cdGgzLFxuXHRoNCxcblx0aDUsXG5cdGg2IHtcblx0XHRmb250LWZhbWlseTogJHt0aGVtZS50eXBvZ3JhcGh5LmZvbnRzLmhlYWRlcnN9O1xuXHRcdGNvbG9yOiAke3RoZW1lLmNvbG9ycy53aGl0ZX07XG5cdH1cbmA7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBMYXlvdXQoeyBjaGlsZHJlbiB9OiBMYXlvdXRQcm9wcykge1xuXHRyZXR1cm4gKFxuXHRcdDw+XG5cdFx0XHQ8R2xvYmFsIHN0eWxlcz17Z2xvYmFsU3R5bGVzfSAvPlxuXHRcdFx0e2NoaWxkcmVufVxuXHRcdDwvPlxuXHQpO1xufVxuIl19 */"));
+
+  function Layout(_ref) {
+    var children = _ref.children;
+    return (0, _core.jsx)(_react["default"].Fragment, null, (0, _core.jsx)(_core.Global, {
+      styles: globalStyles
+    }), children);
+  }
+
+  _c = Layout;
+
+  var _c;
+
+  $RefreshReg$(_c, "Layout");
+  helpers.postlude(module);
+} finally {
+  window.$RefreshReg$ = prevRefreshReg;
+  window.$RefreshSig$ = prevRefreshSig;
+}

BIN
.parcel-cache/5b/2a24f303efd57a2647cffcbf061dd6.v8


+ 139 - 0
.parcel-cache/5b/7e5724afa2075491c30f5d815abce7.blob

@@ -0,0 +1,139 @@
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+  value: true
+});
+/*
+
+Based off glamor's StyleSheet, thanks Sunil ❤️
+
+high performance StyleSheet for css-in-js systems
+
+- uses multiple style tags behind the scenes for millions of rules
+- uses `insertRule` for appending in production for *much* faster performance
+
+// usage
+
+import { StyleSheet } from '@emotion/sheet'
+
+let styleSheet = new StyleSheet({ key: '', container: document.head })
+
+styleSheet.insert('#box { border: 1px solid red; }')
+- appends a css rule into the stylesheet
+
+styleSheet.flush()
+- empties the stylesheet of all its contents
+
+*/
+// $FlowFixMe
+
+function sheetForTag(tag) {
+  if (tag.sheet) {
+    // $FlowFixMe
+    return tag.sheet;
+  } // this weirdness brought to you by firefox
+
+  /* istanbul ignore next */
+
+
+  for (var i = 0; i < document.styleSheets.length; i++) {
+    if (document.styleSheets[i].ownerNode === tag) {
+      // $FlowFixMe
+      return document.styleSheets[i];
+    }
+  }
+}
+
+function createStyleElement(options) {
+  var tag = document.createElement('style');
+  tag.setAttribute('data-emotion', options.key);
+
+  if (options.nonce !== undefined) {
+    tag.setAttribute('nonce', options.nonce);
+  }
+
+  tag.appendChild(document.createTextNode(''));
+  return tag;
+}
+
+var StyleSheet = /*#__PURE__*/function () {
+  function StyleSheet(options) {
+    this.isSpeedy = options.speedy === undefined ? "development" === 'production' : options.speedy;
+    this.tags = [];
+    this.ctr = 0;
+    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets
+
+    this.key = options.key;
+    this.container = options.container;
+    this.before = null;
+  }
+
+  var _proto = StyleSheet.prototype;
+
+  _proto.insert = function insert(rule) {
+    // the max length is how many rules we have per style tag, it's 65000 in speedy mode
+    // it's 1 in dev because we insert source maps that map a single rule to a location
+    // and you can only have one source map per style tag
+    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {
+      var _tag = createStyleElement(this);
+
+      var before;
+
+      if (this.tags.length === 0) {
+        before = this.before;
+      } else {
+        before = this.tags[this.tags.length - 1].nextSibling;
+      }
+
+      this.container.insertBefore(_tag, before);
+      this.tags.push(_tag);
+    }
+
+    var tag = this.tags[this.tags.length - 1];
+
+    if (this.isSpeedy) {
+      var sheet = sheetForTag(tag);
+
+      try {
+        // this is a really hot path
+        // we check the second character first because having "i"
+        // as the second character will happen less often than
+        // having "@" as the first character
+        var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers
+        // the big drawback is that the css won't be editable in devtools
+
+        sheet.insertRule(rule, // we need to insert @import rules before anything else
+        // otherwise there will be an error
+        // technically this means that the @import rules will
+        // _usually_(not always since there could be multiple style tags)
+        // be the first ones in prod and generally later in dev
+        // this shouldn't really matter in the real world though
+        // @import is generally only used for font faces from google fonts and etc.
+        // so while this could be technically correct then it would be slower and larger
+        // for a tiny bit of correctness that won't matter in the real world
+        isImportRule ? 0 : sheet.cssRules.length);
+      } catch (e) {
+        if ("development" !== 'production') {
+          console.warn("There was a problem inserting the following rule: \"" + rule + "\"", e);
+        }
+      }
+    } else {
+      tag.appendChild(document.createTextNode(rule));
+    }
+
+    this.ctr++;
+  };
+
+  _proto.flush = function flush() {
+    // $FlowFixMe
+    this.tags.forEach(function (tag) {
+      return tag.parentNode.removeChild(tag);
+    });
+    this.tags = [];
+    this.ctr = 0;
+  };
+
+  return StyleSheet;
+}();
+
+exports.StyleSheet = StyleSheet;

BIN
.parcel-cache/62/586d4b7fb6ab8ff0e75fdc933f782f.blob


BIN
.parcel-cache/62/b883ddf9f8fcfbb097cccbfc524e36.v8


+ 16 - 0
.parcel-cache/63/f5ff9ac3716cd8615125be32c8e5e2.blob

@@ -0,0 +1,16 @@
+"use strict";
+
+var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
+
+exports.__esModule = true;
+exports["default"] = verifyPlainObject;
+
+var _isPlainObject = _interopRequireDefault(require("./isPlainObject"));
+
+var _warning = _interopRequireDefault(require("./warning"));
+
+function verifyPlainObject(value, displayName, methodName) {
+  if (!(0, _isPlainObject["default"])(value)) {
+    (0, _warning["default"])(methodName + "() in " + displayName + " must return a plain object. Instead received " + value + ".");
+  }
+}

BIN
.parcel-cache/63/ff13c594f6c5705b1d0d88c5a56aa2.v8


BIN
.parcel-cache/66/136f1ae72eb4b07ff2e6600e2e2301.v8


BIN
.parcel-cache/67/0586990f7948e8b7ded960e0aa186a.v8


BIN
.parcel-cache/67/325b2ec5360fa2ca63a1e8a2cb3614.blob


BIN
.parcel-cache/67/7674103446a5a63ed2515a2c04c278.v8


+ 854 - 0
.parcel-cache/6e/1a0b722b040fbe0376740e68af4669.blob

@@ -0,0 +1,854 @@
+/** @license React v0.19.1
+ * scheduler.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.
+ */
+'use strict';
+
+if ("development" !== "production") {
+  (function () {
+    'use strict';
+
+    var enableSchedulerDebugging = false;
+    var enableProfiling = true;
+    var requestHostCallback;
+    var requestHostTimeout;
+    var cancelHostTimeout;
+    var shouldYieldToHost;
+    var requestPaint;
+
+    if ( // If Scheduler runs in a non-DOM environment, it falls back to a naive
+    // implementation using setTimeout.
+    typeof window === 'undefined' || // Check if MessageChannel is supported, too.
+    typeof MessageChannel !== 'function') {
+      // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,
+      // fallback to a naive implementation.
+      var _callback = null;
+      var _timeoutID = null;
+
+      var _flushCallback = function () {
+        if (_callback !== null) {
+          try {
+            var currentTime = exports.unstable_now();
+            var hasRemainingTime = true;
+
+            _callback(hasRemainingTime, currentTime);
+
+            _callback = null;
+          } catch (e) {
+            setTimeout(_flushCallback, 0);
+            throw e;
+          }
+        }
+      };
+
+      var initialTime = Date.now();
+
+      exports.unstable_now = function () {
+        return Date.now() - initialTime;
+      };
+
+      requestHostCallback = function (cb) {
+        if (_callback !== null) {
+          // Protect against re-entrancy.
+          setTimeout(requestHostCallback, 0, cb);
+        } else {
+          _callback = cb;
+          setTimeout(_flushCallback, 0);
+        }
+      };
+
+      requestHostTimeout = function (cb, ms) {
+        _timeoutID = setTimeout(cb, ms);
+      };
+
+      cancelHostTimeout = function () {
+        clearTimeout(_timeoutID);
+      };
+
+      shouldYieldToHost = function () {
+        return false;
+      };
+
+      requestPaint = exports.unstable_forceFrameRate = function () {};
+    } else {
+      // Capture local references to native APIs, in case a polyfill overrides them.
+      var performance = window.performance;
+      var _Date = window.Date;
+      var _setTimeout = window.setTimeout;
+      var _clearTimeout = window.clearTimeout;
+
+      if (typeof console !== 'undefined') {
+        // TODO: Scheduler no longer requires these methods to be polyfilled. But
+        // maybe we want to continue warning if they don't exist, to preserve the
+        // option to rely on it in the future?
+        var requestAnimationFrame = window.requestAnimationFrame;
+        var cancelAnimationFrame = window.cancelAnimationFrame; // TODO: Remove fb.me link
+
+        if (typeof requestAnimationFrame !== 'function') {
+          // Using console['error'] to evade Babel and ESLint
+          console['error']("This browser doesn't support requestAnimationFrame. " + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');
+        }
+
+        if (typeof cancelAnimationFrame !== 'function') {
+          // Using console['error'] to evade Babel and ESLint
+          console['error']("This browser doesn't support cancelAnimationFrame. " + 'Make sure that you load a ' + 'polyfill in older browsers. https://fb.me/react-polyfills');
+        }
+      }
+
+      if (typeof performance === 'object' && typeof performance.now === 'function') {
+        exports.unstable_now = function () {
+          return performance.now();
+        };
+      } else {
+        var _initialTime = _Date.now();
+
+        exports.unstable_now = function () {
+          return _Date.now() - _initialTime;
+        };
+      }
+
+      var isMessageLoopRunning = false;
+      var scheduledHostCallback = null;
+      var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main
+      // thread, like user events. By default, it yields multiple times per frame.
+      // It does not attempt to align with frame boundaries, since most tasks don't
+      // need to be frame aligned; for those that do, use requestAnimationFrame.
+
+      var yieldInterval = 5;
+      var deadline = 0; // TODO: Make this configurable
+
+      {
+        // `isInputPending` is not available. Since we have no way of knowing if
+        // there's pending input, always yield at the end of the frame.
+        shouldYieldToHost = function () {
+          return exports.unstable_now() >= deadline;
+        }; // Since we yield every frame regardless, `requestPaint` has no effect.
+
+
+        requestPaint = function () {};
+      }
+
+      exports.unstable_forceFrameRate = function (fps) {
+        if (fps < 0 || fps > 125) {
+          // Using console['error'] to evade Babel and ESLint
+          console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing framerates higher than 125 fps is not unsupported');
+          return;
+        }
+
+        if (fps > 0) {
+          yieldInterval = Math.floor(1000 / fps);
+        } else {
+          // reset the framerate
+          yieldInterval = 5;
+        }
+      };
+
+      var performWorkUntilDeadline = function () {
+        if (scheduledHostCallback !== null) {
+          var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync
+          // cycle. This means there's always time remaining at the beginning of
+          // the message event.
+
+          deadline = currentTime + yieldInterval;
+          var hasTimeRemaining = true;
+
+          try {
+            var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);
+
+            if (!hasMoreWork) {
+              isMessageLoopRunning = false;
+              scheduledHostCallback = null;
+            } else {
+              // If there's more work, schedule the next message event at the end
+              // of the preceding one.
+              port.postMessage(null);
+            }
+          } catch (error) {
+            // If a scheduler task throws, exit the current browser task so the
+            // error can be observed.
+            port.postMessage(null);
+            throw error;
+          }
+        } else {
+          isMessageLoopRunning = false;
+        } // Yielding to the browser will give it a chance to paint, so we can
+
+      };
+
+      var channel = new MessageChannel();
+      var port = channel.port2;
+      channel.port1.onmessage = performWorkUntilDeadline;
+
+      requestHostCallback = function (callback) {
+        scheduledHostCallback = callback;
+
+        if (!isMessageLoopRunning) {
+          isMessageLoopRunning = true;
+          port.postMessage(null);
+        }
+      };
+
+      requestHostTimeout = function (callback, ms) {
+        taskTimeoutID = _setTimeout(function () {
+          callback(exports.unstable_now());
+        }, ms);
+      };
+
+      cancelHostTimeout = function () {
+        _clearTimeout(taskTimeoutID);
+
+        taskTimeoutID = -1;
+      };
+    }
+
+    function push(heap, node) {
+      var index = heap.length;
+      heap.push(node);
+      siftUp(heap, node, index);
+    }
+
+    function peek(heap) {
+      var first = heap[0];
+      return first === undefined ? null : first;
+    }
+
+    function pop(heap) {
+      var first = heap[0];
+
+      if (first !== undefined) {
+        var last = heap.pop();
+
+        if (last !== first) {
+          heap[0] = last;
+          siftDown(heap, last, 0);
+        }
+
+        return first;
+      } else {
+        return null;
+      }
+    }
+
+    function siftUp(heap, node, i) {
+      var index = i;
+
+      while (true) {
+        var parentIndex = index - 1 >>> 1;
+        var parent = heap[parentIndex];
+
+        if (parent !== undefined && compare(parent, node) > 0) {
+          // The parent is larger. Swap positions.
+          heap[parentIndex] = node;
+          heap[index] = parent;
+          index = parentIndex;
+        } else {
+          // The parent is smaller. Exit.
+          return;
+        }
+      }
+    }
+
+    function siftDown(heap, node, i) {
+      var index = i;
+      var length = heap.length;
+
+      while (index < length) {
+        var leftIndex = (index + 1) * 2 - 1;
+        var left = heap[leftIndex];
+        var rightIndex = leftIndex + 1;
+        var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.
+
+        if (left !== undefined && compare(left, node) < 0) {
+          if (right !== undefined && compare(right, left) < 0) {
+            heap[index] = right;
+            heap[rightIndex] = node;
+            index = rightIndex;
+          } else {
+            heap[index] = left;
+            heap[leftIndex] = node;
+            index = leftIndex;
+          }
+        } else if (right !== undefined && compare(right, node) < 0) {
+          heap[index] = right;
+          heap[rightIndex] = node;
+          index = rightIndex;
+        } else {
+          // Neither child is smaller. Exit.
+          return;
+        }
+      }
+    }
+
+    function compare(a, b) {
+      // Compare sort index first, then task id.
+      var diff = a.sortIndex - b.sortIndex;
+      return diff !== 0 ? diff : a.id - b.id;
+    } // TODO: Use symbols?
+
+
+    var NoPriority = 0;
+    var ImmediatePriority = 1;
+    var UserBlockingPriority = 2;
+    var NormalPriority = 3;
+    var LowPriority = 4;
+    var IdlePriority = 5;
+    var runIdCounter = 0;
+    var mainThreadIdCounter = 0;
+    var profilingStateSize = 4;
+    var sharedProfilingBuffer = // $FlowFixMe Flow doesn't know about SharedArrayBuffer
+    typeof SharedArrayBuffer === 'function' ? new SharedArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : // $FlowFixMe Flow doesn't know about ArrayBuffer
+    typeof ArrayBuffer === 'function' ? new ArrayBuffer(profilingStateSize * Int32Array.BYTES_PER_ELEMENT) : null // Don't crash the init path on IE9
+    ;
+    var profilingState = sharedProfilingBuffer !== null ? new Int32Array(sharedProfilingBuffer) : []; // We can't read this but it helps save bytes for null checks
+
+    var PRIORITY = 0;
+    var CURRENT_TASK_ID = 1;
+    var CURRENT_RUN_ID = 2;
+    var QUEUE_SIZE = 3;
+    {
+      profilingState[PRIORITY] = NoPriority; // This is maintained with a counter, because the size of the priority queue
+      // array might include canceled tasks.
+
+      profilingState[QUEUE_SIZE] = 0;
+      profilingState[CURRENT_TASK_ID] = 0;
+    } // Bytes per element is 4
+
+    var INITIAL_EVENT_LOG_SIZE = 131072;
+    var MAX_EVENT_LOG_SIZE = 524288; // Equivalent to 2 megabytes
+
+    var eventLogSize = 0;
+    var eventLogBuffer = null;
+    var eventLog = null;
+    var eventLogIndex = 0;
+    var TaskStartEvent = 1;
+    var TaskCompleteEvent = 2;
+    var TaskErrorEvent = 3;
+    var TaskCancelEvent = 4;
+    var TaskRunEvent = 5;
+    var TaskYieldEvent = 6;
+    var SchedulerSuspendEvent = 7;
+    var SchedulerResumeEvent = 8;
+
+    function logEvent(entries) {
+      if (eventLog !== null) {
+        var offset = eventLogIndex;
+        eventLogIndex += entries.length;
+
+        if (eventLogIndex + 1 > eventLogSize) {
+          eventLogSize *= 2;
+
+          if (eventLogSize > MAX_EVENT_LOG_SIZE) {
+            // Using console['error'] to evade Babel and ESLint
+            console['error']("Scheduler Profiling: Event log exceeded maximum size. Don't " + 'forget to call `stopLoggingProfilingEvents()`.');
+            stopLoggingProfilingEvents();
+            return;
+          }
+
+          var newEventLog = new Int32Array(eventLogSize * 4);
+          newEventLog.set(eventLog);
+          eventLogBuffer = newEventLog.buffer;
+          eventLog = newEventLog;
+        }
+
+        eventLog.set(entries, offset);
+      }
+    }
+
+    function startLoggingProfilingEvents() {
+      eventLogSize = INITIAL_EVENT_LOG_SIZE;
+      eventLogBuffer = new ArrayBuffer(eventLogSize * 4);
+      eventLog = new Int32Array(eventLogBuffer);
+      eventLogIndex = 0;
+    }
+
+    function stopLoggingProfilingEvents() {
+      var buffer = eventLogBuffer;
+      eventLogSize = 0;
+      eventLogBuffer = null;
+      eventLog = null;
+      eventLogIndex = 0;
+      return buffer;
+    }
+
+    function markTaskStart(task, ms) {
+      {
+        profilingState[QUEUE_SIZE]++;
+
+        if (eventLog !== null) {
+          // performance.now returns a float, representing milliseconds. When the
+          // event is logged, it's coerced to an int. Convert to microseconds to
+          // maintain extra degrees of precision.
+          logEvent([TaskStartEvent, ms * 1000, task.id, task.priorityLevel]);
+        }
+      }
+    }
+
+    function markTaskCompleted(task, ms) {
+      {
+        profilingState[PRIORITY] = NoPriority;
+        profilingState[CURRENT_TASK_ID] = 0;
+        profilingState[QUEUE_SIZE]--;
+
+        if (eventLog !== null) {
+          logEvent([TaskCompleteEvent, ms * 1000, task.id]);
+        }
+      }
+    }
+
+    function markTaskCanceled(task, ms) {
+      {
+        profilingState[QUEUE_SIZE]--;
+
+        if (eventLog !== null) {
+          logEvent([TaskCancelEvent, ms * 1000, task.id]);
+        }
+      }
+    }
+
+    function markTaskErrored(task, ms) {
+      {
+        profilingState[PRIORITY] = NoPriority;
+        profilingState[CURRENT_TASK_ID] = 0;
+        profilingState[QUEUE_SIZE]--;
+
+        if (eventLog !== null) {
+          logEvent([TaskErrorEvent, ms * 1000, task.id]);
+        }
+      }
+    }
+
+    function markTaskRun(task, ms) {
+      {
+        runIdCounter++;
+        profilingState[PRIORITY] = task.priorityLevel;
+        profilingState[CURRENT_TASK_ID] = task.id;
+        profilingState[CURRENT_RUN_ID] = runIdCounter;
+
+        if (eventLog !== null) {
+          logEvent([TaskRunEvent, ms * 1000, task.id, runIdCounter]);
+        }
+      }
+    }
+
+    function markTaskYield(task, ms) {
+      {
+        profilingState[PRIORITY] = NoPriority;
+        profilingState[CURRENT_TASK_ID] = 0;
+        profilingState[CURRENT_RUN_ID] = 0;
+
+        if (eventLog !== null) {
+          logEvent([TaskYieldEvent, ms * 1000, task.id, runIdCounter]);
+        }
+      }
+    }
+
+    function markSchedulerSuspended(ms) {
+      {
+        mainThreadIdCounter++;
+
+        if (eventLog !== null) {
+          logEvent([SchedulerSuspendEvent, ms * 1000, mainThreadIdCounter]);
+        }
+      }
+    }
+
+    function markSchedulerUnsuspended(ms) {
+      {
+        if (eventLog !== null) {
+          logEvent([SchedulerResumeEvent, ms * 1000, mainThreadIdCounter]);
+        }
+      }
+    }
+    /* eslint-disable no-var */
+    // Math.pow(2, 30) - 1
+    // 0b111111111111111111111111111111
+
+
+    var maxSigned31BitInt = 1073741823; // Times out immediately
+
+    var IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out
+
+    var USER_BLOCKING_PRIORITY = 250;
+    var NORMAL_PRIORITY_TIMEOUT = 5000;
+    var LOW_PRIORITY_TIMEOUT = 10000; // Never times out
+
+    var IDLE_PRIORITY = maxSigned31BitInt; // Tasks are stored on a min heap
+
+    var taskQueue = [];
+    var timerQueue = []; // Incrementing id counter. Used to maintain insertion order.
+
+    var taskIdCounter = 1; // Pausing the scheduler is useful for debugging.
+
+    var currentTask = null;
+    var currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.
+
+    var isPerformingWork = false;
+    var isHostCallbackScheduled = false;
+    var isHostTimeoutScheduled = false;
+
+    function advanceTimers(currentTime) {
+      // Check for tasks that are no longer delayed and add them to the queue.
+      var timer = peek(timerQueue);
+
+      while (timer !== null) {
+        if (timer.callback === null) {
+          // Timer was cancelled.
+          pop(timerQueue);
+        } else if (timer.startTime <= currentTime) {
+          // Timer fired. Transfer to the task queue.
+          pop(timerQueue);
+          timer.sortIndex = timer.expirationTime;
+          push(taskQueue, timer);
+          {
+            markTaskStart(timer, currentTime);
+            timer.isQueued = true;
+          }
+        } else {
+          // Remaining timers are pending.
+          return;
+        }
+
+        timer = peek(timerQueue);
+      }
+    }
+
+    function handleTimeout(currentTime) {
+      isHostTimeoutScheduled = false;
+      advanceTimers(currentTime);
+
+      if (!isHostCallbackScheduled) {
+        if (peek(taskQueue) !== null) {
+          isHostCallbackScheduled = true;
+          requestHostCallback(flushWork);
+        } else {
+          var firstTimer = peek(timerQueue);
+
+          if (firstTimer !== null) {
+            requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
+          }
+        }
+      }
+    }
+
+    function flushWork(hasTimeRemaining, initialTime) {
+      {
+        markSchedulerUnsuspended(initialTime);
+      } // We'll need a host callback the next time work is scheduled.
+
+      isHostCallbackScheduled = false;
+
+      if (isHostTimeoutScheduled) {
+        // We scheduled a timeout but it's no longer needed. Cancel it.
+        isHostTimeoutScheduled = false;
+        cancelHostTimeout();
+      }
+
+      isPerformingWork = true;
+      var previousPriorityLevel = currentPriorityLevel;
+
+      try {
+        if (enableProfiling) {
+          try {
+            return workLoop(hasTimeRemaining, initialTime);
+          } catch (error) {
+            if (currentTask !== null) {
+              var currentTime = exports.unstable_now();
+              markTaskErrored(currentTask, currentTime);
+              currentTask.isQueued = false;
+            }
+
+            throw error;
+          }
+        } else {
+          // No catch in prod codepath.
+          return workLoop(hasTimeRemaining, initialTime);
+        }
+      } finally {
+        currentTask = null;
+        currentPriorityLevel = previousPriorityLevel;
+        isPerformingWork = false;
+        {
+          var _currentTime = exports.unstable_now();
+
+          markSchedulerSuspended(_currentTime);
+        }
+      }
+    }
+
+    function workLoop(hasTimeRemaining, initialTime) {
+      var currentTime = initialTime;
+      advanceTimers(currentTime);
+      currentTask = peek(taskQueue);
+
+      while (currentTask !== null && !enableSchedulerDebugging) {
+        if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {
+          // This currentTask hasn't expired, and we've reached the deadline.
+          break;
+        }
+
+        var callback = currentTask.callback;
+
+        if (callback !== null) {
+          currentTask.callback = null;
+          currentPriorityLevel = currentTask.priorityLevel;
+          var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;
+          markTaskRun(currentTask, currentTime);
+          var continuationCallback = callback(didUserCallbackTimeout);
+          currentTime = exports.unstable_now();
+
+          if (typeof continuationCallback === 'function') {
+            currentTask.callback = continuationCallback;
+            markTaskYield(currentTask, currentTime);
+          } else {
+            {
+              markTaskCompleted(currentTask, currentTime);
+              currentTask.isQueued = false;
+            }
+
+            if (currentTask === peek(taskQueue)) {
+              pop(taskQueue);
+            }
+          }
+
+          advanceTimers(currentTime);
+        } else {
+          pop(taskQueue);
+        }
+
+        currentTask = peek(taskQueue);
+      } // Return whether there's additional work
+
+
+      if (currentTask !== null) {
+        return true;
+      } else {
+        var firstTimer = peek(timerQueue);
+
+        if (firstTimer !== null) {
+          requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
+        }
+
+        return false;
+      }
+    }
+
+    function unstable_runWithPriority(priorityLevel, eventHandler) {
+      switch (priorityLevel) {
+        case ImmediatePriority:
+        case UserBlockingPriority:
+        case NormalPriority:
+        case LowPriority:
+        case IdlePriority:
+          break;
+
+        default:
+          priorityLevel = NormalPriority;
+      }
+
+      var previousPriorityLevel = currentPriorityLevel;
+      currentPriorityLevel = priorityLevel;
+
+      try {
+        return eventHandler();
+      } finally {
+        currentPriorityLevel = previousPriorityLevel;
+      }
+    }
+
+    function unstable_next(eventHandler) {
+      var priorityLevel;
+
+      switch (currentPriorityLevel) {
+        case ImmediatePriority:
+        case UserBlockingPriority:
+        case NormalPriority:
+          // Shift down to normal priority
+          priorityLevel = NormalPriority;
+          break;
+
+        default:
+          // Anything lower than normal priority should remain at the current level.
+          priorityLevel = currentPriorityLevel;
+          break;
+      }
+
+      var previousPriorityLevel = currentPriorityLevel;
+      currentPriorityLevel = priorityLevel;
+
+      try {
+        return eventHandler();
+      } finally {
+        currentPriorityLevel = previousPriorityLevel;
+      }
+    }
+
+    function unstable_wrapCallback(callback) {
+      var parentPriorityLevel = currentPriorityLevel;
+      return function () {
+        // This is a fork of runWithPriority, inlined for performance.
+        var previousPriorityLevel = currentPriorityLevel;
+        currentPriorityLevel = parentPriorityLevel;
+
+        try {
+          return callback.apply(this, arguments);
+        } finally {
+          currentPriorityLevel = previousPriorityLevel;
+        }
+      };
+    }
+
+    function timeoutForPriorityLevel(priorityLevel) {
+      switch (priorityLevel) {
+        case ImmediatePriority:
+          return IMMEDIATE_PRIORITY_TIMEOUT;
+
+        case UserBlockingPriority:
+          return USER_BLOCKING_PRIORITY;
+
+        case IdlePriority:
+          return IDLE_PRIORITY;
+
+        case LowPriority:
+          return LOW_PRIORITY_TIMEOUT;
+
+        case NormalPriority:
+        default:
+          return NORMAL_PRIORITY_TIMEOUT;
+      }
+    }
+
+    function unstable_scheduleCallback(priorityLevel, callback, options) {
+      var currentTime = exports.unstable_now();
+      var startTime;
+      var timeout;
+
+      if (typeof options === 'object' && options !== null) {
+        var delay = options.delay;
+
+        if (typeof delay === 'number' && delay > 0) {
+          startTime = currentTime + delay;
+        } else {
+          startTime = currentTime;
+        }
+
+        timeout = typeof options.timeout === 'number' ? options.timeout : timeoutForPriorityLevel(priorityLevel);
+      } else {
+        timeout = timeoutForPriorityLevel(priorityLevel);
+        startTime = currentTime;
+      }
+
+      var expirationTime = startTime + timeout;
+      var newTask = {
+        id: taskIdCounter++,
+        callback: callback,
+        priorityLevel: priorityLevel,
+        startTime: startTime,
+        expirationTime: expirationTime,
+        sortIndex: -1
+      };
+      {
+        newTask.isQueued = false;
+      }
+
+      if (startTime > currentTime) {
+        // This is a delayed task.
+        newTask.sortIndex = startTime;
+        push(timerQueue, newTask);
+
+        if (peek(taskQueue) === null && newTask === peek(timerQueue)) {
+          // All tasks are delayed, and this is the task with the earliest delay.
+          if (isHostTimeoutScheduled) {
+            // Cancel an existing timeout.
+            cancelHostTimeout();
+          } else {
+            isHostTimeoutScheduled = true;
+          } // Schedule a timeout.
+
+
+          requestHostTimeout(handleTimeout, startTime - currentTime);
+        }
+      } else {
+        newTask.sortIndex = expirationTime;
+        push(taskQueue, newTask);
+        {
+          markTaskStart(newTask, currentTime);
+          newTask.isQueued = true;
+        } // Schedule a host callback, if needed. If we're already performing work,
+        // wait until the next time we yield.
+
+        if (!isHostCallbackScheduled && !isPerformingWork) {
+          isHostCallbackScheduled = true;
+          requestHostCallback(flushWork);
+        }
+      }
+
+      return newTask;
+    }
+
+    function unstable_pauseExecution() {}
+
+    function unstable_continueExecution() {
+      if (!isHostCallbackScheduled && !isPerformingWork) {
+        isHostCallbackScheduled = true;
+        requestHostCallback(flushWork);
+      }
+    }
+
+    function unstable_getFirstCallbackNode() {
+      return peek(taskQueue);
+    }
+
+    function unstable_cancelCallback(task) {
+      {
+        if (task.isQueued) {
+          var currentTime = exports.unstable_now();
+          markTaskCanceled(task, currentTime);
+          task.isQueued = false;
+        }
+      } // Null out the callback to indicate the task has been canceled. (Can't
+      // remove from the queue because you can't remove arbitrary nodes from an
+      // array based heap, only the first one.)
+
+      task.callback = null;
+    }
+
+    function unstable_getCurrentPriorityLevel() {
+      return currentPriorityLevel;
+    }
+
+    function unstable_shouldYield() {
+      var currentTime = exports.unstable_now();
+      advanceTimers(currentTime);
+      var firstTask = peek(taskQueue);
+      return firstTask !== currentTask && currentTask !== null && firstTask !== null && firstTask.callback !== null && firstTask.startTime <= currentTime && firstTask.expirationTime < currentTask.expirationTime || shouldYieldToHost();
+    }
+
+    var unstable_requestPaint = requestPaint;
+    var unstable_Profiling = {
+      startLoggingProfilingEvents: startLoggingProfilingEvents,
+      stopLoggingProfilingEvents: stopLoggingProfilingEvents,
+      sharedProfilingBuffer: sharedProfilingBuffer
+    };
+    exports.unstable_IdlePriority = IdlePriority;
+    exports.unstable_ImmediatePriority = ImmediatePriority;
+    exports.unstable_LowPriority = LowPriority;
+    exports.unstable_NormalPriority = NormalPriority;
+    exports.unstable_Profiling = unstable_Profiling;
+    exports.unstable_UserBlockingPriority = UserBlockingPriority;
+    exports.unstable_cancelCallback = unstable_cancelCallback;
+    exports.unstable_continueExecution = unstable_continueExecution;
+    exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;
+    exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;
+    exports.unstable_next = unstable_next;
+    exports.unstable_pauseExecution = unstable_pauseExecution;
+    exports.unstable_requestPaint = unstable_requestPaint;
+    exports.unstable_runWithPriority = unstable_runWithPriority;
+    exports.unstable_scheduleCallback = unstable_scheduleCallback;
+    exports.unstable_shouldYield = unstable_shouldYield;
+    exports.unstable_wrapCallback = unstable_wrapCallback;
+  })();
+}

BIN
.parcel-cache/6e/1d8b652bf9a5ae49b792e3507ca87e.v8


Some files were not shown because too many files changed in this diff