diff --git a/node_modules/has-bigints/.eslintignore b/node_modules/has-bigints/.eslintignore
new file mode 100644
index 0000000..404abb2
--- /dev/null
+++ b/node_modules/has-bigints/.eslintignore
@@ -0,0 +1 @@
+coverage/
diff --git a/node_modules/has-bigints/.eslintrc b/node_modules/has-bigints/.eslintrc
new file mode 100644
index 0000000..699b23b
--- /dev/null
+++ b/node_modules/has-bigints/.eslintrc
@@ -0,0 +1,9 @@
+{
+	"root": true,
+
+	"extends": "@ljharb",
+
+	"rules": {
+		"operator-linebreak": [2, "before"],
+	},
+}
diff --git a/node_modules/has-bigints/.github/FUNDING.yml b/node_modules/has-bigints/.github/FUNDING.yml
new file mode 100644
index 0000000..5b597c8
--- /dev/null
+++ b/node_modules/has-bigints/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/has-bigints
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/has-bigints/.nycrc b/node_modules/has-bigints/.nycrc
new file mode 100644
index 0000000..1826526
--- /dev/null
+++ b/node_modules/has-bigints/.nycrc
@@ -0,0 +1,13 @@
+{
+	"all": true,
+	"check-coverage": false,
+	"reporter": ["text-summary", "text", "html", "json"],
+	"lines": 86,
+	"statements": 85.93,
+	"functions": 82.43,
+	"branches": 76.06,
+	"exclude": [
+		"coverage",
+		"test"
+	]
+}
diff --git a/node_modules/has-bigints/CHANGELOG.md b/node_modules/has-bigints/CHANGELOG.md
new file mode 100644
index 0000000..48f9dc2
--- /dev/null
+++ b/node_modules/has-bigints/CHANGELOG.md
@@ -0,0 +1,43 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.0.1](https://github.com/inspect-js/has-bigints/compare/v1.0.0...v1.0.1) - 2020-12-13
+
+### Commits
+
+- [Tests] use shared travis-ci configs [`46a0d6b`](https://github.com/inspect-js/has-bigints/commit/46a0d6be7ed83bd7f5ead11e4eab7fc91570a448)
+- [Tests] migrate tests to Github Actions [`91a38fa`](https://github.com/inspect-js/has-bigints/commit/91a38fa4b85a420b8cf4926b3799e6ceb60d8690)
+- [meta] do not publish github action workflow files [`69aacba`](https://github.com/inspect-js/has-bigints/commit/69aacba320c1221e7fee1c71bde600bce063f24b)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`64e2c08`](https://github.com/inspect-js/has-bigints/commit/64e2c0895b21ac91a137452fd2455932f62a2fc1)
+- [Tests] run `nyc` on all tests; use `tape` runner [`8009375`](https://github.com/inspect-js/has-bigints/commit/8009375e5ec9faca6bbc09441002af5c5e59ff20)
+- [actions] add automatic rebasing / merge commit blocking [`e599917`](https://github.com/inspect-js/has-bigints/commit/e599917fd1f751c9a6c0daac70acb243f8c3a01d)
+- [actions] add "Allow Edits" workflow [`bd0126e`](https://github.com/inspect-js/has-bigints/commit/bd0126eba2d67e9b9d588bced34413f507698154)
+- [readme] remove travis badge [`8e02a73`](https://github.com/inspect-js/has-bigints/commit/8e02a73db34827d24d2945f2db822973a0b49925)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `safe-publish-latest` [`95859f2`](https://github.com/inspect-js/has-bigints/commit/95859f28f23f5733481c52a501063802cf64f75b)
+- [Dev Deps] update `auto-changelog`, `in-publish`, `tape` [`0588f41`](https://github.com/inspect-js/has-bigints/commit/0588f415c6cc01d6b34668680044e03b2998e03f)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`5b024a6`](https://github.com/inspect-js/has-bigints/commit/5b024a664a8b7d2d2f750a4c11ce20c395b6f12a)
+- [meta] add `version` scripts [`4788d61`](https://github.com/inspect-js/has-bigints/commit/4788d61101c009e4e2c1b4d944c263de06192c6a)
+- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`be0e0de`](https://github.com/inspect-js/has-bigints/commit/be0e0de08298dfe483c5d7a2675e5133abeabc53)
+- [Dev Deps] update `auto-changelog`; add `aud` [`13a8d1b`](https://github.com/inspect-js/has-bigints/commit/13a8d1bf1f661871d890bfa174de9514f016cdd9)
+- [actions] fix action name [`f873d9a`](https://github.com/inspect-js/has-bigints/commit/f873d9a2f10718662528a755b12c61202f4e4afa)
+- [meta] add `funding` field [`1b51f49`](https://github.com/inspect-js/has-bigints/commit/1b51f4921df1faf85d2679a0e4ba97ef015a73b7)
+- [Dev Deps] update `auto-changelog` [`2322461`](https://github.com/inspect-js/has-bigints/commit/2322461789810434c447439f155eb3ca23eb29fb)
+- [Tests] only audit prod deps [`aabdade`](https://github.com/inspect-js/has-bigints/commit/aabdadeaa1e126b91a2fbd82263cc49651ff5e7b)
+
+## v1.0.0 - 2019-08-10
+
+### Commits
+
+- [Tests] add `.travis.yml` [`9730412`](https://github.com/inspect-js/has-bigints/commit/973041241dc172474bb9457aad41790fe54fec88)
+- Initial commit [`65f7c38`](https://github.com/inspect-js/has-bigints/commit/65f7c3889d9a98e214e26d650723cbfc49338463)
+- [Tests] add tests [`e374a78`](https://github.com/inspect-js/has-bigints/commit/e374a78033d457badcd47e06752fdec7f62e6c39)
+- readme [`5d39092`](https://github.com/inspect-js/has-bigints/commit/5d3909249da442867180fb747eef27543627d250)
+- npm init [`1be2e3d`](https://github.com/inspect-js/has-bigints/commit/1be2e3d69db6718901e6845cfc38a07cc46dfd96)
+- implementation [`b7bc812`](https://github.com/inspect-js/has-bigints/commit/b7bc8121db1fb1a827625c4cb0608935e3dcbe31)
+- [Tests] add linting [`04533be`](https://github.com/inspect-js/has-bigints/commit/04533bef57f60e322238f71f32ee3ae0c988bac4)
+- [meta] create FUNDING.yml [`cf824a7`](https://github.com/inspect-js/has-bigints/commit/cf824a7d02e867957d8db17ee0a4c70c8ee5ff23)
+- Only apps should have lockfiles [`64e8242`](https://github.com/inspect-js/has-bigints/commit/64e82429f1dca99f624dc971ff13516dee28d353)
diff --git a/node_modules/has-bigints/LICENSE b/node_modules/has-bigints/LICENSE
new file mode 100644
index 0000000..3900dd7
--- /dev/null
+++ b/node_modules/has-bigints/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Jordan Harband
+
+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/has-bigints/README.md b/node_modules/has-bigints/README.md
new file mode 100644
index 0000000..3847079
--- /dev/null
+++ b/node_modules/has-bigints/README.md
@@ -0,0 +1,35 @@
+# has-bigints <sup>[![Version Badge][2]][1]</sup>
+
+[![dependency status][5]][6]
+[![dev dependency status][7]][8]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][11]][1]
+
+Determine if the JS environment has BigInt support.
+
+## Example
+
+```js
+var hasBigInts = require('has-bigints');
+
+hasBigInts() === true; // if the environment has native BigInt support. Not polyfillable, not forgeable.
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[1]: https://npmjs.org/package/has-bigints
+[2]: https://versionbadg.es/ljharb/has-bigints.svg
+[5]: https://david-dm.org/ljharb/has-bigints.svg
+[6]: https://david-dm.org/ljharb/has-bigints
+[7]: https://david-dm.org/ljharb/has-bigints/dev-status.svg
+[8]: https://david-dm.org/ljharb/has-bigints#info=devDependencies
+[9]: https://ci.testling.com/ljharb/has-bigints.png
+[10]: https://ci.testling.com/ljharb/has-bigints
+[11]: https://nodei.co/npm/has-bigints.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/has-bigints.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/has-bigints.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=has-bigints
diff --git a/node_modules/has-bigints/index.js b/node_modules/has-bigints/index.js
new file mode 100644
index 0000000..dd9af1d
--- /dev/null
+++ b/node_modules/has-bigints/index.js
@@ -0,0 +1,10 @@
+'use strict';
+
+var $BigInt = global.BigInt;
+
+module.exports = function hasNativeBigInts() {
+	return typeof $BigInt === 'function'
+		&& typeof BigInt === 'function'
+		&& typeof $BigInt(42) === 'bigint' // eslint-disable-line no-magic-numbers
+		&& typeof BigInt(42) === 'bigint'; // eslint-disable-line no-magic-numbers
+};
diff --git a/node_modules/has-bigints/package.json b/node_modules/has-bigints/package.json
new file mode 100644
index 0000000..4798faf
--- /dev/null
+++ b/node_modules/has-bigints/package.json
@@ -0,0 +1,81 @@
+{
+  "_from": "has-bigints@^1.0.0",
+  "_id": "has-bigints@1.0.1",
+  "_inBundle": false,
+  "_integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
+  "_location": "/has-bigints",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "has-bigints@^1.0.0",
+    "name": "has-bigints",
+    "escapedName": "has-bigints",
+    "rawSpec": "^1.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.0"
+  },
+  "_requiredBy": [
+    "/unbox-primitive"
+  ],
+  "_resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
+  "_shasum": "64fe6acb020673e3b78db035a5af69aa9d07b113",
+  "_spec": "has-bigints@^1.0.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\unbox-primitive",
+  "author": {
+    "name": "Jordan Harband",
+    "email": "ljharb@gmail.com"
+  },
+  "auto-changelog": {
+    "output": "CHANGELOG.md",
+    "template": "keepachangelog",
+    "unreleased": false,
+    "commitLimit": false,
+    "backfillLimit": false,
+    "hideCredit": true
+  },
+  "bugs": {
+    "url": "https://github.com/ljharb/has-bigints/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Determine if the JS environment has BigInt support.",
+  "devDependencies": {
+    "@ljharb/eslint-config": "^17.3.0",
+    "aud": "^1.1.3",
+    "auto-changelog": "^2.2.1",
+    "eslint": "^7.15.0",
+    "in-publish": "^2.0.1",
+    "nyc": "^10.3.2",
+    "safe-publish-latest": "^1.1.4",
+    "tape": "^5.0.1"
+  },
+  "funding": {
+    "url": "https://github.com/sponsors/ljharb"
+  },
+  "homepage": "https://github.com/ljharb/has-bigints#readme",
+  "keywords": [
+    "BigInt",
+    "bigints",
+    "typeof",
+    "ES2020"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "has-bigints",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/ljharb/has-bigints.git"
+  },
+  "scripts": {
+    "lint": "eslint --ext=js,mjs .",
+    "posttest": "aud --production",
+    "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
+    "prepublish": "not-in-publish || safe-publish-latest",
+    "pretest": "npm run lint",
+    "test": "npm run tests-only",
+    "tests-only": "nyc tape 'test/**/*.js'",
+    "version": "auto-changelog && git add CHANGELOG.md"
+  },
+  "version": "1.0.1"
+}
diff --git a/node_modules/has-bigints/test/index.js b/node_modules/has-bigints/test/index.js
new file mode 100644
index 0000000..efbc98b
--- /dev/null
+++ b/node_modules/has-bigints/test/index.js
@@ -0,0 +1,44 @@
+'use strict';
+
+var test = require('tape');
+var hasBigInts = require('..');
+
+test('interface', function (t) {
+	t.equal(typeof hasBigInts, 'function', 'is a function');
+	t.equal(typeof hasBigInts(), 'boolean', 'returns a boolean');
+	t.end();
+});
+
+test('BigInts are supported', { skip: !hasBigInts() }, function (t) {
+	t.equal(typeof BigInt, 'function', 'global BigInt is a function');
+	if (typeof BigInt !== 'function') {
+		return;
+	}
+
+	t.equal(BigInt(42), BigInt(42), '42n === 42n');
+	t['throws'](
+		function () { BigInt(NaN); },
+		RangeError,
+		'NaN is not an integer; BigInt(NaN) throws'
+	);
+
+	t['throws'](
+		function () { BigInt(Infinity); },
+		RangeError,
+		'Infinity is not an integer; BigInt(Infinity) throws'
+	);
+
+	t['throws'](
+		function () { BigInt(1.1); },
+		RangeError,
+		'1.1 is not an integer; BigInt(1.1) throws'
+	);
+
+	t.end();
+});
+
+test('BigInts are not supported', { skip: hasBigInts() }, function (t) {
+	t.equal(typeof BigInt, 'undefined', 'global BigInt is undefined');
+
+	t.end();
+});
