# Stats from current release

Default Server Mode (Decrease detected ✓)

General Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| buildDuration | 13.9s | 14.8s | ⚠ +866ms |
| nodeModulesSize | 48.9 MB | 48.9 MB | -12.8 kB |

Client Bundles (main, webpack, commons) Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| main-HASH.js gzip | 6.43 kB | 5.11 kB | -1.32 kB |
| webpack-HASH.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..54d3.js gzip | 4.68 kB | 4.68 kB | ✓ |
| commons.HASH.js gzip | 4.06 kB | 4.06 kB | ✓ |
| de003c3a9d30..6ef5.js gzip | 13.8 kB | 13.7 kB | -135 B |
| framework.HASH.js gzip | 39.5 kB | 39.1 kB | -311 B |
| Overall change | 69.2 kB | 67.4 kB | -1.77 kB |

Client Bundles (main, webpack, commons) Modern Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| main-HASH.module.js gzip | 5.41 kB | 4.17 kB | -1.24 kB |
| webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..dule.js gzip | 5.56 kB | 5.56 kB | ✓ |
| de003c3a9d30..dule.js gzip | 12.6 kB | 12.5 kB | -114 B |
| framework.HA..dule.js gzip | 39.4 kB | 39.1 kB | -310 B |
| Overall change | 63.7 kB | 62.1 kB | -1.67 kB |

Legacy Client Bundles (polyfills)

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| polyfills-HASH.js gzip | 4.76 kB | 4.76 kB | ✓ |
| Overall change | 4.76 kB | 4.76 kB | ✓ |

Client Pages Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| _app.js gzip | 1.33 kB | 1.33 kB | ✓ |
| _error.js gzip | 4.07 kB | 4.07 kB | ✓ |
| hooks.js gzip | 779 B | 779 B | ✓ |
| index.js gzip | 222 B | 222 B | ✓ |
| link.js gzip | 2.93 kB | 2.9 kB | -28 B |
| routerDirect.js gzip | 283 B | 283 B | ✓ |
| withRouter.js gzip | 282 B | 282 B | ✓ |
| Overall change | 9.89 kB | 9.87 kB | -28 B |

Client Pages Modern Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| _app.module.js gzip | 757 B | 757 B | ✓ |
| _error.module.js gzip | 3.06 kB | 3.06 kB | ✓ |
| hooks.module.js gzip | 371 B | 371 B | ✓ |
| index.module.js gzip | 212 B | 212 B | ✓ |
| link.module.js gzip | 2.49 kB | 2.47 kB | -22 B |
| routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
| withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
| Overall change | 7.43 kB | 7.41 kB | -22 B |

Client Build Manifests

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| _buildManifest.js gzip | 61 B | 61 B | ✓ |
| _buildManife..dule.js gzip | 61 B | 61 B | ✓ |
| Overall change | 122 B | 122 B | ✓ |

Rendered Page Sizes Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| index.html gzip | 1.04 kB | 1.02 kB | -18 B |
| link.html gzip | 1.04 kB | 1.03 kB | -16 B |
| withRouter.html gzip | 1.03 kB | 1.01 kB | -19 B |
| Overall change | 3.11 kB | 3.06 kB | -53 B |

#### Diffs

Diff for link.js

```diff
@@ -445,12 +445,8 @@

       var _react = _interopRequireWildcard(__webpack_require__('q1tI'))

-      var _propTypes = _interopRequireDefault(__webpack_require__('17x9'))
-
       var _router = _interopRequireDefault(__webpack_require__('nOHt'))

-      var _rewriteUrlForExport = __webpack_require__('P5f7')
-
       var _utils = __webpack_require__('g/15')

       function isLocal(href) {
@@ -492,6 +488,7 @@
       var observer
       var listeners = new _map['default']()
       var IntersectionObserver = true ? window.IntersectionObserver : undefined
+      var prefetched = {}

       function getObserver() {
         // Return shared instance of IntersectionObserver if already created
@@ -658,10 +655,7 @@
               value: function handleRef(ref) {
                 var _this2 = this

-                var isPrefetched =
-                  _router['default'].router.pageLoader.prefetched[
-                    this.getHref()
-                  ]
+                var isPrefetched = prefetched[this.getHref()]

                 if (this.p && IntersectionObserver && ref && ref.tagName) {
                   this.cleanUpListeners()
@@ -683,7 +677,11 @@
               value: function prefetch() {
                 if (!this.p || false) return // Prefetch the JSON page if asked (only in the client)

-                _router['default'].prefetch(this.getHref())
+                var href = this.getHref()
+
+                _router['default'].prefetch(href)
+
+                prefetched[href] = true
               },
             },
             {
@@ -755,6 +753,7 @@
                 // "<page>/index.html" directly.

                 if (false) {
+                  var rewriteUrlForNextExport
                 }

                 return _react['default'].cloneElement(child, props)
@@ -765,10 +764,8 @@
           return Link
         })(_react.Component)

-      Link.propTypes = void 0
-
       if (false) {
-        var exact, warn
+        var exact, PropTypes, warn
       }

       var _default = Link
```

Diff for link.module.js

```diff
@@ -320,12 +320,8 @@

       var _react = _interopRequireWildcard(__webpack_require__('q1tI'))

-      var _propTypes = _interopRequireDefault(__webpack_require__('17x9'))
-
       var _router = _interopRequireDefault(__webpack_require__('nOHt'))

-      var _rewriteUrlForExport = __webpack_require__('P5f7')
-
       var _utils = __webpack_require__('g/15')

       function isLocal(href) {
@@ -367,6 +363,7 @@
       var observer
       var listeners = new _map.default()
       var IntersectionObserver = true ? window.IntersectionObserver : undefined
+      var prefetched = {}

       function getObserver() {
         // Return shared instance of IntersectionObserver if already created
@@ -500,8 +497,7 @@
         }

         handleRef(ref) {
-          var isPrefetched =
-            _router.default.router.pageLoader.prefetched[this.getHref()]
+          var isPrefetched = prefetched[this.getHref()]

           if (this.p && IntersectionObserver && ref && ref.tagName) {
             this.cleanUpListeners()
@@ -518,7 +514,11 @@
         prefetch() {
           if (!this.p || false) return // Prefetch the JSON page if asked (only in the client)

-          _router.default.prefetch(this.getHref())
+          var href = this.getHref()
+
+          _router.default.prefetch(href)
+
+          prefetched[href] = true
         }

         render() {
@@ -573,16 +573,15 @@
           // "<page>/index.html" directly.

           if (false) {
+            var rewriteUrlForNextExport
           }

           return _react.default.cloneElement(child, props)
         }
       }

-      Link.propTypes = void 0
-
       if (false) {
-        var exact, warn
+        var exact, PropTypes, warn
       }

       var _default = Link
```

Diff for de003c3a9d30..9a.module.js

```diff
@@ -1126,32 +1126,6 @@
       /***/
     },

-    /***/ P5f7: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      function rewriteUrlForNextExport(url) {
-        var [pathname, hash] = url.split('#') // tslint:disable-next-line
-
-        var [path, qs] = pathname.split('?')
-        path = path.replace(/\/$/, '') // Append a trailing slash if this path does not have an extension
-
-        if (!/\.[^/]+\/?$/.test(path)) path += '/'
-        if (qs) path += '?' + qs
-        if (hash) path += '#' + hash
-        return path
-      }
-
-      exports.rewriteUrlForNextExport = rewriteUrlForNextExport
-
-      /***/
-    },
-
     /***/ PBE1: /***/ function(module, exports, __webpack_require__) {
       'use strict'
       // https://github.com/tc39/proposal-promise-finally
@@ -1811,8 +1785,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var utils_1 = __webpack_require__('g/15')

-      var rewrite_url_for_export_1 = __webpack_require__('P5f7')
-
       var is_dynamic_1 = __webpack_require__('/jkW')

       var route_matcher_1 = __webpack_require__('gguc')
@@ -1970,7 +1942,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
         } // @deprecated backwards compatibility even though it's a private method.

         static _rewriteUrlForNextExport(url) {
-          return rewrite_url_for_export_1.rewriteUrlForNextExport(url)
+          if (false) {
+            var rewriteUrlForNextExport
+          } else {
+            return url
+          }
         }

         update(route, mod) {
@@ -2050,7 +2026,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               this.isSsr = false
             } // marking route changes as a navigation start entry

-            if (utils_1.SUPPORTS_PERFORMANCE_USER_TIMING) {
+            if (utils_1.ST) {
               performance.mark('routeChange')
             } // If url and as provided as an object representation,
             // we'll format them into the string version here.
@@ -2064,6 +2040,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             // "<page>/index.html" directly for the SSR page.

             if (false) {
+              var rewriteUrlForNextExport
             }

             this.abortComponentLoad(as) // If the url change is only related to a hash change
@@ -2377,13 +2354,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               }

               return
-            } // @ts-ignore pathname is always defined
-
-            var route = toRoute(pathname) // Prefetch is not supported in development mode because it would trigger on-demand-entries
+            } // Prefetch is not supported in development mode because it would trigger on-demand-entries

             if (false) {
-            }
+            } // @ts-ignore pathname is always defined

+            var route = toRoute(pathname)
             this.pageLoader.prefetch(route).then(resolve, reject)
           })
         }
@@ -2609,9 +2585,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       }

       exports.formatWithValidation = formatWithValidation
-      exports.SUPPORTS_PERFORMANCE = typeof performance !== 'undefined'
-      exports.SUPPORTS_PERFORMANCE_USER_TIMING =
-        exports.SUPPORTS_PERFORMANCE &&
+      exports.SP = typeof performance !== 'undefined'
+      exports.ST =
+        exports.SP &&
         typeof performance.mark === 'function' &&
         typeof performance.measure === 'function'
```

Diff for de003c3a9d30..5fa7da92f.js

```diff
@@ -765,41 +765,6 @@
       /***/
     },

-    /***/ P5f7: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _slicedToArray = __webpack_require__('8+Nu')
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      function rewriteUrlForNextExport(url) {
-        var _url$split = url.split('#'),
-          _url$split2 = _slicedToArray(_url$split, 2),
-          pathname = _url$split2[0],
-          hash = _url$split2[1] // tslint:disable-next-line
-
-        var _pathname$split = pathname.split('?'),
-          _pathname$split2 = _slicedToArray(_pathname$split, 2),
-          path = _pathname$split2[0],
-          qs = _pathname$split2[1]
-
-        path = path.replace(/\/$/, '') // Append a trailing slash if this path does not have an extension
-
-        if (!/\.[^/]+\/?$/.test(path)) path += '/'
-        if (qs) path += '?' + qs
-        if (hash) path += '#' + hash
-        return path
-      }
-
-      exports.rewriteUrlForNextExport = rewriteUrlForNextExport
-
-      /***/
-    },
-
     /***/ PBE1: /***/ function(module, exports, __webpack_require__) {
       'use strict'
       // https://github.com/tc39/proposal-promise-finally
@@ -1475,8 +1440,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var utils_1 = __webpack_require__('g/15')

-      var rewrite_url_for_export_1 = __webpack_require__('P5f7')
-
       var is_dynamic_1 = __webpack_require__('/jkW')

       var route_matcher_1 = __webpack_require__('gguc')
@@ -1740,7 +1703,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                       _this2.isSsr = false
                     } // marking route changes as a navigation start entry

-                    if (utils_1.SUPPORTS_PERFORMANCE_USER_TIMING) {
+                    if (utils_1.ST) {
                       performance.mark('routeChange')
                     } // If url and as provided as an object representation,
                     // we'll format them into the string version here.
@@ -1756,6 +1719,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     // "<page>/index.html" directly for the SSR page.

                     if (false) {
+                      var rewriteUrlForNextExport
                     }

                     _this2.abortComponentLoad(as) // If the url change is only related to a hash change
@@ -2125,12 +2089,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                       }

                       return
-                    } // @ts-ignore pathname is always defined
-
-                    var route = toRoute(pathname) // Prefetch is not supported in development mode because it would trigger on-demand-entries
+                    } // Prefetch is not supported in development mode because it would trigger on-demand-entries

                     if (false) {
-                    }
+                    } // @ts-ignore pathname is always defined
+
+                    var route = toRoute(pathname)

                     _this4.pageLoader.prefetch(route).then(resolve, reject)
                   })
@@ -2257,7 +2221,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               {
                 key: '_rewriteUrlForNextExport',
                 value: function _rewriteUrlForNextExport(url) {
-                  return rewrite_url_for_export_1.rewriteUrlForNextExport(url)
+                  if (false) {
+                    var rewriteUrlForNextExport
+                  } else {
+                    return url
+                  }
                 },
               },
             ]
@@ -2532,9 +2500,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       }

       exports.formatWithValidation = formatWithValidation
-      exports.SUPPORTS_PERFORMANCE = typeof performance !== 'undefined'
-      exports.SUPPORTS_PERFORMANCE_USER_TIMING =
-        exports.SUPPORTS_PERFORMANCE &&
+      exports.SP = typeof performance !== 'undefined'
+      exports.ST =
+        exports.SP &&
         typeof performance.mark === 'function' &&
         typeof performance.measure === 'function'
```

Diff for framework.HASH.js

```diff
@@ -432,100 +432,6 @@
       /***/
     },

-    /***/ '16Al': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = __webpack_require__('WbBG')
-
-      function emptyFunction() {}
-      function emptyFunctionWithReset() {}
-      emptyFunctionWithReset.resetWarningCache = emptyFunction
-
-      module.exports = function() {
-        function shim(
-          props,
-          propName,
-          componentName,
-          location,
-          propFullName,
-          secret
-        ) {
-          if (secret === ReactPropTypesSecret) {
-            // It is still safe when called from React.
-            return
-          }
-          var err = new Error(
-            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-              'Use PropTypes.checkPropTypes() to call them. ' +
-              'Read more at http://fb.me/use-check-prop-types'
-          )
-          err.name = 'Invariant Violation'
-          throw err
-        }
-        shim.isRequired = shim
-        function getShim() {
-          return shim
-        }
-        // Important!
-        // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
-        var ReactPropTypes = {
-          array: shim,
-          bool: shim,
-          func: shim,
-          number: shim,
-          object: shim,
-          string: shim,
-          symbol: shim,
-
-          any: shim,
-          arrayOf: getShim,
-          element: shim,
-          elementType: shim,
-          instanceOf: getShim,
-          node: shim,
-          objectOf: getShim,
-          oneOf: getShim,
-          oneOfType: getShim,
-          shape: getShim,
-          exact: getShim,
-
-          checkPropTypes: emptyFunctionWithReset,
-          resetWarningCache: emptyFunction,
-        }
-
-        ReactPropTypes.PropTypes = ReactPropTypes
-
-        return ReactPropTypes
-      }
-
-      /***/
-    },
-
-    /***/ '17x9': /***/ function(module, exports, __webpack_require__) {
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      if (false) {
-        var throwOnDirectAccess, ReactIs
-      } else {
-        // By explicitly using `prop-types` you are opting into new production behavior.
-        // http://fb.me/prop-types-in-prod
-        module.exports = __webpack_require__('16Al')()
-      }
-
-      /***/
-    },
-
     /***/ QCnb: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -537,22 +443,6 @@
       /***/
     },

-    /***/ WbBG: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'
-
-      module.exports = ReactPropTypesSecret
-
-      /***/
-    },
-
     /***/ i8i4: /***/ function(module, exports, __webpack_require__) {
       'use strict'
```

Diff for framework.HASH.module.js

```diff
@@ -432,100 +432,6 @@
       /***/
     },

-    /***/ '16Al': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = __webpack_require__('WbBG')
-
-      function emptyFunction() {}
-      function emptyFunctionWithReset() {}
-      emptyFunctionWithReset.resetWarningCache = emptyFunction
-
-      module.exports = function() {
-        function shim(
-          props,
-          propName,
-          componentName,
-          location,
-          propFullName,
-          secret
-        ) {
-          if (secret === ReactPropTypesSecret) {
-            // It is still safe when called from React.
-            return
-          }
-          var err = new Error(
-            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-              'Use PropTypes.checkPropTypes() to call them. ' +
-              'Read more at http://fb.me/use-check-prop-types'
-          )
-          err.name = 'Invariant Violation'
-          throw err
-        }
-        shim.isRequired = shim
-        function getShim() {
-          return shim
-        }
-        // Important!
-        // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
-        var ReactPropTypes = {
-          array: shim,
-          bool: shim,
-          func: shim,
-          number: shim,
-          object: shim,
-          string: shim,
-          symbol: shim,
-
-          any: shim,
-          arrayOf: getShim,
-          element: shim,
-          elementType: shim,
-          instanceOf: getShim,
-          node: shim,
-          objectOf: getShim,
-          oneOf: getShim,
-          oneOfType: getShim,
-          shape: getShim,
-          exact: getShim,
-
-          checkPropTypes: emptyFunctionWithReset,
-          resetWarningCache: emptyFunction,
-        }
-
-        ReactPropTypes.PropTypes = ReactPropTypes
-
-        return ReactPropTypes
-      }
-
-      /***/
-    },
-
-    /***/ '17x9': /***/ function(module, exports, __webpack_require__) {
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      if (false) {
-        var throwOnDirectAccess, ReactIs
-      } else {
-        // By explicitly using `prop-types` you are opting into new production behavior.
-        // http://fb.me/prop-types-in-prod
-        module.exports = __webpack_require__('16Al')()
-      }
-
-      /***/
-    },
-
     /***/ QCnb: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -537,22 +443,6 @@
       /***/
     },

-    /***/ WbBG: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'
-
-      module.exports = ReactPropTypesSecret
-
-      /***/
-    },
-
     /***/ i8i4: /***/ function(module, exports, __webpack_require__) {
       'use strict'
```

Diff for main-HASH.js

```diff
@@ -95,87 +95,6 @@
       /***/
     },

-    /***/ '/h46': /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
-      __webpack_require__('cHUd')('Map')
-
-      /***/
-    },
-
-    /***/ '0IRE': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Map = __webpack_require__('LX0d')
-
-      var _classCallCheck = __webpack_require__('/HRN')
-
-      var _createClass = __webpack_require__('WaGi')
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      var DataManager =
-        /*#__PURE__*/
-        (function() {
-          function DataManager(data) {
-            _classCallCheck(this, DataManager)
-
-            this.data = new _Map(data)
-          }
-
-          _createClass(DataManager, [
-            {
-              key: 'getData',
-              value: function getData() {
-                return this.data
-              },
-            },
-            {
-              key: 'get',
-              value: function get(key) {
-                return this.data.get(key)
-              },
-            },
-            {
-              key: 'set',
-              value: function set(key, value) {
-                this.data.set(key, value)
-              },
-            },
-            {
-              key: 'overwrite',
-              value: function overwrite(data) {
-                this.data = new _Map(data)
-              },
-            },
-          ])
-
-          return DataManager
-        })()
-
-      exports.DataManager = DataManager
-
-      /***/
-    },
-
-    /***/ '8iia': /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var classof = __webpack_require__('QMMT')
-      var from = __webpack_require__('RRc/')
-      module.exports = function(NAME) {
-        return function toJSON() {
-          if (classof(this) != NAME)
-            throw TypeError(NAME + "#toJSON isn't generic")
-          return from(this)
-        }
-      }
-
-      /***/
-    },
-
     /***/ ApPD: /***/ function(module, exports, __webpack_require__) {
       // 19.1.2.9 Object.getPrototypeOf(O)
       var toObject = __webpack_require__('JB68')
@@ -428,7 +347,7 @@
       exports.renderError = renderError
       exports[
         'default'
-      ] = exports.emitter = exports.ErrorComponent = exports.router = exports.dataManager = exports.version = void 0
+      ] = exports.emitter = exports.router = exports.version = void 0

       var _asyncToGenerator2 = _interopRequireDefault(
         __webpack_require__('+oT+')
@@ -460,12 +379,8 @@

       var _headManagerContext = __webpack_require__('FYa8')

-      var _dataManagerContext = __webpack_require__('qArv')
-
       var _routerContext = __webpack_require__('qOIg')

-      var _dataManager = __webpack_require__('0IRE')
-
       var _querystring = __webpack_require__('s4NR')

       var _isDynamic = __webpack_require__('/jkW')
@@ -479,7 +394,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.7'
+      var version = '9.1.8-canary.6'
       exports.version = version
       var props = data.props,
         err = data.err,
@@ -489,9 +404,6 @@
         assetPrefix = data.assetPrefix,
         runtimeConfig = data.runtimeConfig,
         dynamicIds = data.dynamicIds
-      var d = JSON.parse(window.__NEXT_DATA__.dataManager)
-      var dataManager = new _dataManager.DataManager(d)
-      exports.dataManager = dataManager
       var prefix = assetPrefix || '' // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time
       // So, this is how we do it in the client side at runtime

@@ -526,7 +438,6 @@
       var router
       exports.router = router
       var ErrorComponent
-      exports.ErrorComponent = ErrorComponent
       var Component
       var App, onPerfEntry

@@ -584,6 +495,7 @@
                       // client-side hydration. Your app should _never_ use this property.
                       // It may change at any time without notice.
                       _h: 1,
+                      shallow: true,
                     }
                   )
                 }
@@ -749,7 +661,6 @@
                                 Component: Component,
                                 props: props,
                                 err: err,
-                                emitter: emitter,
                               })
                             },
                           }
@@ -763,7 +674,6 @@
                           Component: Component,
                           props: props,
                           err: initialErr,
-                          emitter: emitter,
                         }
                         render(renderCtx)
                         return _context.abrupt('return', emitter)
@@ -885,7 +795,7 @@
                     return pageLoader.loadPage('/_error')

                   case 7:
-                    exports.ErrorComponent = ErrorComponent = _context3.sent
+                    ErrorComponent = _context3.sent
                     // In production we do a normal render with the `ErrorComponent` as component.
                     // If we've gotten here upon initial render, we can use the props from the server.
                     // Otherwise, we need to call `getInitialProps` on `App` before mounting.
@@ -946,7 +856,7 @@

       function renderReactElement(reactEl, domEl) {
         // mark start of hydrate/render
-        if (_utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
+        if (_utils.ST) {
           performance.mark('beforeRender')
         }

@@ -963,7 +873,7 @@
           }
         }

-        if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
+        if (onPerfEntry && _utils.ST) {
           if (!(PerformanceObserver in window)) {
             window.addEventListener('load', function() {
               performance.getEntriesByType('paint').forEach(onPerfEntry)
@@ -980,7 +890,7 @@
       }

       function markHydrateComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterHydrate') // mark end of hydration

         performance.measure(
@@ -999,7 +909,7 @@
       }

       function markRenderComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterRender') // mark end of render

         var navStartEntries = performance.getEntriesByName(
@@ -1064,17 +974,11 @@
               value: (0, _router.makePublicRouterInstance)(router),
             },
             _react['default'].createElement(
-              _dataManagerContext.DataManagerContext.Provider,
+              _headManagerContext.HeadManagerContext.Provider,
               {
-                value: dataManager,
+                value: headManager.updateHead,
               },
-              _react['default'].createElement(
-                _headManagerContext.HeadManagerContext.Provider,
-                {
-                  value: headManager.updateHead,
-                },
-                children
-              )
+              children
             )
           )
         )
@@ -1219,12 +1123,6 @@
       /***/
     },

-    /***/ LX0d: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UDep')
-
-      /***/
-    },
-
     /***/ N9n2: /***/ function(module, exports, __webpack_require__) {
       var _Object$create = __webpack_require__('SqZg')

@@ -1255,217 +1153,6 @@
       /***/
     },

-    /***/ 'RRc/': /***/ function(module, exports, __webpack_require__) {
-      var forOf = __webpack_require__('oioR')
-
-      module.exports = function(iter, ITERATOR) {
-        var result = []
-        forOf(iter, false, result.push, result, ITERATOR)
-        return result
-      }
-
-      /***/
-    },
-
-    /***/ UDep: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('wgeU')
-      __webpack_require__('FlQf')
-      __webpack_require__('bBy9')
-      __webpack_require__('g33z')
-      __webpack_require__('XLbu')
-      __webpack_require__('/h46')
-      __webpack_require__('dVTT')
-      module.exports = __webpack_require__('WEpk').Map
-
-      /***/
-    },
-
-    /***/ Wu5q: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var dP = __webpack_require__('2faE').f
-      var create = __webpack_require__('oVml')
-      var redefineAll = __webpack_require__('XJU/')
-      var ctx = __webpack_require__('2GTP')
-      var anInstance = __webpack_require__('EXMj')
-      var forOf = __webpack_require__('oioR')
-      var $iterDefine = __webpack_require__('MPFp')
-      var step = __webpack_require__('UO39')
-      var setSpecies = __webpack_require__('TJWN')
-      var DESCRIPTORS = __webpack_require__('jmDH')
-      var fastKey = __webpack_require__('6/1s').fastKey
-      var validate = __webpack_require__('n3ko')
-      var SIZE = DESCRIPTORS ? '_s' : 'size'
-
-      var getEntry = function(that, key) {
-        // fast case
-        var index = fastKey(key)
-        var entry
-        if (index !== 'F') return that._i[index]
-        // frozen object case
-        for (entry = that._f; entry; entry = entry.n) {
-          if (entry.k == key) return entry
-        }
-      }
-
-      module.exports = {
-        getConstructor: function(wrapper, NAME, IS_MAP, ADDER) {
-          var C = wrapper(function(that, iterable) {
-            anInstance(that, C, NAME, '_i')
-            that._t = NAME // collection type
-            that._i = create(null) // index
-            that._f = undefined // first entry
-            that._l = undefined // last entry
-            that[SIZE] = 0 // size
-            if (iterable != undefined)
-              forOf(iterable, IS_MAP, that[ADDER], that)
-          })
-          redefineAll(C.prototype, {
-            // 23.1.3.1 Map.prototype.clear()
-            // 23.2.3.2 Set.prototype.clear()
-            clear: function clear() {
-              for (
-                var that = validate(this, NAME),
-                  data = that._i,
-                  entry = that._f;
-                entry;
-                entry = entry.n
-              ) {
-                entry.r = true
-                if (entry.p) entry.p = entry.p.n = undefined
-                delete data[entry.i]
-              }
-              that._f = that._l = undefined
-              that[SIZE] = 0
-            },
-            // 23.1.3.3 Map.prototype.delete(key)
-            // 23.2.3.4 Set.prototype.delete(value)
-            delete: function(key) {
-              var that = validate(this, NAME)
-              var entry = getEntry(that, key)
-              if (entry) {
-                var next = entry.n
-                var prev = entry.p
-                delete that._i[entry.i]
-                entry.r = true
-                if (prev) prev.n = next
-                if (next) next.p = prev
-                if (that._f == entry) that._f = next
-                if (that._l == entry) that._l = prev
-                that[SIZE]--
-              }
-              return !!entry
-            },
-            // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
-            // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
-            forEach: function forEach(callbackfn /* , that = undefined */) {
-              validate(this, NAME)
-              var f = ctx(
-                callbackfn,
-                arguments.length > 1 ? arguments[1] : undefined,
-                3
-              )
-              var entry
-              while ((entry = entry ? entry.n : this._f)) {
-                f(entry.v, entry.k, this)
-                // revert to the last existing entry
-                while (entry && entry.r) entry = entry.p
-              }
-            },
-            // 23.1.3.7 Map.prototype.has(key)
-            // 23.2.3.7 Set.prototype.has(value)
-            has: function has(key) {
-              return !!getEntry(validate(this, NAME), key)
-            },
-          })
-          if (DESCRIPTORS)
-            dP(C.prototype, 'size', {
-              get: function() {
-                return validate(this, NAME)[SIZE]
-              },
-            })
-          return C
-        },
-        def: function(that, key, value) {
-          var entry = getEntry(that, key)
-          var prev, index
-          // change existing entry
-          if (entry) {
-            entry.v = value
-            // create new entry
-          } else {
-            that._l = entry = {
-              i: (index = fastKey(key, true)), // <- index
-              k: key, // <- key
-              v: value, // <- value
-              p: (prev = that._l), // <- previous entry
-              n: undefined, // <- next entry
-              r: false, // <- removed
-            }
-            if (!that._f) that._f = entry
-            if (prev) prev.n = entry
-            that[SIZE]++
-            // add to index
-            if (index !== 'F') that._i[index] = entry
-          }
-          return that
-        },
-        getEntry: getEntry,
-        setStrong: function(C, NAME, IS_MAP) {
-          // add .keys, .values, .entries, [@@iterator]
-          // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
-          $iterDefine(
-            C,
-            NAME,
-            function(iterated, kind) {
-              this._t = validate(iterated, NAME) // target
-              this._k = kind // kind
-              this._l = undefined // previous
-            },
-            function() {
-              var that = this
-              var kind = that._k
-              var entry = that._l
-              // revert to the last existing entry
-              while (entry && entry.r) entry = entry.p
-              // get next entry
-              if (
-                !that._t ||
-                !(that._l = entry = entry ? entry.n : that._t._f)
-              ) {
-                // or finish the iteration
-                that._t = undefined
-                return step(1)
-              }
-              // return step by kind
-              if (kind == 'keys') return step(0, entry.k)
-              if (kind == 'values') return step(0, entry.v)
-              return step(0, [entry.k, entry.v])
-            },
-            IS_MAP ? 'entries' : 'values',
-            !IS_MAP,
-            true
-          )
-
-          // add [@@species], 23.1.2.2, 23.2.2.2
-          setSpecies(NAME)
-        },
-      }
-
-      /***/
-    },
-
-    /***/ XLbu: /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.P + $export.R, 'Map', {
-        toJSON: __webpack_require__('8iia')('Map'),
-      })
-
-      /***/
-    },
-
     /***/ ZDA2: /***/ function(module, exports, __webpack_require__) {
       var _typeof = __webpack_require__('iZP3')

@@ -1487,75 +1174,6 @@
       /***/
     },

-    /***/ dVTT: /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
-      __webpack_require__('aPfg')('Map')
-
-      /***/
-    },
-
-    /***/ g33z: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var strong = __webpack_require__('Wu5q')
-      var validate = __webpack_require__('n3ko')
-      var MAP = 'Map'
-
-      // 23.1 Map Objects
-      module.exports = __webpack_require__('raTm')(
-        MAP,
-        function(get) {
-          return function Map() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined)
-          }
-        },
-        {
-          // 23.1.3.6 Map.prototype.get(key)
-          get: function get(key) {
-            var entry = strong.getEntry(validate(this, MAP), key)
-            return entry && entry.v
-          },
-          // 23.1.3.9 Map.prototype.set(key, value)
-          set: function set(key, value) {
-            return strong.def(validate(this, MAP), key === 0 ? 0 : key, value)
-          },
-        },
-        strong,
-        true
-      )
-
-      /***/
-    },
-
-    /***/ qArv: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      var __importStar =
-        (this && this.__importStar) ||
-        function(mod) {
-          if (mod && mod.__esModule) return mod
-          var result = {}
-          if (mod != null)
-            for (var k in mod) {
-              if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]
-            }
-          result['default'] = mod
-          return result
-        }
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      var React = __importStar(__webpack_require__('q1tI'))
-
-      exports.DataManagerContext = React.createContext(null)
-
-      /***/
-    },
-
     /***/ yLiY: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -1583,8 +1201,6 @@
     /***/ zmvN: /***/ function(module, exports, __webpack_require__) {
       'use strict'

-      var _regeneratorRuntime = __webpack_require__('ln6h')
-
       var _classCallCheck = __webpack_require__('/HRN')

       var _createClass = __webpack_require__('WaGi')
@@ -1594,10 +1210,6 @@
       exports.__esModule = true
       exports['default'] = void 0

-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))

       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
@@ -1617,6 +1229,18 @@
             'prefetch'
       var hasNoModule = 'noModule' in document.createElement('script')

+      function normalizeRoute(route) {
+        if (route[0] !== '/') {
+          throw new Error(
+            'Route name should start with a "/", got "' + route + '"'
+          )
+        }
+
+        route = route.replace(/\/index$/, '/')
+        if (route === '/') return route
+        return route.replace(/\/$/, '')
+      }
+
       function appendLink(href, rel, as) {
         return new _promise['default'](function(res, rej, link) {
           link = document.createElement('link')
@@ -1639,7 +1263,6 @@
             this.buildId = buildId
             this.assetPrefix = assetPrefix
             this.pageCache = {}
-            this.prefetched = {}
             this.pageRegisterEvents = (0, _mitt['default'])()
             this.loadingRoutes = {}

@@ -1662,31 +1285,19 @@
             {
               key: 'getDependencies',
               value: function getDependencies(route) {
+                var _this = this
+
                 return this.promisedBuildManifest.then(function(man) {
                   return (
                     (man[route] &&
                       man[route].map(function(url) {
-                        return '/_next/' + encodeURI(url)
+                        return _this.assetPrefix + '/_next/' + encodeURI(url)
                       })) ||
                     []
                   )
                 })
               },
             },
-            {
-              key: 'normalizeRoute',
-              value: function normalizeRoute(route) {
-                if (route[0] !== '/') {
-                  throw new Error(
-                    'Route name should start with a "/", got "' + route + '"'
-                  )
-                }
-
-                route = route.replace(/\/index$/, '/')
-                if (route === '/') return route
-                return route.replace(/\/$/, '')
-              },
-            },
             {
               key: 'loadPage',
               value: function loadPage(route) {
@@ -1698,18 +1309,18 @@
             {
               key: 'loadPageScript',
               value: function loadPageScript(route) {
-                var _this3 = this
+                var _this2 = this

-                route = this.normalizeRoute(route)
+                route = normalizeRoute(route)
                 return new _promise['default'](function(resolve, reject) {
                   var fire = function fire(_ref) {
                     var error = _ref.error,
                       page = _ref.page,
                       mod = _ref.mod

-                    _this3.pageRegisterEvents.off(route, fire)
+                    _this2.pageRegisterEvents.off(route, fire)

-                    delete _this3.loadingRoutes[route]
+                    delete _this2.loadingRoutes[route]

                     if (error) {
                       reject(error)
@@ -1721,7 +1332,7 @@
                     }
                   } // If there's a cached version of the page, let's use it.

-                  var cachedPage = _this3.pageCache[route]
+                  var cachedPage = _this2.pageCache[route]

                   if (cachedPage) {
                     var error = cachedPage.error,
@@ -1736,7 +1347,7 @@
                     return
                   } // Register a listener to get the page

-                  _this3.pageRegisterEvents.on(route, fire) // If the page is loading via SSR, we need to wait for it
+                  _this2.pageRegisterEvents.on(route, fire) // If the page is loading via SSR, we need to wait for it
                   // rather downloading it again.

                   if (
@@ -1747,17 +1358,17 @@
                     return
                   }

-                  if (!_this3.loadingRoutes[route]) {
-                    _this3.loadingRoutes[route] = true
+                  if (!_this2.loadingRoutes[route]) {
+                    _this2.loadingRoutes[route] = true

                     if (true) {
-                      _this3.getDependencies(route).then(function(deps) {
+                      _this2.getDependencies(route).then(function(deps) {
                         deps.forEach(function(d) {
                           if (
                             /\.js$/.test(d) &&
                             !document.querySelector('script[src^="' + d + '"]')
                           ) {
-                            _this3.loadScript(d, route, false)
+                            _this2.loadScript(d, route, false)
                           }

                           if (
@@ -1773,7 +1384,7 @@
                           }
                         })

-                        _this3.loadRoute(route)
+                        _this2.loadRoute(route)
                       })
                     } else {
                     }
@@ -1784,45 +1395,21 @@
             {
               key: 'loadRoute',
               value: function loadRoute(route) {
-                var _this = this
-
-                return (0, _asyncToGenerator2['default'])(
-                  /*#__PURE__*/
-                  _regeneratorRuntime.mark(function _callee() {
-                    var scriptRoute, url
-                    return _regeneratorRuntime.wrap(function _callee$(
-                      _context
-                    ) {
-                      while (1) {
-                        switch ((_context.prev = _context.next)) {
-                          case 0:
-                            route = _this.normalizeRoute(route)
-                            scriptRoute =
-                              route === '/' ? '/index.js' : route + '.js'
-                            url =
-                              _this.assetPrefix +
-                              '/_next/static/' +
-                              encodeURIComponent(_this.buildId) +
-                              '/pages' +
-                              encodeURI(scriptRoute)
-
-                            _this.loadScript(url, route, true)
-
-                          case 4:
-                          case 'end':
-                            return _context.stop()
-                        }
-                      }
-                    },
-                    _callee)
-                  })
-                )()
+                route = normalizeRoute(route)
+                var scriptRoute = route === '/' ? '/index.js' : route + '.js'
+                var url =
+                  this.assetPrefix +
+                  '/_next/static/' +
+                  encodeURIComponent(this.buildId) +
+                  '/pages' +
+                  encodeURI(scriptRoute)
+                this.loadScript(url, route, true)
               },
             },
             {
               key: 'loadScript',
               value: function loadScript(url, route, isPage) {
-                var _this4 = this
+                var _this3 = this

                 var script = document.createElement('script')

@@ -1840,7 +1427,7 @@
                   var error = new Error('Error loading script ' + url)
                   error.code = 'PAGE_LOAD_ERROR'

-                  _this4.pageRegisterEvents.emit(route, {
+                  _this3.pageRegisterEvents.emit(route, {
                     error: error,
                   })
                 }
@@ -1851,7 +1438,7 @@
             {
               key: 'registerPage',
               value: function registerPage(route, regFn) {
-                var _this5 = this
+                var _this4 = this

                 var register = function register() {
                   try {
@@ -1860,15 +1447,15 @@
                       page: mod['default'] || mod,
                       mod: mod,
                     }
-                    _this5.pageCache[route] = pageData
+                    _this4.pageCache[route] = pageData

-                    _this5.pageRegisterEvents.emit(route, pageData)
+                    _this4.pageRegisterEvents.emit(route, pageData)
                   } catch (error) {
-                    _this5.pageCache[route] = {
+                    _this4.pageCache[route] = {
                       error: error,
                     }

-                    _this5.pageRegisterEvents.emit(route, {
+                    _this4.pageRegisterEvents.emit(route, {
                       error: error,
                     })
                   }
@@ -1884,110 +1471,72 @@
             {
               key: 'prefetch',
               value: function prefetch(route, isDependency) {
-                var _this2 = this
+                var _this5 = this

-                return (0, _asyncToGenerator2['default'])(
-                  /*#__PURE__*/
-                  _regeneratorRuntime.mark(function _callee2() {
-                    var cn, url, scriptRoute
-                    return _regeneratorRuntime.wrap(function _callee2$(
-                      _context2
-                    ) {
-                      while (1) {
-                        switch ((_context2.prev = _context2.next)) {
-                          case 0:
-                            if (!(cn = navigator.connection)) {
-                              _context2.next = 3
-                              break
-                            }
-
-                            if (!(cn.saveData || /2g/.test(cn.effectiveType))) {
-                              _context2.next = 3
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 3:
-                            url = _this2.assetPrefix
-
-                            if (isDependency) {
-                              url += route
-                            } else {
-                              route = _this2.normalizeRoute(route)
-                              _this2.prefetched[route] = true
-                              scriptRoute =
-                                (route === '/' ? '/index' : route) + '.js'
-
-                              if (true && hasNoModule) {
-                                scriptRoute = scriptRoute.replace(
-                                  /\.js$/,
-                                  '.module.js'
-                                )
-                              }
-
-                              url +=
-                                '/_next/static/' +
-                                encodeURIComponent(_this2.buildId) +
-                                '/pages' +
-                                encodeURI(scriptRoute)
-                            }
-
-                            if (
-                              !document.querySelector(
-                                'link[rel="' +
-                                  relPrefetch +
-                                  '"][href^="' +
-                                  url +
-                                  '"], script[data-next-page="' +
-                                  route +
-                                  '"]'
-                              )
-                            ) {
-                              _context2.next = 7
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 7:
-                            return _context2.abrupt(
-                              'return',
-                              _promise['default']
-                                .all([
-                                  appendLink(
-                                    url,
-                                    relPrefetch,
-                                    url.match(/\.css$/) ? 'style' : 'script'
-                                  ),
-                                  true &&
-                                    !isDependency &&
-                                    _this2
-                                      .getDependencies(route)
-                                      .then(function(urls) {
-                                        return _promise['default'].all(
-                                          urls.map(function(url) {
-                                            return _this2.prefetch(url, true)
-                                          })
-                                        )
-                                      }),
-                                ])
-                                .then(
-                                  // do not return any data
-                                  function() {}, // swallow prefetch errors
-                                  function() {}
-                                )
-                            )
+                // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
+                // License: Apache 2.0
+                var cn

-                          case 8:
-                          case 'end':
-                            return _context2.stop()
-                        }
-                      }
-                    },
-                    _callee2)
-                  })
-                )()
+                if ((cn = navigator.connection)) {
+                  // Don't prefetch if using 2G or if Save-Data is enabled.
+                  if (cn.saveData || /2g/.test(cn.effectiveType))
+                    return _promise['default'].resolve()
+                }
+
+                var url
+
+                if (isDependency) {
+                  url = route
+                } else {
+                  route = normalizeRoute(route)
+                  var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+
+                  if (true && hasNoModule) {
+                    scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
+                  }
+
+                  url =
+                    this.assetPrefix +
+                    '/_next/static/' +
+                    encodeURIComponent(this.buildId) +
+                    '/pages' +
+                    encodeURI(scriptRoute)
+                }
+
+                return _promise['default']
+                  .all(
+                    document.querySelector(
+                      'link[rel="' +
+                        relPrefetch +
+                        '"][href^="' +
+                        url +
+                        '"], script[data-next-page="' +
+                        route +
+                        '"]'
+                    )
+                      ? []
+                      : [
+                          appendLink(
+                            url,
+                            relPrefetch,
+                            url.match(/\.css$/) ? 'style' : 'script'
+                          ),
+                          true &&
+                            !isDependency &&
+                            this.getDependencies(route).then(function(urls) {
+                              return _promise['default'].all(
+                                urls.map(function(url) {
+                                  return _this5.prefetch(url, true)
+                                })
+                              )
+                            }),
+                        ]
+                  )
+                  .then(
+                    // do not return any data
+                    function() {}, // swallow prefetch errors
+                    function() {}
+                  )
               },
             },
           ])
```
</details>
<details>
<summary>Diff for <strong>main-HASH.module.js</strong></summary>

```diff
@@ -69,66 +69,6 @@
       /***/
     },

-    /***/ '/h46': /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
-      __webpack_require__('cHUd')('Map')
-
-      /***/
-    },
-
-    /***/ '0IRE': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Map = __webpack_require__('LX0d')
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      class DataManager {
-        constructor(data) {
-          this.data = new _Map(data)
-        }
-
-        getData() {
-          return this.data
-        }
-
-        get(key) {
-          return this.data.get(key)
-        }
-
-        set(key, value) {
-          this.data.set(key, value)
-        }
-
-        overwrite(data) {
-          this.data = new _Map(data)
-        }
-      }
-
-      exports.DataManager = DataManager
-
-      /***/
-    },
-
-    /***/ '8iia': /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var classof = __webpack_require__('QMMT')
-      var from = __webpack_require__('RRc/')
-      module.exports = function(NAME) {
-        return function toJSON() {
-          if (classof(this) != NAME)
-            throw TypeError(NAME + "#toJSON isn't generic")
-          return from(this)
-        }
-      }
-
-      /***/
-    },
-
     /***/ BMP1: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -310,7 +250,7 @@
       exports.__esModule = true
       exports.render = render
       exports.renderError = renderError
-      exports.default = exports.emitter = exports.ErrorComponent = exports.router = exports.dataManager = exports.version = void 0
+      exports.default = exports.emitter = exports.router = exports.version = void 0

       var _asyncToGenerator2 = _interopRequireDefault(
         __webpack_require__('+oT+')
@@ -342,12 +282,8 @@

       var _headManagerContext = __webpack_require__('FYa8')

-      var _dataManagerContext = __webpack_require__('qArv')
-
       var _routerContext = __webpack_require__('qOIg')

-      var _dataManager = __webpack_require__('0IRE')
-
       var _querystring = __webpack_require__('s4NR')

       var _isDynamic = __webpack_require__('/jkW')
@@ -361,7 +297,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.7'
+      var version = '9.1.8-canary.6'
       exports.version = version
       var {
         props,
@@ -373,9 +309,6 @@
         runtimeConfig,
         dynamicIds,
       } = data
-      var d = JSON.parse(window.__NEXT_DATA__.dataManager)
-      var dataManager = new _dataManager.DataManager(d)
-      exports.dataManager = dataManager
       var prefix = assetPrefix || '' // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time
       // So, this is how we do it in the client side at runtime

@@ -407,7 +340,6 @@
       var router
       exports.router = router
       var ErrorComponent
-      exports.ErrorComponent = ErrorComponent
       var Component
       var App, onPerfEntry

@@ -447,6 +379,7 @@
                 // client-side hydration. Your app should _never_ use this property.
                 // It may change at any time without notice.
                 _h: 1,
+                shallow: true,
               }
             )
           }
@@ -534,7 +467,6 @@
                     Component,
                     props,
                     err,
-                    emitter,
                   })
                 },
               }
@@ -548,7 +480,6 @@
               Component,
               props,
               err: initialErr,
-              emitter,
             }
             render(renderCtx)
             return emitter
@@ -603,9 +534,7 @@
           } // Make sure we log the error to the console, otherwise users can't track down issues.

           console.error(err)
-          exports.ErrorComponent = ErrorComponent = yield pageLoader.loadPage(
-            '/_error'
-          ) // In production we do a normal render with the `ErrorComponent` as component.
+          ErrorComponent = yield pageLoader.loadPage('/_error') // In production we do a normal render with the `ErrorComponent` as component.
           // If we've gotten here upon initial render, we can use the props from the server.
           // Otherwise, we need to call `getInitialProps` on `App` before mounting.

@@ -641,7 +570,7 @@

       function renderReactElement(reactEl, domEl) {
         // mark start of hydrate/render
-        if (_utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
+        if (_utils.ST) {
           performance.mark('beforeRender')
         }

@@ -658,7 +587,7 @@
           }
         }

-        if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
+        if (onPerfEntry && _utils.ST) {
           if (!(PerformanceObserver in window)) {
             window.addEventListener('load', () => {
               performance.getEntriesByType('paint').forEach(onPerfEntry)
@@ -675,7 +604,7 @@
       }

       function markHydrateComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterHydrate') // mark end of hydration

         performance.measure(
@@ -694,7 +623,7 @@
       }

       function markRenderComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterRender') // mark end of render

         var navStartEntries = performance.getEntriesByName(
@@ -752,17 +681,11 @@
               value: (0, _router.makePublicRouterInstance)(router),
             },
             _react.default.createElement(
-              _dataManagerContext.DataManagerContext.Provider,
+              _headManagerContext.HeadManagerContext.Provider,
               {
-                value: dataManager,
+                value: headManager.updateHead,
               },
-              _react.default.createElement(
-                _headManagerContext.HeadManagerContext.Provider,
-                {
-                  value: headManager.updateHead,
-                },
-                children
-              )
+              children
             )
           )
         )
@@ -847,292 +770,6 @@
       /***/
     },

-    /***/ LX0d: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UDep')
-
-      /***/
-    },
-
-    /***/ 'RRc/': /***/ function(module, exports, __webpack_require__) {
-      var forOf = __webpack_require__('oioR')
-
-      module.exports = function(iter, ITERATOR) {
-        var result = []
-        forOf(iter, false, result.push, result, ITERATOR)
-        return result
-      }
-
-      /***/
-    },
-
-    /***/ UDep: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('wgeU')
-      __webpack_require__('FlQf')
-      __webpack_require__('bBy9')
-      __webpack_require__('g33z')
-      __webpack_require__('XLbu')
-      __webpack_require__('/h46')
-      __webpack_require__('dVTT')
-      module.exports = __webpack_require__('WEpk').Map
-
-      /***/
-    },
-
-    /***/ Wu5q: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var dP = __webpack_require__('2faE').f
-      var create = __webpack_require__('oVml')
-      var redefineAll = __webpack_require__('XJU/')
-      var ctx = __webpack_require__('2GTP')
-      var anInstance = __webpack_require__('EXMj')
-      var forOf = __webpack_require__('oioR')
-      var $iterDefine = __webpack_require__('MPFp')
-      var step = __webpack_require__('UO39')
-      var setSpecies = __webpack_require__('TJWN')
-      var DESCRIPTORS = __webpack_require__('jmDH')
-      var fastKey = __webpack_require__('6/1s').fastKey
-      var validate = __webpack_require__('n3ko')
-      var SIZE = DESCRIPTORS ? '_s' : 'size'
-
-      var getEntry = function(that, key) {
-        // fast case
-        var index = fastKey(key)
-        var entry
-        if (index !== 'F') return that._i[index]
-        // frozen object case
-        for (entry = that._f; entry; entry = entry.n) {
-          if (entry.k == key) return entry
-        }
-      }
-
-      module.exports = {
-        getConstructor: function(wrapper, NAME, IS_MAP, ADDER) {
-          var C = wrapper(function(that, iterable) {
-            anInstance(that, C, NAME, '_i')
-            that._t = NAME // collection type
-            that._i = create(null) // index
-            that._f = undefined // first entry
-            that._l = undefined // last entry
-            that[SIZE] = 0 // size
-            if (iterable != undefined)
-              forOf(iterable, IS_MAP, that[ADDER], that)
-          })
-          redefineAll(C.prototype, {
-            // 23.1.3.1 Map.prototype.clear()
-            // 23.2.3.2 Set.prototype.clear()
-            clear: function clear() {
-              for (
-                var that = validate(this, NAME),
-                  data = that._i,
-                  entry = that._f;
-                entry;
-                entry = entry.n
-              ) {
-                entry.r = true
-                if (entry.p) entry.p = entry.p.n = undefined
-                delete data[entry.i]
-              }
-              that._f = that._l = undefined
-              that[SIZE] = 0
-            },
-            // 23.1.3.3 Map.prototype.delete(key)
-            // 23.2.3.4 Set.prototype.delete(value)
-            delete: function(key) {
-              var that = validate(this, NAME)
-              var entry = getEntry(that, key)
-              if (entry) {
-                var next = entry.n
-                var prev = entry.p
-                delete that._i[entry.i]
-                entry.r = true
-                if (prev) prev.n = next
-                if (next) next.p = prev
-                if (that._f == entry) that._f = next
-                if (that._l == entry) that._l = prev
-                that[SIZE]--
-              }
-              return !!entry
-            },
-            // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
-            // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
-            forEach: function forEach(callbackfn /* , that = undefined */) {
-              validate(this, NAME)
-              var f = ctx(
-                callbackfn,
-                arguments.length > 1 ? arguments[1] : undefined,
-                3
-              )
-              var entry
-              while ((entry = entry ? entry.n : this._f)) {
-                f(entry.v, entry.k, this)
-                // revert to the last existing entry
-                while (entry && entry.r) entry = entry.p
-              }
-            },
-            // 23.1.3.7 Map.prototype.has(key)
-            // 23.2.3.7 Set.prototype.has(value)
-            has: function has(key) {
-              return !!getEntry(validate(this, NAME), key)
-            },
-          })
-          if (DESCRIPTORS)
-            dP(C.prototype, 'size', {
-              get: function() {
-                return validate(this, NAME)[SIZE]
-              },
-            })
-          return C
-        },
-        def: function(that, key, value) {
-          var entry = getEntry(that, key)
-          var prev, index
-          // change existing entry
-          if (entry) {
-            entry.v = value
-            // create new entry
-          } else {
-            that._l = entry = {
-              i: (index = fastKey(key, true)), // <- index
-              k: key, // <- key
-              v: value, // <- value
-              p: (prev = that._l), // <- previous entry
-              n: undefined, // <- next entry
-              r: false, // <- removed
-            }
-            if (!that._f) that._f = entry
-            if (prev) prev.n = entry
-            that[SIZE]++
-            // add to index
-            if (index !== 'F') that._i[index] = entry
-          }
-          return that
-        },
-        getEntry: getEntry,
-        setStrong: function(C, NAME, IS_MAP) {
-          // add .keys, .values, .entries, [@@iterator]
-          // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
-          $iterDefine(
-            C,
-            NAME,
-            function(iterated, kind) {
-              this._t = validate(iterated, NAME) // target
-              this._k = kind // kind
-              this._l = undefined // previous
-            },
-            function() {
-              var that = this
-              var kind = that._k
-              var entry = that._l
-              // revert to the last existing entry
-              while (entry && entry.r) entry = entry.p
-              // get next entry
-              if (
-                !that._t ||
-                !(that._l = entry = entry ? entry.n : that._t._f)
-              ) {
-                // or finish the iteration
-                that._t = undefined
-                return step(1)
-              }
-              // return step by kind
-              if (kind == 'keys') return step(0, entry.k)
-              if (kind == 'values') return step(0, entry.v)
-              return step(0, [entry.k, entry.v])
-            },
-            IS_MAP ? 'entries' : 'values',
-            !IS_MAP,
-            true
-          )
-
-          // add [@@species], 23.1.2.2, 23.2.2.2
-          setSpecies(NAME)
-        },
-      }
-
-      /***/
-    },
-
-    /***/ XLbu: /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.P + $export.R, 'Map', {
-        toJSON: __webpack_require__('8iia')('Map'),
-      })
-
-      /***/
-    },
-
-    /***/ dVTT: /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
-      __webpack_require__('aPfg')('Map')
-
-      /***/
-    },
-
-    /***/ g33z: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var strong = __webpack_require__('Wu5q')
-      var validate = __webpack_require__('n3ko')
-      var MAP = 'Map'
-
-      // 23.1 Map Objects
-      module.exports = __webpack_require__('raTm')(
-        MAP,
-        function(get) {
-          return function Map() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined)
-          }
-        },
-        {
-          // 23.1.3.6 Map.prototype.get(key)
-          get: function get(key) {
-            var entry = strong.getEntry(validate(this, MAP), key)
-            return entry && entry.v
-          },
-          // 23.1.3.9 Map.prototype.set(key, value)
-          set: function set(key, value) {
-            return strong.def(validate(this, MAP), key === 0 ? 0 : key, value)
-          },
-        },
-        strong,
-        true
-      )
-
-      /***/
-    },
-
-    /***/ qArv: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      var __importStar =
-        (this && this.__importStar) ||
-        function(mod) {
-          if (mod && mod.__esModule) return mod
-          var result = {}
-          if (mod != null)
-            for (var k in mod) {
-              if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]
-            }
-          result['default'] = mod
-          return result
-        }
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      var React = __importStar(__webpack_require__('q1tI'))
-
-      exports.DataManagerContext = React.createContext(null)
-
-      /***/
-    },
-
     /***/ yLiY: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -1165,10 +802,6 @@
       exports.__esModule = true
       exports.default = void 0

-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))

       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
@@ -1188,6 +821,18 @@
             'prefetch'
       var hasNoModule = 'noModule' in document.createElement('script')

+      function normalizeRoute(route) {
+        if (route[0] !== '/') {
+          throw new Error(
+            'Route name should start with a "/", got "' + route + '"'
+          )
+        }
+
+        route = route.replace(/\/index$/, '/')
+        if (route === '/') return route
+        return route.replace(/\/$/, '')
+      }
+
       function appendLink(href, rel, as) {
         return new _promise.default((res, rej, link) => {
           link = document.createElement('link')
@@ -1206,7 +851,6 @@
           this.buildId = buildId
           this.assetPrefix = assetPrefix
           this.pageCache = {}
-          this.prefetched = {}
           this.pageRegisterEvents = (0, _mitt.default)()
           this.loadingRoutes = {}

@@ -1227,29 +871,19 @@
           return this.promisedBuildManifest.then(
             man =>
               (man[route] &&
-                man[route].map(url => '/_next/' + encodeURI(url))) ||
+                man[route].map(
+                  url => this.assetPrefix + '/_next/' + encodeURI(url)
+                )) ||
               []
           )
         }

-        normalizeRoute(route) {
-          if (route[0] !== '/') {
-            throw new Error(
-              'Route name should start with a "/", got "' + route + '"'
-            )
-          }
-
-          route = route.replace(/\/index$/, '/')
-          if (route === '/') return route
-          return route.replace(/\/$/, '')
-        }
-
         loadPage(route) {
           return this.loadPageScript(route).then(v => v.page)
         }

         loadPageScript(route) {
-          route = this.normalizeRoute(route)
+          route = normalizeRoute(route)
           return new _promise.default((resolve, reject) => {
             var fire = _ref => {
               var { error, page, mod } = _ref
@@ -1322,20 +956,15 @@
         }

         loadRoute(route) {
-          var _this = this
-
-          return (0, _asyncToGenerator2.default)(function*() {
-            route = _this.normalizeRoute(route)
-            var scriptRoute = route === '/' ? '/index.js' : route + '.js'
-            var url =
-              _this.assetPrefix +
-              '/_next/static/' +
-              encodeURIComponent(_this.buildId) +
-              '/pages' +
-              encodeURI(scriptRoute)
-
-            _this.loadScript(url, route, true)
-          })()
+          route = normalizeRoute(route)
+          var scriptRoute = route === '/' ? '/index.js' : route + '.js'
+          var url =
+            this.assetPrefix +
+            '/_next/static/' +
+            encodeURIComponent(this.buildId) +
+            '/pages' +
+            encodeURI(scriptRoute)
+          this.loadScript(url, route, true)
         }

         loadScript(url, route, isPage) {
@@ -1390,39 +1019,38 @@
         }

         prefetch(route, isDependency) {
-          var _this2 = this
-
-          return (0, _asyncToGenerator2.default)(function*() {
-            // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
-            // License: Apache 2.0
-            var cn
-
-            if ((cn = navigator.connection)) {
-              // Don't prefetch if using 2G or if Save-Data is enabled.
-              if (cn.saveData || /2g/.test(cn.effectiveType)) return
-            }
-
-            var url = _this2.assetPrefix
+          // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
+          // License: Apache 2.0
+          var cn
+
+          if ((cn = navigator.connection)) {
+            // Don't prefetch if using 2G or if Save-Data is enabled.
+            if (cn.saveData || /2g/.test(cn.effectiveType))
+              return _promise.default.resolve()
+          }

-            if (isDependency) {
-              url += route
-            } else {
-              route = _this2.normalizeRoute(route)
-              _this2.prefetched[route] = true
-              var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+          var url

-              if (true && hasNoModule) {
-                scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
-              }
+          if (isDependency) {
+            url = route
+          } else {
+            route = normalizeRoute(route)
+            var scriptRoute = (route === '/' ? '/index' : route) + '.js'

-              url +=
-                '/_next/static/' +
-                encodeURIComponent(_this2.buildId) +
-                '/pages' +
-                encodeURI(scriptRoute)
+            if (true && hasNoModule) {
+              scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
             }

-            if (
+            url =
+              this.assetPrefix +
+              '/_next/static/' +
+              encodeURIComponent(this.buildId) +
+              '/pages' +
+              encodeURI(scriptRoute)
+          }
+
+          return _promise.default
+            .all(
               document.querySelector(
                 'link[rel="' +
                   relPrefetch +
@@ -1432,33 +1060,27 @@
                   route +
                   '"]'
               )
-            ) {
-              return
-            }
-
-            return _promise.default
-              .all([
-                appendLink(
-                  url,
-                  relPrefetch,
-                  url.match(/\.css$/) ? 'style' : 'script'
-                ),
-                true &&
-                  !isDependency &&
-                  _this2
-                    .getDependencies(route)
-                    .then(urls =>
-                      _promise.default.all(
-                        urls.map(url => _this2.prefetch(url, true))
-                      )
+                ? []
+                : [
+                    appendLink(
+                      url,
+                      relPrefetch,
+                      url.match(/\.css$/) ? 'style' : 'script'
                     ),
-              ])
-              .then(
-                // do not return any data
-                () => {}, // swallow prefetch errors
-                () => {}
-              )
-          })()
+                    true &&
+                      !isDependency &&
+                      this.getDependencies(route).then(urls =>
+                        _promise.default.all(
+                          urls.map(url => this.prefetch(url, true))
+                        )
+                      ),
+                  ]
+            )
+            .then(
+              // do not return any data
+              () => {}, // swallow prefetch errors
+              () => {}
+            )
         }
       }
```
</details>
<details>
<summary>Diff for <strong>index.html</strong></summary>

```diff
@@ -27,7 +27,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.81d530ce41345e943b94.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
+      href="/_next/static/runtime/main-27837efbb1e9e7088bae.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -53,7 +53,7 @@

Hello world 👋

```
</details>
<details>
<summary>Diff for <strong>link.html</strong></summary>

```diff
@@ -27,7 +27,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.81d530ce41345e943b94.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
+      href="/_next/static/runtime/main-27837efbb1e9e7088bae.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -58,7 +58,7 @@

```
</details>
<details>
<summary>Diff for <strong>withRouter.html</strong></summary>

```diff
@@ -27,7 +27,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.81d530ce41345e943b94.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
+      href="/_next/static/runtime/main-27837efbb1e9e7088bae.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -53,7 +53,7 @@

I use withRouter

```

Serverless Mode (Decrease detected ✓)

General Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| buildDuration | 14.7s | 14.7s | ⚠ +41ms |
| nodeModulesSize | 48.9 MB | 48.9 MB | -12.8 kB |

Client Bundles (main, webpack, commons) Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| main-HASH.js gzip | 6.43 kB | 5.11 kB | -1.32 kB |
| webpack-HASH.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..54d3.js gzip | 4.68 kB | 4.68 kB | ✓ |
| commons.HASH.js gzip | 4.06 kB | 4.06 kB | ✓ |
| de003c3a9d30..6ef5.js gzip | 13.8 kB | N/A | N/A |
| framework.HASH.js gzip | 39.5 kB | 39.1 kB | -311 B |
| de003c3a9d30..7ed0.js gzip | N/A | 13.7 kB | N/A |
| Overall change | 69.2 kB | 67.4 kB | -1.63 kB |

Client Bundles (main, webpack, commons) Modern Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| main-HASH.module.js gzip | 5.41 kB | 4.17 kB | -1.24 kB |
| webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..dule.js gzip | 5.56 kB | 5.56 kB | ✓ |
| de003c3a9d30..dule.js gzip | 12.6 kB | N/A | N/A |
| framework.HA..dule.js gzip | 39.4 kB | 39.1 kB | -310 B |
| de003c3a9d30..dule.js gzip | N/A | 12.5 kB | N/A |
| Overall change | 63.7 kB | 62.1 kB | -1.55 kB |

Legacy Client Bundles (polyfills)

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| polyfills-HASH.js gzip | 4.76 kB | 4.76 kB | ✓ |
| Overall change | 4.76 kB | 4.76 kB | ✓ |

Client Pages Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| _app.js gzip | 1.33 kB | 1.33 kB | ✓ |
| _error.js gzip | 4.07 kB | 4.07 kB | ✓ |
| hooks.js gzip | 779 B | 779 B | ✓ |
| index.js gzip | 222 B | 222 B | ✓ |
| link.js gzip | 2.93 kB | 2.9 kB | -28 B |
| routerDirect.js gzip | 283 B | 283 B | ✓ |
| withRouter.js gzip | 282 B | 282 B | ✓ |
| Overall change | 9.89 kB | 9.87 kB | -28 B |

Client Pages Modern Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| _app.module.js gzip | 757 B | 757 B | ✓ |
| _error.module.js gzip | 3.06 kB | 3.06 kB | ✓ |
| hooks.module.js gzip | 371 B | 371 B | ✓ |
| index.module.js gzip | 212 B | 212 B | ✓ |
| link.module.js gzip | 2.49 kB | 2.47 kB | -22 B |
| routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
| withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
| Overall change | 7.43 kB | 7.41 kB | -22 B |

Client Build Manifests

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| _buildManifest.js gzip | 61 B | 61 B | ✓ |
| _buildManife..dule.js gzip | 61 B | 61 B | ✓ |
| Overall change | 122 B | 122 B | ✓ |

Serverless bundles Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.6 | Change |
| - | - | - | - |
| _error.js gzip | 78.9 kB | 77.7 kB | -1.14 kB |
| hooks.html gzip | 1.07 kB | 1.05 kB | -18 B |
| index.js gzip | 79.1 kB | 78 kB | -1.18 kB |
| link.js gzip | 81.3 kB | 80.4 kB | -934 B |
| routerDirect.js gzip | 79.2 kB | 78 kB | -1.17 kB |
| withRouter.js gzip | 79.3 kB | 78.1 kB | -1.23 kB |
| Overall change | 399 kB | 393 kB | -5.67 kB |


Collaborator: Review for this commit was created. [Link to review](http://2e6be167.eu.ngrok.io/ui#review:id=848)


Collaborator: Review for this commit was created. [Link to review](http://127.0.0.1:8080/ui#review:id=17)


mdhalim


Collaborator cannot find remote user mapping for user that pushed commits, review created by system administrator


Collaborator: Review for this commit was created. [Link to review](http://127.0.0.1:8080/ui#review:id=18)


The distance get's squared, so no need for abs. We can also drop sqrt because we only care if the number is bigger or smaller, not the actual distance.


wouldn't it be possible to check if the key exists beforehand instead of using this big try, except block which makes things a lot less readable? I mean something like:
```python
if key not in store:
    filepath = ...
    raise KeyError(...)
pd_obj = store.get(key)
...
```

It is usually helps readability to keep the "main" branch of a code unindented (not within an if block). In other words, it usually helps readability to fail early (when possible).


Опечатолся в README, оператор == перегружен, но все равно выдается эта ошибка


Successfully deployed to following URLs:

* https://paulkinlanme-ch0n6gisz.now.sh
* https://paul.kinlan.me
* https://paulkinlanme.kinlan.now.sh
* https://paulkinlanme-git-main.kinlan.now.sh


> EXPECT_EQ использует под капотом ==. Это и написано в сообщении об ошибке:
> `error: no match for 'operator==' (operand types are 'const ComplexNumber' and 'const ComplexNumber')`
>
> Перегрузите его и будет всё огонь

Опечатался в README, оператор == перегружен, но все равно выдается эта ошибка


Do you all usually tag these migration versions with `-beta...`. I see this seems to be a common pattern. Probably to avoid it going out unintentionally?


Deployment failed with the following error:

~~~
Your `package.json` file is missing a `build` property inside the `scripts` property.
~~~


+Versione aggiornata: Bottone Riprendi funzionanate e palla di fuoco aggiunta


Successfully deployed to following URLs:

* https://dotdesign-j0zp4gbxc.now.sh
* https://reiner.design
* https://*.reiner.design
* https://dotdesign.mirshko.now.sh
* https://dotdesign-git-master.mirshko.now.sh


> 2 lines changed

2 lines of comment added


Successfully deployed to following URLs:

* https://excalidraw-nfgzrz5mh.now.sh
* https://excalidraw.now.sh
* https://excalidraw.vjeux.now.sh
* https://excalidraw-git-master.vjeux.now.sh


Successfully deployed to following URLs:

* https://web-front-end-rss-2iqhnwlor.now.sh
* https://web-front-end-rss.now.sh
* https://rssweb.app
* https://rssweb.now.sh
* https://web-front-end-rss.hzhuhao.now.sh
* https://web-front-end-rss-git-master.hzhuhao.now.sh


![image](https://user-images.githubusercontent.com/38677704/72158246-5b94d380-33ec-11ea-8394-8e86e17d5ca3.png)
1. Повторяющийся код.
2. a) Вынести в отельный метод.
   b) Очевидный метод, зачем придумывать что-то сложное в том где все легко решается.
3. Уменьшилось количество повторяемого кода (он остался только частично в условии, но там без него никуда уже).
4. Прилагаю скрин со своим костыльным запуском теста (зелёной галочки конечно нет, но и ассёрт не вылетел).


Done


Oops, I will fix soon.


This should say "key the database" instead.


Successfully deployed to following URLs:

* https://dotdesign-llhgla2xf.now.sh
* https://reiner.design
* https://*.reiner.design
* https://dotdesign.mirshko.now.sh
* https://dotdesign-git-master.mirshko.now.sh


![Difference between blocks](https://raw.githubusercontent.com/mrpenguin/deadly-octopus-island/96ba435973ab82df61c16019797eb17333901a59/.github/makecode/blocksdiff.png)


TeamCity Bvcms / Build [Build 3383](https://builds.tpsdb.com/viewLog.html?buildId=11225&buildTypeId=Bvcms_Build) outcome was **SUCCESS**
Summary: Tests passed: 218 Build time: 00:25:55


TeamCity Bvcms / Build [Build 3384](https://builds.tpsdb.com/viewLog.html?buildId=11226&buildTypeId=Bvcms_Build) is now running


Successfully deployed to following URLs:

* https://slackdiceroll-hcqzphue5.now.sh
* https://diceroll.now.sh
* https://slack-dice-roll.jamesquigley.now.sh
* https://slack-dice-roll-git-master.jamesquigley.now.sh


Typo in commit message. The word ```WHERE``` should be ```LIKE```.


Alright, take care and I wish you a prompt recovery ☺


develop (Myoldmopar) - Win64-Windows-10-VisualStudio-16: OK (1926 of 1926 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


Successfully deployed to following URLs:

* https://test-nurodev-atlas-grrwc7dgl.now.sh
* https://test-nurodev-atlas.now.sh
* https://test-nurodev-atlas.peaceiris.now.sh
* https://test-nurodev-atlas-git-master.peaceiris.now.sh


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/terminus-build-tools-plugin/master/assets/images/visit-site-36.png)](https://pr-54-gregory-industries.pantheonsite.io/)

Created multidev environment [pr-54](https://dashboard.pantheon.io/sites/6a63ef8e-11f2-468f-86b6-5973ebf0ffbd#pr-54) for gregory-industries.


Successfully deployed to following URLs:

* https://test-nurodev-atlas-qt380s6mq.now.sh
* https://test-nurodev-atlas.now.sh
* https://test-nurodev-atlas.peaceiris.now.sh
* https://test-nurodev-atlas-git-master.peaceiris.now.sh


Successfully deployed to following URLs:

* https://github-e2e-tests-dev-alias-v2-with-alias-36s9b2qos.now.sh
* https://z-github-e2e-tests-dev-alias-v2-with-alias.now.sh
* https://github-e2e-tests-dev-alias-v2-with-alias.zeit-github-test-dev1.now.sh
* https://github-e2e-tests-dev-alias-v2-with-alias-git-master.zeit-github-test-dev1.now.sh


Successfully deployed to following URLs:

* https://github-e2e-tests-dev-alias-v2-without-alias-pdnewbuq0.now.sh
* https://github-e2e-tests-dev-alias-v2-without-alias.zeit-github-test-dev1.now.sh
* https://github-e2e-tests-dev-alias-v2-without-alias-git-master.zeit-github-test-dev1.now.sh


Successfully deployed to following URLs:

* https://ccc-8h9xqznt6.now.sh
* https://ccc.zeit-github-test-dev1.now.sh
* https://ccc-git-master.zeit-github-test-dev1.now.sh


Deployment failed with the following error:

~~~
You defined 1 build that did not match any source files (please ensure they are NOT defined in .nowignore):
~~~


Successfully deployed to following URLs:

* https://github-e2e-tests-dev-alias-v1-with-alias-hckdwdfuxw.now.sh
* https://z-github-e2e-tests-dev-only.now.sh


Successfully deployed to following URLs:

* https://chemicaltools-web-59jnwjy23.now.sh
* https://chemicaltools-web.njzjz.now.sh
* https://chemicaltools-web-git-master.njzjz.now.sh


Successfully deployed to following URLs:

* https://my-music-r0g6d11jq.now.sh
* https://my-music.dremora.com
* https://my-music.dremora1.now.sh
* https://my-music-git-master.dremora1.now.sh


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/terminus-build-tools-plugin/master/assets/images/visit-site-36.png)](https://pr-17-iron-wp.pantheonsite.io/)

Created multidev environment [pr-17](https://dashboard.pantheon.io/sites/b3945ea7-2c7a-4025-aed8-72e4398914c3#pr-17) for iron-wp.


Hi! This is the friendly automated conda-forge-webservice.

I updated the Github team because of this commit.

- @mikemhenry was added to this feedstock maintenance team.

You should get push access to this feedstock and CI services.

Feel free to join the community [chat room](https://gitter.im/conda-forge/conda-forge.github.io).

NOTE: Please make sure to not push to the repository directly.
      Use branches in your fork for any changes and send a PR.
      More details [here](https://conda-forge.org/docs/maintainer/updating_pkgs.html#forking-and-pull-requests)


we are computing two different intersections of two lists, is this faster than merging the two lists and perform uniq?


Aqui creamos la mision de Red Skull #8


Successfully deployed to following URLs:

* https://kybervirtualhackathon-cziu7pykq.now.sh
* https://defizap.com
* https://www.defizap.com
* https://kybervirtualhackathon.botforkybergang.now.sh
* https://kybervirtualhackathon-git-master.botforkybergang.now.sh


LGTM


Successfully deployed to following URLs:

* https://main-site-328m1m16o.now.sh
* https://fcc-mcr.now.sh
* https://fccmanchester.com
* https://main-site.fcc-mcr.now.sh
* https://main-site-git-master.fcc-mcr.now.sh


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/terminus-build-tools-plugin/master/assets/images/visit-site-36.png)](https://pr-6-spacebasenz.pantheonsite.io/)

Created multidev environment [pr-6](https://dashboard.pantheon.io/sites/87486ada-78a0-4744-851e-549680c32368#pr-6) for spacebasenz.


Successfully deployed to following URLs:

* https://dotfiles-cekieohla.now.sh
* https://setup-shell.now.sh
* https://dotfiles.m5d215.now.sh
* https://dotfiles-git-master.m5d215.now.sh


@ljfranklin Hey, it looks like this version didn't get published to dockerhub:
```
$ docker pull ljfranklin/terraform-resource:0.12.19
Error response from daemon: manifest for ljfranklin/terraform-resource:0.12.19 not found: manifest unknown: manifest unknown
```


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/terminus-build-tools-plugin/master/assets/images/visit-site-36.png)](https://pr-18-chklst-server.pantheonsite.io/)

Created multidev environment [pr-18](https://dashboard.pantheon.io/sites/ea253079-7b29-4c53-9847-0aeec091c2c3#pr-18) for chklst-server.


Successfully deployed to following URLs:

* https://forecast-ogk7gl3ld.now.sh
* https://forecast.autapomorph.now.sh
* https://forecast-git-master.autapomorph.now.sh


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/terminus-build-tools-plugin/master/assets/images/visit-site-36.png)](https://pr-17-hadiber.pantheonsite.io/)

Created multidev environment [pr-17](https://dashboard.pantheon.io/sites/3ec1d47f-7f1e-4735-82c2-18b5f43ce7e0#pr-17) for hadiber.


Successfully deployed to following URLs:

* https://chronarium-r9bdv7u1z.now.sh
* https://chronarium.now.sh
* https://chronarium.danilex.now.sh
* https://chronarium-git-master.danilex.now.sh


Update


In Go, it's perfectly OK and actually idiomatic to just make all the fields of a struct public, and let the user set them, if a constructor doesn't do anything more than just setting all the fields. Based on that, as far as current state of this code, I would suggest removing above func and instead rewriting lines 59-66 to:

```
provider := &BluecatProvider{
	domainFilter:  domainFilter,
	zoneIDFilter:  zoneIDFilter,
	dryRun:        dryRun,
	gatewayClient: GatewayClient{
		Token: token,
	},
}
```
}
```


- WiMOD iM880B Datasheet | Document ID: 4100/40140/0100 | Page 14
- WiMOD - Demo Board | Document ID: 4100/6404/0012 | Chapter 3.2

`24 - P14 - D IN/OUT, A IN - PA_1 (P11) - Yes - Digital IO / ADC_IN1`

`X2.6 - 24(P14)`


hehe


good


- WiMOD iM880B Datasheet | Document ID: 4100/40140/0100 | Page 14
- WiMOD - Demo Board | Document ID: 4100/6404/0012 | Chapter 3.2

`20 - P11 - D IN/OUT - PA_8 (P29) - Yes - Digital IO`

`X2.7 - 20(P11)`


Successfully deployed to following URLs:

* https://gatsby-eats-apis-ixyr3cm0h.now.sh
* https://gatsby-eats-apis-sand-eight.now.sh
* https://gatsby-eats-apis.spences10.now.sh
* https://gatsby-eats-apis-git-master.spences10.now.sh


It's not an issue for now, but I was thinking of it since the previous endpoint. Considering we'll have a lot of validators in the future.
Maybe we should create a validator superclass that would call all the other validations based on what has to be validated. Or maybe not, but it's worth thinking about it at some point.
Just putting this here, because I'll probably forget about this later.


Please change subject to "cmds/ipmidump: add ipmidump command to dump IPMI chassis and SEL info"
Thanks.


Successfully deployed to following URLs:

* https://react-todo-3pq70ukwm.now.sh
* https://react-todo-lake-three.now.sh
* https://kegiatan.now.sh
* https://react-todo.ricosandyca.now.sh
* https://react-todo-git-master.ricosandyca.now.sh


If you want to keep the conditional verification, it's better to trigger it on `push` as well


```
I've decided to drop the login screen temporarily until i know how to make a safe and proper SQL login
Since i do not have one yet and i do not know how to make a proper SQL server that is safe and secure on all ends
so until i know how you can use the browser without logging in
```


# Specs execution successful
:scroll: [View logs](http://bamboo.comnull)
### Plans updated

Bamboo specs have been successfully imported and the following plans have been updated.

Project | Plan | Build
---|---|---
[Test](http://bamboo.com/browse/TEST) | [Comment test](http://bamboo.com/browse/TEST-CTEST)  | :white_check_mark: [\#1](http://bamboo.com/browse/TEST-CTEST-1)
[New project](http://bamboo.com/browse/NEW) | [Disabled plan](http://bamboo.com/browse/NEW-DISABLED) **disabled** | :white_check_mark: [\#1](http://bamboo.com/browse/NEW-DISABLED-1)

### Deployments updated

Bamboo specs have been successfully imported and the following deployment projects have been updated.

|Deployment project |
----|
[Deployment test](http://bamboo.com/deploy/viewDeploymentProjectVersions.action?id=2162689)|


Created multidev environment [index-to-records#ci-207](https://dashboard.pantheon.io/sites/d8404382-ee59-443c-94c3-1ba439cfbe46#ci-207).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-207-index-to-records.pantheonsite.io/)


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/terminus-build-tools-plugin/master/assets/images/visit-site-36.png)](https://pr-49-gregory-industries.pantheonsite.io/)

Created multidev environment [pr-49](https://dashboard.pantheon.io/sites/6a63ef8e-11f2-468f-86b6-5973ebf0ffbd#pr-49) for gregory-industries.


This smoke test hasn't been very reliable :sob:


It would have been best to put isLoading in the store and set it in the reducer actions.


Sort for yourself?


Yes, like this, but then you don't need the setState in the Ex1


LGTM


Wondering if we should instead warn and exclude that file.