diff --git a/node_modules/imagemin-svgo/index.js b/node_modules/imagemin-svgo/index.js
new file mode 100644
index 0000000..6447b91
--- /dev/null
+++ b/node_modules/imagemin-svgo/index.js
@@ -0,0 +1,18 @@
+'use strict';
+const isSvg = require('is-svg');
+const SVGO = require('svgo');
+
+module.exports = options => buffer => {
+	options = Object.assign({multipass: true}, options);
+
+	if (!isSvg(buffer)) {
+		return Promise.resolve(buffer);
+	}
+
+	if (Buffer.isBuffer(buffer)) {
+		buffer = buffer.toString();
+	}
+
+	const svgo = new SVGO(options);
+	return svgo.optimize(buffer).then(result => Buffer.from(result.data));
+};
diff --git a/node_modules/imagemin-svgo/license b/node_modules/imagemin-svgo/license
new file mode 100644
index 0000000..038c983
--- /dev/null
+++ b/node_modules/imagemin-svgo/license
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Imagemin (github.com/imagemin)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/node_modules/imagemin-svgo/package.json b/node_modules/imagemin-svgo/package.json
new file mode 100644
index 0000000..b4ce964
--- /dev/null
+++ b/node_modules/imagemin-svgo/package.json
@@ -0,0 +1,66 @@
+{
+  "_from": "imagemin-svgo@^7.0.0",
+  "_id": "imagemin-svgo@7.1.0",
+  "_inBundle": false,
+  "_integrity": "sha512-0JlIZNWP0Luasn1HT82uB9nU9aa+vUj6kpT+MjPW11LbprXC+iC4HDwn1r4Q2/91qj4iy9tRZNsFySMlEpLdpg==",
+  "_location": "/imagemin-svgo",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "imagemin-svgo@^7.0.0",
+    "name": "imagemin-svgo",
+    "escapedName": "imagemin-svgo",
+    "rawSpec": "^7.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^7.0.0"
+  },
+  "_requiredBy": [
+    "/grunt-contrib-imagemin"
+  ],
+  "_resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.1.0.tgz",
+  "_shasum": "528a42fd3d55eff5d4af8fd1113f25fb61ad6d9a",
+  "_spec": "imagemin-svgo@^7.0.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\grunt-contrib-imagemin",
+  "bugs": {
+    "url": "https://github.com/imagemin/imagemin-svgo/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "is-svg": "^4.2.1",
+    "svgo": "^1.3.2"
+  },
+  "deprecated": false,
+  "description": "SVGO imagemin plugin",
+  "devDependencies": {
+    "ava": "^1.0.0",
+    "xo": "^0.20.0"
+  },
+  "engines": {
+    "node": ">=6"
+  },
+  "files": [
+    "index.js"
+  ],
+  "funding": "https://github.com/sindresorhus/imagemin-svgo?sponsor=1",
+  "homepage": "https://github.com/imagemin/imagemin-svgo#readme",
+  "keywords": [
+    "compress",
+    "image",
+    "imageminplugin",
+    "minify",
+    "optimize",
+    "svg",
+    "svgo"
+  ],
+  "license": "MIT",
+  "name": "imagemin-svgo",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/imagemin/imagemin-svgo.git"
+  },
+  "scripts": {
+    "test": "xo && ava"
+  },
+  "version": "7.1.0"
+}
diff --git a/node_modules/imagemin-svgo/readme.md b/node_modules/imagemin-svgo/readme.md
new file mode 100644
index 0000000..d9c0812
--- /dev/null
+++ b/node_modules/imagemin-svgo/readme.md
@@ -0,0 +1,56 @@
+# imagemin-svgo [![Build Status](https://travis-ci.org/imagemin/imagemin-svgo.svg?branch=master)](https://travis-ci.org/imagemin/imagemin-svgo)
+
+> [SVGO](https://github.com/svg/svgo) imagemin plugin
+
+
+## Install
+
+```
+$ npm install imagemin-svgo
+```
+
+
+## Usage
+
+```js
+const imagemin = require('imagemin');
+const imageminSvgo = require('imagemin-svgo');
+
+(async () => {
+	await imagemin(['images/*.svg'], 'build/images', {
+		use: [
+			imageminSvgo({
+				plugins: [
+					{removeViewBox: false}
+				]
+			})
+		]
+	});
+
+	console.log('Images optimized');
+})();
+```
+
+
+## API
+
+### imageminSvgo([options])(buffer)
+
+Returns a `Promise<Buffer>`.
+
+#### options
+
+Type: `Object`
+
+Pass options to [SVGO](https://github.com/svg/svgo#what-it-can-do).
+
+#### buffer
+
+Type: `Buffer`
+
+Buffer to optimize.
+
+
+## License
+
+MIT © [imagemin](https://github.com/imagemin)
