diff --git a/app/ecolyo.969d329ebe388b07c5d8.js b/app/ecolyo.c2a25884dc12afde8f0c.js
similarity index 99%
rename from app/ecolyo.969d329ebe388b07c5d8.js
rename to app/ecolyo.c2a25884dc12afde8f0c.js
index 49b9bc0950c0299b7aa85e7d4540dc7b32b85301..1690d89c7a4b084dbc8292b3d8b0c959f583b52c 100644
--- a/app/ecolyo.969d329ebe388b07c5d8.js
+++ b/app/ecolyo.c2a25884dc12afde8f0c.js
@@ -17209,7 +17209,10 @@ var _core = __webpack_require__("TTf+");
 
 var theme = (0, _core.createTheme)({
   palette: {
-    type: 'dark'
+    type: 'dark',
+    primary: {
+      '500': '#579eff'
+    }
   },
   overrides: {
     MuiButton: {
@@ -31266,7 +31269,7 @@ exports.i(__webpack_require__("tgIe"), "");
 exports.push([module.i, "@import url(https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap);", ""]);
 
 // Module
-exports.push([module.i, "/* Cozy UI utilities classes */\n/* Cozy UI React components styles */\n/* App styles */\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\nhtml {\n  background: #121212;\n}\n\nbody {\n  background: #121212;\n  overflow: unset !important;\n}\n\n.column {\n  display: flex;\n  flex-direction: column;\n}\n\n.row {\n  display: flex;\n  flex-direction: row;\n}\n\n.cozy-bar {\n  width: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin-left: 0;\n}\n\n[role=banner] .coz-bar-container {\n  background-color: #ffffff;\n}\n@media only screen and (max-width : 768px) {\n  [role=banner] .coz-bar-container {\n    padding: 0.6rem 0 0 0;\n    background-color: unset;\n  }\n}\n\n.coz-bar-wrapper {\n  box-shadow: unset !important;\n  background: unset !important;\n}\n\n.coz-label {\n  color: #32363f;\n}\n\n.content-view-loading {\n  height: 80vh;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  color: #e0e0e0;\n}\n.content-view-loading .content-view-loading-text {\n  padding-top: 1rem;\n  margin: 0 2rem;\n  text-align: center;\n}\n.content-view-loading .content-view-loading-button {\n  max-width: 50vw;\n  margin-top: 1rem;\n}\n\n[role=main] {\n  /* width */\n  /* Track */\n  /* Handle */\n}\n[role=main]::-webkit-scrollbar {\n  width: 10px;\n}\n[role=main]::-webkit-scrollbar-track {\n  background: #3e4045;\n}\n[role=main]::-webkit-scrollbar-thumb {\n  background: #6f7074;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n* {\n  font-family: Lato, sans-serif;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np {\n  color: #a0a0a0;\n  font-family: Lato, sans-serif;\n}\n\n.home-title {\n  font-size: 1rem;\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 120%;\n  text-transform: uppercase;\n}\n\n.app-title {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 21px;\n  line-height: 24px;\n  text-align: center;\n  letter-spacing: 0.15px;\n  color: #e0e0e0;\n  text-shadow: 0px -1px 0px #060609, 0px 1px 0px rgba(255, 255, 255, 0.07);\n}\n\n.text-10, .text-10-italic, .text-10-bold, .text-10-bold-capitalize, .text-10-bold-uppercase, .text-10-normal, .text-10-normal-150, .text-10-normal-uppercase {\n  font-style: normal;\n  font-size: 0.625rem;\n  line-height: 120%;\n}\n.text-10-normal, .text-10-normal-150, .text-10-normal-uppercase {\n  font-weight: normal;\n}\n.text-10-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-10-normal-150 {\n  line-height: 150%;\n}\n.text-10-bold, .text-10-bold-capitalize, .text-10-bold-uppercase {\n  font-weight: 700;\n}\n.text-10-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-10-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-10-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-13, .text-13-italic, .text-13-bold, .text-13-bold-capitalize, .text-13-bold-uppercase, .text-13-normal, .text-13-normal-150, .text-13-normal-uppercase {\n  font-style: normal;\n  font-size: 0.8125rem;\n  line-height: 120%;\n}\n.text-13-normal, .text-13-normal-150, .text-13-normal-uppercase {\n  font-weight: normal;\n}\n.text-13-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-13-normal-150 {\n  line-height: 150%;\n}\n.text-13-bold, .text-13-bold-capitalize, .text-13-bold-uppercase {\n  font-weight: 700;\n}\n.text-13-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-13-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-13-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-14, .text-14-italic, .text-14-bold, .text-14-bold-capitalize, .text-14-bold-uppercase, .text-14-normal, .text-14-normal-150, .text-14-normal-uppercase {\n  font-style: normal;\n  font-size: 0.875rem;\n  line-height: 120%;\n}\n.text-14-normal, .text-14-normal-150, .text-14-normal-uppercase {\n  font-weight: normal;\n}\n.text-14-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-14-normal-150 {\n  line-height: 150%;\n}\n.text-14-bold, .text-14-bold-capitalize, .text-14-bold-uppercase {\n  font-weight: 700;\n}\n.text-14-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-14-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-14-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-15, .text-15-italic, .text-15-bold, .text-15-bold-capitalize, .text-15-bold-uppercase, .text-15-normal, .text-15-normal-150, .text-15-normal-uppercase {\n  font-style: normal;\n  font-size: 0.938rem;\n  line-height: 120%;\n}\n.text-15-normal, .text-15-normal-150, .text-15-normal-uppercase {\n  font-weight: normal;\n}\n.text-15-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-15-normal-150 {\n  line-height: 150%;\n}\n.text-15-bold, .text-15-bold-capitalize, .text-15-bold-uppercase {\n  font-weight: 700;\n}\n.text-15-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-15-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-15-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-16, .text-16-italic, .text-16-bold, .text-16-bold-capitalize, .text-16-bold-uppercase, .text-16-normal, .text-16-normal-150, .text-16-normal-uppercase {\n  font-style: normal;\n  font-size: 1rem;\n  line-height: 120%;\n}\n.text-16-normal, .text-16-normal-150, .text-16-normal-uppercase {\n  font-weight: normal;\n}\n.text-16-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-16-normal-150 {\n  line-height: 150%;\n}\n.text-16-bold, .text-16-bold-capitalize, .text-16-bold-uppercase {\n  font-weight: 700;\n}\n.text-16-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-16-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-16-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-18, .text-18-italic, .text-18-bold, .text-18-bold-capitalize, .text-18-bold-uppercase, .text-18-normal, .text-18-normal-150, .text-18-normal-uppercase {\n  font-style: normal;\n  font-size: 1.125rem;\n  line-height: 120%;\n}\n.text-18-normal, .text-18-normal-150, .text-18-normal-uppercase {\n  font-weight: normal;\n}\n.text-18-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-18-normal-150 {\n  line-height: 150%;\n}\n.text-18-bold, .text-18-bold-capitalize, .text-18-bold-uppercase {\n  font-weight: 700;\n}\n.text-18-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-18-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-18-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-19, .text-19-italic, .text-19-bold, .text-19-bold-capitalize, .text-19-bold-uppercase, .text-19-normal, .text-19-normal-150, .text-19-normal-uppercase {\n  font-style: normal;\n  font-size: 1.188rem;\n  line-height: 120%;\n}\n.text-19-normal, .text-19-normal-150, .text-19-normal-uppercase {\n  font-weight: normal;\n}\n.text-19-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-19-normal-150 {\n  line-height: 150%;\n}\n.text-19-bold, .text-19-bold-capitalize, .text-19-bold-uppercase {\n  font-weight: 700;\n}\n.text-19-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-19-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-19-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-20, .text-20-italic, .text-20-bold, .text-20-bold-capitalize, .text-20-bold-uppercase, .text-20-normal, .text-20-normal-150, .text-20-normal-uppercase {\n  font-style: normal;\n  font-size: 1.25rem;\n  line-height: 120%;\n}\n.text-20-normal, .text-20-normal-150, .text-20-normal-uppercase {\n  font-weight: normal;\n}\n.text-20-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-20-normal-150 {\n  line-height: 150%;\n}\n.text-20-bold, .text-20-bold-capitalize, .text-20-bold-uppercase {\n  font-weight: 700;\n}\n.text-20-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-20-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-20-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-21, .text-21-italic, .text-21-bold, .text-21-bold-capitalize, .text-21-bold-uppercase, .text-21-normal, .text-21-normal-150, .text-21-normal-uppercase {\n  font-style: normal;\n  font-size: 1.313rem;\n  line-height: 120%;\n}\n.text-21-normal, .text-21-normal-150, .text-21-normal-uppercase {\n  font-weight: normal;\n}\n.text-21-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-21-normal-150 {\n  line-height: 150%;\n}\n.text-21-bold, .text-21-bold-capitalize, .text-21-bold-uppercase {\n  font-weight: 700;\n}\n.text-21-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-21-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-21-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-22, .text-22-italic, .text-22-bold, .text-22-bold-capitalize, .text-22-bold-uppercase, .text-22-normal, .text-22-normal-150, .text-22-normal-uppercase {\n  font-style: normal;\n  font-size: 1.375rem;\n  line-height: 120%;\n}\n.text-22-normal, .text-22-normal-150, .text-22-normal-uppercase {\n  font-weight: normal;\n}\n.text-22-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-22-normal-150 {\n  line-height: 150%;\n}\n.text-22-bold, .text-22-bold-capitalize, .text-22-bold-uppercase {\n  font-weight: 700;\n}\n.text-22-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-22-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-22-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-24, .text-24-italic, .text-24-bold, .text-24-bold-capitalize, .text-24-bold-uppercase, .text-24-normal, .text-24-normal-150, .text-24-normal-uppercase {\n  font-style: normal;\n  font-size: 1.5rem;\n  line-height: 120%;\n}\n.text-24-normal, .text-24-normal-150, .text-24-normal-uppercase {\n  font-weight: normal;\n}\n.text-24-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-24-normal-150 {\n  line-height: 150%;\n}\n.text-24-bold, .text-24-bold-capitalize, .text-24-bold-uppercase {\n  font-weight: 700;\n}\n.text-24-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-24-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-24-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-26, .text-26-italic, .text-26-bold, .text-26-bold-capitalize, .text-26-bold-uppercase, .text-26-normal, .text-26-normal-150, .text-26-normal-uppercase {\n  font-style: normal;\n  font-size: 1.625rem;\n  line-height: 120%;\n}\n.text-26-normal, .text-26-normal-150, .text-26-normal-uppercase {\n  font-weight: normal;\n}\n.text-26-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-26-normal-150 {\n  line-height: 150%;\n}\n.text-26-bold, .text-26-bold-capitalize, .text-26-bold-uppercase {\n  font-weight: 700;\n}\n.text-26-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-26-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-26-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-28, .text-28-italic, .text-28-bold, .text-28-bold-capitalize, .text-28-bold-uppercase, .text-28-normal, .text-28-normal-150, .text-28-normal-uppercase {\n  font-style: normal;\n  font-size: 1.75rem;\n  line-height: 120%;\n}\n.text-28-normal, .text-28-normal-150, .text-28-normal-uppercase {\n  font-weight: normal;\n}\n.text-28-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-28-normal-150 {\n  line-height: 150%;\n}\n.text-28-bold, .text-28-bold-capitalize, .text-28-bold-uppercase {\n  font-weight: 700;\n}\n.text-28-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-28-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-28-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-36, .text-36-italic, .text-36-bold, .text-36-bold-capitalize, .text-36-bold-uppercase, .text-36-normal, .text-36-normal-150, .text-36-normal-uppercase {\n  font-style: normal;\n  font-size: 2.25rem;\n  line-height: 120%;\n}\n.text-36-normal, .text-36-normal-150, .text-36-normal-uppercase {\n  font-weight: normal;\n}\n.text-36-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-36-normal-150 {\n  line-height: 150%;\n}\n.text-36-bold, .text-36-bold-capitalize, .text-36-bold-uppercase {\n  font-weight: 700;\n}\n.text-36-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-36-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-36-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n/* Card */\n.card-title-on {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1.125rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-text-bold {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-indicator {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n/* Chart */\n.chart-ticks-x-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n}\n@media only screen and (max-width : 768px) {\n  .chart-ticks-x-text {\n    font-size: 0.685rem;\n  }\n}\n\n.chart-ticks-y-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 0.9rem;\n  line-height: 120%;\n}\n@media only screen and (max-width : 768px) {\n  .chart-ticks-y-text {\n    font-size: 0.75rem;\n  }\n}\n\n/* Cozy bar */\n.cozybar {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 1.3125rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.axis {\n  color: #7b7b7b;\n}\n.axis .tick-text {\n  fill: #7b7b7b;\n}\n.axis .tick-text.tick-text-selected {\n  fill: #e0e0e0;\n}\n.axis .separator {\n  text-align: center;\n  margin: 0 2px;\n  font-size: 1rem !important;\n}\n\n.value-text {\n  fill: #7b7b7b;\n}\n.value-text.selected {\n  fill: #e0e0e0;\n}\n\n.barContainer.disabled *,\n.barFill.disabled * {\n  cursor: default !important;\n}\n.barContainer:hover,\n.barFill:hover {\n  cursor: pointer;\n}\n\n.background-true {\n  opacity: 0.1;\n}\n.background-true:hover {\n  cursor: pointer;\n}\n\n.background-false {\n  opacity: 0;\n}\n\n.bar-compare-ELECTRICITY:hover,\n.bar-compare-GAS:hover,\n.bar-compare-WATER:hover,\n.bar-compare-MULTIFLUID:hover,\n.bar-MULTIFLUID:hover,\n.bar-WATER:hover,\n.bar-GAS:hover,\n.bar-ELECTRICITY:hover {\n  cursor: pointer;\n}\n.bar-compare-ELECTRICITY:hover.disabled,\n.bar-compare-GAS:hover.disabled,\n.bar-compare-WATER:hover.disabled,\n.bar-compare-MULTIFLUID:hover.disabled,\n.bar-MULTIFLUID:hover.disabled,\n.bar-WATER:hover.disabled,\n.bar-GAS:hover.disabled,\n.bar-ELECTRICITY:hover.disabled {\n  cursor: default;\n}\n\n.bar-ELECTRICITY {\n  fill: #5d3d2a;\n}\n.bar-ELECTRICITY.selected {\n  fill: #d87b39;\n  filter: drop-shadow(0 -0.1rem 0.2rem #d87b39);\n}\n\n.bar-compare-ELECTRICITY {\n  fill: #795c47;\n}\n.bar-compare-ELECTRICITY.selected {\n  fill: #e2bca1;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1);\n}\n\n.bar-WATER {\n  fill: #20415e;\n}\n.bar-WATER.selected {\n  fill: #3a98ec;\n  filter: drop-shadow(0 -0.1rem 0.2rem #3a98ec);\n}\n\n.bar-compare-WATER {\n  fill: #4d5c6e;\n}\n.bar-compare-WATER.selected {\n  fill: #abd4fa;\n  filter: drop-shadow(0 -0.1rem 0.2rem #abd4fa);\n}\n\n.bar-GAS {\n  fill: #184940;\n}\n.bar-GAS.selected {\n  fill: #45d1b8;\n  filter: drop-shadow(0 -0.1rem 0.2rem #45d1b8);\n}\n\n.bar-compare-GAS {\n  fill: #597773;\n}\n.bar-compare-GAS.selected {\n  fill: #a8f7e9;\n  filter: drop-shadow(0 -0.1rem 0.2rem #a8f7e9);\n}\n\n.bar-MULTIFLUID {\n  fill: #705d1d;\n}\n.bar-MULTIFLUID.selected {\n  fill: #e3b82a;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n.bar-MULTIFLUID.disabled:hover {\n  cursor: default;\n}\n\n.bar-duel {\n  fill: #61f0f2;\n}\n.bar-duel.selected {\n  fill: #61f0f2;\n  filter: drop-shadow(0 -0.1rem 0.2rem #61f0f2);\n}\n.bar-duel.disabled:hover {\n  cursor: default;\n}\n\n.bar-UNCOMING {\n  fill: #7b7b7b;\n  opacity: 0.6;\n}\n.bar-UNCOMING.selected {\n  fill: #7b7b7b;\n}\n.bar-UNCOMING.disabled:hover {\n  cursor: default;\n}\n\n.bar-compare-MULTIFLUID {\n  fill: #7d6a4e;\n}\n.bar-compare-MULTIFLUID.selected {\n  fill: #ffd597;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n\n.bar-average {\n  stroke-width: 2;\n  stroke: #e3b82a;\n}\n\n.week {\n  fill: #e2bca1;\n}\n.week.selected {\n  fill: #e2bca1;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1);\n}\n\n.weekend {\n  fill: #ffd597;\n}\n.weekend.selected {\n  fill: #ffd597;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n\n/** Animation **/\n.bounce-1 {\n  animation-name: bounce-1;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n  transform-box: fill-box;\n}\n\n@keyframes bounce-1 {\n  0% {\n    transform: scale(0.1, 0.1);\n  }\n  28% {\n    transform: scale(0.1, 1.1);\n  }\n  45% {\n    transform: scale(0.8, 0.95);\n  }\n  55% {\n    transform: scale(1, 1);\n  }\n  65% {\n    transform: scale(1, 0.98);\n  }\n  75% {\n    transform: scale(1, 1);\n  }\n}\n.bounce-2 {\n  animation-name: bounce-2;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n  transform-box: fill-box;\n}\n\n@keyframes bounce-2 {\n  0% {\n    transform: scale(1, 1);\n  }\n  28% {\n    transform: scale(1, 1.1);\n  }\n  45% {\n    transform: scale(0.8, 0.95);\n  }\n  55% {\n    transform: scale(1, 1);\n  }\n  65% {\n    transform: scale(1, 0.98);\n  }\n  75% {\n    transform: scale(1, 1);\n  }\n}\n.bounce-3 {\n  animation-name: bounce-3;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n}\n\n@keyframes bounce-3 {\n  0% {\n    opacity: 0.6;\n    transform: scaleY(1);\n  }\n  50% {\n    transform: scaleY(1.1);\n    opacity: 0.8;\n  }\n  100% {\n    transform: scaleY(1);\n    opacity: 1;\n  }\n}\n/** Animation delay **/\n.delay {\n  animation-duration: 0.4s;\n}\n\n.delay--0 {\n  animation-duration: 0.4s;\n}\n\n.delay--1 {\n  animation-duration: 0.48s;\n}\n\n.delay--2 {\n  animation-duration: 0.56s;\n}\n\n.delay--3 {\n  animation-duration: 0.64s;\n}\n\n.delay--4 {\n  animation-duration: 0.72s;\n}\n\n.delay--5 {\n  animation-duration: 0.8s;\n}\n\n.delay--6 {\n  animation-duration: 0.88s;\n}\n\n.delay--7 {\n  animation-duration: 0.96s;\n}\n\n.delay--8 {\n  animation-duration: 1.04s;\n}\n\n.delay--9 {\n  animation-duration: 1.12s;\n}\n\n.delay--10 {\n  animation-duration: 1.2s;\n}\n\n.delay--11 {\n  animation-duration: 1.28s;\n}\n\n.delay--12 {\n  animation-duration: 1.36s;\n}\n\n.delay--13 {\n  animation-duration: 1.44s;\n}\n\n.delay--14 {\n  animation-duration: 1.52s;\n}\n\n.delay--15 {\n  animation-duration: 1.6s;\n}\n\n.delay--16 {\n  animation-duration: 1.68s;\n}\n\n.delay--17 {\n  animation-duration: 1.76s;\n}\n\n.delay--18 {\n  animation-duration: 1.84s;\n}\n\n.delay--19 {\n  animation-duration: 1.92s;\n}\n\n.delay--20 {\n  animation-duration: 2s;\n}\n\n.delay--21 {\n  animation-duration: 2.08s;\n}\n\n.delay--22 {\n  animation-duration: 2.16s;\n}\n\n.delay--23 {\n  animation-duration: 2.24s;\n}\n\n.delay--24 {\n  animation-duration: 2.32s;\n}\n\n.delay--25 {\n  animation-duration: 2.4s;\n}\n\n.delay--26 {\n  animation-duration: 2.48s;\n}\n\n.delay--27 {\n  animation-duration: 2.56s;\n}\n\n.delay--28 {\n  animation-duration: 2.64s;\n}\n\n.delay--29 {\n  animation-duration: 2.72s;\n}\n\n.delay--30 {\n  animation-duration: 2.8s;\n}\n\n.delay--31 {\n  animation-duration: 2.88s;\n}\n\n.delay--32 {\n  animation-duration: 2.96s;\n}\n\n.delay--33 {\n  animation-duration: 3.04s;\n}\n\n.delay--34 {\n  animation-duration: 3.12s;\n}\n\n.delay--35 {\n  animation-duration: 3.2s;\n}\n\n.delay--36 {\n  animation-duration: 3.28s;\n}\n\n.delay--37 {\n  animation-duration: 3.36s;\n}\n\n.delay--38 {\n  animation-duration: 3.44s;\n}\n\n.delay--39 {\n  animation-duration: 3.52s;\n}\n\n.delay--40 {\n  animation-duration: 3.6s;\n}\n\n.delay--41 {\n  animation-duration: 3.68s;\n}\n\n.delay--42 {\n  animation-duration: 3.76s;\n}\n\n.delay--43 {\n  animation-duration: 3.84s;\n}\n\n.delay--44 {\n  animation-duration: 3.92s;\n}\n\n.delay--45 {\n  animation-duration: 4s;\n}\n\n.delay--46 {\n  animation-duration: 4.08s;\n}\n\n.delay--47 {\n  animation-duration: 4.16s;\n}\n\n.delay--48 {\n  animation-duration: 4.24s;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\nbutton span {\n  font-size: 1rem;\n  font-weight: 700;\n}\nbutton.btnPrimary {\n  background: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  border: 1px solid;\n  border-color: transparent;\n  border-radius: 2px;\n  width: 100%;\n  text-transform: initial;\n  transition: all 150ms ease-in-out;\n}\nbutton.btnPrimary span:first-child {\n  color: #121212;\n}\nbutton.btnPrimary:hover, button.btnPrimary:focus, button.btnPrimary.active, button.btnPrimary:disabled {\n  background-color: #b89318;\n}\nbutton.btnPrimary:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btnSecondary {\n  background: transparent;\n  border: 1px solid;\n  border-color: #e0e0e0;\n  border-radius: 2px;\n  width: 100%;\n  text-transform: initial;\n  transition: all 150ms ease-in-out;\n}\nbutton.btnSecondary span:first-child {\n  color: #e0e0e0;\n}\nbutton.btnSecondary:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btnText {\n  text-decoration: underline;\n}\nbutton.btnText span {\n  text-transform: none;\n  font-weight: 400;\n}\nbutton.btnPrimaryNegative {\n  background: linear-gradient(180deg, #61f0f2 0%, #48c2c4 100%);\n  border: 1px solid;\n  border-color: transparent;\n  border-radius: 2px;\n  width: 100%;\n  text-transform: initial;\n  transition: all 150ms ease-in-out;\n}\nbutton.btnPrimaryNegative span:first-child {\n  color: #121212;\n}\nbutton.btnPrimaryNegative:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btnPrimaryNegative:hover {\n  opacity: 0.7;\n}\nbutton.btnIncrement {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  border: 1px solid;\n  border-color: transparent;\n  border-radius: 2px;\n  width: 100%;\n  text-transform: initial;\n  transition: all 150ms ease-in-out;\n  min-width: 40px;\n  width: 40px;\n  height: 40px;\n  border-radius: 4px;\n  box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.55);\n}\nbutton.btnIncrement span:first-child {\n  color: #ffffff;\n}\nbutton.btnIncrement:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ninput.inputText,\ninput.inputNumber {\n  box-sizing: border-box;\n  border: 1px solid #7b7b7b;\n  background: transparent;\n  transition: all 300ms ease;\n  color: #e0e0e0;\n}\ninput.inputText:focus, input.inputText:focus-visible,\ninput.inputNumber:focus,\ninput.inputNumber:focus-visible {\n  border-color: #e3b82a;\n  outline: none;\n}\n\ninput.inputText {\n  appearance: none;\n  border-radius: 4px;\n  height: 45px;\n  width: 100%;\n  max-width: 280px;\n  padding: 0 0.5rem;\n}\n\ninput.inputNumber {\n  border-radius: 2px;\n  height: 40px;\n  width: 60px;\n  max-width: 5rem;\n  text-align: center;\n}\n\ninput.inputCheckbox {\n  width: 24px;\n  min-width: 24px;\n  height: 24px;\n  display: flex;\n  align-items: center;\n  border-radius: 4px;\n  cursor: pointer;\n  appearance: none;\n  background: #121212;\n  position: relative;\n  border: solid 1px #7b7b7b;\n}\ninput.inputCheckbox:checked {\n  background: #e3b82a;\n  border-color: #e3b82a;\n}\ninput.inputCheckbox:checked:before, input.inputCheckbox:checked:after {\n  content: \"\";\n  position: absolute;\n  display: inline-block;\n  background: #121212;\n  border-radius: 0.5rem;\n}\ninput.inputCheckbox:checked:before {\n  width: 3px;\n  height: 12px;\n  left: 10px;\n  top: 4px;\n  transform: rotate(41deg);\n}\ninput.inputCheckbox:checked:after {\n  width: 3px;\n  height: 6px;\n  left: 5px;\n  top: 8px;\n  transform: rotate(133deg);\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.card {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  box-sizing: border-box;\n  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.75);\n  border-radius: 4px;\n  padding: 16px;\n}\n.card:hover {\n  background: linear-gradient(180deg, rgba(70, 71, 77, 0.7) 0%, rgba(57, 58, 63, 0.7) 100%);\n}\n.card.rich-card {\n  padding: 16px;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ndiv.modal-root .MuiBackdrop-root {\n  background-color: hsla(231deg, 11%, 12%, 0.85);\n}\n\ndiv.modal-paper {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  width: 36rem;\n  max-width: 100%;\n  max-height: 90vh;\n  padding: 2rem;\n  box-sizing: border-box;\n  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  margin: 0 0 0 13.75rem;\n  align-items: center;\n  color: #ffffff;\n}\n@media only screen and (max-width : 1023px) {\n  div.modal-paper {\n    width: 35rem;\n    margin: 0;\n  }\n}\n@media only screen and (max-width : 768px) {\n  div.modal-paper {\n    padding: 1rem 1rem 1.5rem;\n    width: 85%;\n    max-width: 35rem;\n    margin: 0;\n  }\n}\ndiv.modal-paper.no-padding {\n  padding: 0;\n}\ndiv.modal-paper.blue-border {\n  border: 1px solid rgba(88, 255, 255, 0.2509803922);\n}\ndiv.modal-paper.blue-light-border {\n  border: 1px solid #61f0f2;\n}\ndiv.modal-paper.yellow-border {\n  border: 1px solid rgba(227, 184, 42, 0.4);\n}\ndiv.modal-paper .modal-paper-close-button {\n  position: absolute;\n  top: 0.5rem;\n  right: 0.5rem;\n  padding: 5px 5px;\n  z-index: 10;\n}\n\ndiv.modal-paper-full-screen {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  width: 100%;\n  max-width: 100%;\n  height: 100%;\n  max-height: 100%;\n  padding: 0;\n  margin: 0;\n  box-sizing: border-box;\n  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  color: #ffffff;\n  display: flex;\n  align-items: center;\n}\ndiv.modal-paper-full-screen.dark-background {\n  background: #121212;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ndiv.expansion-panel-root {\n  margin: 1.2rem 0;\n  color: #e0e0e0;\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  border-radius: 4px;\n  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.75);\n  transition: background-color 0.6s ease;\n  box-sizing: border-box;\n}\ndiv.expansion-panel-root.Mui-expanded:first-child {\n  margin: 1.2rem 0;\n}\ndiv.expansion-panel-root.Mui-expanded:last-child {\n  margin: 1.2rem 0;\n}\ndiv.expansion-panel-root.red-border {\n  border: 1px solid #d25959;\n}\n\ndiv.expansion-panel-summary {\n  padding: 0.25rem 1.2rem;\n  min-height: 4rem;\n}\ndiv.expansion-panel-summary.Mui-focused {\n  border-radius: 4px;\n  background-color: unset;\n  box-shadow: 0 0 0 1px #e0e0e0;\n}\ndiv.expansion-panel-summary.Mui-expanded {\n  min-height: 4rem;\n}\ndiv.expansion-panel-summary.Mui-expanded.small {\n  min-height: 3rem;\n}\ndiv.expansion-panel-summary.small {\n  padding: 0 1.2rem;\n  min-height: 3rem;\n}\ndiv.expansion-panel-summary.bold-text {\n  font-weight: bold;\n}\n\ndiv.expansion-panel-content {\n  display: flex;\n  align-items: center;\n}\ndiv.expansion-panel-content.Mui-expanded {\n  margin: 0.75rem 0;\n}\n\ndiv.expansion-panel-details {\n  padding: 0 1.2rem 1.2rem;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\na {\n  color: #deaf0e;\n}\na:visited {\n  color: #deaf0e;\n}\n\na:focus {\n  outline: none;\n  box-shadow: inset 0 0 0 1px #e0e0e0;\n}\na:focus > div:first-child {\n  box-shadow: 0 0 0 1px #e0e0e0;\n}\n\na.MuiLink-underlineHover:hover {\n  text-decoration: none;\n}\n\na.MuiTypography-colorPrimary {\n  color: #e0e0e0;\n}\n\n:root {\n  white-space: pre-line;\n  --blue: #58ffff;\n  --blue40: rgba(88, 255, 255, 0.2509803922);\n  --blueBackground: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  --blueRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  --blueRadialGradientTrans: radial-gradient(circle, #58ffff 0%, rgba(255, 255, 255, 0) 100%);\n  --elecColor: #d87b39;\n  --elecColor40: rgba(216, 123, 57, 0.4);\n  --elecCompareColor: #e2bca1;\n  --gasColor: #45d1b8;\n  --gasColor40: rgba(69, 209, 184, 0.4);\n  --gasCompareColor: #a8f7e9;\n  --waterColor: #3a98ec;\n  --waterColor40: rgba(58, 152, 236, 0.4);\n  --waterCompareColor: #abd4fa;\n  --multiColor: #e3b82a;\n  --multiCompareColor: #ffd597;\n  --redPrimary: #d25959;\n  --greyBright: #e0e0e0;\n  --greyDark: #7b7b7b;\n  --textWhite: #ffffff;\n  --softGrey: #a0a0a0;\n  --darkLight: #25262b;\n  --darkLight2: #121212;\n  --textFont: Lato, sans-serif;\n  --greyLinearGradientBackground: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  --multiColorRadialGradientTrans: radial-gradient(circle, #e3b82a 0%, rgba(255, 255, 255, 0) 100%);\n  --elecColorRadialGradientTrans: radial-gradient(circle, #d87b39 0%, rgba(255, 255, 255, 0) 100%);\n  --waterColorRadialGradientTrans: radial-gradient(circle, #3a98ec 0%, rgba(255, 255, 255, 0) 100%);\n  --gasColorRadialGradientTrans: radial-gradient(circle, #e3b82a 0%, rgba(255, 255, 255, 0) 100%);\n  --multiColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  --elecColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(158, 67, 2, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #d87b39;\n  --gasColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(4, 106, 88, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #45d1b8;\n  --waterColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(2, 93, 174, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #3a98ec;\n}\n\n.application {\n  overflow-x: hidden;\n  background-color: #121212;\n}\n\n.accordion-icon {\n  color: #ffffff;\n}\n\n.loaderContainer {\n  height: 80vh;\n  display: flex;\n  flex: 1;\n  justify-content: center;\n  align-items: center;\n}", ""]);
+exports.push([module.i, "/* Cozy UI utilities classes */\n/* Cozy UI React components styles */\n/* App styles */\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\nhtml {\n  background: #121212;\n}\n\nbody {\n  background: #121212;\n  overflow: unset !important;\n}\n\n.column {\n  display: flex;\n  flex-direction: column;\n}\n\n.row {\n  display: flex;\n  flex-direction: row;\n}\n\n.cozy-bar {\n  width: 100%;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin-left: 0;\n}\n\n[role=banner] .coz-bar-container {\n  background-color: #ffffff;\n}\n@media only screen and (max-width : 768px) {\n  [role=banner] .coz-bar-container {\n    padding: 0.6rem 0 0 0;\n    background-color: unset;\n  }\n}\n\n.coz-bar-wrapper {\n  box-shadow: unset !important;\n  background: unset !important;\n}\n\n.coz-label {\n  color: #32363f;\n}\n\n.content-view-loading {\n  height: 80vh;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  align-items: center;\n  color: #e0e0e0;\n}\n.content-view-loading .content-view-loading-text {\n  padding-top: 1rem;\n  margin: 0 2rem;\n  text-align: center;\n}\n.content-view-loading .content-view-loading-button {\n  max-width: 50vw;\n  margin-top: 1rem;\n}\n\n[role=main] {\n  /* width */\n  /* Track */\n  /* Handle */\n}\n[role=main]::-webkit-scrollbar {\n  width: 10px;\n}\n[role=main]::-webkit-scrollbar-track {\n  background: #3e4045;\n}\n[role=main]::-webkit-scrollbar-thumb {\n  background: #6f7074;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n* {\n  font-family: Lato, sans-serif;\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np {\n  color: #a0a0a0;\n  font-family: Lato, sans-serif;\n}\n\n.home-title {\n  font-size: 1rem;\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  line-height: 120%;\n  text-transform: uppercase;\n}\n\n.app-title {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 21px;\n  line-height: 24px;\n  text-align: center;\n  letter-spacing: 0.15px;\n  color: #e0e0e0;\n  text-shadow: 0px -1px 0px #060609, 0px 1px 0px rgba(255, 255, 255, 0.07);\n}\n\n.text-10, .text-10-italic, .text-10-bold, .text-10-bold-capitalize, .text-10-bold-uppercase, .text-10-normal, .text-10-normal-150, .text-10-normal-uppercase {\n  font-style: normal;\n  font-size: 0.625rem;\n  line-height: 120%;\n}\n.text-10-normal, .text-10-normal-150, .text-10-normal-uppercase {\n  font-weight: normal;\n}\n.text-10-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-10-normal-150 {\n  line-height: 150%;\n}\n.text-10-bold, .text-10-bold-capitalize, .text-10-bold-uppercase {\n  font-weight: 700;\n}\n.text-10-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-10-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-10-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-13, .text-13-italic, .text-13-bold, .text-13-bold-capitalize, .text-13-bold-uppercase, .text-13-normal, .text-13-normal-150, .text-13-normal-uppercase {\n  font-style: normal;\n  font-size: 0.8125rem;\n  line-height: 120%;\n}\n.text-13-normal, .text-13-normal-150, .text-13-normal-uppercase {\n  font-weight: normal;\n}\n.text-13-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-13-normal-150 {\n  line-height: 150%;\n}\n.text-13-bold, .text-13-bold-capitalize, .text-13-bold-uppercase {\n  font-weight: 700;\n}\n.text-13-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-13-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-13-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-14, .text-14-italic, .text-14-bold, .text-14-bold-capitalize, .text-14-bold-uppercase, .text-14-normal, .text-14-normal-150, .text-14-normal-uppercase {\n  font-style: normal;\n  font-size: 0.875rem;\n  line-height: 120%;\n}\n.text-14-normal, .text-14-normal-150, .text-14-normal-uppercase {\n  font-weight: normal;\n}\n.text-14-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-14-normal-150 {\n  line-height: 150%;\n}\n.text-14-bold, .text-14-bold-capitalize, .text-14-bold-uppercase {\n  font-weight: 700;\n}\n.text-14-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-14-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-14-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-15, .text-15-italic, .text-15-bold, .text-15-bold-capitalize, .text-15-bold-uppercase, .text-15-normal, .text-15-normal-150, .text-15-normal-uppercase {\n  font-style: normal;\n  font-size: 0.938rem;\n  line-height: 120%;\n}\n.text-15-normal, .text-15-normal-150, .text-15-normal-uppercase {\n  font-weight: normal;\n}\n.text-15-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-15-normal-150 {\n  line-height: 150%;\n}\n.text-15-bold, .text-15-bold-capitalize, .text-15-bold-uppercase {\n  font-weight: 700;\n}\n.text-15-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-15-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-15-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-16, .text-16-italic, .text-16-bold, .text-16-bold-capitalize, .text-16-bold-uppercase, .text-16-normal, .text-16-normal-150, .text-16-normal-uppercase {\n  font-style: normal;\n  font-size: 1rem;\n  line-height: 120%;\n}\n.text-16-normal, .text-16-normal-150, .text-16-normal-uppercase {\n  font-weight: normal;\n}\n.text-16-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-16-normal-150 {\n  line-height: 150%;\n}\n.text-16-bold, .text-16-bold-capitalize, .text-16-bold-uppercase {\n  font-weight: 700;\n}\n.text-16-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-16-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-16-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-18, .text-18-italic, .text-18-bold, .text-18-bold-capitalize, .text-18-bold-uppercase, .text-18-normal, .text-18-normal-150, .text-18-normal-uppercase {\n  font-style: normal;\n  font-size: 1.125rem;\n  line-height: 120%;\n}\n.text-18-normal, .text-18-normal-150, .text-18-normal-uppercase {\n  font-weight: normal;\n}\n.text-18-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-18-normal-150 {\n  line-height: 150%;\n}\n.text-18-bold, .text-18-bold-capitalize, .text-18-bold-uppercase {\n  font-weight: 700;\n}\n.text-18-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-18-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-18-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-19, .text-19-italic, .text-19-bold, .text-19-bold-capitalize, .text-19-bold-uppercase, .text-19-normal, .text-19-normal-150, .text-19-normal-uppercase {\n  font-style: normal;\n  font-size: 1.188rem;\n  line-height: 120%;\n}\n.text-19-normal, .text-19-normal-150, .text-19-normal-uppercase {\n  font-weight: normal;\n}\n.text-19-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-19-normal-150 {\n  line-height: 150%;\n}\n.text-19-bold, .text-19-bold-capitalize, .text-19-bold-uppercase {\n  font-weight: 700;\n}\n.text-19-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-19-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-19-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-20, .text-20-italic, .text-20-bold, .text-20-bold-capitalize, .text-20-bold-uppercase, .text-20-normal, .text-20-normal-150, .text-20-normal-uppercase {\n  font-style: normal;\n  font-size: 1.25rem;\n  line-height: 120%;\n}\n.text-20-normal, .text-20-normal-150, .text-20-normal-uppercase {\n  font-weight: normal;\n}\n.text-20-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-20-normal-150 {\n  line-height: 150%;\n}\n.text-20-bold, .text-20-bold-capitalize, .text-20-bold-uppercase {\n  font-weight: 700;\n}\n.text-20-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-20-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-20-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-21, .text-21-italic, .text-21-bold, .text-21-bold-capitalize, .text-21-bold-uppercase, .text-21-normal, .text-21-normal-150, .text-21-normal-uppercase {\n  font-style: normal;\n  font-size: 1.313rem;\n  line-height: 120%;\n}\n.text-21-normal, .text-21-normal-150, .text-21-normal-uppercase {\n  font-weight: normal;\n}\n.text-21-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-21-normal-150 {\n  line-height: 150%;\n}\n.text-21-bold, .text-21-bold-capitalize, .text-21-bold-uppercase {\n  font-weight: 700;\n}\n.text-21-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-21-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-21-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-22, .text-22-italic, .text-22-bold, .text-22-bold-capitalize, .text-22-bold-uppercase, .text-22-normal, .text-22-normal-150, .text-22-normal-uppercase {\n  font-style: normal;\n  font-size: 1.375rem;\n  line-height: 120%;\n}\n.text-22-normal, .text-22-normal-150, .text-22-normal-uppercase {\n  font-weight: normal;\n}\n.text-22-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-22-normal-150 {\n  line-height: 150%;\n}\n.text-22-bold, .text-22-bold-capitalize, .text-22-bold-uppercase {\n  font-weight: 700;\n}\n.text-22-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-22-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-22-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-24, .text-24-italic, .text-24-bold, .text-24-bold-capitalize, .text-24-bold-uppercase, .text-24-normal, .text-24-normal-150, .text-24-normal-uppercase {\n  font-style: normal;\n  font-size: 1.5rem;\n  line-height: 120%;\n}\n.text-24-normal, .text-24-normal-150, .text-24-normal-uppercase {\n  font-weight: normal;\n}\n.text-24-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-24-normal-150 {\n  line-height: 150%;\n}\n.text-24-bold, .text-24-bold-capitalize, .text-24-bold-uppercase {\n  font-weight: 700;\n}\n.text-24-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-24-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-24-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-26, .text-26-italic, .text-26-bold, .text-26-bold-capitalize, .text-26-bold-uppercase, .text-26-normal, .text-26-normal-150, .text-26-normal-uppercase {\n  font-style: normal;\n  font-size: 1.625rem;\n  line-height: 120%;\n}\n.text-26-normal, .text-26-normal-150, .text-26-normal-uppercase {\n  font-weight: normal;\n}\n.text-26-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-26-normal-150 {\n  line-height: 150%;\n}\n.text-26-bold, .text-26-bold-capitalize, .text-26-bold-uppercase {\n  font-weight: 700;\n}\n.text-26-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-26-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-26-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-28, .text-28-italic, .text-28-bold, .text-28-bold-capitalize, .text-28-bold-uppercase, .text-28-normal, .text-28-normal-150, .text-28-normal-uppercase {\n  font-style: normal;\n  font-size: 1.75rem;\n  line-height: 120%;\n}\n.text-28-normal, .text-28-normal-150, .text-28-normal-uppercase {\n  font-weight: normal;\n}\n.text-28-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-28-normal-150 {\n  line-height: 150%;\n}\n.text-28-bold, .text-28-bold-capitalize, .text-28-bold-uppercase {\n  font-weight: 700;\n}\n.text-28-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-28-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-28-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n.text-36, .text-36-italic, .text-36-bold, .text-36-bold-capitalize, .text-36-bold-uppercase, .text-36-normal, .text-36-normal-150, .text-36-normal-uppercase {\n  font-style: normal;\n  font-size: 2.25rem;\n  line-height: 120%;\n}\n.text-36-normal, .text-36-normal-150, .text-36-normal-uppercase {\n  font-weight: normal;\n}\n.text-36-normal-uppercase {\n  text-transform: uppercase;\n}\n.text-36-normal-150 {\n  line-height: 150%;\n}\n.text-36-bold, .text-36-bold-capitalize, .text-36-bold-uppercase {\n  font-weight: 700;\n}\n.text-36-bold-uppercase {\n  text-transform: uppercase;\n}\n.text-36-bold-capitalize {\n  text-transform: capitalize;\n}\n.text-36-italic {\n  font-style: italic;\n  font-weight: normal;\n}\n\n/* Card */\n.card-title-on {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1.125rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-text-bold {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-indicator {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n.card-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n/* Chart */\n.chart-ticks-x-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 120%;\n}\n@media only screen and (max-width : 768px) {\n  .chart-ticks-x-text {\n    font-size: 0.685rem;\n  }\n}\n\n.chart-ticks-y-text {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  font-size: 0.9rem;\n  line-height: 120%;\n}\n@media only screen and (max-width : 768px) {\n  .chart-ticks-y-text {\n    font-size: 0.75rem;\n  }\n}\n\n/* Cozy bar */\n.cozybar {\n  font-family: Lato, sans-serif;\n  font-style: normal;\n  font-weight: bold;\n  font-size: 1.3125rem;\n  line-height: 120%;\n  color: #e0e0e0;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.axis {\n  color: #7b7b7b;\n}\n.axis .tick-text {\n  fill: #7b7b7b;\n}\n.axis .tick-text.tick-text-selected {\n  fill: #e0e0e0;\n}\n.axis .separator {\n  text-align: center;\n  margin: 0 2px;\n  font-size: 1rem !important;\n}\n\n.value-text {\n  fill: #7b7b7b;\n}\n.value-text.selected {\n  fill: #e0e0e0;\n}\n\n.barContainer.disabled *,\n.barFill.disabled * {\n  cursor: default !important;\n}\n.barContainer:hover,\n.barFill:hover {\n  cursor: pointer;\n}\n\n.background-true {\n  opacity: 0.1;\n}\n.background-true:hover {\n  cursor: pointer;\n}\n\n.background-false {\n  opacity: 0;\n}\n\n.bar-compare-ELECTRICITY:hover,\n.bar-compare-GAS:hover,\n.bar-compare-WATER:hover,\n.bar-compare-MULTIFLUID:hover,\n.bar-MULTIFLUID:hover,\n.bar-WATER:hover,\n.bar-GAS:hover,\n.bar-ELECTRICITY:hover {\n  cursor: pointer;\n}\n.bar-compare-ELECTRICITY:hover.disabled,\n.bar-compare-GAS:hover.disabled,\n.bar-compare-WATER:hover.disabled,\n.bar-compare-MULTIFLUID:hover.disabled,\n.bar-MULTIFLUID:hover.disabled,\n.bar-WATER:hover.disabled,\n.bar-GAS:hover.disabled,\n.bar-ELECTRICITY:hover.disabled {\n  cursor: default;\n}\n\n.bar-ELECTRICITY {\n  fill: #5d3d2a;\n}\n.bar-ELECTRICITY.selected {\n  fill: #d87b39;\n  filter: drop-shadow(0 -0.1rem 0.2rem #d87b39);\n}\n\n.bar-compare-ELECTRICITY {\n  fill: #795c47;\n}\n.bar-compare-ELECTRICITY.selected {\n  fill: #e2bca1;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1);\n}\n\n.bar-WATER {\n  fill: #20415e;\n}\n.bar-WATER.selected {\n  fill: #3a98ec;\n  filter: drop-shadow(0 -0.1rem 0.2rem #3a98ec);\n}\n\n.bar-compare-WATER {\n  fill: #4d5c6e;\n}\n.bar-compare-WATER.selected {\n  fill: #abd4fa;\n  filter: drop-shadow(0 -0.1rem 0.2rem #abd4fa);\n}\n\n.bar-GAS {\n  fill: #184940;\n}\n.bar-GAS.selected {\n  fill: #45d1b8;\n  filter: drop-shadow(0 -0.1rem 0.2rem #45d1b8);\n}\n\n.bar-compare-GAS {\n  fill: #597773;\n}\n.bar-compare-GAS.selected {\n  fill: #a8f7e9;\n  filter: drop-shadow(0 -0.1rem 0.2rem #a8f7e9);\n}\n\n.bar-MULTIFLUID {\n  fill: #705d1d;\n}\n.bar-MULTIFLUID.selected {\n  fill: #e3b82a;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n.bar-MULTIFLUID.disabled:hover {\n  cursor: default;\n}\n\n.bar-duel {\n  fill: #61f0f2;\n}\n.bar-duel.selected {\n  fill: #61f0f2;\n  filter: drop-shadow(0 -0.1rem 0.2rem #61f0f2);\n}\n.bar-duel.disabled:hover {\n  cursor: default;\n}\n\n.bar-UNCOMING {\n  fill: #7b7b7b;\n  opacity: 0.6;\n}\n.bar-UNCOMING.selected {\n  fill: #7b7b7b;\n}\n.bar-UNCOMING.disabled:hover {\n  cursor: default;\n}\n\n.bar-compare-MULTIFLUID {\n  fill: #7d6a4e;\n}\n.bar-compare-MULTIFLUID.selected {\n  fill: #ffd597;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n\n.bar-average {\n  stroke-width: 2;\n  stroke: #e3b82a;\n}\n\n.week {\n  fill: #e2bca1;\n}\n.week.selected {\n  fill: #e2bca1;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e2bca1);\n}\n\n.weekend {\n  fill: #ffd597;\n}\n.weekend.selected {\n  fill: #ffd597;\n  filter: drop-shadow(0 -0.1rem 0.2rem #e3b82a);\n}\n\n/** Animation **/\n.bounce-1 {\n  animation-name: bounce-1;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n  transform-box: fill-box;\n}\n\n@keyframes bounce-1 {\n  0% {\n    transform: scale(0.1, 0.1);\n  }\n  28% {\n    transform: scale(0.1, 1.1);\n  }\n  45% {\n    transform: scale(0.8, 0.95);\n  }\n  55% {\n    transform: scale(1, 1);\n  }\n  65% {\n    transform: scale(1, 0.98);\n  }\n  75% {\n    transform: scale(1, 1);\n  }\n}\n.bounce-2 {\n  animation-name: bounce-2;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n  transform-box: fill-box;\n}\n\n@keyframes bounce-2 {\n  0% {\n    transform: scale(1, 1);\n  }\n  28% {\n    transform: scale(1, 1.1);\n  }\n  45% {\n    transform: scale(0.8, 0.95);\n  }\n  55% {\n    transform: scale(1, 1);\n  }\n  65% {\n    transform: scale(1, 0.98);\n  }\n  75% {\n    transform: scale(1, 1);\n  }\n}\n.bounce-3 {\n  animation-name: bounce-3;\n  animation-timing-function: cubic-bezier(1, 1, 0.42, 1);\n  animation-iteration-count: 1;\n  transform-origin: bottom center;\n}\n\n@keyframes bounce-3 {\n  0% {\n    opacity: 0.6;\n    transform: scaleY(1);\n  }\n  50% {\n    transform: scaleY(1.1);\n    opacity: 0.8;\n  }\n  100% {\n    transform: scaleY(1);\n    opacity: 1;\n  }\n}\n/** Animation delay **/\n.delay {\n  animation-duration: 0.4s;\n}\n\n.delay--0 {\n  animation-duration: 0.4s;\n}\n\n.delay--1 {\n  animation-duration: 0.48s;\n}\n\n.delay--2 {\n  animation-duration: 0.56s;\n}\n\n.delay--3 {\n  animation-duration: 0.64s;\n}\n\n.delay--4 {\n  animation-duration: 0.72s;\n}\n\n.delay--5 {\n  animation-duration: 0.8s;\n}\n\n.delay--6 {\n  animation-duration: 0.88s;\n}\n\n.delay--7 {\n  animation-duration: 0.96s;\n}\n\n.delay--8 {\n  animation-duration: 1.04s;\n}\n\n.delay--9 {\n  animation-duration: 1.12s;\n}\n\n.delay--10 {\n  animation-duration: 1.2s;\n}\n\n.delay--11 {\n  animation-duration: 1.28s;\n}\n\n.delay--12 {\n  animation-duration: 1.36s;\n}\n\n.delay--13 {\n  animation-duration: 1.44s;\n}\n\n.delay--14 {\n  animation-duration: 1.52s;\n}\n\n.delay--15 {\n  animation-duration: 1.6s;\n}\n\n.delay--16 {\n  animation-duration: 1.68s;\n}\n\n.delay--17 {\n  animation-duration: 1.76s;\n}\n\n.delay--18 {\n  animation-duration: 1.84s;\n}\n\n.delay--19 {\n  animation-duration: 1.92s;\n}\n\n.delay--20 {\n  animation-duration: 2s;\n}\n\n.delay--21 {\n  animation-duration: 2.08s;\n}\n\n.delay--22 {\n  animation-duration: 2.16s;\n}\n\n.delay--23 {\n  animation-duration: 2.24s;\n}\n\n.delay--24 {\n  animation-duration: 2.32s;\n}\n\n.delay--25 {\n  animation-duration: 2.4s;\n}\n\n.delay--26 {\n  animation-duration: 2.48s;\n}\n\n.delay--27 {\n  animation-duration: 2.56s;\n}\n\n.delay--28 {\n  animation-duration: 2.64s;\n}\n\n.delay--29 {\n  animation-duration: 2.72s;\n}\n\n.delay--30 {\n  animation-duration: 2.8s;\n}\n\n.delay--31 {\n  animation-duration: 2.88s;\n}\n\n.delay--32 {\n  animation-duration: 2.96s;\n}\n\n.delay--33 {\n  animation-duration: 3.04s;\n}\n\n.delay--34 {\n  animation-duration: 3.12s;\n}\n\n.delay--35 {\n  animation-duration: 3.2s;\n}\n\n.delay--36 {\n  animation-duration: 3.28s;\n}\n\n.delay--37 {\n  animation-duration: 3.36s;\n}\n\n.delay--38 {\n  animation-duration: 3.44s;\n}\n\n.delay--39 {\n  animation-duration: 3.52s;\n}\n\n.delay--40 {\n  animation-duration: 3.6s;\n}\n\n.delay--41 {\n  animation-duration: 3.68s;\n}\n\n.delay--42 {\n  animation-duration: 3.76s;\n}\n\n.delay--43 {\n  animation-duration: 3.84s;\n}\n\n.delay--44 {\n  animation-duration: 3.92s;\n}\n\n.delay--45 {\n  animation-duration: 4s;\n}\n\n.delay--46 {\n  animation-duration: 4.08s;\n}\n\n.delay--47 {\n  animation-duration: 4.16s;\n}\n\n.delay--48 {\n  animation-duration: 4.24s;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\nbutton span {\n  font-size: 1rem;\n  font-weight: 700;\n}\nbutton.btnPrimary {\n  background: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  border: 1px solid;\n  border-color: transparent;\n  border-radius: 2px;\n  width: 100%;\n  text-transform: initial;\n  transition: all 150ms ease-in-out;\n}\nbutton.btnPrimary span:first-child {\n  color: #121212;\n}\nbutton.btnPrimary:hover, button.btnPrimary:focus, button.btnPrimary.active, button.btnPrimary:disabled {\n  background-color: #b89318;\n}\nbutton.btnPrimary:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btnSecondary {\n  background: transparent;\n  border: 1px solid;\n  border-color: #e0e0e0;\n  border-radius: 2px;\n  width: 100%;\n  text-transform: initial;\n  transition: all 150ms ease-in-out;\n}\nbutton.btnSecondary span:first-child {\n  color: #e0e0e0;\n}\nbutton.btnSecondary:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btnText {\n  text-decoration: underline;\n}\nbutton.btnText span {\n  text-transform: none;\n  font-weight: 400;\n}\nbutton.btnPrimaryNegative {\n  background: linear-gradient(180deg, #61f0f2 0%, #48c2c4 100%);\n  border: 1px solid;\n  border-color: transparent;\n  border-radius: 2px;\n  width: 100%;\n  text-transform: initial;\n  transition: all 150ms ease-in-out;\n}\nbutton.btnPrimaryNegative span:first-child {\n  color: #121212;\n}\nbutton.btnPrimaryNegative:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\nbutton.btnPrimaryNegative:hover {\n  opacity: 0.7;\n}\nbutton.btnIncrement {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  border: 1px solid;\n  border-color: transparent;\n  border-radius: 2px;\n  width: 100%;\n  text-transform: initial;\n  transition: all 150ms ease-in-out;\n  min-width: 40px;\n  width: 40px;\n  height: 40px;\n  border-radius: 4px;\n  box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.55);\n}\nbutton.btnIncrement span:first-child {\n  color: #ffffff;\n}\nbutton.btnIncrement:disabled {\n  cursor: not-allowed;\n  opacity: 0.5;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ninput.inputText,\ninput.inputNumber {\n  box-sizing: border-box;\n  border: 1px solid #7b7b7b;\n  background: transparent;\n  transition: all 300ms ease;\n  color: #e0e0e0;\n}\ninput.inputText:focus, input.inputText:focus-visible,\ninput.inputNumber:focus,\ninput.inputNumber:focus-visible {\n  border-color: #e3b82a;\n  outline: none;\n}\n\ninput.inputText {\n  appearance: none;\n  border-radius: 4px;\n  height: 45px;\n  width: 100%;\n  max-width: 280px;\n  padding: 0 0.5rem;\n}\n\ninput.inputNumber {\n  border-radius: 2px;\n  height: 40px;\n  width: 60px;\n  max-width: 5rem;\n  text-align: center;\n}\n\ninput.inputCheckbox {\n  width: 24px;\n  min-width: 24px;\n  height: 24px;\n  display: flex;\n  align-items: center;\n  border-radius: 4px;\n  cursor: pointer;\n  appearance: none;\n  background: #121212;\n  position: relative;\n  border: solid 1px #7b7b7b;\n}\ninput.inputCheckbox:checked {\n  background: #e3b82a;\n  border-color: #e3b82a;\n}\ninput.inputCheckbox:checked:before, input.inputCheckbox:checked:after {\n  content: \"\";\n  position: absolute;\n  display: inline-block;\n  background: #121212;\n  border-radius: 0.5rem;\n}\ninput.inputCheckbox:checked:before {\n  width: 3px;\n  height: 12px;\n  left: 10px;\n  top: 4px;\n  transform: rotate(41deg);\n}\ninput.inputCheckbox:checked:after {\n  width: 3px;\n  height: 6px;\n  left: 5px;\n  top: 8px;\n  transform: rotate(133deg);\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\n.card {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  box-sizing: border-box;\n  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.75);\n  border-radius: 4px;\n  padding: 16px;\n}\n.card:hover {\n  background: linear-gradient(180deg, rgba(70, 71, 77, 0.7) 0%, rgba(57, 58, 63, 0.7) 100%);\n}\n.card.rich-card {\n  padding: 16px;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ndiv.modal-root .MuiBackdrop-root {\n  background-color: hsla(231deg, 11%, 12%, 0.85);\n}\n\ndiv.modal-paper {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  width: 36rem;\n  max-width: 100%;\n  max-height: 90vh;\n  padding: 2rem;\n  box-sizing: border-box;\n  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  margin: 0 0 0 13.75rem;\n  align-items: center;\n  color: #ffffff;\n}\n@media only screen and (max-width : 1023px) {\n  div.modal-paper {\n    width: 35rem;\n    margin: 0;\n  }\n}\n@media only screen and (max-width : 768px) {\n  div.modal-paper {\n    padding: 1rem 1rem 1.5rem;\n    width: 85%;\n    max-width: 35rem;\n    margin: 0;\n  }\n}\ndiv.modal-paper.no-padding {\n  padding: 0;\n}\ndiv.modal-paper.blue-border {\n  border: 1px solid rgba(88, 255, 255, 0.2509803922);\n}\ndiv.modal-paper.blue-light-border {\n  border: 1px solid #61f0f2;\n}\ndiv.modal-paper.yellow-border {\n  border: 1px solid rgba(227, 184, 42, 0.4);\n}\ndiv.modal-paper .modal-paper-close-button {\n  position: absolute;\n  top: 0.5rem;\n  right: 0.5rem;\n  padding: 5px 5px;\n  z-index: 10;\n}\n\ndiv.modal-paper-full-screen {\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  width: 100%;\n  max-width: 100%;\n  height: 100%;\n  max-height: 100%;\n  padding: 0;\n  margin: 0;\n  box-sizing: border-box;\n  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.55);\n  border-radius: 4px;\n  color: #ffffff;\n  display: flex;\n  align-items: center;\n}\ndiv.modal-paper-full-screen.dark-background {\n  background: #121212;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\ndiv.expansion-panel-root {\n  margin: 1.2rem 0;\n  color: #e0e0e0;\n  background: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  border-radius: 4px;\n  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.75);\n  transition: background-color 0.6s ease;\n  box-sizing: border-box;\n}\ndiv.expansion-panel-root.Mui-expanded:first-child {\n  margin: 1.2rem 0;\n}\ndiv.expansion-panel-root.Mui-expanded:last-child {\n  margin: 1.2rem 0;\n}\ndiv.expansion-panel-root.red-border {\n  border: 1px solid #d25959;\n}\n\ndiv.expansion-panel-summary {\n  padding: 0.25rem 1.2rem;\n  min-height: 4rem;\n}\ndiv.expansion-panel-summary.Mui-focused {\n  border-radius: 4px;\n  background-color: unset;\n  box-shadow: 0 0 0 1px #e0e0e0;\n}\ndiv.expansion-panel-summary.Mui-expanded {\n  min-height: 4rem;\n}\ndiv.expansion-panel-summary.Mui-expanded.small {\n  min-height: 3rem;\n}\ndiv.expansion-panel-summary.small {\n  padding: 0 1.2rem;\n  min-height: 3rem;\n}\ndiv.expansion-panel-summary.bold-text {\n  font-weight: bold;\n}\n\ndiv.expansion-panel-content {\n  display: flex;\n  align-items: center;\n}\ndiv.expansion-panel-content.Mui-expanded {\n  margin: 0.75rem 0;\n}\n\ndiv.expansion-panel-details {\n  padding: 0 1.2rem 1.2rem;\n}\n\n/** BLACK **/\n/** RED **/\n/** YELLOW **/\n/** ORANGE **/\n/** BLUE **/\n/** GREEN **/\n/** WHITE **/\n/** GREY **/\n/** App colors **/\n/** TABS GRADIENT **/\n/** SCROLLBAR **/\na {\n  color: #deaf0e;\n}\na:visited {\n  color: #deaf0e;\n}\n\na:focus {\n  outline: none;\n  box-shadow: inset 0 0 0 1px #e0e0e0;\n}\na:focus > div:first-child {\n  box-shadow: 0 0 0 1px #e0e0e0;\n}\n\na.MuiLink-underlineHover:hover {\n  text-decoration: none;\n}\n\na.MuiTypography-colorPrimary {\n  color: #e0e0e0;\n}\n\n:root {\n  white-space: pre-line;\n  --blue: #58ffff;\n  --blue40: rgba(88, 255, 255, 0.2509803922);\n  --blueBackground: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  --blueRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(1, 153, 163, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #58ffff;\n  --blueRadialGradientTrans: radial-gradient(circle, #58ffff 0%, rgba(255, 255, 255, 0) 100%);\n  --elecColor: #d87b39;\n  --elecColor40: rgba(216, 123, 57, 0.4);\n  --elecCompareColor: #e2bca1;\n  --gasColor: #45d1b8;\n  --gasColor40: rgba(69, 209, 184, 0.4);\n  --gasCompareColor: #a8f7e9;\n  --waterColor: #3a98ec;\n  --waterColor40: rgba(58, 152, 236, 0.4);\n  --waterCompareColor: #abd4fa;\n  --multiColor: #e3b82a;\n  --multiCompareColor: #ffd597;\n  --redPrimary: #d25959;\n  --greyBright: #e0e0e0;\n  --greyDark: #7b7b7b;\n  --textWhite: #ffffff;\n  --softGrey: #a0a0a0;\n  --darkLight: #25262b;\n  --darkLight2: #121212;\n  --textFont: Lato, sans-serif;\n  --greyLinearGradientBackground: linear-gradient(180deg, #323339 0%, #25262b 100%);\n  --multiColorRadialGradientTrans: radial-gradient(circle, #e3b82a 0%, rgba(255, 255, 255, 0) 100%);\n  --elecColorRadialGradientTrans: radial-gradient(circle, #d87b39 0%, rgba(255, 255, 255, 0) 100%);\n  --waterColorRadialGradientTrans: radial-gradient(circle, #3a98ec 0%, rgba(255, 255, 255, 0) 100%);\n  --gasColorRadialGradientTrans: radial-gradient(circle, #e3b82a 0%, rgba(255, 255, 255, 0) 100%);\n  --multiColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(226, 137, 4, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #f1c017;\n  --elecColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(158, 67, 2, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #d87b39;\n  --gasColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(4, 106, 88, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #45d1b8;\n  --waterColorRadialGradient: radial-gradient(105.25% 64.58% at 49.68% 70.83%, rgba(2, 93, 174, 0.5) 0%, rgba(255, 255, 255, 0) 100%), #3a98ec;\n}\n\n.application {\n  overflow-x: hidden;\n  background-color: #121212;\n}\n\n.accordion-icon {\n  color: #ffffff;\n}\n\n.loaderContainer {\n  height: 80vh;\n  display: flex;\n  flex: 1;\n  justify-content: center;\n  align-items: center;\n}\n\n.makeStyles-fab-1 {\n  top: 12px;\n  left: 3rem !important;\n  width: 36px !important;\n  height: 36px !important;\n  background-color: #323339 !important;\n}", ""]);
 
 
 
@@ -35763,6 +35766,8 @@ var _SplashRoot = _interopRequireDefault(__webpack_require__("00oi"));
 
 var _WelcomeModal = _interopRequireDefault(__webpack_require__("2s+2"));
 
+var _devtools = _interopRequireDefault(__webpack_require__("WUds"));
+
 var _cozyIntent = __webpack_require__("qvEe");
 
 var _Layout = __webpack_require__("Bh3+");
@@ -35809,7 +35814,7 @@ var App = function App(_ref) {
     className: "app-content"
   }, /*#__PURE__*/_react.default.createElement(_Routes.default, {
     termsStatus: termsStatus
-  })))));
+  }))),  false ? /*#__PURE__*/undefined : null));
 };
 
 exports.App = App;
diff --git a/index.html b/index.html
index 944c046f313f14a68666d7e6ea704e16ba4436e2..2174b76c4ce9d6f5e352ba1f920b980339f37af3 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.a5c9d62c538391baa02b.js"></script><script src="app/ecolyo.969d329ebe388b07c5d8.js"></script></div></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.9ee7ecded9ec82c2cedd.js"></script><script src="app/ecolyo.c2a25884dc12afde8f0c.js"></script></div></body></html>
\ No newline at end of file
diff --git a/vendors/ecolyo.a5c9d62c538391baa02b.js b/vendors/ecolyo.9ee7ecded9ec82c2cedd.js
similarity index 98%
rename from vendors/ecolyo.a5c9d62c538391baa02b.js
rename to vendors/ecolyo.9ee7ecded9ec82c2cedd.js
index fa0bf37e91bb285abff3878c31b274c9a596b510..1f5325a25ee2ece92245be5a99fd2b1bb9e1bed3 100644
--- a/vendors/ecolyo.a5c9d62c538391baa02b.js
+++ b/vendors/ecolyo.9ee7ecded9ec82c2cedd.js
@@ -14697,6 +14697,36 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
+/***/ }),
+
+/***/ "/mUN":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isProtectedDayOfYearToken", function() { return isProtectedDayOfYearToken; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isProtectedWeekYearToken", function() { return isProtectedWeekYearToken; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwProtectedError", function() { return throwProtectedError; });
+var protectedDayOfYearTokens = ['D', 'DD'];
+var protectedWeekYearTokens = ['YY', 'YYYY'];
+function isProtectedDayOfYearToken(token) {
+  return protectedDayOfYearTokens.indexOf(token) !== -1;
+}
+function isProtectedWeekYearToken(token) {
+  return protectedWeekYearTokens.indexOf(token) !== -1;
+}
+function throwProtectedError(token, format, input) {
+  if (token === 'YYYY') {
+    throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+  } else if (token === 'YY') {
+    throw new RangeError("Use `yy` instead of `YY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+  } else if (token === 'D') {
+    throw new RangeError("Use `d` instead of `D` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+  } else if (token === 'DD') {
+    throw new RangeError("Use `dd` instead of `DD` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
+  }
+}
+
 /***/ }),
 
 /***/ "/o4U":
@@ -30286,6 +30316,28 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
+/***/ }),
+
+/***/ "36QO":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+var formatRelativeLocale = {
+  lastWeek: "'last' eeee 'at' p",
+  yesterday: "'yesterday at' p",
+  today: "'today at' p",
+  tomorrow: "'tomorrow at' p",
+  nextWeek: "eeee 'at' p",
+  other: 'P'
+};
+
+var formatRelative = function formatRelative(token, _date, _baseDate, _options) {
+  return formatRelativeLocale[token];
+};
+
+/* harmony default export */ __webpack_exports__["default"] = (formatRelative);
+
 /***/ }),
 
 /***/ "39GT":
@@ -34706,6 +34758,30 @@ function basePropertyDeep(path) {
 module.exports = basePropertyDeep;
 
 
+/***/ }),
+
+/***/ "4195":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return startOfUTCISOWeekYear; });
+/* harmony import */ var _getUTCISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("FEHn");
+/* harmony import */ var _startOfUTCISOWeek_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("6/aj");
+/* harmony import */ var _requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("/1sL");
+
+
+
+function startOfUTCISOWeekYear(dirtyDate) {
+  Object(_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(1, arguments);
+  var year = Object(_getUTCISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate);
+  var fourthOfJanuary = new Date(0);
+  fourthOfJanuary.setUTCFullYear(year, 0, 4);
+  fourthOfJanuary.setUTCHours(0, 0, 0, 0);
+  var date = Object(_startOfUTCISOWeek_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(fourthOfJanuary);
+  return date;
+}
+
 /***/ }),
 
 /***/ "42CK":
@@ -37753,6 +37829,119 @@ module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
 };
 
 
+/***/ }),
+
+/***/ "4M3m":
+/***/ (function(module, exports, __webpack_require__) {
+
+var apply = __webpack_require__("heNW"),
+    arrayMap = __webpack_require__("eUgh"),
+    baseIteratee = __webpack_require__("ut/Y"),
+    baseRest = __webpack_require__("EA7m"),
+    baseUnary = __webpack_require__("sEf8"),
+    flatRest = __webpack_require__("xs/l");
+
+/**
+ * Creates a function like `_.over`.
+ *
+ * @private
+ * @param {Function} arrayFunc The function to iterate over iteratees.
+ * @returns {Function} Returns the new over function.
+ */
+function createOver(arrayFunc) {
+  return flatRest(function(iteratees) {
+    iteratees = arrayMap(iteratees, baseUnary(baseIteratee));
+    return baseRest(function(args) {
+      var thisArg = this;
+      return arrayFunc(iteratees, function(iteratee) {
+        return apply(iteratee, thisArg, args);
+      });
+    });
+  });
+}
+
+module.exports = createOver;
+
+
+/***/ }),
+
+/***/ "4Nyy":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+var _Typography = _interopRequireDefault(__webpack_require__("c8ah"));
+
+var _cozyFlags = _interopRequireDefault(__webpack_require__("mgfL"));
+
+var _PanelContent = _interopRequireDefault(__webpack_require__("XEzQ"));
+
+var Flags = function Flags() {
+  return /*#__PURE__*/_react.default.createElement(_PanelContent.default, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
+    variant: "subtitle1"
+  }, "Flags"), /*#__PURE__*/_react.default.createElement(_cozyFlags.default.FlagSwitcher.List, null));
+};
+
+var _default = Flags;
+exports.default = _default;
+
+/***/ }),
+
+/***/ "4O/9":
+/***/ (function(module, exports, __webpack_require__) {
+
+var toInteger = __webpack_require__("Sxd8");
+
+/** Error message constants. */
+var FUNC_ERROR_TEXT = 'Expected a function';
+
+/**
+ * Creates a function that invokes `func`, with the `this` binding and arguments
+ * of the created function, while it's called less than `n` times. Subsequent
+ * calls to the created function return the result of the last `func` invocation.
+ *
+ * @static
+ * @memberOf _
+ * @since 3.0.0
+ * @category Function
+ * @param {number} n The number of calls at which `func` is no longer invoked.
+ * @param {Function} func The function to restrict.
+ * @returns {Function} Returns the new restricted function.
+ * @example
+ *
+ * jQuery(element).on('click', _.before(5, addContactToList));
+ * // => Allows adding up to 4 contacts to the list.
+ */
+function before(n, func) {
+  var result;
+  if (typeof func != 'function') {
+    throw new TypeError(FUNC_ERROR_TEXT);
+  }
+  n = toInteger(n);
+  return function() {
+    if (--n > 0) {
+      result = func.apply(this, arguments);
+    }
+    if (n <= 1) {
+      func = undefined;
+    }
+    return result;
+  };
+}
+
+module.exports = before;
+
+
 /***/ }),
 
 /***/ "4O6o":
@@ -43693,6 +43882,37 @@ __webpack_require__("Xtr8")('getPrototypeOf', function () {
 });
 
 
+/***/ }),
+
+/***/ "5Q4P":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return buildLocalizeFn; });
+function buildLocalizeFn(args) {
+  return function (dirtyIndex, options) {
+    var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';
+    var valuesArray;
+
+    if (context === 'formatting' && args.formattingValues) {
+      var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
+      var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;
+      valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
+    } else {
+      var _defaultWidth = args.defaultWidth;
+
+      var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;
+
+      valuesArray = args.values[_width] || args.values[_defaultWidth];
+    }
+
+    var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
+
+    return valuesArray[index];
+  };
+}
+
 /***/ }),
 
 /***/ "5R0t":
@@ -45398,6 +45618,29 @@ var common = {
 
 /***/ }),
 
+/***/ "6/aj":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return startOfUTCISOWeek; });
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YADU");
+/* harmony import */ var _requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/1sL");
+
+
+function startOfUTCISOWeek(dirtyDate) {
+  Object(_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(1, arguments);
+  var weekStartsOn = 1;
+  var date = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate);
+  var day = date.getUTCDay();
+  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
+  date.setUTCDate(date.getUTCDate() - diff);
+  date.setUTCHours(0, 0, 0, 0);
+  return date;
+}
+
+/***/ }),
+
 /***/ "61xn":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
@@ -45522,6 +45765,26 @@ module.exports = forge.md = forge.md || {};
 forge.md.algorithms = forge.md.algorithms || {};
 
 
+/***/ }),
+
+/***/ "65RL":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = function (obj) {
+
+  if (obj == null) {
+    return false;
+  }
+
+  var o = Object(obj);
+
+  return o === o.window;
+};
+
+
 /***/ }),
 
 /***/ "668i":
@@ -46189,6 +46452,55 @@ module.exports = function (original) {
 };
 
 
+/***/ }),
+
+/***/ "6Gp6":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
+
+var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+var _Typography = _interopRequireDefault(__webpack_require__("c8ah"));
+
+var _PanelContent = _interopRequireDefault(__webpack_require__("XEzQ"));
+
+/* global __VERSIONS__ */
+var Versions = function Versions() {
+  // @ts-ignore
+  var versions = typeof __VERSIONS__ !== 'undefined' ? __VERSIONS__ : {};
+  var entries = Object.entries(versions);
+  return /*#__PURE__*/_react.default.createElement(_PanelContent.default, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
+    variant: "subtitle1",
+    gutterBottom: true
+  }, "Library versions"), entries.map(function (_ref) {
+    var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
+        pkg = _ref2[0],
+        version = _ref2[1];
+
+    return /*#__PURE__*/_react.default.createElement("div", {
+      key: pkg
+    }, pkg, ": ", version, " -", ' ', /*#__PURE__*/_react.default.createElement("img", {
+      src: "https://img.shields.io/npm/v/".concat(pkg, "?style=flat-square}")
+    }));
+  }), entries.length === 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
+    variant: "body1"
+  }, "__VERSIONS__ is not exposed to the app. For this panel to work, you must add the VersionsPlugin."), /*#__PURE__*/_react.default.createElement("pre", null, "\nconst VersionPlugin = require('cozy-scripts/plugins/VersionPlugin')\n\nnew VersionPlugin({\n    packages: ['cozy-bar', 'cozy-ui', 'cozy-harvest-lib']\n})\n          ")) : null);
+};
+
+var _default = Versions;
+exports.default = _default;
+
 /***/ }),
 
 /***/ "6HsW":
@@ -54288,6 +54600,46 @@ exports.certifyFlagship = certifyFlagship;
 
 /***/ }),
 
+/***/ "7uav":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return addMilliseconds; });
+/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("R6KR");
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("YADU");
+/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("/1sL");
+
+
+
+/**
+ * @name addMilliseconds
+ * @category Millisecond Helpers
+ * @summary Add the specified number of milliseconds to the given date.
+ *
+ * @description
+ * Add the specified number of milliseconds to the given date.
+ *
+ * @param {Date|Number} date - the date to be changed
+ * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
+ * @returns {Date} the new date with the milliseconds added
+ * @throws {TypeError} 2 arguments required
+ *
+ * @example
+ * // Add 750 milliseconds to 10 July 2014 12:45:30.000:
+ * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
+ * //=> Thu Jul 10 2014 12:45:30.750
+ */
+
+function addMilliseconds(dirtyDate, dirtyAmount) {
+  Object(_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(2, arguments);
+  var timestamp = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate).getTime();
+  var amount = Object(_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyAmount);
+  return new Date(timestamp + amount);
+}
+
+/***/ }),
+
 /***/ "7ur/":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -76405,6 +76757,25 @@ exports.logger = _logger2['default'];
 //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy43JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19
 
 
+/***/ }),
+
+/***/ "BI0X":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return addLeadingZeros; });
+function addLeadingZeros(number, targetLength) {
+  var sign = number < 0 ? '-' : '';
+  var output = Math.abs(number).toString();
+
+  while (output.length < targetLength) {
+    output = '0' + output;
+  }
+
+  return sign + output;
+}
+
 /***/ }),
 
 /***/ "BJ/l":
@@ -78105,6 +78476,161 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
+/***/ }),
+
+/***/ "Bs1I":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _lib_buildLocalizeFn_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5Q4P");
+
+var eraValues = {
+  narrow: ['B', 'A'],
+  abbreviated: ['BC', 'AD'],
+  wide: ['Before Christ', 'Anno Domini']
+};
+var quarterValues = {
+  narrow: ['1', '2', '3', '4'],
+  abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],
+  wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']
+}; // Note: in English, the names of days of the week and months are capitalized.
+// If you are making a new locale based on this one, check if the same is true for the language you're working on.
+// Generally, formatted dates should look like they are in the middle of a sentence,
+// e.g. in Spanish language the weekdays and months should be in the lowercase.
+
+var monthValues = {
+  narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
+  abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+  wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
+};
+var dayValues = {
+  narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+  short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
+  abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+  wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
+};
+var dayPeriodValues = {
+  narrow: {
+    am: 'a',
+    pm: 'p',
+    midnight: 'mi',
+    noon: 'n',
+    morning: 'morning',
+    afternoon: 'afternoon',
+    evening: 'evening',
+    night: 'night'
+  },
+  abbreviated: {
+    am: 'AM',
+    pm: 'PM',
+    midnight: 'midnight',
+    noon: 'noon',
+    morning: 'morning',
+    afternoon: 'afternoon',
+    evening: 'evening',
+    night: 'night'
+  },
+  wide: {
+    am: 'a.m.',
+    pm: 'p.m.',
+    midnight: 'midnight',
+    noon: 'noon',
+    morning: 'morning',
+    afternoon: 'afternoon',
+    evening: 'evening',
+    night: 'night'
+  }
+};
+var formattingDayPeriodValues = {
+  narrow: {
+    am: 'a',
+    pm: 'p',
+    midnight: 'mi',
+    noon: 'n',
+    morning: 'in the morning',
+    afternoon: 'in the afternoon',
+    evening: 'in the evening',
+    night: 'at night'
+  },
+  abbreviated: {
+    am: 'AM',
+    pm: 'PM',
+    midnight: 'midnight',
+    noon: 'noon',
+    morning: 'in the morning',
+    afternoon: 'in the afternoon',
+    evening: 'in the evening',
+    night: 'at night'
+  },
+  wide: {
+    am: 'a.m.',
+    pm: 'p.m.',
+    midnight: 'midnight',
+    noon: 'noon',
+    morning: 'in the morning',
+    afternoon: 'in the afternoon',
+    evening: 'in the evening',
+    night: 'at night'
+  }
+};
+
+var ordinalNumber = function ordinalNumber(dirtyNumber, _options) {
+  var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,
+  // if they are different for different grammatical genders,
+  // use `options.unit`.
+  //
+  // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',
+  // 'day', 'hour', 'minute', 'second'.
+
+  var rem100 = number % 100;
+
+  if (rem100 > 20 || rem100 < 10) {
+    switch (rem100 % 10) {
+      case 1:
+        return number + 'st';
+
+      case 2:
+        return number + 'nd';
+
+      case 3:
+        return number + 'rd';
+    }
+  }
+
+  return number + 'th';
+};
+
+var localize = {
+  ordinalNumber: ordinalNumber,
+  era: Object(_lib_buildLocalizeFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    values: eraValues,
+    defaultWidth: 'wide'
+  }),
+  quarter: Object(_lib_buildLocalizeFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    values: quarterValues,
+    defaultWidth: 'wide',
+    argumentCallback: function argumentCallback(quarter) {
+      return quarter - 1;
+    }
+  }),
+  month: Object(_lib_buildLocalizeFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    values: monthValues,
+    defaultWidth: 'wide'
+  }),
+  day: Object(_lib_buildLocalizeFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    values: dayValues,
+    defaultWidth: 'wide'
+  }),
+  dayPeriod: Object(_lib_buildLocalizeFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    values: dayPeriodValues,
+    defaultWidth: 'wide',
+    formattingValues: formattingDayPeriodValues,
+    defaultFormattingWidth: 'wide'
+  })
+};
+/* harmony default export */ __webpack_exports__["default"] = (localize);
+
 /***/ }),
 
 /***/ "BsTD":
@@ -84027,6 +84553,444 @@ __webpack_require__.r(__webpack_exports__);
 
 /***/ }),
 
+/***/ "D6V2":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return format; });
+/* harmony import */ var _isValid_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("m7/o");
+/* harmony import */ var _subMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("KOJT");
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("YADU");
+/* harmony import */ var _lib_format_formatters_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("KhKx");
+/* harmony import */ var _lib_format_longFormatters_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("tO31");
+/* harmony import */ var _lib_getTimezoneOffsetInMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("Iy96");
+/* harmony import */ var _lib_protectedTokens_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("/mUN");
+/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("R6KR");
+/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("/1sL");
+/* harmony import */ var _lib_defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("rEtr");
+/* harmony import */ var _lib_defaultLocale_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("N7dy");
+
+
+
+
+
+
+
+
+
+
+ // This RegExp consists of three parts separated by `|`:
+// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token
+//   (one of the certain letters followed by `o`)
+// - (\w)\1* matches any sequences of the same letter
+// - '' matches two quote characters in a row
+// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),
+//   except a single quote symbol, which ends the sequence.
+//   Two quote characters do not end the sequence.
+//   If there is no matching single quote
+//   then the sequence will continue until the end of the string.
+// - . matches any single character unmatched by previous parts of the RegExps
+
+var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also
+// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`
+
+var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
+var escapedStringRegExp = /^'([^]*?)'?$/;
+var doubleQuoteRegExp = /''/g;
+var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
+/**
+ * @name format
+ * @category Common Helpers
+ * @summary Format the date.
+ *
+ * @description
+ * Return the formatted date string in the given format. The result may vary by locale.
+ *
+ * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.
+ * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ *
+ * The characters wrapped between two single quotes characters (') are escaped.
+ * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.
+ * (see the last example)
+ *
+ * Format of the string is based on Unicode Technical Standard #35:
+ * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table
+ * with a few additions (see note 7 below the table).
+ *
+ * Accepted patterns:
+ * | Unit                            | Pattern | Result examples                   | Notes |
+ * |---------------------------------|---------|-----------------------------------|-------|
+ * | Era                             | G..GGG  | AD, BC                            |       |
+ * |                                 | GGGG    | Anno Domini, Before Christ        | 2     |
+ * |                                 | GGGGG   | A, B                              |       |
+ * | Calendar year                   | y       | 44, 1, 1900, 2017                 | 5     |
+ * |                                 | yo      | 44th, 1st, 0th, 17th              | 5,7   |
+ * |                                 | yy      | 44, 01, 00, 17                    | 5     |
+ * |                                 | yyy     | 044, 001, 1900, 2017              | 5     |
+ * |                                 | yyyy    | 0044, 0001, 1900, 2017            | 5     |
+ * |                                 | yyyyy   | ...                               | 3,5   |
+ * | Local week-numbering year       | Y       | 44, 1, 1900, 2017                 | 5     |
+ * |                                 | Yo      | 44th, 1st, 1900th, 2017th         | 5,7   |
+ * |                                 | YY      | 44, 01, 00, 17                    | 5,8   |
+ * |                                 | YYY     | 044, 001, 1900, 2017              | 5     |
+ * |                                 | YYYY    | 0044, 0001, 1900, 2017            | 5,8   |
+ * |                                 | YYYYY   | ...                               | 3,5   |
+ * | ISO week-numbering year         | R       | -43, 0, 1, 1900, 2017             | 5,7   |
+ * |                                 | RR      | -43, 00, 01, 1900, 2017           | 5,7   |
+ * |                                 | RRR     | -043, 000, 001, 1900, 2017        | 5,7   |
+ * |                                 | RRRR    | -0043, 0000, 0001, 1900, 2017     | 5,7   |
+ * |                                 | RRRRR   | ...                               | 3,5,7 |
+ * | Extended year                   | u       | -43, 0, 1, 1900, 2017             | 5     |
+ * |                                 | uu      | -43, 01, 1900, 2017               | 5     |
+ * |                                 | uuu     | -043, 001, 1900, 2017             | 5     |
+ * |                                 | uuuu    | -0043, 0001, 1900, 2017           | 5     |
+ * |                                 | uuuuu   | ...                               | 3,5   |
+ * | Quarter (formatting)            | Q       | 1, 2, 3, 4                        |       |
+ * |                                 | Qo      | 1st, 2nd, 3rd, 4th                | 7     |
+ * |                                 | QQ      | 01, 02, 03, 04                    |       |
+ * |                                 | QQQ     | Q1, Q2, Q3, Q4                    |       |
+ * |                                 | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |
+ * |                                 | QQQQQ   | 1, 2, 3, 4                        | 4     |
+ * | Quarter (stand-alone)           | q       | 1, 2, 3, 4                        |       |
+ * |                                 | qo      | 1st, 2nd, 3rd, 4th                | 7     |
+ * |                                 | qq      | 01, 02, 03, 04                    |       |
+ * |                                 | qqq     | Q1, Q2, Q3, Q4                    |       |
+ * |                                 | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |
+ * |                                 | qqqqq   | 1, 2, 3, 4                        | 4     |
+ * | Month (formatting)              | M       | 1, 2, ..., 12                     |       |
+ * |                                 | Mo      | 1st, 2nd, ..., 12th               | 7     |
+ * |                                 | MM      | 01, 02, ..., 12                   |       |
+ * |                                 | MMM     | Jan, Feb, ..., Dec                |       |
+ * |                                 | MMMM    | January, February, ..., December  | 2     |
+ * |                                 | MMMMM   | J, F, ..., D                      |       |
+ * | Month (stand-alone)             | L       | 1, 2, ..., 12                     |       |
+ * |                                 | Lo      | 1st, 2nd, ..., 12th               | 7     |
+ * |                                 | LL      | 01, 02, ..., 12                   |       |
+ * |                                 | LLL     | Jan, Feb, ..., Dec                |       |
+ * |                                 | LLLL    | January, February, ..., December  | 2     |
+ * |                                 | LLLLL   | J, F, ..., D                      |       |
+ * | Local week of year              | w       | 1, 2, ..., 53                     |       |
+ * |                                 | wo      | 1st, 2nd, ..., 53th               | 7     |
+ * |                                 | ww      | 01, 02, ..., 53                   |       |
+ * | ISO week of year                | I       | 1, 2, ..., 53                     | 7     |
+ * |                                 | Io      | 1st, 2nd, ..., 53th               | 7     |
+ * |                                 | II      | 01, 02, ..., 53                   | 7     |
+ * | Day of month                    | d       | 1, 2, ..., 31                     |       |
+ * |                                 | do      | 1st, 2nd, ..., 31st               | 7     |
+ * |                                 | dd      | 01, 02, ..., 31                   |       |
+ * | Day of year                     | D       | 1, 2, ..., 365, 366               | 9     |
+ * |                                 | Do      | 1st, 2nd, ..., 365th, 366th       | 7     |
+ * |                                 | DD      | 01, 02, ..., 365, 366             | 9     |
+ * |                                 | DDD     | 001, 002, ..., 365, 366           |       |
+ * |                                 | DDDD    | ...                               | 3     |
+ * | Day of week (formatting)        | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |
+ * |                                 | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |
+ * |                                 | EEEEE   | M, T, W, T, F, S, S               |       |
+ * |                                 | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
+ * | ISO day of week (formatting)    | i       | 1, 2, 3, ..., 7                   | 7     |
+ * |                                 | io      | 1st, 2nd, ..., 7th                | 7     |
+ * |                                 | ii      | 01, 02, ..., 07                   | 7     |
+ * |                                 | iii     | Mon, Tue, Wed, ..., Sun           | 7     |
+ * |                                 | iiii    | Monday, Tuesday, ..., Sunday      | 2,7   |
+ * |                                 | iiiii   | M, T, W, T, F, S, S               | 7     |
+ * |                                 | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 7     |
+ * | Local day of week (formatting)  | e       | 2, 3, 4, ..., 1                   |       |
+ * |                                 | eo      | 2nd, 3rd, ..., 1st                | 7     |
+ * |                                 | ee      | 02, 03, ..., 01                   |       |
+ * |                                 | eee     | Mon, Tue, Wed, ..., Sun           |       |
+ * |                                 | eeee    | Monday, Tuesday, ..., Sunday      | 2     |
+ * |                                 | eeeee   | M, T, W, T, F, S, S               |       |
+ * |                                 | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
+ * | Local day of week (stand-alone) | c       | 2, 3, 4, ..., 1                   |       |
+ * |                                 | co      | 2nd, 3rd, ..., 1st                | 7     |
+ * |                                 | cc      | 02, 03, ..., 01                   |       |
+ * |                                 | ccc     | Mon, Tue, Wed, ..., Sun           |       |
+ * |                                 | cccc    | Monday, Tuesday, ..., Sunday      | 2     |
+ * |                                 | ccccc   | M, T, W, T, F, S, S               |       |
+ * |                                 | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |
+ * | AM, PM                          | a..aa   | AM, PM                            |       |
+ * |                                 | aaa     | am, pm                            |       |
+ * |                                 | aaaa    | a.m., p.m.                        | 2     |
+ * |                                 | aaaaa   | a, p                              |       |
+ * | AM, PM, noon, midnight          | b..bb   | AM, PM, noon, midnight            |       |
+ * |                                 | bbb     | am, pm, noon, midnight            |       |
+ * |                                 | bbbb    | a.m., p.m., noon, midnight        | 2     |
+ * |                                 | bbbbb   | a, p, n, mi                       |       |
+ * | Flexible day period             | B..BBB  | at night, in the morning, ...     |       |
+ * |                                 | BBBB    | at night, in the morning, ...     | 2     |
+ * |                                 | BBBBB   | at night, in the morning, ...     |       |
+ * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |       |
+ * |                                 | ho      | 1st, 2nd, ..., 11th, 12th         | 7     |
+ * |                                 | hh      | 01, 02, ..., 11, 12               |       |
+ * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |       |
+ * |                                 | Ho      | 0th, 1st, 2nd, ..., 23rd          | 7     |
+ * |                                 | HH      | 00, 01, 02, ..., 23               |       |
+ * | Hour [0-11]                     | K       | 1, 2, ..., 11, 0                  |       |
+ * |                                 | Ko      | 1st, 2nd, ..., 11th, 0th          | 7     |
+ * |                                 | KK      | 01, 02, ..., 11, 00               |       |
+ * | Hour [1-24]                     | k       | 24, 1, 2, ..., 23                 |       |
+ * |                                 | ko      | 24th, 1st, 2nd, ..., 23rd         | 7     |
+ * |                                 | kk      | 24, 01, 02, ..., 23               |       |
+ * | Minute                          | m       | 0, 1, ..., 59                     |       |
+ * |                                 | mo      | 0th, 1st, ..., 59th               | 7     |
+ * |                                 | mm      | 00, 01, ..., 59                   |       |
+ * | Second                          | s       | 0, 1, ..., 59                     |       |
+ * |                                 | so      | 0th, 1st, ..., 59th               | 7     |
+ * |                                 | ss      | 00, 01, ..., 59                   |       |
+ * | Fraction of second              | S       | 0, 1, ..., 9                      |       |
+ * |                                 | SS      | 00, 01, ..., 99                   |       |
+ * |                                 | SSS     | 000, 001, ..., 999                |       |
+ * |                                 | SSSS    | ...                               | 3     |
+ * | Timezone (ISO-8601 w/ Z)        | X       | -08, +0530, Z                     |       |
+ * |                                 | XX      | -0800, +0530, Z                   |       |
+ * |                                 | XXX     | -08:00, +05:30, Z                 |       |
+ * |                                 | XXXX    | -0800, +0530, Z, +123456          | 2     |
+ * |                                 | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |
+ * | Timezone (ISO-8601 w/o Z)       | x       | -08, +0530, +00                   |       |
+ * |                                 | xx      | -0800, +0530, +0000               |       |
+ * |                                 | xxx     | -08:00, +05:30, +00:00            | 2     |
+ * |                                 | xxxx    | -0800, +0530, +0000, +123456      |       |
+ * |                                 | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |
+ * | Timezone (GMT)                  | O...OOO | GMT-8, GMT+5:30, GMT+0            |       |
+ * |                                 | OOOO    | GMT-08:00, GMT+05:30, GMT+00:00   | 2     |
+ * | Timezone (specific non-locat.)  | z...zzz | GMT-8, GMT+5:30, GMT+0            | 6     |
+ * |                                 | zzzz    | GMT-08:00, GMT+05:30, GMT+00:00   | 2,6   |
+ * | Seconds timestamp               | t       | 512969520                         | 7     |
+ * |                                 | tt      | ...                               | 3,7   |
+ * | Milliseconds timestamp          | T       | 512969520900                      | 7     |
+ * |                                 | TT      | ...                               | 3,7   |
+ * | Long localized date             | P       | 04/29/1453                        | 7     |
+ * |                                 | PP      | Apr 29, 1453                      | 7     |
+ * |                                 | PPP     | April 29th, 1453                  | 7     |
+ * |                                 | PPPP    | Friday, April 29th, 1453          | 2,7   |
+ * | Long localized time             | p       | 12:00 AM                          | 7     |
+ * |                                 | pp      | 12:00:00 AM                       | 7     |
+ * |                                 | ppp     | 12:00:00 AM GMT+2                 | 7     |
+ * |                                 | pppp    | 12:00:00 AM GMT+02:00             | 2,7   |
+ * | Combination of date and time    | Pp      | 04/29/1453, 12:00 AM              | 7     |
+ * |                                 | PPpp    | Apr 29, 1453, 12:00:00 AM         | 7     |
+ * |                                 | PPPppp  | April 29th, 1453 at ...           | 7     |
+ * |                                 | PPPPpppp| Friday, April 29th, 1453 at ...   | 2,7   |
+ * Notes:
+ * 1. "Formatting" units (e.g. formatting quarter) in the default en-US locale
+ *    are the same as "stand-alone" units, but are different in some languages.
+ *    "Formatting" units are declined according to the rules of the language
+ *    in the context of a date. "Stand-alone" units are always nominative singular:
+ *
+ *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`
+ *
+ *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`
+ *
+ * 2. Any sequence of the identical letters is a pattern, unless it is escaped by
+ *    the single quote characters (see below).
+ *    If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)
+ *    the output will be the same as default pattern for this unit, usually
+ *    the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units
+ *    are marked with "2" in the last column of the table.
+ *
+ *    `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`
+ *
+ *    `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`
+ *
+ *    `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`
+ *
+ *    `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`
+ *
+ *    `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`
+ *
+ * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).
+ *    The output will be padded with zeros to match the length of the pattern.
+ *
+ *    `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`
+ *
+ * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.
+ *    These tokens represent the shortest form of the quarter.
+ *
+ * 5. The main difference between `y` and `u` patterns are B.C. years:
+ *
+ *    | Year | `y` | `u` |
+ *    |------|-----|-----|
+ *    | AC 1 |   1 |   1 |
+ *    | BC 1 |   1 |   0 |
+ *    | BC 2 |   2 |  -1 |
+ *
+ *    Also `yy` always returns the last two digits of a year,
+ *    while `uu` pads single digit years to 2 characters and returns other years unchanged:
+ *
+ *    | Year | `yy` | `uu` |
+ *    |------|------|------|
+ *    | 1    |   01 |   01 |
+ *    | 14   |   14 |   14 |
+ *    | 376  |   76 |  376 |
+ *    | 1453 |   53 | 1453 |
+ *
+ *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),
+ *    except local week-numbering years are dependent on `options.weekStartsOn`
+ *    and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}
+ *    and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).
+ *
+ * 6. Specific non-location timezones are currently unavailable in `date-fns`,
+ *    so right now these tokens fall back to GMT timezones.
+ *
+ * 7. These patterns are not in the Unicode Technical Standard #35:
+ *    - `i`: ISO day of week
+ *    - `I`: ISO week of year
+ *    - `R`: ISO week-numbering year
+ *    - `t`: seconds timestamp
+ *    - `T`: milliseconds timestamp
+ *    - `o`: ordinal number modifier
+ *    - `P`: long localized date
+ *    - `p`: long localized time
+ *
+ * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.
+ *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ *
+ * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.
+ *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ *
+ * @param {Date|Number} date - the original date
+ * @param {String} format - the string of tokens
+ * @param {Object} [options] - an object with options.
+ * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}
+ * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)
+ * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is
+ * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;
+ *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;
+ *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ * @returns {String} the formatted date string
+ * @throws {TypeError} 2 arguments required
+ * @throws {RangeError} `date` must not be Invalid Date
+ * @throws {RangeError} `options.locale` must contain `localize` property
+ * @throws {RangeError} `options.locale` must contain `formatLong` property
+ * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6
+ * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7
+ * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md
+ * @throws {RangeError} format string contains an unescaped latin alphabet character
+ *
+ * @example
+ * // Represent 11 February 2014 in middle-endian format:
+ * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')
+ * //=> '02/11/2014'
+ *
+ * @example
+ * // Represent 2 July 2014 in Esperanto:
+ * import { eoLocale } from 'date-fns/locale/eo'
+ * const result = format(new Date(2014, 6, 2), "do 'de' MMMM yyyy", {
+ *   locale: eoLocale
+ * })
+ * //=> '2-a de julio 2014'
+ *
+ * @example
+ * // Escape string by single quote characters:
+ * const result = format(new Date(2014, 6, 2, 15), "h 'o''clock'")
+ * //=> "3 o'clock"
+ */
+
+function format(dirtyDate, dirtyFormatStr, options) {
+  var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;
+
+  Object(_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_8__["default"])(2, arguments);
+  var formatStr = String(dirtyFormatStr);
+  var defaultOptions = Object(_lib_defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_9__["getDefaultOptions"])();
+  var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : _lib_defaultLocale_index_js__WEBPACK_IMPORTED_MODULE_10__["default"];
+  var firstWeekContainsDate = Object(_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_7__["default"])((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN
+
+  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
+    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
+  }
+
+  var weekStartsOn = Object(_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_7__["default"])((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN
+
+  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
+    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
+  }
+
+  if (!locale.localize) {
+    throw new RangeError('locale must contain localize property');
+  }
+
+  if (!locale.formatLong) {
+    throw new RangeError('locale must contain formatLong property');
+  }
+
+  var originalDate = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyDate);
+
+  if (!Object(_isValid_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(originalDate)) {
+    throw new RangeError('Invalid time value');
+  } // Convert the date in system timezone to the same date in UTC+00:00 timezone.
+  // This ensures that when UTC functions will be implemented, locales will be compatible with them.
+  // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376
+
+
+  var timezoneOffset = Object(_lib_getTimezoneOffsetInMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(originalDate);
+  var utcDate = Object(_subMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(originalDate, timezoneOffset);
+  var formatterOptions = {
+    firstWeekContainsDate: firstWeekContainsDate,
+    weekStartsOn: weekStartsOn,
+    locale: locale,
+    _originalDate: originalDate
+  };
+  var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {
+    var firstCharacter = substring[0];
+
+    if (firstCharacter === 'p' || firstCharacter === 'P') {
+      var longFormatter = _lib_format_longFormatters_index_js__WEBPACK_IMPORTED_MODULE_4__["default"][firstCharacter];
+      return longFormatter(substring, locale.formatLong);
+    }
+
+    return substring;
+  }).join('').match(formattingTokensRegExp).map(function (substring) {
+    // Replace two single quote characters with one single quote character
+    if (substring === "''") {
+      return "'";
+    }
+
+    var firstCharacter = substring[0];
+
+    if (firstCharacter === "'") {
+      return cleanEscapedString(substring);
+    }
+
+    var formatter = _lib_format_formatters_index_js__WEBPACK_IMPORTED_MODULE_3__["default"][firstCharacter];
+
+    if (formatter) {
+      if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && Object(_lib_protectedTokens_index_js__WEBPACK_IMPORTED_MODULE_6__["isProtectedWeekYearToken"])(substring)) {
+        Object(_lib_protectedTokens_index_js__WEBPACK_IMPORTED_MODULE_6__["throwProtectedError"])(substring, dirtyFormatStr, String(dirtyDate));
+      }
+
+      if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && Object(_lib_protectedTokens_index_js__WEBPACK_IMPORTED_MODULE_6__["isProtectedDayOfYearToken"])(substring)) {
+        Object(_lib_protectedTokens_index_js__WEBPACK_IMPORTED_MODULE_6__["throwProtectedError"])(substring, dirtyFormatStr, String(dirtyDate));
+      }
+
+      return formatter(utcDate, substring, locale.localize, formatterOptions);
+    }
+
+    if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
+      throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');
+    }
+
+    return substring;
+  }).join('');
+  return result;
+}
+
+function cleanEscapedString(input) {
+  var matched = input.match(escapedStringRegExp);
+
+  if (!matched) {
+    return input;
+  }
+
+  return matched[1].replace(doubleQuoteRegExp, "'");
+}
+
+/***/ }),
+
 /***/ "D6qd":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -106632,6 +107596,42 @@ __webpack_require__("Z2Ku");
 module.exports = __webpack_require__("g3g5").Array.includes;
 
 
+/***/ }),
+
+/***/ "FEHn":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getUTCISOWeekYear; });
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YADU");
+/* harmony import */ var _requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/1sL");
+/* harmony import */ var _startOfUTCISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("6/aj");
+
+
+
+function getUTCISOWeekYear(dirtyDate) {
+  Object(_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(1, arguments);
+  var date = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate);
+  var year = date.getUTCFullYear();
+  var fourthOfJanuaryOfNextYear = new Date(0);
+  fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);
+  fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);
+  var startOfNextYear = Object(_startOfUTCISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(fourthOfJanuaryOfNextYear);
+  var fourthOfJanuaryOfThisYear = new Date(0);
+  fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);
+  fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);
+  var startOfThisYear = Object(_startOfUTCISOWeek_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(fourthOfJanuaryOfThisYear);
+
+  if (date.getTime() >= startOfNextYear.getTime()) {
+    return year + 1;
+  } else if (date.getTime() >= startOfThisYear.getTime()) {
+    return year;
+  } else {
+    return year - 1;
+  }
+}
+
 /***/ }),
 
 /***/ "FEjr":
@@ -119442,6 +120442,38 @@ var ImageListItemBar = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__["forwardR
   name: 'MuiImageListItemBar'
 })(ImageListItemBar));
 
+/***/ }),
+
+/***/ "HZII":
+/***/ (function(module, exports, __webpack_require__) {
+
+var before = __webpack_require__("4O/9");
+
+/**
+ * Creates a function that is restricted to invoking `func` once. Repeat calls
+ * to the function return the value of the first invocation. The `func` is
+ * invoked with the `this` binding and arguments of the created function.
+ *
+ * @static
+ * @memberOf _
+ * @since 0.1.0
+ * @category Function
+ * @param {Function} func The function to restrict.
+ * @returns {Function} Returns the new restricted function.
+ * @example
+ *
+ * var initialize = _.once(createApplication);
+ * initialize();
+ * initialize();
+ * // => `createApplication` is invoked once
+ */
+function once(func) {
+  return before(2, func);
+}
+
+module.exports = once;
+
+
 /***/ }),
 
 /***/ "HZff":
@@ -120086,6 +121118,56 @@ function _update(s, w, bytes) {
 }
 
 
+/***/ }),
+
+/***/ "Hf20":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return isDate; });
+/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("/1sL");
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+
+/**
+ * @name isDate
+ * @category Common Helpers
+ * @summary Is the given value a date?
+ *
+ * @description
+ * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.
+ *
+ * @param {*} value - the value to check
+ * @returns {boolean} true if the given value is a date
+ * @throws {TypeError} 1 arguments required
+ *
+ * @example
+ * // For a valid date:
+ * const result = isDate(new Date())
+ * //=> true
+ *
+ * @example
+ * // For an invalid date:
+ * const result = isDate(new Date(NaN))
+ * //=> true
+ *
+ * @example
+ * // For some value:
+ * const result = isDate('2014-02-31')
+ * //=> false
+ *
+ * @example
+ * // For an object:
+ * const result = isDate({})
+ * //=> false
+ */
+
+function isDate(value) {
+  Object(_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(1, arguments);
+  return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';
+}
+
 /***/ }),
 
 /***/ "HfW7":
@@ -126016,6 +127098,114 @@ function required(f) {
 }
 
 
+/***/ }),
+
+/***/ "IgO1":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _lib_buildMatchFn_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("sX9o");
+/* harmony import */ var _lib_buildMatchPatternFn_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("yux9");
+
+
+var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
+var parseOrdinalNumberPattern = /\d+/i;
+var matchEraPatterns = {
+  narrow: /^(b|a)/i,
+  abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
+  wide: /^(before christ|before common era|anno domini|common era)/i
+};
+var parseEraPatterns = {
+  any: [/^b/i, /^(a|c)/i]
+};
+var matchQuarterPatterns = {
+  narrow: /^[1234]/i,
+  abbreviated: /^q[1234]/i,
+  wide: /^[1234](th|st|nd|rd)? quarter/i
+};
+var parseQuarterPatterns = {
+  any: [/1/i, /2/i, /3/i, /4/i]
+};
+var matchMonthPatterns = {
+  narrow: /^[jfmasond]/i,
+  abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
+  wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
+};
+var parseMonthPatterns = {
+  narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],
+  any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]
+};
+var matchDayPatterns = {
+  narrow: /^[smtwf]/i,
+  short: /^(su|mo|tu|we|th|fr|sa)/i,
+  abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
+  wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
+};
+var parseDayPatterns = {
+  narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
+  any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
+};
+var matchDayPeriodPatterns = {
+  narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
+  any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
+};
+var parseDayPeriodPatterns = {
+  any: {
+    am: /^a/i,
+    pm: /^p/i,
+    midnight: /^mi/i,
+    noon: /^no/i,
+    morning: /morning/i,
+    afternoon: /afternoon/i,
+    evening: /evening/i,
+    night: /night/i
+  }
+};
+var match = {
+  ordinalNumber: Object(_lib_buildMatchPatternFn_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])({
+    matchPattern: matchOrdinalNumberPattern,
+    parsePattern: parseOrdinalNumberPattern,
+    valueCallback: function valueCallback(value) {
+      return parseInt(value, 10);
+    }
+  }),
+  era: Object(_lib_buildMatchFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    matchPatterns: matchEraPatterns,
+    defaultMatchWidth: 'wide',
+    parsePatterns: parseEraPatterns,
+    defaultParseWidth: 'any'
+  }),
+  quarter: Object(_lib_buildMatchFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    matchPatterns: matchQuarterPatterns,
+    defaultMatchWidth: 'wide',
+    parsePatterns: parseQuarterPatterns,
+    defaultParseWidth: 'any',
+    valueCallback: function valueCallback(index) {
+      return index + 1;
+    }
+  }),
+  month: Object(_lib_buildMatchFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    matchPatterns: matchMonthPatterns,
+    defaultMatchWidth: 'wide',
+    parsePatterns: parseMonthPatterns,
+    defaultParseWidth: 'any'
+  }),
+  day: Object(_lib_buildMatchFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    matchPatterns: matchDayPatterns,
+    defaultMatchWidth: 'wide',
+    parsePatterns: parseDayPatterns,
+    defaultParseWidth: 'any'
+  }),
+  dayPeriod: Object(_lib_buildMatchFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    matchPatterns: matchDayPeriodPatterns,
+    defaultMatchWidth: 'any',
+    parsePatterns: parseDayPeriodPatterns,
+    defaultParseWidth: 'any'
+  })
+};
+/* harmony default export */ __webpack_exports__["default"] = (match);
+
 /***/ }),
 
 /***/ "Ih3Q":
@@ -127967,6 +129157,31 @@ function getSeconds (dirtyDate) {
 module.exports = getSeconds
 
 
+/***/ }),
+
+/***/ "Iy96":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getTimezoneOffsetInMilliseconds; });
+/**
+ * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.
+ * They usually appear for dates that denote time before the timezones were introduced
+ * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891
+ * and GMT+01:00:00 after that date)
+ *
+ * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,
+ * which would lead to incorrect calculations.
+ *
+ * This function returns the timezone offset in milliseconds that takes seconds in account.
+ */
+function getTimezoneOffsetInMilliseconds(date) {
+  var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
+  utcDate.setUTCFullYear(date.getFullYear());
+  return date.getTime() - utcDate.getTime();
+}
+
 /***/ }),
 
 /***/ "IzMR":
@@ -163380,6 +164595,45 @@ module.exports = function LengthOfArrayLike(obj) {
 // TODO: use this all over
 
 
+/***/ }),
+
+/***/ "KOJT":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return subMilliseconds; });
+/* harmony import */ var _addMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7uav");
+/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/1sL");
+/* harmony import */ var _lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("R6KR");
+
+
+
+/**
+ * @name subMilliseconds
+ * @category Millisecond Helpers
+ * @summary Subtract the specified number of milliseconds from the given date.
+ *
+ * @description
+ * Subtract the specified number of milliseconds from the given date.
+ *
+ * @param {Date|Number} date - the date to be changed
+ * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
+ * @returns {Date} the new date with the milliseconds subtracted
+ * @throws {TypeError} 2 arguments required
+ *
+ * @example
+ * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:
+ * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
+ * //=> Thu Jul 10 2014 12:45:29.250
+ */
+
+function subMilliseconds(dirtyDate, dirtyAmount) {
+  Object(_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(2, arguments);
+  var amount = Object(_lib_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(dirtyAmount);
+  return Object(_addMilliseconds_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate, -amount);
+}
+
 /***/ }),
 
 /***/ "KPTR":
@@ -163489,6 +164743,363 @@ var Step = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__["forwardRef"](functio
 
 /***/ }),
 
+/***/ "KQ3P":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireWildcard = __webpack_require__("284h");
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
+
+var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+
+var _sortBy = _interopRequireDefault(__webpack_require__("xweI"));
+
+var _overEvery = _interopRequireDefault(__webpack_require__("x2AN"));
+
+var _get = _interopRequireDefault(__webpack_require__("mwIZ"));
+
+var _format = _interopRequireDefault(__webpack_require__("D6V2"));
+
+var _reactRedux = __webpack_require__("9cub");
+
+var _reactInspector = __webpack_require__("fekN");
+
+var _Grid = _interopRequireDefault(__webpack_require__("GkiB"));
+
+var _Box = _interopRequireDefault(__webpack_require__("uoyk"));
+
+var _Table = _interopRequireDefault(__webpack_require__("3j3/"));
+
+var _TableBody = _interopRequireDefault(__webpack_require__("Lz13"));
+
+var _TableCell = _interopRequireDefault(__webpack_require__("6u6m"));
+
+var _TableContainer = _interopRequireDefault(__webpack_require__("Q69T"));
+
+var _TableRow = _interopRequireDefault(__webpack_require__("0GWl"));
+
+var _Paper = _interopRequireDefault(__webpack_require__("X6bi"));
+
+var _styles = __webpack_require__("DfQ9");
+
+var _Typography = _interopRequireDefault(__webpack_require__("c8ah"));
+
+var _ListItem = _interopRequireDefault(__webpack_require__("gPjO"));
+
+var _ListItemText = _interopRequireDefault(__webpack_require__("vEVt"));
+
+var _context = _interopRequireDefault(__webpack_require__("K1JH"));
+
+var _useClient = _interopRequireDefault(__webpack_require__("CRMs"));
+
+var _common = __webpack_require__("weSZ");
+
+var _PanelContent = _interopRequireDefault(__webpack_require__("XEzQ"));
+
+/**
+ * @type {Object.<string, React.CSSProperties>}
+ * @private
+ */
+var styles = {
+  panelRight: {
+    height: '100%',
+    overflow: 'scroll',
+    flexGrow: 1
+  },
+  mono: {
+    fontFamily: 'monospace'
+  },
+  input: {
+    width: 400
+  }
+};
+var TableCell = (0, _styles.withStyles)({
+  root: {
+    fontFamily: 'inherit',
+    fontSize: 'small'
+  }
+})(_TableCell.default);
+
+var getClassNameForExecutedTimesQuery = function getClassNameForExecutedTimesQuery(time) {
+  if (time <= 100) {
+    return 'u-valid u-success';
+  } else if (time > 100 && time < 250) {
+    return 'u-warn u-warning';
+  } else {
+    return 'u-danger u-error';
+  }
+};
+/**
+ * @param  {{ queryState: import("../types").QueryState }} props - Query state containing fetchStatus, lastError
+ */
+
+
+var FetchStatus = function FetchStatus(props) {
+  var queryState = props.queryState;
+  var fetchStatus = queryState.fetchStatus,
+      lastError = queryState.lastError;
+  return /*#__PURE__*/_react.default.createElement("span", {
+    className: fetchStatus === 'loaded' ? 'u-valid' : fetchStatus === 'pending' ? 'u-warn' : fetchStatus === 'failed' ? 'u-error' : ''
+  }, fetchStatus, fetchStatus === 'failed' ? " - ".concat(lastError) : null);
+};
+/**
+ * @param  {{ queryState: import("../types").QueryState }} props - Query state containing definition
+ */
+
+
+var IndexedFields = function IndexedFields(props) {
+  var queryState = props.queryState;
+  var indexedFields = queryState.definition.indexedFields;
+  return /*#__PURE__*/_react.default.createElement("span", {
+    className: "u-primaryColor"
+  }, indexedFields ? indexedFields.join(', ') : null);
+};
+/**
+ * @param  {string} search - Search string
+ * @returns {function(import("../types").CozyClientDocument): Boolean}
+ */
+
+
+var makeMatcher = function makeMatcher(search) {
+  var specs = search.split(';');
+  var conditions = specs.map(function (spec) {
+    var _spec$split = spec.split(':'),
+        _spec$split2 = (0, _slicedToArray2.default)(_spec$split, 2),
+        key = _spec$split2[0],
+        value = _spec$split2[1];
+
+    return function (obj) {
+      if (!value) {
+        return false;
+      }
+
+      var attr = (0, _get.default)(obj, key);
+      return attr && attr.toString().toLowerCase().includes(value.toLowerCase());
+    };
+  });
+  return (0, _overEvery.default)(conditions);
+};
+
+var useCozySelector = (0, _reactRedux.createSelectorHook)(_context.default);
+
+var QueryData = function QueryData(_ref) {
+  var data = _ref.data,
+      doctype = _ref.doctype;
+  var client = (0, _useClient.default)();
+
+  var _useState = (0, _react.useState)(false),
+      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
+      showTable = _useState2[0],
+      setShowTable = _useState2[1];
+
+  var documents = useCozySelector(function (state) {
+    return state.cozy.documents[doctype];
+  });
+  var storeData = (0, _react.useMemo)(function () {
+    return data.map(function (id) {
+      return client.hydrateDocument(documents[id]);
+    });
+  }, [client, data, documents]);
+  var handleShowTable = (0, _react.useCallback)(function () {
+    return setShowTable(function (value) {
+      return !value;
+    });
+  }, [setShowTable]);
+
+  var _useState3 = (0, _react.useState)(null),
+      _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
+      results = _useState4[0],
+      setResults = _useState4[1];
+
+  var _useState5 = (0, _react.useState)(''),
+      _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
+      search = _useState6[0],
+      setSearch = _useState6[1];
+
+  var handleSearch = (0, _react.useCallback)(function (ev) {
+    var searchValue = ev.target.value;
+    var matcher = searchValue !== '' ? makeMatcher(searchValue) : null;
+    var results = matcher ? storeData.filter(matcher) : null;
+    setSearch(searchValue);
+    setResults(results);
+  }, [storeData]);
+  var viewData = results || storeData;
+  return /*#__PURE__*/_react.default.createElement("div", {
+    className: "u-pb-3"
+  }, "Table:", ' ', /*#__PURE__*/_react.default.createElement("input", {
+    type: "checkbox",
+    onChange: handleShowTable,
+    checked: showTable
+  }), /*#__PURE__*/_react.default.createElement("br", null), "Search:", ' ', /*#__PURE__*/_react.default.createElement("input", {
+    type: "text",
+    placeholder: "field.nested_field:value;other_field:other_value",
+    onChange: handleSearch,
+    value: search,
+    style: styles.input
+  }), /*#__PURE__*/_react.default.createElement("br", null), showTable ? /*#__PURE__*/_react.default.createElement(_reactInspector.TableInspector, {
+    data: viewData
+  }) : /*#__PURE__*/_react.default.createElement(_reactInspector.ObjectInspector, {
+    data: viewData
+  }));
+};
+
+var ObjectInspectorAndStringificator = function ObjectInspectorAndStringificator(_ref2) {
+  var object = _ref2.object;
+
+  var _useState7 = (0, _react.useState)(false),
+      _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
+      showStringify = _useState8[0],
+      setShowStringify = _useState8[1];
+
+  var handleStringify = (0, _react.useCallback)(function () {
+    return setShowStringify(function (value) {
+      return !value;
+    });
+  }, [setShowStringify]);
+  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Stringify:", ' ', /*#__PURE__*/_react.default.createElement("input", {
+    type: "checkbox",
+    onChange: handleStringify,
+    checked: showStringify
+  }), showStringify ? /*#__PURE__*/_react.default.createElement("pre", null, JSON.stringify(object, null, 2)) : /*#__PURE__*/_react.default.createElement(_reactInspector.ObjectInspector, {
+    data: object
+  }));
+};
+
+var QueryStateView = function QueryStateView(_ref3) {
+  var name = _ref3.name;
+
+  /**
+   * @type {import("../types").QueryState}
+   */
+  var queryState = useCozySelector(function (state) {
+    return state.cozy.queries[name];
+  });
+  var data = queryState.data,
+      options = queryState.options;
+
+  var _useMemo = (0, _react.useMemo)(function () {
+    return {
+      lastFetch: new Date(queryState.lastFetch),
+      lastUpdate: new Date(queryState.lastUpdate)
+    };
+  }, [queryState]),
+      lastFetch = _useMemo.lastFetch,
+      lastUpdate = _useMemo.lastUpdate;
+
+  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_TableContainer.default, {
+    component: _Paper.default,
+    elevation: 0
+  }, /*#__PURE__*/_react.default.createElement(_Table.default, {
+    style: styles.mono,
+    size: "small",
+    className: "u-w-auto"
+  }, /*#__PURE__*/_react.default.createElement(_TableBody.default, null, /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "doctype"), /*#__PURE__*/_react.default.createElement(TableCell, null, queryState.definition.doctype)), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "definition"), /*#__PURE__*/_react.default.createElement(TableCell, null, /*#__PURE__*/_react.default.createElement(ObjectInspectorAndStringificator, {
+    object: queryState.definition
+  }))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "indexFields"), /*#__PURE__*/_react.default.createElement(TableCell, null, /*#__PURE__*/_react.default.createElement(IndexedFields, {
+    queryState: queryState
+  }))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "fetchStatus"), /*#__PURE__*/_react.default.createElement(TableCell, null, /*#__PURE__*/_react.default.createElement(FetchStatus, {
+    queryState: queryState
+  }))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "lastFetch"), /*#__PURE__*/_react.default.createElement(TableCell, null, (0, _format.default)(lastFetch, 'HH:mm:ss'))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "lastUpdate"), /*#__PURE__*/_react.default.createElement(TableCell, null, (0, _format.default)(lastUpdate, 'HH:mm:ss'))), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "documents"), /*#__PURE__*/_react.default.createElement(TableCell, null, data && data.length !== undefined ? data.length : data ? 1 : 0)), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "autoUpdate"), /*#__PURE__*/_react.default.createElement(TableCell, null, options && options.autoUpdate ? JSON.stringify(options.autoUpdate) : 'null')), /*#__PURE__*/_react.default.createElement(_TableRow.default, null, /*#__PURE__*/_react.default.createElement(TableCell, null, "execution stats"), /*#__PURE__*/_react.default.createElement(TableCell, null, /*#__PURE__*/_react.default.createElement(ObjectInspectorAndStringificator, {
+    object: queryState.execution_stats
+  })))))), /*#__PURE__*/_react.default.createElement(QueryData, {
+    data: data,
+    doctype: queryState.definition.doctype
+  }));
+};
+
+var QueryListItem = function QueryListItem(_ref4) {
+  var name = _ref4.name,
+      selected = _ref4.selected,
+      onClick = _ref4.onClick;
+  var queryState = useCozySelector(function (state) {
+    return state.cozy.queries[name];
+  });
+  var lastUpdate = (0, _react.useMemo)(function () {
+    return (0, _format.default)(new Date(queryState.lastUpdate), 'HH:mm:ss');
+  }, [queryState]);
+  return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
+    dense: true,
+    button: true,
+    selected: selected,
+    onClick: onClick
+  }, /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
+    primary: name,
+    secondary: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, queryState.fetchStatus === 'failed' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
+      className: "u-error"
+    }, "failed"), " -", ' ') : null, queryState.execution_stats && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ExecutionTime, {
+      queryState: queryState
+    }), " -", ' '), lastUpdate ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, lastUpdate, " -") : null, queryState.data.length, " docs")
+  }), /*#__PURE__*/_react.default.createElement(_common.NavSecondaryAction, null));
+};
+
+var ExecutionTime = function ExecutionTime(_ref5) {
+  var queryState = _ref5.queryState;
+  if (!queryState.execution_stats) return null;
+  var classCSS = getClassNameForExecutedTimesQuery(queryState.execution_stats.execution_time_ms);
+  return /*#__PURE__*/_react.default.createElement("span", {
+    className: classCSS
+  }, Math.round(queryState.execution_stats.execution_time_ms), " ms");
+};
+
+var QueryPanels = function QueryPanels() {
+  var queries = useCozySelector(function (state) {
+    return state.cozy.queries;
+  });
+  var sortedQueries = (0, _react.useMemo)(function () {
+    return (0, _sortBy.default)(queries ? Object.values(queries) : [], function (queryState) {
+      return Math.max(queryState.lastUpdate || -Infinity, queryState.lastErrorUpdate || -Infinity);
+    }).map(function (queryState) {
+      return queryState.id;
+    }).reverse();
+  }, [queries]);
+
+  var _useState9 = (0, _react.useState)(function () {
+    return sortedQueries[0];
+  }),
+      _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
+      selectedQuery = _useState10[0],
+      setSelectedQuery = _useState10[1];
+
+  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_common.ListGridItem, null, sortedQueries.map(function (queryName) {
+    return /*#__PURE__*/_react.default.createElement(QueryListItem, {
+      name: queryName,
+      key: queryName,
+      onClick: function onClick() {
+        return setSelectedQuery(queryName);
+      },
+      selected: name === selectedQuery
+    });
+  }), sortedQueries.length === 0 ? /*#__PURE__*/_react.default.createElement(_PanelContent.default, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
+    variant: "body1"
+  }, "No queries yet.")) : null), /*#__PURE__*/_react.default.createElement(_Box.default, {
+    clone: true,
+    p: 1,
+    minWidth: 400
+  }, /*#__PURE__*/_react.default.createElement(_Grid.default, {
+    item: true,
+    style: styles.panelRight
+  }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
+    variant: "subtitle1"
+  }, selectedQuery), selectedQuery ? /*#__PURE__*/_react.default.createElement(QueryStateView, {
+    name: selectedQuery
+  }) : null)));
+};
+
+var _default = QueryPanels;
+exports.default = _default;
+
+/***/ }),
+
 /***/ "KQm4":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
@@ -164781,6 +166392,887 @@ function withStyles(stylesOrCreator, options) {
 
 /***/ }),
 
+/***/ "KhKx":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _lib_getUTCDayOfYear_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("xMHU");
+/* harmony import */ var _lib_getUTCISOWeek_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("iftL");
+/* harmony import */ var _lib_getUTCISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("FEHn");
+/* harmony import */ var _lib_getUTCWeek_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("MuUo");
+/* harmony import */ var _lib_getUTCWeekYear_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("qP+C");
+/* harmony import */ var _addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("BI0X");
+/* harmony import */ var _lightFormatters_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("xOA3");
+
+
+
+
+
+
+
+var dayPeriodEnum = {
+  am: 'am',
+  pm: 'pm',
+  midnight: 'midnight',
+  noon: 'noon',
+  morning: 'morning',
+  afternoon: 'afternoon',
+  evening: 'evening',
+  night: 'night'
+};
+
+/*
+ * |     | Unit                           |     | Unit                           |
+ * |-----|--------------------------------|-----|--------------------------------|
+ * |  a  | AM, PM                         |  A* | Milliseconds in day            |
+ * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |
+ * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |
+ * |  d  | Day of month                   |  D  | Day of year                    |
+ * |  e  | Local day of week              |  E  | Day of week                    |
+ * |  f  |                                |  F* | Day of week in month           |
+ * |  g* | Modified Julian day            |  G  | Era                            |
+ * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |
+ * |  i! | ISO day of week                |  I! | ISO week of year               |
+ * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |
+ * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |
+ * |  l* | (deprecated)                   |  L  | Stand-alone month              |
+ * |  m  | Minute                         |  M  | Month                          |
+ * |  n  |                                |  N  |                                |
+ * |  o! | Ordinal number modifier        |  O  | Timezone (GMT)                 |
+ * |  p! | Long localized time            |  P! | Long localized date            |
+ * |  q  | Stand-alone quarter            |  Q  | Quarter                        |
+ * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |
+ * |  s  | Second                         |  S  | Fraction of second             |
+ * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |
+ * |  u  | Extended year                  |  U* | Cyclic year                    |
+ * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |
+ * |  w  | Local week of year             |  W* | Week of month                  |
+ * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |
+ * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |
+ * |  z  | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |
+ *
+ * Letters marked by * are not implemented but reserved by Unicode standard.
+ *
+ * Letters marked by ! are non-standard, but implemented by date-fns:
+ * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)
+ * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,
+ *   i.e. 7 for Sunday, 1 for Monday, etc.
+ * - `I` is ISO week of year, as opposed to `w` which is local week of year.
+ * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.
+ *   `R` is supposed to be used in conjunction with `I` and `i`
+ *   for universal ISO week-numbering date, whereas
+ *   `Y` is supposed to be used in conjunction with `w` and `e`
+ *   for week-numbering date specific to the locale.
+ * - `P` is long localized date format
+ * - `p` is long localized time format
+ */
+var formatters = {
+  // Era
+  G: function G(date, token, localize) {
+    var era = date.getUTCFullYear() > 0 ? 1 : 0;
+
+    switch (token) {
+      // AD, BC
+      case 'G':
+      case 'GG':
+      case 'GGG':
+        return localize.era(era, {
+          width: 'abbreviated'
+        });
+      // A, B
+
+      case 'GGGGG':
+        return localize.era(era, {
+          width: 'narrow'
+        });
+      // Anno Domini, Before Christ
+
+      case 'GGGG':
+      default:
+        return localize.era(era, {
+          width: 'wide'
+        });
+    }
+  },
+  // Year
+  y: function y(date, token, localize) {
+    // Ordinal number
+    if (token === 'yo') {
+      var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)
+
+      var year = signedYear > 0 ? signedYear : 1 - signedYear;
+      return localize.ordinalNumber(year, {
+        unit: 'year'
+      });
+    }
+
+    return _lightFormatters_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].y(date, token);
+  },
+  // Local week-numbering year
+  Y: function Y(date, token, localize, options) {
+    var signedWeekYear = Object(_lib_getUTCWeekYear_index_js__WEBPACK_IMPORTED_MODULE_4__["default"])(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)
+
+    var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year
+
+    if (token === 'YY') {
+      var twoDigitYear = weekYear % 100;
+      return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(twoDigitYear, 2);
+    } // Ordinal number
+
+
+    if (token === 'Yo') {
+      return localize.ordinalNumber(weekYear, {
+        unit: 'year'
+      });
+    } // Padding
+
+
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(weekYear, token.length);
+  },
+  // ISO week-numbering year
+  R: function R(date, token) {
+    var isoWeekYear = Object(_lib_getUTCISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(date); // Padding
+
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(isoWeekYear, token.length);
+  },
+  // Extended year. This is a single number designating the year of this calendar system.
+  // The main difference between `y` and `u` localizers are B.C. years:
+  // | Year | `y` | `u` |
+  // |------|-----|-----|
+  // | AC 1 |   1 |   1 |
+  // | BC 1 |   1 |   0 |
+  // | BC 2 |   2 |  -1 |
+  // Also `yy` always returns the last two digits of a year,
+  // while `uu` pads single digit years to 2 characters and returns other years unchanged.
+  u: function u(date, token) {
+    var year = date.getUTCFullYear();
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(year, token.length);
+  },
+  // Quarter
+  Q: function Q(date, token, localize) {
+    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
+
+    switch (token) {
+      // 1, 2, 3, 4
+      case 'Q':
+        return String(quarter);
+      // 01, 02, 03, 04
+
+      case 'QQ':
+        return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(quarter, 2);
+      // 1st, 2nd, 3rd, 4th
+
+      case 'Qo':
+        return localize.ordinalNumber(quarter, {
+          unit: 'quarter'
+        });
+      // Q1, Q2, Q3, Q4
+
+      case 'QQQ':
+        return localize.quarter(quarter, {
+          width: 'abbreviated',
+          context: 'formatting'
+        });
+      // 1, 2, 3, 4 (narrow quarter; could be not numerical)
+
+      case 'QQQQQ':
+        return localize.quarter(quarter, {
+          width: 'narrow',
+          context: 'formatting'
+        });
+      // 1st quarter, 2nd quarter, ...
+
+      case 'QQQQ':
+      default:
+        return localize.quarter(quarter, {
+          width: 'wide',
+          context: 'formatting'
+        });
+    }
+  },
+  // Stand-alone quarter
+  q: function q(date, token, localize) {
+    var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
+
+    switch (token) {
+      // 1, 2, 3, 4
+      case 'q':
+        return String(quarter);
+      // 01, 02, 03, 04
+
+      case 'qq':
+        return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(quarter, 2);
+      // 1st, 2nd, 3rd, 4th
+
+      case 'qo':
+        return localize.ordinalNumber(quarter, {
+          unit: 'quarter'
+        });
+      // Q1, Q2, Q3, Q4
+
+      case 'qqq':
+        return localize.quarter(quarter, {
+          width: 'abbreviated',
+          context: 'standalone'
+        });
+      // 1, 2, 3, 4 (narrow quarter; could be not numerical)
+
+      case 'qqqqq':
+        return localize.quarter(quarter, {
+          width: 'narrow',
+          context: 'standalone'
+        });
+      // 1st quarter, 2nd quarter, ...
+
+      case 'qqqq':
+      default:
+        return localize.quarter(quarter, {
+          width: 'wide',
+          context: 'standalone'
+        });
+    }
+  },
+  // Month
+  M: function M(date, token, localize) {
+    var month = date.getUTCMonth();
+
+    switch (token) {
+      case 'M':
+      case 'MM':
+        return _lightFormatters_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].M(date, token);
+      // 1st, 2nd, ..., 12th
+
+      case 'Mo':
+        return localize.ordinalNumber(month + 1, {
+          unit: 'month'
+        });
+      // Jan, Feb, ..., Dec
+
+      case 'MMM':
+        return localize.month(month, {
+          width: 'abbreviated',
+          context: 'formatting'
+        });
+      // J, F, ..., D
+
+      case 'MMMMM':
+        return localize.month(month, {
+          width: 'narrow',
+          context: 'formatting'
+        });
+      // January, February, ..., December
+
+      case 'MMMM':
+      default:
+        return localize.month(month, {
+          width: 'wide',
+          context: 'formatting'
+        });
+    }
+  },
+  // Stand-alone month
+  L: function L(date, token, localize) {
+    var month = date.getUTCMonth();
+
+    switch (token) {
+      // 1, 2, ..., 12
+      case 'L':
+        return String(month + 1);
+      // 01, 02, ..., 12
+
+      case 'LL':
+        return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(month + 1, 2);
+      // 1st, 2nd, ..., 12th
+
+      case 'Lo':
+        return localize.ordinalNumber(month + 1, {
+          unit: 'month'
+        });
+      // Jan, Feb, ..., Dec
+
+      case 'LLL':
+        return localize.month(month, {
+          width: 'abbreviated',
+          context: 'standalone'
+        });
+      // J, F, ..., D
+
+      case 'LLLLL':
+        return localize.month(month, {
+          width: 'narrow',
+          context: 'standalone'
+        });
+      // January, February, ..., December
+
+      case 'LLLL':
+      default:
+        return localize.month(month, {
+          width: 'wide',
+          context: 'standalone'
+        });
+    }
+  },
+  // Local week of year
+  w: function w(date, token, localize, options) {
+    var week = Object(_lib_getUTCWeek_index_js__WEBPACK_IMPORTED_MODULE_3__["default"])(date, options);
+
+    if (token === 'wo') {
+      return localize.ordinalNumber(week, {
+        unit: 'week'
+      });
+    }
+
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(week, token.length);
+  },
+  // ISO week of year
+  I: function I(date, token, localize) {
+    var isoWeek = Object(_lib_getUTCISOWeek_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(date);
+
+    if (token === 'Io') {
+      return localize.ordinalNumber(isoWeek, {
+        unit: 'week'
+      });
+    }
+
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(isoWeek, token.length);
+  },
+  // Day of the month
+  d: function d(date, token, localize) {
+    if (token === 'do') {
+      return localize.ordinalNumber(date.getUTCDate(), {
+        unit: 'date'
+      });
+    }
+
+    return _lightFormatters_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].d(date, token);
+  },
+  // Day of year
+  D: function D(date, token, localize) {
+    var dayOfYear = Object(_lib_getUTCDayOfYear_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(date);
+
+    if (token === 'Do') {
+      return localize.ordinalNumber(dayOfYear, {
+        unit: 'dayOfYear'
+      });
+    }
+
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(dayOfYear, token.length);
+  },
+  // Day of week
+  E: function E(date, token, localize) {
+    var dayOfWeek = date.getUTCDay();
+
+    switch (token) {
+      // Tue
+      case 'E':
+      case 'EE':
+      case 'EEE':
+        return localize.day(dayOfWeek, {
+          width: 'abbreviated',
+          context: 'formatting'
+        });
+      // T
+
+      case 'EEEEE':
+        return localize.day(dayOfWeek, {
+          width: 'narrow',
+          context: 'formatting'
+        });
+      // Tu
+
+      case 'EEEEEE':
+        return localize.day(dayOfWeek, {
+          width: 'short',
+          context: 'formatting'
+        });
+      // Tuesday
+
+      case 'EEEE':
+      default:
+        return localize.day(dayOfWeek, {
+          width: 'wide',
+          context: 'formatting'
+        });
+    }
+  },
+  // Local day of week
+  e: function e(date, token, localize, options) {
+    var dayOfWeek = date.getUTCDay();
+    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
+
+    switch (token) {
+      // Numerical value (Nth day of week with current locale or weekStartsOn)
+      case 'e':
+        return String(localDayOfWeek);
+      // Padded numerical value
+
+      case 'ee':
+        return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(localDayOfWeek, 2);
+      // 1st, 2nd, ..., 7th
+
+      case 'eo':
+        return localize.ordinalNumber(localDayOfWeek, {
+          unit: 'day'
+        });
+
+      case 'eee':
+        return localize.day(dayOfWeek, {
+          width: 'abbreviated',
+          context: 'formatting'
+        });
+      // T
+
+      case 'eeeee':
+        return localize.day(dayOfWeek, {
+          width: 'narrow',
+          context: 'formatting'
+        });
+      // Tu
+
+      case 'eeeeee':
+        return localize.day(dayOfWeek, {
+          width: 'short',
+          context: 'formatting'
+        });
+      // Tuesday
+
+      case 'eeee':
+      default:
+        return localize.day(dayOfWeek, {
+          width: 'wide',
+          context: 'formatting'
+        });
+    }
+  },
+  // Stand-alone local day of week
+  c: function c(date, token, localize, options) {
+    var dayOfWeek = date.getUTCDay();
+    var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
+
+    switch (token) {
+      // Numerical value (same as in `e`)
+      case 'c':
+        return String(localDayOfWeek);
+      // Padded numerical value
+
+      case 'cc':
+        return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(localDayOfWeek, token.length);
+      // 1st, 2nd, ..., 7th
+
+      case 'co':
+        return localize.ordinalNumber(localDayOfWeek, {
+          unit: 'day'
+        });
+
+      case 'ccc':
+        return localize.day(dayOfWeek, {
+          width: 'abbreviated',
+          context: 'standalone'
+        });
+      // T
+
+      case 'ccccc':
+        return localize.day(dayOfWeek, {
+          width: 'narrow',
+          context: 'standalone'
+        });
+      // Tu
+
+      case 'cccccc':
+        return localize.day(dayOfWeek, {
+          width: 'short',
+          context: 'standalone'
+        });
+      // Tuesday
+
+      case 'cccc':
+      default:
+        return localize.day(dayOfWeek, {
+          width: 'wide',
+          context: 'standalone'
+        });
+    }
+  },
+  // ISO day of week
+  i: function i(date, token, localize) {
+    var dayOfWeek = date.getUTCDay();
+    var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
+
+    switch (token) {
+      // 2
+      case 'i':
+        return String(isoDayOfWeek);
+      // 02
+
+      case 'ii':
+        return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(isoDayOfWeek, token.length);
+      // 2nd
+
+      case 'io':
+        return localize.ordinalNumber(isoDayOfWeek, {
+          unit: 'day'
+        });
+      // Tue
+
+      case 'iii':
+        return localize.day(dayOfWeek, {
+          width: 'abbreviated',
+          context: 'formatting'
+        });
+      // T
+
+      case 'iiiii':
+        return localize.day(dayOfWeek, {
+          width: 'narrow',
+          context: 'formatting'
+        });
+      // Tu
+
+      case 'iiiiii':
+        return localize.day(dayOfWeek, {
+          width: 'short',
+          context: 'formatting'
+        });
+      // Tuesday
+
+      case 'iiii':
+      default:
+        return localize.day(dayOfWeek, {
+          width: 'wide',
+          context: 'formatting'
+        });
+    }
+  },
+  // AM or PM
+  a: function a(date, token, localize) {
+    var hours = date.getUTCHours();
+    var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';
+
+    switch (token) {
+      case 'a':
+      case 'aa':
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'abbreviated',
+          context: 'formatting'
+        });
+
+      case 'aaa':
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'abbreviated',
+          context: 'formatting'
+        }).toLowerCase();
+
+      case 'aaaaa':
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'narrow',
+          context: 'formatting'
+        });
+
+      case 'aaaa':
+      default:
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'wide',
+          context: 'formatting'
+        });
+    }
+  },
+  // AM, PM, midnight, noon
+  b: function b(date, token, localize) {
+    var hours = date.getUTCHours();
+    var dayPeriodEnumValue;
+
+    if (hours === 12) {
+      dayPeriodEnumValue = dayPeriodEnum.noon;
+    } else if (hours === 0) {
+      dayPeriodEnumValue = dayPeriodEnum.midnight;
+    } else {
+      dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';
+    }
+
+    switch (token) {
+      case 'b':
+      case 'bb':
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'abbreviated',
+          context: 'formatting'
+        });
+
+      case 'bbb':
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'abbreviated',
+          context: 'formatting'
+        }).toLowerCase();
+
+      case 'bbbbb':
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'narrow',
+          context: 'formatting'
+        });
+
+      case 'bbbb':
+      default:
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'wide',
+          context: 'formatting'
+        });
+    }
+  },
+  // in the morning, in the afternoon, in the evening, at night
+  B: function B(date, token, localize) {
+    var hours = date.getUTCHours();
+    var dayPeriodEnumValue;
+
+    if (hours >= 17) {
+      dayPeriodEnumValue = dayPeriodEnum.evening;
+    } else if (hours >= 12) {
+      dayPeriodEnumValue = dayPeriodEnum.afternoon;
+    } else if (hours >= 4) {
+      dayPeriodEnumValue = dayPeriodEnum.morning;
+    } else {
+      dayPeriodEnumValue = dayPeriodEnum.night;
+    }
+
+    switch (token) {
+      case 'B':
+      case 'BB':
+      case 'BBB':
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'abbreviated',
+          context: 'formatting'
+        });
+
+      case 'BBBBB':
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'narrow',
+          context: 'formatting'
+        });
+
+      case 'BBBB':
+      default:
+        return localize.dayPeriod(dayPeriodEnumValue, {
+          width: 'wide',
+          context: 'formatting'
+        });
+    }
+  },
+  // Hour [1-12]
+  h: function h(date, token, localize) {
+    if (token === 'ho') {
+      var hours = date.getUTCHours() % 12;
+      if (hours === 0) hours = 12;
+      return localize.ordinalNumber(hours, {
+        unit: 'hour'
+      });
+    }
+
+    return _lightFormatters_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].h(date, token);
+  },
+  // Hour [0-23]
+  H: function H(date, token, localize) {
+    if (token === 'Ho') {
+      return localize.ordinalNumber(date.getUTCHours(), {
+        unit: 'hour'
+      });
+    }
+
+    return _lightFormatters_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].H(date, token);
+  },
+  // Hour [0-11]
+  K: function K(date, token, localize) {
+    var hours = date.getUTCHours() % 12;
+
+    if (token === 'Ko') {
+      return localize.ordinalNumber(hours, {
+        unit: 'hour'
+      });
+    }
+
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(hours, token.length);
+  },
+  // Hour [1-24]
+  k: function k(date, token, localize) {
+    var hours = date.getUTCHours();
+    if (hours === 0) hours = 24;
+
+    if (token === 'ko') {
+      return localize.ordinalNumber(hours, {
+        unit: 'hour'
+      });
+    }
+
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(hours, token.length);
+  },
+  // Minute
+  m: function m(date, token, localize) {
+    if (token === 'mo') {
+      return localize.ordinalNumber(date.getUTCMinutes(), {
+        unit: 'minute'
+      });
+    }
+
+    return _lightFormatters_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].m(date, token);
+  },
+  // Second
+  s: function s(date, token, localize) {
+    if (token === 'so') {
+      return localize.ordinalNumber(date.getUTCSeconds(), {
+        unit: 'second'
+      });
+    }
+
+    return _lightFormatters_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].s(date, token);
+  },
+  // Fraction of second
+  S: function S(date, token) {
+    return _lightFormatters_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].S(date, token);
+  },
+  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
+  X: function X(date, token, _localize, options) {
+    var originalDate = options._originalDate || date;
+    var timezoneOffset = originalDate.getTimezoneOffset();
+
+    if (timezoneOffset === 0) {
+      return 'Z';
+    }
+
+    switch (token) {
+      // Hours and optional minutes
+      case 'X':
+        return formatTimezoneWithOptionalMinutes(timezoneOffset);
+      // Hours, minutes and optional seconds without `:` delimiter
+      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
+      // so this token always has the same output as `XX`
+
+      case 'XXXX':
+      case 'XX':
+        // Hours and minutes without `:` delimiter
+        return formatTimezone(timezoneOffset);
+      // Hours, minutes and optional seconds with `:` delimiter
+      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
+      // so this token always has the same output as `XXX`
+
+      case 'XXXXX':
+      case 'XXX': // Hours and minutes with `:` delimiter
+
+      default:
+        return formatTimezone(timezoneOffset, ':');
+    }
+  },
+  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
+  x: function x(date, token, _localize, options) {
+    var originalDate = options._originalDate || date;
+    var timezoneOffset = originalDate.getTimezoneOffset();
+
+    switch (token) {
+      // Hours and optional minutes
+      case 'x':
+        return formatTimezoneWithOptionalMinutes(timezoneOffset);
+      // Hours, minutes and optional seconds without `:` delimiter
+      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
+      // so this token always has the same output as `xx`
+
+      case 'xxxx':
+      case 'xx':
+        // Hours and minutes without `:` delimiter
+        return formatTimezone(timezoneOffset);
+      // Hours, minutes and optional seconds with `:` delimiter
+      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
+      // so this token always has the same output as `xxx`
+
+      case 'xxxxx':
+      case 'xxx': // Hours and minutes with `:` delimiter
+
+      default:
+        return formatTimezone(timezoneOffset, ':');
+    }
+  },
+  // Timezone (GMT)
+  O: function O(date, token, _localize, options) {
+    var originalDate = options._originalDate || date;
+    var timezoneOffset = originalDate.getTimezoneOffset();
+
+    switch (token) {
+      // Short
+      case 'O':
+      case 'OO':
+      case 'OOO':
+        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');
+      // Long
+
+      case 'OOOO':
+      default:
+        return 'GMT' + formatTimezone(timezoneOffset, ':');
+    }
+  },
+  // Timezone (specific non-location)
+  z: function z(date, token, _localize, options) {
+    var originalDate = options._originalDate || date;
+    var timezoneOffset = originalDate.getTimezoneOffset();
+
+    switch (token) {
+      // Short
+      case 'z':
+      case 'zz':
+      case 'zzz':
+        return 'GMT' + formatTimezoneShort(timezoneOffset, ':');
+      // Long
+
+      case 'zzzz':
+      default:
+        return 'GMT' + formatTimezone(timezoneOffset, ':');
+    }
+  },
+  // Seconds timestamp
+  t: function t(date, token, _localize, options) {
+    var originalDate = options._originalDate || date;
+    var timestamp = Math.floor(originalDate.getTime() / 1000);
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(timestamp, token.length);
+  },
+  // Milliseconds timestamp
+  T: function T(date, token, _localize, options) {
+    var originalDate = options._originalDate || date;
+    var timestamp = originalDate.getTime();
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(timestamp, token.length);
+  }
+};
+
+function formatTimezoneShort(offset, dirtyDelimiter) {
+  var sign = offset > 0 ? '-' : '+';
+  var absOffset = Math.abs(offset);
+  var hours = Math.floor(absOffset / 60);
+  var minutes = absOffset % 60;
+
+  if (minutes === 0) {
+    return sign + String(hours);
+  }
+
+  var delimiter = dirtyDelimiter || '';
+  return sign + String(hours) + delimiter + Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(minutes, 2);
+}
+
+function formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {
+  if (offset % 60 === 0) {
+    var sign = offset > 0 ? '-' : '+';
+    return sign + Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(Math.abs(offset) / 60, 2);
+  }
+
+  return formatTimezone(offset, dirtyDelimiter);
+}
+
+function formatTimezone(offset, dirtyDelimiter) {
+  var delimiter = dirtyDelimiter || '';
+  var sign = offset > 0 ? '-' : '+';
+  var absOffset = Math.abs(offset);
+  var hours = Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(Math.floor(absOffset / 60), 2);
+  var minutes = Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_5__["default"])(absOffset % 60, 2);
+  return sign + hours + delimiter + minutes;
+}
+
+/* harmony default export */ __webpack_exports__["default"] = (formatters);
+
+/***/ }),
+
 /***/ "Ki0a":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
@@ -198457,6 +200949,33 @@ $export($export.S, 'Math', {
 });
 
 
+/***/ }),
+
+/***/ "MuUo":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getUTCWeek; });
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YADU");
+/* harmony import */ var _startOfUTCWeek_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("msdp");
+/* harmony import */ var _startOfUTCWeekYear_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("UZaP");
+/* harmony import */ var _requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("/1sL");
+
+
+
+
+var MILLISECONDS_IN_WEEK = 604800000;
+function getUTCWeek(dirtyDate, options) {
+  Object(_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_3__["default"])(1, arguments);
+  var date = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate);
+  var diff = Object(_startOfUTCWeek_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(date, options).getTime() - Object(_startOfUTCWeekYear_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(date, options).getTime(); // Round the number of days to the nearest integer
+  // because the number of milliseconds in a week is not constant
+  // (e.g. it's different in the week of the daylight saving time clock shift)
+
+  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;
+}
+
 /***/ }),
 
 /***/ "Mukb":
@@ -198830,6 +201349,17 @@ function isLaziable(func) {
 module.exports = isLaziable;
 
 
+/***/ }),
+
+/***/ "N7dy":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _locale_en_US_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("nYDF");
+
+/* harmony default export */ __webpack_exports__["default"] = (_locale_en_US_index_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
+
 /***/ }),
 
 /***/ "N8g3":
@@ -207279,6 +209809,49 @@ if (typeof Object.create === 'function') {
 }
 
 
+/***/ }),
+
+/***/ "P9rk":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _lib_buildFormatLongFn_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("XxQM");
+
+var dateFormats = {
+  full: 'EEEE, MMMM do, y',
+  long: 'MMMM do, y',
+  medium: 'MMM d, y',
+  short: 'MM/dd/yyyy'
+};
+var timeFormats = {
+  full: 'h:mm:ss a zzzz',
+  long: 'h:mm:ss a z',
+  medium: 'h:mm:ss a',
+  short: 'h:mm a'
+};
+var dateTimeFormats = {
+  full: "{{date}} 'at' {{time}}",
+  long: "{{date}} 'at' {{time}}",
+  medium: '{{date}}, {{time}}',
+  short: '{{date}}, {{time}}'
+};
+var formatLong = {
+  date: Object(_lib_buildFormatLongFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    formats: dateFormats,
+    defaultWidth: 'full'
+  }),
+  time: Object(_lib_buildFormatLongFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    formats: timeFormats,
+    defaultWidth: 'full'
+  }),
+  dateTime: Object(_lib_buildFormatLongFn_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+    formats: dateTimeFormats,
+    defaultWidth: 'full'
+  })
+};
+/* harmony default export */ __webpack_exports__["default"] = (formatLong);
+
 /***/ }),
 
 /***/ "PAQI":
@@ -212114,6 +214687,38 @@ module.exports = function (Constructor, NAME, next) {
 };
 
 
+/***/ }),
+
+/***/ "QaI8":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _extends2 = _interopRequireDefault(__webpack_require__("pVnL"));
+
+var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+// Automatically created, please run `scripts/generate-svg-icon.sh assets/icons/ui/right.svg` to regenerate;
+function SvgRight(props) {
+  return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({
+    viewBox: "0 0 16 16"
+  }, props), /*#__PURE__*/_react.default.createElement("path", {
+    fillRule: "evenodd",
+    d: "M12.707 7.293l-6-6a.999.999 0 10-1.414 1.414L10.586 8l-5.293 5.293a.999.999 0 101.414 1.414l6-6a.999.999 0 000-1.414"
+  }));
+}
+
+var _default = SvgRight;
+exports.default = _default;
+
 /***/ }),
 
 /***/ "Qajp":
@@ -217941,6 +220546,26 @@ util.inherits(InflateRaw, Zlib);
 util.inherits(Unzip, Zlib);
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("8oxB")))
 
+/***/ }),
+
+/***/ "Rxh2":
+/***/ (function(module, exports, __webpack_require__) {
+
+var isObject = __webpack_require__("yFcA")
+var isWindow = __webpack_require__("65RL")
+
+function isNode (val) {
+  if (!isObject(val) || !isWindow(window) || typeof window.Node !== 'function') {
+    return false
+  }
+
+  return typeof val.nodeType === 'number' &&
+    typeof val.nodeName === 'string'
+}
+
+module.exports = isNode
+
+
 /***/ }),
 
 /***/ "RxhF":
@@ -234271,6 +236896,38 @@ module.exports = function Type(x) {
 };
 
 
+/***/ }),
+
+/***/ "UZaP":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return startOfUTCWeekYear; });
+/* harmony import */ var _getUTCWeekYear_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("qP+C");
+/* harmony import */ var _requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/1sL");
+/* harmony import */ var _startOfUTCWeek_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("msdp");
+/* harmony import */ var _toInteger_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("R6KR");
+/* harmony import */ var _defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("rEtr");
+
+
+
+
+
+function startOfUTCWeekYear(dirtyDate, options) {
+  var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
+
+  Object(_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(1, arguments);
+  var defaultOptions = Object(_defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_4__["getDefaultOptions"])();
+  var firstWeekContainsDate = Object(_toInteger_index_js__WEBPACK_IMPORTED_MODULE_3__["default"])((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);
+  var year = Object(_getUTCWeekYear_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate, options);
+  var firstWeek = new Date(0);
+  firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);
+  firstWeek.setUTCHours(0, 0, 0, 0);
+  var date = Object(_startOfUTCWeek_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(firstWeek, options);
+  return date;
+}
+
 /***/ }),
 
 /***/ "Ud7J":
@@ -247941,6 +250598,322 @@ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
 module.exports = ReactPropTypesSecret;
 
 
+/***/ }),
+
+/***/ "WUds":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireWildcard = __webpack_require__("284h");
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+Object.defineProperty(exports, "NavSecondaryAction", {
+  enumerable: true,
+  get: function get() {
+    return _common.NavSecondaryAction;
+  }
+});
+Object.defineProperty(exports, "ListGridItem", {
+  enumerable: true,
+  get: function get() {
+    return _common.ListGridItem;
+  }
+});
+Object.defineProperty(exports, "useLocalState", {
+  enumerable: true,
+  get: function get() {
+    return _useLocalState7.default;
+  }
+});
+Object.defineProperty(exports, "PanelContent", {
+  enumerable: true,
+  get: function get() {
+    return _PanelContent.default;
+  }
+});
+exports.default = void 0;
+
+var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
+
+var _toConsumableArray2 = _interopRequireDefault(__webpack_require__("RIqP"));
+
+var _extends2 = _interopRequireDefault(__webpack_require__("pVnL"));
+
+var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+
+var _Fab = _interopRequireDefault(__webpack_require__("hPjJ"));
+
+var _Paper = _interopRequireDefault(__webpack_require__("X6bi"));
+
+var _IconButton = _interopRequireDefault(__webpack_require__("o6Jd"));
+
+var _Grid = _interopRequireDefault(__webpack_require__("GkiB"));
+
+var _Box = _interopRequireDefault(__webpack_require__("uoyk"));
+
+var _Slide = _interopRequireDefault(__webpack_require__("Hsck"));
+
+var _styles = __webpack_require__("DfQ9");
+
+var _CozyTheme = _interopRequireDefault(__webpack_require__("yFc8"));
+
+var _Icon = _interopRequireDefault(__webpack_require__("y6ex"));
+
+var _List = _interopRequireDefault(__webpack_require__("cbAs"));
+
+var _Typography = _interopRequireDefault(__webpack_require__("c8ah"));
+
+var _ListItem = _interopRequireDefault(__webpack_require__("gPjO"));
+
+var _ListItemText = _interopRequireDefault(__webpack_require__("vEVt"));
+
+var _Gear = _interopRequireDefault(__webpack_require__("sKEN"));
+
+var _CrossMedium = _interopRequireDefault(__webpack_require__("bmBL"));
+
+var _Queries = _interopRequireDefault(__webpack_require__("KQ3P"));
+
+var _Flags = _interopRequireDefault(__webpack_require__("4Nyy"));
+
+var _LibraryVersions = _interopRequireDefault(__webpack_require__("6Gp6"));
+
+var _common = __webpack_require__("weSZ");
+
+var _useLocalState7 = _interopRequireDefault(__webpack_require__("kxDT"));
+
+var _PanelContent = _interopRequireDefault(__webpack_require__("XEzQ"));
+
+var ABOVE_ALL = 1000000;
+var DEFAULT_PANEL_HEIGHT = 300;
+var useStyles = (0, _styles.makeStyles)(function (theme) {
+  return {
+    fab: {
+      position: 'fixed',
+      left: '1rem',
+      bottom: '1rem',
+      zIndex: ABOVE_ALL
+    },
+    panel: {
+      position: 'fixed',
+      bottom: 0,
+      left: 0,
+      right: 0,
+      zIndex: ABOVE_ALL
+    },
+    closeIcon: {
+      position: 'absolute',
+      top: '0',
+      right: '0.5rem',
+      transform: 'translateY(-66%)',
+      background: 'white',
+      border: "2px solid ".concat(theme.palette.primary.main),
+      boxShadow: '2px 2px 2px rgba(0, 0, 0, 0.5)',
+      zIndex: 1,
+      '&:hover': {
+        background: '#efefef'
+      }
+    },
+    panelContainer: {
+      background: 'white',
+      height: '100%',
+      flexWrap: 'nowrap',
+      overflowX: 'scroll'
+    },
+    panelRight: {
+      height: '100%',
+      overflowY: 'scroll',
+      flexGrow: 1,
+      minWidth: 150
+    },
+    mono: {
+      fontFamily: 'monospace'
+    }
+  };
+});
+var defaultPanels = [{
+  id: 'queries',
+  Component: _Queries.default
+}, {
+  id: 'flags',
+  Component: _Flags.default
+}, {
+  id: 'library versions',
+  Component: _LibraryVersions.default
+}];
+
+var DevToolsNavList = function DevToolsNavList(_ref) {
+  var selected = _ref.selected,
+      panels = _ref.panels,
+      onNav = _ref.onNav;
+  return /*#__PURE__*/_react.default.createElement(_List.default, null, panels.map(function (panel) {
+    return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
+      key: panel.id,
+      selected: selected === panel.id,
+      dense: true,
+      button: true,
+      onClick: function onClick() {
+        return onNav(panel.id);
+      }
+    }, /*#__PURE__*/_react.default.createElement(_ListItemText.default, null, panel.id), /*#__PURE__*/_react.default.createElement(_common.NavSecondaryAction, null));
+  }));
+};
+
+var useResizeStyles = (0, _styles.makeStyles)(function (theme) {
+  return {
+    root: {
+      height: 3,
+      width: '100%',
+      background: theme.palette.primary.main,
+      cursor: 'row-resize'
+    }
+  };
+});
+
+var ResizeBar = function ResizeBar(_ref2) {
+  var props = (0, _extends2.default)({}, _ref2);
+  var theme = (0, _styles.useTheme)();
+  var classes = useResizeStyles(theme);
+  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
+    className: classes.root
+  }, props));
+};
+
+var DevToolsPanel = function DevToolsPanel(props) {
+  var userPanels = props.panels,
+      open = props.open;
+  var panels = (0, _react.useMemo)(function () {
+    if (userPanels) {
+      return [].concat(defaultPanels, (0, _toConsumableArray2.default)(userPanels));
+    }
+
+    return defaultPanels;
+  }, [userPanels]);
+
+  var _useLocalState = (0, _useLocalState7.default)('cozydevtools__panel', 'queries'),
+      _useLocalState2 = (0, _slicedToArray2.default)(_useLocalState, 2),
+      currentPanel = _useLocalState2[0],
+      setCurrentPanel = _useLocalState2[1];
+
+  var ref = (0, _react.useRef)();
+
+  var _useLocalState3 = (0, _useLocalState7.default)('cozydevtools__height', DEFAULT_PANEL_HEIGHT),
+      _useLocalState4 = (0, _slicedToArray2.default)(_useLocalState3, 2),
+      panelHeight = _useLocalState4[0],
+      setPanelHeight = _useLocalState4[1];
+  /**
+   * Copied/adapted from react-query
+   * https://github.com/tannerlinsley/react-query/blob/master/src/devtools/devtools.tsx
+   */
+
+
+  var handleDragStart = function handleDragStart(startEvent) {
+    if (startEvent.button !== 0) return; // Only allow left click for drag
+
+    var node = ref.current;
+
+    if (node === undefined) {
+      return;
+    }
+
+    var dragInfo = {
+      // @ts-ignore
+      originalHeight: node.getBoundingClientRect().height,
+      pageY: startEvent.pageY
+    };
+
+    var run = function run(moveEvent) {
+      var delta = dragInfo.pageY - moveEvent.pageY;
+      var newHeight = dragInfo.originalHeight + delta;
+      setPanelHeight(newHeight);
+    };
+
+    var unsub = function unsub() {
+      document.removeEventListener('mousemove', run);
+      document.removeEventListener('mouseUp', unsub);
+    };
+
+    document.addEventListener('mousemove', run);
+    document.addEventListener('mouseup', unsub);
+  };
+
+  var classes = useStyles();
+  return /*#__PURE__*/_react.default.createElement(_CozyTheme.default, {
+    variant: "normal"
+  }, /*#__PURE__*/_react.default.createElement(_Slide.default, {
+    direction: "up",
+    in: open,
+    mountOnEnter: true,
+    unmountOnExit: true
+  }, /*#__PURE__*/_react.default.createElement(_Paper.default, {
+    elevation: 12,
+    ref: ref,
+    className: props.className,
+    style: {
+      height: panelHeight
+    }
+  }, /*#__PURE__*/_react.default.createElement(ResizeBar, {
+    onMouseDown: handleDragStart
+  }), /*#__PURE__*/_react.default.createElement(_IconButton.default, {
+    className: classes.closeIcon,
+    onClick: props.onClose
+  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
+    icon: _CrossMedium.default,
+    size: 12
+  })), /*#__PURE__*/_react.default.createElement(_Grid.default, {
+    container: true,
+    className: classes.panelContainer
+  }, /*#__PURE__*/_react.default.createElement(_common.ListGridItem, null, /*#__PURE__*/_react.default.createElement(_Box.default, {
+    p: 1
+  }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
+    variant: "subtitle1"
+  }, "Cozy Devtools")), /*#__PURE__*/_react.default.createElement(DevToolsNavList, {
+    panels: panels,
+    selected: currentPanel,
+    onNav: setCurrentPanel
+  })), panels.map(function (panelOptions) {
+    return currentPanel === panelOptions.id ? /*#__PURE__*/_react.default.createElement(panelOptions.Component, {
+      key: panelOptions.id
+    }) : null;
+  })))));
+};
+
+var DevTools = function DevTools(_ref3) {
+  var panels = _ref3.panels;
+  var classes = useStyles();
+
+  var _useLocalState5 = (0, _useLocalState7.default)('cozydevtools__open', false),
+      _useLocalState6 = (0, _slicedToArray2.default)(_useLocalState5, 2),
+      open = _useLocalState6[0],
+      setOpen = _useLocalState6[1];
+
+  var handleToggle = (0, _react.useCallback)(function () {
+    return setOpen(function (state) {
+      return !state;
+    });
+  }, [setOpen]);
+  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Fab.default, {
+    color: "primary",
+    onClick: handleToggle,
+    className: classes.fab
+  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
+    icon: _Gear.default
+  })), /*#__PURE__*/_react.default.createElement(DevToolsPanel, {
+    open: open,
+    className: classes.panel,
+    onClose: handleToggle,
+    panels: panels
+  }));
+};
+
+var _default = DevTools;
+exports.default = _default;
+
 /***/ }),
 
 /***/ "WXWk":
@@ -250028,6 +253001,37 @@ const [timeTicks, timeTickInterval] = ticker(_year_js__WEBPACK_IMPORTED_MODULE_9
 
 
 
+/***/ }),
+
+/***/ "XEzQ":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+var _Box = _interopRequireDefault(__webpack_require__("uoyk"));
+
+var PanelContent = function PanelContent(_ref) {
+  var children = _ref.children;
+  return /*#__PURE__*/_react.default.createElement(_Box.default, {
+    p: 1,
+    overflow: "scroll",
+    width: "100%"
+  }, children);
+};
+
+var _default = PanelContent;
+exports.default = _default;
+
 /***/ }),
 
 /***/ "XGIc":
@@ -255457,6 +258461,24 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
+/***/ }),
+
+/***/ "XxQM":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return buildFormatLongFn; });
+function buildFormatLongFn(args) {
+  return function () {
+    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+    // TODO: Remove String()
+    var width = options.width ? String(options.width) : args.defaultWidth;
+    var format = args.formats[width] || args.formats[args.defaultWidth];
+    return format;
+  };
+}
+
 /***/ }),
 
 /***/ "XxVK":
@@ -257337,6 +260359,102 @@ function _arrayWithoutHoles(arr) {
 
 /***/ }),
 
+/***/ "YDRG":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+var formatDistanceLocale = {
+  lessThanXSeconds: {
+    one: 'less than a second',
+    other: 'less than {{count}} seconds'
+  },
+  xSeconds: {
+    one: '1 second',
+    other: '{{count}} seconds'
+  },
+  halfAMinute: 'half a minute',
+  lessThanXMinutes: {
+    one: 'less than a minute',
+    other: 'less than {{count}} minutes'
+  },
+  xMinutes: {
+    one: '1 minute',
+    other: '{{count}} minutes'
+  },
+  aboutXHours: {
+    one: 'about 1 hour',
+    other: 'about {{count}} hours'
+  },
+  xHours: {
+    one: '1 hour',
+    other: '{{count}} hours'
+  },
+  xDays: {
+    one: '1 day',
+    other: '{{count}} days'
+  },
+  aboutXWeeks: {
+    one: 'about 1 week',
+    other: 'about {{count}} weeks'
+  },
+  xWeeks: {
+    one: '1 week',
+    other: '{{count}} weeks'
+  },
+  aboutXMonths: {
+    one: 'about 1 month',
+    other: 'about {{count}} months'
+  },
+  xMonths: {
+    one: '1 month',
+    other: '{{count}} months'
+  },
+  aboutXYears: {
+    one: 'about 1 year',
+    other: 'about {{count}} years'
+  },
+  xYears: {
+    one: '1 year',
+    other: '{{count}} years'
+  },
+  overXYears: {
+    one: 'over 1 year',
+    other: 'over {{count}} years'
+  },
+  almostXYears: {
+    one: 'almost 1 year',
+    other: 'almost {{count}} years'
+  }
+};
+
+var formatDistance = function formatDistance(token, count, options) {
+  var result;
+  var tokenValue = formatDistanceLocale[token];
+
+  if (typeof tokenValue === 'string') {
+    result = tokenValue;
+  } else if (count === 1) {
+    result = tokenValue.one;
+  } else {
+    result = tokenValue.other.replace('{{count}}', count.toString());
+  }
+
+  if (options !== null && options !== void 0 && options.addSuffix) {
+    if (options.comparison && options.comparison > 0) {
+      return 'in ' + result;
+    } else {
+      return result + ' ago';
+    }
+  }
+
+  return result;
+};
+
+/* harmony default export */ __webpack_exports__["default"] = (formatDistance);
+
+/***/ }),
+
 /***/ "YESw":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -264291,6 +267409,36 @@ function isSameHour (dirtyDateLeft, dirtyDateRight) {
 module.exports = isSameHour
 
 
+/***/ }),
+
+/***/ "ZirO":
+/***/ (function(module, exports) {
+
+/**
+ * A specialized version of `_.every` for arrays without support for
+ * iteratee shorthands.
+ *
+ * @private
+ * @param {Array} [array] The array to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if all elements pass the predicate check,
+ *  else `false`.
+ */
+function arrayEvery(array, predicate) {
+  var index = -1,
+      length = array == null ? 0 : array.length;
+
+  while (++index < length) {
+    if (!predicate(array[index], index, array)) {
+      return false;
+    }
+  }
+  return true;
+}
+
+module.exports = arrayEvery;
+
+
 /***/ }),
 
 /***/ "ZmXw":
@@ -280802,6 +283950,34 @@ __webpack_require__.r(__webpack_exports__);
 });
 
 
+/***/ }),
+
+/***/ "cbAs":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = exports.BorderedList = void 0;
+
+var _List = _interopRequireDefault(__webpack_require__("KWT/"));
+
+var _styles = __webpack_require__("Sxaq");
+
+var BorderedList = (0, _styles.withStyles)({
+  root: {
+    borderTop: '1px solid var(--silver)'
+  }
+})(_List.default);
+exports.BorderedList = BorderedList;
+var _default = _List.default;
+exports.default = _default;
+
 /***/ }),
 
 /***/ "cc/J":
@@ -296587,6 +299763,2278 @@ function isBrowserBundle() {
 }
 //# sourceMappingURL=env.js.map
 
+/***/ }),
+
+/***/ "fekN":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DOMInspector", function() { return DOMInspector$1; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Inspector", function() { return Inspector; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectInspector", function() { return ObjectInspector$1; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectLabel", function() { return ObjectLabel; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectName", function() { return ObjectName; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectPreview", function() { return ObjectPreview; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectRootLabel", function() { return ObjectRootLabel; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectValue", function() { return ObjectValue; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TableInspector", function() { return TableInspector$1; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chromeDark", function() { return theme$1; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chromeLight", function() { return theme; });
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("q1tI");
+/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("17x9");
+/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
+/* harmony import */ var is_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("Rxh2");
+/* harmony import */ var is_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(is_dom__WEBPACK_IMPORTED_MODULE_2__);
+
+
+
+
+function unwrapExports (x) {
+	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
+}
+
+function createCommonjsModule(fn, module) {
+	return module = { exports: {} }, fn(module, module.exports), module.exports;
+}
+
+var _extends_1 = createCommonjsModule(function (module) {
+  function _extends() {
+    module.exports = _extends = Object.assign || function (target) {
+      for (var i = 1; i < arguments.length; i++) {
+        var source = arguments[i];
+        for (var key in source) {
+          if (Object.prototype.hasOwnProperty.call(source, key)) {
+            target[key] = source[key];
+          }
+        }
+      }
+      return target;
+    };
+    module.exports["default"] = module.exports, module.exports.__esModule = true;
+    return _extends.apply(this, arguments);
+  }
+  module.exports = _extends;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+var _extends = unwrapExports(_extends_1);
+
+var objectWithoutPropertiesLoose = createCommonjsModule(function (module) {
+  function _objectWithoutPropertiesLoose(source, excluded) {
+    if (source == null) return {};
+    var target = {};
+    var sourceKeys = Object.keys(source);
+    var key, i;
+    for (i = 0; i < sourceKeys.length; i++) {
+      key = sourceKeys[i];
+      if (excluded.indexOf(key) >= 0) continue;
+      target[key] = source[key];
+    }
+    return target;
+  }
+  module.exports = _objectWithoutPropertiesLoose;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+unwrapExports(objectWithoutPropertiesLoose);
+
+var objectWithoutProperties = createCommonjsModule(function (module) {
+  function _objectWithoutProperties(source, excluded) {
+    if (source == null) return {};
+    var target = objectWithoutPropertiesLoose(source, excluded);
+    var key, i;
+    if (Object.getOwnPropertySymbols) {
+      var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
+      for (i = 0; i < sourceSymbolKeys.length; i++) {
+        key = sourceSymbolKeys[i];
+        if (excluded.indexOf(key) >= 0) continue;
+        if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
+        target[key] = source[key];
+      }
+    }
+    return target;
+  }
+  module.exports = _objectWithoutProperties;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+var _objectWithoutProperties = unwrapExports(objectWithoutProperties);
+
+var theme$1 = {
+  BASE_FONT_FAMILY: 'Menlo, monospace',
+  BASE_FONT_SIZE: '11px',
+  BASE_LINE_HEIGHT: 1.2,
+  BASE_BACKGROUND_COLOR: 'rgb(36, 36, 36)',
+  BASE_COLOR: 'rgb(213, 213, 213)',
+  OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
+  OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
+  OBJECT_NAME_COLOR: 'rgb(227, 110, 236)',
+  OBJECT_VALUE_NULL_COLOR: 'rgb(127, 127, 127)',
+  OBJECT_VALUE_UNDEFINED_COLOR: 'rgb(127, 127, 127)',
+  OBJECT_VALUE_REGEXP_COLOR: 'rgb(233, 63, 59)',
+  OBJECT_VALUE_STRING_COLOR: 'rgb(233, 63, 59)',
+  OBJECT_VALUE_SYMBOL_COLOR: 'rgb(233, 63, 59)',
+  OBJECT_VALUE_NUMBER_COLOR: 'hsl(252, 100%, 75%)',
+  OBJECT_VALUE_BOOLEAN_COLOR: 'hsl(252, 100%, 75%)',
+  OBJECT_VALUE_FUNCTION_PREFIX_COLOR: 'rgb(85, 106, 242)',
+  HTML_TAG_COLOR: 'rgb(93, 176, 215)',
+  HTML_TAGNAME_COLOR: 'rgb(93, 176, 215)',
+  HTML_TAGNAME_TEXT_TRANSFORM: 'lowercase',
+  HTML_ATTRIBUTE_NAME_COLOR: 'rgb(155, 187, 220)',
+  HTML_ATTRIBUTE_VALUE_COLOR: 'rgb(242, 151, 102)',
+  HTML_COMMENT_COLOR: 'rgb(137, 137, 137)',
+  HTML_DOCTYPE_COLOR: 'rgb(192, 192, 192)',
+  ARROW_COLOR: 'rgb(145, 145, 145)',
+  ARROW_MARGIN_RIGHT: 3,
+  ARROW_FONT_SIZE: 12,
+  ARROW_ANIMATION_DURATION: '0',
+  TREENODE_FONT_FAMILY: 'Menlo, monospace',
+  TREENODE_FONT_SIZE: '11px',
+  TREENODE_LINE_HEIGHT: 1.2,
+  TREENODE_PADDING_LEFT: 12,
+  TABLE_BORDER_COLOR: 'rgb(85, 85, 85)',
+  TABLE_TH_BACKGROUND_COLOR: 'rgb(44, 44, 44)',
+  TABLE_TH_HOVER_COLOR: 'rgb(48, 48, 48)',
+  TABLE_SORT_ICON_COLOR: 'black',
+  TABLE_DATA_BACKGROUND_IMAGE: 'linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0) 50%, rgba(51, 139, 255, 0.0980392) 50%, rgba(51, 139, 255, 0.0980392))',
+  TABLE_DATA_BACKGROUND_SIZE: '128px 32px'
+};
+
+var theme = {
+  BASE_FONT_FAMILY: 'Menlo, monospace',
+  BASE_FONT_SIZE: '11px',
+  BASE_LINE_HEIGHT: 1.2,
+  BASE_BACKGROUND_COLOR: 'white',
+  BASE_COLOR: 'black',
+  OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
+  OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
+  OBJECT_NAME_COLOR: 'rgb(136, 19, 145)',
+  OBJECT_VALUE_NULL_COLOR: 'rgb(128, 128, 128)',
+  OBJECT_VALUE_UNDEFINED_COLOR: 'rgb(128, 128, 128)',
+  OBJECT_VALUE_REGEXP_COLOR: 'rgb(196, 26, 22)',
+  OBJECT_VALUE_STRING_COLOR: 'rgb(196, 26, 22)',
+  OBJECT_VALUE_SYMBOL_COLOR: 'rgb(196, 26, 22)',
+  OBJECT_VALUE_NUMBER_COLOR: 'rgb(28, 0, 207)',
+  OBJECT_VALUE_BOOLEAN_COLOR: 'rgb(28, 0, 207)',
+  OBJECT_VALUE_FUNCTION_PREFIX_COLOR: 'rgb(13, 34, 170)',
+  HTML_TAG_COLOR: 'rgb(168, 148, 166)',
+  HTML_TAGNAME_COLOR: 'rgb(136, 18, 128)',
+  HTML_TAGNAME_TEXT_TRANSFORM: 'lowercase',
+  HTML_ATTRIBUTE_NAME_COLOR: 'rgb(153, 69, 0)',
+  HTML_ATTRIBUTE_VALUE_COLOR: 'rgb(26, 26, 166)',
+  HTML_COMMENT_COLOR: 'rgb(35, 110, 37)',
+  HTML_DOCTYPE_COLOR: 'rgb(192, 192, 192)',
+  ARROW_COLOR: '#6e6e6e',
+  ARROW_MARGIN_RIGHT: 3,
+  ARROW_FONT_SIZE: 12,
+  ARROW_ANIMATION_DURATION: '0',
+  TREENODE_FONT_FAMILY: 'Menlo, monospace',
+  TREENODE_FONT_SIZE: '11px',
+  TREENODE_LINE_HEIGHT: 1.2,
+  TREENODE_PADDING_LEFT: 12,
+  TABLE_BORDER_COLOR: '#aaa',
+  TABLE_TH_BACKGROUND_COLOR: '#eee',
+  TABLE_TH_HOVER_COLOR: 'hsla(0, 0%, 90%, 1)',
+  TABLE_SORT_ICON_COLOR: '#6e6e6e',
+  TABLE_DATA_BACKGROUND_IMAGE: 'linear-gradient(to bottom, white, white 50%, rgb(234, 243, 255) 50%, rgb(234, 243, 255))',
+  TABLE_DATA_BACKGROUND_SIZE: '128px 32px'
+};
+
+var themes = /*#__PURE__*/Object.freeze({
+__proto__: null,
+chromeDark: theme$1,
+chromeLight: theme
+});
+
+var arrayWithHoles = createCommonjsModule(function (module) {
+  function _arrayWithHoles(arr) {
+    if (Array.isArray(arr)) return arr;
+  }
+  module.exports = _arrayWithHoles;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+unwrapExports(arrayWithHoles);
+
+var iterableToArrayLimit = createCommonjsModule(function (module) {
+  function _iterableToArrayLimit(arr, i) {
+    if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
+    var _arr = [];
+    var _n = true;
+    var _d = false;
+    var _e = undefined;
+    try {
+      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
+        _arr.push(_s.value);
+        if (i && _arr.length === i) break;
+      }
+    } catch (err) {
+      _d = true;
+      _e = err;
+    } finally {
+      try {
+        if (!_n && _i["return"] != null) _i["return"]();
+      } finally {
+        if (_d) throw _e;
+      }
+    }
+    return _arr;
+  }
+  module.exports = _iterableToArrayLimit;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+unwrapExports(iterableToArrayLimit);
+
+var arrayLikeToArray = createCommonjsModule(function (module) {
+  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;
+  }
+  module.exports = _arrayLikeToArray;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+unwrapExports(arrayLikeToArray);
+
+var unsupportedIterableToArray = createCommonjsModule(function (module) {
+  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);
+  }
+  module.exports = _unsupportedIterableToArray;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+unwrapExports(unsupportedIterableToArray);
+
+var nonIterableRest = createCommonjsModule(function (module) {
+  function _nonIterableRest() {
+    throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
+  }
+  module.exports = _nonIterableRest;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+unwrapExports(nonIterableRest);
+
+var slicedToArray = createCommonjsModule(function (module) {
+  function _slicedToArray(arr, i) {
+    return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
+  }
+  module.exports = _slicedToArray;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+var _slicedToArray = unwrapExports(slicedToArray);
+
+var _typeof_1 = createCommonjsModule(function (module) {
+  function _typeof(obj) {
+    "@babel/helpers - typeof";
+    if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
+      module.exports = _typeof = function _typeof(obj) {
+        return typeof obj;
+      };
+      module.exports["default"] = module.exports, module.exports.__esModule = true;
+    } else {
+      module.exports = _typeof = function _typeof(obj) {
+        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+      };
+      module.exports["default"] = module.exports, module.exports.__esModule = true;
+    }
+    return _typeof(obj);
+  }
+  module.exports = _typeof;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+var _typeof = unwrapExports(_typeof_1);
+
+var runtime_1 = createCommonjsModule(function (module) {
+  var runtime = function (exports) {
+    var Op = Object.prototype;
+    var hasOwn = Op.hasOwnProperty;
+    var undefined$1;
+    var $Symbol = typeof Symbol === "function" ? Symbol : {};
+    var iteratorSymbol = $Symbol.iterator || "@@iterator";
+    var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
+    var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
+    function define(obj, key, value) {
+      Object.defineProperty(obj, key, {
+        value: value,
+        enumerable: true,
+        configurable: true,
+        writable: true
+      });
+      return obj[key];
+    }
+    try {
+      define({}, "");
+    } catch (err) {
+      define = function (obj, key, value) {
+        return obj[key] = value;
+      };
+    }
+    function wrap(innerFn, outerFn, self, tryLocsList) {
+      var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
+      var generator = Object.create(protoGenerator.prototype);
+      var context = new Context(tryLocsList || []);
+      generator._invoke = makeInvokeMethod(innerFn, self, context);
+      return generator;
+    }
+    exports.wrap = wrap;
+    function tryCatch(fn, obj, arg) {
+      try {
+        return {
+          type: "normal",
+          arg: fn.call(obj, arg)
+        };
+      } catch (err) {
+        return {
+          type: "throw",
+          arg: err
+        };
+      }
+    }
+    var GenStateSuspendedStart = "suspendedStart";
+    var GenStateSuspendedYield = "suspendedYield";
+    var GenStateExecuting = "executing";
+    var GenStateCompleted = "completed";
+    var ContinueSentinel = {};
+    function Generator() {}
+    function GeneratorFunction() {}
+    function GeneratorFunctionPrototype() {}
+    var IteratorPrototype = {};
+    IteratorPrototype[iteratorSymbol] = function () {
+      return this;
+    };
+    var getProto = Object.getPrototypeOf;
+    var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
+    if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
+      IteratorPrototype = NativeIteratorPrototype;
+    }
+    var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
+    GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
+    GeneratorFunctionPrototype.constructor = GeneratorFunction;
+    GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction");
+    function defineIteratorMethods(prototype) {
+      ["next", "throw", "return"].forEach(function (method) {
+        define(prototype, method, function (arg) {
+          return this._invoke(method, arg);
+        });
+      });
+    }
+    exports.isGeneratorFunction = function (genFun) {
+      var ctor = typeof genFun === "function" && genFun.constructor;
+      return ctor ? ctor === GeneratorFunction ||
+      (ctor.displayName || ctor.name) === "GeneratorFunction" : false;
+    };
+    exports.mark = function (genFun) {
+      if (Object.setPrototypeOf) {
+        Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
+      } else {
+        genFun.__proto__ = GeneratorFunctionPrototype;
+        define(genFun, toStringTagSymbol, "GeneratorFunction");
+      }
+      genFun.prototype = Object.create(Gp);
+      return genFun;
+    };
+    exports.awrap = function (arg) {
+      return {
+        __await: arg
+      };
+    };
+    function AsyncIterator(generator, PromiseImpl) {
+      function invoke(method, arg, resolve, reject) {
+        var record = tryCatch(generator[method], generator, arg);
+        if (record.type === "throw") {
+          reject(record.arg);
+        } else {
+          var result = record.arg;
+          var value = result.value;
+          if (value && typeof value === "object" && hasOwn.call(value, "__await")) {
+            return PromiseImpl.resolve(value.__await).then(function (value) {
+              invoke("next", value, resolve, reject);
+            }, function (err) {
+              invoke("throw", err, resolve, reject);
+            });
+          }
+          return PromiseImpl.resolve(value).then(function (unwrapped) {
+            result.value = unwrapped;
+            resolve(result);
+          }, function (error) {
+            return invoke("throw", error, resolve, reject);
+          });
+        }
+      }
+      var previousPromise;
+      function enqueue(method, arg) {
+        function callInvokeWithMethodAndArg() {
+          return new PromiseImpl(function (resolve, reject) {
+            invoke(method, arg, resolve, reject);
+          });
+        }
+        return previousPromise =
+        previousPromise ? previousPromise.then(callInvokeWithMethodAndArg,
+        callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
+      }
+      this._invoke = enqueue;
+    }
+    defineIteratorMethods(AsyncIterator.prototype);
+    AsyncIterator.prototype[asyncIteratorSymbol] = function () {
+      return this;
+    };
+    exports.AsyncIterator = AsyncIterator;
+    exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
+      if (PromiseImpl === void 0) PromiseImpl = Promise;
+      var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
+      return exports.isGeneratorFunction(outerFn) ? iter
+      : iter.next().then(function (result) {
+        return result.done ? result.value : iter.next();
+      });
+    };
+    function makeInvokeMethod(innerFn, self, context) {
+      var state = GenStateSuspendedStart;
+      return function invoke(method, arg) {
+        if (state === GenStateExecuting) {
+          throw new Error("Generator is already running");
+        }
+        if (state === GenStateCompleted) {
+          if (method === "throw") {
+            throw arg;
+          }
+          return doneResult();
+        }
+        context.method = method;
+        context.arg = arg;
+        while (true) {
+          var delegate = context.delegate;
+          if (delegate) {
+            var delegateResult = maybeInvokeDelegate(delegate, context);
+            if (delegateResult) {
+              if (delegateResult === ContinueSentinel) continue;
+              return delegateResult;
+            }
+          }
+          if (context.method === "next") {
+            context.sent = context._sent = context.arg;
+          } else if (context.method === "throw") {
+            if (state === GenStateSuspendedStart) {
+              state = GenStateCompleted;
+              throw context.arg;
+            }
+            context.dispatchException(context.arg);
+          } else if (context.method === "return") {
+            context.abrupt("return", context.arg);
+          }
+          state = GenStateExecuting;
+          var record = tryCatch(innerFn, self, context);
+          if (record.type === "normal") {
+            state = context.done ? GenStateCompleted : GenStateSuspendedYield;
+            if (record.arg === ContinueSentinel) {
+              continue;
+            }
+            return {
+              value: record.arg,
+              done: context.done
+            };
+          } else if (record.type === "throw") {
+            state = GenStateCompleted;
+            context.method = "throw";
+            context.arg = record.arg;
+          }
+        }
+      };
+    }
+    function maybeInvokeDelegate(delegate, context) {
+      var method = delegate.iterator[context.method];
+      if (method === undefined$1) {
+        context.delegate = null;
+        if (context.method === "throw") {
+          if (delegate.iterator["return"]) {
+            context.method = "return";
+            context.arg = undefined$1;
+            maybeInvokeDelegate(delegate, context);
+            if (context.method === "throw") {
+              return ContinueSentinel;
+            }
+          }
+          context.method = "throw";
+          context.arg = new TypeError("The iterator does not provide a 'throw' method");
+        }
+        return ContinueSentinel;
+      }
+      var record = tryCatch(method, delegate.iterator, context.arg);
+      if (record.type === "throw") {
+        context.method = "throw";
+        context.arg = record.arg;
+        context.delegate = null;
+        return ContinueSentinel;
+      }
+      var info = record.arg;
+      if (!info) {
+        context.method = "throw";
+        context.arg = new TypeError("iterator result is not an object");
+        context.delegate = null;
+        return ContinueSentinel;
+      }
+      if (info.done) {
+        context[delegate.resultName] = info.value;
+        context.next = delegate.nextLoc;
+        if (context.method !== "return") {
+          context.method = "next";
+          context.arg = undefined$1;
+        }
+      } else {
+        return info;
+      }
+      context.delegate = null;
+      return ContinueSentinel;
+    }
+    defineIteratorMethods(Gp);
+    define(Gp, toStringTagSymbol, "Generator");
+    Gp[iteratorSymbol] = function () {
+      return this;
+    };
+    Gp.toString = function () {
+      return "[object Generator]";
+    };
+    function pushTryEntry(locs) {
+      var entry = {
+        tryLoc: locs[0]
+      };
+      if (1 in locs) {
+        entry.catchLoc = locs[1];
+      }
+      if (2 in locs) {
+        entry.finallyLoc = locs[2];
+        entry.afterLoc = locs[3];
+      }
+      this.tryEntries.push(entry);
+    }
+    function resetTryEntry(entry) {
+      var record = entry.completion || {};
+      record.type = "normal";
+      delete record.arg;
+      entry.completion = record;
+    }
+    function Context(tryLocsList) {
+      this.tryEntries = [{
+        tryLoc: "root"
+      }];
+      tryLocsList.forEach(pushTryEntry, this);
+      this.reset(true);
+    }
+    exports.keys = function (object) {
+      var keys = [];
+      for (var key in object) {
+        keys.push(key);
+      }
+      keys.reverse();
+      return function next() {
+        while (keys.length) {
+          var key = keys.pop();
+          if (key in object) {
+            next.value = key;
+            next.done = false;
+            return next;
+          }
+        }
+        next.done = true;
+        return next;
+      };
+    };
+    function values(iterable) {
+      if (iterable) {
+        var iteratorMethod = iterable[iteratorSymbol];
+        if (iteratorMethod) {
+          return iteratorMethod.call(iterable);
+        }
+        if (typeof iterable.next === "function") {
+          return iterable;
+        }
+        if (!isNaN(iterable.length)) {
+          var i = -1,
+              next = function next() {
+            while (++i < iterable.length) {
+              if (hasOwn.call(iterable, i)) {
+                next.value = iterable[i];
+                next.done = false;
+                return next;
+              }
+            }
+            next.value = undefined$1;
+            next.done = true;
+            return next;
+          };
+          return next.next = next;
+        }
+      }
+      return {
+        next: doneResult
+      };
+    }
+    exports.values = values;
+    function doneResult() {
+      return {
+        value: undefined$1,
+        done: true
+      };
+    }
+    Context.prototype = {
+      constructor: Context,
+      reset: function (skipTempReset) {
+        this.prev = 0;
+        this.next = 0;
+        this.sent = this._sent = undefined$1;
+        this.done = false;
+        this.delegate = null;
+        this.method = "next";
+        this.arg = undefined$1;
+        this.tryEntries.forEach(resetTryEntry);
+        if (!skipTempReset) {
+          for (var name in this) {
+            if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {
+              this[name] = undefined$1;
+            }
+          }
+        }
+      },
+      stop: function () {
+        this.done = true;
+        var rootEntry = this.tryEntries[0];
+        var rootRecord = rootEntry.completion;
+        if (rootRecord.type === "throw") {
+          throw rootRecord.arg;
+        }
+        return this.rval;
+      },
+      dispatchException: function (exception) {
+        if (this.done) {
+          throw exception;
+        }
+        var context = this;
+        function handle(loc, caught) {
+          record.type = "throw";
+          record.arg = exception;
+          context.next = loc;
+          if (caught) {
+            context.method = "next";
+            context.arg = undefined$1;
+          }
+          return !!caught;
+        }
+        for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+          var entry = this.tryEntries[i];
+          var record = entry.completion;
+          if (entry.tryLoc === "root") {
+            return handle("end");
+          }
+          if (entry.tryLoc <= this.prev) {
+            var hasCatch = hasOwn.call(entry, "catchLoc");
+            var hasFinally = hasOwn.call(entry, "finallyLoc");
+            if (hasCatch && hasFinally) {
+              if (this.prev < entry.catchLoc) {
+                return handle(entry.catchLoc, true);
+              } else if (this.prev < entry.finallyLoc) {
+                return handle(entry.finallyLoc);
+              }
+            } else if (hasCatch) {
+              if (this.prev < entry.catchLoc) {
+                return handle(entry.catchLoc, true);
+              }
+            } else if (hasFinally) {
+              if (this.prev < entry.finallyLoc) {
+                return handle(entry.finallyLoc);
+              }
+            } else {
+              throw new Error("try statement without catch or finally");
+            }
+          }
+        }
+      },
+      abrupt: function (type, arg) {
+        for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+          var entry = this.tryEntries[i];
+          if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
+            var finallyEntry = entry;
+            break;
+          }
+        }
+        if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {
+          finallyEntry = null;
+        }
+        var record = finallyEntry ? finallyEntry.completion : {};
+        record.type = type;
+        record.arg = arg;
+        if (finallyEntry) {
+          this.method = "next";
+          this.next = finallyEntry.finallyLoc;
+          return ContinueSentinel;
+        }
+        return this.complete(record);
+      },
+      complete: function (record, afterLoc) {
+        if (record.type === "throw") {
+          throw record.arg;
+        }
+        if (record.type === "break" || record.type === "continue") {
+          this.next = record.arg;
+        } else if (record.type === "return") {
+          this.rval = this.arg = record.arg;
+          this.method = "return";
+          this.next = "end";
+        } else if (record.type === "normal" && afterLoc) {
+          this.next = afterLoc;
+        }
+        return ContinueSentinel;
+      },
+      finish: function (finallyLoc) {
+        for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+          var entry = this.tryEntries[i];
+          if (entry.finallyLoc === finallyLoc) {
+            this.complete(entry.completion, entry.afterLoc);
+            resetTryEntry(entry);
+            return ContinueSentinel;
+          }
+        }
+      },
+      "catch": function (tryLoc) {
+        for (var i = this.tryEntries.length - 1; i >= 0; --i) {
+          var entry = this.tryEntries[i];
+          if (entry.tryLoc === tryLoc) {
+            var record = entry.completion;
+            if (record.type === "throw") {
+              var thrown = record.arg;
+              resetTryEntry(entry);
+            }
+            return thrown;
+          }
+        }
+        throw new Error("illegal catch attempt");
+      },
+      delegateYield: function (iterable, resultName, nextLoc) {
+        this.delegate = {
+          iterator: values(iterable),
+          resultName: resultName,
+          nextLoc: nextLoc
+        };
+        if (this.method === "next") {
+          this.arg = undefined$1;
+        }
+        return ContinueSentinel;
+      }
+    };
+    return exports;
+  }(
+  module.exports );
+  try {
+    regeneratorRuntime = runtime;
+  } catch (accidentalStrictMode) {
+    Function("r", "regeneratorRuntime = r")(runtime);
+  }
+});
+
+var regenerator = runtime_1;
+
+var arrayWithoutHoles = createCommonjsModule(function (module) {
+  function _arrayWithoutHoles(arr) {
+    if (Array.isArray(arr)) return arrayLikeToArray(arr);
+  }
+  module.exports = _arrayWithoutHoles;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+unwrapExports(arrayWithoutHoles);
+
+var iterableToArray = createCommonjsModule(function (module) {
+  function _iterableToArray(iter) {
+    if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter);
+  }
+  module.exports = _iterableToArray;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+unwrapExports(iterableToArray);
+
+var nonIterableSpread = createCommonjsModule(function (module) {
+  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.");
+  }
+  module.exports = _nonIterableSpread;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+unwrapExports(nonIterableSpread);
+
+var toConsumableArray = createCommonjsModule(function (module) {
+  function _toConsumableArray(arr) {
+    return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();
+  }
+  module.exports = _toConsumableArray;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+var _toConsumableArray = unwrapExports(toConsumableArray);
+
+var defineProperty = createCommonjsModule(function (module) {
+  function _defineProperty(obj, key, value) {
+    if (key in obj) {
+      Object.defineProperty(obj, key, {
+        value: value,
+        enumerable: true,
+        configurable: true,
+        writable: true
+      });
+    } else {
+      obj[key] = value;
+    }
+    return obj;
+  }
+  module.exports = _defineProperty;
+  module.exports["default"] = module.exports, module.exports.__esModule = true;
+});
+var _defineProperty = unwrapExports(defineProperty);
+
+var ExpandedPathsContext = Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])([{}, function () {}]);
+
+var unselectable = {
+  WebkitTouchCallout: 'none',
+  WebkitUserSelect: 'none',
+  KhtmlUserSelect: 'none',
+  MozUserSelect: 'none',
+  msUserSelect: 'none',
+  OUserSelect: 'none',
+  userSelect: 'none'
+};
+
+function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+var base = (function (theme) {
+  return {
+    DOMNodePreview: {
+      htmlOpenTag: {
+        base: {
+          color: theme.HTML_TAG_COLOR
+        },
+        tagName: {
+          color: theme.HTML_TAGNAME_COLOR,
+          textTransform: theme.HTML_TAGNAME_TEXT_TRANSFORM
+        },
+        htmlAttributeName: {
+          color: theme.HTML_ATTRIBUTE_NAME_COLOR
+        },
+        htmlAttributeValue: {
+          color: theme.HTML_ATTRIBUTE_VALUE_COLOR
+        }
+      },
+      htmlCloseTag: {
+        base: {
+          color: theme.HTML_TAG_COLOR
+        },
+        offsetLeft: {
+          marginLeft: -theme.TREENODE_PADDING_LEFT
+        },
+        tagName: {
+          color: theme.HTML_TAGNAME_COLOR,
+          textTransform: theme.HTML_TAGNAME_TEXT_TRANSFORM
+        }
+      },
+      htmlComment: {
+        color: theme.HTML_COMMENT_COLOR
+      },
+      htmlDoctype: {
+        color: theme.HTML_DOCTYPE_COLOR
+      }
+    },
+    ObjectPreview: {
+      objectDescription: {
+        fontStyle: 'italic'
+      },
+      preview: {
+        fontStyle: 'italic'
+      },
+      arrayMaxProperties: theme.OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES,
+      objectMaxProperties: theme.OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES
+    },
+    ObjectName: {
+      base: {
+        color: theme.OBJECT_NAME_COLOR
+      },
+      dimmed: {
+        opacity: 0.6
+      }
+    },
+    ObjectValue: {
+      objectValueNull: {
+        color: theme.OBJECT_VALUE_NULL_COLOR
+      },
+      objectValueUndefined: {
+        color: theme.OBJECT_VALUE_UNDEFINED_COLOR
+      },
+      objectValueRegExp: {
+        color: theme.OBJECT_VALUE_REGEXP_COLOR
+      },
+      objectValueString: {
+        color: theme.OBJECT_VALUE_STRING_COLOR
+      },
+      objectValueSymbol: {
+        color: theme.OBJECT_VALUE_SYMBOL_COLOR
+      },
+      objectValueNumber: {
+        color: theme.OBJECT_VALUE_NUMBER_COLOR
+      },
+      objectValueBoolean: {
+        color: theme.OBJECT_VALUE_BOOLEAN_COLOR
+      },
+      objectValueFunctionPrefix: {
+        color: theme.OBJECT_VALUE_FUNCTION_PREFIX_COLOR,
+        fontStyle: 'italic'
+      },
+      objectValueFunctionName: {
+        fontStyle: 'italic'
+      }
+    },
+    TreeView: {
+      treeViewOutline: {
+        padding: 0,
+        margin: 0,
+        listStyleType: 'none'
+      }
+    },
+    TreeNode: {
+      treeNodeBase: {
+        color: theme.BASE_COLOR,
+        backgroundColor: theme.BASE_BACKGROUND_COLOR,
+        lineHeight: theme.TREENODE_LINE_HEIGHT,
+        cursor: 'default',
+        boxSizing: 'border-box',
+        listStyle: 'none',
+        fontFamily: theme.TREENODE_FONT_FAMILY,
+        fontSize: theme.TREENODE_FONT_SIZE
+      },
+      treeNodePreviewContainer: {},
+      treeNodePlaceholder: _objectSpread$7({
+        whiteSpace: 'pre',
+        fontSize: theme.ARROW_FONT_SIZE,
+        marginRight: theme.ARROW_MARGIN_RIGHT
+      }, unselectable),
+      treeNodeArrow: {
+        base: _objectSpread$7(_objectSpread$7({
+          color: theme.ARROW_COLOR,
+          display: 'inline-block',
+          fontSize: theme.ARROW_FONT_SIZE,
+          marginRight: theme.ARROW_MARGIN_RIGHT
+        }, parseFloat(theme.ARROW_ANIMATION_DURATION) > 0 ? {
+          transition: "transform ".concat(theme.ARROW_ANIMATION_DURATION, " ease 0s")
+        } : {}), unselectable),
+        expanded: {
+          WebkitTransform: 'rotateZ(90deg)',
+          MozTransform: 'rotateZ(90deg)',
+          transform: 'rotateZ(90deg)'
+        },
+        collapsed: {
+          WebkitTransform: 'rotateZ(0deg)',
+          MozTransform: 'rotateZ(0deg)',
+          transform: 'rotateZ(0deg)'
+        }
+      },
+      treeNodeChildNodesContainer: {
+        margin: 0,
+        paddingLeft: theme.TREENODE_PADDING_LEFT
+      }
+    },
+    TableInspector: {
+      base: {
+        color: theme.BASE_COLOR,
+        position: 'relative',
+        border: "1px solid ".concat(theme.TABLE_BORDER_COLOR),
+        fontFamily: theme.BASE_FONT_FAMILY,
+        fontSize: theme.BASE_FONT_SIZE,
+        lineHeight: '120%',
+        boxSizing: 'border-box',
+        cursor: 'default'
+      }
+    },
+    TableInspectorHeaderContainer: {
+      base: {
+        top: 0,
+        height: '17px',
+        left: 0,
+        right: 0,
+        overflowX: 'hidden'
+      },
+      table: {
+        tableLayout: 'fixed',
+        borderSpacing: 0,
+        borderCollapse: 'separate',
+        height: '100%',
+        width: '100%',
+        margin: 0
+      }
+    },
+    TableInspectorDataContainer: {
+      tr: {
+        display: 'table-row'
+      },
+      td: {
+        boxSizing: 'border-box',
+        border: 'none',
+        height: '16px',
+        verticalAlign: 'top',
+        padding: '1px 4px',
+        WebkitUserSelect: 'text',
+        whiteSpace: 'nowrap',
+        textOverflow: 'ellipsis',
+        overflow: 'hidden',
+        lineHeight: '14px'
+      },
+      div: {
+        position: 'static',
+        top: '17px',
+        bottom: 0,
+        overflowY: 'overlay',
+        transform: 'translateZ(0)',
+        left: 0,
+        right: 0,
+        overflowX: 'hidden'
+      },
+      table: {
+        positon: 'static',
+        left: 0,
+        top: 0,
+        right: 0,
+        bottom: 0,
+        borderTop: '0 none transparent',
+        margin: 0,
+        backgroundImage: theme.TABLE_DATA_BACKGROUND_IMAGE,
+        backgroundSize: theme.TABLE_DATA_BACKGROUND_SIZE,
+        tableLayout: 'fixed',
+        borderSpacing: 0,
+        borderCollapse: 'separate',
+        width: '100%',
+        fontSize: theme.BASE_FONT_SIZE,
+        lineHeight: '120%'
+      }
+    },
+    TableInspectorTH: {
+      base: {
+        position: 'relative',
+        height: 'auto',
+        textAlign: 'left',
+        backgroundColor: theme.TABLE_TH_BACKGROUND_COLOR,
+        borderBottom: "1px solid ".concat(theme.TABLE_BORDER_COLOR),
+        fontWeight: 'normal',
+        verticalAlign: 'middle',
+        padding: '0 4px',
+        whiteSpace: 'nowrap',
+        textOverflow: 'ellipsis',
+        overflow: 'hidden',
+        lineHeight: '14px',
+        ':hover': {
+          backgroundColor: theme.TABLE_TH_HOVER_COLOR
+        }
+      },
+      div: {
+        whiteSpace: 'nowrap',
+        textOverflow: 'ellipsis',
+        overflow: 'hidden',
+        fontSize: theme.BASE_FONT_SIZE,
+        lineHeight: '120%'
+      }
+    },
+    TableInspectorLeftBorder: {
+      none: {
+        borderLeft: 'none'
+      },
+      solid: {
+        borderLeft: "1px solid ".concat(theme.TABLE_BORDER_COLOR)
+      }
+    },
+    TableInspectorSortIcon: _objectSpread$7({
+      display: 'block',
+      marginRight: 3,
+      width: 8,
+      height: 7,
+      marginTop: -7,
+      color: theme.TABLE_SORT_ICON_COLOR,
+      fontSize: 12
+    }, unselectable)
+  };
+});
+
+var DEFAULT_THEME_NAME = 'chromeLight';
+var ThemeContext = Object(react__WEBPACK_IMPORTED_MODULE_0__["createContext"])(base(themes[DEFAULT_THEME_NAME]));
+var useStyles = function useStyles(baseStylesKey) {
+  var themeStyles = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(ThemeContext);
+  return themeStyles[baseStylesKey];
+};
+var themeAcceptor = function themeAcceptor(WrappedComponent) {
+  var ThemeAcceptor = function ThemeAcceptor(_ref) {
+    var _ref$theme = _ref.theme,
+        theme = _ref$theme === void 0 ? DEFAULT_THEME_NAME : _ref$theme,
+        restProps = _objectWithoutProperties(_ref, ["theme"]);
+    var themeStyles = Object(react__WEBPACK_IMPORTED_MODULE_0__["useMemo"])(function () {
+      switch (Object.prototype.toString.call(theme)) {
+        case '[object String]':
+          return base(themes[theme]);
+        case '[object Object]':
+          return base(theme);
+        default:
+          return base(themes[DEFAULT_THEME_NAME]);
+      }
+    }, [theme]);
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ThemeContext.Provider, {
+      value: themeStyles
+    }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(WrappedComponent, restProps));
+  };
+  ThemeAcceptor.propTypes = {
+    theme: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object])
+  };
+  return ThemeAcceptor;
+};
+
+function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+var Arrow = function Arrow(_ref) {
+  var expanded = _ref.expanded,
+      styles = _ref.styles;
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+    style: _objectSpread$6(_objectSpread$6({}, styles.base), expanded ? styles.expanded : styles.collapsed)
+  }, "\u25B6");
+};
+var TreeNode = Object(react__WEBPACK_IMPORTED_MODULE_0__["memo"])(function (props) {
+  props = _objectSpread$6({
+    expanded: true,
+    nodeRenderer: function nodeRenderer(_ref2) {
+      var name = _ref2.name;
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, name);
+    },
+    onClick: function onClick() {},
+    shouldShowArrow: false,
+    shouldShowPlaceholder: true
+  }, props);
+  var _props = props,
+      expanded = _props.expanded,
+      onClick = _props.onClick,
+      children = _props.children,
+      nodeRenderer = _props.nodeRenderer,
+      title = _props.title,
+      shouldShowArrow = _props.shouldShowArrow,
+      shouldShowPlaceholder = _props.shouldShowPlaceholder;
+  var styles = useStyles('TreeNode');
+  var NodeRenderer = nodeRenderer;
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("li", {
+    "aria-expanded": expanded,
+    role: "treeitem",
+    style: styles.treeNodeBase,
+    title: title
+  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
+    style: styles.treeNodePreviewContainer,
+    onClick: onClick
+  }, shouldShowArrow || react__WEBPACK_IMPORTED_MODULE_0__["Children"].count(children) > 0 ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(Arrow, {
+    expanded: expanded,
+    styles: styles.treeNodeArrow
+  }) : shouldShowPlaceholder && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+    style: styles.treeNodePlaceholder
+  }, "\xA0"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(NodeRenderer, props)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("ol", {
+    role: "group",
+    style: styles.treeNodeChildNodesContainer
+  }, expanded ? children : undefined));
+});
+TreeNode.propTypes = {
+  name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,
+  data: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
+  expanded: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,
+  shouldShowArrow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,
+  shouldShowPlaceholder: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,
+  nodeRenderer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,
+  onClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func
+};
+
+function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+function _createForOfIteratorHelper$1(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(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$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(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$1(o, minLen); }
+function _arrayLikeToArray$1(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 DEFAULT_ROOT_PATH = '$';
+var WILDCARD = '*';
+function hasChildNodes(data, dataIterator) {
+  return !dataIterator(data).next().done;
+}
+var wildcardPathsFromLevel = function wildcardPathsFromLevel(level) {
+  return Array.from({
+    length: level
+  }, function (_, i) {
+    return [DEFAULT_ROOT_PATH].concat(Array.from({
+      length: i
+    }, function () {
+      return '*';
+    })).join('.');
+  });
+};
+var getExpandedPaths = function getExpandedPaths(data, dataIterator, expandPaths, expandLevel, prevExpandedPaths) {
+  var wildcardPaths = [].concat(wildcardPathsFromLevel(expandLevel)).concat(expandPaths).filter(function (path) {
+    return typeof path === 'string';
+  });
+  var expandedPaths = [];
+  wildcardPaths.forEach(function (wildcardPath) {
+    var keyPaths = wildcardPath.split('.');
+    var populatePaths = function populatePaths(curData, curPath, depth) {
+      if (depth === keyPaths.length) {
+        expandedPaths.push(curPath);
+        return;
+      }
+      var key = keyPaths[depth];
+      if (depth === 0) {
+        if (hasChildNodes(curData, dataIterator) && (key === DEFAULT_ROOT_PATH || key === WILDCARD)) {
+          populatePaths(curData, DEFAULT_ROOT_PATH, depth + 1);
+        }
+      } else {
+        if (key === WILDCARD) {
+          var _iterator = _createForOfIteratorHelper$1(dataIterator(curData)),
+              _step;
+          try {
+            for (_iterator.s(); !(_step = _iterator.n()).done;) {
+              var _step$value = _step.value,
+                  name = _step$value.name,
+                  _data = _step$value.data;
+              if (hasChildNodes(_data, dataIterator)) {
+                populatePaths(_data, "".concat(curPath, ".").concat(name), depth + 1);
+              }
+            }
+          } catch (err) {
+            _iterator.e(err);
+          } finally {
+            _iterator.f();
+          }
+        } else {
+          var value = curData[key];
+          if (hasChildNodes(value, dataIterator)) {
+            populatePaths(value, "".concat(curPath, ".").concat(key), depth + 1);
+          }
+        }
+      }
+    };
+    populatePaths(data, '', 0);
+  });
+  return expandedPaths.reduce(function (obj, path) {
+    obj[path] = true;
+    return obj;
+  }, _objectSpread$5({}, prevExpandedPaths));
+};
+
+function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+var ConnectedTreeNode = Object(react__WEBPACK_IMPORTED_MODULE_0__["memo"])(function (props) {
+  var data = props.data,
+      dataIterator = props.dataIterator,
+      path = props.path,
+      depth = props.depth,
+      nodeRenderer = props.nodeRenderer;
+  var _useContext = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(ExpandedPathsContext),
+      _useContext2 = _slicedToArray(_useContext, 2),
+      expandedPaths = _useContext2[0],
+      setExpandedPaths = _useContext2[1];
+  var nodeHasChildNodes = hasChildNodes(data, dataIterator);
+  var expanded = !!expandedPaths[path];
+  var handleClick = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function () {
+    return nodeHasChildNodes && setExpandedPaths(function (prevExpandedPaths) {
+      return _objectSpread$4(_objectSpread$4({}, prevExpandedPaths), {}, _defineProperty({}, path, !expanded));
+    });
+  }, [nodeHasChildNodes, setExpandedPaths, path, expanded]);
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(TreeNode, _extends({
+    expanded: expanded,
+    onClick: handleClick
+    ,
+    shouldShowArrow: nodeHasChildNodes
+    ,
+    shouldShowPlaceholder: depth > 0
+    ,
+    nodeRenderer: nodeRenderer
+  }, props),
+  expanded ? _toConsumableArray(dataIterator(data)).map(function (_ref) {
+    var name = _ref.name,
+        data = _ref.data,
+        renderNodeProps = _objectWithoutProperties(_ref, ["name", "data"]);
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ConnectedTreeNode, _extends({
+      name: name,
+      data: data,
+      depth: depth + 1,
+      path: "".concat(path, ".").concat(name),
+      key: name,
+      dataIterator: dataIterator,
+      nodeRenderer: nodeRenderer
+    }, renderNodeProps));
+  }) : null);
+});
+ConnectedTreeNode.propTypes = {
+  name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,
+  data: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
+  dataIterator: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,
+  depth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,
+  expanded: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,
+  nodeRenderer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func
+};
+var TreeView = Object(react__WEBPACK_IMPORTED_MODULE_0__["memo"])(function (_ref2) {
+  var name = _ref2.name,
+      data = _ref2.data,
+      dataIterator = _ref2.dataIterator,
+      nodeRenderer = _ref2.nodeRenderer,
+      expandPaths = _ref2.expandPaths,
+      expandLevel = _ref2.expandLevel;
+  var styles = useStyles('TreeView');
+  var stateAndSetter = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])({});
+  var _stateAndSetter = _slicedToArray(stateAndSetter, 2),
+      setExpandedPaths = _stateAndSetter[1];
+  Object(react__WEBPACK_IMPORTED_MODULE_0__["useLayoutEffect"])(function () {
+    return setExpandedPaths(function (prevExpandedPaths) {
+      return getExpandedPaths(data, dataIterator, expandPaths, expandLevel, prevExpandedPaths);
+    });
+  }, [data, dataIterator, expandPaths, expandLevel]);
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ExpandedPathsContext.Provider, {
+    value: stateAndSetter
+  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("ol", {
+    role: "tree",
+    style: styles.treeViewOutline
+  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ConnectedTreeNode, {
+    name: name,
+    data: data,
+    dataIterator: dataIterator,
+    depth: 0,
+    path: DEFAULT_ROOT_PATH,
+    nodeRenderer: nodeRenderer
+  })));
+});
+TreeView.propTypes = {
+  name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,
+  data: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
+  dataIterator: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,
+  nodeRenderer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,
+  expandPaths: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array]),
+  expandLevel: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number
+};
+
+function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+var ObjectName = function ObjectName(_ref) {
+  var name = _ref.name,
+      _ref$dimmed = _ref.dimmed,
+      dimmed = _ref$dimmed === void 0 ? false : _ref$dimmed,
+      _ref$styles = _ref.styles,
+      styles = _ref$styles === void 0 ? {} : _ref$styles;
+  var themeStyles = useStyles('ObjectName');
+  var appliedStyles = _objectSpread$3(_objectSpread$3(_objectSpread$3({}, themeStyles.base), dimmed ? themeStyles['dimmed'] : {}), styles);
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+    style: appliedStyles
+  }, name);
+};
+ObjectName.propTypes = {
+  name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,
+  dimmed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool
+};
+
+function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+var ObjectValue = function ObjectValue(_ref) {
+  var object = _ref.object,
+      styles = _ref.styles;
+  var themeStyles = useStyles('ObjectValue');
+  var mkStyle = function mkStyle(key) {
+    return _objectSpread$2(_objectSpread$2({}, themeStyles[key]), styles);
+  };
+  switch (_typeof(object)) {
+    case 'bigint':
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: mkStyle('objectValueNumber')
+      }, String(object), "n");
+    case 'number':
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: mkStyle('objectValueNumber')
+      }, String(object));
+    case 'string':
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: mkStyle('objectValueString')
+      }, "\"", object, "\"");
+    case 'boolean':
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: mkStyle('objectValueBoolean')
+      }, String(object));
+    case 'undefined':
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: mkStyle('objectValueUndefined')
+      }, "undefined");
+    case 'object':
+      if (object === null) {
+        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+          style: mkStyle('objectValueNull')
+        }, "null");
+      }
+      if (object instanceof Date) {
+        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, object.toString());
+      }
+      if (object instanceof RegExp) {
+        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+          style: mkStyle('objectValueRegExp')
+        }, object.toString());
+      }
+      if (Array.isArray(object)) {
+        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "Array(".concat(object.length, ")"));
+      }
+      if (!object.constructor) {
+        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "Object");
+      }
+      if (typeof object.constructor.isBuffer === 'function' && object.constructor.isBuffer(object)) {
+        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, "Buffer[".concat(object.length, "]"));
+      }
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, object.constructor.name);
+    case 'function':
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: mkStyle('objectValueFunctionPrefix')
+      }, "\u0192\xA0"), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: mkStyle('objectValueFunctionName')
+      }, object.name, "()"));
+    case 'symbol':
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: mkStyle('objectValueSymbol')
+      }, object.toString());
+    default:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null);
+  }
+};
+ObjectValue.propTypes = {
+  object: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any
+};
+
+var hasOwnProperty = Object.prototype.hasOwnProperty;
+var propertyIsEnumerable = Object.prototype.propertyIsEnumerable;
+
+function getPropertyValue(object, propertyName) {
+  var propertyDescriptor = Object.getOwnPropertyDescriptor(object, propertyName);
+  if (propertyDescriptor.get) {
+    try {
+      return propertyDescriptor.get();
+    } catch (_unused) {
+      return propertyDescriptor.get;
+    }
+  }
+  return object[propertyName];
+}
+
+function intersperse(arr, sep) {
+  if (arr.length === 0) {
+    return [];
+  }
+  return arr.slice(1).reduce(function (xs, x) {
+    return xs.concat([sep, x]);
+  }, [arr[0]]);
+}
+var ObjectPreview = function ObjectPreview(_ref) {
+  var data = _ref.data;
+  var styles = useStyles('ObjectPreview');
+  var object = data;
+  if (_typeof(object) !== 'object' || object === null || object instanceof Date || object instanceof RegExp) {
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectValue, {
+      object: object
+    });
+  }
+  if (Array.isArray(object)) {
+    var maxProperties = styles.arrayMaxProperties;
+    var previewArray = object.slice(0, maxProperties).map(function (element, index) {
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectValue, {
+        key: index,
+        object: element
+      });
+    });
+    if (object.length > maxProperties) {
+      previewArray.push( react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        key: "ellipsis"
+      }, "\u2026"));
+    }
+    var arrayLength = object.length;
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+      style: styles.objectDescription
+    }, arrayLength === 0 ? "" : "(".concat(arrayLength, ")\xA0")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+      style: styles.preview
+    }, "[", intersperse(previewArray, ', '), "]"));
+  } else {
+    var _maxProperties = styles.objectMaxProperties;
+    var propertyNodes = [];
+    for (var propertyName in object) {
+      if (hasOwnProperty.call(object, propertyName)) {
+        var ellipsis = void 0;
+        if (propertyNodes.length === _maxProperties - 1 && Object.keys(object).length > _maxProperties) {
+          ellipsis = react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+            key: 'ellipsis'
+          }, "\u2026");
+        }
+        var propertyValue = getPropertyValue(object, propertyName);
+        propertyNodes.push( react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+          key: propertyName
+        }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectName, {
+          name: propertyName || "\"\""
+        }), ":\xA0", react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectValue, {
+          object: propertyValue
+        }), ellipsis));
+        if (ellipsis) break;
+      }
+    }
+    var objectConstructorName = object.constructor ? object.constructor.name : 'Object';
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+      style: styles.objectDescription
+    }, objectConstructorName === 'Object' ? '' : "".concat(objectConstructorName, " ")), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+      style: styles.preview
+    }, '{', intersperse(propertyNodes, ', '), '}'));
+  }
+};
+
+var ObjectRootLabel = function ObjectRootLabel(_ref) {
+  var name = _ref.name,
+      data = _ref.data;
+  if (typeof name === 'string') {
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectName, {
+      name: name
+    }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, ": "), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectPreview, {
+      data: data
+    }));
+  } else {
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectPreview, {
+      data: data
+    });
+  }
+};
+
+var ObjectLabel = function ObjectLabel(_ref) {
+  var name = _ref.name,
+      data = _ref.data,
+      _ref$isNonenumerable = _ref.isNonenumerable,
+      isNonenumerable = _ref$isNonenumerable === void 0 ? false : _ref$isNonenumerable;
+  var object = data;
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, typeof name === 'string' ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectName, {
+    name: name,
+    dimmed: isNonenumerable
+  }) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectPreview, {
+    data: name
+  }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, ": "), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectValue, {
+    object: object
+  }));
+};
+ObjectLabel.propTypes = {
+  isNonenumerable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool
+};
+
+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 createIterator = function createIterator(showNonenumerable, sortObjectKeys) {
+  var objectIterator = regenerator.mark(function objectIterator(data) {
+    var shouldIterate, dataIsArray, i, _iterator, _step, entry, _entry, k, v, keys, _iterator2, _step2, propertyName, propertyValue, _propertyValue;
+    return regenerator.wrap(function objectIterator$(_context) {
+      while (1) {
+        switch (_context.prev = _context.next) {
+          case 0:
+            shouldIterate = _typeof(data) === 'object' && data !== null || typeof data === 'function';
+            if (shouldIterate) {
+              _context.next = 3;
+              break;
+            }
+            return _context.abrupt("return");
+          case 3:
+            dataIsArray = Array.isArray(data);
+            if (!(!dataIsArray && data[Symbol.iterator])) {
+              _context.next = 32;
+              break;
+            }
+            i = 0;
+            _iterator = _createForOfIteratorHelper(data);
+            _context.prev = 7;
+            _iterator.s();
+          case 9:
+            if ((_step = _iterator.n()).done) {
+              _context.next = 22;
+              break;
+            }
+            entry = _step.value;
+            if (!(Array.isArray(entry) && entry.length === 2)) {
+              _context.next = 17;
+              break;
+            }
+            _entry = _slicedToArray(entry, 2), k = _entry[0], v = _entry[1];
+            _context.next = 15;
+            return {
+              name: k,
+              data: v
+            };
+          case 15:
+            _context.next = 19;
+            break;
+          case 17:
+            _context.next = 19;
+            return {
+              name: i.toString(),
+              data: entry
+            };
+          case 19:
+            i++;
+          case 20:
+            _context.next = 9;
+            break;
+          case 22:
+            _context.next = 27;
+            break;
+          case 24:
+            _context.prev = 24;
+            _context.t0 = _context["catch"](7);
+            _iterator.e(_context.t0);
+          case 27:
+            _context.prev = 27;
+            _iterator.f();
+            return _context.finish(27);
+          case 30:
+            _context.next = 64;
+            break;
+          case 32:
+            keys = Object.getOwnPropertyNames(data);
+            if (sortObjectKeys === true && !dataIsArray) {
+              keys.sort();
+            } else if (typeof sortObjectKeys === 'function') {
+              keys.sort(sortObjectKeys);
+            }
+            _iterator2 = _createForOfIteratorHelper(keys);
+            _context.prev = 35;
+            _iterator2.s();
+          case 37:
+            if ((_step2 = _iterator2.n()).done) {
+              _context.next = 53;
+              break;
+            }
+            propertyName = _step2.value;
+            if (!propertyIsEnumerable.call(data, propertyName)) {
+              _context.next = 45;
+              break;
+            }
+            propertyValue = getPropertyValue(data, propertyName);
+            _context.next = 43;
+            return {
+              name: propertyName || "\"\"",
+              data: propertyValue
+            };
+          case 43:
+            _context.next = 51;
+            break;
+          case 45:
+            if (!showNonenumerable) {
+              _context.next = 51;
+              break;
+            }
+            _propertyValue = void 0;
+            try {
+              _propertyValue = getPropertyValue(data, propertyName);
+            } catch (e) {
+            }
+            if (!(_propertyValue !== undefined)) {
+              _context.next = 51;
+              break;
+            }
+            _context.next = 51;
+            return {
+              name: propertyName,
+              data: _propertyValue,
+              isNonenumerable: true
+            };
+          case 51:
+            _context.next = 37;
+            break;
+          case 53:
+            _context.next = 58;
+            break;
+          case 55:
+            _context.prev = 55;
+            _context.t1 = _context["catch"](35);
+            _iterator2.e(_context.t1);
+          case 58:
+            _context.prev = 58;
+            _iterator2.f();
+            return _context.finish(58);
+          case 61:
+            if (!(showNonenumerable && data !== Object.prototype
+            )) {
+              _context.next = 64;
+              break;
+            }
+            _context.next = 64;
+            return {
+              name: '__proto__',
+              data: Object.getPrototypeOf(data),
+              isNonenumerable: true
+            };
+          case 64:
+          case "end":
+            return _context.stop();
+        }
+      }
+    }, objectIterator, null, [[7, 24, 27, 30], [35, 55, 58, 61]]);
+  });
+  return objectIterator;
+};
+var defaultNodeRenderer = function defaultNodeRenderer(_ref) {
+  var depth = _ref.depth,
+      name = _ref.name,
+      data = _ref.data,
+      isNonenumerable = _ref.isNonenumerable;
+  return depth === 0 ? react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectRootLabel, {
+    name: name,
+    data: data
+  }) : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectLabel, {
+    name: name,
+    data: data,
+    isNonenumerable: isNonenumerable
+  });
+};
+var ObjectInspector = function ObjectInspector(_ref2) {
+  var _ref2$showNonenumerab = _ref2.showNonenumerable,
+      showNonenumerable = _ref2$showNonenumerab === void 0 ? false : _ref2$showNonenumerab,
+      sortObjectKeys = _ref2.sortObjectKeys,
+      nodeRenderer = _ref2.nodeRenderer,
+      treeViewProps = _objectWithoutProperties(_ref2, ["showNonenumerable", "sortObjectKeys", "nodeRenderer"]);
+  var dataIterator = createIterator(showNonenumerable, sortObjectKeys);
+  var renderer = nodeRenderer ? nodeRenderer : defaultNodeRenderer;
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(TreeView, _extends({
+    nodeRenderer: renderer,
+    dataIterator: dataIterator
+  }, treeViewProps));
+};
+ObjectInspector.propTypes = {
+  expandLevel: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,
+  expandPaths: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array]),
+  name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,
+  data: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
+  showNonenumerable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,
+  sortObjectKeys: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),
+  nodeRenderer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func
+};
+var ObjectInspector$1 = themeAcceptor(ObjectInspector);
+
+if (!Array.prototype.includes) {
+  Array.prototype.includes = function (searchElement
+  ) {
+    var O = Object(this);
+    var len = parseInt(O.length) || 0;
+    if (len === 0) {
+      return false;
+    }
+    var n = parseInt(arguments[1]) || 0;
+    var k;
+    if (n >= 0) {
+      k = n;
+    } else {
+      k = len + n;
+      if (k < 0) {
+        k = 0;
+      }
+    }
+    var currentElement;
+    while (k < len) {
+      currentElement = O[k];
+      if (searchElement === currentElement || searchElement !== searchElement && currentElement !== currentElement) {
+        return true;
+      }
+      k++;
+    }
+    return false;
+  };
+}
+function getHeaders(data) {
+  if (_typeof(data) === 'object') {
+    var rowHeaders;
+    if (Array.isArray(data)) {
+      var nRows = data.length;
+      rowHeaders = _toConsumableArray(Array(nRows).keys());
+    } else if (data !== null) {
+      rowHeaders = Object.keys(data);
+    }
+    var colHeaders = rowHeaders.reduce(function (colHeaders, rowHeader) {
+      var row = data[rowHeader];
+      if (_typeof(row) === 'object' && row !== null) {
+        var cols = Object.keys(row);
+        cols.reduce(function (xs, x) {
+          if (!xs.includes(x)) {
+            xs.push(x);
+          }
+          return xs;
+        }, colHeaders);
+      }
+      return colHeaders;
+    }, []);
+    return {
+      rowHeaders: rowHeaders,
+      colHeaders: colHeaders
+    };
+  }
+  return undefined;
+}
+
+function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+var DataContainer = function DataContainer(_ref) {
+  var rows = _ref.rows,
+      columns = _ref.columns,
+      rowsData = _ref.rowsData;
+  var styles = useStyles('TableInspectorDataContainer');
+  var borderStyles = useStyles('TableInspectorLeftBorder');
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
+    style: styles.div
+  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("table", {
+    style: styles.table
+  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("colgroup", null), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("tbody", null, rows.map(function (row, i) {
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("tr", {
+      key: row,
+      style: styles.tr
+    }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("td", {
+      style: _objectSpread$1(_objectSpread$1({}, styles.td), borderStyles.none)
+    }, row), columns.map(function (column) {
+      var rowData = rowsData[i];
+      if (_typeof(rowData) === 'object' && rowData !== null && hasOwnProperty.call(rowData, column)) {
+        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("td", {
+          key: column,
+          style: _objectSpread$1(_objectSpread$1({}, styles.td), borderStyles.solid)
+        }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectValue, {
+          object: rowData[column]
+        }));
+      } else {
+        return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("td", {
+          key: column,
+          style: _objectSpread$1(_objectSpread$1({}, styles.td), borderStyles.solid)
+        });
+      }
+    }));
+  }))));
+};
+
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+var SortIconContainer = function SortIconContainer(props) {
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
+    style: {
+      position: 'absolute',
+      top: 1,
+      right: 0,
+      bottom: 1,
+      display: 'flex',
+      alignItems: 'center'
+    }
+  }, props.children);
+};
+var SortIcon = function SortIcon(_ref) {
+  var sortAscending = _ref.sortAscending;
+  var styles = useStyles('TableInspectorSortIcon');
+  var glyph = sortAscending ? '▲' : '▼';
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
+    style: styles
+  }, glyph);
+};
+var TH = function TH(_ref2) {
+  var _ref2$sortAscending = _ref2.sortAscending,
+      sortAscending = _ref2$sortAscending === void 0 ? false : _ref2$sortAscending,
+      _ref2$sorted = _ref2.sorted,
+      sorted = _ref2$sorted === void 0 ? false : _ref2$sorted,
+      _ref2$onClick = _ref2.onClick,
+      onClick = _ref2$onClick === void 0 ? undefined : _ref2$onClick,
+      _ref2$borderStyle = _ref2.borderStyle,
+      borderStyle = _ref2$borderStyle === void 0 ? {} : _ref2$borderStyle,
+      children = _ref2.children,
+      thProps = _objectWithoutProperties(_ref2, ["sortAscending", "sorted", "onClick", "borderStyle", "children"]);
+  var styles = useStyles('TableInspectorTH');
+  var _useState = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])(false),
+      _useState2 = _slicedToArray(_useState, 2),
+      hovered = _useState2[0],
+      setHovered = _useState2[1];
+  var handleMouseEnter = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function () {
+    return setHovered(true);
+  }, []);
+  var handleMouseLeave = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function () {
+    return setHovered(false);
+  }, []);
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("th", _extends({}, thProps, {
+    style: _objectSpread(_objectSpread(_objectSpread({}, styles.base), borderStyle), hovered ? styles.base[':hover'] : {}),
+    onMouseEnter: handleMouseEnter,
+    onMouseLeave: handleMouseLeave,
+    onClick: onClick
+  }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
+    style: styles.div
+  }, children), sorted && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(SortIconContainer, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(SortIcon, {
+    sortAscending: sortAscending
+  })));
+};
+
+var HeaderContainer = function HeaderContainer(_ref) {
+  var _ref$indexColumnText = _ref.indexColumnText,
+      indexColumnText = _ref$indexColumnText === void 0 ? '(index)' : _ref$indexColumnText,
+      _ref$columns = _ref.columns,
+      columns = _ref$columns === void 0 ? [] : _ref$columns,
+      sorted = _ref.sorted,
+      sortIndexColumn = _ref.sortIndexColumn,
+      sortColumn = _ref.sortColumn,
+      sortAscending = _ref.sortAscending,
+      onTHClick = _ref.onTHClick,
+      onIndexTHClick = _ref.onIndexTHClick;
+  var styles = useStyles('TableInspectorHeaderContainer');
+  var borderStyles = useStyles('TableInspectorLeftBorder');
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
+    style: styles.base
+  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("table", {
+    style: styles.table
+  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("tbody", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("tr", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(TH, {
+    borderStyle: borderStyles.none,
+    sorted: sorted && sortIndexColumn,
+    sortAscending: sortAscending,
+    onClick: onIndexTHClick
+  }, indexColumnText), columns.map(function (column) {
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(TH, {
+      borderStyle: borderStyles.solid,
+      key: column,
+      sorted: sorted && sortColumn === column,
+      sortAscending: sortAscending,
+      onClick: onTHClick.bind(null, column)
+    }, column);
+  })))));
+};
+
+var TableInspector = function TableInspector(_ref) {
+  var data = _ref.data,
+      columns = _ref.columns;
+  var styles = useStyles('TableInspector');
+  var _useState = Object(react__WEBPACK_IMPORTED_MODULE_0__["useState"])({
+    sorted: false,
+    sortIndexColumn: false,
+    sortColumn: undefined,
+    sortAscending: false
+  }),
+      _useState2 = _slicedToArray(_useState, 2),
+      _useState2$ = _useState2[0],
+      sorted = _useState2$.sorted,
+      sortIndexColumn = _useState2$.sortIndexColumn,
+      sortColumn = _useState2$.sortColumn,
+      sortAscending = _useState2$.sortAscending,
+      setState = _useState2[1];
+  var handleIndexTHClick = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function () {
+    setState(function (_ref2) {
+      var sortIndexColumn = _ref2.sortIndexColumn,
+          sortAscending = _ref2.sortAscending;
+      return {
+        sorted: true,
+        sortIndexColumn: true,
+        sortColumn: undefined,
+        sortAscending: sortIndexColumn ? !sortAscending : true
+      };
+    });
+  }, []);
+  var handleTHClick = Object(react__WEBPACK_IMPORTED_MODULE_0__["useCallback"])(function (col) {
+    setState(function (_ref3) {
+      var sortColumn = _ref3.sortColumn,
+          sortAscending = _ref3.sortAscending;
+      return {
+        sorted: true,
+        sortIndexColumn: false,
+        sortColumn: col,
+        sortAscending: col === sortColumn ? !sortAscending : true
+      };
+    });
+  }, []);
+  if (_typeof(data) !== 'object' || data === null) {
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", null);
+  }
+  var _getHeaders = getHeaders(data),
+      rowHeaders = _getHeaders.rowHeaders,
+      colHeaders = _getHeaders.colHeaders;
+  if (columns !== undefined) {
+    colHeaders = columns;
+  }
+  var rowsData = rowHeaders.map(function (rowHeader) {
+    return data[rowHeader];
+  });
+  var columnDataWithRowIndexes;
+  if (sortColumn !== undefined) {
+    columnDataWithRowIndexes = rowsData.map(function (rowData, index) {
+      if (_typeof(rowData) === 'object' && rowData !== null
+      ) {
+          var columnData = rowData[sortColumn];
+          return [columnData, index];
+        }
+      return [undefined, index];
+    });
+  } else {
+    if (sortIndexColumn) {
+      columnDataWithRowIndexes = rowHeaders.map(function (rowData, index) {
+        var columnData = rowHeaders[index];
+        return [columnData, index];
+      });
+    }
+  }
+  if (columnDataWithRowIndexes !== undefined) {
+    var comparator = function comparator(mapper, ascending) {
+      return function (a, b) {
+        var v1 = mapper(a);
+        var v2 = mapper(b);
+        var type1 = _typeof(v1);
+        var type2 = _typeof(v2);
+        var lt = function lt(v1, v2) {
+          if (v1 < v2) {
+            return -1;
+          } else if (v1 > v2) {
+            return 1;
+          } else {
+            return 0;
+          }
+        };
+        var result;
+        if (type1 === type2) {
+          result = lt(v1, v2);
+        } else {
+          var order = {
+            string: 0,
+            number: 1,
+            object: 2,
+            symbol: 3,
+            boolean: 4,
+            undefined: 5,
+            function: 6
+          };
+          result = lt(order[type1], order[type2]);
+        }
+        if (!ascending) result = -result;
+        return result;
+      };
+    };
+    var sortedRowIndexes = columnDataWithRowIndexes.sort(comparator(function (item) {
+      return item[0];
+    }, sortAscending)).map(function (item) {
+      return item[1];
+    });
+    rowHeaders = sortedRowIndexes.map(function (i) {
+      return rowHeaders[i];
+    });
+    rowsData = sortedRowIndexes.map(function (i) {
+      return rowsData[i];
+    });
+  }
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
+    style: styles.base
+  }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(HeaderContainer, {
+    columns: colHeaders
+    ,
+    sorted: sorted,
+    sortIndexColumn: sortIndexColumn,
+    sortColumn: sortColumn,
+    sortAscending: sortAscending,
+    onTHClick: handleTHClick,
+    onIndexTHClick: handleIndexTHClick
+  }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DataContainer, {
+    rows: rowHeaders,
+    columns: colHeaders,
+    rowsData: rowsData
+  }));
+};
+TableInspector.propTypes = {
+  data: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object]),
+  columns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array
+};
+var TableInspector$1 = themeAcceptor(TableInspector);
+
+var TEXT_NODE_MAX_INLINE_CHARS = 80;
+var shouldInline = function shouldInline(data) {
+  return data.childNodes.length === 0 || data.childNodes.length === 1 && data.childNodes[0].nodeType === Node.TEXT_NODE && data.textContent.length < TEXT_NODE_MAX_INLINE_CHARS;
+};
+
+var OpenTag = function OpenTag(_ref) {
+  var tagName = _ref.tagName,
+      attributes = _ref.attributes,
+      styles = _ref.styles;
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+    style: styles.base
+  }, '<', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+    style: styles.tagName
+  }, tagName), function () {
+    if (attributes) {
+      var attributeNodes = [];
+      for (var i = 0; i < attributes.length; i++) {
+        var attribute = attributes[i];
+        attributeNodes.push( react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+          key: i
+        }, ' ', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+          style: styles.htmlAttributeName
+        }, attribute.name), '="', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+          style: styles.htmlAttributeValue
+        }, attribute.value), '"'));
+      }
+      return attributeNodes;
+    }
+  }(), '>');
+};
+var CloseTag = function CloseTag(_ref2) {
+  var tagName = _ref2.tagName,
+      _ref2$isChildNode = _ref2.isChildNode,
+      isChildNode = _ref2$isChildNode === void 0 ? false : _ref2$isChildNode,
+      styles = _ref2.styles;
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+    style: _extends({}, styles.base, isChildNode && styles.offsetLeft)
+  }, '</', react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+    style: styles.tagName
+  }, tagName), '>');
+};
+var nameByNodeType = {
+  1: 'ELEMENT_NODE',
+  3: 'TEXT_NODE',
+  7: 'PROCESSING_INSTRUCTION_NODE',
+  8: 'COMMENT_NODE',
+  9: 'DOCUMENT_NODE',
+  10: 'DOCUMENT_TYPE_NODE',
+  11: 'DOCUMENT_FRAGMENT_NODE'
+};
+var DOMNodePreview = function DOMNodePreview(_ref3) {
+  var isCloseTag = _ref3.isCloseTag,
+      data = _ref3.data,
+      expanded = _ref3.expanded;
+  var styles = useStyles('DOMNodePreview');
+  if (isCloseTag) {
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CloseTag, {
+      styles: styles.htmlCloseTag,
+      isChildNode: true,
+      tagName: data.tagName
+    });
+  }
+  switch (data.nodeType) {
+    case Node.ELEMENT_NODE:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(OpenTag, {
+        tagName: data.tagName,
+        attributes: data.attributes,
+        styles: styles.htmlOpenTag
+      }), shouldInline(data) ? data.textContent : !expanded && '…', !expanded && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CloseTag, {
+        tagName: data.tagName,
+        styles: styles.htmlCloseTag
+      }));
+    case Node.TEXT_NODE:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, data.textContent);
+    case Node.CDATA_SECTION_NODE:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, '<![CDATA[' + data.textContent + ']]>');
+    case Node.COMMENT_NODE:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: styles.htmlComment
+      }, '<!--', data.textContent, '-->');
+    case Node.PROCESSING_INSTRUCTION_NODE:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, data.nodeName);
+    case Node.DOCUMENT_TYPE_NODE:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", {
+        style: styles.htmlDoctype
+      }, '<!DOCTYPE ', data.name, data.publicId ? " PUBLIC \"".concat(data.publicId, "\"") : '', !data.publicId && data.systemId ? ' SYSTEM' : '', data.systemId ? " \"".concat(data.systemId, "\"") : '', '>');
+    case Node.DOCUMENT_NODE:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, data.nodeName);
+    case Node.DOCUMENT_FRAGMENT_NODE:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, data.nodeName);
+    default:
+      return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("span", null, nameByNodeType[data.nodeType]);
+  }
+};
+DOMNodePreview.propTypes = {
+  isCloseTag: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,
+  name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,
+  data: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,
+  expanded: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool.isRequired
+};
+
+var domIterator = regenerator.mark(function domIterator(data) {
+  var textInlined, i, node;
+  return regenerator.wrap(function domIterator$(_context) {
+    while (1) {
+      switch (_context.prev = _context.next) {
+        case 0:
+          if (!(data && data.childNodes)) {
+            _context.next = 17;
+            break;
+          }
+          textInlined = shouldInline(data);
+          if (!textInlined) {
+            _context.next = 4;
+            break;
+          }
+          return _context.abrupt("return");
+        case 4:
+          i = 0;
+        case 5:
+          if (!(i < data.childNodes.length)) {
+            _context.next = 14;
+            break;
+          }
+          node = data.childNodes[i];
+          if (!(node.nodeType === Node.TEXT_NODE && node.textContent.trim().length === 0)) {
+            _context.next = 9;
+            break;
+          }
+          return _context.abrupt("continue", 11);
+        case 9:
+          _context.next = 11;
+          return {
+            name: "".concat(node.tagName, "[").concat(i, "]"),
+            data: node
+          };
+        case 11:
+          i++;
+          _context.next = 5;
+          break;
+        case 14:
+          if (!data.tagName) {
+            _context.next = 17;
+            break;
+          }
+          _context.next = 17;
+          return {
+            name: 'CLOSE_TAG',
+            data: {
+              tagName: data.tagName
+            },
+            isCloseTag: true
+          };
+        case 17:
+        case "end":
+          return _context.stop();
+      }
+    }
+  }, domIterator);
+});
+var DOMInspector = function DOMInspector(props) {
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(TreeView, _extends({
+    nodeRenderer: DOMNodePreview,
+    dataIterator: domIterator
+  }, props));
+};
+DOMInspector.propTypes = {
+  data: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired
+};
+var DOMInspector$1 = themeAcceptor(DOMInspector);
+
+var Inspector = function Inspector(_ref) {
+  var _ref$table = _ref.table,
+      table = _ref$table === void 0 ? false : _ref$table,
+      data = _ref.data,
+      rest = _objectWithoutProperties(_ref, ["table", "data"]);
+  if (table) {
+    return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(TableInspector$1, _extends({
+      data: data
+    }, rest));
+  }
+  if (is_dom__WEBPACK_IMPORTED_MODULE_2___default()(data)) return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(DOMInspector$1, _extends({
+    data: data
+  }, rest));
+  return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ObjectInspector$1, _extends({
+    data: data
+  }, rest));
+};
+Inspector.propTypes = {
+  data: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.any,
+  name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,
+  table: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool
+};
+
+/* harmony default export */ __webpack_exports__["default"] = (Inspector);
+
+//# sourceMappingURL=react-inspector.js.map
+
+
 /***/ }),
 
 /***/ "fg8p":
@@ -301036,6 +306484,26 @@ function updateRateLimits(limits, headers, now) {
 
 /***/ }),
 
+/***/ "gPjO":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _ListItem = _interopRequireDefault(__webpack_require__("XxCo"));
+
+var _default = _ListItem.default;
+exports.default = _default;
+
+/***/ }),
+
 /***/ "gQ/p":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -319455,6 +324923,33 @@ function basePickBy(object, paths, predicate) {
 module.exports = basePickBy;
 
 
+/***/ }),
+
+/***/ "iftL":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getUTCISOWeek; });
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YADU");
+/* harmony import */ var _startOfUTCISOWeek_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("6/aj");
+/* harmony import */ var _startOfUTCISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("4195");
+/* harmony import */ var _requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("/1sL");
+
+
+
+
+var MILLISECONDS_IN_WEEK = 604800000;
+function getUTCISOWeek(dirtyDate) {
+  Object(_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_3__["default"])(1, arguments);
+  var date = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate);
+  var diff = Object(_startOfUTCISOWeek_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(date).getTime() - Object(_startOfUTCISOWeekYear_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(date).getTime(); // Round the number of days to the nearest integer
+  // because the number of milliseconds in a week is not constant
+  // (e.g. it's different in the week of the daylight saving time clock shift)
+
+  return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;
+}
+
 /***/ }),
 
 /***/ "ijM1":
@@ -331210,6 +336705,51 @@ exports.FetchError = FetchError;
 
 /***/ }),
 
+/***/ "kxDT":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _slicedToArray2 = _interopRequireDefault(__webpack_require__("J4zp"));
+
+var _react = __webpack_require__("q1tI");
+
+var useLocalState = function useLocalState(key, initialState) {
+  var _useState = (0, _react.useState)(function () {
+    var item = localStorage.getItem(key);
+
+    try {
+      return item !== null ? JSON.parse(item) : initialState;
+    } catch (e) {
+      return initialState;
+    }
+  }),
+      _useState2 = (0, _slicedToArray2.default)(_useState, 2),
+      state = _useState2[0],
+      setState = _useState2[1];
+
+  var setLocalState = (0, _react.useCallback)(function (newState) {
+    setState(newState);
+  }, [setState]);
+  (0, _react.useEffect)(function () {
+    localStorage.setItem(key, JSON.stringify(state));
+  }, [key, state]);
+  return [state, setLocalState];
+};
+
+var _default = useLocalState;
+exports.default = _default;
+
+/***/ }),
+
 /***/ "kxw0":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -342244,6 +347784,63 @@ exports.hasExtensionInstalledAttribute = hasExtensionInstalledAttribute;
 
 /***/ }),
 
+/***/ "m7/o":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return isValid; });
+/* harmony import */ var _isDate_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("Hf20");
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("YADU");
+/* harmony import */ var _lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("/1sL");
+
+
+
+/**
+ * @name isValid
+ * @category Common Helpers
+ * @summary Is the given date valid?
+ *
+ * @description
+ * Returns false if argument is Invalid Date and true otherwise.
+ * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
+ * Invalid Date is a Date, whose time value is NaN.
+ *
+ * Time value of Date: http://es5.github.io/#x15.9.1.1
+ *
+ * @param {*} date - the date to check
+ * @returns {Boolean} the date is valid
+ * @throws {TypeError} 1 argument required
+ *
+ * @example
+ * // For the valid date:
+ * const result = isValid(new Date(2014, 1, 31))
+ * //=> true
+ *
+ * @example
+ * // For the value, convertable into a date:
+ * const result = isValid(1393804800000)
+ * //=> true
+ *
+ * @example
+ * // For the invalid date:
+ * const result = isValid(new Date(''))
+ * //=> false
+ */
+
+function isValid(dirtyDate) {
+  Object(_lib_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(1, arguments);
+
+  if (!Object(_isDate_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate) && typeof dirtyDate !== 'number') {
+    return false;
+  }
+
+  var date = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(dirtyDate);
+  return !isNaN(Number(date));
+}
+
+/***/ }),
+
 /***/ "m7nI":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -346076,6 +351673,41 @@ var tan30 = Math.sqrt(1 / 3),
 });
 
 
+/***/ }),
+
+/***/ "msdp":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return startOfUTCWeek; });
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YADU");
+/* harmony import */ var _requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/1sL");
+/* harmony import */ var _toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("R6KR");
+/* harmony import */ var _defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("rEtr");
+
+
+
+
+function startOfUTCWeek(dirtyDate, options) {
+  var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
+
+  Object(_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(1, arguments);
+  var defaultOptions = Object(_defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_3__["getDefaultOptions"])();
+  var weekStartsOn = Object(_toInteger_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN
+
+  if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
+    throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
+  }
+
+  var date = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate);
+  var day = date.getUTCDay();
+  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
+  date.setUTCDate(date.getUTCDate() - diff);
+  date.setUTCHours(0, 0, 0, 0);
+  return date;
+}
+
 /***/ }),
 
 /***/ "mthE":
@@ -348361,6 +353993,49 @@ function createClientReportEnvelope(discarded_events, dsn, timestamp) {
 
 /***/ }),
 
+/***/ "nYDF":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _lib_formatDistance_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YDRG");
+/* harmony import */ var _lib_formatLong_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("P9rk");
+/* harmony import */ var _lib_formatRelative_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("36QO");
+/* harmony import */ var _lib_localize_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("Bs1I");
+/* harmony import */ var _lib_match_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("IgO1");
+
+
+
+
+
+
+/**
+ * @type {Locale}
+ * @category Locales
+ * @summary English locale (United States).
+ * @language English
+ * @iso-639-2 eng
+ * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}
+ * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}
+ */
+var locale = {
+  code: 'en-US',
+  formatDistance: _lib_formatDistance_index_js__WEBPACK_IMPORTED_MODULE_0__["default"],
+  formatLong: _lib_formatLong_index_js__WEBPACK_IMPORTED_MODULE_1__["default"],
+  formatRelative: _lib_formatRelative_index_js__WEBPACK_IMPORTED_MODULE_2__["default"],
+  localize: _lib_localize_index_js__WEBPACK_IMPORTED_MODULE_3__["default"],
+  match: _lib_match_index_js__WEBPACK_IMPORTED_MODULE_4__["default"],
+  options: {
+    weekStartsOn: 0
+    /* Sunday */
+    ,
+    firstWeekContainsDate: 1
+  }
+};
+/* harmony default export */ __webpack_exports__["default"] = (locale);
+
+/***/ }),
+
 /***/ "nYVt":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -377482,6 +383157,55 @@ __webpack_require__.r(__webpack_exports__);
 });
 
 
+/***/ }),
+
+/***/ "qP+C":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getUTCWeekYear; });
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YADU");
+/* harmony import */ var _requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/1sL");
+/* harmony import */ var _startOfUTCWeek_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("msdp");
+/* harmony import */ var _toInteger_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("R6KR");
+/* harmony import */ var _defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("rEtr");
+
+
+
+
+
+function getUTCWeekYear(dirtyDate, options) {
+  var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
+
+  Object(_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(1, arguments);
+  var date = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate);
+  var year = date.getUTCFullYear();
+  var defaultOptions = Object(_defaultOptions_index_js__WEBPACK_IMPORTED_MODULE_4__["getDefaultOptions"])();
+  var firstWeekContainsDate = Object(_toInteger_index_js__WEBPACK_IMPORTED_MODULE_3__["default"])((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN
+
+  if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
+    throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
+  }
+
+  var firstWeekOfNextYear = new Date(0);
+  firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);
+  firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);
+  var startOfNextYear = Object(_startOfUTCWeek_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(firstWeekOfNextYear, options);
+  var firstWeekOfThisYear = new Date(0);
+  firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);
+  firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);
+  var startOfThisYear = Object(_startOfUTCWeek_index_js__WEBPACK_IMPORTED_MODULE_2__["default"])(firstWeekOfThisYear, options);
+
+  if (date.getTime() >= startOfNextYear.getTime()) {
+    return year + 1;
+  } else if (date.getTime() >= startOfThisYear.getTime()) {
+    return year;
+  } else {
+    return year - 1;
+  }
+}
+
 /***/ }),
 
 /***/ "qPBE":
@@ -379742,6 +385466,23 @@ function setToArray(set) {
 module.exports = setToArray;
 
 
+/***/ }),
+
+/***/ "rEtr":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultOptions", function() { return getDefaultOptions; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDefaultOptions", function() { return setDefaultOptions; });
+var defaultOptions = {};
+function getDefaultOptions() {
+  return defaultOptions;
+}
+function setDefaultOptions(newOptions) {
+  defaultOptions = newOptions;
+}
+
 /***/ }),
 
 /***/ "rF2o":
@@ -385431,6 +391172,63 @@ if (false) {}
 
 /***/ }),
 
+/***/ "sX9o":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return buildMatchFn; });
+function buildMatchFn(args) {
+  return function (string) {
+    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+    var width = options.width;
+    var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
+    var matchResult = string.match(matchPattern);
+
+    if (!matchResult) {
+      return null;
+    }
+
+    var matchedString = matchResult[0];
+    var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
+    var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {
+      return pattern.test(matchedString);
+    }) : findKey(parsePatterns, function (pattern) {
+      return pattern.test(matchedString);
+    });
+    var value;
+    value = args.valueCallback ? args.valueCallback(key) : key;
+    value = options.valueCallback ? options.valueCallback(value) : value;
+    var rest = string.slice(matchedString.length);
+    return {
+      value: value,
+      rest: rest
+    };
+  };
+}
+
+function findKey(object, predicate) {
+  for (var key in object) {
+    if (object.hasOwnProperty(key) && predicate(object[key])) {
+      return key;
+    }
+  }
+
+  return undefined;
+}
+
+function findIndex(array, predicate) {
+  for (var key = 0; key < array.length; key++) {
+    if (predicate(array[key])) {
+      return key;
+    }
+  }
+
+  return undefined;
+}
+
+/***/ }),
+
 /***/ "sXBl":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
@@ -392137,6 +397935,110 @@ function getTransitionProps(props, options) {
 
 /***/ }),
 
+/***/ "tO31":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {
+  switch (pattern) {
+    case 'P':
+      return formatLong.date({
+        width: 'short'
+      });
+
+    case 'PP':
+      return formatLong.date({
+        width: 'medium'
+      });
+
+    case 'PPP':
+      return formatLong.date({
+        width: 'long'
+      });
+
+    case 'PPPP':
+    default:
+      return formatLong.date({
+        width: 'full'
+      });
+  }
+};
+
+var timeLongFormatter = function timeLongFormatter(pattern, formatLong) {
+  switch (pattern) {
+    case 'p':
+      return formatLong.time({
+        width: 'short'
+      });
+
+    case 'pp':
+      return formatLong.time({
+        width: 'medium'
+      });
+
+    case 'ppp':
+      return formatLong.time({
+        width: 'long'
+      });
+
+    case 'pppp':
+    default:
+      return formatLong.time({
+        width: 'full'
+      });
+  }
+};
+
+var dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {
+  var matchResult = pattern.match(/(P+)(p+)?/) || [];
+  var datePattern = matchResult[1];
+  var timePattern = matchResult[2];
+
+  if (!timePattern) {
+    return dateLongFormatter(pattern, formatLong);
+  }
+
+  var dateTimeFormat;
+
+  switch (datePattern) {
+    case 'P':
+      dateTimeFormat = formatLong.dateTime({
+        width: 'short'
+      });
+      break;
+
+    case 'PP':
+      dateTimeFormat = formatLong.dateTime({
+        width: 'medium'
+      });
+      break;
+
+    case 'PPP':
+      dateTimeFormat = formatLong.dateTime({
+        width: 'long'
+      });
+      break;
+
+    case 'PPPP':
+    default:
+      dateTimeFormat = formatLong.dateTime({
+        width: 'full'
+      });
+      break;
+  }
+
+  return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));
+};
+
+var longFormatters = {
+  p: timeLongFormatter,
+  P: dateTimeLongFormatter
+};
+/* harmony default export */ __webpack_exports__["default"] = (longFormatters);
+
+/***/ }),
+
 /***/ "tO8Z":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {
 
@@ -403527,6 +409429,121 @@ __webpack_require__.r(__webpack_exports__);
 
 
 
+
+/***/ }),
+
+/***/ "vEVt":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _extends2 = _interopRequireDefault(__webpack_require__("pVnL"));
+
+var _objectWithoutProperties2 = _interopRequireDefault(__webpack_require__("QILm"));
+
+var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
+
+var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
+
+var _classnames = _interopRequireDefault(__webpack_require__("d2Ux"));
+
+var _ListItemText = _interopRequireDefault(__webpack_require__("uJTZ"));
+
+var _once = _interopRequireDefault(__webpack_require__("HZII"));
+
+function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
+
+function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
+
+var _excluded = ["primaryText", "secondaryText", "primaryTextClassName", "secondaryTextClassName", "primary", "secondary", "ellipsis"];
+
+function ownKeys(object, enumerableOnly) {
+  var keys = Object.keys(object);
+
+  if (Object.getOwnPropertySymbols) {
+    var symbols = Object.getOwnPropertySymbols(object);
+    enumerableOnly && (symbols = symbols.filter(function (sym) {
+      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
+    })), keys.push.apply(keys, symbols);
+  }
+
+  return keys;
+}
+
+function _objectSpread(target) {
+  for (var i = 1; i < arguments.length; i++) {
+    var source = null != arguments[i] ? arguments[i] : {};
+    i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
+      (0, _defineProperty2.default)(target, key, source[key]);
+    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
+      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
+    });
+  }
+
+  return target;
+}
+
+var logDeprecatedWarning = (0, _once.default)(function () {
+  console.warn('primaryText/primaryTextClassName and secondaryText/secondaryTextClassName are deprecated. Please use directly the primary prop : primary={<span className="u-error">Error</span>} for example.');
+});
+var defaultSecondaryTypographyProps = {
+  variant: 'caption'
+};
+var ellipsisClassNames = 'u-db u-ellipsis';
+
+var getTypographyProp = function getTypographyProp(props, className, ellipsis) {
+  return !className && !ellipsis ? props : _objectSpread({
+    classes: {
+      root: (0, _classnames.default)(className, ellipsis && ellipsisClassNames)
+    }
+  }, props);
+};
+
+var ListItemText = function ListItemText(props) {
+  var primaryText = props.primaryText,
+      secondaryText = props.secondaryText,
+      primaryTextClassName = props.primaryTextClassName,
+      secondaryTextClassName = props.secondaryTextClassName,
+      primaryProp = props.primary,
+      secondaryProp = props.secondary,
+      ellipsis = props.ellipsis,
+      rest = (0, _objectWithoutProperties2.default)(props, _excluded);
+  (0, _react.useEffect)(function () {
+    if (primaryText || secondaryText || primaryTextClassName || secondaryTextClassName) {
+      logDeprecatedWarning();
+    }
+  }, [primaryText, secondaryText, primaryTextClassName, secondaryTextClassName]);
+  var primary = primaryProp ? primaryProp : primaryText;
+  var secondary = secondaryProp ? secondaryProp : secondaryText;
+  var primaryTypographyProps = props.primaryTypographyProps,
+      secondaryTypographyProps = props.secondaryTypographyProps;
+  primaryTypographyProps = (0, _react.useMemo)(function () {
+    return getTypographyProp(primaryTypographyProps, primaryTextClassName, ellipsis);
+  }, [primaryTypographyProps, primaryTextClassName, ellipsis]);
+  secondaryTypographyProps = (0, _react.useMemo)(function () {
+    return getTypographyProp(secondaryTypographyProps || defaultSecondaryTypographyProps, secondaryTextClassName, ellipsis);
+  }, [secondaryTypographyProps, secondaryTextClassName, ellipsis]);
+  return /*#__PURE__*/_react.default.createElement(_ListItemText.default, (0, _extends2.default)({
+    primary: primary,
+    secondary: secondary,
+    primaryTypographyProps: primaryTypographyProps,
+    secondaryTypographyProps: secondaryTypographyProps
+  }, rest));
+};
+
+ListItemText.defaultProps = {
+  ellipsis: true
+};
+var _default = ListItemText;
+exports.default = _default;
 
 /***/ }),
 
@@ -411366,6 +417383,66 @@ function createEventEnvelopeHeaders(
 //# sourceMappingURL=envelope.js.map
 
 
+/***/ }),
+
+/***/ "weSZ":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.ListGridItem = exports.NavSecondaryAction = void 0;
+
+var _react = _interopRequireDefault(__webpack_require__("q1tI"));
+
+var _Icon = _interopRequireDefault(__webpack_require__("y6ex"));
+
+var _Right = _interopRequireDefault(__webpack_require__("QaI8"));
+
+var _ListItemSecondaryAction = _interopRequireDefault(__webpack_require__("lHh/"));
+
+var _Grid = _interopRequireDefault(__webpack_require__("GkiB"));
+
+/**
+ * @type {Object.<string, React.CSSProperties>}
+ * @private
+ */
+var styles = {
+  listGridItem: {
+    height: '100%',
+    overflow: 'scroll',
+    flexBasis: 240,
+    flexShrink: 0,
+    flexGrow: 0,
+    boxShadow: '4px 0 8px rgba(0, 0, 0, 0.10)'
+  }
+};
+
+var NavSecondaryAction = function NavSecondaryAction() {
+  return /*#__PURE__*/_react.default.createElement(_ListItemSecondaryAction.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
+    icon: _Right.default,
+    className: "u-mr-half",
+    color: "var(--secondaryTextColor)"
+  }));
+};
+
+exports.NavSecondaryAction = NavSecondaryAction;
+
+var ListGridItem = function ListGridItem(_ref) {
+  var children = _ref.children;
+  return /*#__PURE__*/_react.default.createElement(_Grid.default, {
+    item: true,
+    style: styles.listGridItem
+  }, children);
+};
+
+exports.ListGridItem = ListGridItem;
+
 /***/ }),
 
 /***/ "wfBp":
@@ -413248,6 +419325,47 @@ var TableHead = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__["forwardRef"](fu
   name: 'MuiTableHead'
 })(TableHead));
 
+/***/ }),
+
+/***/ "x2AN":
+/***/ (function(module, exports, __webpack_require__) {
+
+var arrayEvery = __webpack_require__("ZirO"),
+    createOver = __webpack_require__("4M3m");
+
+/**
+ * Creates a function that checks if **all** of the `predicates` return
+ * truthy when invoked with the arguments it receives.
+ *
+ * Following shorthands are possible for providing predicates.
+ * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.
+ * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.
+ *
+ * @static
+ * @memberOf _
+ * @since 4.0.0
+ * @category Util
+ * @param {...(Function|Function[])} [predicates=[_.identity]]
+ *  The predicates to check.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var func = _.overEvery([Boolean, isFinite]);
+ *
+ * func('1');
+ * // => true
+ *
+ * func(null);
+ * // => false
+ *
+ * func(NaN);
+ * // => false
+ */
+var overEvery = createOver(arrayEvery);
+
+module.exports = overEvery;
+
+
 /***/ }),
 
 /***/ "x3Ob":
@@ -414336,6 +420454,30 @@ var TableFooter = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__["forwardRef"](
 
 /***/ }),
 
+/***/ "xMHU":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return getUTCDayOfYear; });
+/* harmony import */ var _toDate_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("YADU");
+/* harmony import */ var _requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("/1sL");
+
+
+var MILLISECONDS_IN_DAY = 86400000;
+function getUTCDayOfYear(dirtyDate) {
+  Object(_requiredArgs_index_js__WEBPACK_IMPORTED_MODULE_1__["default"])(1, arguments);
+  var date = Object(_toDate_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(dirtyDate);
+  var timestamp = date.getTime();
+  date.setUTCMonth(0, 1);
+  date.setUTCHours(0, 0, 0, 0);
+  var startOfYearTimestamp = date.getTime();
+  var difference = timestamp - startOfYearTimestamp;
+  return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;
+}
+
+/***/ }),
+
 /***/ "xMJQ":
 /***/ (function(module, exports, __webpack_require__) {
 
@@ -414630,6 +420772,99 @@ module.exports = function getDomain(validHosts, suffix, hostname) {
 };
 
 
+/***/ }),
+
+/***/ "xOA3":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("BI0X");
+
+/*
+ * |     | Unit                           |     | Unit                           |
+ * |-----|--------------------------------|-----|--------------------------------|
+ * |  a  | AM, PM                         |  A* |                                |
+ * |  d  | Day of month                   |  D  |                                |
+ * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |
+ * |  m  | Minute                         |  M  | Month                          |
+ * |  s  | Second                         |  S  | Fraction of second             |
+ * |  y  | Year (abs)                     |  Y  |                                |
+ *
+ * Letters marked by * are not implemented but reserved by Unicode standard.
+ */
+
+var formatters = {
+  // Year
+  y: function y(date, token) {
+    // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens
+    // | Year     |     y | yy |   yyy |  yyyy | yyyyy |
+    // |----------|-------|----|-------|-------|-------|
+    // | AD 1     |     1 | 01 |   001 |  0001 | 00001 |
+    // | AD 12    |    12 | 12 |   012 |  0012 | 00012 |
+    // | AD 123   |   123 | 23 |   123 |  0123 | 00123 |
+    // | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |
+    // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |
+    var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)
+
+    var year = signedYear > 0 ? signedYear : 1 - signedYear;
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(token === 'yy' ? year % 100 : year, token.length);
+  },
+  // Month
+  M: function M(date, token) {
+    var month = date.getUTCMonth();
+    return token === 'M' ? String(month + 1) : Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(month + 1, 2);
+  },
+  // Day of the month
+  d: function d(date, token) {
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(date.getUTCDate(), token.length);
+  },
+  // AM or PM
+  a: function a(date, token) {
+    var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';
+
+    switch (token) {
+      case 'a':
+      case 'aa':
+        return dayPeriodEnumValue.toUpperCase();
+
+      case 'aaa':
+        return dayPeriodEnumValue;
+
+      case 'aaaaa':
+        return dayPeriodEnumValue[0];
+
+      case 'aaaa':
+      default:
+        return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';
+    }
+  },
+  // Hour [1-12]
+  h: function h(date, token) {
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(date.getUTCHours() % 12 || 12, token.length);
+  },
+  // Hour [0-23]
+  H: function H(date, token) {
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(date.getUTCHours(), token.length);
+  },
+  // Minute
+  m: function m(date, token) {
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(date.getUTCMinutes(), token.length);
+  },
+  // Second
+  s: function s(date, token) {
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(date.getUTCSeconds(), token.length);
+  },
+  // Fraction of second
+  S: function S(date, token) {
+    var numberOfDigits = token.length;
+    var milliseconds = date.getUTCMilliseconds();
+    var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));
+    return Object(_addLeadingZeros_index_js__WEBPACK_IMPORTED_MODULE_0__["default"])(fractionalSeconds, token.length);
+  }
+};
+/* harmony default export */ __webpack_exports__["default"] = (formatters);
+
 /***/ }),
 
 /***/ "xOP2":
@@ -419769,6 +426004,19 @@ exports.useCozyTheme = useCozyTheme;
 var _default = CozyTheme;
 exports.default = _default;
 
+/***/ }),
+
+/***/ "yFcA":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = function isObject(x) {
+	return typeof x === 'object' && x !== null;
+};
+
+
 /***/ }),
 
 /***/ "yGTc":
@@ -426682,6 +432930,32 @@ if (false) {}
 
 /***/ }),
 
+/***/ "yux9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return buildMatchPatternFn; });
+function buildMatchPatternFn(args) {
+  return function (string) {
+    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+    var matchResult = string.match(args.matchPattern);
+    if (!matchResult) return null;
+    var matchedString = matchResult[0];
+    var parseResult = string.match(args.parsePattern);
+    if (!parseResult) return null;
+    var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
+    value = options.valueCallback ? options.valueCallback(value) : value;
+    var rest = string.slice(matchedString.length);
+    return {
+      value: value,
+      rest: rest
+    };
+  };
+}
+
+/***/ }),
+
 /***/ "yv+Y":
 /***/ (function(module, __webpack_exports__, __webpack_require__) {