diff --git a/composer.json b/composer.json
index 742ad5db0f0de13713aff5df228b7a7c6d9f46c5..e164d869b3b5b27396be527fa76f051ea4d2dd0b 100644
--- a/composer.json
+++ b/composer.json
@@ -21,6 +21,19 @@
                 }
             }
         },
+        {
+            "type": "package",
+            "package": {
+                "name": "browserstate/history.js",
+                "version": "1.8.0",
+                "type": "drupal-library",
+                "source": {
+                    "url": "https://github.com/browserstate/history.js",
+                    "type": "git",
+                    "reference": "origin/master"
+                }
+            }
+        },
         {
             "type": "package",
             "package": {
@@ -49,6 +62,7 @@
     ],
     "require": {
         "php": ">=7.0.8",
+        "browserstate/history.js": "^1.8",
         "composer/installers": "^1.0.20",
         "cweagans/composer-patches": "^1.0",
         "desandro/imagesloaded": "4.1.4",
diff --git a/composer.lock b/composer.lock
index 423bd6c964a950eaddd0c2afed834b0bb918a529..e4ae82d3cba7e57f0a9d901196f91da12ee16076 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "content-hash": "844e9f7f4727de9fb76de196d29d0a23",
+    "content-hash": "f761947d278ea505f08ef2467d3fac6b",
     "packages": [
         {
             "name": "alchemy/zippy",
@@ -122,6 +122,16 @@
             ],
             "time": "2017-12-20T14:37:45+00:00"
         },
+        {
+            "name": "browserstate/history.js",
+            "version": "1.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/browserstate/history.js",
+                "reference": "origin/master"
+            },
+            "type": "drupal-library"
+        },
         {
             "name": "commerceguys/addressing",
             "version": "v1.0.0",
@@ -2516,7 +2526,8 @@
                     "merge-extra": false
                 },
                 "patches_applied": {
-                    "2799049": "https://www.drupal.org/files/issues/role_based_email_access-2799049-2.patch"
+                    "2799049": "https://www.drupal.org/files/issues/role_based_email_access-2799049-2.patch",
+                    "2786577": "https://www.drupal.org/files/issues/2786577-270_0.patch"
                 }
             },
             "autoload": {
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index dbab98684165fe5c6fbe0fec1ddc5b42fc0c3e9d..8aefba85590b17da580ad7e5d12a01b9e56ac435 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -119,6 +119,18 @@
             "stack"
         ]
     },
+    {
+        "name": "browserstate/history.js",
+        "version": "1.8.0",
+        "version_normalized": "1.8.0.0",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/browserstate/history.js",
+            "reference": "origin/master"
+        },
+        "type": "drupal-library",
+        "installation-source": "source"
+    },
     {
         "name": "commerceguys/addressing",
         "version": "v1.0.0",
diff --git a/web/libraries/history.js b/web/libraries/history.js
new file mode 160000
index 0000000000000000000000000000000000000000..d213d8cb22e8fd1cf1c9963925e4989f8903b483
--- /dev/null
+++ b/web/libraries/history.js
@@ -0,0 +1 @@
+Subproject commit d213d8cb22e8fd1cf1c9963925e4989f8903b483