Index: .travis.yml
===================================================================
--- .travis.yml	(revision 47544)
+++ .travis.yml	(working copy)
@@ -30,7 +30,7 @@
     name: E2E Tests
   - env: WP_TRAVISCI=lint:php COMPOSER_INSTALL=true NPM_INSTALL=false WP_INSTALL=false
     name: PHP Linting
-  - env: WP_TRAVISCI=travis:js WP_INSTALL=false
+  - env: WP_TRAVISCI=travis:js WP_INSTALL=false PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=
     name: JS Tests
   - env: WP_TRAVISCI=test:compat COMPOSER_INSTALL=true NPM_INSTALL=false WP_INSTALL=false
     name: "PHP Compatibility Check"
Index: package-lock.json
===================================================================
--- package-lock.json	(revision 47544)
+++ package-lock.json	(working copy)
@@ -4634,7 +4634,6 @@
 					"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz",
 					"integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==",
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"p-finally": "^1.0.0"
 					}
@@ -4679,7 +4678,6 @@
 			"resolved": "http://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
 			"integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"readable-stream": "^2.3.5",
 				"safe-buffer": "^5.1.1"
@@ -4972,7 +4970,6 @@
 			"resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
 			"integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"buffer-alloc-unsafe": "^1.1.0",
 				"buffer-fill": "^1.0.0"
@@ -4982,22 +4979,19 @@
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
 			"integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"buffer-crc32": {
 			"version": "0.2.13",
 			"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
 			"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"buffer-fill": {
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
 			"integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"buffer-from": {
 			"version": "1.1.1",
@@ -5257,7 +5251,6 @@
 			"resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz",
 			"integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"get-proxy": "^2.0.0",
 				"isurl": "^1.0.0-alpha5",
@@ -5832,7 +5825,6 @@
 			"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
 			"integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"ini": "^1.3.4",
 				"proto-list": "~1.2.1"
@@ -6594,11 +6586,10 @@
 			"dev": true
 		},
 		"decompress": {
-			"version": "4.2.0",
-			"resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz",
-			"integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=",
+			"version": "4.2.1",
+			"resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz",
+			"integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"decompress-tar": "^4.0.0",
 				"decompress-tarbz2": "^4.0.0",
@@ -6615,7 +6606,6 @@
 					"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
 					"integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"pify": "^3.0.0"
 					},
@@ -6624,8 +6614,7 @@
 							"version": "3.0.0",
 							"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
 							"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-							"dev": true,
-							"optional": true
+							"dev": true
 						}
 					}
 				},
@@ -6633,8 +6622,7 @@
 					"version": "2.3.0",
 					"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
 					"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-					"dev": true,
-					"optional": true
+					"dev": true
 				}
 			}
 		},
@@ -6643,7 +6631,6 @@
 			"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
 			"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"mimic-response": "^1.0.0"
 			}
@@ -6653,7 +6640,6 @@
 			"resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
 			"integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"file-type": "^5.2.0",
 				"is-stream": "^1.1.0",
@@ -6664,8 +6650,7 @@
 					"version": "5.2.0",
 					"resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
 					"integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=",
-					"dev": true,
-					"optional": true
+					"dev": true
 				}
 			}
 		},
@@ -6674,7 +6659,6 @@
 			"resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
 			"integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"decompress-tar": "^4.1.0",
 				"file-type": "^6.1.0",
@@ -6687,8 +6671,7 @@
 					"version": "6.2.0",
 					"resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
 					"integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==",
-					"dev": true,
-					"optional": true
+					"dev": true
 				}
 			}
 		},
@@ -6697,7 +6680,6 @@
 			"resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
 			"integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"decompress-tar": "^4.1.1",
 				"file-type": "^5.2.0",
@@ -6708,8 +6690,7 @@
 					"version": "5.2.0",
 					"resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
 					"integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=",
-					"dev": true,
-					"optional": true
+					"dev": true
 				}
 			}
 		},
@@ -6718,7 +6699,6 @@
 			"resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
 			"integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"file-type": "^3.8.0",
 				"get-stream": "^2.2.0",
@@ -6731,7 +6711,6 @@
 					"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
 					"integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"pend": "~1.2.0"
 					}
@@ -6740,8 +6719,7 @@
 					"version": "3.9.0",
 					"resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
 					"integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"get-stream": {
 					"version": "2.3.1",
@@ -6748,7 +6726,6 @@
 					"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
 					"integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=",
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"object-assign": "^4.0.1",
 						"pinkie-promise": "^2.0.0"
@@ -6758,8 +6735,7 @@
 					"version": "2.3.0",
 					"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
 					"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"yauzl": {
 					"version": "2.10.0",
@@ -6766,7 +6742,6 @@
 					"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
 					"integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"buffer-crc32": "~0.2.3",
 						"fd-slicer": "~1.1.0"
@@ -7272,8 +7247,7 @@
 					"version": "3.0.0",
 					"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
 					"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-					"dev": true,
-					"optional": true
+					"dev": true
 				}
 			}
 		},
@@ -7305,8 +7279,7 @@
 			"version": "0.1.4",
 			"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
 			"integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"duplexify": {
 			"version": "3.7.1",
@@ -7727,6 +7700,15 @@
 			"integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
 			"dev": true
 		},
+		"es6-promisify": {
+			"version": "5.0.0",
+			"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+			"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+			"dev": true,
+			"requires": {
+				"es6-promise": "^4.0.3"
+			}
+		},
 		"escape-html": {
 			"version": "1.0.3",
 			"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -8297,7 +8279,6 @@
 			"resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
 			"integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"cross-spawn": "^5.0.1",
 				"get-stream": "^3.0.0",
@@ -8460,7 +8441,6 @@
 			"resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
 			"integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"mime-db": "^1.28.0"
 			}
@@ -8470,7 +8450,6 @@
 			"resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz",
 			"integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"ext-list": "^2.0.0",
 				"sort-keys-length": "^1.0.0"
@@ -8741,8 +8720,7 @@
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
 			"integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"filenamify": {
 			"version": "2.1.0",
@@ -8749,7 +8727,6 @@
 			"resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz",
 			"integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"filename-reserved-regex": "^2.0.0",
 				"strip-outer": "^1.0.0",
@@ -8892,23 +8869,13 @@
 			}
 		},
 		"find-versions": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.1.0.tgz",
-			"integrity": "sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q==",
+			"version": "3.2.0",
+			"resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz",
+			"integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==",
 			"dev": true,
 			"optional": true,
 			"requires": {
-				"array-uniq": "^2.1.0",
 				"semver-regex": "^2.0.0"
-			},
-			"dependencies": {
-				"array-uniq": {
-					"version": "2.1.0",
-					"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.1.0.tgz",
-					"integrity": "sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ==",
-					"dev": true,
-					"optional": true
-				}
 			}
 		},
 		"findup": {
@@ -9142,8 +9109,7 @@
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
 			"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"fs-exists-sync": {
 			"version": "0.1.0",
@@ -9151,17 +9117,6 @@
 			"integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=",
 			"dev": true
 		},
-		"fs-extra": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
-			"integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
-			"dev": true,
-			"requires": {
-				"graceful-fs": "^4.1.2",
-				"jsonfile": "^2.1.0",
-				"klaw": "^1.0.0"
-			}
-		},
 		"fs-write-stream-atomic": {
 			"version": "1.0.10",
 			"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
@@ -9199,8 +9154,7 @@
 				"ansi-regex": {
 					"version": "2.1.1",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"aproba": {
 					"version": "1.2.0",
@@ -9221,14 +9175,12 @@
 				"balanced-match": {
 					"version": "1.0.0",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"brace-expansion": {
 					"version": "1.1.11",
 					"bundled": true,
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"balanced-match": "^1.0.0",
 						"concat-map": "0.0.1"
@@ -9243,20 +9195,17 @@
 				"code-point-at": {
 					"version": "1.1.0",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"concat-map": {
 					"version": "0.0.1",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"console-control-strings": {
 					"version": "1.1.0",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"core-util-is": {
 					"version": "1.0.2",
@@ -9373,8 +9322,7 @@
 				"inherits": {
 					"version": "2.0.3",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"ini": {
 					"version": "1.3.5",
@@ -9386,7 +9334,6 @@
 					"version": "1.0.0",
 					"bundled": true,
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"number-is-nan": "^1.0.0"
 					}
@@ -9401,7 +9348,6 @@
 					"version": "3.0.4",
 					"bundled": true,
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"brace-expansion": "^1.1.7"
 					}
@@ -9409,14 +9355,12 @@
 				"minimist": {
 					"version": "0.0.8",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"minipass": {
 					"version": "2.3.5",
 					"bundled": true,
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"safe-buffer": "^5.1.2",
 						"yallist": "^3.0.0"
@@ -9435,7 +9379,6 @@
 					"version": "0.5.1",
 					"bundled": true,
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"minimist": "0.0.8"
 					}
@@ -9516,8 +9459,7 @@
 				"number-is-nan": {
 					"version": "1.0.1",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"object-assign": {
 					"version": "4.1.1",
@@ -9529,7 +9471,6 @@
 					"version": "1.4.0",
 					"bundled": true,
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"wrappy": "1"
 					}
@@ -9615,8 +9556,7 @@
 				"safe-buffer": {
 					"version": "5.1.2",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"safer-buffer": {
 					"version": "2.1.2",
@@ -9652,7 +9592,6 @@
 					"version": "1.0.2",
 					"bundled": true,
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"code-point-at": "^1.0.0",
 						"is-fullwidth-code-point": "^1.0.0",
@@ -9672,7 +9611,6 @@
 					"version": "3.0.1",
 					"bundled": true,
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"ansi-regex": "^2.0.0"
 					}
@@ -9716,14 +9654,12 @@
 				"wrappy": {
 					"version": "1.0.2",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"yallist": {
 					"version": "3.0.3",
 					"bundled": true,
-					"dev": true,
-					"optional": true
+					"dev": true
 				}
 			}
 		},
@@ -9892,7 +9828,6 @@
 			"resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz",
 			"integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"npm-conf": "^1.1.0"
 			}
@@ -9915,8 +9850,7 @@
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
 			"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"get-value": {
 			"version": "2.0.6",
@@ -10245,18 +10179,18 @@
 			}
 		},
 		"gonzales-pe": {
-			"version": "4.2.4",
-			"resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.4.tgz",
-			"integrity": "sha512-v0Ts/8IsSbh9n1OJRnSfa7Nlxi4AkXIsWB6vPept8FDbL4bXn3FNuxjYtO/nmBGu7GDkL9MFeGebeSu6l55EPQ==",
+			"version": "4.3.0",
+			"resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz",
+			"integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==",
 			"dev": true,
 			"requires": {
-				"minimist": "1.1.x"
+				"minimist": "^1.2.5"
 			},
 			"dependencies": {
 				"minimist": {
-					"version": "1.1.3",
-					"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz",
-					"integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=",
+					"version": "1.2.5",
+					"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+					"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
 					"dev": true
 				}
 			}
@@ -10301,8 +10235,7 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
 			"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"gradient-parser": {
 			"version": "0.1.5",
@@ -10316,9 +10249,9 @@
 			"dev": true
 		},
 		"grunt": {
-			"version": "1.0.4",
-			"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.4.tgz",
-			"integrity": "sha512-PYsMOrOC+MsdGEkFVwMaMyc6Ob7pKmq+deg1Sjr+vvMWp35sztfwKE7qoN51V+UEtHsyNuMcGdgMLFkBHvMxHQ==",
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.1.0.tgz",
+			"integrity": "sha512-+NGod0grmviZ7Nzdi9am7vuRS/h76PcWDsV635mEXF0PEQMUV6Kb+OjTdsVxbi0PZmfQOjCMKb3w8CVZcqsn1g==",
 			"dev": true,
 			"requires": {
 				"coffeescript": "~1.10.0",
@@ -10332,9 +10265,9 @@
 				"grunt-legacy-log": "~2.0.0",
 				"grunt-legacy-util": "~1.1.1",
 				"iconv-lite": "~0.4.13",
-				"js-yaml": "~3.13.0",
+				"js-yaml": "~3.13.1",
 				"minimatch": "~3.0.2",
-				"mkdirp": "~0.5.1",
+				"mkdirp": "~1.0.3",
 				"nopt": "~3.0.6",
 				"path-is-absolute": "~1.0.0",
 				"rimraf": "~2.6.2"
@@ -10390,6 +10323,12 @@
 						"resolve": "~1.1.0"
 					}
 				},
+				"mkdirp": {
+					"version": "1.0.3",
+					"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz",
+					"integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==",
+					"dev": true
+				},
 				"resolve": {
 					"version": "1.1.7",
 					"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
@@ -10480,9 +10419,9 @@
 			}
 		},
 		"grunt-contrib-imagemin": {
-			"version": "3.1.0",
-			"resolved": "https://registry.npmjs.org/grunt-contrib-imagemin/-/grunt-contrib-imagemin-3.1.0.tgz",
-			"integrity": "sha512-c0duAb018eowVVfqNMN0S5Esx8mRZ1OP/hkEoKnJkOCaD9/DywKGvLuhschF+DByPSs4k1u1y38w9Bt+ihJG8A==",
+			"version": "4.0.0",
+			"resolved": "https://registry.npmjs.org/grunt-contrib-imagemin/-/grunt-contrib-imagemin-4.0.0.tgz",
+			"integrity": "sha512-2GYQBQFfJLjeTThJ8E7+vLgvgfOh78u0bgieIK85c2Rv9V6ssd2AvBvuF7T26mK261EN/SlNefpW5+zGWzfrVw==",
 			"dev": true,
 			"requires": {
 				"chalk": "^2.4.1",
@@ -10576,12 +10515,92 @@
 			}
 		},
 		"grunt-contrib-qunit": {
-			"version": "1.3.0",
-			"resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-1.3.0.tgz",
-			"integrity": "sha1-naxijP1OyBWZhjPbc7Ur2z3byZ4=",
+			"version": "3.1.0",
+			"resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-3.1.0.tgz",
+			"integrity": "sha512-mdk8UltH6mxCD63E0hTXMAts42DOi4z4bBBrY7qnuHiShflMF7IueSMYe0zWaZ2dO8mgujh57Zfny2EbigJhRg==",
 			"dev": true,
 			"requires": {
-				"grunt-lib-phantomjs": "^1.0.0"
+				"eventemitter2": "^5.0.1",
+				"p-each-series": "^1.0.0",
+				"puppeteer": "^1.11.0"
+			},
+			"dependencies": {
+				"agent-base": {
+					"version": "4.3.0",
+					"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+					"integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+					"dev": true,
+					"requires": {
+						"es6-promisify": "^5.0.0"
+					}
+				},
+				"debug": {
+					"version": "4.1.1",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+					"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+					"dev": true,
+					"requires": {
+						"ms": "^2.1.1"
+					}
+				},
+				"eventemitter2": {
+					"version": "5.0.1",
+					"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz",
+					"integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=",
+					"dev": true
+				},
+				"https-proxy-agent": {
+					"version": "2.2.4",
+					"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
+					"integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
+					"dev": true,
+					"requires": {
+						"agent-base": "^4.3.0",
+						"debug": "^3.1.0"
+					},
+					"dependencies": {
+						"debug": {
+							"version": "3.2.6",
+							"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+							"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+							"dev": true,
+							"requires": {
+								"ms": "^2.1.1"
+							}
+						}
+					}
+				},
+				"ms": {
+					"version": "2.1.2",
+					"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+					"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+					"dev": true
+				},
+				"puppeteer": {
+					"version": "1.20.0",
+					"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.20.0.tgz",
+					"integrity": "sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ==",
+					"dev": true,
+					"requires": {
+						"debug": "^4.1.0",
+						"extract-zip": "^1.6.6",
+						"https-proxy-agent": "^2.2.1",
+						"mime": "^2.0.3",
+						"progress": "^2.0.1",
+						"proxy-from-env": "^1.0.0",
+						"rimraf": "^2.6.1",
+						"ws": "^6.1.0"
+					}
+				},
+				"ws": {
+					"version": "6.2.1",
+					"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
+					"integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
+					"dev": true,
+					"requires": {
+						"async-limiter": "~1.0.0"
+					}
+				}
 			}
 		},
 		"grunt-contrib-uglify": {
@@ -10775,19 +10794,6 @@
 				}
 			}
 		},
-		"grunt-lib-phantomjs": {
-			"version": "1.1.0",
-			"resolved": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz",
-			"integrity": "sha1-np7c3Z/S3UDgwYHJQ3HVcqpe6tI=",
-			"dev": true,
-			"requires": {
-				"eventemitter2": "^0.4.9",
-				"phantomjs-prebuilt": "^2.1.3",
-				"rimraf": "^2.5.2",
-				"semver": "^5.1.0",
-				"temporary": "^0.0.8"
-			}
-		},
 		"grunt-patch-wordpress": {
 			"version": "2.0.0",
 			"resolved": "https://registry.npmjs.org/grunt-patch-wordpress/-/grunt-patch-wordpress-2.0.0.tgz",
@@ -11053,8 +11059,7 @@
 			"version": "1.4.2",
 			"resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
 			"integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"has-symbols": {
 			"version": "1.0.0",
@@ -11066,7 +11071,6 @@
 			"resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz",
 			"integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"has-symbol-support-x": "^1.4.1"
 			}
@@ -11129,16 +11133,6 @@
 				"minimalistic-assert": "^1.0.1"
 			}
 		},
-		"hasha": {
-			"version": "2.2.0",
-			"resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz",
-			"integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=",
-			"dev": true,
-			"requires": {
-				"is-stream": "^1.0.1",
-				"pinkie-promise": "^2.0.0"
-			}
-		},
 		"hex-color-regex": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
@@ -11541,14 +11535,165 @@
 			}
 		},
 		"imagemin-svgo": {
-			"version": "7.0.0",
-			"resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.0.0.tgz",
-			"integrity": "sha512-+iGJFaPIMx8TjFW6zN+EkOhlqcemdL7F3N3Y0wODvV2kCUBuUtZK7DRZc1+Zfu4U2W/lTMUyx2G8YMOrZntIWg==",
+			"version": "7.1.0",
+			"resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz",
+			"integrity": "sha512-0JlIZNWP0Luasn1HT82uB9nU9aa+vUj6kpT+MjPW11LbprXC+iC4HDwn1r4Q2/91qj4iy9tRZNsFySMlEpLdpg==",
 			"dev": true,
 			"optional": true,
 			"requires": {
-				"is-svg": "^3.0.0",
-				"svgo": "^1.0.5"
+				"is-svg": "^4.2.1",
+				"svgo": "^1.3.2"
+			},
+			"dependencies": {
+				"ansi-styles": {
+					"version": "3.2.1",
+					"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+					"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+					"dev": true,
+					"optional": true,
+					"requires": {
+						"color-convert": "^1.9.0"
+					}
+				},
+				"chalk": {
+					"version": "2.4.2",
+					"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+					"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+					"dev": true,
+					"optional": true,
+					"requires": {
+						"ansi-styles": "^3.2.1",
+						"escape-string-regexp": "^1.0.5",
+						"supports-color": "^5.3.0"
+					}
+				},
+				"css-select": {
+					"version": "2.1.0",
+					"resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+					"integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+					"dev": true,
+					"optional": true,
+					"requires": {
+						"boolbase": "^1.0.0",
+						"css-what": "^3.2.1",
+						"domutils": "^1.7.0",
+						"nth-check": "^1.0.2"
+					}
+				},
+				"css-tree": {
+					"version": "1.0.0-alpha.37",
+					"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
+					"integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
+					"dev": true,
+					"optional": true,
+					"requires": {
+						"mdn-data": "2.0.4",
+						"source-map": "^0.6.1"
+					}
+				},
+				"css-what": {
+					"version": "3.2.1",
+					"resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz",
+					"integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==",
+					"dev": true,
+					"optional": true
+				},
+				"csso": {
+					"version": "4.0.3",
+					"resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz",
+					"integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==",
+					"dev": true,
+					"optional": true,
+					"requires": {
+						"css-tree": "1.0.0-alpha.39"
+					},
+					"dependencies": {
+						"css-tree": {
+							"version": "1.0.0-alpha.39",
+							"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz",
+							"integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==",
+							"dev": true,
+							"optional": true,
+							"requires": {
+								"mdn-data": "2.0.6",
+								"source-map": "^0.6.1"
+							}
+						},
+						"mdn-data": {
+							"version": "2.0.6",
+							"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz",
+							"integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==",
+							"dev": true,
+							"optional": true
+						}
+					}
+				},
+				"domutils": {
+					"version": "1.7.0",
+					"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+					"integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+					"dev": true,
+					"optional": true,
+					"requires": {
+						"dom-serializer": "0",
+						"domelementtype": "1"
+					}
+				},
+				"is-svg": {
+					"version": "4.2.1",
+					"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.2.1.tgz",
+					"integrity": "sha512-PHx3ANecKsKNl5y5+Jvt53Y4J7MfMpbNZkv384QNiswMKAWIbvcqbPz+sYbFKJI8Xv3be01GSFniPmoaP+Ai5A==",
+					"dev": true,
+					"optional": true,
+					"requires": {
+						"html-comment-regex": "^1.1.2"
+					}
+				},
+				"mdn-data": {
+					"version": "2.0.4",
+					"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
+					"integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==",
+					"dev": true,
+					"optional": true
+				},
+				"source-map": {
+					"version": "0.6.1",
+					"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+					"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+					"dev": true
+				},
+				"supports-color": {
+					"version": "5.5.0",
+					"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+					"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+					"dev": true,
+					"optional": true,
+					"requires": {
+						"has-flag": "^3.0.0"
+					}
+				},
+				"svgo": {
+					"version": "1.3.2",
+					"resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
+					"integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
+					"dev": true,
+					"optional": true,
+					"requires": {
+						"chalk": "^2.4.1",
+						"coa": "^2.0.2",
+						"css-select": "^2.0.0",
+						"css-select-base-adapter": "^0.1.1",
+						"css-tree": "1.0.0-alpha.37",
+						"csso": "^4.0.2",
+						"js-yaml": "^3.13.1",
+						"mkdirp": "~0.5.1",
+						"object.values": "^1.1.0",
+						"sax": "~1.2.4",
+						"stable": "^0.1.8",
+						"unquote": "~1.1.1",
+						"util.promisify": "~1.0.0"
+					}
+				}
 			}
 		},
 		"imagesloaded": {
@@ -12192,8 +12337,7 @@
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
 			"integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"is-number": {
 			"version": "3.0.0",
@@ -12220,8 +12364,7 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz",
 			"integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"is-path-cwd": {
 			"version": "2.2.0",
@@ -12298,8 +12441,7 @@
 			"version": "1.2.0",
 			"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
 			"integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"is-stream": {
 			"version": "1.1.0",
@@ -12530,7 +12672,6 @@
 			"resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz",
 			"integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"has-to-string-tag-x": "^1.2.0",
 				"is-object": "^1.0.1"
@@ -14121,15 +14262,6 @@
 			"integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==",
 			"dev": true
 		},
-		"jsonfile": {
-			"version": "2.4.0",
-			"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
-			"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
-			"dev": true,
-			"requires": {
-				"graceful-fs": "^4.1.6"
-			}
-		},
 		"jsprim": {
 			"version": "1.4.1",
 			"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
@@ -14158,12 +14290,6 @@
 			"integrity": "sha512-ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==",
 			"dev": true
 		},
-		"kew": {
-			"version": "0.7.0",
-			"resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz",
-			"integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=",
-			"dev": true
-		},
 		"keyv": {
 			"version": "3.0.0",
 			"resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz",
@@ -14188,15 +14314,6 @@
 				"is-buffer": "^1.1.5"
 			}
 		},
-		"klaw": {
-			"version": "1.3.1",
-			"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
-			"integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
-			"dev": true,
-			"requires": {
-				"graceful-fs": "^4.1.9"
-			}
-		},
 		"kleur": {
 			"version": "3.0.3",
 			"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
@@ -14539,8 +14656,7 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
 			"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"lpad-align": {
 			"version": "1.1.2",
@@ -14577,8 +14693,7 @@
 					"version": "4.0.1",
 					"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
 					"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"indent-string": {
 					"version": "2.1.0",
@@ -14585,7 +14700,6 @@
 					"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
 					"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"repeating": "^2.0.0"
 					}
@@ -14594,8 +14708,7 @@
 					"version": "1.0.1",
 					"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
 					"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
-					"dev": true,
-					"optional": true
+					"dev": true
 				},
 				"meow": {
 					"version": "3.7.0",
@@ -15106,8 +15219,7 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
 			"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"min-indent": {
 			"version": "1.0.0",
@@ -15698,7 +15810,6 @@
 			"resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz",
 			"integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"config-chain": "^1.1.11",
 				"pify": "^3.0.0"
@@ -15708,8 +15819,7 @@
 					"version": "3.0.0",
 					"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
 					"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
-					"dev": true,
-					"optional": true
+					"dev": true
 				}
 			}
 		},
@@ -16445,7 +16555,6 @@
 			"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
 			"integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"p-finally": "^1.0.0"
 			}
@@ -16455,12 +16564,6 @@
 			"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
 			"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
 		},
-		"package": {
-			"version": "1.0.1",
-			"resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz",
-			"integrity": "sha1-0lofmeJQbcsn1nBLg9yooxLk7cw=",
-			"dev": true
-		},
 		"pako": {
 			"version": "1.0.10",
 			"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
@@ -16635,31 +16738,6 @@
 			"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
 			"dev": true
 		},
-		"phantomjs-prebuilt": {
-			"version": "2.1.16",
-			"resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz",
-			"integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
-			"dev": true,
-			"requires": {
-				"es6-promise": "^4.0.3",
-				"extract-zip": "^1.6.5",
-				"fs-extra": "^1.0.0",
-				"hasha": "^2.2.0",
-				"kew": "^0.7.0",
-				"progress": "^1.1.8",
-				"request": "^2.81.0",
-				"request-progress": "^2.0.1",
-				"which": "^1.2.10"
-			},
-			"dependencies": {
-				"progress": {
-					"version": "1.1.8",
-					"resolved": "http://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
-					"integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
-					"dev": true
-				}
-			}
-		},
 		"picomatch": {
 			"version": "2.2.2",
 			"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
@@ -17617,8 +17695,7 @@
 			"version": "1.2.4",
 			"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
 			"integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"proxy-addr": {
 			"version": "2.0.5",
@@ -18515,15 +18592,6 @@
 				}
 			}
 		},
-		"request-progress": {
-			"version": "2.0.1",
-			"resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
-			"integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=",
-			"dev": true,
-			"requires": {
-				"throttleit": "^1.0.0"
-			}
-		},
 		"request-promise-core": {
 			"version": "1.1.3",
 			"resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
@@ -19133,7 +19201,6 @@
 			"resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
 			"integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"commander": "~2.8.1"
 			},
@@ -19143,7 +19210,6 @@
 					"resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
 					"integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"graceful-readlink": ">= 1.0.0"
 					}
@@ -19731,7 +19797,6 @@
 			"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
 			"integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"is-plain-obj": "^1.0.0"
 			}
@@ -19741,7 +19806,6 @@
 			"resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
 			"integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"sort-keys": "^1.0.0"
 			}
@@ -20367,7 +20431,6 @@
 			"resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
 			"integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"is-natural-number": "^4.0.1"
 			}
@@ -20398,7 +20461,6 @@
 			"resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
 			"integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"escape-string-regexp": "^1.0.2"
 			}
@@ -21038,7 +21100,6 @@
 			"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
 			"integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"bl": "^1.0.0",
 				"buffer-alloc": "^1.2.0",
@@ -21053,8 +21114,7 @@
 			"version": "1.0.0",
 			"resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
 			"integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"tempfile": {
 			"version": "2.0.0",
@@ -21061,21 +21121,11 @@
 			"resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz",
 			"integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"temp-dir": "^1.0.0",
 				"uuid": "^3.0.1"
 			}
 		},
-		"temporary": {
-			"version": "0.0.8",
-			"resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz",
-			"integrity": "sha1-oYqYHSi6jKNgJ/s8MFOMPst0CsA=",
-			"dev": true,
-			"requires": {
-				"package": ">= 1.0.0 < 1.2.0"
-			}
-		},
 		"terser": {
 			"version": "4.3.7",
 			"resolved": "https://registry.npmjs.org/terser/-/terser-4.3.7.tgz",
@@ -21189,12 +21239,6 @@
 			"integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=",
 			"dev": true
 		},
-		"throttleit": {
-			"version": "1.0.0",
-			"resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
-			"integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
-			"dev": true
-		},
 		"through": {
 			"version": "2.3.8",
 			"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
@@ -21221,8 +21265,7 @@
 			"version": "4.0.1",
 			"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
 			"integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"timers-browserify": {
 			"version": "2.0.10",
@@ -21305,8 +21348,7 @@
 			"version": "1.1.1",
 			"resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
 			"integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"to-fast-properties": {
 			"version": "2.0.0",
@@ -21438,7 +21480,6 @@
 			"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
 			"integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"escape-string-regexp": "^1.0.2"
 			}
@@ -21662,11 +21703,10 @@
 			}
 		},
 		"unbzip2-stream": {
-			"version": "1.3.3",
-			"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz",
-			"integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==",
+			"version": "1.4.0",
+			"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.0.tgz",
+			"integrity": "sha512-kVx7CDAsdBSWVf404Mw7oI9i09w5/mTT/Ruk+RWa64PLYKvsAucLLFHvQtnvjeADM4ZizxrvG5SHnF4Te4T2Cg==",
 			"dev": true,
-			"optional": true,
 			"requires": {
 				"buffer": "^5.2.1",
 				"through": "^2.3.8"
@@ -21673,11 +21713,10 @@
 			},
 			"dependencies": {
 				"buffer": {
-					"version": "5.4.3",
-					"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz",
-					"integrity": "sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==",
+					"version": "5.5.0",
+					"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz",
+					"integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==",
 					"dev": true,
-					"optional": true,
 					"requires": {
 						"base64-js": "^1.0.2",
 						"ieee754": "^1.1.4"
@@ -21977,8 +22016,7 @@
 			"version": "1.0.1",
 			"resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
 			"integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
-			"dev": true,
-			"optional": true
+			"dev": true
 		},
 		"use": {
 			"version": "3.1.1",
Index: package.json
===================================================================
--- package.json	(revision 47544)
+++ package.json	(working copy)
@@ -36,15 +36,15 @@
 		"cssnano": "4.1.10",
 		"dotenv": "8.1.0",
 		"dotenv-expand": "5.1.0",
-		"grunt": "~1.0.4",
+		"grunt": "~1.1.0",
 		"grunt-banner": "^0.6.0",
 		"grunt-contrib-clean": "~2.0.0",
 		"grunt-contrib-concat": "1.0.1",
 		"grunt-contrib-copy": "~1.0.0",
 		"grunt-contrib-cssmin": "~3.0.0",
-		"grunt-contrib-imagemin": "~3.1.0",
+		"grunt-contrib-imagemin": "~4.0.0",
 		"grunt-contrib-jshint": "2.1.0",
-		"grunt-contrib-qunit": "^1.2.0",
+		"grunt-contrib-qunit": "^3.1.0",
 		"grunt-contrib-uglify": "~4.0.1",
 		"grunt-contrib-watch": "~1.1.0",
 		"grunt-file-append": "0.0.7",
