about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS2
-rw-r--r--.gitignore1
-rw-r--r--maintainers/maintainer-list.nix24
-rw-r--r--nixos/doc/manual/administration/containers.chapter.md28
-rw-r--r--nixos/doc/manual/administration/containers.xml34
-rw-r--r--nixos/doc/manual/administration/running.xml4
-rw-r--r--nixos/doc/manual/administration/troubleshooting.chapter.md12
-rw-r--r--nixos/doc/manual/administration/troubleshooting.xml16
-rw-r--r--nixos/doc/manual/configuration/config-syntax.chapter.md19
-rw-r--r--nixos/doc/manual/configuration/config-syntax.xml25
-rw-r--r--nixos/doc/manual/configuration/configuration.xml10
-rw-r--r--nixos/doc/manual/configuration/declarative-packages.section.md46
-rw-r--r--nixos/doc/manual/configuration/declarative-packages.xml54
-rw-r--r--nixos/doc/manual/configuration/file-systems.chapter.md42
-rw-r--r--nixos/doc/manual/configuration/file-systems.xml58
-rw-r--r--nixos/doc/manual/configuration/networking.chapter.md16
-rw-r--r--nixos/doc/manual/configuration/networking.xml20
-rw-r--r--nixos/doc/manual/configuration/package-mgmt.chapter.md18
-rw-r--r--nixos/doc/manual/configuration/package-mgmt.xml31
-rw-r--r--nixos/doc/manual/configuration/profiles.chapter.md34
-rw-r--r--nixos/doc/manual/configuration/profiles.xml39
-rw-r--r--nixos/doc/manual/development/development.xml4
-rw-r--r--nixos/doc/manual/development/nixos-tests.chapter.md13
-rw-r--r--nixos/doc/manual/development/nixos-tests.xml20
-rw-r--r--nixos/doc/manual/development/writing-modules.chapter.md166
-rw-r--r--nixos/doc/manual/development/writing-modules.xml191
-rw-r--r--nixos/doc/manual/from_md/administration/containers.chapter.xml31
-rw-r--r--nixos/doc/manual/from_md/administration/troubleshooting.chapter.xml12
-rw-r--r--nixos/doc/manual/from_md/configuration/config-syntax.chapter.xml21
-rw-r--r--nixos/doc/manual/from_md/configuration/declarative-packages.section.xml53
-rw-r--r--nixos/doc/manual/from_md/configuration/file-systems.chapter.xml55
-rw-r--r--nixos/doc/manual/from_md/configuration/networking.chapter.xml15
-rw-r--r--nixos/doc/manual/from_md/configuration/package-mgmt.chapter.xml28
-rw-r--r--nixos/doc/manual/from_md/configuration/profiles.chapter.xml38
-rw-r--r--nixos/doc/manual/from_md/development/nixos-tests.chapter.xml14
-rw-r--r--nixos/doc/manual/from_md/development/writing-modules.chapter.xml196
-rw-r--r--nixos/doc/manual/from_md/installation/installing.chapter.xml642
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2111.section.xml14
-rw-r--r--nixos/doc/manual/installation/installation.xml2
-rw-r--r--nixos/doc/manual/installation/installing.chapter.md479
-rw-r--r--nixos/doc/manual/installation/installing.xml616
-rw-r--r--nixos/doc/manual/release-notes/rl-2111.section.md5
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/programs/git.nix45
-rw-r--r--nixos/modules/rename.nix1
-rw-r--r--nixos/modules/services/amqp/rabbitmq.nix27
-rw-r--r--nixos/modules/services/cluster/kubernetes/kubelet.nix2
-rw-r--r--nixos/modules/services/logging/promtail.nix4
-rw-r--r--nixos/modules/services/networking/wicd.nix40
-rw-r--r--nixos/modules/services/security/privacyidea.nix6
-rw-r--r--nixos/tests/handbrake.nix2
-rw-r--r--pkgs/applications/audio/spotify/default.nix15
-rw-r--r--pkgs/applications/editors/android-studio/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/tests.nix10
-rw-r--r--pkgs/applications/editors/neovim/utils.nix7
-rw-r--r--pkgs/applications/editors/typora/default.nix72
-rw-r--r--pkgs/applications/editors/vim/vimacs.nix2
-rw-r--r--pkgs/applications/editors/vis/default.nix15
-rw-r--r--pkgs/applications/misc/joshuto/default.nix31
-rw-r--r--pkgs/applications/misc/notejot/default.nix4
-rw-r--r--pkgs/applications/misc/obsidian/default.nix4
-rw-r--r--pkgs/applications/misc/taskopen/default.nix29
-rw-r--r--pkgs/applications/misc/wike/default.nix60
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json6
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/hubble/default.nix22
-rw-r--r--pkgs/applications/networking/cluster/kubeconform/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubedb-cli/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/octant/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/tanka/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--pkgs/applications/networking/gmailctl/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix5
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--pkgs/applications/office/semantik/default.nix4
-rw-r--r--pkgs/applications/science/electronics/openems/default.nix7
-rw-r--r--pkgs/applications/science/electronics/xoscope/default.nix26
-rw-r--r--pkgs/applications/science/electronics/xoscope/gtkdepre.diff58
-rw-r--r--pkgs/applications/science/machine-learning/fasttext/default.nix2
-rw-r--r--pkgs/applications/science/machine-learning/finalfrontier/default.nix2
-rw-r--r--pkgs/applications/science/machine-learning/finalfusion-utils/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitstatus/default.nix4
-rw-r--r--pkgs/applications/version-management/git-repo/default.nix4
-rw-r--r--pkgs/applications/version-management/yadm/default.nix4
-rw-r--r--pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix4
-rw-r--r--pkgs/applications/video/kodi-packages/youtube/default.nix4
-rw-r--r--pkgs/applications/virtualization/bochs/default.nix1
-rw-r--r--pkgs/applications/virtualization/cloud-hypervisor/default.nix6
-rw-r--r--pkgs/applications/virtualization/docker/buildx.nix4
-rw-r--r--pkgs/applications/window-managers/awesome/default.nix22
-rw-r--r--pkgs/build-support/rust/test/import-cargo-lock/maturin/default.nix2
-rw-r--r--pkgs/build-support/substitute/substitute.nix14
-rw-r--r--pkgs/build-support/substitute/substitute.sh18
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix3
-rw-r--r--pkgs/data/themes/canta/default.nix9
-rw-r--r--pkgs/desktops/gnome/apps/gnome-weather/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome/games/quadrapassel/default.nix4
-rw-r--r--pkgs/development/compilers/fstar/default.nix4
-rw-r--r--pkgs/development/compilers/go/1.16.nix4
-rw-r--r--pkgs/development/compilers/llvm/rocm/clang.nix2
-rw-r--r--pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/rocm/lld.nix2
-rw-r--r--pkgs/development/compilers/llvm/rocm/llvm/default.nix2
-rw-r--r--pkgs/development/interpreters/lua-5/build-lua-package.nix2
-rw-r--r--pkgs/development/interpreters/lua-5/interpreter.nix27
-rw-r--r--pkgs/development/interpreters/lua-5/wrap-lua.nix13
-rw-r--r--pkgs/development/interpreters/lua-5/wrapper.nix19
-rw-r--r--pkgs/development/interpreters/luajit/default.nix24
-rw-r--r--pkgs/development/libraries/abseil-cpp/default.nix4
-rw-r--r--pkgs/development/libraries/civetweb/default.nix4
-rw-r--r--pkgs/development/libraries/dbxml/default.nix2
-rw-r--r--pkgs/development/libraries/grpc/default.nix7
-rw-r--r--pkgs/development/libraries/gtkdatabox/default.nix24
-rw-r--r--pkgs/development/libraries/liblinear/default.nix2
-rw-r--r--pkgs/development/libraries/libsigcxx/3.0.nix4
-rw-r--r--pkgs/development/libraries/libvirt/default.nix2
-rw-r--r--pkgs/development/libraries/mm-common/default.nix4
-rw-r--r--pkgs/development/libraries/rocm-opencl-runtime/default.nix2
-rw-r--r--pkgs/development/libraries/rocm-runtime/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/amd-blis/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/amd-libflame/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/blis/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/libtorch/bin.nix2
-rw-r--r--pkgs/development/libraries/sentencepiece/default.nix2
-rw-r--r--pkgs/development/libraries/vtk/9.x.nix4
-rw-r--r--pkgs/development/lua-modules/default.nix7
-rw-r--r--pkgs/development/lua-modules/lib.nix63
-rw-r--r--pkgs/development/lua-modules/overrides.nix6
-rw-r--r--pkgs/development/python-modules/Markups/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncssh/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-keyvault/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-netapp/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-rdbms/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-relay/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-resource/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-web/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-servicebus/default.nix4
-rw-r--r--pkgs/development/python-modules/blocksat-cli/default.nix4
-rw-r--r--pkgs/development/python-modules/datasets/default.nix2
-rw-r--r--pkgs/development/python-modules/dawg-python/default.nix2
-rw-r--r--pkgs/development/python-modules/django-mailman3/default.nix4
-rw-r--r--pkgs/development/python-modules/dpath/default.nix4
-rw-r--r--pkgs/development/python-modules/dropbox/default.nix4
-rw-r--r--pkgs/development/python-modules/fasttext/default.nix2
-rw-r--r--pkgs/development/python-modules/finalfusion/default.nix2
-rw-r--r--pkgs/development/python-modules/flexmock/default.nix4
-rw-r--r--pkgs/development/python-modules/flynt/default.nix32
-rw-r--r--pkgs/development/python-modules/growattserver/default.nix4
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix2
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/mitmproxy/default.nix7
-rw-r--r--pkgs/development/python-modules/mutf8/default.nix4
-rw-r--r--pkgs/development/python-modules/numcodecs/default.nix6
-rw-r--r--pkgs/development/python-modules/openrazer/common.nix4
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/pyglet/default.nix4
-rw-r--r--pkgs/development/python-modules/pymorphy2/default.nix2
-rw-r--r--pkgs/development/python-modules/pymorphy2/dicts-ru.nix2
-rw-r--r--pkgs/development/python-modules/pytorch/bin.nix2
-rw-r--r--pkgs/development/python-modules/pytorch/default.nix4
-rw-r--r--pkgs/development/python-modules/relatorio/default.nix4
-rw-r--r--pkgs/development/python-modules/scp/default.nix4
-rw-r--r--pkgs/development/python-modules/setuptools-rust/default.nix5
-rw-r--r--pkgs/development/python-modules/somajo/default.nix2
-rw-r--r--pkgs/development/python-modules/spacy-alignments/default.nix2
-rw-r--r--pkgs/development/python-modules/spacy-pkuseg/default.nix2
-rw-r--r--pkgs/development/python-modules/spacy-transformers/default.nix2
-rw-r--r--pkgs/development/python-modules/tokenizers/default.nix2
-rw-r--r--pkgs/development/python-modules/torchvision/bin.nix2
-rw-r--r--pkgs/development/python-modules/transformers/default.nix2
-rw-r--r--pkgs/development/python-modules/wordfreq/default.nix4
-rw-r--r--pkgs/development/tools/azcopy/default.nix6
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix6
-rw-r--r--pkgs/development/tools/gops/default.nix4
-rw-r--r--pkgs/development/tools/rust/cargo-asm/default.nix2
-rw-r--r--pkgs/development/tools/rust/maturin/default.nix2
-rw-r--r--pkgs/development/tools/rust/maturin/pyo3-test/generic.nix2
-rw-r--r--pkgs/development/tools/sslmate/default.nix4
-rw-r--r--pkgs/games/airshipper/default.nix74
-rw-r--r--pkgs/games/astromenace/default.nix1
-rw-r--r--pkgs/games/eduke32/default.nix51
-rw-r--r--pkgs/games/mudlet/default.nix6
-rw-r--r--pkgs/games/quakespasm/default.nix63
-rw-r--r--pkgs/games/quakespasm/quakespasm-darwin-makefile-improvements.patch92
-rw-r--r--pkgs/games/steam/fhsenv.nix9
-rw-r--r--pkgs/misc/drivers/sc-controller/default.nix19
-rw-r--r--pkgs/misc/vim-plugins/build-vim-plugin.nix2
-rw-r--r--pkgs/misc/vim-plugins/generated.nix12
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix20
-rw-r--r--pkgs/misc/vim-plugins/vim-gen-doc-hook.sh1
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names1
-rw-r--r--pkgs/misc/vim-plugins/vim-utils.nix15
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json18
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix2
-rw-r--r--pkgs/servers/bazarr/default.nix4
-rw-r--r--pkgs/servers/dns/ncdns/default.nix102
-rw-r--r--pkgs/servers/dns/ncdns/deps.nix318
-rw-r--r--pkgs/servers/jellyfin/default.nix4
-rw-r--r--pkgs/servers/jellyfin/node-deps.nix3584
-rw-r--r--pkgs/servers/jellyfin/web.nix4
-rw-r--r--pkgs/servers/klipper/default.nix6
-rw-r--r--pkgs/servers/matrix-synapse/plugins/ldap3.nix4
-rw-r--r--pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix4
-rw-r--r--pkgs/servers/moonraker/default.nix6
-rw-r--r--pkgs/servers/nextcloud/news-updater.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/age.nix2
-rw-r--r--pkgs/servers/unpackerr/default.nix6
-rw-r--r--pkgs/servers/web-apps/wiki-js/default.nix4
-rw-r--r--pkgs/servers/xmpp/prosody/default.nix31
-rw-r--r--pkgs/shells/zsh/zsh-fzf-tab/darwin.patch11
-rw-r--r--pkgs/shells/zsh/zsh-fzf-tab/default.nix4
-rw-r--r--pkgs/tools/backup/android-backup-extractor/default.nix38
-rw-r--r--pkgs/tools/backup/discordchatexporter-cli/default.nix4
-rw-r--r--pkgs/tools/backup/zfs-autobackup/default.nix33
-rw-r--r--pkgs/tools/cd-dvd/ventoy-bin/default.nix95
-rw-r--r--pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch118
-rw-r--r--pkgs/tools/graphics/gnuplot/default.nix4
-rw-r--r--pkgs/tools/graphics/textplots/default.nix20
-rw-r--r--pkgs/tools/misc/bandwidth/default.nix24
-rw-r--r--pkgs/tools/misc/clpeak/default.nix2
-rw-r--r--pkgs/tools/misc/fclones/default.nix29
-rw-r--r--pkgs/tools/misc/nncp/default.nix4
-rw-r--r--pkgs/tools/misc/quich/default.nix4
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix11
-rw-r--r--pkgs/tools/networking/flannel/plugin.nix29
-rw-r--r--pkgs/tools/networking/kapp/default.nix4
-rw-r--r--pkgs/tools/networking/linux-router/default.nix81
-rw-r--r--pkgs/tools/networking/networkmanager/libnma/default.nix4
-rw-r--r--pkgs/tools/networking/oha/default.nix30
-rw-r--r--pkgs/tools/networking/stuntman/default.nix45
-rw-r--r--pkgs/tools/networking/v2ray/default.nix14
-rw-r--r--pkgs/tools/networking/wicd/default.nix121
-rw-r--r--pkgs/tools/networking/wicd/dhclient.patch120
-rw-r--r--pkgs/tools/networking/wicd/fix-app-icon.patch19
-rw-r--r--pkgs/tools/networking/wicd/fix-curses.patch15
-rw-r--r--pkgs/tools/networking/wicd/fix-gtk-issues.patch47
-rw-r--r--pkgs/tools/networking/wicd/no-optimization.patch21
-rw-r--r--pkgs/tools/networking/wicd/no-var-install.patch17
-rw-r--r--pkgs/tools/networking/wicd/pygtk.patch15
-rw-r--r--pkgs/tools/networking/wicd/urwid-api-update.patch21
-rw-r--r--pkgs/tools/networking/wicd/wpa2-ttls20
-rw-r--r--pkgs/tools/security/nuclei/default.nix6
-rw-r--r--pkgs/tools/security/quill/default.nix6
-rw-r--r--pkgs/tools/system/cm-rgb/default.nix2
-rw-r--r--pkgs/tools/system/consul-template/default.nix6
-rw-r--r--pkgs/tools/virtualization/shipyard/default.nix6
-rw-r--r--pkgs/top-level/aliases.nix4
-rw-r--r--pkgs/top-level/all-packages.nix60
-rw-r--r--pkgs/top-level/lua-packages.nix89
-rw-r--r--pkgs/top-level/python-packages.nix2
-rw-r--r--pkgs/top-level/release-small.nix1
254 files changed, 5678 insertions, 4270 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 51bda5f04385..a64b6918c499 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -110,7 +110,7 @@
 
 # Rust
 /pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
-/pkgs/build-support/rust @andir @danieldk @zowoq
+/pkgs/build-support/rust @andir @zowoq
 
 # Darwin-related
 /pkgs/stdenv/darwin         @NixOS/darwin-maintainers
diff --git a/.gitignore b/.gitignore
index b166a78d7d70..1a41704c9be3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
 ,*
 .*.swp
 .*.swo
+.idea/
 result
 result-*
 /doc/NEWS.html
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index b21ae51d5cf1..628a42ce1f00 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -2285,6 +2285,12 @@
     githubId = 1382175;
     name = "Oliver Matthews";
   };
+  cyounkins = {
+    name = "Craig Younkins";
+    email = "cyounkins@gmail.com";
+    github = "cyounkins";
+    githubId = 346185;
+  };
   cypherpunk2140 = {
     email = "stefan.mihaila@pm.me";
     github = "stefan-mihaila";
@@ -5506,6 +5512,12 @@
     githubId = 66669;
     name = "Jeff Zellner";
   };
+  k4leg = {
+    name = "k4leg";
+    email = "python.bogdan@gmail.com";
+    github = "k4leg";
+    githubId = 39882583;
+  };
   kaction = {
     name = "Dmitry Bogatov";
     email = "KAction@disroot.org";
@@ -9588,6 +9600,12 @@
     github = "s1341";
     githubId = 5682183;
   };
+  samalws = {
+    email = "sam@samalws.com";
+    name = "Sam Alws";
+    github = "samalws";
+    githubId = 20981725;
+  };
   samb96 = {
     email = "samb96@gmail.com";
     github = "samb96";
@@ -11820,6 +11838,12 @@
     githubId = 3992240;
     name = "Elijah Rum";
   };
+  x3ro = {
+    name = "^x3ro";
+    email = "nix@x3ro.dev";
+    github = "x3rAx";
+    githubId = 2268851;
+  };
   xaverdh = {
     email = "hoe.dom@gmx.de";
     github = "xaverdh";
diff --git a/nixos/doc/manual/administration/containers.chapter.md b/nixos/doc/manual/administration/containers.chapter.md
new file mode 100644
index 000000000000..ea51f91f698f
--- /dev/null
+++ b/nixos/doc/manual/administration/containers.chapter.md
@@ -0,0 +1,28 @@
+# Container Management {#ch-containers}
+
+NixOS allows you to easily run other NixOS instances as *containers*.
+Containers are a light-weight approach to virtualisation that runs
+software in the container at the same speed as in the host system. NixOS
+containers share the Nix store of the host, making container creation
+very efficient.
+
+::: {.warning}
+Currently, NixOS containers are not perfectly isolated from the host
+system. This means that a user with root access to the container can do
+things that affect the host. So you should not give container root
+access to untrusted users.
+:::
+
+NixOS containers can be created in two ways: imperatively, using the
+command `nixos-container`, and declaratively, by specifying them in your
+`configuration.nix`. The declarative approach implies that containers
+get upgraded along with your host system when you run `nixos-rebuild`,
+which is often not what you want. By contrast, in the imperative
+approach, containers are configured and updated independently from the
+host system.
+
+```{=docbook}
+<xi:include href="imperative-containers.section.xml" />
+<xi:include href="declarative-containers.section.xml" />
+<xi:include href="container-networking.section.xml" />
+```
diff --git a/nixos/doc/manual/administration/containers.xml b/nixos/doc/manual/administration/containers.xml
deleted file mode 100644
index 8e0e300f367b..000000000000
--- a/nixos/doc/manual/administration/containers.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-        xmlns:xlink="http://www.w3.org/1999/xlink"
-        xmlns:xi="http://www.w3.org/2001/XInclude"
-        version="5.0"
-        xml:id="ch-containers">
- <title>Container Management</title>
- <para>
-  NixOS allows you to easily run other NixOS instances as
-  <emphasis>containers</emphasis>. Containers are a light-weight approach to
-  virtualisation that runs software in the container at the same speed as in
-  the host system. NixOS containers share the Nix store of the host, making
-  container creation very efficient.
- </para>
- <warning>
-  <para>
-   Currently, NixOS containers are not perfectly isolated from the host system.
-   This means that a user with root access to the container can do things that
-   affect the host. So you should not give container root access to untrusted
-   users.
-  </para>
- </warning>
- <para>
-  NixOS containers can be created in two ways: imperatively, using the command
-  <command>nixos-container</command>, and declaratively, by specifying them in
-  your <filename>configuration.nix</filename>. The declarative approach implies
-  that containers get upgraded along with your host system when you run
-  <command>nixos-rebuild</command>, which is often not what you want. By
-  contrast, in the imperative approach, containers are configured and updated
-  independently from the host system.
- </para>
- <xi:include href="../from_md/administration/imperative-containers.section.xml" />
- <xi:include href="../from_md/administration/declarative-containers.section.xml" />
- <xi:include href="../from_md/administration/container-networking.section.xml" />
-</chapter>
diff --git a/nixos/doc/manual/administration/running.xml b/nixos/doc/manual/administration/running.xml
index 24fd864956ff..d9fcc1aee263 100644
--- a/nixos/doc/manual/administration/running.xml
+++ b/nixos/doc/manual/administration/running.xml
@@ -16,6 +16,6 @@
  <xi:include href="../from_md/administration/control-groups.chapter.xml" />
  <xi:include href="../from_md/administration/logging.chapter.xml" />
  <xi:include href="../from_md/administration/cleaning-store.chapter.xml" />
- <xi:include href="containers.xml" />
- <xi:include href="troubleshooting.xml" />
+ <xi:include href="../from_md/administration/containers.chapter.xml" />
+ <xi:include href="../from_md/administration/troubleshooting.chapter.xml" />
 </part>
diff --git a/nixos/doc/manual/administration/troubleshooting.chapter.md b/nixos/doc/manual/administration/troubleshooting.chapter.md
new file mode 100644
index 000000000000..548456eaf6d6
--- /dev/null
+++ b/nixos/doc/manual/administration/troubleshooting.chapter.md
@@ -0,0 +1,12 @@
+# Troubleshooting {#ch-troubleshooting}
+
+This chapter describes solutions to common problems you might encounter
+when you manage your NixOS system.
+
+```{=docbook}
+<xi:include href="boot-problems.section.xml" />
+<xi:include href="maintenance-mode.section.xml" />
+<xi:include href="rollback.section.xml" />
+<xi:include href="store-corruption.section.xml" />
+<xi:include href="network-problems.section.xml" />
+```
diff --git a/nixos/doc/manual/administration/troubleshooting.xml b/nixos/doc/manual/administration/troubleshooting.xml
deleted file mode 100644
index d447b537335b..000000000000
--- a/nixos/doc/manual/administration/troubleshooting.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-        xmlns:xlink="http://www.w3.org/1999/xlink"
-        xmlns:xi="http://www.w3.org/2001/XInclude"
-        version="5.0"
-        xml:id="ch-troubleshooting">
- <title>Troubleshooting</title>
- <para>
-  This chapter describes solutions to common problems you might encounter when
-  you manage your NixOS system.
- </para>
- <xi:include href="../from_md/administration/boot-problems.section.xml" />
- <xi:include href="../from_md/administration/maintenance-mode.section.xml" />
- <xi:include href="../from_md/administration/rollback.section.xml" />
- <xi:include href="../from_md/administration/store-corruption.section.xml" />
- <xi:include href="../from_md/administration/network-problems.section.xml" />
-</chapter>
diff --git a/nixos/doc/manual/configuration/config-syntax.chapter.md b/nixos/doc/manual/configuration/config-syntax.chapter.md
new file mode 100644
index 000000000000..56d093c0f6e8
--- /dev/null
+++ b/nixos/doc/manual/configuration/config-syntax.chapter.md
@@ -0,0 +1,19 @@
+# Configuration Syntax {#sec-configuration-syntax}
+
+The NixOS configuration file `/etc/nixos/configuration.nix` is actually
+a *Nix expression*, which is the Nix package manager's purely functional
+language for describing how to build packages and configurations. This
+means you have all the expressive power of that language at your
+disposal, including the ability to abstract over common patterns, which
+is very useful when managing complex systems. The syntax and semantics
+of the Nix language are fully described in the [Nix
+manual](https://nixos.org/nix/manual/#chap-writing-nix-expressions), but
+here we give a short overview of the most important constructs useful in
+NixOS configuration files.
+
+```{=docbook}
+<xi:include href="config-file.section.xml" />
+<xi:include href="abstractions.section.xml" />
+<xi:include href="modularity.section.xml" />
+<xi:include href="summary.section.xml" />
+```
diff --git a/nixos/doc/manual/configuration/config-syntax.xml b/nixos/doc/manual/configuration/config-syntax.xml
deleted file mode 100644
index d1351ff934e5..000000000000
--- a/nixos/doc/manual/configuration/config-syntax.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         version="5.0"
-         xml:id="sec-configuration-syntax">
- <title>Configuration Syntax</title>
- <para>
-  The NixOS configuration file
-  <filename>/etc/nixos/configuration.nix</filename> is actually a <emphasis>Nix
-  expression</emphasis>, which is the Nix package manager’s purely functional
-  language for describing how to build packages and configurations. This means
-  you have all the expressive power of that language at your disposal,
-  including the ability to abstract over common patterns, which is very useful
-  when managing complex systems. The syntax and semantics of the Nix language
-  are fully described in the
-  <link
-xlink:href="https://nixos.org/nix/manual/#chap-writing-nix-expressions">Nix
-  manual</link>, but here we give a short overview of the most important
-  constructs useful in NixOS configuration files.
- </para>
- <xi:include href="../from_md/configuration/config-file.section.xml" />
- <xi:include href="../from_md/configuration/abstractions.section.xml" />
- <xi:include href="../from_md/configuration/modularity.section.xml" />
- <xi:include href="../from_md/configuration/summary.section.xml" />
-</chapter>
diff --git a/nixos/doc/manual/configuration/configuration.xml b/nixos/doc/manual/configuration/configuration.xml
index 2461a5de73ad..b04316cfa48e 100644
--- a/nixos/doc/manual/configuration/configuration.xml
+++ b/nixos/doc/manual/configuration/configuration.xml
@@ -13,19 +13,19 @@
    effect after you run <command>nixos-rebuild</command>.
   </para>
  </partintro>
- <xi:include href="config-syntax.xml" />
- <xi:include href="package-mgmt.xml" />
+ <xi:include href="../from_md/configuration/config-syntax.chapter.xml" />
+ <xi:include href="../from_md/configuration/package-mgmt.chapter.xml" />
  <xi:include href="../from_md/configuration/user-mgmt.chapter.xml" />
- <xi:include href="file-systems.xml" />
+ <xi:include href="../from_md/configuration/file-systems.chapter.xml" />
  <xi:include href="../from_md/configuration/x-windows.chapter.xml" />
  <xi:include href="../from_md/configuration/wayland.chapter.xml" />
  <xi:include href="../from_md/configuration/gpu-accel.chapter.xml" />
  <xi:include href="../from_md/configuration/xfce.chapter.xml" />
- <xi:include href="networking.xml" />
+ <xi:include href="../from_md/configuration/networking.chapter.xml" />
  <xi:include href="../from_md/configuration/linux-kernel.chapter.xml" />
  <xi:include href="../from_md/configuration/subversion.chapter.xml" />
  <xi:include href="../generated/modules.xml" xpointer="xpointer(//section[@id='modules']/*)" />
- <xi:include href="profiles.xml" />
+ <xi:include href="../from_md/configuration/profiles.chapter.xml" />
  <xi:include href="../from_md/configuration/kubernetes.chapter.xml" />
 <!-- Apache; libvirtd virtualisation -->
 </part>
diff --git a/nixos/doc/manual/configuration/declarative-packages.section.md b/nixos/doc/manual/configuration/declarative-packages.section.md
new file mode 100644
index 000000000000..337cdf8472e4
--- /dev/null
+++ b/nixos/doc/manual/configuration/declarative-packages.section.md
@@ -0,0 +1,46 @@
+# Declarative Package Management {#sec-declarative-package-mgmt}
+
+With declarative package management, you specify which packages you want
+on your system by setting the option
+[](#opt-environment.systemPackages). For instance, adding the
+following line to `configuration.nix` enables the Mozilla Thunderbird
+email application:
+
+```nix
+environment.systemPackages = [ pkgs.thunderbird ];
+```
+
+The effect of this specification is that the Thunderbird package from
+Nixpkgs will be built or downloaded as part of the system when you run
+`nixos-rebuild switch`.
+
+::: {.note}
+Some packages require additional global configuration such as D-Bus or
+systemd service registration so adding them to
+[](#opt-environment.systemPackages) might not be sufficient. You are
+advised to check the [list of options](#ch-options) whether a NixOS
+module for the package does not exist.
+:::
+
+You can get a list of the available packages as follows:
+
+```ShellSession
+$ nix-env -qaP '*' --description
+nixos.firefox   firefox-23.0   Mozilla Firefox - the browser, reloaded
+...
+```
+
+The first column in the output is the *attribute name*, such as
+`nixos.thunderbird`.
+
+Note: the `nixos` prefix tells us that we want to get the package from
+the `nixos` channel and works only in CLI tools. In declarative
+configuration use `pkgs` prefix (variable).
+
+To "uninstall" a package, simply remove it from
+[](#opt-environment.systemPackages) and run `nixos-rebuild switch`.
+
+```{=docbook}
+<xi:include href="customizing-packages.section.xml" />
+<xi:include href="adding-custom-packages.section.xml" />
+```
diff --git a/nixos/doc/manual/configuration/declarative-packages.xml b/nixos/doc/manual/configuration/declarative-packages.xml
deleted file mode 100644
index 8d321929f3f0..000000000000
--- a/nixos/doc/manual/configuration/declarative-packages.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<section xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         version="5.0"
-         xml:id="sec-declarative-package-mgmt">
- <title>Declarative Package Management</title>
-
- <para>
-  With declarative package management, you specify which packages you want on
-  your system by setting the option
-  <xref linkend="opt-environment.systemPackages"/>. For instance, adding the
-  following line to <filename>configuration.nix</filename> enables the Mozilla
-  Thunderbird email application:
-<programlisting>
-<xref linkend="opt-environment.systemPackages"/> = [ pkgs.thunderbird ];
-</programlisting>
-  The effect of this specification is that the Thunderbird package from Nixpkgs
-  will be built or downloaded as part of the system when you run
-  <command>nixos-rebuild switch</command>.
- </para>
-
- <note>
-  <para>
-   Some packages require additional global configuration such as D-Bus or systemd service registration so adding them to <xref linkend="opt-environment.systemPackages"/> might not be sufficient. You are advised to check the <link xlink:href="#ch-options">list of options</link> whether a NixOS module for the package does not exist.
-  </para>
- </note>
-
- <para>
-  You can get a list of the available packages as follows:
-<screen>
-<prompt>$ </prompt>nix-env -qaP '*' --description
-nixos.firefox   firefox-23.0   Mozilla Firefox - the browser, reloaded
-<replaceable>...</replaceable>
-</screen>
-  The first column in the output is the <emphasis>attribute name</emphasis>,
-  such as <literal>nixos.thunderbird</literal>.
- </para>
- <para>
-  Note: the <literal>nixos</literal> prefix tells us that we want to get the
-  package from the <literal>nixos</literal> channel and works only in CLI tools.
-
-  In declarative configuration use <literal>pkgs</literal> prefix (variable).
- </para>
-
- <para>
-  To “uninstall” a package, simply remove it from
-  <xref linkend="opt-environment.systemPackages"/> and run
-  <command>nixos-rebuild switch</command>.
- </para>
-
- <xi:include href="../from_md/configuration/customizing-packages.section.xml" />
-
- <xi:include href="../from_md/configuration/adding-custom-packages.section.xml" />
-</section>
diff --git a/nixos/doc/manual/configuration/file-systems.chapter.md b/nixos/doc/manual/configuration/file-systems.chapter.md
new file mode 100644
index 000000000000..901e2e4f181b
--- /dev/null
+++ b/nixos/doc/manual/configuration/file-systems.chapter.md
@@ -0,0 +1,42 @@
+# File Systems {#ch-file-systems}
+
+You can define file systems using the `fileSystems` configuration
+option. For instance, the following definition causes NixOS to mount the
+Ext4 file system on device `/dev/disk/by-label/data` onto the mount
+point `/data`:
+
+```nix
+fileSystems."/data" =
+  { device = "/dev/disk/by-label/data";
+    fsType = "ext4";
+  };
+```
+
+This will create an entry in `/etc/fstab`, which will generate a
+corresponding [systemd.mount](https://www.freedesktop.org/software/systemd/man/systemd.mount.html)
+unit via [systemd-fstab-generator](https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html).
+The filesystem will be mounted automatically unless `"noauto"` is
+present in [options](#opt-fileSystems._name_.options). `"noauto"`
+filesystems can be mounted explicitly using `systemctl` e.g.
+`systemctl start data.mount`. Mount points are created automatically if they don't
+already exist. For `device`, it's best to use the topology-independent
+device aliases in `/dev/disk/by-label` and `/dev/disk/by-uuid`, as these
+don't change if the topology changes (e.g. if a disk is moved to another
+IDE controller).
+
+You can usually omit the file system type (`fsType`), since `mount` can
+usually detect the type and load the necessary kernel module
+automatically. However, if the file system is needed at early boot (in
+the initial ramdisk) and is not `ext2`, `ext3` or `ext4`, then it's best
+to specify `fsType` to ensure that the kernel module is available.
+
+::: {.note}
+System startup will fail if any of the filesystems fails to mount,
+dropping you to the emergency shell. You can make a mount asynchronous
+and non-critical by adding `options = [ "nofail" ];`.
+:::
+
+```{=docbook}
+<xi:include href="luks-file-systems.section.xml" />
+<xi:include href="sshfs-file-systems.section.xml" />
+```
diff --git a/nixos/doc/manual/configuration/file-systems.xml b/nixos/doc/manual/configuration/file-systems.xml
deleted file mode 100644
index 908b5d6c4681..000000000000
--- a/nixos/doc/manual/configuration/file-systems.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         version="5.0"
-         xml:id="ch-file-systems">
- <title>File Systems</title>
- <para>
-  You can define file systems using the <option>fileSystems</option>
-  configuration option. For instance, the following definition causes NixOS to
-  mount the Ext4 file system on device
-  <filename>/dev/disk/by-label/data</filename> onto the mount point
-  <filename>/data</filename>:
-<programlisting>
-<xref linkend="opt-fileSystems"/>."/data" =
-  { device = "/dev/disk/by-label/data";
-    fsType = "ext4";
-  };
-</programlisting>
-  This will create an entry in <filename>/etc/fstab</filename>, which will
-  generate a corresponding
-  <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd.mount.html">systemd.mount</link>
-  unit via
-  <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html">systemd-fstab-generator</link>.
-  The filesystem will be mounted automatically unless
-  <literal>"noauto"</literal> is present in <link
-  linkend="opt-fileSystems._name_.options">options</link>.
-  <literal>"noauto"</literal> filesystems can be mounted explicitly using
-  <command>systemctl</command> e.g. <command>systemctl start
-  data.mount</command>.
-  Mount points are created automatically if they don’t already exist. For
-  <option><link linkend="opt-fileSystems._name_.device">device</link></option>,
-  it’s best to use the topology-independent device aliases in
-  <filename>/dev/disk/by-label</filename> and
-  <filename>/dev/disk/by-uuid</filename>, as these don’t change if the
-  topology changes (e.g. if a disk is moved to another IDE controller).
- </para>
- <para>
-  You can usually omit the file system type
-  (<option><link linkend="opt-fileSystems._name_.fsType">fsType</link></option>),
-  since <command>mount</command> can usually detect the type and load the
-  necessary kernel module automatically. However, if the file system is needed
-  at early boot (in the initial ramdisk) and is not <literal>ext2</literal>,
-  <literal>ext3</literal> or <literal>ext4</literal>, then it’s best to
-  specify <option>fsType</option> to ensure that the kernel module is
-  available.
- </para>
- <note>
-  <para>
-   System startup will fail if any of the filesystems fails to mount, dropping
-   you to the emergency shell. You can make a mount asynchronous and
-   non-critical by adding
-   <literal><link linkend="opt-fileSystems._name_.options">options</link> = [
-   "nofail" ];</literal>.
-  </para>
- </note>
- <xi:include href="../from_md/configuration/luks-file-systems.section.xml" />
- <xi:include href="../from_md/configuration/sshfs-file-systems.section.xml" />
-</chapter>
diff --git a/nixos/doc/manual/configuration/networking.chapter.md b/nixos/doc/manual/configuration/networking.chapter.md
new file mode 100644
index 000000000000..529dc0610bda
--- /dev/null
+++ b/nixos/doc/manual/configuration/networking.chapter.md
@@ -0,0 +1,16 @@
+# Networking {#sec-networking}
+
+This section describes how to configure networking components
+on your NixOS machine.
+
+```{=docbook}
+<xi:include href="network-manager.section.xml" />
+<xi:include href="ssh.section.xml" />
+<xi:include href="ipv4-config.section.xml" />
+<xi:include href="ipv6-config.section.xml" />
+<xi:include href="firewall.section.xml" />
+<xi:include href="wireless.section.xml" />
+<xi:include href="ad-hoc-network-config.section.xml" />
+<xi:include href="renaming-interfaces.section.xml" />
+```
+<!-- TODO: OpenVPN, NAT -->
diff --git a/nixos/doc/manual/configuration/networking.xml b/nixos/doc/manual/configuration/networking.xml
deleted file mode 100644
index 5dd0278569b9..000000000000
--- a/nixos/doc/manual/configuration/networking.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         version="5.0"
-         xml:id="sec-networking">
- <title>Networking</title>
- <para>
-  This section describes how to configure networking components on your NixOS
-  machine.
- </para>
- <xi:include href="../from_md/configuration/network-manager.section.xml" />
- <xi:include href="../from_md/configuration/ssh.section.xml" />
- <xi:include href="../from_md/configuration/ipv4-config.section.xml" />
- <xi:include href="../from_md/configuration/ipv6-config.section.xml" />
- <xi:include href="../from_md/configuration/firewall.section.xml" />
- <xi:include href="../from_md/configuration/wireless.section.xml" />
- <xi:include href="../from_md/configuration/ad-hoc-network-config.section.xml" />
- <xi:include href="../from_md/configuration/renaming-interfaces.section.xml" />
-<!-- TODO: OpenVPN, NAT -->
-</chapter>
diff --git a/nixos/doc/manual/configuration/package-mgmt.chapter.md b/nixos/doc/manual/configuration/package-mgmt.chapter.md
new file mode 100644
index 000000000000..a6c414be59a9
--- /dev/null
+++ b/nixos/doc/manual/configuration/package-mgmt.chapter.md
@@ -0,0 +1,18 @@
+# Package Management {#sec-package-management}
+
+This section describes how to add additional packages to your system.
+NixOS has two distinct styles of package management:
+
+-   *Declarative*, where you declare what packages you want in your
+    `configuration.nix`. Every time you run `nixos-rebuild`, NixOS will
+    ensure that you get a consistent set of binaries corresponding to
+    your specification.
+
+-   *Ad hoc*, where you install, upgrade and uninstall packages via the
+    `nix-env` command. This style allows mixing packages from different
+    Nixpkgs versions. It's the only choice for non-root users.
+
+```{=docbook}
+<xi:include href="declarative-packages.section.xml" />
+<xi:include href="ad-hoc-packages.section.xml" />
+```
diff --git a/nixos/doc/manual/configuration/package-mgmt.xml b/nixos/doc/manual/configuration/package-mgmt.xml
deleted file mode 100644
index 2f9395d26fa8..000000000000
--- a/nixos/doc/manual/configuration/package-mgmt.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         version="5.0"
-         xml:id="sec-package-management">
- <title>Package Management</title>
- <para>
-  This section describes how to add additional packages to your system. NixOS
-  has two distinct styles of package management:
-  <itemizedlist>
-   <listitem>
-    <para>
-     <emphasis>Declarative</emphasis>, where you declare what packages you want
-     in your <filename>configuration.nix</filename>. Every time you run
-     <command>nixos-rebuild</command>, NixOS will ensure that you get a
-     consistent set of binaries corresponding to your specification.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     <emphasis>Ad hoc</emphasis>, where you install, upgrade and uninstall
-     packages via the <command>nix-env</command> command. This style allows
-     mixing packages from different Nixpkgs versions. It’s the only choice
-     for non-root users.
-    </para>
-   </listitem>
-  </itemizedlist>
- </para>
- <xi:include href="declarative-packages.xml" />
- <xi:include href="../from_md/configuration/ad-hoc-packages.section.xml" />
-</chapter>
diff --git a/nixos/doc/manual/configuration/profiles.chapter.md b/nixos/doc/manual/configuration/profiles.chapter.md
new file mode 100644
index 000000000000..b4ae1b7d3faa
--- /dev/null
+++ b/nixos/doc/manual/configuration/profiles.chapter.md
@@ -0,0 +1,34 @@
+# Profiles {#ch-profiles}
+
+In some cases, it may be desirable to take advantage of commonly-used,
+predefined configurations provided by nixpkgs, but different from those
+that come as default. This is a role fulfilled by NixOS\'s Profiles,
+which come as files living in `<nixpkgs/nixos/modules/profiles>`. That
+is to say, expected usage is to add them to the imports list of your
+`/etc/configuration.nix` as such:
+
+```nix
+imports = [
+  <nixpkgs/nixos/modules/profiles/profile-name.nix>
+];
+```
+
+Even if some of these profiles seem only useful in the context of
+install media, many are actually intended to be used in real installs.
+
+What follows is a brief explanation on the purpose and use-case for each
+profile. Detailing each option configured by each one is out of scope.
+
+```{=docbook}
+<xi:include href="profiles/all-hardware.section.xml" />
+<xi:include href="profiles/base.section.xml" />
+<xi:include href="profiles/clone-config.section.xml" />
+<xi:include href="profiles/demo.section.xml" />
+<xi:include href="profiles/docker-container.section.xml" />
+<xi:include href="profiles/graphical.section.xml" />
+<xi:include href="profiles/hardened.section.xml" />
+<xi:include href="profiles/headless.section.xml" />
+<xi:include href="profiles/installation-device.section.xml" />
+<xi:include href="profiles/minimal.section.xml" />
+<xi:include href="profiles/qemu-guest.section.xml" />
+```
diff --git a/nixos/doc/manual/configuration/profiles.xml b/nixos/doc/manual/configuration/profiles.xml
deleted file mode 100644
index 6994c7e31705..000000000000
--- a/nixos/doc/manual/configuration/profiles.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         version="5.0"
-         xml:id="ch-profiles">
- <title>Profiles</title>
- <para>
-  In some cases, it may be desirable to take advantage of commonly-used,
-  predefined configurations provided by nixpkgs, but different from those that
-  come as default. This is a role fulfilled by NixOS's Profiles, which come as
-  files living in <filename>&lt;nixpkgs/nixos/modules/profiles&gt;</filename>.
-  That is to say, expected usage is to add them to the imports list of your
-  <filename>/etc/configuration.nix</filename> as such:
- </para>
-<programlisting>
-  imports = [
-   &lt;nixpkgs/nixos/modules/profiles/profile-name.nix&gt;
-  ];
-</programlisting>
- <para>
-  Even if some of these profiles seem only useful in the context of install
-  media, many are actually intended to be used in real installs.
- </para>
- <para>
-  What follows is a brief explanation on the purpose and use-case for each
-  profile. Detailing each option configured by each one is out of scope.
- </para>
- <xi:include href="../from_md/configuration/profiles/all-hardware.section.xml" />
- <xi:include href="../from_md/configuration/profiles/base.section.xml" />
- <xi:include href="../from_md/configuration/profiles/clone-config.section.xml" />
- <xi:include href="../from_md/configuration/profiles/demo.section.xml" />
- <xi:include href="../from_md/configuration/profiles/docker-container.section.xml" />
- <xi:include href="../from_md/configuration/profiles/graphical.section.xml" />
- <xi:include href="../from_md/configuration/profiles/hardened.section.xml" />
- <xi:include href="../from_md/configuration/profiles/headless.section.xml" />
- <xi:include href="../from_md/configuration/profiles/installation-device.section.xml" />
- <xi:include href="../from_md/configuration/profiles/minimal.section.xml" />
- <xi:include href="../from_md/configuration/profiles/qemu-guest.section.xml" />
-</chapter>
diff --git a/nixos/doc/manual/development/development.xml b/nixos/doc/manual/development/development.xml
index 670a391e3801..0b2ad60a878b 100644
--- a/nixos/doc/manual/development/development.xml
+++ b/nixos/doc/manual/development/development.xml
@@ -10,10 +10,10 @@
   </para>
  </partintro>
  <xi:include href="../from_md/development/sources.chapter.xml" />
- <xi:include href="writing-modules.xml" />
+ <xi:include href="../from_md/development/writing-modules.chapter.xml" />
  <xi:include href="../from_md/development/building-parts.chapter.xml" />
  <xi:include href="../from_md/development/writing-documentation.chapter.xml" />
  <xi:include href="../from_md/development/building-nixos.chapter.xml" />
- <xi:include href="nixos-tests.xml" />
+ <xi:include href="../from_md/development/nixos-tests.chapter.xml" />
  <xi:include href="../from_md/development/testing-installer.chapter.xml" />
 </part>
diff --git a/nixos/doc/manual/development/nixos-tests.chapter.md b/nixos/doc/manual/development/nixos-tests.chapter.md
new file mode 100644
index 000000000000..2a4fdddeaa66
--- /dev/null
+++ b/nixos/doc/manual/development/nixos-tests.chapter.md
@@ -0,0 +1,13 @@
+# NixOS Tests {#sec-nixos-tests}
+
+When you add some feature to NixOS, you should write a test for it.
+NixOS tests are kept in the directory `nixos/tests`, and are executed
+(using Nix) by a testing framework that automatically starts one or more
+virtual machines containing the NixOS system(s) required for the test.
+
+```{=docbook}
+<xi:include href="writing-nixos-tests.section.xml" />
+<xi:include href="running-nixos-tests.section.xml" />
+<xi:include href="running-nixos-tests-interactively.section.xml" />
+<xi:include href="linking-nixos-tests-to-packages.section.xml" />
+```
diff --git a/nixos/doc/manual/development/nixos-tests.xml b/nixos/doc/manual/development/nixos-tests.xml
deleted file mode 100644
index 67dc09fc715f..000000000000
--- a/nixos/doc/manual/development/nixos-tests.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-        xmlns:xlink="http://www.w3.org/1999/xlink"
-        xmlns:xi="http://www.w3.org/2001/XInclude"
-        version="5.0"
-        xml:id="sec-nixos-tests">
- <title>NixOS Tests</title>
- <para>
-  When you add some feature to NixOS, you should write a test for it. NixOS
-  tests are kept in the directory
-  <filename
-xlink:href="https://github.com/NixOS/nixpkgs/tree/master/nixos/tests">nixos/tests</filename>,
-  and are executed (using Nix) by a testing framework that automatically starts
-  one or more virtual machines containing the NixOS system(s) required for the
-  test.
- </para>
- <xi:include href="../from_md/development/writing-nixos-tests.section.xml" />
- <xi:include href="../from_md/development/running-nixos-tests.section.xml" />
- <xi:include href="../from_md/development/running-nixos-tests-interactively.section.xml" />
- <xi:include href="../from_md/development/linking-nixos-tests-to-packages.section.xml" />
-</chapter>
diff --git a/nixos/doc/manual/development/writing-modules.chapter.md b/nixos/doc/manual/development/writing-modules.chapter.md
new file mode 100644
index 000000000000..2e3c6b34f1f5
--- /dev/null
+++ b/nixos/doc/manual/development/writing-modules.chapter.md
@@ -0,0 +1,166 @@
+# Writing NixOS Modules {#sec-writing-modules}
+
+NixOS has a modular system for declarative configuration. This system
+combines multiple *modules* to produce the full system configuration.
+One of the modules that constitute the configuration is
+`/etc/nixos/configuration.nix`. Most of the others live in the
+[`nixos/modules`](https://github.com/NixOS/nixpkgs/tree/master/nixos/modules)
+subdirectory of the Nixpkgs tree.
+
+Each NixOS module is a file that handles one logical aspect of the
+configuration, such as a specific kind of hardware, a service, or
+network settings. A module configuration does not have to handle
+everything from scratch; it can use the functionality provided by other
+modules for its implementation. Thus a module can *declare* options that
+can be used by other modules, and conversely can *define* options
+provided by other modules in its own implementation. For example, the
+module
+[`pam.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/security/pam.nix)
+declares the option `security.pam.services` that allows other modules (e.g.
+[`sshd.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/networking/ssh/sshd.nix))
+to define PAM services; and it defines the option `environment.etc` (declared by
+[`etc.nix`](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/etc/etc.nix))
+to cause files to be created in `/etc/pam.d`.
+
+In [](#sec-configuration-syntax), we saw the following structure of
+NixOS modules:
+
+```nix
+{ config, pkgs, ... }:
+
+{ option definitions
+}
+```
+
+This is actually an *abbreviated* form of module that only defines
+options, but does not declare any. The structure of full NixOS modules
+is shown in [Example: Structure of NixOS Modules](#ex-module-syntax).
+
+::: {#ex-module-syntax .example}
+::: {.title}
+**Example: Structure of NixOS Modules**
+:::
+```nix
+{ config, pkgs, ... }:
+
+{
+  imports =
+    [ paths of other modules
+    ];
+
+  options = {
+    option declarations
+  };
+
+  config = {
+    option definitions
+  };
+}
+```
+:::
+
+The meaning of each part is as follows.
+
+-   The first line makes the current Nix expression a function. The variable
+    `pkgs` contains Nixpkgs (by default, it takes the `nixpkgs` entry of
+    `NIX_PATH`, see the [Nix manual](https://nixos.org/manual/nix/stable/#sec-common-env)
+    for further details), while `config` contains the full system
+    configuration. This line can be omitted if there is no reference to
+    `pkgs` and `config` inside the module.
+
+-   This `imports` list enumerates the paths to other NixOS modules that
+    should be included in the evaluation of the system configuration. A
+    default set of modules is defined in the file `modules/module-list.nix`.
+    These don\'t need to be added in the import list.
+
+-   The attribute `options` is a nested set of *option declarations*
+    (described below).
+
+-   The attribute `config` is a nested set of *option definitions* (also
+    described below).
+
+[Example: NixOS Module for the "locate" Service](#locate-example)
+shows a module that handles the regular update of the "locate" database,
+an index of all files in the file system. This module declares two
+options that can be defined by other modules (typically the user's
+`configuration.nix`): `services.locate.enable` (whether the database should
+be updated) and `services.locate.interval` (when the update should be done).
+It implements its functionality by defining two options declared by other
+modules: `systemd.services` (the set of all systemd services) and
+`systemd.timers` (the list of commands to be executed periodically by
+`systemd`).
+
+::: {#locate-example .example}
+::: {.title}
+**Example: NixOS Module for the "locate" Service**
+:::
+```nix
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.locate;
+in {
+  options.services.locate = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        If enabled, NixOS will periodically update the database of
+        files used by the locate command.
+      '';
+    };
+
+    interval = mkOption {
+      type = types.str;
+      default = "02:15";
+      example = "hourly";
+      description = ''
+        Update the locate database at this interval. Updates by
+        default at 2:15 AM every day.
+
+        The format is described in
+        systemd.time(7).
+      '';
+    };
+
+    # Other options omitted for documentation
+  };
+
+  config = {
+    systemd.services.update-locatedb =
+      { description = "Update Locate Database";
+        path  = [ pkgs.su ];
+        script =
+          ''
+            mkdir -m 0755 -p $(dirname ${toString cfg.output})
+            exec updatedb \
+              --localuser=${cfg.localuser} \
+              ${optionalString (!cfg.includeStore) "--prunepaths='/nix/store'"} \
+              --output=${toString cfg.output} ${concatStringsSep " " cfg.extraFlags}
+          '';
+      };
+
+    systemd.timers.update-locatedb = mkIf cfg.enable
+      { description = "Update timer for locate database";
+        partOf      = [ "update-locatedb.service" ];
+        wantedBy    = [ "timers.target" ];
+        timerConfig.OnCalendar = cfg.interval;
+      };
+  };
+}
+```
+:::
+
+```{=docbook}
+<xi:include href="option-declarations.section.xml" />
+<xi:include href="option-types.section.xml" />
+<xi:include href="option-def.section.xml" />
+<xi:include href="assertions.section.xml" />
+<xi:include href="meta-attributes.section.xml" />
+<xi:include href="importing-modules.section.xml" />
+<xi:include href="replace-modules.section.xml" />
+<xi:include href="freeform-modules.section.xml" />
+<xi:include href="settings-options.section.xml" />
+```
diff --git a/nixos/doc/manual/development/writing-modules.xml b/nixos/doc/manual/development/writing-modules.xml
deleted file mode 100644
index 167976247091..000000000000
--- a/nixos/doc/manual/development/writing-modules.xml
+++ /dev/null
@@ -1,191 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-        xmlns:xlink="http://www.w3.org/1999/xlink"
-        xmlns:xi="http://www.w3.org/2001/XInclude"
-        version="5.0"
-        xml:id="sec-writing-modules">
- <title>Writing NixOS Modules</title>
- <para>
-  NixOS has a modular system for declarative configuration. This system
-  combines multiple <emphasis>modules</emphasis> to produce the full system
-  configuration. One of the modules that constitute the configuration is
-  <filename>/etc/nixos/configuration.nix</filename>. Most of the others live in
-  the
-  <link
-xlink:href="https://github.com/NixOS/nixpkgs/tree/master/nixos/modules"><filename>nixos/modules</filename></link>
-  subdirectory of the Nixpkgs tree.
- </para>
- <para>
-  Each NixOS module is a file that handles one logical aspect of the
-  configuration, such as a specific kind of hardware, a service, or network
-  settings. A module configuration does not have to handle everything from
-  scratch; it can use the functionality provided by other modules for its
-  implementation. Thus a module can <emphasis>declare</emphasis> options that
-  can be used by other modules, and conversely can <emphasis>define</emphasis>
-  options provided by other modules in its own implementation. For example, the
-  module
-  <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/security/pam.nix"><filename>pam.nix</filename></link>
-  declares the option <option>security.pam.services</option> that allows other
-  modules (e.g.
-  <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/networking/ssh/sshd.nix"><filename>sshd.nix</filename></link>)
-  to define PAM services; and it defines the option
-  <option>environment.etc</option> (declared by
-  <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/etc/etc.nix"><filename>etc.nix</filename></link>)
-  to cause files to be created in <filename>/etc/pam.d</filename>.
- </para>
- <para xml:id="para-module-syn">
-  In <xref
-linkend="sec-configuration-syntax"/>, we saw the following structure
-  of NixOS modules:
-<programlisting>
-{ config, pkgs, ... }:
-
-{ <replaceable>option definitions</replaceable>
-}
-</programlisting>
-  This is actually an <emphasis>abbreviated</emphasis> form of module that only
-  defines options, but does not declare any. The structure of full NixOS
-  modules is shown in <xref linkend='ex-module-syntax' />.
- </para>
- <example xml:id='ex-module-syntax'>
-  <title>Structure of NixOS Modules</title>
-<programlisting>
-{ config, pkgs, ... }: <co xml:id='module-syntax-1' />
-
-{
-  imports =
-    [ <replaceable>paths of other modules</replaceable> <co xml:id='module-syntax-2' />
-    ];
-
-  options = {
-    <replaceable>option declarations</replaceable> <co xml:id='module-syntax-3' />
-  };
-
-  config = {
-    <replaceable>option definitions</replaceable> <co xml:id='module-syntax-4' />
-  };
-}</programlisting>
- </example>
- <para>
-  The meaning of each part is as follows.
-  <calloutlist>
-   <callout arearefs='module-syntax-1'>
-    <para>
-     This line makes the current Nix expression a function. The variable
-     <varname>pkgs</varname> contains Nixpkgs (by default, it takes the
-     <varname>nixpkgs</varname> entry of <envar>NIX_PATH</envar>, see the <link
-     xlink:href="https://nixos.org/manual/nix/stable/#sec-common-env">Nix
-     manual</link> for further details), while <varname>config</varname>
-     contains the full system configuration. This line can be omitted if there
-     is no reference to <varname>pkgs</varname> and <varname>config</varname>
-     inside the module.
-    </para>
-   </callout>
-   <callout arearefs='module-syntax-2'>
-    <para>
-     This list enumerates the paths to other NixOS modules that should be
-     included in the evaluation of the system configuration. A default set of
-     modules is defined in the file
-     <filename>modules/module-list.nix</filename>. These don't need to be added
-     in the import list.
-    </para>
-   </callout>
-   <callout arearefs='module-syntax-3'>
-    <para>
-     The attribute <varname>options</varname> is a nested set of
-     <emphasis>option declarations</emphasis> (described below).
-    </para>
-   </callout>
-   <callout arearefs='module-syntax-4'>
-    <para>
-     The attribute <varname>config</varname> is a nested set of
-     <emphasis>option definitions</emphasis> (also described below).
-    </para>
-   </callout>
-  </calloutlist>
- </para>
- <para>
-  <xref linkend='locate-example' /> shows a module that handles the regular
-  update of the “locate” database, an index of all files in the file
-  system. This module declares two options that can be defined by other modules
-  (typically the user’s <filename>configuration.nix</filename>):
-  <option>services.locate.enable</option> (whether the database should be
-  updated) and <option>services.locate.interval</option> (when the update
-  should be done). It implements its functionality by defining two options
-  declared by other modules: <option>systemd.services</option> (the set of all
-  systemd services) and <option>systemd.timers</option> (the list of commands
-  to be executed periodically by <command>systemd</command>).
- </para>
- <example xml:id='locate-example'>
-  <title>NixOS Module for the “locate” Service</title>
-<programlisting>
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.locate;
-in {
-  options.services.locate = {
-    enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        If enabled, NixOS will periodically update the database of
-        files used by the <command>locate</command> command.
-      '';
-    };
-
-    interval = mkOption {
-      type = types.str;
-      default = "02:15";
-      example = "hourly";
-      description = ''
-        Update the locate database at this interval. Updates by
-        default at 2:15 AM every day.
-
-        The format is described in
-        <citerefentry><refentrytitle>systemd.time</refentrytitle>
-        <manvolnum>7</manvolnum></citerefentry>.
-      '';
-    };
-
-    # Other options omitted for documentation
-  };
-
-  config = {
-    systemd.services.update-locatedb =
-      { description = "Update Locate Database";
-        path  = [ pkgs.su ];
-        script =
-          ''
-            mkdir -m 0755 -p $(dirname ${toString cfg.output})
-            exec updatedb \
-              --localuser=${cfg.localuser} \
-              ${optionalString (!cfg.includeStore) "--prunepaths='/nix/store'"} \
-              --output=${toString cfg.output} ${concatStringsSep " " cfg.extraFlags}
-          '';
-      };
-
-    systemd.timers.update-locatedb = mkIf cfg.enable
-      { description = "Update timer for locate database";
-        partOf      = [ "update-locatedb.service" ];
-        wantedBy    = [ "timers.target" ];
-        timerConfig.OnCalendar = cfg.interval;
-      };
-  };
-}
-</programlisting>
- </example>
- <xi:include href="../from_md/development/option-declarations.section.xml" />
- <xi:include href="../from_md/development/option-types.section.xml" />
- <xi:include href="../from_md/development/option-def.section.xml" />
- <xi:include href="../from_md/development/assertions.section.xml" />
- <xi:include href="../from_md/development/meta-attributes.section.xml" />
- <xi:include href="../from_md/development/importing-modules.section.xml" />
- <xi:include href="../from_md/development/replace-modules.section.xml" />
- <xi:include href="../from_md/development/freeform-modules.section.xml" />
- <xi:include href="../from_md/development/settings-options.section.xml" />
-</chapter>
diff --git a/nixos/doc/manual/from_md/administration/containers.chapter.xml b/nixos/doc/manual/from_md/administration/containers.chapter.xml
new file mode 100644
index 000000000000..afbd5b35aaa5
--- /dev/null
+++ b/nixos/doc/manual/from_md/administration/containers.chapter.xml
@@ -0,0 +1,31 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="ch-containers">
+  <title>Container Management</title>
+  <para>
+    NixOS allows you to easily run other NixOS instances as
+    <emphasis>containers</emphasis>. Containers are a light-weight
+    approach to virtualisation that runs software in the container at
+    the same speed as in the host system. NixOS containers share the Nix
+    store of the host, making container creation very efficient.
+  </para>
+  <warning>
+    <para>
+      Currently, NixOS containers are not perfectly isolated from the
+      host system. This means that a user with root access to the
+      container can do things that affect the host. So you should not
+      give container root access to untrusted users.
+    </para>
+  </warning>
+  <para>
+    NixOS containers can be created in two ways: imperatively, using the
+    command <literal>nixos-container</literal>, and declaratively, by
+    specifying them in your <literal>configuration.nix</literal>. The
+    declarative approach implies that containers get upgraded along with
+    your host system when you run <literal>nixos-rebuild</literal>,
+    which is often not what you want. By contrast, in the imperative
+    approach, containers are configured and updated independently from
+    the host system.
+  </para>
+  <xi:include href="imperative-containers.section.xml" />
+  <xi:include href="declarative-containers.section.xml" />
+  <xi:include href="container-networking.section.xml" />
+</chapter>
diff --git a/nixos/doc/manual/from_md/administration/troubleshooting.chapter.xml b/nixos/doc/manual/from_md/administration/troubleshooting.chapter.xml
new file mode 100644
index 000000000000..8bbb8a1fe729
--- /dev/null
+++ b/nixos/doc/manual/from_md/administration/troubleshooting.chapter.xml
@@ -0,0 +1,12 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="ch-troubleshooting">
+  <title>Troubleshooting</title>
+  <para>
+    This chapter describes solutions to common problems you might
+    encounter when you manage your NixOS system.
+  </para>
+  <xi:include href="boot-problems.section.xml" />
+  <xi:include href="maintenance-mode.section.xml" />
+  <xi:include href="rollback.section.xml" />
+  <xi:include href="store-corruption.section.xml" />
+  <xi:include href="network-problems.section.xml" />
+</chapter>
diff --git a/nixos/doc/manual/from_md/configuration/config-syntax.chapter.xml b/nixos/doc/manual/from_md/configuration/config-syntax.chapter.xml
new file mode 100644
index 000000000000..01446e53e38f
--- /dev/null
+++ b/nixos/doc/manual/from_md/configuration/config-syntax.chapter.xml
@@ -0,0 +1,21 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="sec-configuration-syntax">
+  <title>Configuration Syntax</title>
+  <para>
+    The NixOS configuration file
+    <literal>/etc/nixos/configuration.nix</literal> is actually a
+    <emphasis>Nix expression</emphasis>, which is the Nix package
+    manager’s purely functional language for describing how to build
+    packages and configurations. This means you have all the expressive
+    power of that language at your disposal, including the ability to
+    abstract over common patterns, which is very useful when managing
+    complex systems. The syntax and semantics of the Nix language are
+    fully described in the
+    <link xlink:href="https://nixos.org/nix/manual/#chap-writing-nix-expressions">Nix
+    manual</link>, but here we give a short overview of the most
+    important constructs useful in NixOS configuration files.
+  </para>
+  <xi:include href="config-file.section.xml" />
+  <xi:include href="abstractions.section.xml" />
+  <xi:include href="modularity.section.xml" />
+  <xi:include href="summary.section.xml" />
+</chapter>
diff --git a/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml b/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml
new file mode 100644
index 000000000000..da31f18d9233
--- /dev/null
+++ b/nixos/doc/manual/from_md/configuration/declarative-packages.section.xml
@@ -0,0 +1,53 @@
+<section xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="sec-declarative-package-mgmt">
+  <title>Declarative Package Management</title>
+  <para>
+    With declarative package management, you specify which packages you
+    want on your system by setting the option
+    <xref linkend="opt-environment.systemPackages" />. For instance,
+    adding the following line to <literal>configuration.nix</literal>
+    enables the Mozilla Thunderbird email application:
+  </para>
+  <programlisting language="bash">
+environment.systemPackages = [ pkgs.thunderbird ];
+</programlisting>
+  <para>
+    The effect of this specification is that the Thunderbird package
+    from Nixpkgs will be built or downloaded as part of the system when
+    you run <literal>nixos-rebuild switch</literal>.
+  </para>
+  <note>
+    <para>
+      Some packages require additional global configuration such as
+      D-Bus or systemd service registration so adding them to
+      <xref linkend="opt-environment.systemPackages" /> might not be
+      sufficient. You are advised to check the
+      <link linkend="ch-options">list of options</link> whether a NixOS
+      module for the package does not exist.
+    </para>
+  </note>
+  <para>
+    You can get a list of the available packages as follows:
+  </para>
+  <programlisting>
+$ nix-env -qaP '*' --description
+nixos.firefox   firefox-23.0   Mozilla Firefox - the browser, reloaded
+...
+</programlisting>
+  <para>
+    The first column in the output is the <emphasis>attribute
+    name</emphasis>, such as <literal>nixos.thunderbird</literal>.
+  </para>
+  <para>
+    Note: the <literal>nixos</literal> prefix tells us that we want to
+    get the package from the <literal>nixos</literal> channel and works
+    only in CLI tools. In declarative configuration use
+    <literal>pkgs</literal> prefix (variable).
+  </para>
+  <para>
+    To <quote>uninstall</quote> a package, simply remove it from
+    <xref linkend="opt-environment.systemPackages" /> and run
+    <literal>nixos-rebuild switch</literal>.
+  </para>
+  <xi:include href="customizing-packages.section.xml" />
+  <xi:include href="adding-custom-packages.section.xml" />
+</section>
diff --git a/nixos/doc/manual/from_md/configuration/file-systems.chapter.xml b/nixos/doc/manual/from_md/configuration/file-systems.chapter.xml
new file mode 100644
index 000000000000..71441d8b4a5b
--- /dev/null
+++ b/nixos/doc/manual/from_md/configuration/file-systems.chapter.xml
@@ -0,0 +1,55 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="ch-file-systems">
+  <title>File Systems</title>
+  <para>
+    You can define file systems using the <literal>fileSystems</literal>
+    configuration option. For instance, the following definition causes
+    NixOS to mount the Ext4 file system on device
+    <literal>/dev/disk/by-label/data</literal> onto the mount point
+    <literal>/data</literal>:
+  </para>
+  <programlisting language="bash">
+fileSystems.&quot;/data&quot; =
+  { device = &quot;/dev/disk/by-label/data&quot;;
+    fsType = &quot;ext4&quot;;
+  };
+</programlisting>
+  <para>
+    This will create an entry in <literal>/etc/fstab</literal>, which
+    will generate a corresponding
+    <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd.mount.html">systemd.mount</link>
+    unit via
+    <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html">systemd-fstab-generator</link>.
+    The filesystem will be mounted automatically unless
+    <literal>&quot;noauto&quot;</literal> is present in
+    <link linkend="opt-fileSystems._name_.options">options</link>.
+    <literal>&quot;noauto&quot;</literal> filesystems can be mounted
+    explicitly using <literal>systemctl</literal> e.g.
+    <literal>systemctl start data.mount</literal>. Mount points are
+    created automatically if they don’t already exist. For
+    <literal>device</literal>, it’s best to use the topology-independent
+    device aliases in <literal>/dev/disk/by-label</literal> and
+    <literal>/dev/disk/by-uuid</literal>, as these don’t change if the
+    topology changes (e.g. if a disk is moved to another IDE
+    controller).
+  </para>
+  <para>
+    You can usually omit the file system type
+    (<literal>fsType</literal>), since <literal>mount</literal> can
+    usually detect the type and load the necessary kernel module
+    automatically. However, if the file system is needed at early boot
+    (in the initial ramdisk) and is not <literal>ext2</literal>,
+    <literal>ext3</literal> or <literal>ext4</literal>, then it’s best
+    to specify <literal>fsType</literal> to ensure that the kernel
+    module is available.
+  </para>
+  <note>
+    <para>
+      System startup will fail if any of the filesystems fails to mount,
+      dropping you to the emergency shell. You can make a mount
+      asynchronous and non-critical by adding
+      <literal>options = [ &quot;nofail&quot; ];</literal>.
+    </para>
+  </note>
+  <xi:include href="luks-file-systems.section.xml" />
+  <xi:include href="sshfs-file-systems.section.xml" />
+</chapter>
diff --git a/nixos/doc/manual/from_md/configuration/networking.chapter.xml b/nixos/doc/manual/from_md/configuration/networking.chapter.xml
new file mode 100644
index 000000000000..2ed86ea3b589
--- /dev/null
+++ b/nixos/doc/manual/from_md/configuration/networking.chapter.xml
@@ -0,0 +1,15 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="sec-networking">
+  <title>Networking</title>
+  <para>
+    This section describes how to configure networking components on
+    your NixOS machine.
+  </para>
+  <xi:include href="network-manager.section.xml" />
+  <xi:include href="ssh.section.xml" />
+  <xi:include href="ipv4-config.section.xml" />
+  <xi:include href="ipv6-config.section.xml" />
+  <xi:include href="firewall.section.xml" />
+  <xi:include href="wireless.section.xml" />
+  <xi:include href="ad-hoc-network-config.section.xml" />
+  <xi:include href="renaming-interfaces.section.xml" />
+</chapter>
diff --git a/nixos/doc/manual/from_md/configuration/package-mgmt.chapter.xml b/nixos/doc/manual/from_md/configuration/package-mgmt.chapter.xml
new file mode 100644
index 000000000000..d3727edbe08d
--- /dev/null
+++ b/nixos/doc/manual/from_md/configuration/package-mgmt.chapter.xml
@@ -0,0 +1,28 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="sec-package-management">
+  <title>Package Management</title>
+  <para>
+    This section describes how to add additional packages to your
+    system. NixOS has two distinct styles of package management:
+  </para>
+  <itemizedlist>
+    <listitem>
+      <para>
+        <emphasis>Declarative</emphasis>, where you declare what
+        packages you want in your <literal>configuration.nix</literal>.
+        Every time you run <literal>nixos-rebuild</literal>, NixOS will
+        ensure that you get a consistent set of binaries corresponding
+        to your specification.
+      </para>
+    </listitem>
+    <listitem>
+      <para>
+        <emphasis>Ad hoc</emphasis>, where you install, upgrade and
+        uninstall packages via the <literal>nix-env</literal> command.
+        This style allows mixing packages from different Nixpkgs
+        versions. It’s the only choice for non-root users.
+      </para>
+    </listitem>
+  </itemizedlist>
+  <xi:include href="declarative-packages.section.xml" />
+  <xi:include href="ad-hoc-packages.section.xml" />
+</chapter>
diff --git a/nixos/doc/manual/from_md/configuration/profiles.chapter.xml b/nixos/doc/manual/from_md/configuration/profiles.chapter.xml
new file mode 100644
index 000000000000..6f5fc130c6a0
--- /dev/null
+++ b/nixos/doc/manual/from_md/configuration/profiles.chapter.xml
@@ -0,0 +1,38 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="ch-profiles">
+  <title>Profiles</title>
+  <para>
+    In some cases, it may be desirable to take advantage of
+    commonly-used, predefined configurations provided by nixpkgs, but
+    different from those that come as default. This is a role fulfilled
+    by NixOS's Profiles, which come as files living in
+    <literal>&lt;nixpkgs/nixos/modules/profiles&gt;</literal>. That is
+    to say, expected usage is to add them to the imports list of your
+    <literal>/etc/configuration.nix</literal> as such:
+  </para>
+  <programlisting language="bash">
+imports = [
+  &lt;nixpkgs/nixos/modules/profiles/profile-name.nix&gt;
+];
+</programlisting>
+  <para>
+    Even if some of these profiles seem only useful in the context of
+    install media, many are actually intended to be used in real
+    installs.
+  </para>
+  <para>
+    What follows is a brief explanation on the purpose and use-case for
+    each profile. Detailing each option configured by each one is out of
+    scope.
+  </para>
+  <xi:include href="profiles/all-hardware.section.xml" />
+  <xi:include href="profiles/base.section.xml" />
+  <xi:include href="profiles/clone-config.section.xml" />
+  <xi:include href="profiles/demo.section.xml" />
+  <xi:include href="profiles/docker-container.section.xml" />
+  <xi:include href="profiles/graphical.section.xml" />
+  <xi:include href="profiles/hardened.section.xml" />
+  <xi:include href="profiles/headless.section.xml" />
+  <xi:include href="profiles/installation-device.section.xml" />
+  <xi:include href="profiles/minimal.section.xml" />
+  <xi:include href="profiles/qemu-guest.section.xml" />
+</chapter>
diff --git a/nixos/doc/manual/from_md/development/nixos-tests.chapter.xml b/nixos/doc/manual/from_md/development/nixos-tests.chapter.xml
new file mode 100644
index 000000000000..b9ff2269676c
--- /dev/null
+++ b/nixos/doc/manual/from_md/development/nixos-tests.chapter.xml
@@ -0,0 +1,14 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="sec-nixos-tests">
+  <title>NixOS Tests</title>
+  <para>
+    When you add some feature to NixOS, you should write a test for it.
+    NixOS tests are kept in the directory
+    <literal>nixos/tests</literal>, and are executed (using Nix) by a
+    testing framework that automatically starts one or more virtual
+    machines containing the NixOS system(s) required for the test.
+  </para>
+  <xi:include href="writing-nixos-tests.section.xml" />
+  <xi:include href="running-nixos-tests.section.xml" />
+  <xi:include href="running-nixos-tests-interactively.section.xml" />
+  <xi:include href="linking-nixos-tests-to-packages.section.xml" />
+</chapter>
diff --git a/nixos/doc/manual/from_md/development/writing-modules.chapter.xml b/nixos/doc/manual/from_md/development/writing-modules.chapter.xml
new file mode 100644
index 000000000000..e33c24f4f12c
--- /dev/null
+++ b/nixos/doc/manual/from_md/development/writing-modules.chapter.xml
@@ -0,0 +1,196 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="sec-writing-modules">
+  <title>Writing NixOS Modules</title>
+  <para>
+    NixOS has a modular system for declarative configuration. This
+    system combines multiple <emphasis>modules</emphasis> to produce the
+    full system configuration. One of the modules that constitute the
+    configuration is <literal>/etc/nixos/configuration.nix</literal>.
+    Most of the others live in the
+    <link xlink:href="https://github.com/NixOS/nixpkgs/tree/master/nixos/modules"><literal>nixos/modules</literal></link>
+    subdirectory of the Nixpkgs tree.
+  </para>
+  <para>
+    Each NixOS module is a file that handles one logical aspect of the
+    configuration, such as a specific kind of hardware, a service, or
+    network settings. A module configuration does not have to handle
+    everything from scratch; it can use the functionality provided by
+    other modules for its implementation. Thus a module can
+    <emphasis>declare</emphasis> options that can be used by other
+    modules, and conversely can <emphasis>define</emphasis> options
+    provided by other modules in its own implementation. For example,
+    the module
+    <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/security/pam.nix"><literal>pam.nix</literal></link>
+    declares the option <literal>security.pam.services</literal> that
+    allows other modules (e.g.
+    <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/networking/ssh/sshd.nix"><literal>sshd.nix</literal></link>)
+    to define PAM services; and it defines the option
+    <literal>environment.etc</literal> (declared by
+    <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/etc/etc.nix"><literal>etc.nix</literal></link>)
+    to cause files to be created in <literal>/etc/pam.d</literal>.
+  </para>
+  <para>
+    In <xref linkend="sec-configuration-syntax" />, we saw the following
+    structure of NixOS modules:
+  </para>
+  <programlisting language="bash">
+{ config, pkgs, ... }:
+
+{ option definitions
+}
+</programlisting>
+  <para>
+    This is actually an <emphasis>abbreviated</emphasis> form of module
+    that only defines options, but does not declare any. The structure
+    of full NixOS modules is shown in
+    <link linkend="ex-module-syntax">Example: Structure of NixOS
+    Modules</link>.
+  </para>
+  <anchor xml:id="ex-module-syntax" />
+  <para>
+    <emphasis role="strong">Example: Structure of NixOS
+    Modules</emphasis>
+  </para>
+  <programlisting language="bash">
+{ config, pkgs, ... }:
+
+{
+  imports =
+    [ paths of other modules
+    ];
+
+  options = {
+    option declarations
+  };
+
+  config = {
+    option definitions
+  };
+}
+</programlisting>
+  <para>
+    The meaning of each part is as follows.
+  </para>
+  <itemizedlist>
+    <listitem>
+      <para>
+        The first line makes the current Nix expression a function. The
+        variable <literal>pkgs</literal> contains Nixpkgs (by default,
+        it takes the <literal>nixpkgs</literal> entry of
+        <literal>NIX_PATH</literal>, see the
+        <link xlink:href="https://nixos.org/manual/nix/stable/#sec-common-env">Nix
+        manual</link> for further details), while
+        <literal>config</literal> contains the full system
+        configuration. This line can be omitted if there is no reference
+        to <literal>pkgs</literal> and <literal>config</literal> inside
+        the module.
+      </para>
+    </listitem>
+    <listitem>
+      <para>
+        This <literal>imports</literal> list enumerates the paths to
+        other NixOS modules that should be included in the evaluation of
+        the system configuration. A default set of modules is defined in
+        the file <literal>modules/module-list.nix</literal>. These don't
+        need to be added in the import list.
+      </para>
+    </listitem>
+    <listitem>
+      <para>
+        The attribute <literal>options</literal> is a nested set of
+        <emphasis>option declarations</emphasis> (described below).
+      </para>
+    </listitem>
+    <listitem>
+      <para>
+        The attribute <literal>config</literal> is a nested set of
+        <emphasis>option definitions</emphasis> (also described below).
+      </para>
+    </listitem>
+  </itemizedlist>
+  <para>
+    <link linkend="locate-example">Example: NixOS Module for the
+    <quote>locate</quote> Service</link> shows a module that handles the
+    regular update of the <quote>locate</quote> database, an index of
+    all files in the file system. This module declares two options that
+    can be defined by other modules (typically the user’s
+    <literal>configuration.nix</literal>):
+    <literal>services.locate.enable</literal> (whether the database
+    should be updated) and <literal>services.locate.interval</literal>
+    (when the update should be done). It implements its functionality by
+    defining two options declared by other modules:
+    <literal>systemd.services</literal> (the set of all systemd
+    services) and <literal>systemd.timers</literal> (the list of
+    commands to be executed periodically by <literal>systemd</literal>).
+  </para>
+  <anchor xml:id="locate-example" />
+  <para>
+    <emphasis role="strong">Example: NixOS Module for the
+    <quote>locate</quote> Service</emphasis>
+  </para>
+  <programlisting language="bash">
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.locate;
+in {
+  options.services.locate = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        If enabled, NixOS will periodically update the database of
+        files used by the locate command.
+      '';
+    };
+
+    interval = mkOption {
+      type = types.str;
+      default = &quot;02:15&quot;;
+      example = &quot;hourly&quot;;
+      description = ''
+        Update the locate database at this interval. Updates by
+        default at 2:15 AM every day.
+
+        The format is described in
+        systemd.time(7).
+      '';
+    };
+
+    # Other options omitted for documentation
+  };
+
+  config = {
+    systemd.services.update-locatedb =
+      { description = &quot;Update Locate Database&quot;;
+        path  = [ pkgs.su ];
+        script =
+          ''
+            mkdir -m 0755 -p $(dirname ${toString cfg.output})
+            exec updatedb \
+              --localuser=${cfg.localuser} \
+              ${optionalString (!cfg.includeStore) &quot;--prunepaths='/nix/store'&quot;} \
+              --output=${toString cfg.output} ${concatStringsSep &quot; &quot; cfg.extraFlags}
+          '';
+      };
+
+    systemd.timers.update-locatedb = mkIf cfg.enable
+      { description = &quot;Update timer for locate database&quot;;
+        partOf      = [ &quot;update-locatedb.service&quot; ];
+        wantedBy    = [ &quot;timers.target&quot; ];
+        timerConfig.OnCalendar = cfg.interval;
+      };
+  };
+}
+</programlisting>
+  <xi:include href="option-declarations.section.xml" />
+  <xi:include href="option-types.section.xml" />
+  <xi:include href="option-def.section.xml" />
+  <xi:include href="assertions.section.xml" />
+  <xi:include href="meta-attributes.section.xml" />
+  <xi:include href="importing-modules.section.xml" />
+  <xi:include href="replace-modules.section.xml" />
+  <xi:include href="freeform-modules.section.xml" />
+  <xi:include href="settings-options.section.xml" />
+</chapter>
diff --git a/nixos/doc/manual/from_md/installation/installing.chapter.xml b/nixos/doc/manual/from_md/installation/installing.chapter.xml
new file mode 100644
index 000000000000..91ab71682977
--- /dev/null
+++ b/nixos/doc/manual/from_md/installation/installing.chapter.xml
@@ -0,0 +1,642 @@
+<chapter xmlns="http://docbook.org/ns/docbook"  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="sec-installation">
+  <title>Installing NixOS</title>
+  <section xml:id="sec-installation-booting">
+    <title>Booting the system</title>
+    <para>
+      NixOS can be installed on BIOS or UEFI systems. The procedure for
+      a UEFI installation is by and large the same as a BIOS
+      installation. The differences are mentioned in the steps that
+      follow.
+    </para>
+    <para>
+      The installation media can be burned to a CD, or now more
+      commonly, <quote>burned</quote> to a USB drive (see
+      <xref linkend="sec-booting-from-usb" />).
+    </para>
+    <para>
+      The installation media contains a basic NixOS installation. When
+      it’s finished booting, it should have detected most of your
+      hardware.
+    </para>
+    <para>
+      The NixOS manual is available by running
+      <literal>nixos-help</literal>.
+    </para>
+    <para>
+      You are logged-in automatically as <literal>nixos</literal>. The
+      <literal>nixos</literal> user account has an empty password so you
+      can use <literal>sudo</literal> without a password.
+    </para>
+    <para>
+      If you downloaded the graphical ISO image, you can run
+      <literal>systemctl start display-manager</literal> to start the
+      desktop environment. If you want to continue on the terminal, you
+      can use <literal>loadkeys</literal> to switch to your preferred
+      keyboard layout. (We even provide neo2 via
+      <literal>loadkeys de neo</literal>!)
+    </para>
+    <para>
+      If the text is too small to be legible, try
+      <literal>setfont ter-v32n</literal> to increase the font size.
+    </para>
+    <para>
+      To install over a serial port connect with
+      <literal>115200n8</literal> (e.g.
+      <literal>picocom -b 115200 /dev/ttyUSB0</literal>). When the
+      bootloader lists boot entries, select the serial console boot
+      entry.
+    </para>
+    <section xml:id="sec-installation-booting-networking">
+      <title>Networking in the installer</title>
+      <para>
+        The boot process should have brought up networking (check
+        <literal>ip a</literal>). Networking is necessary for the
+        installer, since it will download lots of stuff (such as source
+        tarballs or Nixpkgs channel binaries). It’s best if you have a
+        DHCP server on your network. Otherwise configure networking
+        manually using <literal>ifconfig</literal>.
+      </para>
+      <para>
+        On the graphical installer, you can configure the network, wifi
+        included, through NetworkManager. Using the
+        <literal>nmtui</literal> program, you can do so even in a
+        non-graphical session. If you prefer to configure the network
+        manually, disable NetworkManager with
+        <literal>systemctl stop NetworkManager</literal>.
+      </para>
+      <para>
+        On the minimal installer, NetworkManager is not available, so
+        configuration must be perfomed manually. To configure the wifi,
+        first start wpa_supplicant with
+        <literal>sudo systemctl start wpa_supplicant</literal>, then run
+        <literal>wpa_cli</literal>. For most home networks, you need to
+        type in the following commands:
+      </para>
+      <programlisting>
+&gt; add_network
+0
+&gt; set_network 0 ssid &quot;myhomenetwork&quot;
+OK
+&gt; set_network 0 psk &quot;mypassword&quot;
+OK
+&gt; set_network 0 key_mgmt WPA-PSK
+OK
+&gt; enable_network 0
+OK
+</programlisting>
+      <para>
+        For enterprise networks, for example
+        <emphasis>eduroam</emphasis>, instead do:
+      </para>
+      <programlisting>
+&gt; add_network
+0
+&gt; set_network 0 ssid &quot;eduroam&quot;
+OK
+&gt; set_network 0 identity &quot;myname@example.com&quot;
+OK
+&gt; set_network 0 password &quot;mypassword&quot;
+OK
+&gt; set_network 0 key_mgmt WPA-EAP
+OK
+&gt; enable_network 0
+OK
+</programlisting>
+      <para>
+        When successfully connected, you should see a line such as this
+        one
+      </para>
+      <programlisting>
+&lt;3&gt;CTRL-EVENT-CONNECTED - Connection to 32:85:ab:ef:24:5c completed [id=0 id_str=]
+</programlisting>
+      <para>
+        you can now leave <literal>wpa_cli</literal> by typing
+        <literal>quit</literal>.
+      </para>
+      <para>
+        If you would like to continue the installation from a different
+        machine you can use activated SSH daemon. You need to copy your
+        ssh key to either
+        <literal>/home/nixos/.ssh/authorized_keys</literal> or
+        <literal>/root/.ssh/authorized_keys</literal> (Tip: For
+        installers with a modifiable filesystem such as the sd-card
+        installer image a key can be manually placed by mounting the
+        image on a different machine). Alternatively you must set a
+        password for either <literal>root</literal> or
+        <literal>nixos</literal> with <literal>passwd</literal> to be
+        able to login.
+      </para>
+    </section>
+  </section>
+  <section xml:id="sec-installation-partitioning">
+    <title>Partitioning and formatting</title>
+    <para>
+      The NixOS installer doesn’t do any partitioning or formatting, so
+      you need to do that yourself.
+    </para>
+    <para>
+      The NixOS installer ships with multiple partitioning tools. The
+      examples below use <literal>parted</literal>, but also provides
+      <literal>fdisk</literal>, <literal>gdisk</literal>,
+      <literal>cfdisk</literal>, and <literal>cgdisk</literal>.
+    </para>
+    <para>
+      The recommended partition scheme differs depending if the computer
+      uses <emphasis>Legacy Boot</emphasis> or
+      <emphasis>UEFI</emphasis>.
+    </para>
+    <section xml:id="sec-installation-partitioning-UEFI">
+      <title>UEFI (GPT)</title>
+      <para>
+        Here's an example partition scheme for UEFI, using
+        <literal>/dev/sda</literal> as the device.
+      </para>
+      <note>
+        <para>
+          You can safely ignore <literal>parted</literal>'s
+          informational message about needing to update /etc/fstab.
+        </para>
+      </note>
+      <orderedlist numeration="arabic">
+        <listitem>
+          <para>
+            Create a <emphasis>GPT</emphasis> partition table.
+          </para>
+          <programlisting>
+# parted /dev/sda -- mklabel gpt
+</programlisting>
+        </listitem>
+        <listitem>
+          <para>
+            Add the <emphasis>root</emphasis> partition. This will fill
+            the disk except for the end part, where the swap will live,
+            and the space left in front (512MiB) which will be used by
+            the boot partition.
+          </para>
+          <programlisting>
+# parted /dev/sda -- mkpart primary 512MiB -8GiB
+</programlisting>
+        </listitem>
+        <listitem>
+          <para>
+            Next, add a <emphasis>swap</emphasis> partition. The size
+            required will vary according to needs, here a 8GiB one is
+            created.
+          </para>
+          <programlisting>
+# parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+</programlisting>
+          <note>
+            <para>
+              The swap partition size rules are no different than for
+              other Linux distributions.
+            </para>
+          </note>
+        </listitem>
+        <listitem>
+          <para>
+            Finally, the <emphasis>boot</emphasis> partition. NixOS by
+            default uses the ESP (EFI system partition) as its
+            <emphasis>/boot</emphasis> partition. It uses the initially
+            reserved 512MiB at the start of the disk.
+          </para>
+          <programlisting>
+# parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
+# parted /dev/sda -- set 3 esp on
+</programlisting>
+        </listitem>
+      </orderedlist>
+      <para>
+        Once complete, you can follow with
+        <xref linkend="sec-installation-partitioning-formatting" />.
+      </para>
+    </section>
+    <section xml:id="sec-installation-partitioning-MBR">
+      <title>Legacy Boot (MBR)</title>
+      <para>
+        Here's an example partition scheme for Legacy Boot, using
+        <literal>/dev/sda</literal> as the device.
+      </para>
+      <note>
+        <para>
+          You can safely ignore <literal>parted</literal>'s
+          informational message about needing to update /etc/fstab.
+        </para>
+      </note>
+      <orderedlist numeration="arabic">
+        <listitem>
+          <para>
+            Create a <emphasis>MBR</emphasis> partition table.
+          </para>
+          <programlisting>
+# parted /dev/sda -- mklabel msdos
+</programlisting>
+        </listitem>
+        <listitem>
+          <para>
+            Add the <emphasis>root</emphasis> partition. This will fill
+            the the disk except for the end part, where the swap will
+            live.
+          </para>
+          <programlisting>
+# parted /dev/sda -- mkpart primary 1MiB -8GiB
+</programlisting>
+        </listitem>
+        <listitem>
+          <para>
+            Finally, add a <emphasis>swap</emphasis> partition. The size
+            required will vary according to needs, here a 8GiB one is
+            created.
+          </para>
+          <programlisting>
+# parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+</programlisting>
+          <note>
+            <para>
+              The swap partition size rules are no different than for
+              other Linux distributions.
+            </para>
+          </note>
+        </listitem>
+      </orderedlist>
+      <para>
+        Once complete, you can follow with
+        <xref linkend="sec-installation-partitioning-formatting" />.
+      </para>
+    </section>
+    <section xml:id="sec-installation-partitioning-formatting">
+      <title>Formatting</title>
+      <para>
+        Use the following commands:
+      </para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            For initialising Ext4 partitions:
+            <literal>mkfs.ext4</literal>. It is recommended that you
+            assign a unique symbolic label to the file system using the
+            option <literal>-L label</literal>, since this makes the
+            file system configuration independent from device changes.
+            For example:
+          </para>
+          <programlisting>
+# mkfs.ext4 -L nixos /dev/sda1
+</programlisting>
+        </listitem>
+        <listitem>
+          <para>
+            For creating swap partitions: <literal>mkswap</literal>.
+            Again it’s recommended to assign a label to the swap
+            partition: <literal>-L label</literal>. For example:
+          </para>
+          <programlisting>
+# mkswap -L swap /dev/sda2
+</programlisting>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">UEFI systems</emphasis>
+          </para>
+          <para>
+            For creating boot partitions: <literal>mkfs.fat</literal>.
+            Again it’s recommended to assign a label to the boot
+            partition: <literal>-n label</literal>. For example:
+          </para>
+          <programlisting>
+# mkfs.fat -F 32 -n boot /dev/sda3
+</programlisting>
+        </listitem>
+        <listitem>
+          <para>
+            For creating LVM volumes, the LVM commands, e.g.,
+            <literal>pvcreate</literal>, <literal>vgcreate</literal>,
+            and <literal>lvcreate</literal>.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            For creating software RAID devices, use
+            <literal>mdadm</literal>.
+          </para>
+        </listitem>
+      </itemizedlist>
+    </section>
+  </section>
+  <section xml:id="sec-installation-installing">
+    <title>Installing</title>
+    <orderedlist numeration="arabic">
+      <listitem>
+        <para>
+          Mount the target file system on which NixOS should be
+          installed on <literal>/mnt</literal>, e.g.
+        </para>
+        <programlisting>
+# mount /dev/disk/by-label/nixos /mnt
+</programlisting>
+      </listitem>
+      <listitem>
+        <para>
+          <emphasis role="strong">UEFI systems</emphasis>
+        </para>
+        <para>
+          Mount the boot file system on <literal>/mnt/boot</literal>,
+          e.g.
+        </para>
+        <programlisting>
+# mkdir -p /mnt/boot
+# mount /dev/disk/by-label/boot /mnt/boot
+</programlisting>
+      </listitem>
+      <listitem>
+        <para>
+          If your machine has a limited amount of memory, you may want
+          to activate swap devices now
+          (<literal>swapon device</literal>). The installer (or rather,
+          the build actions that it may spawn) may need quite a bit of
+          RAM, depending on your configuration.
+        </para>
+        <programlisting>
+# swapon /dev/sda2
+</programlisting>
+      </listitem>
+      <listitem>
+        <para>
+          You now need to create a file
+          <literal>/mnt/etc/nixos/configuration.nix</literal> that
+          specifies the intended configuration of the system. This is
+          because NixOS has a <emphasis>declarative</emphasis>
+          configuration model: you create or edit a description of the
+          desired configuration of your system, and then NixOS takes
+          care of making it happen. The syntax of the NixOS
+          configuration file is described in
+          <xref linkend="sec-configuration-syntax" />, while a list of
+          available configuration options appears in
+          <xref linkend="ch-options" />. A minimal example is shown in
+          <link linkend="ex-config">Example: NixOS Configuration</link>.
+        </para>
+        <para>
+          The command <literal>nixos-generate-config</literal> can
+          generate an initial configuration file for you:
+        </para>
+        <programlisting>
+# nixos-generate-config --root /mnt
+</programlisting>
+        <para>
+          You should then edit
+          <literal>/mnt/etc/nixos/configuration.nix</literal> to suit
+          your needs:
+        </para>
+        <programlisting>
+# nano /mnt/etc/nixos/configuration.nix
+</programlisting>
+        <para>
+          If you’re using the graphical ISO image, other editors may be
+          available (such as <literal>vim</literal>). If you have
+          network access, you can also install other editors – for
+          instance, you can install Emacs by running
+          <literal>nix-env -f '&lt;nixpkgs&gt;' -iA emacs</literal>.
+        </para>
+        <variablelist>
+          <varlistentry>
+            <term>
+              BIOS systems
+            </term>
+            <listitem>
+              <para>
+                You <emphasis>must</emphasis> set the option
+                <xref linkend="opt-boot.loader.grub.device" /> to
+                specify on which disk the GRUB boot loader is to be
+                installed. Without it, NixOS cannot boot.
+              </para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>
+              UEFI systems
+            </term>
+            <listitem>
+              <para>
+                You <emphasis>must</emphasis> set the option
+                <xref linkend="opt-boot.loader.systemd-boot.enable" />
+                to <literal>true</literal>.
+                <literal>nixos-generate-config</literal> should do this
+                automatically for new configurations when booted in UEFI
+                mode.
+              </para>
+              <para>
+                You may want to look at the options starting with
+                <link linkend="opt-boot.loader.efi.canTouchEfiVariables"><literal>boot.loader.efi</literal></link>
+                and
+                <link linkend="opt-boot.loader.systemd-boot.enable"><literal>boot.loader.systemd-boot</literal></link>
+                as well.
+              </para>
+            </listitem>
+          </varlistentry>
+        </variablelist>
+        <para>
+          If there are other operating systems running on the machine
+          before installing NixOS, the
+          <xref linkend="opt-boot.loader.grub.useOSProber" /> option can
+          be set to <literal>true</literal> to automatically add them to
+          the grub menu.
+        </para>
+        <para>
+          If you need to configure networking for your machine the
+          configuration options are described in
+          <xref linkend="sec-networking" />. In particular, while wifi
+          is supported on the installation image, it is not enabled by
+          default in the configuration generated by
+          <literal>nixos-generate-config</literal>.
+        </para>
+        <para>
+          Another critical option is <literal>fileSystems</literal>,
+          specifying the file systems that need to be mounted by NixOS.
+          However, you typically don’t need to set it yourself, because
+          <literal>nixos-generate-config</literal> sets it automatically
+          in
+          <literal>/mnt/etc/nixos/hardware-configuration.nix</literal>
+          from your currently mounted file systems. (The configuration
+          file <literal>hardware-configuration.nix</literal> is included
+          from <literal>configuration.nix</literal> and will be
+          overwritten by future invocations of
+          <literal>nixos-generate-config</literal>; thus, you generally
+          should not modify it.) Additionally, you may want to look at
+          <link xlink:href="https://github.com/NixOS/nixos-hardware">Hardware
+          configuration for known-hardware</link> at this point or after
+          installation.
+        </para>
+        <note>
+          <para>
+            Depending on your hardware configuration or type of file
+            system, you may need to set the option
+            <literal>boot.initrd.kernelModules</literal> to include the
+            kernel modules that are necessary for mounting the root file
+            system, otherwise the installed system will not be able to
+            boot. (If this happens, boot from the installation media
+            again, mount the target file system on
+            <literal>/mnt</literal>, fix
+            <literal>/mnt/etc/nixos/configuration.nix</literal> and
+            rerun <literal>nixos-install</literal>.) In most cases,
+            <literal>nixos-generate-config</literal> will figure out the
+            required modules.
+          </para>
+        </note>
+      </listitem>
+      <listitem>
+        <para>
+          Do the installation:
+        </para>
+        <programlisting>
+# nixos-install
+</programlisting>
+        <para>
+          This will install your system based on the configuration you
+          provided. If anything fails due to a configuration problem or
+          any other issue (such as a network outage while downloading
+          binaries from the NixOS binary cache), you can re-run
+          <literal>nixos-install</literal> after fixing your
+          <literal>configuration.nix</literal>.
+        </para>
+        <para>
+          As the last step, <literal>nixos-install</literal> will ask
+          you to set the password for the <literal>root</literal> user,
+          e.g.
+        </para>
+        <programlisting>
+setting root password...
+New password: ***
+Retype new password: ***
+</programlisting>
+        <note>
+          <para>
+            For unattended installations, it is possible to use
+            <literal>nixos-install --no-root-passwd</literal> in order
+            to disable the password prompt entirely.
+          </para>
+        </note>
+      </listitem>
+      <listitem>
+        <para>
+          If everything went well:
+        </para>
+        <programlisting>
+# reboot
+</programlisting>
+      </listitem>
+      <listitem>
+        <para>
+          You should now be able to boot into the installed NixOS. The
+          GRUB boot menu shows a list of <emphasis>available
+          configurations</emphasis> (initially just one). Every time you
+          change the NixOS configuration (see
+          <link linkend="sec-changing-config">Changing
+          Configuration</link>), a new item is added to the menu. This
+          allows you to easily roll back to a previous configuration if
+          something goes wrong.
+        </para>
+        <para>
+          You should log in and change the <literal>root</literal>
+          password with <literal>passwd</literal>.
+        </para>
+        <para>
+          You’ll probably want to create some user accounts as well,
+          which can be done with <literal>useradd</literal>:
+        </para>
+        <programlisting>
+$ useradd -c 'Eelco Dolstra' -m eelco
+$ passwd eelco
+</programlisting>
+        <para>
+          You may also want to install some software. This will be
+          covered in <xref linkend="sec-package-management" />.
+        </para>
+      </listitem>
+    </orderedlist>
+  </section>
+  <section xml:id="sec-installation-summary">
+    <title>Installation summary</title>
+    <para>
+      To summarise, <link linkend="ex-install-sequence">Example:
+      Commands for Installing NixOS on
+      <literal>/dev/sda</literal></link> shows a typical sequence of
+      commands for installing NixOS on an empty hard drive (here
+      <literal>/dev/sda</literal>). <link linkend="ex-config">Example:
+      NixOS Configuration</link> shows a corresponding configuration Nix
+      expression.
+    </para>
+    <anchor xml:id="ex-partition-scheme-MBR" />
+    <para>
+      <emphasis role="strong">Example: Example partition schemes for
+      NixOS on <literal>/dev/sda</literal> (MBR)</emphasis>
+    </para>
+    <programlisting>
+# parted /dev/sda -- mklabel msdos
+# parted /dev/sda -- mkpart primary 1MiB -8GiB
+# parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+</programlisting>
+    <anchor xml:id="ex-partition-scheme-UEFI" />
+    <para>
+      <emphasis role="strong">Example: Example partition schemes for
+      NixOS on <literal>/dev/sda</literal> (UEFI)</emphasis>
+    </para>
+    <programlisting>
+# parted /dev/sda -- mklabel gpt
+# parted /dev/sda -- mkpart primary 512MiB -8GiB
+# parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+# parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
+# parted /dev/sda -- set 3 esp on
+</programlisting>
+    <anchor xml:id="ex-install-sequence" />
+    <para>
+      <emphasis role="strong">Example: Commands for Installing NixOS on
+      <literal>/dev/sda</literal></emphasis>
+    </para>
+    <para>
+      With a partitioned disk.
+    </para>
+    <programlisting>
+# mkfs.ext4 -L nixos /dev/sda1
+# mkswap -L swap /dev/sda2
+# swapon /dev/sda2
+# mkfs.fat -F 32 -n boot /dev/sda3        # (for UEFI systems only)
+# mount /dev/disk/by-label/nixos /mnt
+# mkdir -p /mnt/boot                      # (for UEFI systems only)
+# mount /dev/disk/by-label/boot /mnt/boot # (for UEFI systems only)
+# nixos-generate-config --root /mnt
+# nano /mnt/etc/nixos/configuration.nix
+# nixos-install
+# reboot
+</programlisting>
+    <anchor xml:id="ex-config" />
+    <para>
+      <emphasis role="strong">Example: NixOS Configuration</emphasis>
+    </para>
+    <programlisting>
+{ config, pkgs, ... }: {
+  imports = [
+    # Include the results of the hardware scan.
+    ./hardware-configuration.nix
+  ];
+
+  boot.loader.grub.device = &quot;/dev/sda&quot;;   # (for BIOS systems only)
+  boot.loader.systemd-boot.enable = true; # (for UEFI systems only)
+
+  # Note: setting fileSystems is generally not
+  # necessary, since nixos-generate-config figures them out
+  # automatically in hardware-configuration.nix.
+  #fileSystems.&quot;/&quot;.device = &quot;/dev/disk/by-label/nixos&quot;;
+
+  # Enable the OpenSSH server.
+  services.sshd.enable = true;
+}
+</programlisting>
+  </section>
+  <section xml:id="sec-installation-additional-notes">
+    <title>Additional installation notes</title>
+    <xi:include href="installing-usb.section.xml" />
+    <xi:include href="installing-pxe.section.xml" />
+    <xi:include href="installing-virtualbox-guest.section.xml" />
+    <xi:include href="installing-from-other-distro.section.xml" />
+    <xi:include href="installing-behind-a-proxy.section.xml" />
+  </section>
+</chapter>
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index 5554927b8b2a..b18e29191470 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -232,6 +232,13 @@
           <link linkend="opt-services.nats.enable">services.nats</link>.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://git-scm.com">git</link>, a
+          distributed version control system. Available as
+          <link xlink:href="options.html#opt-programs.git.enable">programs.git</link>.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-21.11-incompatibilities">
@@ -1143,6 +1150,13 @@ Superuser created successfully.
           other and share data.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <literal>lua</literal> and <literal>luajit</literal>
+          interpreters have been patched to avoid looking into /usr/lib
+          directories, thus increasing the purity of the build.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
 </section>
diff --git a/nixos/doc/manual/installation/installation.xml b/nixos/doc/manual/installation/installation.xml
index cc18a9c6e9ff..1d443bbd0ee1 100644
--- a/nixos/doc/manual/installation/installation.xml
+++ b/nixos/doc/manual/installation/installation.xml
@@ -11,7 +11,7 @@
   </para>
  </partintro>
  <xi:include href="../from_md/installation/obtaining.chapter.xml" />
- <xi:include href="installing.xml" />
+ <xi:include href="../from_md/installation/installing.chapter.xml" />
  <xi:include href="../from_md/installation/changing-config.chapter.xml" />
  <xi:include href="../from_md/installation/upgrading.chapter.xml" />
 </part>
diff --git a/nixos/doc/manual/installation/installing.chapter.md b/nixos/doc/manual/installation/installing.chapter.md
new file mode 100644
index 000000000000..a0823b51e9cb
--- /dev/null
+++ b/nixos/doc/manual/installation/installing.chapter.md
@@ -0,0 +1,479 @@
+# Installing NixOS {#sec-installation}
+
+## Booting the system {#sec-installation-booting}
+
+NixOS can be installed on BIOS or UEFI systems. The procedure for a UEFI
+installation is by and large the same as a BIOS installation. The
+differences are mentioned in the steps that follow.
+
+The installation media can be burned to a CD, or now more commonly,
+"burned" to a USB drive (see [](#sec-booting-from-usb)).
+
+The installation media contains a basic NixOS installation. When it's
+finished booting, it should have detected most of your hardware.
+
+The NixOS manual is available by running `nixos-help`.
+
+You are logged-in automatically as `nixos`. The `nixos` user account has
+an empty password so you can use `sudo` without a password.
+
+If you downloaded the graphical ISO image, you can run `systemctl
+start display-manager` to start the desktop environment. If you want
+to continue on the terminal, you can use `loadkeys` to switch to your
+preferred keyboard layout. (We even provide neo2 via `loadkeys de
+neo`!)
+
+If the text is too small to be legible, try `setfont ter-v32n` to
+increase the font size.
+
+To install over a serial port connect with `115200n8` (e.g.
+`picocom -b 115200 /dev/ttyUSB0`). When the bootloader lists boot
+entries, select the serial console boot entry.
+
+### Networking in the installer {#sec-installation-booting-networking}
+
+The boot process should have brought up networking (check `ip
+a`). Networking is necessary for the installer, since it will
+download lots of stuff (such as source tarballs or Nixpkgs channel
+binaries). It's best if you have a DHCP server on your network.
+Otherwise configure networking manually using `ifconfig`.
+
+On the graphical installer, you can configure the network, wifi
+included, through NetworkManager. Using the `nmtui` program, you can do
+so even in a non-graphical session. If you prefer to configure the
+network manually, disable NetworkManager with
+`systemctl stop NetworkManager`.
+
+On the minimal installer, NetworkManager is not available, so
+configuration must be perfomed manually. To configure the wifi, first
+start wpa_supplicant with `sudo systemctl start wpa_supplicant`, then
+run `wpa_cli`. For most home networks, you need to type in the following
+commands:
+
+```plain
+> add_network
+0
+> set_network 0 ssid "myhomenetwork"
+OK
+> set_network 0 psk "mypassword"
+OK
+> set_network 0 key_mgmt WPA-PSK
+OK
+> enable_network 0
+OK
+```
+
+For enterprise networks, for example *eduroam*, instead do:
+
+```plain
+> add_network
+0
+> set_network 0 ssid "eduroam"
+OK
+> set_network 0 identity "myname@example.com"
+OK
+> set_network 0 password "mypassword"
+OK
+> set_network 0 key_mgmt WPA-EAP
+OK
+> enable_network 0
+OK
+```
+
+When successfully connected, you should see a line such as this one
+
+```plain
+<3>CTRL-EVENT-CONNECTED - Connection to 32:85:ab:ef:24:5c completed [id=0 id_str=]
+```
+
+you can now leave `wpa_cli` by typing `quit`.
+
+If you would like to continue the installation from a different machine
+you can use activated SSH daemon. You need to copy your ssh key to
+either `/home/nixos/.ssh/authorized_keys` or
+`/root/.ssh/authorized_keys` (Tip: For installers with a modifiable
+filesystem such as the sd-card installer image a key can be manually
+placed by mounting the image on a different machine). Alternatively you
+must set a password for either `root` or `nixos` with `passwd` to be
+able to login.
+
+## Partitioning and formatting {#sec-installation-partitioning}
+
+The NixOS installer doesn't do any partitioning or formatting, so you
+need to do that yourself.
+
+The NixOS installer ships with multiple partitioning tools. The examples
+below use `parted`, but also provides `fdisk`, `gdisk`, `cfdisk`, and
+`cgdisk`.
+
+The recommended partition scheme differs depending if the computer uses
+*Legacy Boot* or *UEFI*.
+
+### UEFI (GPT) {#sec-installation-partitioning-UEFI}
+
+Here\'s an example partition scheme for UEFI, using `/dev/sda` as the
+device.
+
+::: {.note}
+You can safely ignore `parted`\'s informational message about needing to
+update /etc/fstab.
+:::
+
+1.  Create a *GPT* partition table.
+
+    ```ShellSession
+    # parted /dev/sda -- mklabel gpt
+    ```
+
+2.  Add the *root* partition. This will fill the disk except for the end
+    part, where the swap will live, and the space left in front (512MiB)
+    which will be used by the boot partition.
+
+    ```ShellSession
+    # parted /dev/sda -- mkpart primary 512MiB -8GiB
+    ```
+
+3.  Next, add a *swap* partition. The size required will vary according
+    to needs, here a 8GiB one is created.
+
+    ```ShellSession
+    # parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+    ```
+
+    ::: {.note}
+    The swap partition size rules are no different than for other Linux
+    distributions.
+    :::
+
+4.  Finally, the *boot* partition. NixOS by default uses the ESP (EFI
+    system partition) as its */boot* partition. It uses the initially
+    reserved 512MiB at the start of the disk.
+
+    ```ShellSession
+    # parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
+    # parted /dev/sda -- set 3 esp on
+    ```
+
+Once complete, you can follow with
+[](#sec-installation-partitioning-formatting).
+
+### Legacy Boot (MBR) {#sec-installation-partitioning-MBR}
+
+Here\'s an example partition scheme for Legacy Boot, using `/dev/sda` as
+the device.
+
+::: {.note}
+You can safely ignore `parted`\'s informational message about needing to
+update /etc/fstab.
+:::
+
+1.  Create a *MBR* partition table.
+
+    ```ShellSession
+    # parted /dev/sda -- mklabel msdos
+    ```
+
+2.  Add the *root* partition. This will fill the the disk except for the
+    end part, where the swap will live.
+
+    ```ShellSession
+    # parted /dev/sda -- mkpart primary 1MiB -8GiB
+    ```
+
+3.  Finally, add a *swap* partition. The size required will vary
+    according to needs, here a 8GiB one is created.
+
+    ```ShellSession
+    # parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+    ```
+
+    ::: {.note}
+    The swap partition size rules are no different than for other Linux
+    distributions.
+    :::
+
+Once complete, you can follow with
+[](#sec-installation-partitioning-formatting).
+
+### Formatting {#sec-installation-partitioning-formatting}
+
+Use the following commands:
+
+-   For initialising Ext4 partitions: `mkfs.ext4`. It is recommended
+    that you assign a unique symbolic label to the file system using the
+    option `-L label`, since this makes the file system configuration
+    independent from device changes. For example:
+
+    ```ShellSession
+    # mkfs.ext4 -L nixos /dev/sda1
+    ```
+
+-   For creating swap partitions: `mkswap`. Again it's recommended to
+    assign a label to the swap partition: `-L label`. For example:
+
+    ```ShellSession
+    # mkswap -L swap /dev/sda2
+    ```
+
+-   **UEFI systems**
+
+    For creating boot partitions: `mkfs.fat`. Again it's recommended
+    to assign a label to the boot partition: `-n label`. For
+    example:
+
+    ```ShellSession
+    # mkfs.fat -F 32 -n boot /dev/sda3
+    ```
+
+-   For creating LVM volumes, the LVM commands, e.g., `pvcreate`,
+    `vgcreate`, and `lvcreate`.
+
+-   For creating software RAID devices, use `mdadm`.
+
+## Installing {#sec-installation-installing}
+
+1.  Mount the target file system on which NixOS should be installed on
+    `/mnt`, e.g.
+
+    ```ShellSession
+    # mount /dev/disk/by-label/nixos /mnt
+    ```
+
+2.  **UEFI systems**
+
+    Mount the boot file system on `/mnt/boot`, e.g.
+
+    ```ShellSession
+    # mkdir -p /mnt/boot
+    # mount /dev/disk/by-label/boot /mnt/boot
+    ```
+
+3.  If your machine has a limited amount of memory, you may want to
+    activate swap devices now (`swapon device`).
+    The installer (or rather, the build actions that it
+    may spawn) may need quite a bit of RAM, depending on your
+    configuration.
+
+    ```ShellSession
+    # swapon /dev/sda2
+    ```
+
+4.  You now need to create a file `/mnt/etc/nixos/configuration.nix`
+    that specifies the intended configuration of the system. This is
+    because NixOS has a *declarative* configuration model: you create or
+    edit a description of the desired configuration of your system, and
+    then NixOS takes care of making it happen. The syntax of the NixOS
+    configuration file is described in [](#sec-configuration-syntax),
+    while a list of available configuration options appears in
+    [](#ch-options). A minimal example is shown in
+    [Example: NixOS Configuration](#ex-config).
+
+    The command `nixos-generate-config` can generate an initial
+    configuration file for you:
+
+    ```ShellSession
+    # nixos-generate-config --root /mnt
+    ```
+
+    You should then edit `/mnt/etc/nixos/configuration.nix` to suit your
+    needs:
+
+    ```ShellSession
+    # nano /mnt/etc/nixos/configuration.nix
+    ```
+
+    If you're using the graphical ISO image, other editors may be
+    available (such as `vim`). If you have network access, you can also
+    install other editors -- for instance, you can install Emacs by
+    running `nix-env -f '<nixpkgs>' -iA emacs`.
+
+    BIOS systems
+
+    :   You *must* set the option [](#opt-boot.loader.grub.device) to
+        specify on which disk the GRUB boot loader is to be installed.
+        Without it, NixOS cannot boot.
+
+    UEFI systems
+
+    :   You *must* set the option [](#opt-boot.loader.systemd-boot.enable)
+        to `true`. `nixos-generate-config` should do this automatically
+        for new configurations when booted in UEFI mode.
+
+        You may want to look at the options starting with
+        [`boot.loader.efi`](#opt-boot.loader.efi.canTouchEfiVariables) and
+        [`boot.loader.systemd-boot`](#opt-boot.loader.systemd-boot.enable)
+        as well.
+
+    If there are other operating systems running on the machine before
+    installing NixOS, the [](#opt-boot.loader.grub.useOSProber)
+    option can be set to `true` to automatically add them to the grub
+    menu.
+
+    If you need to configure networking for your machine the
+    configuration options are described in [](#sec-networking). In
+    particular, while wifi is supported on the installation image, it is
+    not enabled by default in the configuration generated by
+    `nixos-generate-config`.
+
+    Another critical option is `fileSystems`, specifying the file
+    systems that need to be mounted by NixOS. However, you typically
+    don't need to set it yourself, because `nixos-generate-config` sets
+    it automatically in `/mnt/etc/nixos/hardware-configuration.nix` from
+    your currently mounted file systems. (The configuration file
+    `hardware-configuration.nix` is included from `configuration.nix`
+    and will be overwritten by future invocations of
+    `nixos-generate-config`; thus, you generally should not modify it.)
+    Additionally, you may want to look at [Hardware configuration for
+    known-hardware](https://github.com/NixOS/nixos-hardware) at this
+    point or after installation.
+
+    ::: {.note}
+    Depending on your hardware configuration or type of file system, you
+    may need to set the option `boot.initrd.kernelModules` to include
+    the kernel modules that are necessary for mounting the root file
+    system, otherwise the installed system will not be able to boot. (If
+    this happens, boot from the installation media again, mount the
+    target file system on `/mnt`, fix `/mnt/etc/nixos/configuration.nix`
+    and rerun `nixos-install`.) In most cases, `nixos-generate-config`
+    will figure out the required modules.
+    :::
+
+5.  Do the installation:
+
+    ```ShellSession
+    # nixos-install
+    ```
+
+    This will install your system based on the configuration you
+    provided. If anything fails due to a configuration problem or any
+    other issue (such as a network outage while downloading binaries
+    from the NixOS binary cache), you can re-run `nixos-install` after
+    fixing your `configuration.nix`.
+
+    As the last step, `nixos-install` will ask you to set the password
+    for the `root` user, e.g.
+
+    ```plain
+    setting root password...
+    New password: ***
+    Retype new password: ***
+    ```
+
+    ::: {.note}
+    For unattended installations, it is possible to use
+    `nixos-install --no-root-passwd` in order to disable the password
+    prompt entirely.
+    :::
+
+6.  If everything went well:
+
+    ```ShellSession
+    # reboot
+    ```
+
+7.  You should now be able to boot into the installed NixOS. The GRUB
+    boot menu shows a list of *available configurations* (initially just
+    one). Every time you change the NixOS configuration (see [Changing
+    Configuration](#sec-changing-config)), a new item is added to the
+    menu. This allows you to easily roll back to a previous
+    configuration if something goes wrong.
+
+    You should log in and change the `root` password with `passwd`.
+
+    You'll probably want to create some user accounts as well, which can
+    be done with `useradd`:
+
+    ```ShellSession
+    $ useradd -c 'Eelco Dolstra' -m eelco
+    $ passwd eelco
+    ```
+
+    You may also want to install some software. This will be covered in
+    [](#sec-package-management).
+
+## Installation summary {#sec-installation-summary}
+
+To summarise, [Example: Commands for Installing NixOS on `/dev/sda`](#ex-install-sequence)
+shows a typical sequence of commands for installing NixOS on an empty hard
+drive (here `/dev/sda`). [Example: NixOS Configuration](#ex-config) shows a
+corresponding configuration Nix expression.
+
+::: {#ex-partition-scheme-MBR .example}
+::: {.title}
+**Example: Example partition schemes for NixOS on `/dev/sda` (MBR)**
+:::
+```ShellSession
+# parted /dev/sda -- mklabel msdos
+# parted /dev/sda -- mkpart primary 1MiB -8GiB
+# parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+```
+:::
+
+::: {#ex-partition-scheme-UEFI .example}
+::: {.title}
+**Example: Example partition schemes for NixOS on `/dev/sda` (UEFI)**
+:::
+```ShellSession
+# parted /dev/sda -- mklabel gpt
+# parted /dev/sda -- mkpart primary 512MiB -8GiB
+# parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
+# parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
+# parted /dev/sda -- set 3 esp on
+```
+:::
+
+::: {#ex-install-sequence .example}
+::: {.title}
+**Example: Commands for Installing NixOS on `/dev/sda`**
+:::
+With a partitioned disk.
+
+```ShellSession
+# mkfs.ext4 -L nixos /dev/sda1
+# mkswap -L swap /dev/sda2
+# swapon /dev/sda2
+# mkfs.fat -F 32 -n boot /dev/sda3        # (for UEFI systems only)
+# mount /dev/disk/by-label/nixos /mnt
+# mkdir -p /mnt/boot                      # (for UEFI systems only)
+# mount /dev/disk/by-label/boot /mnt/boot # (for UEFI systems only)
+# nixos-generate-config --root /mnt
+# nano /mnt/etc/nixos/configuration.nix
+# nixos-install
+# reboot
+```
+:::
+
+::: {#ex-config .example}
+::: {.title}
+**Example: NixOS Configuration**
+:::
+```ShellSession
+{ config, pkgs, ... }: {
+  imports = [
+    # Include the results of the hardware scan.
+    ./hardware-configuration.nix
+  ];
+
+  boot.loader.grub.device = "/dev/sda";   # (for BIOS systems only)
+  boot.loader.systemd-boot.enable = true; # (for UEFI systems only)
+
+  # Note: setting fileSystems is generally not
+  # necessary, since nixos-generate-config figures them out
+  # automatically in hardware-configuration.nix.
+  #fileSystems."/".device = "/dev/disk/by-label/nixos";
+
+  # Enable the OpenSSH server.
+  services.sshd.enable = true;
+}
+```
+:::
+
+## Additional installation notes {#sec-installation-additional-notes}
+
+```{=docbook}
+<xi:include href="installing-usb.section.xml" />
+<xi:include href="installing-pxe.section.xml" />
+<xi:include href="installing-virtualbox-guest.section.xml" />
+<xi:include href="installing-from-other-distro.section.xml" />
+<xi:include href="installing-behind-a-proxy.section.xml" />
+```
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
deleted file mode 100644
index 6eb097f243ab..000000000000
--- a/nixos/doc/manual/installation/installing.xml
+++ /dev/null
@@ -1,616 +0,0 @@
-<chapter xmlns="http://docbook.org/ns/docbook"
-            xmlns:xlink="http://www.w3.org/1999/xlink"
-            xmlns:xi="http://www.w3.org/2001/XInclude"
-            version="5.0"
-            xml:id="sec-installation">
- <title>Installing NixOS</title>
- <section xml:id="sec-installation-booting">
-  <title>Booting the system</title>
-
-  <para>
-   NixOS can be installed on BIOS or UEFI systems. The procedure for a UEFI
-   installation is by and large the same as a BIOS installation. The
-   differences are mentioned in the steps that follow.
-  </para>
-
-  <para>
-   The installation media can be burned to a CD, or now more commonly, "burned"
-   to a USB drive (see <xref linkend="sec-booting-from-usb"/>).
-  </para>
-
-  <para>
-   The installation media contains a basic NixOS installation. When it’s
-   finished booting, it should have detected most of your hardware.
-  </para>
-
-  <para>
-   The NixOS manual is available by running <command>nixos-help</command>.
-  </para>
-
-  <para>
-   You are logged-in automatically as <literal>nixos</literal>.
-   The <literal>nixos</literal> user account has an empty password so you
-   can use <command>sudo</command> without a password.
-  </para>
-
-  <para>
-   If you downloaded the graphical ISO image, you can run <command>systemctl
-   start display-manager</command> to start the desktop environment. If you want to continue on the
-   terminal, you can use <command>loadkeys</command> to switch to your
-   preferred keyboard layout. (We even provide neo2 via <command>loadkeys de
-   neo</command>!)
-  </para>
-
-  <para>
-   If the text is too small to be legible, try <command>setfont ter-v32n</command>
-   to increase the font size.
-  </para>
-
-  <para>
-    To install over a serial port connect with <literal>115200n8</literal>
-    (e.g. <command>picocom -b 115200 /dev/ttyUSB0</command>). When the
-    bootloader lists boot entries, select the serial console boot entry.
-  </para>
-
-  <section xml:id="sec-installation-booting-networking">
-   <title>Networking in the installer</title>
-
-   <para>
-    The boot process should have brought up networking (check <command>ip
-    a</command>). Networking is necessary for the installer, since it will
-    download lots of stuff (such as source tarballs or Nixpkgs channel
-    binaries). It’s best if you have a DHCP server on your network. Otherwise
-    configure networking manually using <command>ifconfig</command>.
-   </para>
-
-   <para>
-    On the graphical installer, you can configure the network, wifi included,
-    through NetworkManager. Using the <command>nmtui</command> program, you
-    can do so even in a non-graphical session. If you prefer to configure the
-    network manually, disable NetworkManager with
-    <command>systemctl stop NetworkManager</command>.
-   </para>
-
-   <para>
-    On the minimal installer, NetworkManager is not available, so configuration
-    must be perfomed manually. To configure the wifi, first start wpa_supplicant
-    with <command>sudo systemctl start wpa_supplicant</command>, then run
-    <command>wpa_cli</command>. For most home networks, you need to type
-    in the following commands:
-    <programlisting>
-<prompt>&gt; </prompt>add_network
-0
-<prompt>&gt; </prompt>set_network 0 ssid "myhomenetwork"
-OK
-<prompt>&gt; </prompt>set_network 0 psk "mypassword"
-OK
-<prompt>&gt; </prompt>set_network 0 key_mgmt WPA-PSK
-OK
-<prompt>&gt; </prompt>enable_network 0
-OK
-    </programlisting>
-    For enterprise networks, for example <emphasis>eduroam</emphasis>, instead do:
-    <programlisting>
-<prompt>&gt; </prompt>add_network
-0
-<prompt>&gt; </prompt>set_network 0 ssid "eduroam"
-OK
-<prompt>&gt; </prompt>set_network 0 identity "myname@example.com"
-OK
-<prompt>&gt; </prompt>set_network 0 password "mypassword"
-OK
-<prompt>&gt; </prompt>set_network 0 key_mgmt WPA-EAP
-OK
-<prompt>&gt; </prompt>enable_network 0
-OK
-    </programlisting>
-    When successfully connected, you should see a line such as this one
-    <programlisting>
-&lt;3&gt;CTRL-EVENT-CONNECTED - Connection to 32:85:ab:ef:24:5c completed [id=0 id_str=]
-    </programlisting>
-    you can now leave <command>wpa_cli</command> by typing <command>quit</command>.
-   </para>
-
-   <para>
-    If you would like to continue the installation from a different machine you
-    can use activated SSH daemon. You need to copy your ssh key to either
-    <literal>/home/nixos/.ssh/authorized_keys</literal> or
-    <literal>/root/.ssh/authorized_keys</literal> (Tip: For installers with a
-    modifiable filesystem such as the sd-card installer image a key can be manually
-    placed by mounting the image on a different machine). Alternatively you must set
-    a password for either <literal>root</literal> or <literal>nixos</literal> with
-    <command>passwd</command> to be able to login.
-   </para>
-  </section>
- </section>
- <section xml:id="sec-installation-partitioning">
-  <title>Partitioning and formatting</title>
-
-  <para>
-   The NixOS installer doesn’t do any partitioning or formatting, so you need
-   to do that yourself.
-  </para>
-
-  <para>
-   The NixOS installer ships with multiple partitioning tools. The examples
-   below use <command>parted</command>, but also provides
-   <command>fdisk</command>, <command>gdisk</command>,
-   <command>cfdisk</command>, and <command>cgdisk</command>.
-  </para>
-
-  <para>
-   The recommended partition scheme differs depending if the computer uses
-   <emphasis>Legacy Boot</emphasis> or <emphasis>UEFI</emphasis>.
-  </para>
-
-  <section xml:id="sec-installation-partitioning-UEFI">
-   <title>UEFI (GPT)</title>
-
-   <para>
-    Here's an example partition scheme for UEFI, using
-    <filename>/dev/sda</filename> as the device.
-    <note>
-     <para>
-      You can safely ignore <command>parted</command>'s informational message
-      about needing to update /etc/fstab.
-     </para>
-    </note>
-   </para>
-
-   <para>
-    <orderedlist>
-     <listitem>
-      <para>
-       Create a <emphasis>GPT</emphasis> partition table.
-<screen language="commands"><prompt># </prompt>parted /dev/sda -- mklabel gpt</screen>
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       Add the <emphasis>root</emphasis> partition. This will fill the disk
-       except for the end part, where the swap will live, and the space left in
-       front (512MiB) which will be used by the boot partition.
-<screen language="commands"><prompt># </prompt>parted /dev/sda -- mkpart primary 512MiB -8GiB</screen>
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       Next, add a <emphasis>swap</emphasis> partition. The size required will
-       vary according to needs, here a 8GiB one is created.
-<screen language="commands"><prompt># </prompt>parted /dev/sda -- mkpart primary linux-swap -8GiB 100%</screen>
-       <note>
-        <para>
-         The swap partition size rules are no different than for other Linux
-         distributions.
-        </para>
-       </note>
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       Finally, the <emphasis>boot</emphasis> partition. NixOS by default uses
-       the ESP (EFI system partition) as its <emphasis>/boot</emphasis>
-       partition. It uses the initially reserved 512MiB at the start of the
-       disk.
-<screen language="commands"><prompt># </prompt>parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
-<prompt># </prompt>parted /dev/sda -- set 3 esp on</screen>
-      </para>
-     </listitem>
-    </orderedlist>
-   </para>
-
-   <para>
-    Once complete, you can follow with
-    <xref linkend="sec-installation-partitioning-formatting"/>.
-   </para>
-  </section>
-
-  <section xml:id="sec-installation-partitioning-MBR">
-   <title>Legacy Boot (MBR)</title>
-
-   <para>
-    Here's an example partition scheme for Legacy Boot, using
-    <filename>/dev/sda</filename> as the device.
-    <note>
-     <para>
-      You can safely ignore <command>parted</command>'s informational message
-      about needing to update /etc/fstab.
-     </para>
-    </note>
-   </para>
-
-   <para>
-    <orderedlist>
-     <listitem>
-      <para>
-       Create a <emphasis>MBR</emphasis> partition table.
-<screen language="commands"><prompt># </prompt>parted /dev/sda -- mklabel msdos</screen>
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       Add the <emphasis>root</emphasis> partition. This will fill the the disk
-       except for the end part, where the swap will live.
-<screen language="commands"><prompt># </prompt>parted /dev/sda -- mkpart primary 1MiB -8GiB</screen>
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       Finally, add a <emphasis>swap</emphasis> partition. The size required
-       will vary according to needs, here a 8GiB one is created.
-<screen language="commands"><prompt># </prompt>parted /dev/sda -- mkpart primary linux-swap -8GiB 100%</screen>
-       <note>
-        <para>
-         The swap partition size rules are no different than for other Linux
-         distributions.
-        </para>
-       </note>
-      </para>
-     </listitem>
-    </orderedlist>
-   </para>
-
-   <para>
-    Once complete, you can follow with
-    <xref linkend="sec-installation-partitioning-formatting"/>.
-   </para>
-  </section>
-
-  <section xml:id="sec-installation-partitioning-formatting">
-   <title>Formatting</title>
-
-   <para>
-    Use the following commands:
-    <itemizedlist>
-     <listitem>
-      <para>
-       For initialising Ext4 partitions: <command>mkfs.ext4</command>. It is
-       recommended that you assign a unique symbolic label to the file system
-       using the option <option>-L <replaceable>label</replaceable></option>,
-       since this makes the file system configuration independent from device
-       changes. For example:
-<screen>
-<prompt># </prompt>mkfs.ext4 -L nixos /dev/sda1</screen>
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       For creating swap partitions: <command>mkswap</command>. Again it’s
-       recommended to assign a label to the swap partition: <option>-L
-       <replaceable>label</replaceable></option>. For example:
-<screen>
-<prompt># </prompt>mkswap -L swap /dev/sda2</screen>
-      </para>
-     </listitem>
-     <listitem>
-      <variablelist>
-       <varlistentry>
-        <term>
-         UEFI systems
-        </term>
-        <listitem>
-         <para>
-          For creating boot partitions: <command>mkfs.fat</command>. Again
-          it’s recommended to assign a label to the boot partition:
-          <option>-n <replaceable>label</replaceable></option>. For example:
-<screen>
-<prompt># </prompt>mkfs.fat -F 32 -n boot /dev/sda3</screen>
-         </para>
-        </listitem>
-       </varlistentry>
-      </variablelist>
-     </listitem>
-     <listitem>
-      <para>
-       For creating LVM volumes, the LVM commands, e.g.,
-       <command>pvcreate</command>, <command>vgcreate</command>, and
-       <command>lvcreate</command>.
-      </para>
-     </listitem>
-     <listitem>
-      <para>
-       For creating software RAID devices, use <command>mdadm</command>.
-      </para>
-     </listitem>
-    </itemizedlist>
-   </para>
-  </section>
- </section>
- <section xml:id="sec-installation-installing">
-  <title>Installing</title>
-
-  <orderedlist>
-   <listitem>
-    <para>
-     Mount the target file system on which NixOS should be installed on
-     <filename>/mnt</filename>, e.g.
-<screen>
-<prompt># </prompt>mount /dev/disk/by-label/nixos /mnt
-</screen>
-    </para>
-   </listitem>
-   <listitem>
-    <variablelist>
-     <varlistentry>
-      <term>
-       UEFI systems
-      </term>
-      <listitem>
-       <para>
-        Mount the boot file system on <filename>/mnt/boot</filename>, e.g.
-<screen>
-<prompt># </prompt>mkdir -p /mnt/boot
-<prompt># </prompt>mount /dev/disk/by-label/boot /mnt/boot
-</screen>
-       </para>
-      </listitem>
-     </varlistentry>
-    </variablelist>
-   </listitem>
-   <listitem>
-    <para>
-     If your machine has a limited amount of memory, you may want to activate
-     swap devices now (<command>swapon
-     <replaceable>device</replaceable></command>). The installer (or rather,
-     the build actions that it may spawn) may need quite a bit of RAM,
-     depending on your configuration.
-<screen>
-<prompt># </prompt>swapon /dev/sda2</screen>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     You now need to create a file
-     <filename>/mnt/etc/nixos/configuration.nix</filename> that specifies the
-     intended configuration of the system. This is because NixOS has a
-     <emphasis>declarative</emphasis> configuration model: you create or edit a
-     description of the desired configuration of your system, and then NixOS
-     takes care of making it happen. The syntax of the NixOS configuration file
-     is described in <xref linkend="sec-configuration-syntax"/>, while a list
-     of available configuration options appears in
-     <xref
-    linkend="ch-options"/>. A minimal example is shown in
-     <xref
-    linkend="ex-config"/>.
-    </para>
-    <para>
-     The command <command>nixos-generate-config</command> can generate an
-     initial configuration file for you:
-<screen>
-<prompt># </prompt>nixos-generate-config --root /mnt</screen>
-     You should then edit <filename>/mnt/etc/nixos/configuration.nix</filename>
-     to suit your needs:
-<screen>
-<prompt># </prompt>nano /mnt/etc/nixos/configuration.nix
-</screen>
-     If you’re using the graphical ISO image, other editors may be available
-     (such as <command>vim</command>). If you have network access, you can also
-     install other editors — for instance, you can install Emacs by running
-     <literal>nix-env -f '&lt;nixpkgs&gt;' -iA emacs</literal>.
-    </para>
-    <variablelist>
-     <varlistentry>
-      <term>
-       BIOS systems
-      </term>
-      <listitem>
-       <para>
-        You <emphasis>must</emphasis> set the option
-        <xref linkend="opt-boot.loader.grub.device"/> to specify on which disk
-        the GRUB boot loader is to be installed. Without it, NixOS cannot boot.
-       </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry>
-      <term>
-       UEFI systems
-      </term>
-      <listitem>
-       <para>
-        You <emphasis>must</emphasis> set the option
-        <xref linkend="opt-boot.loader.systemd-boot.enable"/> to
-        <literal>true</literal>. <command>nixos-generate-config</command>
-        should do this automatically for new configurations when booted in UEFI
-        mode.
-       </para>
-       <para>
-        You may want to look at the options starting with
-        <option><link linkend="opt-boot.loader.efi.canTouchEfiVariables">boot.loader.efi</link></option>
-        and
-        <option><link linkend="opt-boot.loader.systemd-boot.enable">boot.loader.systemd-boot</link></option>
-        as well.
-       </para>
-      </listitem>
-     </varlistentry>
-    </variablelist>
-    <para>
-     If there are other operating systems running on the machine before
-     installing NixOS, the <xref linkend="opt-boot.loader.grub.useOSProber"/>
-     option can be set to <literal>true</literal> to automatically add them to
-     the grub menu.
-    </para>
-    <para>
-     If you need to configure networking for your machine the configuration
-     options are described in <xref linkend="sec-networking"/>. In particular,
-     while wifi is supported on the installation image, it is not enabled by
-     default in the configuration generated by
-     <command>nixos-generate-config</command>.
-    </para>
-    <para>
-     Another critical option is <option>fileSystems</option>, specifying the
-     file systems that need to be mounted by NixOS. However, you typically
-     don’t need to set it yourself, because
-     <command>nixos-generate-config</command> sets it automatically in
-     <filename>/mnt/etc/nixos/hardware-configuration.nix</filename> from your
-     currently mounted file systems. (The configuration file
-     <filename>hardware-configuration.nix</filename> is included from
-     <filename>configuration.nix</filename> and will be overwritten by future
-     invocations of <command>nixos-generate-config</command>; thus, you
-     generally should not modify it.) Additionally, you may want to look at
-     <link xlink:href="https://github.com/NixOS/nixos-hardware">Hardware
-     configuration for known-hardware</link> at this point or after
-     installation.
-
-    </para>
-    <note>
-     <para>
-      Depending on your hardware configuration or type of file system, you may
-      need to set the option <option>boot.initrd.kernelModules</option> to
-      include the kernel modules that are necessary for mounting the root file
-      system, otherwise the installed system will not be able to boot. (If this
-      happens, boot from the installation media again, mount the target file
-      system on <filename>/mnt</filename>, fix
-      <filename>/mnt/etc/nixos/configuration.nix</filename> and rerun
-      <filename>nixos-install</filename>.) In most cases,
-      <command>nixos-generate-config</command> will figure out the required
-      modules.
-     </para>
-    </note>
-   </listitem>
-   <listitem>
-    <para>
-     Do the installation:
-<screen>
-<prompt># </prompt>nixos-install</screen>
-     This will install your system based on the configuration you provided.
-     If anything fails due to a configuration problem or any other issue
-     (such as a network outage while downloading binaries from the NixOS
-     binary cache), you can re-run <command>nixos-install</command> after
-     fixing your <filename>configuration.nix</filename>.
-    </para>
-    <para>
-     As the last step, <command>nixos-install</command> will ask you to set the
-     password for the <literal>root</literal> user, e.g.
-<screen>
-setting root password...
-New password: ***
-Retype new password: ***</screen>
-     <note>
-      <para>
-       For unattended installations, it is possible to use
-       <command>nixos-install --no-root-passwd</command> in order to disable
-       the password prompt entirely.
-      </para>
-     </note>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     If everything went well:
-<screen>
-<prompt># </prompt>reboot</screen>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     You should now be able to boot into the installed NixOS. The GRUB boot
-     menu shows a list of <emphasis>available configurations</emphasis>
-     (initially just one). Every time you change the NixOS configuration (see
-     <link
-        linkend="sec-changing-config">Changing Configuration</link>
-     ), a new item is added to the menu. This allows you to easily roll back to
-     a previous configuration if something goes wrong.
-    </para>
-    <para>
-     You should log in and change the <literal>root</literal> password with
-     <command>passwd</command>.
-    </para>
-    <para>
-     You’ll probably want to create some user accounts as well, which can be
-     done with <command>useradd</command>:
-<screen>
-<prompt>$ </prompt>useradd -c 'Eelco Dolstra' -m eelco
-<prompt>$ </prompt>passwd eelco</screen>
-    </para>
-    <para>
-     You may also want to install some software. This will be covered
-     in <xref linkend="sec-package-management" />.
-    </para>
-   </listitem>
-  </orderedlist>
- </section>
- <section xml:id="sec-installation-summary">
-  <title>Installation summary</title>
-
-  <para>
-   To summarise, <xref linkend="ex-install-sequence" /> shows a typical
-   sequence of commands for installing NixOS on an empty hard drive (here
-   <filename>/dev/sda</filename>). <xref linkend="ex-config"
-/> shows a
-   corresponding configuration Nix expression.
-  </para>
-
-  <example xml:id="ex-partition-scheme-MBR">
-   <title>Example partition schemes for NixOS on <filename>/dev/sda</filename> (MBR)</title>
-<screen language="commands">
-<prompt># </prompt>parted /dev/sda -- mklabel msdos
-<prompt># </prompt>parted /dev/sda -- mkpart primary 1MiB -8GiB
-<prompt># </prompt>parted /dev/sda -- mkpart primary linux-swap -8GiB 100%</screen>
-  </example>
-
-  <example xml:id="ex-partition-scheme-UEFI">
-   <title>Example partition schemes for NixOS on <filename>/dev/sda</filename> (UEFI)</title>
-<screen language="commands">
-<prompt># </prompt>parted /dev/sda -- mklabel gpt
-<prompt># </prompt>parted /dev/sda -- mkpart primary 512MiB -8GiB
-<prompt># </prompt>parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
-<prompt># </prompt>parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
-<prompt># </prompt>parted /dev/sda -- set 3 esp on</screen>
-  </example>
-
-  <example xml:id="ex-install-sequence">
-   <title>Commands for Installing NixOS on <filename>/dev/sda</filename></title>
-   <para>
-    With a partitioned disk.
-<screen language="commands">
-<prompt># </prompt>mkfs.ext4 -L nixos /dev/sda1
-<prompt># </prompt>mkswap -L swap /dev/sda2
-<prompt># </prompt>swapon /dev/sda2
-<prompt># </prompt>mkfs.fat -F 32 -n boot /dev/sda3        # <lineannotation>(for UEFI systems only)</lineannotation>
-<prompt># </prompt>mount /dev/disk/by-label/nixos /mnt
-<prompt># </prompt>mkdir -p /mnt/boot                      # <lineannotation>(for UEFI systems only)</lineannotation>
-<prompt># </prompt>mount /dev/disk/by-label/boot /mnt/boot # <lineannotation>(for UEFI systems only)</lineannotation>
-<prompt># </prompt>nixos-generate-config --root /mnt
-<prompt># </prompt>nano /mnt/etc/nixos/configuration.nix
-<prompt># </prompt>nixos-install
-<prompt># </prompt>reboot</screen>
-   </para>
-  </example>
-
-  <example xml:id='ex-config'>
-   <title>NixOS Configuration</title>
-<programlisting>
-{ config, pkgs, ... }: {
-  imports = [
-    # Include the results of the hardware scan.
-    ./hardware-configuration.nix
-  ];
-
-  <xref linkend="opt-boot.loader.grub.device"/> = "/dev/sda";   # <lineannotation>(for BIOS systems only)</lineannotation>
-  <xref linkend="opt-boot.loader.systemd-boot.enable"/> = true; # <lineannotation>(for UEFI systems only)</lineannotation>
-
-  # Note: setting fileSystems is generally not
-  # necessary, since nixos-generate-config figures them out
-  # automatically in hardware-configuration.nix.
-  #<link linkend="opt-fileSystems._name_.device">fileSystems."/".device</link> = "/dev/disk/by-label/nixos";
-
-  # Enable the OpenSSH server.
-  services.sshd.enable = true;
-}
-</programlisting>
-  </example>
- </section>
- <section xml:id="sec-installation-additional-notes">
-  <title>Additional installation notes</title>
-
-  <xi:include href="../from_md/installation/installing-usb.section.xml" />
-
-  <xi:include href="../from_md/installation/installing-pxe.section.xml" />
-
-  <xi:include href="../from_md/installation/installing-virtualbox-guest.section.xml" />
-
-  <xi:include href="../from_md/installation/installing-from-other-distro.section.xml" />
-
-  <xi:include href="../from_md/installation/installing-behind-a-proxy.section.xml" />
- </section>
-</chapter>
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 00844d529b77..3dc15449c772 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -71,6 +71,8 @@ subsonic-compatible api. Available as [navidrome](#opt-services.navidrome.enable
 
 - [nats](https://nats.io/), a high performance cloud and edge messaging system. Available as [services.nats](#opt-services.nats.enable).
 
+- [git](https://git-scm.com), a distributed version control system. Available as [programs.git](options.html#opt-programs.git.enable).
+
 ## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
 
 
@@ -326,3 +328,6 @@ To be able to access the web UI this port needs to be opened in the firewall.
 - `rofi` has been updated from '1.6.1' to '1.7.0', one important thing is the removal of the old xresources based configuration setup. Read more [in rofi's changelog](https://github.com/davatorium/rofi/blob/cb12e6fc058f4a0f4f/Changelog#L1).
 
 - ipfs now defaults to not listening on you local network. This setting was change as server providers won't accept port scanning on their private network. If you have several ipfs instances running on a network you own, feel free to change the setting `ipfs.localDiscovery = true;`. localDiscovery enables different instances to discover each other and share data.
+
+- `lua` and `luajit` interpreters have been patched to avoid looking into /usr/lib
+  directories, thus increasing the purity of the build.
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 1998a309035b..76cc4411baba 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -145,6 +145,7 @@
   ./programs/fuse.nix
   ./programs/gamemode.nix
   ./programs/geary.nix
+  ./programs/git.nix
   ./programs/gnome-disks.nix
   ./programs/gnome-documents.nix
   ./programs/gnome-terminal.nix
@@ -873,7 +874,6 @@
   ./services/networking/wasabibackend.nix
   ./services/networking/websockify.nix
   ./services/networking/wg-quick.nix
-  ./services/networking/wicd.nix
   ./services/networking/wireguard.nix
   ./services/networking/wpa_supplicant.nix
   ./services/networking/xandikos.nix
diff --git a/nixos/modules/programs/git.nix b/nixos/modules/programs/git.nix
new file mode 100644
index 000000000000..4e06b576f896
--- /dev/null
+++ b/nixos/modules/programs/git.nix
@@ -0,0 +1,45 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.git;
+in
+
+{
+  options = {
+    programs.git = {
+      enable = mkEnableOption "git";
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.git;
+        defaultText = "pkgs.git";
+        example = literalExample "pkgs.gitFull";
+        description = "The git package to use";
+      };
+
+      config = mkOption {
+        type = types.attrs;
+        default = { };
+        example = {
+          init.defaultBranch = "main";
+          url."https://github.com/".insteadOf = [ "gh:" "github:" ];
+        };
+        description = ''
+          Configuration to write to /etc/gitconfig. See the CONFIGURATION FILE
+          section of git-config(1) for more information.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+    environment.etc.gitconfig = mkIf (cfg.config != {}) {
+      text = generators.toGitINI cfg.config;
+    };
+  };
+
+  meta.maintainers = with maintainers; [ figsoda ];
+}
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 233e3ee848be..4db6efb75d82 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -27,6 +27,7 @@ with lib;
     (mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
+    (mkRemovedOptionModule [ "networking" "wicd" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "environment" "blcr" "enable" ] "The BLCR module has been removed")
     (mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed")
     (mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix
index 8fdfda9a66d8..dabd80312d9d 100644
--- a/nixos/modules/services/amqp/rabbitmq.nix
+++ b/nixos/modules/services/amqp/rabbitmq.nix
@@ -135,25 +135,14 @@ in
         description = "The list of directories containing external plugins";
       };
 
-      managementPlugin = mkOption {
-        description = "The options to run the management plugin";
-        type = types.submodule {
-          options = {
-            enable = mkOption {
-              default = false;
-              type = types.bool;
-              description = ''
-                Whether to enable the management plugin
-              '';
-            };
-            port = mkOption {
-              default = 15672;
-              type = types.port;
-              description = ''
-                On which port to run the management plugin
-              '';
-            };
-          };
+      managementPlugin = {
+        enable = mkEnableOption "the management plugin";
+        port = mkOption {
+          default = 15672;
+          type = types.port;
+          description = ''
+            On which port to run the management plugin
+          '';
         };
       };
     };
diff --git a/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixos/modules/services/cluster/kubernetes/kubelet.nix
index 08f5cdfdf334..51b2b5f6eb0d 100644
--- a/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -343,7 +343,7 @@ in
       };
 
       # Allways include cni plugins
-      services.kubernetes.kubelet.cni.packages = [pkgs.cni-plugins];
+      services.kubernetes.kubelet.cni.packages = [pkgs.cni-plugins pkgs.cni-plugin-flannel];
 
       boot.kernelModules = ["br_netfilter" "overlay"];
 
diff --git a/nixos/modules/services/logging/promtail.nix b/nixos/modules/services/logging/promtail.nix
index 34211687dc1d..95c83796ece6 100644
--- a/nixos/modules/services/logging/promtail.nix
+++ b/nixos/modules/services/logging/promtail.nix
@@ -7,6 +7,9 @@ let
   '';
 
   allowSystemdJournal = cfg.configuration ? scrape_configs && lib.any (v: v ? journal) cfg.configuration.scrape_configs;
+
+  allowPositionsFile = !lib.hasPrefix "/var/cache/promtail" positionsFile;
+  positionsFile = cfg.configuration.positions.filename;
 in {
   options.services.promtail = with types; {
     enable = mkEnableOption "the Promtail ingresser";
@@ -53,6 +56,7 @@ in {
         RestrictSUIDSGID = true;
         PrivateMounts = true;
         CacheDirectory = "promtail";
+        ReadWritePaths = lib.optional allowPositionsFile (builtins.dirOf positionsFile);
 
         User = "promtail";
         Group = "promtail";
diff --git a/nixos/modules/services/networking/wicd.nix b/nixos/modules/services/networking/wicd.nix
deleted file mode 100644
index aa10a50f876a..000000000000
--- a/nixos/modules/services/networking/wicd.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-{
-
-  ###### interface
-
-  options = {
-
-    networking.wicd.enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Whether to start <command>wicd</command>. Wired and
-        wireless network configurations can then be managed by
-        wicd-client.
-      '';
-    };
-  };
-
-
-  ###### implementation
-
-  config = mkIf config.networking.wicd.enable {
-
-    environment.systemPackages = [pkgs.wicd];
-
-    systemd.services.wicd = {
-      after = [ "network-pre.target" ];
-      before = [ "network.target" ];
-      wants = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
-      script = "${pkgs.wicd}/sbin/wicd -f";
-    };
-
-    services.dbus.enable = true;
-    services.dbus.packages = [pkgs.wicd];
-  };
-}
diff --git a/nixos/modules/services/security/privacyidea.nix b/nixos/modules/services/security/privacyidea.nix
index 63271848e943..5f894d0fa691 100644
--- a/nixos/modules/services/security/privacyidea.nix
+++ b/nixos/modules/services/security/privacyidea.nix
@@ -228,7 +228,7 @@ in
         path = with pkgs; [ openssl ];
         environment.PRIVACYIDEA_CONFIGFILE = "${cfg.stateDir}/privacyidea.cfg";
         preStart = let
-          pi-manage = "${pkgs.sudo}/bin/sudo -u privacyidea -HE ${penv}/bin/pi-manage";
+          pi-manage = "${config.security.sudo.package}/bin/sudo -u privacyidea -HE ${penv}/bin/pi-manage";
           pgsu = config.services.postgresql.superUser;
           psql = config.services.postgresql.package;
         in ''
@@ -239,8 +239,8 @@ in
                                                    -i "${piCfgFile}"
           chown ${cfg.user}:${cfg.group} ${cfg.stateDir}/privacyidea.cfg
           if ! test -e "${cfg.stateDir}/db-created"; then
-            ${pkgs.sudo}/bin/sudo -u ${pgsu} ${psql}/bin/createuser --no-superuser --no-createdb --no-createrole ${cfg.user}
-            ${pkgs.sudo}/bin/sudo -u ${pgsu} ${psql}/bin/createdb --owner ${cfg.user} privacyidea
+            ${config.security.sudo.package}/bin/sudo -u ${pgsu} ${psql}/bin/createuser --no-superuser --no-createdb --no-createrole ${cfg.user}
+            ${config.security.sudo.package}/bin/sudo -u ${pgsu} ${psql}/bin/createdb --owner ${cfg.user} privacyidea
             ${pi-manage} create_enckey
             ${pi-manage} create_audit_keys
             ${pi-manage} createdb
diff --git a/nixos/tests/handbrake.nix b/nixos/tests/handbrake.nix
index 226dc8b2aa8a..c92fb5db7d6c 100644
--- a/nixos/tests/handbrake.nix
+++ b/nixos/tests/handbrake.nix
@@ -9,7 +9,7 @@ in {
   name = "handbrake";
 
   meta = {
-    maintainers = with pkgs.lib.maintainers; [ danieldk ];
+    maintainers = with pkgs.lib.maintainers; [ ];
   };
 
   machine = { pkgs, ... }: {
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index d81ab4b3ac72..fa8174e3a95b 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -10,20 +10,20 @@ let
   # If an update breaks things, one of those might have valuable info:
   # https://aur.archlinux.org/packages/spotify/
   # https://community.spotify.com/t5/Desktop-Linux
-  version = "1.1.55.498.gf9a83c60";
+  version = "1.1.67.586.gbb5ef64e";
   # To get the latest stable revision:
   # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
   # To get general information:
   # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
   # More examples of api usage:
   # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
-  rev = "46";
+  rev = "50";
 
   deps = [
     alsa-lib
-    atk
     at-spi2-atk
     at-spi2-core
+    atk
     cairo
     cups
     curl
@@ -46,7 +46,10 @@ let
     pango
     stdenv.cc.cc
     systemd
+    xorg.libICE
+    xorg.libSM
     xorg.libX11
+    xorg.libxcb
     xorg.libXcomposite
     xorg.libXcursor
     xorg.libXdamage
@@ -56,10 +59,8 @@ let
     xorg.libXrandr
     xorg.libXrender
     xorg.libXScrnSaver
+    xorg.libxshmfence
     xorg.libXtst
-    xorg.libxcb
-    xorg.libSM
-    xorg.libICE
     zlib
   ];
 
@@ -79,7 +80,7 @@ stdenv.mkDerivation {
   # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
   src = fetchurl {
     url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
-    sha512 = "dabb55d2ba41f977b6d3f03bfcf147d11785136dd1277efc62011c8371ef25cc04531266bd16608639b9b6a500c1a18a45f44ba7a43e17ab5ac139e36eff7149";
+    sha512 = "f29aa4a3f3d6a72f108f350905789f12ab3ae50cf4f4828f021d3be7759b192506c9a397e45309a5ee659578b6e85de80d7d78f994af9ab631c9fb2dc527c242";
   };
 
   nativeBuildInputs = [ makeWrapper wrapGAppsHook squashfsTools ];
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 502c68d3269f..0c9bd808b53c 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -17,8 +17,8 @@ let
     sha256Hash = "04k7c328bl8ixi8bvp2mm33q2hmv40yc9p5dff5cghyycarwpd3f";
   };
   latestVersion = { # canary & dev
-    version = "2021.1.1.5"; # "Android Studio Bumblebee (2021.1.1) Canary 5"
-    sha256Hash = "0fx6nnazg4548rhb11wzaccm5c2si57mj8qwyl5j17x4k5r3m7nh";
+    version = "2021.1.1.11"; # "Android Studio Bumblebee (2021.1.1) Canary 11"
+    sha256Hash = "0npvb7kr259799bs2bs2drvimmmwb0rdzswbkz8zgi5c2fwjcvvl";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/neovim/tests.nix b/pkgs/applications/editors/neovim/tests.nix
index 5f4cda714a67..202b18efb8cf 100644
--- a/pkgs/applications/editors/neovim/tests.nix
+++ b/pkgs/applications/editors/neovim/tests.nix
@@ -84,6 +84,13 @@ rec {
     viAlias = true;
   };
 
+  nvim_with_plug = neovim.override {
+    extraName = "-with-plug";
+    configure.plug.plugins = with pkgs.vimPlugins; [
+      vim-go
+    ];
+  };
+
   # nixpkgs should detect that no wrapping is necessary
   nvimShouldntWrap = wrapNeovim2 "-should-not-wrap" nvimAutoDisableWrap;
 
@@ -133,7 +140,7 @@ rec {
     configure.pathogen.pluginNames = [ "vim-nix" ];
   };
 
-  nvimWithLuaPackages = wrapNeovim2 "with-lua-packages" (makeNeovimConfig {
+  nvimWithLuaPackages = wrapNeovim2 "-with-lua-packages" (makeNeovimConfig {
     extraLuaPackages = ps: [ps.mpack];
     customRC = ''
       lua require("mpack")
@@ -141,6 +148,7 @@ rec {
   });
 
   nvim_with_lua_packages = runTest nvimWithLuaPackages ''
+    export HOME=$TMPDIR
     ${nvimWithLuaPackages}/bin/nvim -i NONE --noplugin -es
   '';
 })
diff --git a/pkgs/applications/editors/neovim/utils.nix b/pkgs/applications/editors/neovim/utils.nix
index 837c9a79ffe8..bf0d80d1f07d 100644
--- a/pkgs/applications/editors/neovim/utils.nix
+++ b/pkgs/applications/editors/neovim/utils.nix
@@ -78,8 +78,7 @@ let
         ++ (extraPython3Packages ps)
         ++ (lib.concatMap (f: f ps) pluginPython3Packages));
 
-      lua = neovim-unwrapped.lua;
-      luaEnv = lua.withPackages(ps: extraLuaPackages ps);
+      luaEnv = neovim-unwrapped.lua.withPackages(extraLuaPackages);
 
       # Mapping a boolean argument to a key that tells us whether to add or not to
       # add to nvim's 'embedded rc' this:
@@ -115,8 +114,8 @@ let
         ] ++ lib.optionals (binPath != "") [
           "--suffix" "PATH" ":" binPath
         ] ++ lib.optionals (luaEnv != null) [
-          "--prefix" "LUA_PATH" ";" "${luaEnv}/share/lua/${lua.luaversion}/?.lua"
-          "--prefix" "LUA_CPATH" ";" "${luaEnv}/lib/lua/${lua.luaversion}/?.so"
+          "--prefix" "LUA_PATH" ";" (neovim-unwrapped.lua.pkgs.lib.genLuaPathAbsStr luaEnv)
+          "--prefix" "LUA_CPATH" ";" (neovim-unwrapped.lua.pkgs.lib.genLuaCPathAbsStr luaEnv)
         ];
 
 
diff --git a/pkgs/applications/editors/typora/default.nix b/pkgs/applications/editors/typora/default.nix
deleted file mode 100644
index a9afc774bc05..000000000000
--- a/pkgs/applications/editors/typora/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, makeWrapper
-, electron_9
-, dpkg
-, gtk3
-, glib
-, gsettings-desktop-schemas
-, wrapGAppsHook
-, withPandoc ? false
-, pandoc
-}:
-
-let
-  electron = electron_9;
-in
-stdenv.mkDerivation rec {
-  pname = "typora";
-  version = "0.9.98";
-
-  src = fetchurl {
-    url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
-    sha256 = "sha256-JiqjxT8ZGttrcJrcQmBoGPnRuuYWZ9u2083RxZoLMus=";
-  };
-
-  nativeBuildInputs = [
-    dpkg
-    makeWrapper
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    glib
-    gsettings-desktop-schemas
-    gtk3
-  ];
-
-  # The deb contains setuid permission on `chrome-sandbox`, which will actually not get installed.
-  unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
-
-  dontWrapGApps = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/bin $out/share
-    {
-      cd usr
-      mv share/typora/resources/app $out/share/typora
-      mv share/{applications,icons,doc} $out/share/
-    }
-
-    runHook postInstall
-  '';
-
-  postFixup = ''
-    makeWrapper ${electron}/bin/electron $out/bin/typora \
-      --add-flags $out/share/typora \
-      "''${gappsWrapperArgs[@]}" \
-      ${lib.optionalString withPandoc ''--prefix PATH : "${lib.makeBinPath [ pandoc ]}"''} \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ]}"
-  '';
-
-  meta = with lib; {
-    description = "A minimal Markdown reading & writing app";
-    homepage = "https://typora.io";
-    license = licenses.unfree;
-    maintainers = with maintainers; [ jensbin ];
-    platforms = [ "x86_64-linux"];
-  };
-}
diff --git a/pkgs/applications/editors/vim/vimacs.nix b/pkgs/applications/editors/vim/vimacs.nix
index d98e3b37514f..6eb995f86e06 100644
--- a/pkgs/applications/editors/vim/vimacs.nix
+++ b/pkgs/applications/editors/vim/vimacs.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   buildCommand = ''
     mkdir -p "$out"/bin
-    cp "${vimPlugins.vimacs}"/share/vim-plugins/vimacs/bin/vim $out/bin/vimacs
+    cp "${vimPlugins.vimacs}"/bin/vim $out/bin/vimacs
     substituteInPlace "$out"/bin/vimacs \
       --replace '-vim}' '-@bin@/bin/vim}' \
       --replace '-gvim}' '-@bin@/bin/vim -g}' \
diff --git a/pkgs/applications/editors/vis/default.nix b/pkgs/applications/editors/vis/default.nix
index 9a020233f3b0..a658f95ac014 100644
--- a/pkgs/applications/editors/vis/default.nix
+++ b/pkgs/applications/editors/vis/default.nix
@@ -1,8 +1,11 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, makeWrapper, makeDesktopItem
-, ncurses, libtermkey, lpeg, lua
+, ncurses, libtermkey, lua
 , acl ? null, libselinux ? null
 }:
 
+let
+  luaEnv = lua.withPackages(ps: [ ps.lpeg ]);
+in
 stdenv.mkDerivation rec {
   pname = "vis";
   version  = "0.7";
@@ -19,8 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     ncurses
     libtermkey
-    lua
-    lpeg
+    luaEnv
   ] ++ lib.optionals stdenv.isLinux [
     acl
     libselinux
@@ -30,16 +32,13 @@ stdenv.mkDerivation rec {
     patchShebangs ./configure
   '';
 
-  LUA_CPATH="${lpeg}/lib/lua/${lua.luaversion}/?.so;";
-  LUA_PATH="${lpeg}/share/lua/${lua.luaversion}/?.lua";
-
   postInstall = ''
     mkdir -p "$out/share/applications"
     cp $desktopItem/share/applications/* $out/share/applications
     echo wrapping $out/bin/vis with runtime environment
     wrapProgram $out/bin/vis \
-      --prefix LUA_CPATH ';' "${lpeg}/lib/lua/${lua.luaversion}/?.so" \
-      --prefix LUA_PATH ';' "${lpeg}/share/lua/${lua.luaversion}/?.lua" \
+      --prefix LUA_CPATH ';' "${luaEnv}/lib/lua/${lua.luaversion}/?.so" \
+      --prefix LUA_PATH ';' "${luaEnv}/share/lua/${lua.luaversion}/?.lua" \
       --prefix VIS_PATH : "\$HOME/.config:$out/share/vis"
   '';
 
diff --git a/pkgs/applications/misc/joshuto/default.nix b/pkgs/applications/misc/joshuto/default.nix
new file mode 100644
index 000000000000..89e5aea943a5
--- /dev/null
+++ b/pkgs/applications/misc/joshuto/default.nix
@@ -0,0 +1,31 @@
+{ fetchFromGitHub, lib, rustPlatform, stdenv, SystemConfiguration }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "joshuto";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "kamiyaa";
+    repo = pname;
+    rev = version;
+    sha256 = "08d6h7xwcgycw5bdzwwc6aaikcrw3yc7inkiydgml9q261kql7zl";
+    # upstream includes an outdated Cargo.lock that stops cargo from compiling
+    postFetch = ''
+      mkdir -p $out
+      tar xf $downloadedFile --strip=1 -C $out
+      substituteInPlace $out/Cargo.lock \
+        --replace 0.8.6 ${version}
+    '';
+  };
+
+  cargoSha256 = "1scrqm7fs8y7anfiigimj7y5rjxcc2qvrxiq8ai7k5cwfc4v1ghm";
+
+  buildInputs = lib.optional stdenv.isDarwin SystemConfiguration;
+
+  meta = with lib; {
+    description = "Ranger-like terminal file manager written in Rust";
+    homepage = "https://github.com/kamiyaa/joshuto";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/applications/misc/notejot/default.nix b/pkgs/applications/misc/notejot/default.nix
index e9d63701afa0..952a7b00d087 100644
--- a/pkgs/applications/misc/notejot/default.nix
+++ b/pkgs/applications/misc/notejot/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "notejot";
-  version = "3.1.2";
+  version = "3.1.5";
 
   src = fetchFromGitHub {
     owner = "lainsce";
     repo = pname;
     rev = version;
-    hash = "sha256-Exg9HxV3cxySuT8ifVyZgoATQ/FAC8umj3smJ7W/5/Y=";
+    hash = "sha256-wsHQvN+sqAMs1QldiRoc9JlF4d54JFqNkqC+lyuHC7M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index e4aebbd2ae2a..5b4444b19851 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -31,11 +31,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "obsidian";
-  version = "0.12.12";
+  version = "0.12.15";
 
   src = fetchurl {
     url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.tar.gz";
-    sha256 = "sha256-zvWJvMmb0TlFYXrT2QUgMG6uleT42+y+F4bSZQ2ftnE=";
+    sha256 = "sha256-0pAwTkx89B6S0GPes2XXSRNdByIc+DwiI5HXoUqs/QE=";
   };
 
   nativeBuildInputs = [ makeWrapper graphicsmagick ];
diff --git a/pkgs/applications/misc/taskopen/default.nix b/pkgs/applications/misc/taskopen/default.nix
index 8933faf5fb01..88050d2f449d 100644
--- a/pkgs/applications/misc/taskopen/default.nix
+++ b/pkgs/applications/misc/taskopen/default.nix
@@ -1,20 +1,27 @@
-{ fetchurl, lib, stdenv, makeWrapper, which, perl, perlPackages }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, which, perl, perlPackages }:
 
-stdenv.mkDerivation {
-  name = "taskopen-1.1.4";
-  src = fetchurl {
-    url = "https://github.com/ValiValpas/taskopen/archive/v1.1.4.tar.gz";
-    sha256 = "774dd89f5c92462098dd6227e181268e5ec9930bbc569f25784000df185c71ba";
-  };
+stdenv.mkDerivation rec {
+  pname = "taskopen";
+  version = "1.1.5";
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ which perl ] ++ (with perlPackages; [ JSON ]);
+  src = fetchFromGitHub {
+    owner = "ValiValpas";
+    repo = "taskopen";
+    rev = "v${version}";
+    sha256 = "sha256-/xf7Ph2KKiZ5lgLKk95nCgw/z9wIBmuWf3QGaNebgHg=";
+  };
 
-  installPhase = ''
+  postPatch = ''
     # We don't need a DESTDIR and an empty string results in an absolute path
     # (due to the trailing slash) which breaks the build.
     sed 's|$(DESTDIR)/||' -i Makefile
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ which ]
+    ++ (with perlPackages; [ JSON perl ]);
 
+  installPhase = ''
     make PREFIX=$out
     make PREFIX=$out install
   '';
@@ -28,7 +35,7 @@ stdenv.mkDerivation {
     description = "Script for taking notes and open urls with taskwarrior";
     homepage = "https://github.com/ValiValpas/taskopen";
     platforms = platforms.linux;
-    license = lib.licenses.free ;
+    license = licenses.free;
     maintainers = [ maintainers.winpat ];
   };
 }
diff --git a/pkgs/applications/misc/wike/default.nix b/pkgs/applications/misc/wike/default.nix
new file mode 100644
index 000000000000..fac8ac2886d3
--- /dev/null
+++ b/pkgs/applications/misc/wike/default.nix
@@ -0,0 +1,60 @@
+{ lib, stdenv, fetchFromGitHub
+, meson, pkg-config, ninja
+, python3
+, glib, appstream-glib , desktop-file-utils
+, gobject-introspection, gtk3
+, wrapGAppsHook
+, libhandy, webkitgtk, glib-networking
+, gnome, dconf
+}:
+let
+  pythonEnv = python3.withPackages (p: with p; [
+    pygobject3
+    requests
+  ]);
+in stdenv.mkDerivation rec {
+  pname = "wike";
+  version = "1.5.6";
+
+  src = fetchFromGitHub {
+    owner = "hugolabe";
+    repo = "Wike";
+    rev = version;
+    sha256 = "1qnxzxqjj0sn522k15plskwa7nlhhbcipfc3w17fbq3k2zhpr1yy";
+  };
+
+  nativeBuildInputs = [
+    meson
+    pkg-config
+    ninja
+    appstream-glib
+    desktop-file-utils
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    pythonEnv
+    gtk3
+    libhandy
+    webkitgtk
+    glib-networking
+    gnome.adwaita-icon-theme
+    dconf
+  ];
+
+  postPatch = ''
+    patchShebangs build-aux/meson/postinstall.py
+    substituteInPlace src/wike.in    --replace "@PYTHON@" "${pythonEnv}/bin/python"
+    substituteInPlace src/wike-sp.in --replace "@PYTHON@" "${pythonEnv}/bin/python"
+  '';
+
+  meta = with lib; {
+    description = "Wikipedia Reader for the GNOME Desktop";
+    homepage = "https://github.com/hugolabe/Wike";
+    license = licenses.gpl3Plus;
+    platforms = webkitgtk.meta.platforms;
+    maintainers = with maintainers; [ samalws ];
+  };
+}
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 30d56c1014b3..a094e681e230 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -31,9 +31,9 @@
     }
   },
   "dev": {
-    "version": "95.0.4628.3",
-    "sha256": "04r2db9kl77lp4jyyj01pc70jkxrifbnz5hic4r91lf8m2gf1fa3",
-    "sha256bin64": "1ssf8jdk6gn2mrnyvgz2c9nkk70rsidd5y26w2kx3s0cllfr7d96",
+    "version": "95.0.4636.4",
+    "sha256": "1rhkmja9p2a8cxnjsrs0ipzajxwgp3c8q3903rp8ns1g579c4g3j",
+    "sha256bin64": "0l89iqi95fa10m3jdhbvfdjf4x88gscx6imkhy2x2ax669d19606",
     "deps": {
       "gn": {
         "version": "2021-08-11",
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index ffdd8b7ed040..5adb5bb65a8e 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2021.8.6";
+  version = "2021.8.7";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    sha256 = "sha256-dMZu4IRdchPeoYylz1XDZeJsAW+V8HZApNndpeu+RbA=";
+    sha256 = "sha256-Q8Xjo60lR1x7Y9/jcxXX32IxVVlHmkr4ekIwWTgdwps=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/hubble/default.nix b/pkgs/applications/networking/cluster/hubble/default.nix
new file mode 100644
index 000000000000..ebb0abfcbd28
--- /dev/null
+++ b/pkgs/applications/networking/cluster/hubble/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "hubble";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "cilium";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1n1930hlaflx7kzqbz7vvnxw9hrps84kqibaf2ixnjp998kqkl6d";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    description = "Network, Service & Security Observability for Kubernetes using eBPF";
+    license = licenses.asl20;
+    homepage = "https://github.com/cilium/hubble/";
+    maintainers = with maintainers; [ humancalico ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kubeconform/default.nix b/pkgs/applications/networking/cluster/kubeconform/default.nix
index cc0f1e0bf64c..7249c2a5cef4 100644
--- a/pkgs/applications/networking/cluster/kubeconform/default.nix
+++ b/pkgs/applications/networking/cluster/kubeconform/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubeconform";
-  version = "0.4.8";
+  version = "0.4.10";
 
   src = fetchFromGitHub {
     owner = "yannh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XD8xGqtE7eaBxPL4Z0Kw4BEqM2fdgww7wl8wJ1U3u0U=";
+    sha256 = "sha256-D1/ljIOc5vK6HcYmk0WNnIRGBt1vJk9dGxl5GjhKhuA=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/kubedb-cli/default.nix b/pkgs/applications/networking/cluster/kubedb-cli/default.nix
index 3d2771638842..926dc1dff542 100644
--- a/pkgs/applications/networking/cluster/kubedb-cli/default.nix
+++ b/pkgs/applications/networking/cluster/kubedb-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubedb-cli";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "kubedb";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-CwAa2YqJ0R+L+VwxqruQmZJUctP4GgKszY49ZVyyNBE=";
+    sha256 = "sha256-E8oI0qBDS6CcA5ZDGs1YVt/BPEfUzCrt5aaqfHAXukI=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/octant/default.nix b/pkgs/applications/networking/cluster/octant/default.nix
index fabdc7d5ab5e..257c37ff328d 100644
--- a/pkgs/applications/networking/cluster/octant/default.nix
+++ b/pkgs/applications/networking/cluster/octant/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "octant";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src =
     let
@@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
       };
     in
     fetchsrc version {
-      x86_64-linux = "sha256-wnm4Zprlao+zbWVJNY4BsAT1fFMft7luyDaW2HfNotg=";
-      aarch64-linux = "sha256-eYvfLUelSrmdY9dbgAlPm7en88hsdCnejJGq2Gz4DN0=";
-      x86_64-darwin = "sha256-NXMQ4mbYfIK+arGWZVhQk5iAw6AZM9PAGJ9CEC/rmgA=";
-      aarch64-darwin = "sha256-WqlbiDV2CuBYr6IXQ8vaESxKNZGp9vBj683igazcmwM=";
+      x86_64-linux = "sha256-fvGVcp6SpHY0UuWurRuypDXbWEs565bK1Peg0Q4Y0m8=";
+      aarch64-linux = "sha256-7h8l4Pm34UCZ5NhD1scM1c5sM4ePGLDRGAQBfI5vSHI=";
+      x86_64-darwin = "sha256-2S+D5Gg98GEL5L6bC8ZUSEJXFs74ZaZlNkYHYJYZvqw=";
+      aarch64-darwin = "sha256-rEhMX+v2sjsmc1p22uscjIyhcnpv2fWjgEnU+lUq9RE=";
     };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix
index 6aee37c57ed4..56642fb64d33 100644
--- a/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/pkgs/applications/networking/cluster/tanka/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tanka";
-  version = "0.17.0";
+  version = "0.17.2";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9UfSKMyapmDyikRqs7UiA4YYcvj/Tin9pRqC9iFLPWE=";
+    sha256 = "sha256-a7utYYuCgFabKILUKnKF0fcrorlV1DYMOFMRkm5QMuU=";
   };
 
   vendorSha256 = "sha256-vpm2y/CxRNWkz6+AOMmmZH5AjRQWAa6WD5Fnx5lqJYw=";
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index b4e44a05d82e..5710d456cefb 100644
--- a/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule rec {
   /* Do not use "dev" as a version. If you do, Tilt will consider itself
     running in development environment and try to serve assets from the
     source tree, which is not there once build completes.  */
-  version = "0.20.5";
+  version = "0.22.4";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-pUKKHrShED7yp5WSmHSbS+eiYs22Nm2/ouc2a8WYc38=";
+    sha256 = "sha256-bu8U3eJc10tnQhLLX0FwDrlTUVpjZBW7V4gbc/tBTBU=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/applications/networking/gmailctl/default.nix b/pkgs/applications/networking/gmailctl/default.nix
index 0042e5417df3..3e0a20a371c7 100644
--- a/pkgs/applications/networking/gmailctl/default.nix
+++ b/pkgs/applications/networking/gmailctl/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gmailctl";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "mbrt";
     repo = "gmailctl";
     rev = "v${version}";
-    sha256 = "sha256-UZzpecW4vW1JYUDCcwDIJXCGjw80fgZC4wvCh0DdE98=";
+    sha256 = "sha256-1gOixuOvPHEjnnDNNda9sktnhffovOfeG4XDrLRRMlE=";
   };
 
-  vendorSha256 = "sha256-5oVr1qazTzsSNVLvcAsAN8UyrJOeqLjSVinImLOyJlk=";
+  vendorSha256 = "sha256-Yv3OGHFOmenst/ujUgvCaSEjwwBf3W9n+55ztVhuWjo=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index a2be79f5589f..6d9f62e75ab3 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -1,3 +1,8 @@
+# Update instructions:
+#
+# To update `thunderbird-bin`'s `release_sources.nix`, run from the nixpkgs root:
+#
+#     nix-shell maintainers/scripts/update.nix --argstr package pkgs.firefox-bin-unwrapped
 { stdenv, lib, fetchurl, config, makeWrapper
 , alsa-lib
 , at-spi2-atk
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 314d2141de7e..0be69104a5fe 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -44,12 +44,12 @@ rec {
 
   thunderbird-78 = common rec {
     pname = "thunderbird";
-    version = "78.13.0";
+    version = "78.14.0";
     application = "comm/mail";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "daee9ea9e57bdfce231a35029807f279a06f8790d71efc8998c78eb42d99a93cf98623170947df99202da038f949ba9111a7ff7adbd43c161794deb6791370a0";
+      sha512 = "0zan30jvv45pd6i59l2kfyfjwivqk5qq6vyf77xhss2dk8qhk3mfrfxpfbkrab676l14b9hs09nr6ni1h1iwn82zx5k7fx5x8sh5dx6";
     };
     patches = [
       ./no-buildconfig-78.patch
diff --git a/pkgs/applications/office/semantik/default.nix b/pkgs/applications/office/semantik/default.nix
index 371dd52a8402..41bf38fc4b47 100644
--- a/pkgs/applications/office/semantik/default.nix
+++ b/pkgs/applications/office/semantik/default.nix
@@ -24,13 +24,13 @@
 
 mkDerivation rec {
   pname = "semantik";
-  version = "1.2.5";
+  version = "1.2.7";
 
   src = fetchFromGitLab {
     owner = "ita1024";
     repo = "semantik";
     rev = "semantik-${version}";
-    sha256 = "0dkg6mbnsbvbis17iz8v59wlhld93nc51abnkbyqvvkyyiqb006c";
+    sha256 = "sha256-aXOokji6fYTpaeI/IIV+5RnTE2Cm8X3WfADf4Uftkss=";
   };
 
   patches = [ ./qt5.patch ];
diff --git a/pkgs/applications/science/electronics/openems/default.nix b/pkgs/applications/science/electronics/openems/default.nix
index 64afe3222c2d..e7b947450acc 100644
--- a/pkgs/applications/science/electronics/openems/default.nix
+++ b/pkgs/applications/science/electronics/openems/default.nix
@@ -15,13 +15,10 @@
 , withQcsxcad ? true
 , withMPI ? false
 , withHyp2mat ? true
-, qcsxcad ? null
-, hyp2mat ? null
+, qcsxcad
+, hyp2mat
 }:
 
-assert withQcsxcad -> qcsxcad != null;
-assert withHyp2mat -> hyp2mat != null;
-
 stdenv.mkDerivation {
   pname = "openems";
   version = "unstable-2020-02-15";
diff --git a/pkgs/applications/science/electronics/xoscope/default.nix b/pkgs/applications/science/electronics/xoscope/default.nix
index 5052a3715ef4..7a9f58a0c6e3 100644
--- a/pkgs/applications/science/electronics/xoscope/default.nix
+++ b/pkgs/applications/science/electronics/xoscope/default.nix
@@ -1,18 +1,26 @@
-{lib, stdenv, fetchurl, gtk2, pkg-config}:
+{ lib
+, stdenv
+, fetchurl
+, gtk3
+, gtkdatabox
+, fftw
+, gnum4
+, comedilib
+, alsa-lib
+, pkg-config
+}:
 
 stdenv.mkDerivation rec {
-  name = "xoscope-2.0";
+  pname = "xoscope";
+  version = "2.3";
 
   src = fetchurl {
-    url = "mirror://sourceforge/xoscope/${name}.tgz";
-    sha256 = "00xlvvqyw6l1ljbsx1vgx2v1jfh0xacz1a0yhq1dj6yxf5wh58x8";
+    url = "mirror://sourceforge/xoscope/${pname}-${version}.tar.gz";
+    sha256 = "0a5ycfc1qdmibvagc82r2mhv2i99m6pndy5i6ixas3j2297g6pgq";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gtk2 ];
-
-  # from: https://aur.archlinux.org/packages.php?ID=12140&detail=1
-  patches = [ ./gtkdepre.diff ];
+  nativeBuildInputs = [ pkg-config gnum4 ];
+  buildInputs = [ gtk3 gtkdatabox fftw comedilib alsa-lib ];
 
   meta = {
     description = "Oscilloscope through the sound card";
diff --git a/pkgs/applications/science/electronics/xoscope/gtkdepre.diff b/pkgs/applications/science/electronics/xoscope/gtkdepre.diff
deleted file mode 100644
index 993df9cb5503..000000000000
--- a/pkgs/applications/science/electronics/xoscope/gtkdepre.diff
+++ /dev/null
@@ -1,58 +0,0 @@
-diff -ru xoscope-2.0-old//gtkdatabox-0.6.0.0/gtk/gtkdatabox.c xoscope-2.0/gtkdatabox-0.6.0.0/gtk/gtkdatabox.c
---- xoscope-2.0-old//gtkdatabox-0.6.0.0/gtk/gtkdatabox.c	2010-06-07 10:42:24.000000000 +0200
-+++ xoscope-2.0/gtkdatabox-0.6.0.0/gtk/gtkdatabox.c	2010-06-07 10:45:40.000000000 +0200
-@@ -661,7 +661,7 @@
- static void
- gtk_databox_calculate_hcanvas (GtkDatabox *box)
- {
--   if (!GTK_WIDGET_VISIBLE (box))
-+   if (!gtk_widget_get_visible (box))
-       return;
-    
-    if (box->priv->adjX->page_size == 1.0)
-@@ -698,7 +698,7 @@
- static void
- gtk_databox_calculate_vcanvas (GtkDatabox *box)
- {
--   if (!GTK_WIDGET_VISIBLE (box))
-+   if (!gtk_widget_get_visible (box))
-       return;
-    
-    if (box->priv->adjY->page_size == 1.0)
-@@ -780,7 +780,7 @@
-    gtk_databox_draw (box, event);
- 
-    gdk_draw_drawable (widget->window,
--                      widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
-+                      widget->style->fg_gc[gtk_widget_get_state (widget)],
-                       box->priv->canvas.pixmap, event->area.x, event->area.y,
-                       event->area.x, event->area.y, event->area.width,
-                       event->area.height);
-@@ -940,7 +940,7 @@
-    GtkWidget *widget = GTK_WIDGET (box);
- 
-    g_return_if_fail (GTK_IS_DATABOX (box));
--   g_return_if_fail (GTK_WIDGET_VISIBLE (widget));
-+   g_return_if_fail (gtk_widget_get_visible (widget));
- 
-    gdk_draw_rectangle (box->priv->canvas.pixmap, widget->style->bg_gc[0], 
-                        TRUE, 0, 0,
-@@ -1150,7 +1150,7 @@
-    /* Copy a part of the pixmap to the screen */
-    if (pixmapCopyRect)
-       gdk_draw_drawable (widget->window,
--                         widget->style->fg_gc[GTK_WIDGET_STATE (box)],
-+                         widget->style->fg_gc[gtk_widget_get_state (box)],
-                          box->priv->canvas.pixmap,
-                          pixmapCopyRect->x,
-                          pixmapCopyRect->y,
---- xoscope-2.0-old//gtkdatabox-0.6.0.0/gtk/Makefile.in	2011-09-02 16:43:43.000000000 +0200
-+++ xoscope-2.0/gtkdatabox-0.6.0.0/gtk/Makefile.in	2011-09-02 16:43:57.000000000 +0200
-@@ -196,7 +196,6 @@
- 			-DG_DISABLE_DEPRECATED\
- 			-DGDK_DISABLE_DEPRECATED\
- 			-DGDK_PIXBUF_DISABLE_DEPRECATED\
--			-DGTK_DISABLE_DEPRECATED\
- 			`pkg-config gtk+-2.0 --cflags`
- 
- all: all-am
diff --git a/pkgs/applications/science/machine-learning/fasttext/default.nix b/pkgs/applications/science/machine-learning/fasttext/default.nix
index d05f93a4653a..a04ac5a6945e 100644
--- a/pkgs/applications/science/machine-learning/fasttext/default.nix
+++ b/pkgs/applications/science/machine-learning/fasttext/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "https://fasttext.cc/";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = [ maintainers.danieldk ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/applications/science/machine-learning/finalfrontier/default.nix b/pkgs/applications/science/machine-learning/finalfrontier/default.nix
index 0dd9a19c95c8..1644ca3d1433 100644
--- a/pkgs/applications/science/machine-learning/finalfrontier/default.nix
+++ b/pkgs/applications/science/machine-learning/finalfrontier/default.nix
@@ -46,6 +46,6 @@ rustPlatform.buildRustPackage rec {
     description = "Utility for training word and subword embeddings";
     homepage = "https://github.com/finalfusion/finalfrontier/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
index 4c04b3c07368..77dbbd7cdd1e 100644
--- a/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
+++ b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
@@ -50,6 +50,6 @@ rustPlatform.buildRustPackage rec {
     description = "Utility for converting, quantizing, and querying word embeddings";
     homepage = "https://github.com/finalfusion/finalfusion-utils/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
index 1ab6bfd1a2f3..d6f54497a33b 100644
--- a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gitstatus";
-  version = "1.5.2";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "gitstatus";
     rev = "v${version}";
-    sha256 = "sha256-MQG4thW73gDqY68bKP2FO8z5uc2R/tED+/X9qas/GOA=";
+    sha256 = "sha256-ZTpnT4kuntHdMWK7c/pHS6mJrAHF9T51DydXnWXj8Z0=";
   };
 
   buildInputs = [ (callPackage ./romkatv_libgit2.nix { }) ];
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index 3623dbba6b8d..0cf131508b4e 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-repo";
-  version = "2.16";
+  version = "2.16.7";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    sha256 = "sha256-F36MuqgVkKM2RCIGEGJmL3/KpZy3eDRZ7WWUE15mTfU=";
+    sha256 = "sha256-AJD+WV8JilclcMXc4RFv2xY9QZNUJtYX1dsb1q85qZ0=";
   };
 
   # Fix 'NameError: name 'ssl' is not defined'
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index fc8bee5fcb78..e0e26b804f58 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "yadm";
-  version = "3.1.0";
+  version = "3.1.1";
 
   buildInputs = [ git gnupg ];
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner  = "TheLocehiliosan";
     repo   = "yadm";
     rev    = version;
-    sha256 = "0ga0p28nvqilswa07bzi93adk7wx6d5pgxlacr9wl9v1h6cds92s";
+    sha256 = "sha256-bgiRBlqEjDq0gQ0+aUWpFDeE2piFX3Gy2gEAXgChAOk=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix b/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
index fcf53e7a1694..7698e6619d91 100644
--- a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
+++ b/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
@@ -2,11 +2,11 @@
 buildKodiAddon rec {
   pname = "inputstreamhelper";
   namespace = "script.module.inputstreamhelper";
-  version = "0.5.5+matrix.1";
+  version = "0.5.8+matrix.1";
 
   src = fetchzip {
     url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
-    sha256 = "0y4xn3ygwv1kb7gya7iwdga0g9sa89snpnram0wwqzqn8wn2lyb4";
+    sha256 = "xdsUzmz8ji9JcYLEUFWwvXq0Oig5i08VPQD93K8R9hk=";
   };
 
   passthru = {
diff --git a/pkgs/applications/video/kodi-packages/youtube/default.nix b/pkgs/applications/video/kodi-packages/youtube/default.nix
index 8e57adbfb1af..7c16aa606f24 100644
--- a/pkgs/applications/video/kodi-packages/youtube/default.nix
+++ b/pkgs/applications/video/kodi-packages/youtube/default.nix
@@ -3,11 +3,11 @@
 buildKodiAddon rec {
   pname = "youtube";
   namespace = "plugin.video.youtube";
-  version = "6.8.14+matrix.1";
+  version = "6.8.17+matrix.1";
 
   src = fetchzip {
     url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
-    sha256 = "1a18whh3fisprwipwhxf26kc958sxhwpvs8pxwq2sq96vr7b4xq7";
+    sha256 = "AuYoUyv0DDtHnxFiNl3AF5jrMjuNRXdlJvw7d7b+yh8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/virtualization/bochs/default.nix b/pkgs/applications/virtualization/bochs/default.nix
index 5f3b31870dc1..41ab5ef2c990 100644
--- a/pkgs/applications/virtualization/bochs/default.nix
+++ b/pkgs/applications/virtualization/bochs/default.nix
@@ -100,6 +100,7 @@ stdenv.mkDerivation rec {
     "--enable-sb16"
     "--enable-show-ips"
     "--enable-smp"
+    "--enable-vmx=2"
     "--enable-svm"
     "--enable-trace-linking"
     "--enable-usb"
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
index 3bcb27898cc3..05e468a73228 100644
--- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix
+++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cloud-hypervisor";
-  version = "17.0";
+  version = "18.0";
 
   src = fetchFromGitHub {
     owner = "cloud-hypervisor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1m4v12sjifd5mf1wzjwkndvxg53n7kwd35k6ql45hdpiz3f5ipig";
+    sha256 = "0k9gclkba2bhmyqhyigjgfgcnqpg16v3yczhh08ljxmbrsbs02ig";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
 
-  cargoSha256 = "11qspv061y75cyln60727x15gdn9rndi697zr9fmihnwn3dx4hvh";
+  cargoSha256 = "086ldzb1rbbrzjbklay4nvhc18ipyxi9gnp56f06393zvfbhc5dl";
 
   meta = with lib; {
     homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
diff --git a/pkgs/applications/virtualization/docker/buildx.nix b/pkgs/applications/virtualization/docker/buildx.nix
index 242d6b37d764..89afc45ba4a9 100644
--- a/pkgs/applications/virtualization/docker/buildx.nix
+++ b/pkgs/applications/virtualization/docker/buildx.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-buildx";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "buildx";
     rev = "v${version}";
-    sha256 = "sha256-X/oTL/CfMunGcS3HDoH/g1gZcJWnVU93OkcGC36KuA4=";
+    sha256 = "sha256-UKIT3PfybuQjKxxFbRQSCA8G3R2xIySWEDUKg27u5Rk=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/window-managers/awesome/default.nix b/pkgs/applications/window-managers/awesome/default.nix
index a526636063e9..90b559e7d44c 100644
--- a/pkgs/applications/window-managers/awesome/default.nix
+++ b/pkgs/applications/window-managers/awesome/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, luaPackages, cairo, librsvg, cmake, imagemagick, pkg-config, gdk-pixbuf
+{ lib, stdenv, fetchFromGitHub, lua, cairo, librsvg, cmake, imagemagick, pkg-config, gdk-pixbuf
 , xorg, libstartup_notification, libxdg_basedir, libpthreadstubs
 , xcb-util-cursor, makeWrapper, pango, gobject-introspection
 , which, dbus, nettools, git, doxygen
@@ -12,10 +12,11 @@
 # needed for beautiful.gtk to work
 assert gtk3Support -> gtk3 != null;
 
+let
+  luaEnv = lua.withPackages(ps: [ ps.lgi ps.ldoc ]);
+in
+
 stdenv.mkDerivation rec {
-  lgi = luaPackages.lgi;
-  lua = luaPackages.lua;
-  ldoc = luaPackages.ldoc;
   pname = "awesome";
   version = "4.3";
 
@@ -35,7 +36,6 @@ stdenv.mkDerivation rec {
     xmlto docbook_xml_dtd_45
     docbook_xsl findXMLCatalogs
     asciidoctor
-    ldoc
   ];
 
   outputs = [ "out" "doc" ];
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   propagatedUserEnvPkgs = [ hicolor-icon-theme ];
   buildInputs = [ cairo librsvg dbus gdk-pixbuf gobject-introspection
-                  git lgi libpthreadstubs libstartup_notification
+                  git luaEnv libpthreadstubs libstartup_notification
                   libxdg_basedir lua nettools pango xcb-util-cursor
                   xorg.libXau xorg.libXdmcp xorg.libxcb xorg.libxshmfence
                   xorg.xcbutil xorg.xcbutilimage xorg.xcbutilkeysyms
@@ -55,14 +55,14 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     #"-DGENERATE_MANPAGES=ON"
     "-DOVERRIDE_VERSION=${version}"
-  ] ++ lib.optional luaPackages.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so"
+  ] ++ lib.optional lua.pkgs.isLuaJIT "-DLUA_LIBRARY=${lua}/lib/libluajit-5.1.so"
   ;
 
   GI_TYPELIB_PATH = "${pango.out}/lib/girepository-1.0";
   # LUA_CPATH and LUA_PATH are used only for *building*, see the --search flags
   # below for how awesome finds the libraries it needs at runtime.
-  LUA_CPATH = "${lgi}/lib/lua/${lua.luaversion}/?.so";
-  LUA_PATH  = "${lgi}/share/lua/${lua.luaversion}/?.lua;;";
+  LUA_CPATH = "${luaEnv}/lib/lua/${lua.luaversion}/?.so";
+  LUA_PATH  = "${luaEnv}/share/lua/${lua.luaversion}/?.lua;;";
 
   postInstall = ''
     # Don't use wrapProgram or the wrapper will duplicate the --search
@@ -70,8 +70,8 @@ stdenv.mkDerivation rec {
     mv "$out/bin/awesome" "$out/bin/.awesome-wrapped"
     makeWrapper "$out/bin/.awesome-wrapped" "$out/bin/awesome" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-      --add-flags '--search ${lgi}/lib/lua/${lua.luaversion}' \
-      --add-flags '--search ${lgi}/share/lua/${lua.luaversion}' \
+      --add-flags '--search ${luaEnv}/lib/lua/${lua.luaversion}' \
+      --add-flags '--search ${luaEnv}/share/lua/${lua.luaversion}' \
       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH"
 
     wrapProgram $out/bin/awesome-client \
diff --git a/pkgs/build-support/rust/test/import-cargo-lock/maturin/default.nix b/pkgs/build-support/rust/test/import-cargo-lock/maturin/default.nix
index af0de596b387..f8deb4f657e0 100644
--- a/pkgs/build-support/rust/test/import-cargo-lock/maturin/default.nix
+++ b/pkgs/build-support/rust/test/import-cargo-lock/maturin/default.nix
@@ -38,6 +38,6 @@ python3.pkgs.buildPythonPackage rec {
     description = "PyO3 word count example";
     homepage = "https://github.com/PyO3/pyo3";
     license = licenses.asl20;
-    maintainers = [ maintainers.danieldk ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/build-support/substitute/substitute.nix b/pkgs/build-support/substitute/substitute.nix
new file mode 100644
index 000000000000..7f0332334585
--- /dev/null
+++ b/pkgs/build-support/substitute/substitute.nix
@@ -0,0 +1,14 @@
+{ stdenvNoCC }:
+
+args:
+
+# This is a wrapper around `substitute` in the stdenv.
+# The `replacements` attribute should be a list of list of arguments
+# to `substitute`, such as `[ "--replace" "sourcetext" "replacementtext" ]`
+stdenvNoCC.mkDerivation ({
+  name = if args ? name then args.name else baseNameOf (toString args.src);
+  builder = ./substitute.sh;
+  inherit (args) src;
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+} // args // { replacements = args.replacements; })
diff --git a/pkgs/build-support/substitute/substitute.sh b/pkgs/build-support/substitute/substitute.sh
new file mode 100644
index 000000000000..dbac275a80ed
--- /dev/null
+++ b/pkgs/build-support/substitute/substitute.sh
@@ -0,0 +1,18 @@
+source $stdenv/setup
+
+args=
+
+target=$out
+if test -n "$dir"; then
+    target=$out/$dir/$name
+    mkdir -p $out/$dir
+fi
+
+substitute $src $target $replacements
+
+if test -n "$isExecutable"; then
+    chmod +x $target
+fi
+
+eval "$postInstall"
+
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index cd12033b505f..ced17e2cc8e0 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -3,7 +3,8 @@
 }:
 
 let
-  name = "iosevka" + lib.optionalString (variant != "") "-" + variant;
+  name = if lib.hasPrefix "sgr" variant then variant
+    else "iosevka" + lib.optionalString (variant != "") "-" + variant;
 
   variantHashes = import ./variants.nix;
   validVariants = map (lib.removePrefix "iosevka-")
diff --git a/pkgs/data/themes/canta/default.nix b/pkgs/data/themes/canta/default.nix
index f0a2339b3e63..5666eded73f0 100644
--- a/pkgs/data/themes/canta/default.nix
+++ b/pkgs/data/themes/canta/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , gdk-pixbuf
 , librsvg
@@ -12,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "canta-theme";
-  version = "2021-07-06";
+  version = "2021-09-08";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "sha256-dz78h9Qq25+/i6fmw/zGlPq3DVQB3ADYwehgaWReMQ8=";
+    sha256 = "05h42nrggb6znzjcbh4lqqfcm41h4r85n3vwimp3l4lq5p90igr2";
   };
 
   nativeBuildInputs = [
@@ -57,7 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Flat Design theme for GTK based desktop environments";
     homepage = "https://github.com/vinceliuice/Canta-theme";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux; # numix-icon-theme-circle unavailable in darwin
     maintainers = [ maintainers.romildo ];
   };
diff --git a/pkgs/desktops/gnome/apps/gnome-weather/default.nix b/pkgs/desktops/gnome/apps/gnome-weather/default.nix
index 39c10e82a1c2..17e98bb2a569 100644
--- a/pkgs/desktops/gnome/apps/gnome-weather/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-weather/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-weather";
-  version = "40.0";
+  version = "40.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-weather/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "1vxfcvga5waangq3rzwdrdxyy5sw40vv0l463lc651s0n8xafd9a";
+    sha256 = "PREUTEeXxG0gaMPd9c4rwDD8oPJyzwPyGMT0baO3PE0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 8013e101913e..94b29e8b4dee 100644
--- a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extensions";
-  version = "40.3";
+  version = "40.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "nfh/qVNSAf68o9UI/b97rQFxz3ony2ZN1OPB+WxO0Es=";
+    sha256 = "9R1MQsIru9AxLKcY9Hz0Vp/FikbvQAdDrk0cx9kKzXk=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
index f3ccdbce98cb..1f92e49c4f66 100644
--- a/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -34,11 +34,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nautilus";
-  version = "40.1";
+  version = "40.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "0cwxr7bfa19dvzra81s9wfshzv0zv7ycpfffn4amigd0fh0vkkwf";
+    sha256 = "tx7y/gfl7qiaK7HlvTCUe9GIc7+zD3nL8X7fvU0g9g0=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/games/quadrapassel/default.nix b/pkgs/desktops/gnome/games/quadrapassel/default.nix
index c3724ef51058..956f9f842d3d 100644
--- a/pkgs/desktops/gnome/games/quadrapassel/default.nix
+++ b/pkgs/desktops/gnome/games/quadrapassel/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "quadrapassel";
-  version = "40.1";
+  version = "40.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "1d59sxmmmhi611hvr5jmsm276j9w20hc5yq4rk0s4d3svadyap79";
+    sha256 = "C9giQUIHxzEj7WpJ9yPaWsjdTfXTXtwJn/6i4TmcwAo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix
index 0ef2e89f123a..dac50fc781bb 100644
--- a/pkgs/development/compilers/fstar/default.nix
+++ b/pkgs/development/compilers/fstar/default.nix
@@ -17,13 +17,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "fstar";
-  version = "2021.08.27";
+  version = "2021.09.11";
 
   src = fetchFromGitHub {
     owner = "FStarLang";
     repo = "FStar";
     rev = "v${version}";
-    sha256 = "1bf5hrv2nv0ljvdf6jhk59lw1ds3j5qkkcylgxwakylw30g8rxqb";
+    sha256 = "1aqk6fx77zcb7mcm78dk4l4zzd323qiv7yc7hvc38494yf6gk8a0";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/compilers/go/1.16.nix b/pkgs/development/compilers/go/1.16.nix
index a97aa4fe80d6..f8cdf7198eef 100644
--- a/pkgs/development/compilers/go/1.16.nix
+++ b/pkgs/development/compilers/go/1.16.nix
@@ -51,11 +51,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.16.7";
+  version = "1.16.8";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "sha256-Gp8olNPYeHKfcEUHLzC+zr4kNSTPL85OCnskix4GVKw=";
+    sha256 = "sha256-jyqMJLeTN1syQ9+C/bDIOHSG3MioksocmRqpms4Ia5g=";
   };
 
   # perl is used for testing go vet
diff --git a/pkgs/development/compilers/llvm/rocm/clang.nix b/pkgs/development/compilers/llvm/rocm/clang.nix
index c2844633252e..2fac661b58a1 100644
--- a/pkgs/development/compilers/llvm/rocm/clang.nix
+++ b/pkgs/development/compilers/llvm/rocm/clang.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
     description = "ROCm fork of the clang C/C++/Objective-C/Objective-C++ LLVM compiler frontend";
     homepage = "https://llvm.org/";
     license = with licenses; [ ncsa ];
-    maintainers = with maintainers; [ acowley danieldk lovesegfault ];
+    maintainers = with maintainers; [ acowley lovesegfault ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix b/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix
index f05ff91055a5..cd277f5149d9 100644
--- a/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
     description = "ROCm fork of the LLVM Compiler runtime libraries";
     homepage = "https://github.com/RadeonOpenCompute/llvm-project";
     license = licenses.ncsa;
-    maintainers = with maintainers; [ acowley danieldk lovesegfault ];
+    maintainers = with maintainers; [ acowley lovesegfault ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/llvm/rocm/lld.nix b/pkgs/development/compilers/llvm/rocm/lld.nix
index ae153f5e0de0..2e3e1ca13d43 100644
--- a/pkgs/development/compilers/llvm/rocm/lld.nix
+++ b/pkgs/development/compilers/llvm/rocm/lld.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "ROCm fork of the LLVM Linker";
     homepage = "https://github.com/RadeonOpenCompute/llvm-project";
     license = licenses.ncsa;
-    maintainers = with maintainers; [ acowley danieldk lovesegfault ];
+    maintainers = with maintainers; [ acowley lovesegfault ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/llvm/rocm/llvm/default.nix b/pkgs/development/compilers/llvm/rocm/llvm/default.nix
index 8f1fcef5bcb9..129cc69bf6dc 100644
--- a/pkgs/development/compilers/llvm/rocm/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/rocm/llvm/default.nix
@@ -110,7 +110,7 @@ in stdenv.mkDerivation rec {
     description = "ROCm fork of the LLVM compiler infrastructure";
     homepage = "https://github.com/RadeonOpenCompute/llvm-project";
     license = with licenses; [ ncsa ];
-    maintainers = with maintainers; [ acowley danieldk lovesegfault ];
+    maintainers = with maintainers; [ acowley lovesegfault ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/interpreters/lua-5/build-lua-package.nix b/pkgs/development/interpreters/lua-5/build-lua-package.nix
index 5639b2a4bb90..64e872ad5f63 100644
--- a/pkgs/development/interpreters/lua-5/build-lua-package.nix
+++ b/pkgs/development/interpreters/lua-5/build-lua-package.nix
@@ -238,7 +238,7 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
     inherit externalDeps;
   } // passthru;
 
-  meta = with lib.maintainers; {
+  meta = {
     platforms = lua.meta.platforms;
     # add extra maintainer(s) to every package
     maintainers = (meta.maintainers or []) ++ [ ];
diff --git a/pkgs/development/interpreters/lua-5/interpreter.nix b/pkgs/development/interpreters/lua-5/interpreter.nix
index 3476b2b648b6..a780e6ba49f1 100644
--- a/pkgs/development/interpreters/lua-5/interpreter.nix
+++ b/pkgs/development/interpreters/lua-5/interpreter.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchurl, readline
 , compat ? false
 , callPackage
-, packageOverrides ? (self: super: {})
+, makeWrapper
+, packageOverrides ? (final: prev: {})
 , sourceVersion
 , hash
 , patches ? []
@@ -10,7 +11,10 @@
 , staticOnly ? stdenv.hostPlatform.isStatic
 }:
 let
-luaPackages = callPackage ../../lua-modules {lua=self; overrides=packageOverrides;};
+  luaPackages = callPackage ../../lua-modules {
+    lua = self;
+    overrides = packageOverrides;
+  };
 
 plat = if stdenv.isLinux then "linux"
        else if stdenv.isDarwin then "macosx"
@@ -31,21 +35,32 @@ self = stdenv.mkDerivation rec {
     sha256 = hash;
   };
 
-  LuaPathSearchPaths    = luaPackages.getLuaPathList luaversion;
-  LuaCPathSearchPaths   = luaPackages.getLuaCPathList luaversion;
+  LuaPathSearchPaths    = luaPackages.lib.luaPathList;
+  LuaCPathSearchPaths   = luaPackages.lib.luaCPathList;
   setupHook = luaPackages.lua-setup-hook LuaPathSearchPaths LuaCPathSearchPaths;
 
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ readline ];
 
   inherit patches;
 
-  postPatch = lib.optionalString (!stdenv.isDarwin && !staticOnly) ''
+  # we can't pass flags to the lua makefile because for portability, everything is hardcoded
+  postPatch = ''
+    {
+      echo -e '
+        #undef  LUA_PATH_DEFAULT
+        #define LUA_PATH_DEFAULT "./share/lua/${luaversion}/?.lua;./?.lua;./?/init.lua"
+        #undef  LUA_CPATH_DEFAULT
+        #define LUA_CPATH_DEFAULT "./lib/lua/${luaversion}/?.so;./?.so;./lib/lua/${luaversion}/loadall.so"
+      '
+    } >> src/luaconf.h
+  '' + lib.optionalString (!stdenv.isDarwin && !staticOnly) ''
     # Add a target for a shared library to the Makefile.
     sed -e '1s/^/LUA_SO = liblua.so/' \
         -e 's/ALL_T *= */&$(LUA_SO) /' \
         -i src/Makefile
     cat ${./lua-dso.make} >> src/Makefile
-  '';
+  '' ;
 
   # see configurePhase for additional flags (with space)
   makeFlags = [
diff --git a/pkgs/development/interpreters/lua-5/wrap-lua.nix b/pkgs/development/interpreters/lua-5/wrap-lua.nix
index f00e0d5ac336..049afcd6116d 100644
--- a/pkgs/development/interpreters/lua-5/wrap-lua.nix
+++ b/pkgs/development/interpreters/lua-5/wrap-lua.nix
@@ -4,16 +4,13 @@
 , makeWrapper
 }:
 
-with lib;
-
 # defined in trivial-builders.nix
 # imported as wrapLua in lua-packages.nix and passed to build-lua-derivation to be used as buildInput
 makeSetupHook {
-      deps = makeWrapper;
-      substitutions.executable = lua.interpreter;
-      substitutions.lua = lua;
-      substitutions.LuaPathSearchPaths = lib.escapeShellArgs lua.LuaPathSearchPaths;
-      substitutions.LuaCPathSearchPaths = lib.escapeShellArgs lua.LuaPathSearchPaths;
-
+  deps = makeWrapper;
+  substitutions.executable = lua.interpreter;
+  substitutions.lua = lua;
+  substitutions.LuaPathSearchPaths = lib.escapeShellArgs lua.LuaPathSearchPaths;
+  substitutions.LuaCPathSearchPaths = lib.escapeShellArgs lua.LuaPathSearchPaths;
 } ./wrap.sh
 
diff --git a/pkgs/development/interpreters/lua-5/wrapper.nix b/pkgs/development/interpreters/lua-5/wrapper.nix
index 0459b67534d4..b9ac255d2432 100644
--- a/pkgs/development/interpreters/lua-5/wrapper.nix
+++ b/pkgs/development/interpreters/lua-5/wrapper.nix
@@ -11,13 +11,18 @@
 let
   env = let
     paths =  requiredLuaModules (extraLibs ++ [ lua ] );
-  in (buildEnv {
+  in buildEnv {
     name = "${lua.name}-env";
 
     inherit paths;
     inherit ignoreCollisions;
     extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
 
+    nativeBuildInputs = [
+      makeWrapper
+      (lua.pkgs.lua-setup-hook lua.LuaPathSearchPaths lua.LuaCPathSearchPaths)
+    ];
+
     # we create wrapper for the binaries in the different packages
     postBuild = ''
       if [ -L "$out/bin" ]; then
@@ -37,7 +42,12 @@ let
               rm -f "$out/bin/$prg"
               if [ -x "$prg" ]; then
                 nix_debug "Making wrapper $prg"
-                makeWrapper "$path/bin/$prg" "$out/bin/$prg" --suffix LUA_PATH ';' "$LUA_PATH"   --suffix LUA_CPATH ';' "$LUA_CPATH" ${lib.concatStringsSep " " makeWrapperArgs}
+                makeWrapper "$path/bin/$prg" "$out/bin/$prg" \
+                  --set-default LUA_PATH ";;" \
+                  --suffix LUA_PATH ';' "$LUA_PATH" \
+                  --set-default LUA_CPATH ";;" \
+                  --suffix LUA_CPATH ';' "$LUA_CPATH" \
+                  ${lib.concatStringsSep " " makeWrapperArgs}
               fi
             fi
           done
@@ -62,8 +72,5 @@ let
         '';
     };
     };
-  }).overrideAttrs (_: {
-    # Add extra deps needed for postBuild hook.
-    nativeBuildInputs = [ makeWrapper lua ];
-  });
+  };
 in env
diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix
index 6a163c4b562f..ac74610bcce9 100644
--- a/pkgs/development/interpreters/luajit/default.nix
+++ b/pkgs/development/interpreters/luajit/default.nix
@@ -10,7 +10,7 @@
 , extraMeta ? { }
 , callPackage
 , self
-, packageOverrides ? (self: super: { })
+, packageOverrides ? (final: prev: {})
 , enableFFI ? true
 , enableJIT ? true
 , enableJITDebugModule ? enableJIT
@@ -62,6 +62,15 @@ stdenv.mkDerivation rec {
       # passed by nixpkgs CC wrapper is insufficient on its own
       substituteInPlace src/Makefile --replace "#CCDEBUG= -g" "CCDEBUG= -g"
     fi
+
+    {
+      echo -e '
+        #undef  LUA_PATH_DEFAULT
+        #define LUA_PATH_DEFAULT "./share/lua/${luaversion}/?.lua;./?.lua;./?/init.lua"
+        #undef  LUA_CPATH_DEFAULT
+        #define LUA_CPATH_DEFAULT "./lib/lua/${luaversion}/?.so;./?.so;./lib/lua/${luaversion}/loadall.so"
+      '
+    } >> src/luaconf.h
   '';
 
   configurePhase = false;
@@ -88,15 +97,10 @@ stdenv.mkDerivation rec {
     ln -s "$out"/bin/luajit-* "$out"/bin/luajit
   '';
 
-  LuaPathSearchPaths = [
-    "lib/lua/${luaversion}/?.lua"
-    "share/lua/${luaversion}/?.lua"
-    "share/lua/${luaversion}/?/init.lua"
-    "lib/lua/${luaversion}/?/init.lua"
-    "share/${name}/?.lua"
-  ];
-  LuaCPathSearchPaths = [ "lib/lua/${luaversion}/?.so" "share/lua/${luaversion}/?.so" ];
-  setupHook = luaPackages.lua-setup-hook LuaPathSearchPaths LuaCPathSearchPaths;
+  LuaPathSearchPaths    = luaPackages.lib.luaPathList;
+  LuaCPathSearchPaths   = luaPackages.lib.luaCPathList;
+
+  setupHook = luaPackages.lua-setup-hook luaPackages.lib.luaPathList luaPackages.lib.luaCPathList;
 
   passthru = rec {
     buildEnv = callPackage ../lua-5/wrapper.nix {
diff --git a/pkgs/development/libraries/abseil-cpp/default.nix b/pkgs/development/libraries/abseil-cpp/default.nix
index a1610ce82624..072af53757bc 100644
--- a/pkgs/development/libraries/abseil-cpp/default.nix
+++ b/pkgs/development/libraries/abseil-cpp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "abseil-cpp";
-  version = "20210324.1";
+  version = "20210324.2";
 
   src = fetchFromGitHub {
     owner = "abseil";
     repo = "abseil-cpp";
     rev = version;
-    sha256 = "16w63brfwgiayiyhvawsnr14xyy5hpp68k8fj0z6yk0bjzw6jvjw";
+    sha256 = "0g9rbhk3mwjdfxk7cscd04vm8fphd5flz9yykpgvyy1nwa34zk3x";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/civetweb/default.nix b/pkgs/development/libraries/civetweb/default.nix
index 398ca028c09c..93ac618bcacf 100644
--- a/pkgs/development/libraries/civetweb/default.nix
+++ b/pkgs/development/libraries/civetweb/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "civetweb";
-  version = "1.14";
+  version = "1.15";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6qBsM9zkN838cMtpE3+c7qcrFpZCS/Av7Ch7EWmlnD4=";
+    sha256 = "sha256-Qh6BGPk7a01YzCeX42+Og9M+fjXRs7kzNUCyT4mYab4=";
   };
 
   makeFlags = [
diff --git a/pkgs/development/libraries/dbxml/default.nix b/pkgs/development/libraries/dbxml/default.nix
index b4e74d036191..c65e7ad93eca 100644
--- a/pkgs/development/libraries/dbxml/default.nix
+++ b/pkgs/development/libraries/dbxml/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.oracle.com/database/berkeley-db/xml.html";
     description = "Embeddable XML database based on Berkeley DB";
     license = licenses.agpl3;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix
index 72c584d0fd47..4a9fce04214f 100644
--- a/pkgs/development/libraries/grpc/default.nix
+++ b/pkgs/development/libraries/grpc/default.nix
@@ -33,6 +33,13 @@ stdenv.mkDerivation rec {
       url = "https://github.com/grpc/grpc/commit/2f4cf1d9265c8e10fb834f0794d0e4f3ec5ae10e.patch";
       sha256 = "0ams3jmgh9yzwmxcg4ifb34znamr7pb4qm0609kvil9xqvkqz963";
     })
+
+    # Revert gRPC C++ Mutex to be an alias of Abseil, because it breaks dependent packages
+    (fetchpatch {
+      url = "https://github.com/grpc/grpc/commit/931f91b745cd5b2864a0d1787815871d0bd844ae.patch";
+      sha256 = "0vc93g2i4982ys4gzyaxdv9ni25yk10sxq3n7fkz8dypy8sylck7";
+      revert = true;
+    })
   ];
 
   nativeBuildInputs = [ cmake pkg-config ]
diff --git a/pkgs/development/libraries/gtkdatabox/default.nix b/pkgs/development/libraries/gtkdatabox/default.nix
index ddab0046b660..0cc510ce7313 100644
--- a/pkgs/development/libraries/gtkdatabox/default.nix
+++ b/pkgs/development/libraries/gtkdatabox/default.nix
@@ -1,22 +1,30 @@
-{ lib, stdenv, fetchurl, pkg-config, gtk2 }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, gtk3
+, pango
+, cairo
+}:
 
 stdenv.mkDerivation rec {
-  name = "gtkdatabox-0.9.3.1";
+  pname = "gtkdatabox";
+  version = "1.0.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/gtkdatabox/${name}.tar.gz";
-    sha256 = "1rdxnjgh6v3yjqgsfmamyzpfxckzchps4kqvvz88nifmd7ckhjfh";
+    url = "mirror://sourceforge/gtkdatabox/${pname}-${version}.tar.gz";
+    sha256 = "1qykm551bx8j8pfgxs60l2vhpi8lv4r8va69zvn2594lchh71vlb";
   };
 
   nativeBuildInputs = [ pkg-config ];
 
-  propagatedBuildInputs = [ gtk2 ];
+  propagatedBuildInputs = [ gtk3 pango cairo ];
 
   meta = {
     description = "GTK widget for displaying large amounts of numerical data";
-
-    license = lib.licenses.lgpl2;
-
+    homepage = "https://gtkdatabox.sourceforge.io/";
+    license = lib.licenses.lgpl2Only;
     platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ yl3dy ];
   };
 }
diff --git a/pkgs/development/libraries/liblinear/default.nix b/pkgs/development/libraries/liblinear/default.nix
index aa2dcd648b81..f30d4a2d73bd 100644
--- a/pkgs/development/libraries/liblinear/default.nix
+++ b/pkgs/development/libraries/liblinear/default.nix
@@ -42,7 +42,7 @@ in stdenv.mkDerivation rec {
     description = "A library for large linear classification";
     homepage = "https://www.csie.ntu.edu.tw/~cjlin/liblinear/";
     license = licenses.bsd3;
-    maintainers = [ maintainers.danieldk ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libsigcxx/3.0.nix b/pkgs/development/libraries/libsigcxx/3.0.nix
index edb74c807bfa..92229811207f 100644
--- a/pkgs/development/libraries/libsigcxx/3.0.nix
+++ b/pkgs/development/libraries/libsigcxx/3.0.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libsigc++";
-  version = "3.0.6";
+  version = "3.0.7";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "tw7c9GEWUcVKQm4QmxcZbh+hfaCQWSpQAOLRNMA6xc4=";
+    sha256 = "v76RwNCU6mu8bL05CbfZjGVh7qi22cDCWt2Qam6D1zM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 84590eee0b77..2d13b993fd28 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
       fetchurl
         {
           url = "https://libvirt.org/sources/${pname}-${version}.tar.xz";
-          sha256 = "sha256-l1VjqpfxBigg06SiRE4ANZ4jLahE9mJC6SrTzZ8o5kY=";
+          sha256 = "1cjj48dn4ww13ayicd2g863a5kz0sc5jlbv2991bj54dq6cn0q8v";
         }
     else
       fetchFromGitLab {
diff --git a/pkgs/development/libraries/mm-common/default.nix b/pkgs/development/libraries/mm-common/default.nix
index 7ce2675e3017..44f78daec72d 100644
--- a/pkgs/development/libraries/mm-common/default.nix
+++ b/pkgs/development/libraries/mm-common/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mm-common";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "07b4s5ckcz9q5gwx8vchim19mhfgl8wysqwi30pndks3m4zrzad2";
+    sha256 = "6BWWYliZqs8dC/J8zC/Mfzc0BexIc1yhxyc8D7zcHvU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/rocm-opencl-runtime/default.nix b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
index d5e45583c97b..f92d495a83c4 100644
--- a/pkgs/development/libraries/rocm-opencl-runtime/default.nix
+++ b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
     description = "OpenCL runtime for AMD GPUs, part of the ROCm stack";
     homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime";
     license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ acowley danieldk lovesegfault ];
+    maintainers = with maintainers; [ acowley lovesegfault ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/rocm-runtime/default.nix b/pkgs/development/libraries/rocm-runtime/default.nix
index ceaa164b867e..f7ed0107fa5e 100644
--- a/pkgs/development/libraries/rocm-runtime/default.nix
+++ b/pkgs/development/libraries/rocm-runtime/default.nix
@@ -53,6 +53,6 @@ stdenv.mkDerivation rec {
     description = "Platform runtime for ROCm";
     homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime";
     license = with licenses; [ ncsa ];
-    maintainers = with maintainers; [ danieldk lovesegfault ];
+    maintainers = with maintainers; [ lovesegfault ];
   };
 }
diff --git a/pkgs/development/libraries/science/math/amd-blis/default.nix b/pkgs/development/libraries/science/math/amd-blis/default.nix
index 1eea35a34e76..cba9c28164a3 100644
--- a/pkgs/development/libraries/science/math/amd-blis/default.nix
+++ b/pkgs/development/libraries/science/math/amd-blis/default.nix
@@ -64,7 +64,7 @@ in stdenv.mkDerivation rec {
     description = "BLAS-compatible library optimized for AMD CPUs";
     homepage = "https://developer.amd.com/amd-aocl/blas-library/";
     license = licenses.bsd3;
-    maintainers = [ maintainers.danieldk ];
+    maintainers = [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/libraries/science/math/amd-libflame/default.nix b/pkgs/development/libraries/science/math/amd-libflame/default.nix
index f17124db47bb..b28fa43a2269 100644
--- a/pkgs/development/libraries/science/math/amd-libflame/default.nix
+++ b/pkgs/development/libraries/science/math/amd-libflame/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
     description = "LAPACK-compatible linear algebra library optimized for AMD CPUs";
     homepage = "https://developer.amd.com/amd-aocl/blas-library/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/libraries/science/math/blis/default.nix b/pkgs/development/libraries/science/math/blis/default.nix
index 26659ffc1661..847d8429c92f 100644
--- a/pkgs/development/libraries/science/math/blis/default.nix
+++ b/pkgs/development/libraries/science/math/blis/default.nix
@@ -58,7 +58,7 @@ in stdenv.mkDerivation rec {
     description = "BLAS-compatible linear algebra library";
     homepage = "https://github.com/flame/blis";
     license = licenses.bsd3;
-    maintainers = [ maintainers.danieldk ];
+    maintainers = [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/libraries/science/math/libtorch/bin.nix b/pkgs/development/libraries/science/math/libtorch/bin.nix
index efbd071ecd79..712713c82be4 100644
--- a/pkgs/development/libraries/science/math/libtorch/bin.nix
+++ b/pkgs/development/libraries/science/math/libtorch/bin.nix
@@ -117,7 +117,7 @@ in stdenv.mkDerivation {
     description = "C++ API of the PyTorch machine learning framework";
     homepage = "https://pytorch.org/";
     license = licenses.unfree; # Includes CUDA and Intel MKL.
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/development/libraries/sentencepiece/default.nix b/pkgs/development/libraries/sentencepiece/default.nix
index 52747b1033b8..0f7450320d6a 100644
--- a/pkgs/development/libraries/sentencepiece/default.nix
+++ b/pkgs/development/libraries/sentencepiece/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     description = "Unsupervised text tokenizer for Neural Network-based text generation";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ danieldk pashashocky ];
+    maintainers = with maintainers; [ pashashocky ];
   };
 }
diff --git a/pkgs/development/libraries/vtk/9.x.nix b/pkgs/development/libraries/vtk/9.x.nix
index e99ba34999e7..b95bcb2b8693 100644
--- a/pkgs/development/libraries/vtk/9.x.nix
+++ b/pkgs/development/libraries/vtk/9.x.nix
@@ -1,5 +1,5 @@
 import ./generic.nix {
   majorVersion = "9.0";
-  minorVersion = "1";
-  sourceSha256 = "1ir2lq9i45ls374lcmjzw0nrm5l5hnm1w47lg8g8d0n2j7hsaf8v";
+  minorVersion = "3";
+  sourceSha256 = "vD65Ylsrjb/stgUqKrCR/JFAXeQzOw7GjzMjgVFU7Yo=";
 }
diff --git a/pkgs/development/lua-modules/default.nix b/pkgs/development/lua-modules/default.nix
index 091b94f58f51..e4927ee30464 100644
--- a/pkgs/development/lua-modules/default.nix
+++ b/pkgs/development/lua-modules/default.nix
@@ -1,7 +1,7 @@
 # inspired by pkgs/development/haskell-modules/default.nix
 { pkgs, lib
 , lua
-, overrides ? (self: super: {})
+, overrides ? (final: prev: {})
 }:
 
 let
@@ -15,7 +15,7 @@ let
   overridenPackages = import ./overrides.nix { inherit pkgs; };
 
   generatedPackages = if (builtins.pathExists ./generated-packages.nix) then
-        pkgs.callPackage ./generated-packages.nix { } else (self: super: {});
+        pkgs.callPackage ./generated-packages.nix { } else (final: prev: {});
 
   extensible-self = lib.makeExtensible
     (extends overrides
@@ -24,7 +24,6 @@ let
               initialPackages
               )
           )
-    )
-          ;
+    );
 in
   extensible-self
diff --git a/pkgs/development/lua-modules/lib.nix b/pkgs/development/lua-modules/lib.nix
new file mode 100644
index 000000000000..9c31f9a5c53c
--- /dev/null
+++ b/pkgs/development/lua-modules/lib.nix
@@ -0,0 +1,63 @@
+{ pkgs, lib, lua }:
+let
+  requiredLuaModules = drvs: with lib; let
+    modules =  filter hasLuaModule drvs;
+  in unique ([lua] ++ modules ++ concatLists (catAttrs "requiredLuaModules" modules));
+  # Check whether a derivation provides a lua module.
+  hasLuaModule = drv: drv ? luaModule;
+in
+rec {
+  inherit hasLuaModule requiredLuaModules;
+
+  luaPathList = [
+    "share/lua/${lua.luaversion}/?.lua"
+    "share/lua/${lua.luaversion}/?/init.lua"
+  ];
+  luaCPathList = [
+    "lib/lua/${lua.luaversion}/?.so"
+  ];
+
+  /* generate paths without a prefix
+  */
+  luaPathRelStr = lib.concatStringsSep ";" luaPathList;
+  luaCPathRelStr = lib.concatStringsSep ";" luaCPathList;
+
+  /* generate LUA_(C)PATH value for a specific derivation, i.e., with absolute paths
+  */
+  genLuaPathAbsStr = drv: lib.concatMapStringsSep ";" (x: "${drv}/${x}") luaPathList;
+  genLuaCPathAbsStr = drv: lib.concatMapStringsSep ";" (x: "${drv}/${x}") luaCPathList;
+
+  /* Generate a LUA_PATH with absolute paths
+  */
+  # genLuaPathAbs = drv:
+  #   lib.concatStringsSep ";" (map (x: "${drv}/x") luaPathList);
+
+  luaAtLeast = lib.versionAtLeast lua.luaversion;
+  luaOlder = lib.versionOlder lua.luaversion;
+  isLua51 = (lib.versions.majorMinor lua.version) == "5.1";
+  isLua52 = (lib.versions.majorMinor lua.version) == "5.2";
+  isLua53 = lua.luaversion == "5.3";
+  isLuaJIT = lib.getName lua == "luajit";
+
+  /* generates the relative path towards the folder where
+   seems stable even when using  lua_modules_path = ""
+
+   Example:
+    getDataFolder luaPackages.stdlib
+    => stdlib-41.2.2-1-rocks/stdlib/41.2.2-1/doc
+  */
+  getDataFolder = drv:
+    "${drv.pname}-${drv.version}-rocks/${drv.pname}/${drv.version}";
+
+  /* Convert derivation to a lua module.
+    so that luaRequireModules can be run later
+  */
+  toLuaModule = drv:
+    drv.overrideAttrs( oldAttrs: {
+      # Use passthru in order to prevent rebuilds when possible.
+      passthru = (oldAttrs.passthru or {}) // {
+        luaModule = lua;
+        requiredLuaModules = requiredLuaModules drv.propagatedBuildInputs;
+      };
+    });
+}
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index a15bd6e53663..247cf89f3945 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -363,6 +363,12 @@ with super;
     '';
   });
 
+  # TODO just while testing, remove afterwards
+  # toVimPlugin should do it instead
+  gitsigns-nvim = super.gitsigns-nvim.overrideAttrs(oa: {
+    nativeBuildInputs = oa.nativeBuildInputs or [] ++ [ pkgs.vimUtils.vimGenDocHook ];
+  });
+
   # aliases
   cjson = super.lua-cjson;
 }
diff --git a/pkgs/development/python-modules/Markups/default.nix b/pkgs/development/python-modules/Markups/default.nix
index d997b120d3bf..bacfe95a9a13 100644
--- a/pkgs/development/python-modules/Markups/default.nix
+++ b/pkgs/development/python-modules/Markups/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "Markups";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e309d79dde0935576ce1def6752f2127a12e2c2ea2ae8b0c69f99ff8bc12181d";
+    sha256 = "2954d53656d9ec84f2f6c077e91a1de534e05647f20d327757283bbb5a857770";
   };
 
   checkInputs = [ markdown docutils pygments pyyaml ];
diff --git a/pkgs/development/python-modules/asyncssh/default.nix b/pkgs/development/python-modules/asyncssh/default.nix
index 160a90a0e6d0..5afd91f52f3e 100644
--- a/pkgs/development/python-modules/asyncssh/default.nix
+++ b/pkgs/development/python-modules/asyncssh/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "asyncssh";
-  version = "2.7.0";
+  version = "2.7.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-GFAT2OZ3R8PA8BtyQWuL14QX2h30jHH3baU8YH71QbY=";
+    sha256 = "8c8852eb00a09e45c403086e10965cb6d13e5cd203a1688d91e9c81aa080d052";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
index c7aa05d25bd2..98e4a0e849ad 100644
--- a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-keyvault";
-  version = "9.0.0";
+  version = "9.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "2890c489289b8a0bf833852014f2f494eb96873834896910ddfa58cfa97b90da";
+    sha256 = "cd35e81c4a3cf812ade4bdcf1f7ccf4b5b78a801ef967340012a6ac9fe61ded2";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index 06f0ae30aff6..dea350699952 100644
--- a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.0.0";
+  version = "5.0.0";
   pname = "azure-mgmt-netapp";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7195e413a0764684cd42bec9e429c13c290db9ab5c465dbed586a6f6d0ec8a42";
+    sha256 = "2d5163c49f91636809ef1cacd48d91130803594855f43afe0f2b31fc5f02d53c";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix b/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
index 75e77c594008..59f3e7189f95 100644
--- a/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-rdbms";
-  version = "9.0.0";
+  version = "9.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "36a508fe40f904723485586e9088092e6f65cdb82bc86efc42d615499c256829";
+    sha256 = "f738d9e6db8f6da6bb4e84e59dd0548c8adef948357a447337e78d1035ac960a";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-relay/default.nix b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
index 9b7444a6ecb1..71cdfe6e4c6f 100644
--- a/pkgs/development/python-modules/azure-mgmt-relay/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-relay";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "38f6dd9d122a316efa921e72933e01ec4d76ed39d4682655b17a997079e8b20a";
+    sha256 = "c93b7550e64b6734bf23ce57ca974a3ea929b734c58d1fe3669728c4fd2d2eb3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-resource/default.nix b/pkgs/development/python-modules/azure-mgmt-resource/default.nix
index 3683a70ac1a9..5166c8ead8e4 100644
--- a/pkgs/development/python-modules/azure-mgmt-resource/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-resource/default.nix
@@ -8,14 +8,14 @@
 
 
 buildPythonPackage rec {
-  version = "19.0.0";
+  version = "20.0.0";
   pname = "azure-mgmt-resource";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "bbb60bb9419633c2339569d4e097908638c7944e782b5aef0f5d9535085a9100";
+    sha256 = "622dca4484be64f9f5ce335d327dffabf3e71e14e8a3f4a1051dc85a5c3ebbca";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix b/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
index 661a507291d1..42cd78d285c2 100644
--- a/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-servicefabric";
-  version = "1.0.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "de35e117912832c1a9e93109a8d24cab94f55703a9087b2eb1c5b0655b3b1913";
+    sha256 = "4c6f3de2526a27af78aecae248604f941c4d059fbcf2265912a380e3c788735d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-web/default.nix b/pkgs/development/python-modules/azure-mgmt-web/default.nix
index 9fc5abe968bd..1c9cb2e94570 100644
--- a/pkgs/development/python-modules/azure-mgmt-web/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-web/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-web";
-  version = "4.0.0";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e57437a933e7dea9b0618fe790e0dadc63f9857735361ac8b5f5e8062b9c2a0d";
+    sha256 = "0b10542600cd268d6369681c3367373a925eedcda5414eacbd3fbc9a0bdf1f24";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-servicebus/default.nix b/pkgs/development/python-modules/azure-servicebus/default.nix
index 611508b42450..99ff8bbb4e68 100644
--- a/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "7.3.2";
+  version = "7.3.3";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "6c9bef0bfb4ac2bb8158fdfb3938884cd42542be3162ac288fa8df4e254d3810";
+    sha256 = "1c2133909a086bd4329135d6affcc05628e3a7da27afca584a0de8c21fc4e1ac";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/blocksat-cli/default.nix b/pkgs/development/python-modules/blocksat-cli/default.nix
index 1445c2046fb0..624d4f490e3c 100644
--- a/pkgs/development/python-modules/blocksat-cli/default.nix
+++ b/pkgs/development/python-modules/blocksat-cli/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "blocksat-cli";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06ky5kahh8dm1d7ckid3fdwizvkh3g4aycm39r00kwxdlfca7bgf";
+    sha256 = "sha256-g/V1//Jo8wnoOHEotF2ElVm+vzTIwZ6EzssJg6WJw6g=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/datasets/default.nix b/pkgs/development/python-modules/datasets/default.nix
index 27ee2ebedcf9..0c1b8137bc98 100644
--- a/pkgs/development/python-modules/datasets/default.nix
+++ b/pkgs/development/python-modules/datasets/default.nix
@@ -53,6 +53,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/huggingface/datasets/releases/tag/${version}";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/dawg-python/default.nix b/pkgs/development/python-modules/dawg-python/default.nix
index ba9c298a2e82..f8da613d98bc 100644
--- a/pkgs/development/python-modules/dawg-python/default.nix
+++ b/pkgs/development/python-modules/dawg-python/default.nix
@@ -19,6 +19,6 @@ buildPythonPackage rec {
     description = "Pure Python reader for DAWGs created by dawgdic C++ library or DAWG Python extension";
     homepage = "https://github.com/pytries/DAWG-Python";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/django-mailman3/default.nix b/pkgs/development/python-modules/django-mailman3/default.nix
index 7e99d22693fc..4f4304fd1d6c 100644
--- a/pkgs/development/python-modules/django-mailman3/default.nix
+++ b/pkgs/development/python-modules/django-mailman3/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "django-mailman3";
-  version = "1.3.5";
+  version = "1.3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "368595b3c2623edeaca5beea5f12887424c384edd6f7052cf442443075084313";
+    sha256 = "cd3cb1ac26a3658bd694b82f00eaab98903bd2edff34956e90c187c9ab5c0dae";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dpath/default.nix b/pkgs/development/python-modules/dpath/default.nix
index 387dbfa1f64d..bfbeeaea0070 100644
--- a/pkgs/development/python-modules/dpath/default.nix
+++ b/pkgs/development/python-modules/dpath/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "dpath";
-  version = "2.0.3";
+  version = "2.0.4";
 
   disabled = isPy27; # uses python3 imports
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-p6icMudH3zqfKkRrt5dHLjWb66UzlRW3pvZbIzsqMac=";
+    sha256 = "0qjaa4sjw0m4b91mm18074wpkhir3xx7s87qwckmzpfb165gk837";
   };
 
   # use pytest as nosetests hangs
diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix
index 7406e6dc21b3..91317eb9f093 100644
--- a/pkgs/development/python-modules/dropbox/default.nix
+++ b/pkgs/development/python-modules/dropbox/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "11.18.0";
+  version = "11.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fa512c87521809e93502fc6a27b1d57ffbcef2281468c8f93575eab6a9ad5f05";
+    sha256 = "a56d200c47d7cd19f697e232a616342b224079f43abf4748bc55fb0c1de4346f";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/fasttext/default.nix b/pkgs/development/python-modules/fasttext/default.nix
index f3bddec76bd3..e478b3f9a4b6 100644
--- a/pkgs/development/python-modules/fasttext/default.nix
+++ b/pkgs/development/python-modules/fasttext/default.nix
@@ -17,6 +17,6 @@ buildPythonPackage rec {
     description = "Python module for text classification and representation learning";
     homepage = "https://fasttext.cc/";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/finalfusion/default.nix b/pkgs/development/python-modules/finalfusion/default.nix
index 62287487e3b7..379ed954dae0 100644
--- a/pkgs/development/python-modules/finalfusion/default.nix
+++ b/pkgs/development/python-modules/finalfusion/default.nix
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module for using finalfusion, word2vec, and fastText word embeddings";
     homepage = "https://github.com/finalfusion/finalfusion-python/";
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
     license = licenses.blueOak100;
   };
diff --git a/pkgs/development/python-modules/flexmock/default.nix b/pkgs/development/python-modules/flexmock/default.nix
index a5382c04b006..6061f04d627b 100644
--- a/pkgs/development/python-modules/flexmock/default.nix
+++ b/pkgs/development/python-modules/flexmock/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "flexmock";
-  version = "0.10.8";
+  version = "0.10.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6820031c39b298646194a3f0b2b693322bb7f44b39dbaf1c54b0ae68b3d768fa";
+    sha256 = "9c128b7cf31fac5340062c9c2cf1e0b12c601ee2d5c10ef39cc191036fb2e688";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/flynt/default.nix b/pkgs/development/python-modules/flynt/default.nix
new file mode 100644
index 000000000000..3c09106c94b8
--- /dev/null
+++ b/pkgs/development/python-modules/flynt/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, astor
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "flynt";
+  version = "0.66";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "ikamensh";
+    repo = "flynt";
+    rev = version;
+    hash = "sha256-DV433wqLjF5k4g8J7rj5gZfaw+Y4/TDOoFKo3eKDjZ4=";
+  };
+
+  propagatedBuildInputs = [ astor ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "command line tool to automatically convert a project's Python code from old format style strings into Python 3.6+'s f-strings";
+    homepage = "https://github.com/ikamensh/flynt";
+    license = licenses.mit;
+    maintainers = with maintainers; [ cpcloud ];
+  };
+}
diff --git a/pkgs/development/python-modules/growattserver/default.nix b/pkgs/development/python-modules/growattserver/default.nix
index 02c8bce05a27..18d6cd4dabb1 100644
--- a/pkgs/development/python-modules/growattserver/default.nix
+++ b/pkgs/development/python-modules/growattserver/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "growattserver";
-  version = "1.0.2";
+  version = "1.1.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "indykoning";
     repo = "PyPi_GrowattServer";
     rev = version;
-    sha256 = "sha256-0i7pMJ4gAVOkvj2uYZJygr3rehgIAfyxq9cWbozwRIQ=";
+    sha256 = "sha256-Vooy+czqhrsWVw35zJb5paC5G0WwOlI5hF8PXxJG0cY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index 0fce65f2b8bd..d5db12bd2d94 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -34,6 +34,6 @@ buildPythonPackage rec {
     description = "Download and publish models and other files on the huggingface.co hub";
     changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index bf671fcb1bac..86f435bc8f3d 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.16.1";
+  version = "1.16.2";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-R/RKMxSilv8JJW5om+l99vvrZYHjEEK1OCdsYWuxA74=";
+    sha256 = "sha256-QTisaO0LNjZ+dltHCqyWDQDNCGTqc8woMSwqsoyfhbk=";
   };
 
   propagatedBuildInputs = [ ruamel_yaml xmltodict pygments ];
diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix
index e9c12548269f..f9535ac0f31f 100644
--- a/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/pkgs/development/python-modules/mitmproxy/default.nix
@@ -45,14 +45,14 @@
 
 buildPythonPackage rec {
   pname = "mitmproxy";
-  version = "6.0.2";
+  version = "7.0.2";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FyIZKFQtf6qvwo4+NzPa/KOmBCcdGJ3jCqxz26+S2e4=";
+    sha256 = "0y5zsay9b6xgibs6m4gckw63jip35vsdfajsh1nw2zcb2xs1a7qs";
   };
 
   propagatedBuildInputs = [
@@ -112,6 +112,9 @@ buildPythonPackage rec {
   disabledTests = [
     # Tests require a git repository
     "test_get_version"
+    # https://github.com/mitmproxy/mitmproxy/commit/36ebf11916704b3cdaf4be840eaafa66a115ac03
+    # Tests require terminal
+    "test_integration"
   ];
 
   pythonImportsCheck = [ "mitmproxy" ];
diff --git a/pkgs/development/python-modules/mutf8/default.nix b/pkgs/development/python-modules/mutf8/default.nix
index 4e456715266d..ce783bbb5ff9 100644
--- a/pkgs/development/python-modules/mutf8/default.nix
+++ b/pkgs/development/python-modules/mutf8/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "mutf8";
-  version = "1.0.4";
+  version = "1.0.5";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "TkTech";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-99NL4mCvzQmDvaOI2M9PA8UUwIrrEtVHRmJqkd6hNd0=";
+    sha256 = "0blp6gb7q3f7if326xard8zlfg2rcmb3a7mxvaxgkvxigipjb9af";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/numcodecs/default.nix b/pkgs/development/python-modules/numcodecs/default.nix
index 26e1d7304184..04e4cd77baf2 100644
--- a/pkgs/development/python-modules/numcodecs/default.nix
+++ b/pkgs/development/python-modules/numcodecs/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "numcodecs";
-  version = "0.9.0";
+  version = "0.9.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3c23803671a3d920efa175af5828870bdff60ba2a3fcbf1d5b48bb81d68219c6";
+    sha256 = "35adbcc746b95e3ac92e949a161811f5aa2602b9eb1ef241b5ea6f09bb220997";
   };
 
   nativeBuildInputs = [
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib;{
-    homepage = "https://github.com/alimanfoo/numcodecs";
+    homepage = "https://github.com/zarr-developers/numcodecs";
     license = licenses.mit;
     description = "Buffer compression and transformation codecs for use in data storage and communication applications";
     maintainers = [ maintainers.costrouc ];
diff --git a/pkgs/development/python-modules/openrazer/common.nix b/pkgs/development/python-modules/openrazer/common.nix
index 985d4e199e18..5db17a83e8f3 100644
--- a/pkgs/development/python-modules/openrazer/common.nix
+++ b/pkgs/development/python-modules/openrazer/common.nix
@@ -1,12 +1,12 @@
 { lib
 , fetchFromGitHub
 }: rec {
-  version = "3.0.1";
+  version = "3.1.0";
   src = fetchFromGitHub {
     owner = "openrazer";
     repo = "openrazer";
     rev = "v${version}";
-    sha256 = "sha256-ptB0jP0kp1Liynkfz0B0OMw6xNQG1s8IvxhgNAdEytM=";
+    sha256 = "133szhi0xsfbnjw47xbvyidflxd8fp7pv78vk5wf9s5ch3hpnvxs";
   };
   meta = with lib; {
     homepage = "https://openrazer.github.io/";
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index 92282d2eb46d..96eaa96aef85 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.48";
+  version = "2.1.49";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5f6a489075c5bbecdb36a42249cd52cfd882e205242f80a1f1e2294951ab46e7";
+    sha256 = "af536388eeede93111d8ef0af4a80cbb3d847c1a1470c6f34f3abe83deac1b91";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyglet/default.nix b/pkgs/development/python-modules/pyglet/default.nix
index b530dfe0b5b1..66129553b736 100644
--- a/pkgs/development/python-modules/pyglet/default.nix
+++ b/pkgs/development/python-modules/pyglet/default.nix
@@ -18,13 +18,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.19";
+  version = "1.5.20";
   pname = "pyglet";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-/kuh2RboWWoOs4KX0PyhNlYgKI8q2SyiWvMJvprg/8w=";
+    sha256 = "ce76ce598ac910fbae6aae0db00aac21d19d62bdc8c616ed6e6a6a395dc44513";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/pymorphy2/default.nix b/pkgs/development/python-modules/pymorphy2/default.nix
index 8c00975d08bf..5195840c3119 100644
--- a/pkgs/development/python-modules/pymorphy2/default.nix
+++ b/pkgs/development/python-modules/pymorphy2/default.nix
@@ -30,6 +30,6 @@ buildPythonPackage rec {
     description = "Morphological analyzer/inflection engine for Russian and Ukrainian";
     homepage = "https://github.com/kmike/pymorphy2";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pymorphy2/dicts-ru.nix b/pkgs/development/python-modules/pymorphy2/dicts-ru.nix
index bee9dd492479..ac1f9f980bef 100644
--- a/pkgs/development/python-modules/pymorphy2/dicts-ru.nix
+++ b/pkgs/development/python-modules/pymorphy2/dicts-ru.nix
@@ -18,6 +18,6 @@ buildPythonPackage rec {
     description = "Russian dictionaries for pymorphy2";
     homepage = "https://github.com/kmike/pymorphy2-dicts/";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pytorch/bin.nix b/pkgs/development/python-modules/pytorch/bin.nix
index 288af6f7efca..593635ab42f8 100644
--- a/pkgs/development/python-modules/pytorch/bin.nix
+++ b/pkgs/development/python-modules/pytorch/bin.nix
@@ -67,6 +67,6 @@ in buildPythonPackage {
     changelog = "https://github.com/pytorch/pytorch/releases/tag/v${version}";
     license = licenses.unfree; # Includes CUDA and Intel MKL.
     platforms = platforms.linux;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix
index 0de0015ab1ec..05f88ca64721 100644
--- a/pkgs/development/python-modules/pytorch/default.nix
+++ b/pkgs/development/python-modules/pytorch/default.nix
@@ -304,6 +304,8 @@ in buildPythonPackage rec {
   passthru = {
     inherit cudaSupport;
     cudaArchList = final_cudaArchList;
+    # At least for 1.9.0 `torch.fft` is unavailable unless BLAS provider is MKL. This attribute allows for easy detection of its availability.
+    blasProvider = blas.provider;
   };
 
   meta = with lib; {
@@ -311,7 +313,7 @@ in buildPythonPackage rec {
     homepage    = "https://pytorch.org/";
     license     = licenses.bsd3;
     platforms   = with platforms; linux ++ lib.optionals (!cudaSupport) darwin;
-    maintainers = with maintainers; [ danieldk teh thoughtpolice tscholak ]; # tscholak esp. for darwin-related builds
+    maintainers = with maintainers; [ teh thoughtpolice tscholak ]; # tscholak esp. for darwin-related builds
     # error: use of undeclared identifier 'noU'; did you mean 'no'?
     broken = stdenv.isDarwin;
   };
diff --git a/pkgs/development/python-modules/relatorio/default.nix b/pkgs/development/python-modules/relatorio/default.nix
index 9e673de92669..597eb37c7560 100644
--- a/pkgs/development/python-modules/relatorio/default.nix
+++ b/pkgs/development/python-modules/relatorio/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "relatorio";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d5d08f5323a1cdf6d860cd13c3408482a822d9924899927a8c7cd2ebeaa8699";
+    sha256 = "6b9390eab696bdf569639ff58794fb9ef8ff19f94feea5b505a6ba06d0cfd026";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/scp/default.nix b/pkgs/development/python-modules/scp/default.nix
index a177d22f5d4f..cba6ddc0acf6 100644
--- a/pkgs/development/python-modules/scp/default.nix
+++ b/pkgs/development/python-modules/scp/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "scp";
-  version = "0.13.6";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-CnL514LpaLCbEU1WB/lrHxb+mUKFevs1U5nt1VNy/PE=";
+    sha256 = "ddbdb3ef8c068aa1fd37a5fa65a122a80673c9fd73fdc5668a4604f99ccf5943";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/setuptools-rust/default.nix b/pkgs/development/python-modules/setuptools-rust/default.nix
index f7cc04c4eebc..81276f4e338d 100644
--- a/pkgs/development/python-modules/setuptools-rust/default.nix
+++ b/pkgs/development/python-modules/setuptools-rust/default.nix
@@ -23,17 +23,16 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ semantic-version setuptools toml ];
 
-  # no tests
   doCheck = false;
   pythonImportsCheck = [ "setuptools_rust" ];
 
-  passthru.tests.pyo3 = callPackage ./pyo3-test {};
+  passthru.tests.pyo3 = callPackage ./pyo3-test { };
 
   meta = with lib; {
     description = "Setuptools plugin for Rust support";
     homepage = "https://github.com/PyO3/setuptools-rust";
     changelog = "https://github.com/PyO3/setuptools-rust/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/somajo/default.nix b/pkgs/development/python-modules/somajo/default.nix
index 6027df2be521..5d17a907caeb 100644
--- a/pkgs/development/python-modules/somajo/default.nix
+++ b/pkgs/development/python-modules/somajo/default.nix
@@ -21,6 +21,6 @@ buildPythonPackage rec {
     description = "Tokenizer and sentence splitter for German and English web texts";
     homepage = "https://github.com/tsproisl/SoMaJo";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/spacy-alignments/default.nix b/pkgs/development/python-modules/spacy-alignments/default.nix
index 0ac1edfd5034..32506c2d9e74 100644
--- a/pkgs/development/python-modules/spacy-alignments/default.nix
+++ b/pkgs/development/python-modules/spacy-alignments/default.nix
@@ -55,6 +55,6 @@ buildPythonPackage rec {
     description = "Align tokenizations for spaCy and transformers";
     homepage = "https://github.com/explosion/spacy-alignments";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/spacy-pkuseg/default.nix b/pkgs/development/python-modules/spacy-pkuseg/default.nix
index 670174a057e9..969338d41062 100644
--- a/pkgs/development/python-modules/spacy-pkuseg/default.nix
+++ b/pkgs/development/python-modules/spacy-pkuseg/default.nix
@@ -33,6 +33,6 @@ buildPythonPackage rec {
     description = "Toolkit for multi-domain Chinese word segmentation (spaCy fork)";
     homepage = "https://github.com/explosion/spacy-pkuseg";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/spacy-transformers/default.nix b/pkgs/development/python-modules/spacy-transformers/default.nix
index 1d02460167bf..c13ca4072074 100644
--- a/pkgs/development/python-modules/spacy-transformers/default.nix
+++ b/pkgs/development/python-modules/spacy-transformers/default.nix
@@ -37,6 +37,6 @@ buildPythonPackage rec {
     description = "spaCy pipelines for pretrained BERT, XLNet and GPT-2";
     homepage = "https://github.com/explosion/spacy-transformers";
     license = licenses.mit;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix
index 7813797a2f31..d5d26050eeeb 100644
--- a/pkgs/development/python-modules/tokenizers/default.nix
+++ b/pkgs/development/python-modules/tokenizers/default.nix
@@ -115,6 +115,6 @@ in buildPythonPackage rec {
     description = "Fast State-of-the-Art Tokenizers optimized for Research and Production";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/torchvision/bin.nix b/pkgs/development/python-modules/torchvision/bin.nix
index 62980dcca8c4..ce91599da992 100644
--- a/pkgs/development/python-modules/torchvision/bin.nix
+++ b/pkgs/development/python-modules/torchvision/bin.nix
@@ -54,6 +54,6 @@ in buildPythonPackage {
     changelog = "https://github.com/pytorch/vision/releases/tag/v${version}";
     license = licenses.bsd3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index c5bd0ad11145..9c9490bd8853 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -55,6 +55,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ danieldk pashashocky ];
+    maintainers = with maintainers; [ pashashocky ];
   };
 }
diff --git a/pkgs/development/python-modules/wordfreq/default.nix b/pkgs/development/python-modules/wordfreq/default.nix
index 6aa8599653b1..72a2f013928d 100644
--- a/pkgs/development/python-modules/wordfreq/default.nix
+++ b/pkgs/development/python-modules/wordfreq/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "wordfreq";
-  version = "2.5";
+  version = "2.5.1";
   disabled = isPy27;
 
    src = fetchFromGitHub {
     owner = "LuminosoInsight";
     repo = "wordfreq";
     rev = "v${version}";
-    sha256 = "09wzraddbdw3781pk2sxlz8knax9jrcl24ymz54wx6sk0gvq95i7";
+    sha256 = "1lw7kbsydd89hybassnnhqnj9s5ch9wvgd6pla96198nrq9mj7fw";
    };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/tools/azcopy/default.nix b/pkgs/development/tools/azcopy/default.nix
index 06bff61fcdd1..e2a20da68da0 100644
--- a/pkgs/development/tools/azcopy/default.nix
+++ b/pkgs/development/tools/azcopy/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "azure-storage-azcopy";
-  version = "10.11.0";
+  version = "10.12.1";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-storage-azcopy";
     rev = "v${version}";
-    sha256 = "sha256-mti93UDFgHQKJt3z1sjCkT71TZtwh2YnhTyUCi5tS5c=";
+    sha256 = "sha256-kujY7Qgis2pie0WVQAokVopD3TYkjjBnqhw6XZTG16o=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-NEW1qXOxFPmDFUTciJkqwutZd3+sVkHgoZgQO8Gsdwk=";
+  vendorSha256 = "sha256-4Jz57VjdQX+LJexEZau4pd8nIQPt0HGzCjHRj7uPox4=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index 3512c1bf087c..2c37a5281b73 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.42.0";
+  version = "1.42.1";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "sha256-xwJZfWDtA/6HkYZmGyhL/44xU8qLmJ2kk3Uqft0yivE=";
+    sha256 = "sha256-lhpljK4odn+j+Cb3sp1/cMnBRrLNhWxVoRIO2PDqMHo=";
   };
 
-  vendorSha256 = "sha256-lOVGyxQcWG99hO+Eff2cNA5gW4DhsDrBY5Ejj0s4v4Q=";
+  vendorSha256 = "sha256-Z4lNGWLKagKHbVOy6MiKyuSlXwUCYlkvnvk5zS4vl1A=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/gops/default.nix b/pkgs/development/tools/gops/default.nix
index bc9cba9df5f7..83da3588b275 100644
--- a/pkgs/development/tools/gops/default.nix
+++ b/pkgs/development/tools/gops/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gops";
-  version = "0.3.19";
+  version = "0.3.20";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "gops";
     rev = "v${version}";
-    sha256 = "sha256-9QEhc0OVCrIdIY220PDn2+CjUsCF84l6QRQS0HjDEZY=";
+    sha256 = "sha256-eHcCi9D5TpRWxC39SnOD2GW3qyNBR69bHb8f/Gb+qAI=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/rust/cargo-asm/default.nix b/pkgs/development/tools/rust/cargo-asm/default.nix
index cd657967e9a0..68d5a256bbf4 100644
--- a/pkgs/development/tools/rust/cargo-asm/default.nix
+++ b/pkgs/development/tools/rust/cargo-asm/default.nix
@@ -23,6 +23,6 @@ rustPlatform.buildRustPackage rec {
     description = "Display the assembly or LLVM-IR generated for Rust source code";
     homepage = "https://github.com/gnzlbg/cargo-asm";
     license = licenses.mit;
-    maintainers = [ maintainers.danieldk ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/tools/rust/maturin/default.nix b/pkgs/development/tools/rust/maturin/default.nix
index 5ab47c8aa8de..deb68d7d00b8 100644
--- a/pkgs/development/tools/rust/maturin/default.nix
+++ b/pkgs/development/tools/rust/maturin/default.nix
@@ -44,6 +44,6 @@ rustPlatform.buildRustPackage rec {
     '';
     homepage = "https://github.com/PyO3/maturin";
     license = licenses.asl20;
-    maintainers = [ maintainers.danieldk ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix b/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix
index a5713d944a80..547f11125b70 100644
--- a/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix
+++ b/pkgs/development/tools/rust/maturin/pyo3-test/generic.nix
@@ -40,6 +40,6 @@ python.pkgs.buildPythonPackage rec {
     description = "PyO3 word count example";
     homepage = "https://github.com/PyO3/pyo3";
     license = licenses.asl20;
-    maintainers = [ maintainers.danieldk ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/tools/sslmate/default.nix b/pkgs/development/tools/sslmate/default.nix
index ede6364fa067..2371600a7f4f 100644
--- a/pkgs/development/tools/sslmate/default.nix
+++ b/pkgs/development/tools/sslmate/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sslmate";
-  version = "1.7.1";
+  version = "1.8.0";
 
   src = fetchurl {
     url = "https://packages.sslmate.com/other/${pname}-${version}.tar.gz";
-    sha256 = "1i56za41cfqlml9g787xqqs0r8jifd3y7ks9nf4k2dhhi4rijkj5";
+    sha256 = "sha256-A1TkGi6b1psWflN0ogM1r/pYSVXcOi6aQEb6xtOsAsk=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/games/airshipper/default.nix b/pkgs/games/airshipper/default.nix
new file mode 100644
index 000000000000..1fe33a86f978
--- /dev/null
+++ b/pkgs/games/airshipper/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, rustPlatform
+, fetchFromGitLab
+, openssl
+, vulkan-loader
+, wayland
+, wayland-protocols
+, libxkbcommon
+, libX11
+, libXrandr
+, libXi
+, libXcursor
+, pkg-config
+, makeWrapper
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "airshipper";
+  version = "0.6.0";
+
+  src = fetchFromGitLab {
+    owner = "Veloren";
+    repo = "airshipper";
+    rev = "v${version}";
+    sha256 = "sha256-m3H2FE1DoV/uk9PGgf9PCagwmWWSQO/gCi7zpS02/WY=";
+  };
+
+  cargoSha256 = "sha256-ddy4TjT/ia+sLBnpwcXBVUzAS07ar+Jjc04KS5/arlU=";
+
+  buildInputs = [
+    openssl
+    wayland
+    wayland-protocols
+    libxkbcommon
+    libX11
+    libXrandr
+    libXi
+    libXcursor
+  ];
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+
+  postInstall = ''
+    mkdir -p "$out/share/applications" && mkdir -p "$out/share/icons"
+    cp "client/assets/net.veloren.airshipper.desktop" "$out/share/applications"
+    cp "client/assets/logo.ico" "$out/share/icons/net.veloren.airshipper.ico"
+  '';
+
+  postFixup =
+    let
+      libPath = lib.makeLibraryPath [
+        vulkan-loader
+        wayland
+        wayland-protocols
+        libxkbcommon
+        libX11
+        libXrandr
+        libXi
+        libXcursor
+      ];
+    in ''
+      patchelf --set-rpath "${libPath}" "$out/bin/airshipper"
+    '';
+
+  doCheck = false;
+  cargoBuildFlags = [ "--package" "airshipper" ];
+  cargoTestFlags = [ "--package" "airshipper" ];
+
+  meta = with lib; {
+    description = "Provides automatic updates for the voxel RPG Veloren.";
+    homepage = "https://www.veloren.net";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ yusdacra ];
+  };
+}
diff --git a/pkgs/games/astromenace/default.nix b/pkgs/games/astromenace/default.nix
index cbe2385ea125..16b087d1e4d0 100644
--- a/pkgs/games/astromenace/default.nix
+++ b/pkgs/games/astromenace/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.viewizard.com/";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
+    mainProgram = "AstroMenace";
   };
 }
diff --git a/pkgs/games/eduke32/default.nix b/pkgs/games/eduke32/default.nix
index 8c7a79ff9822..c34922349612 100644
--- a/pkgs/games/eduke32/default.nix
+++ b/pkgs/games/eduke32/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv, fetchurl, makeWrapper, pkg-config, nasm, makeDesktopItem
 , alsa-lib, flac, gtk2, libvorbis, libvpx, libGLU, libGL
-, SDL2, SDL2_mixer }:
+, SDL2, SDL2_mixer
+, AGL, Cocoa, GLUT, OpenGL
+}:
 
 let
   desktopItem = makeDesktopItem {
@@ -16,21 +18,37 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "eduke32";
-  version = "20210722";
-  rev = "9484";
-  revExtra = "f3fea8c15";
+  version = "20210910";
+  rev = "9603";
+  revExtra = "6c289cce4";
 
   src = fetchurl {
-    url = "http://dukeworld.duke4.net/eduke32/synthesis/${version}-${rev}-${revExtra}/eduke32_src_${version}-${rev}-${revExtra}.tar.xz";
-    sha256 = "0fdl2i465cl5x7129772ksx97lvim98m9009q5cfmf6scagj9pvz";
+    url = "https://dukeworld.com/eduke32/synthesis/${version}-${rev}-${revExtra}/eduke32_src_${version}-${rev}-${revExtra}.tar.xz";
+    sha256 = "sha256-/NQMsmT9z2N3KWBrP8hlGngQKJUgSP+vrNoFqJscRCk=";
   };
 
-  buildInputs = [ alsa-lib flac gtk2 libvorbis libvpx libGL libGLU SDL2 SDL2_mixer ];
+  buildInputs = [
+    flac
+    libvorbis
+    libvpx
+    SDL2
+    SDL2_mixer
+  ] ++ lib.optionals stdenv.isLinux [
+    alsa-lib
+    gtk2
+    libGL
+    libGLU
+  ] ++ lib.optionals stdenv.isDarwin [
+    AGL
+    Cocoa
+    GLUT
+    OpenGL
+  ];
 
   nativeBuildInputs = [ makeWrapper pkg-config ]
     ++ lib.optional (stdenv.hostPlatform.system == "i686-linux") nasm;
 
-  postPatch = ''
+  postPatch = lib.optionalString stdenv.isLinux ''
     substituteInPlace source/build/src/glbuild.cpp \
       --replace libGLU.so ${libGLU}/lib/libGLU.so
 
@@ -44,6 +62,9 @@ in stdenv.mkDerivation rec {
 
   makeFlags = [
     "SDLCONFIG=${SDL2}/bin/sdl2-config"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # broken, see: https://github.com/NixOS/nixpkgs/issues/19098
+    "LTO=0"
   ];
 
   enableParallelBuilding = true;
@@ -52,7 +73,7 @@ in stdenv.mkDerivation rec {
     runHook preInstall
 
     install -Dm755 -t $out/bin eduke32 mapster32
-
+  '' + lib.optionalString stdenv.isLinux ''
     makeWrapper $out/bin/eduke32 $out/bin/${wrapper} \
       --set-default EDUKE32_DATA_DIR /var/lib/games/eduke32 \
       --add-flags '-g "$EDUKE32_DATA_DIR/DUKE3D.GRP"'
@@ -60,7 +81,16 @@ in stdenv.mkDerivation rec {
     cp -rv ${desktopItem}/share $out
     substituteInPlace $out/share/applications/eduke32.desktop \
       --subst-var out
+  '' + lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications/EDuke32.app/Contents/MacOS
+    mkdir -p $out/Applications/Mapster32.app/Contents/MacOS
+
+    cp -r platform/Apple/bundles/EDuke32.app/* $out/Applications/EDuke32.app/
+    cp -r platform/Apple/bundles/Mapster32.app/* $out/Applications/Mapster32.app/
 
+    ln -sf $out/bin/eduke32 $out/Applications/EDuke32.app/Contents/MacOS/eduke32
+    ln -sf $out/bin/mapster32 $out/Applications/Mapster32.app/Contents/MacOS/mapster32
+  '' + ''
     runHook postInstall
   '';
 
@@ -68,8 +98,7 @@ in stdenv.mkDerivation rec {
     description = "Enhanched port of Duke Nukem 3D for various platforms";
     homepage = "http://eduke32.com";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ sander ];
-    # Darwin is untested (supported by upstream)
+    maintainers = with maintainers; [ mikroskeem sander ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/games/mudlet/default.nix b/pkgs/games/mudlet/default.nix
index 139baece4a6f..9d8898b119e1 100644
--- a/pkgs/games/mudlet/default.nix
+++ b/pkgs/games/mudlet/default.nix
@@ -2,7 +2,9 @@
 , boost, libGLU, lua, cmake,  which, pkg-config, }:
 
 let
-  luaEnv = lua.withPackages(ps: with ps; [ luazip luafilesystem lrexlib-pcre luasql-sqlite3 lua-yajl luautf8 ]);
+  luaEnv = lua.withPackages(ps: with ps; [
+    luazip luafilesystem lrexlib-pcre luasql-sqlite3 lua-yajl luautf8
+  ]);
 in
 stdenv.mkDerivation rec {
   pname = "mudlet";
@@ -39,8 +41,6 @@ stdenv.mkDerivation rec {
     cp -r ../mudlet.png $out/share/pixmaps/
 
     makeQtWrapper $out/mudlet $out/bin/mudlet \
-      --set LUA_CPATH "${luaEnv}/lib/lua/${lua.luaversion}/?.so" \
-      --prefix LUA_PATH : "$NIX_LUA_PATH" \
       --prefix LD_LIBRARY_PATH : "${libsForQt5.qtkeychain}/lib/" \
       --run "cd $out";
   '';
diff --git a/pkgs/games/quakespasm/default.nix b/pkgs/games/quakespasm/default.nix
index 87ecd4601339..7dda3b40ae3a 100644
--- a/pkgs/games/quakespasm/default.nix
+++ b/pkgs/games/quakespasm/default.nix
@@ -1,27 +1,72 @@
-{ lib, stdenv, SDL, fetchurl, gzip, libvorbis, libmad, copyDesktopItems, makeDesktopItem }:
+{ lib, stdenv, SDL, SDL2, fetchurl, gzip, libvorbis, libmad
+, Cocoa, CoreAudio, CoreFoundation, IOKit, OpenGL
+, copyDesktopItems, makeDesktopItem
+, useSDL2 ? stdenv.isDarwin # TODO: CoreAudio fails to initialize with SDL 1.x for some reason.
+}:
 
 stdenv.mkDerivation rec {
   pname = "quakespasm";
-  majorVersion = "0.93";
-  version = "${majorVersion}.2";
+  version = "0.94.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/quakespasm/quakespasm-${version}.tgz";
-    sha256 = "0qm0j5drybvvq8xadfyppkpk3rxqsxbywzm6iwsjwdf0iia3gss5";
+    url = "mirror://sourceforge/quakespasm/quakespasm-${version}.tar.gz";
+    sha256 = "19grpvsk3ikjypx9j0gpfsx5wanrqxkgf8dwl9h6ab5c8wwmjcjp";
   };
 
   sourceRoot = "${pname}-${version}/Quake";
 
+  patches = lib.optionals stdenv.isDarwin [
+    # Makes Darwin Makefile use system libraries instead of ones from app bundle
+    ./quakespasm-darwin-makefile-improvements.patch
+  ];
+
   nativeBuildInputs = [ copyDesktopItems ];
   buildInputs = [
-    gzip SDL libvorbis libmad
+    gzip libvorbis libmad (if useSDL2 then SDL2 else SDL)
+  ] ++ lib.optionals stdenv.isDarwin [
+    Cocoa CoreAudio IOKit OpenGL
+  ] ++ lib.optionals (stdenv.isDarwin && useSDL2) [
+    CoreFoundation
+  ];
+
+  buildFlags = [
+    "DO_USERDIRS=1"
+    # Makefile defaults, set here to enforce consistency on Darwin build
+    "USE_CODEC_WAVE=1"
+    "USE_CODEC_MP3=1"
+    "USE_CODEC_VORBIS=1"
+    "USE_CODEC_FLAC=0"
+    "USE_CODEC_OPUS=0"
+    "USE_CODEC_MIKMOD=0"
+    "USE_CODEC_UMX=0"
+    "MP3LIB=mad"
+    "VORBISLIB=vorbis"
+  ] ++ lib.optionals useSDL2 [
+    "SDL_CONFIG=sdl2-config"
+    "USE_SDL2=1"
   ];
 
-  buildFlags = [ "DO_USERDIRS=1" ];
+  makefile = if (stdenv.isDarwin) then "Makefile.darwin" else "Makefile";
 
   preInstall = ''
     mkdir -p "$out/bin"
     substituteInPlace Makefile --replace "/usr/local/games" "$out/bin"
+    substituteInPlace Makefile.darwin --replace "/usr/local/games" "$out/bin"
+  '';
+
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    # Let's build app bundle
+    mkdir -p $out/Applications/Quake.app/Contents/MacOS
+    mkdir -p $out/Applications/Quake.app/Contents/Resources
+    cp ../MacOSX/Info.plist $out/Applications/Quake.app/Contents/
+    cp ../MacOSX/QuakeSpasm.icns $out/Applications/Quake.app/Contents/Resources/
+    cp -r ../MacOSX/English.lproj $out/Applications/Quake.app/Contents/Resources/
+    ln -sf $out/bin/quake $out/Applications/Quake.app/Contents/MacOS/quake
+
+    substituteInPlace $out/Applications/Quake.app/Contents/Info.plist \
+      --replace '>''${EXECUTABLE_NAME}' '>quake'
+    substituteInPlace $out/Applications/Quake.app/Contents/Info.plist \
+      --replace '>''${PRODUCT_NAME}' '>QuakeSpasm'
   '';
 
   enableParallelBuilding = true;
@@ -47,7 +92,7 @@ stdenv.mkDerivation rec {
       and smoother mouse input - though no CD support.
     '';
 
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ m3tti ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ mikroskeem m3tti ];
   };
 }
diff --git a/pkgs/games/quakespasm/quakespasm-darwin-makefile-improvements.patch b/pkgs/games/quakespasm/quakespasm-darwin-makefile-improvements.patch
new file mode 100644
index 000000000000..0f8af7550ea4
--- /dev/null
+++ b/pkgs/games/quakespasm/quakespasm-darwin-makefile-improvements.patch
@@ -0,0 +1,92 @@
+--- a/Makefile.darwin	2021-09-12 14:42:51.000000000 +0300
++++ b/Makefile.darwin	2021-09-12 15:09:16.000000000 +0300
+@@ -49,6 +49,7 @@
+ LIPO ?= lipo
+ 
+ STRIP ?= strip
++PKG_CONFIG ?= pkg-config
+ 
+ CPUFLAGS=
+ LDFLAGS =
+@@ -84,9 +85,6 @@
+ USE_RPATH=1
+ endif
+ CFLAGS += $(CPUFLAGS)
+-ifeq ($(USE_RPATH),1)
+-LDFLAGS+=-Wl,-rpath,@executable_path/../Frameworks
+-endif
+ 
+ ifneq ($(DEBUG),0)
+ DFLAGS += -DDEBUG
+@@ -115,19 +113,14 @@
+ # not relying on sdl-config command and assuming
+ # /Library/Frameworks/SDL.framework is available
+ SDL_CFLAGS =-D_GNU_SOURCE=1 -D_THREAD_SAFE
+-SDL_CFLAGS+=-DSDL_FRAMEWORK -DNO_SDL_CONFIG
+ ifeq ($(USE_SDL2),1)
+-SDL_FRAMEWORK_NAME = SDL2
++SDL_CONFIG ?= sdl2-config
+ else
+-SDL_FRAMEWORK_NAME = SDL
+-endif
+-# default to our local SDL[2].framework for build
+-SDL_FRAMEWORK_PATH ?=../MacOSX
+-ifneq ($(SDL_FRAMEWORK_PATH),)
+-SDL_LIBS  +=-F$(SDL_FRAMEWORK_PATH)
+-SDL_CFLAGS+=-F$(SDL_FRAMEWORK_PATH)
++SDL_CONFIG ?= sdl2-config
+ endif
+-SDL_LIBS  +=-Wl,-framework,$(SDL_FRAMEWORK_NAME) -Wl,-framework,Cocoa
++SDL_CFLAGS := $(shell $(SDL_CONFIG) --cflags)
++SDL_LIBS   := $(shell $(SDL_CONFIG) --libs)
++SDL_LIBS  += -Wl,-framework,Cocoa
+ 
+ NET_LIBS   :=
+ 
+@@ -164,38 +157,26 @@
+ endif
+ ifeq ($(USE_CODEC_FLAC),1)
+ CFLAGS+= -DUSE_CODEC_FLAC
+-CODEC_INC = -I../MacOSX/codecs/include
+-CODEC_LINK= -L../MacOSX/codecs/lib
+ CODECLIBS+= -lFLAC
+ endif
+ ifeq ($(USE_CODEC_OPUS),1)
+-CFLAGS+= -DUSE_CODEC_OPUS
+-CODEC_INC = -I../MacOSX/codecs/include
+-CODEC_LINK= -L../MacOSX/codecs/lib
+-CODECLIBS+= -lopusfile -lopus -logg
++CFLAGS+= -DUSE_CODEC_OPUS $(shell $(PKG_CONFIG) --cflags opusfile)
++CODECLIBS+= $(shell $(PKG_CONFIG) --libs   opusfile)
+ endif
+ ifeq ($(USE_CODEC_VORBIS),1)
+ CFLAGS+= -DUSE_CODEC_VORBIS $(cpp_vorbisdec)
+-CODEC_INC = -I../MacOSX/codecs/include
+-CODEC_LINK= -L../MacOSX/codecs/lib
+ CODECLIBS+= $(lib_vorbisdec)
+ endif
+ ifeq ($(USE_CODEC_MP3),1)
+ CFLAGS+= -DUSE_CODEC_MP3
+-CODEC_INC = -I../MacOSX/codecs/include
+-CODEC_LINK= -L../MacOSX/codecs/lib
+ CODECLIBS+= $(lib_mp3dec)
+ endif
+ ifeq ($(USE_CODEC_MIKMOD),1)
+ CFLAGS+= -DUSE_CODEC_MIKMOD
+-CODEC_INC = -I../MacOSX/codecs/include
+-CODEC_LINK= -L../MacOSX/codecs/lib
+ CODECLIBS+= -lmikmod
+ endif
+ ifeq ($(USE_CODEC_XMP),1)
+ CFLAGS+= -DUSE_CODEC_XMP
+-CODEC_INC = -I../MacOSX/codecs/include
+-CODEC_LINK= -L../MacOSX/codecs/lib
+ CODECLIBS+= -lxmp
+ endif
+ ifeq ($(USE_CODEC_UMX),1)
+@@ -332,3 +313,5 @@
+ clean:
+ 	rm -f $(shell find . \( -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' -o -name $(DEFAULT_TARGET) \) -print)
+ 
++install:	quakespasm
++	install -D -m 755 quakespasm /usr/local/games/quake
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index b2c303caa54f..63da5d7a2b78 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -100,6 +100,11 @@ in buildFHSUserEnv rec {
     libva
     pipewire.lib
 
+    # steamwebhelper
+    harfbuzz
+    libthai
+    pango
+
     # Not formally in runtime but needed by some games
     at-spi2-atk
     at-spi2-core   # CrossCode
@@ -114,7 +119,7 @@ in buildFHSUserEnv rec {
     xorg.libpciaccess
     udev # shadow of the tomb raider
 
-    ## screeps dependencies
+    # screeps dependencies
     gtk3
     dbus
     zlib
@@ -123,7 +128,6 @@ in buildFHSUserEnv rec {
     cairo
     freetype
     gdk-pixbuf
-    pango
     fontconfig
 
     # friends options won't display "Launch Game" without it
@@ -188,7 +192,6 @@ in buildFHSUserEnv rec {
     nss
     fontconfig
     cairo
-    pango
     expat
     dbus
     cups
diff --git a/pkgs/misc/drivers/sc-controller/default.nix b/pkgs/misc/drivers/sc-controller/default.nix
index ff5fb6e5ee76..ab6817a99453 100644
--- a/pkgs/misc/drivers/sc-controller/default.nix
+++ b/pkgs/misc/drivers/sc-controller/default.nix
@@ -1,19 +1,20 @@
 { lib, buildPythonApplication, fetchFromGitHub, wrapGAppsHook
+, pytestCheckHook
 , gtk3, gobject-introspection, libappindicator-gtk3, librsvg
-, evdev, pygobject3, pylibacl, pytest, bluez
+, evdev, pygobject3, pylibacl, bluez, vdf
 , linuxHeaders
 , libX11, libXext, libXfixes, libusb1, udev
 }:
 
 buildPythonApplication rec {
   pname = "sc-controller";
-  version = "0.4.7";
+  version = "0.4.8.6";
 
   src = fetchFromGitHub {
-    owner  = "kozec";
+    owner  = "Ryochan7";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1dskjh5qcjf4x21n4nk1zvdfivbgimsrc2lq1id85bibzps29499";
+    sha256 = "1fgizgzm79zl9r2kkwvh1gf9lnxaix15283xxk6bz843inr8b88k";
   };
 
   # see https://github.com/NixOS/nixpkgs/issues/56943
@@ -23,9 +24,9 @@ buildPythonApplication rec {
 
   buildInputs = [ gtk3 gobject-introspection libappindicator-gtk3 librsvg ];
 
-  propagatedBuildInputs = [ evdev pygobject3 pylibacl ];
+  propagatedBuildInputs = [ evdev pygobject3 pylibacl vdf ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace scc/paths.py --replace sys.prefix "'$out'"
@@ -48,12 +49,8 @@ buildPythonApplication rec {
     )
   '';
 
-  checkPhase = ''
-    PYTHONPATH=. py.test
-  '';
-
   meta = with lib; {
-    homepage    = "https://github.com/kozec/sc-controller";
+    homepage    = "https://github.com/Ryochan7/sc-controller";
     # donations: https://www.patreon.com/kozec
     description = "User-mode driver and GUI for Steam Controller and other controllers";
     license     = licenses.gpl2;
diff --git a/pkgs/misc/vim-plugins/build-vim-plugin.nix b/pkgs/misc/vim-plugins/build-vim-plugin.nix
index a3a09a93ac9c..b6c75e03654d 100644
--- a/pkgs/misc/vim-plugins/build-vim-plugin.nix
+++ b/pkgs/misc/vim-plugins/build-vim-plugin.nix
@@ -19,7 +19,7 @@ rec {
     buildPhase ? "",
     preInstall ? "",
     postInstall ? "",
-    path ? lib.getName name,
+    path ? ".",
     addonInfo ? null,
     ...
   }:
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index c1050f394805..5c71669fc765 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -8153,6 +8153,18 @@ final: prev:
     meta.homepage = "https://github.com/andreshazard/vim-logreview/";
   };
 
+  vim-loves-dafny = buildVimPluginFrom2Nix {
+    pname = "vim-loves-dafny";
+    version = "2018-09-25";
+    src = fetchFromGitHub {
+      owner = "mlr-msft";
+      repo = "vim-loves-dafny";
+      rev = "d75d3b074a3da2b0fa9fd5bc980f52ec82c2ad7b";
+      sha256 = "170dc38mrakfma30r8z9zaxfn8d5ghrvnlglq6l60yn8fg7njxks";
+    };
+    meta.homepage = "https://github.com/mlr-msft/vim-loves-dafny/";
+  };
+
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
     version = "2021-04-28";
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index c36d84399e0e..d1a2bda12bea 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -99,10 +99,10 @@ self: super: {
     # The linked ruby code shows generates the required '.clang_complete' for cmake based projects
     # https://gist.github.com/Mic92/135e83803ed29162817fce4098dec144
     preFixup = ''
-      substituteInPlace "$out"/share/vim-plugins/clang_complete/plugin/clang_complete.vim \
+      substituteInPlace "$out"/plugin/clang_complete.vim \
         --replace "let g:clang_library_path = '' + "''" + ''" "let g:clang_library_path='${llvmPackages.libclang.lib}/lib/libclang.so'"
 
-      substituteInPlace "$out"/share/vim-plugins/clang_complete/plugin/libclang.py \
+      substituteInPlace "$out"/plugin/libclang.py \
         --replace "/usr/lib/clang" "${llvmPackages.clang.cc}/lib/clang"
     '';
   });
@@ -110,7 +110,7 @@ self: super: {
   clighter8 = super.clighter8.overrideAttrs (old: {
     preFixup = ''
       sed "/^let g:clighter8_libclang_path/s|')$|${llvmPackages.clang.cc.lib}/lib/libclang.so')|" \
-        -i "$out"/share/vim-plugins/clighter8/plugin/clighter8.vim
+        -i "$out"/plugin/clighter8.vim
     '';
   });
 
@@ -203,7 +203,7 @@ self: super: {
 
   direnv-vim = super.direnv-vim.overrideAttrs (oa: {
     preFixup = oa.preFixup or "" + ''
-      substituteInPlace $out/share/vim-plugins/direnv.vim/autoload/direnv.vim \
+      substituteInPlace $out/autoload/direnv.vim \
         --replace "let s:direnv_cmd = get(g:, 'direnv_cmd', 'direnv')" \
           "let s:direnv_cmd = get(g:, 'direnv_cmd', '${lib.getBin direnv}/bin/direnv')"
     '';
@@ -354,7 +354,7 @@ self: super: {
       propagatedBuildInputs = [ LanguageClient-neovim-bin ];
 
       preFixup = ''
-        substituteInPlace "$out"/share/vim-plugins/LanguageClient-neovim/autoload/LanguageClient.vim \
+        substituteInPlace "$out"/autoload/LanguageClient.vim \
           --replace "let l:path = s:root . '/bin/'" "let l:path = '${LanguageClient-neovim-bin}' . '/bin/'"
       '';
     };
@@ -387,9 +387,9 @@ self: super: {
 
   minimap-vim = super.minimap-vim.overrideAttrs (old: {
     preFixup = ''
-      substituteInPlace $out/share/vim-plugins/minimap.vim/plugin/minimap.vim \
+      substituteInPlace $out/plugin/minimap.vim \
         --replace "code-minimap" "${code-minimap}/bin/code-minimap"
-      substituteInPlace $out/share/vim-plugins/minimap.vim/bin/minimap_generator.sh \
+      substituteInPlace $out/bin/minimap_generator.sh \
         --replace "code-minimap" "${code-minimap}/bin/code-minimap"
     '';
   });
@@ -424,7 +424,7 @@ self: super: {
   });
 
   null-ls-nvim = super.null-ls-nvim.overrideAttrs (old: {
-    path = "null-ls.nvim";
+    dependencies = with self; [ plenary-nvim nvim-lspconfig ];
   });
 
   nvim-lsputils = super.nvim-lsputils.overrideAttrs (old: {
@@ -691,7 +691,7 @@ self: super: {
 
   vim-dasht = super.vim-dasht.overrideAttrs (old: {
     preFixup = ''
-      substituteInPlace $out/share/vim-plugins/vim-dasht/autoload/dasht.vim \
+      substituteInPlace $out/autoload/dasht.vim \
         --replace "['dasht']" "['${dasht}/bin/dasht']"
     '';
   });
@@ -795,7 +795,7 @@ self: super: {
     in
     super.vim-markdown-composer.overrideAttrs (oldAttrs: rec {
       preFixup = ''
-        substituteInPlace "$out"/share/vim-plugins/vim-markdown-composer/after/ftplugin/markdown/composer.vim \
+        substituteInPlace "$out"/after/ftplugin/markdown/composer.vim \
           --replace "let l:args = [s:plugin_root . '/target/release/markdown-composer']" \
           "let l:args = ['${vim-markdown-composer-bin}/bin/markdown-composer']"
       '';
diff --git a/pkgs/misc/vim-plugins/vim-gen-doc-hook.sh b/pkgs/misc/vim-plugins/vim-gen-doc-hook.sh
index 0efc62912013..cbf666f8b74d 100644
--- a/pkgs/misc/vim-plugins/vim-gen-doc-hook.sh
+++ b/pkgs/misc/vim-plugins/vim-gen-doc-hook.sh
@@ -7,7 +7,6 @@ vimPluginGenTags() {
 
     target="$out/@rtpPath@/$pname"
     mkdir -p $out/@rtpPath@
-    cp -r . $target
 
     # build help tags
     if [ -d "$target/doc" ]; then
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index dbf82db2ec9b..009eb90c9e20 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -447,6 +447,7 @@ milkypostman/vim-togglelist
 mindriot101/vim-yapf
 mk12/vim-lean
 mkasa/lushtags
+mlr-msft/vim-loves-dafny
 moll/vim-bbye
 mopp/sky-color-clock.vim
 morhetz/gruvbox
diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix
index a0293b8f5cf7..0516a84ce953 100644
--- a/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/pkgs/misc/vim-plugins/vim-utils.nix
@@ -185,7 +185,7 @@ let
       else (lib.optional (x ? name) x.name)
             ++ (x.names or []);
 
-  rtpPath = "share/vim-plugins";
+  rtpPath = ".";
 
   nativeImpl = packages:
   (let
@@ -196,13 +196,14 @@ let
       ln -sf ${plugin}/${plugin.pname}-${plugin.version}-rocks/${plugin.pname}/${plugin.version}/* $out/pack/${packageName}/${dir}/${plugin.pname}/
     '';
 
-    linkVimlPlugin = pluginPath: packageName: dir:
-      "ln -sf ${pluginPath}/${rtpPath}/* $out/pack/${packageName}/${dir}";
+    linkVimlPlugin = plugin: packageName: dir: ''
+      mkdir -p $out/pack/${packageName}/${dir}/${plugin.pname}
+      ln -sf ${plugin}/${rtpPath}/* $out/pack/${packageName}/${dir}/${plugin.pname}
+    '';
 
-      # (builtins.trace pluginPath )
-      link = pluginPath: if hasLuaModule pluginPath
-        then linkLuaPlugin pluginPath
-        else linkVimlPlugin pluginPath;
+    link = pluginPath: if hasLuaModule pluginPath
+      then linkLuaPlugin pluginPath
+      else linkVimlPlugin pluginPath;
 
     packageLinks = (packageName: {start ? [], opt ? []}:
     let
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 5da3676a1c82..70a180e737eb 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -13,15 +13,21 @@
     },
     "5.10": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.10.62-hardened1.patch",
-        "sha256": "0xdj9mp0ccilj06pb8my5jqw47xwc2fk7f2ck36g4bzsp669nisj",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.62-hardened1/linux-hardened-5.10.62-hardened1.patch"
+        "name": "linux-hardened-5.10.63-hardened1.patch",
+        "sha256": "1v1w6ybfkgqisdprny9bb658443hbld86r96cvzqdkmd8wfh4513",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.63-hardened1/linux-hardened-5.10.63-hardened1.patch"
     },
     "5.13": {
         "extra": "-hardened1",
-        "name": "linux-hardened-5.13.14-hardened1.patch",
-        "sha256": "00lmqq10d66s1852q1j2m8cj90bb0gfpsg617bc7f3pm2v6iyl93",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.13.14-hardened1/linux-hardened-5.13.14-hardened1.patch"
+        "name": "linux-hardened-5.13.15-hardened1.patch",
+        "sha256": "1g75jh5j9qbh4wbiy2wnc982i2gld2845ai47rczcj7ciycba8n7",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.13.15-hardened1/linux-hardened-5.13.15-hardened1.patch"
+    },
+    "5.14": {
+        "extra": "-hardened1",
+        "name": "linux-hardened-5.14.2-hardened1.patch",
+        "sha256": "0hcw61bavhyr9v621ajsrl2zgz7kc0z8r7p5kzm37dnlggwl4qh3",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.14.2-hardened1/linux-hardened-5.14.2-hardened1.patch"
     },
     "5.4": {
         "extra": "-hardened1",
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index 23e78dd848ed..564fbca37ba8 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg -DluaL_getn(L,i)=((int)lua_objlen(L,i))";
 
   preConfigure = ''
-    cmakeFlagsArray+=(-DCMAKE_EXE_LINKER_FLAGS="-ltbb -lcurl")
+    cmakeFlagsArray+=(-DCMAKE_EXE_LINKER_FLAGS="-ltbb -lcurl -labsl_synchronization")
 
     export INSTALL_MOD_PATH="$out"
   '' + optionalString (kernel != null) ''
diff --git a/pkgs/servers/bazarr/default.nix b/pkgs/servers/bazarr/default.nix
index 1db21cb13bc2..31c95bdb5f1b 100644
--- a/pkgs/servers/bazarr/default.nix
+++ b/pkgs/servers/bazarr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bazarr";
-  version = "0.9.7";
+  version = "0.9.8";
 
   sourceRoot = ".";
 
   src = fetchurl {
     url = "https://github.com/morpheus65535/bazarr/releases/download/v${version}/bazarr.zip";
-    sha256 = "sha256-OyH3/KK8d5pWu+Ubzgd4N0IwpumbAe/43Oo+LGg+Erc=";
+    sha256 = "sha256-ESmSfor28KIaZ68Sy+YRbumefHDxLZgBQ6XeUSYSR1c=";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/servers/dns/ncdns/default.nix b/pkgs/servers/dns/ncdns/default.nix
index b046aff12bd7..7fad548df7a5 100644
--- a/pkgs/servers/dns/ncdns/default.nix
+++ b/pkgs/servers/dns/ncdns/default.nix
@@ -1,27 +1,103 @@
-{ lib, nixosTests, git, buildGoPackage, fetchFromGitHub, libcap }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, nixosTests
+, libcap
+}:
 
-buildGoPackage rec {
-  pname = "ncdns";
-  version = "2020-11-22";
-
-  goPackagePath = "github.com/namecoin/ncdns";
-  goDeps = ./deps.nix;
+let
 
-  src = fetchFromGitHub {
+  # ncdns source
+  ncdns = fetchFromGitHub {
     owner = "namecoin";
     repo = "ncdns";
-    rev = "2fa54cd3b5480dba82170ab8ecb511fbd4977c41";
-    sha256 = "0mrxbg5lmy3s281ff6nxpp03z4mqwq7h5hkqm9qy8nb280x1sx7h";
+    rev = "2a486311b0fe1a921af34aa3b31e6e4e0569accc";
+    sha256 = "01arwlycp1iia4bd3dgyn8dam1av2a7d9hv7f085n14l2i2aza7v";
+  };
+
+  # script to patch the crypto/x509 package
+  x509 = fetchFromGitHub {
+    owner = "namecoin";
+    repo = "x509-compressed";
+    rev = "fb9f2b7bc9fcba954d70f63857cc0c3841b1cf47";
+    sha256 = "1arkbpbzvhcmz5fhjqg34x2jbjnwmlisapk22rjki17qpamh7zks";
+    # ncdns must be put in a subdirectory for this to work.
+    extraPostFetch = ''
+      cp -r --no-preserve=mode "${ncdns}" "$out/ncdns"
+    '';
   };
 
-  patches = [ ./fix-tpl-path.patch ];
+in
+
+buildGoModule {
+  pname = "ncdns";
+  version = "unstable-2020-07-18";
+
+  src = x509;
+
+  vendorSha256 = "02bqf6vkj5msk35sr5sklnqqd16n7gns7knzqslw077xrxiz7bsg";
+
+  # Override the go-modules fetcher derivation to apply
+  # upstream's patch of the crypto/x509 library.
+  modBuildPhase = ''
+    go mod init github.com/namecoin/x509-compressed
+    go generate ./...
+    go mod tidy
+
+    cd ncdns
+    go mod init github.com/namecoin/ncdns
+    go mod edit \
+      -replace github.com/coreos/go-systemd=github.com/coreos/go-systemd/v22@latest \
+      -replace github.com/namecoin/x509-compressed=$NIX_BUILD_TOP/source
+    go mod tidy
+  '';
+
+  # Copy over the lockfiles as well, because the source
+  # doesn't contain it. The fixed-output derivation is
+  # probably not reproducible anyway.
+  modInstallPhase = ''
+    mv -t vendor go.mod go.sum
+    cp -r --reflink=auto vendor "$out"
+  '';
 
   buildInputs = [ libcap ];
 
+  # The fetcher derivation must run with a different
+  # $sourceRoot, but buildGoModule doesn't allow that,
+  # so we use this ugly hack.
+  unpackPhase = ''
+    runHook preUnpack
+
+    unpackFile "$src"
+    sourceRoot=$PWD/source/ncdns
+    chmod -R u+w -- "$sourceRoot"
+    cd $sourceRoot
+
+    runHook postUpack
+  '';
+
+  # Same as above: can't use `patches` because that would
+  # be also applied to the fetcher derivation, thus failing.
+  patchPhase = ''
+    runHook prePatch
+    patch -p1 < ${./fix-tpl-path.patch}
+    runHook postPatch
+  '';
+
+  preBuild = ''
+    chmod -R u+w vendor
+    mv -t . vendor/go.{mod,sum}
+  '';
+
+  preCheck = ''
+    # needed to run the ncdns test suite
+    ln -s $PWD/vendor ../../go/src
+  '';
+
   postInstall = ''
     mkdir -p "$out/share"
-    cp -r "$src/_doc" "$out/share/doc"
-    cp -r "$src/_tpl" "$out/share/tpl"
+    cp -r _doc "$out/share/doc"
+    cp -r _tpl "$out/share/tpl"
   '';
 
   meta = with lib; {
diff --git a/pkgs/servers/dns/ncdns/deps.nix b/pkgs/servers/dns/ncdns/deps.nix
deleted file mode 100644
index f48faa9648bd..000000000000
--- a/pkgs/servers/dns/ncdns/deps.nix
+++ /dev/null
@@ -1,318 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "ea60c4def909bde529d41a7e0674e31eba751da3";
-      sha256 = "08xhd9jlgkql8kqpi98aaq9k8hgb6x7197r6crp84r1ic8k7im4y";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "1786d5ef83d4868925e518b2995c30430aec0f06";
-      sha256 = "1grs2y4gnyq8wv9w61c231a01c7qd916b7rxqy798b8sfirr3ci8";
-    };
-  }
-  {
-    goPackagePath = "github.com/btcsuite/btcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/btcsuite/btcd";
-      rev = "6bd4c64a54faeb343d5e3c1ee5802450a291787f";
-      sha256 = "15plh7rrmx1ydy3ldnylr727s9szrrkqzbf2ma2ka2qag1vy6nvb";
-    };
-  }
-  {
-    goPackagePath = "github.com/btcsuite/btclog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/btcsuite/btclog";
-      rev = "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a";
-      sha256 = "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk";
-    };
-  }
-  {
-    goPackagePath = "github.com/btcsuite/btcutil";
-    fetch = {
-      type = "git";
-      url = "https://github.com/btcsuite/btcutil";
-      rev = "a53e38424cce1c9de2062b69364efd35fd428d15";
-      sha256 = "1izjvgi0d5wnknfwdnqa196hn4vj1n5ga7swbhcfsgghk2zngwr4";
-    };
-  }
-  {
-    goPackagePath = "github.com/btcsuite/go-socks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/btcsuite/go-socks";
-      rev = "4720035b7bfd2a9bb130b1c184f8bbe41b6f0d0f";
-      sha256 = "18cv2icj059lq4s99p6yh91hlas5f2gi3f1p4c10sjgwrs933d7b";
-    };
-  }
-  {
-    goPackagePath = "github.com/btcsuite/websocket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/btcsuite/websocket";
-      rev = "31079b6807923eb23992c421b114992b95131b55";
-      sha256 = "0xpkf257ml6fpfdgv7hxxc41n0d5yxxm3njm50qpzp7j71l9cjwa";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-systemd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-systemd";
-      rev = "87511f396ae9991f8589f6e6dcf58e28a91ba52b";
-      sha256 = "139ylav4vl4h7ndy1xkj0dn45rbknv2rfjlifrj622n96c4rrazx";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/groupcache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/groupcache";
-      rev = "8c9f03a8e57eb486e42badaed3fb287da51807ba";
-      sha256 = "0vjjr79r32icjzlb05wn02k59av7jx0rn1jijml8r4whlg7dnkfh";
-    };
-  }
-  {
-    goPackagePath = "github.com/hlandau/buildinfo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hlandau/buildinfo";
-      rev = "337a29b5499734e584d4630ce535af64c5fe7813";
-      sha256 = "1kq3r1i4rr9bcvj5yg8w1l95f6sfc3kn6kgcdmlh5i3j9w2sram8";
-    };
-  }
-  {
-    goPackagePath = "github.com/hlandau/degoutils";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hlandau/degoutils";
-      rev = "8fa2440b63444dad556d76366f1c3ee070c8a577";
-      sha256 = "1yj39jbrk3xx3cyl8f4asakc74lsl0brasi25xjf6219pg69q0iy";
-    };
-  }
-  {
-    goPackagePath = "github.com/hlandau/dexlogconfig";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hlandau/dexlogconfig";
-      rev = "244f29bd260884993b176cd14ef2f7631f6f3c18";
-      sha256 = "1d01ghx6xawj3nk3lpk51wbbpxdnc9vzvijvlayvp7cxgsacslbc";
-    };
-  }
-  {
-    goPackagePath = "github.com/hlandau/xlog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hlandau/xlog";
-      rev = "197ef798aed28e08ed3e176e678fda81be993a31";
-      sha256 = "08rjlqnjbfgpz5rbjq89l7y5vyhk99ivr928sqdi5gnqznbqs4m8";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "a883a8422cd235c67c6c4fdcb7bbb022143e10b1";
-      sha256 = "0vp5ijbapw8j52c3l992m1wm8nhl23n68xk3lqxhad3srxmdb9z4";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "cafcf9720371e5625e7300397de921f58e069d17";
-      sha256 = "0q164xvv7nwgjq2l2lln4y7yp036jpwx8v7yfsz432czl10d4g0h";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev = "cb30d6282491c185f77d9bec5d25de1bb61a06bc";
-      sha256 = "0v59mv94acd2m72q8adhigxkx1vn38l5h0d8hp0nxga2v9f3v8kd";
-    };
-  }
-  {
-    goPackagePath = "github.com/miekg/dns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miekg/dns";
-      rev = "23c4faca9d32b0abbb6e179aa1aadc45ac53a916";
-      sha256 = "1iir2yrx71wg0ab9j4qm70aycym2pxrb043dmbknyzbw9s43cabz";
-    };
-  }
-  {
-    goPackagePath = "github.com/namecoin/btcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/namecoin/btcd";
-      rev = "69a10543311fa68737d0a77b4cd045b0b0abfb75";
-      sha256 = "1zbfigs3hrjhdwp19877lpgivdcz3k80149nxdmxlmp03xcswcqy";
-    };
-  }
-  {
-    goPackagePath = "github.com/namecoin/ncbtcjson";
-    fetch = {
-      type = "git";
-      url = "https://github.com/namecoin/ncbtcjson";
-      rev = "fa221af062c70f802db6ed66e1546cc4a41ec277";
-      sha256 = "1fmz5aylsji27vj5f3f3gg9xj99735gh5prvcfz0gmk68v1mnr4i";
-    };
-  }
-  {
-    goPackagePath = "github.com/namecoin/ncrpcclient";
-    fetch = {
-      type = "git";
-      url = "https://github.com/namecoin/ncrpcclient";
-      rev = "858e1a5acd8b2da56462f50323633cdf2fe80977";
-      sha256 = "0pj951wm6fdkk2yv4bxaxka52i7rb6w3fs9ah3fy7p8wchr4smjx";
-    };
-  }
-  {
-    goPackagePath = "github.com/namecoin/splicesign";
-    fetch = {
-      type = "git";
-      url = "https://github.com/namecoin/splicesign";
-      rev = "38bb6fb3ec66c72ecb3a14e1e714768cc6e56ed7";
-      sha256 = "0irlbcrarbrvzdnph9kxrf8bkij1lzqpp5mxh8i60n5ii7bj0wsd";
-    };
-  }
-  {
-    goPackagePath = "github.com/namecoin/tlsrestrictnss";
-    fetch = {
-      type = "git";
-      url = "https://github.com/namecoin/tlsrestrictnss";
-      rev = "945a9f3d995fcb175fd0b19549e21a3e87ba8c13";
-      sha256 = "18qphkqnjw3bwflkyyrddyzgwscs37j7y6ynm9g78bqb5skviqqy";
-    };
-  }
-  {
-    goPackagePath = "github.com/ogier/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ogier/pflag";
-      rev = "73e519546fc0bce0c395610afcf6aa4e5aec88eb";
-      sha256 = "114zpgl6l47gsz0sifpq62hi2i6k0ra9hi8wx7d39giablf9i4ii";
-    };
-  }
-  {
-    goPackagePath = "github.com/rogpeppe/go-internal";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rogpeppe/go-internal";
-      rev = "eea92b9e2c4424af886c8c620efa50fff5a56387";
-      sha256 = "0lf4x32af40ixnysfzfm9r08gpsd3k3x7p3hr2k8q72llsa1zivz";
-    };
-  }
-  {
-    goPackagePath = "github.com/shiena/ansicolor";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shiena/ansicolor";
-      rev = "c7312218db184c554578219828d6c9498d02dcb1";
-      sha256 = "14mhp5ir1vlshja9bam6df5wpbqdwg46qn1ysixjiap535ajhkza";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "eec23a3978adcfd26c29f4153eaa3e3d9b2cc53a";
-      sha256 = "18cf6vhmx7v83ahyil7j8hkwhwf1012bgixglz7a6nc35qwwqb3r";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "6772e930b67bb09bf22262c7378e7d2f67cf59d1";
-      sha256 = "0zlr39dxbg0fxfdrc20c4x0pw43n9kz749ssml97cdzqy116p5qa";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "0d417f6369309be088e227ead8736fb722d759d3";
-      sha256 = "1cn19s7kg91alianr1c1bp6k6p1wccigg19h6fchd84jb2zakkvs";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/hlandau/configurable.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/hlandau/configurable.v1";
-      rev = "41496864a1fe3e0fef2973f22372b755d2897402";
-      sha256 = "0i9jbdvi8rz12xsrzzbfxg5lwsqakjcmccsa5a32asmv26k5byqa";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/hlandau/easyconfig.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/hlandau/easyconfig.v1";
-      rev = "c31249162931b4963bbe6e501cccb60d23271a3f";
-      sha256 = "1v8j1pyzcfj1l4pmb1c6mszci6xzc4agdam2kq79kyvbsvbbw9dc";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/hlandau/madns.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/hlandau/madns.v2";
-      rev = "26979b3e4b5aa3e0bd53cf0a014f9eaf43b578e3";
-      sha256 = "09r4m4mqdgd7hvxyvss9m64lq0kk8nylnq2bgnkrclgzpi87fmmb";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/hlandau/service.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/hlandau/service.v2";
-      rev = "b64b3467ebd16f64faec1640c25e318efc0c0d7b";
-      sha256 = "0lpx88f46ylx9lf6jgwcjgklll1pc1mlakrywpa0wzhjj7a4jinc";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/hlandau/svcutils.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/hlandau/svcutils.v1";
-      rev = "c25dac49e50cbbcbef8c81b089f56156f4067729";
-      sha256 = "12b6p71mk33r44d71xizjq82fls0ykfwfl5gnmckbgpxms4bj2xf";
-    };
-  }
-]
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index 8164330c5566..c2c9df4b814b 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -41,13 +41,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jellyfin";
-  version = "10.7.6"; # ensure that jellyfin-web has matching version
+  version = "10.7.7"; # ensure that jellyfin-web has matching version
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin";
     rev = "v${version}";
-    sha256 = "3wXB9HrOaLgHJjWpwPWVtcy8xcYBgZoE29hWqf1On2Q=";
+    sha256 = "mByGsz9+R8I5/f6hUoM9JK/MDcWIJ/Xt51Z/LRXeQQQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/jellyfin/node-deps.nix b/pkgs/servers/jellyfin/node-deps.nix
index 3a55fcbe88bc..2a1b07a662e2 100644
--- a/pkgs/servers/jellyfin/node-deps.nix
+++ b/pkgs/servers/jellyfin/node-deps.nix
@@ -4,6 +4,15 @@
 
 let
   sources = {
+    "@apideck/better-ajv-errors-0.2.5" = {
+      name = "_at_apideck_slash_better-ajv-errors";
+      packageName = "@apideck/better-ajv-errors";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.2.5.tgz";
+        sha512 = "Pm1fAqCT8OEfBVLddU3fWZ/URWpGGhkvlsBIgn9Y2jJlcNumo0gNzPsQswDJTiA8HcKpCjOhWQOgkA9kXR4Ghg==";
+      };
+    };
     "@babel/code-frame-7.12.11" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
@@ -13,436 +22,436 @@ let
         sha512 = "Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==";
       };
     };
-    "@babel/code-frame-7.12.13" = {
+    "@babel/code-frame-7.14.5" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz";
-        sha512 = "HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz";
+        sha512 = "9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==";
       };
     };
-    "@babel/compat-data-7.14.0" = {
+    "@babel/compat-data-7.15.0" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.14.0";
+      version = "7.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz";
-        sha512 = "vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz";
+        sha512 = "0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==";
       };
     };
-    "@babel/core-7.14.0" = {
+    "@babel/core-7.15.5" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.14.0";
+      version = "7.15.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.14.0.tgz";
-        sha512 = "8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz";
+        sha512 = "pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==";
       };
     };
-    "@babel/eslint-parser-7.13.14" = {
+    "@babel/eslint-parser-7.15.4" = {
       name = "_at_babel_slash_eslint-parser";
       packageName = "@babel/eslint-parser";
-      version = "7.13.14";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.13.14.tgz";
-        sha512 = "I0HweR36D73Ibn/FfrRDMKlMqJHFwidIUgYdMpH+aXYuQC+waq59YaJ6t9e9N36axJ82v1jR041wwqDrDXEwRA==";
+        url = "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz";
+        sha512 = "hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw==";
       };
     };
-    "@babel/eslint-plugin-7.13.16" = {
+    "@babel/eslint-plugin-7.14.5" = {
       name = "_at_babel_slash_eslint-plugin";
       packageName = "@babel/eslint-plugin";
-      version = "7.13.16";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.13.16.tgz";
-        sha512 = "RNL0dLHBvjXW857JwzToTHxtbOZfGcvdSegcgXC1c1PqfE+o/QN8MugkgKj2vXFxCcMByfxJrmpCbLzVBVlgIA==";
+        url = "https://registry.npmjs.org/@babel/eslint-plugin/-/eslint-plugin-7.14.5.tgz";
+        sha512 = "nzt/YMnOOIRikvSn2hk9+W2omgJBy6U8TN0R+WTTmqapA+HnZTuviZaketdTE9W7/k/+E/DfZlt1ey1NSE39pg==";
       };
     };
-    "@babel/generator-7.14.1" = {
+    "@babel/generator-7.15.4" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.14.1";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz";
-        sha512 = "TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz";
+        sha512 = "d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.12.13" = {
+    "@babel/helper-annotate-as-pure-7.15.4" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.12.13";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz";
-        sha512 = "7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==";
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz";
+        sha512 = "QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==";
       };
     };
-    "@babel/helper-builder-binary-assignment-operator-visitor-7.12.13" = {
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.15.4" = {
       name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
       packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
-      version = "7.12.13";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz";
-        sha512 = "CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz";
+        sha512 = "P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==";
       };
     };
-    "@babel/helper-compilation-targets-7.13.16" = {
+    "@babel/helper-compilation-targets-7.15.4" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.13.16";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz";
-        sha512 = "3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz";
+        sha512 = "rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.14.1" = {
+    "@babel/helper-create-class-features-plugin-7.15.4" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.14.1";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz";
-        sha512 = "r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz";
+        sha512 = "7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.12.17" = {
+    "@babel/helper-create-regexp-features-plugin-7.14.5" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.12.17";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz";
-        sha512 = "p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==";
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz";
+        sha512 = "TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==";
       };
     };
-    "@babel/helper-define-polyfill-provider-0.2.0" = {
+    "@babel/helper-define-polyfill-provider-0.2.3" = {
       name = "_at_babel_slash_helper-define-polyfill-provider";
       packageName = "@babel/helper-define-polyfill-provider";
-      version = "0.2.0";
+      version = "0.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz";
-        sha512 = "JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==";
+        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz";
+        sha512 = "RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==";
       };
     };
-    "@babel/helper-explode-assignable-expression-7.13.0" = {
+    "@babel/helper-explode-assignable-expression-7.15.4" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.13.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz";
-        sha512 = "qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz";
+        sha512 = "J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==";
       };
     };
-    "@babel/helper-function-name-7.12.13" = {
+    "@babel/helper-function-name-7.15.4" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.12.13";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
-        sha512 = "TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==";
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz";
+        sha512 = "Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==";
       };
     };
-    "@babel/helper-get-function-arity-7.12.13" = {
+    "@babel/helper-get-function-arity-7.15.4" = {
       name = "_at_babel_slash_helper-get-function-arity";
       packageName = "@babel/helper-get-function-arity";
-      version = "7.12.13";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
-        sha512 = "DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==";
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz";
+        sha512 = "1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==";
       };
     };
-    "@babel/helper-hoist-variables-7.13.16" = {
+    "@babel/helper-hoist-variables-7.15.4" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.13.16";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz";
-        sha512 = "1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz";
+        sha512 = "VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.13.12" = {
+    "@babel/helper-member-expression-to-functions-7.15.4" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.13.12";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz";
-        sha512 = "48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz";
+        sha512 = "cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==";
       };
     };
-    "@babel/helper-module-imports-7.13.12" = {
+    "@babel/helper-module-imports-7.15.4" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.13.12";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz";
-        sha512 = "4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz";
+        sha512 = "jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==";
       };
     };
-    "@babel/helper-module-transforms-7.14.0" = {
+    "@babel/helper-module-transforms-7.15.4" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.14.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz";
-        sha512 = "L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz";
+        sha512 = "9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.12.13" = {
+    "@babel/helper-optimise-call-expression-7.15.4" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.12.13";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
-        sha512 = "BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz";
+        sha512 = "E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==";
       };
     };
-    "@babel/helper-plugin-utils-7.13.0" = {
+    "@babel/helper-plugin-utils-7.14.5" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.13.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz";
-        sha512 = "ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz";
+        sha512 = "/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.13.0" = {
+    "@babel/helper-remap-async-to-generator-7.15.4" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.13.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz";
-        sha512 = "pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz";
+        sha512 = "v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==";
       };
     };
-    "@babel/helper-replace-supers-7.13.12" = {
+    "@babel/helper-replace-supers-7.15.4" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.13.12";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz";
-        sha512 = "Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz";
+        sha512 = "/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==";
       };
     };
-    "@babel/helper-simple-access-7.13.12" = {
+    "@babel/helper-simple-access-7.15.4" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.13.12";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz";
-        sha512 = "7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==";
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz";
+        sha512 = "UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==";
       };
     };
-    "@babel/helper-skip-transparent-expression-wrappers-7.12.1" = {
+    "@babel/helper-skip-transparent-expression-wrappers-7.15.4" = {
       name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
       packageName = "@babel/helper-skip-transparent-expression-wrappers";
-      version = "7.12.1";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz";
-        sha512 = "Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==";
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz";
+        sha512 = "BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==";
       };
     };
-    "@babel/helper-split-export-declaration-7.12.13" = {
+    "@babel/helper-split-export-declaration-7.15.4" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.12.13";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
-        sha512 = "tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==";
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz";
+        sha512 = "HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==";
       };
     };
-    "@babel/helper-validator-identifier-7.14.0" = {
+    "@babel/helper-validator-identifier-7.14.9" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.14.0";
+      version = "7.14.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz";
-        sha512 = "V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz";
+        sha512 = "pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==";
       };
     };
-    "@babel/helper-validator-option-7.12.17" = {
+    "@babel/helper-validator-option-7.14.5" = {
       name = "_at_babel_slash_helper-validator-option";
       packageName = "@babel/helper-validator-option";
-      version = "7.12.17";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz";
-        sha512 = "TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz";
+        sha512 = "OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==";
       };
     };
-    "@babel/helper-wrap-function-7.13.0" = {
+    "@babel/helper-wrap-function-7.15.4" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.13.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz";
-        sha512 = "1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz";
+        sha512 = "Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==";
       };
     };
-    "@babel/helpers-7.14.0" = {
+    "@babel/helpers-7.15.4" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.14.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz";
-        sha512 = "+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz";
+        sha512 = "V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==";
       };
     };
-    "@babel/highlight-7.14.0" = {
+    "@babel/highlight-7.14.5" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.14.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz";
-        sha512 = "YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz";
+        sha512 = "qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==";
       };
     };
-    "@babel/parser-7.14.1" = {
+    "@babel/parser-7.15.5" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.14.1";
+      version = "7.15.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz";
-        sha512 = "muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.15.5.tgz";
+        sha512 = "2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg==";
       };
     };
-    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12" = {
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4" = {
       name = "_at_babel_slash_plugin-bugfix-v8-spread-parameters-in-optional-chaining";
       packageName = "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining";
-      version = "7.13.12";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz";
-        sha512 = "d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz";
+        sha512 = "eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.13.15" = {
+    "@babel/plugin-proposal-async-generator-functions-7.15.4" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.13.15";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz";
-        sha512 = "VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz";
+        sha512 = "2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw==";
       };
     };
-    "@babel/plugin-proposal-class-properties-7.13.0" = {
+    "@babel/plugin-proposal-class-properties-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.13.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz";
-        sha512 = "KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz";
+        sha512 = "q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==";
       };
     };
-    "@babel/plugin-proposal-class-static-block-7.13.11" = {
+    "@babel/plugin-proposal-class-static-block-7.15.4" = {
       name = "_at_babel_slash_plugin-proposal-class-static-block";
       packageName = "@babel/plugin-proposal-class-static-block";
-      version = "7.13.11";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz";
-        sha512 = "fJTdFI4bfnMjvxJyNuaf8i9mVcZ0UhetaGEUHaHV9KEnibLugJkZAtXikR8KcYj+NYmI4DZMS8yQAyg+hvfSqg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz";
+        sha512 = "M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.13.8" = {
+    "@babel/plugin-proposal-dynamic-import-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.13.8";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz";
-        sha512 = "ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz";
+        sha512 = "ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==";
       };
     };
-    "@babel/plugin-proposal-export-namespace-from-7.12.13" = {
+    "@babel/plugin-proposal-export-namespace-from-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-export-namespace-from";
       packageName = "@babel/plugin-proposal-export-namespace-from";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz";
-        sha512 = "INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz";
+        sha512 = "g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.13.8" = {
+    "@babel/plugin-proposal-json-strings-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.13.8";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz";
-        sha512 = "w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz";
+        sha512 = "NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==";
       };
     };
-    "@babel/plugin-proposal-logical-assignment-operators-7.13.8" = {
+    "@babel/plugin-proposal-logical-assignment-operators-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
       packageName = "@babel/plugin-proposal-logical-assignment-operators";
-      version = "7.13.8";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz";
-        sha512 = "aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz";
+        sha512 = "YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.13.8" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.13.8";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz";
-        sha512 = "iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz";
+        sha512 = "gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.12.13" = {
+    "@babel/plugin-proposal-numeric-separator-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz";
-        sha512 = "O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz";
+        sha512 = "yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.13.8" = {
+    "@babel/plugin-proposal-object-rest-spread-7.14.7" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.13.8";
+      version = "7.14.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz";
-        sha512 = "DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz";
+        sha512 = "082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.13.8" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.13.8";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz";
-        sha512 = "0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz";
+        sha512 = "3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.13.12" = {
+    "@babel/plugin-proposal-optional-chaining-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.13.12";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz";
-        sha512 = "fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz";
+        sha512 = "ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.13.0" = {
+    "@babel/plugin-proposal-private-methods-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.13.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz";
-        sha512 = "MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz";
+        sha512 = "838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==";
       };
     };
-    "@babel/plugin-proposal-private-property-in-object-7.14.0" = {
+    "@babel/plugin-proposal-private-property-in-object-7.15.4" = {
       name = "_at_babel_slash_plugin-proposal-private-property-in-object";
       packageName = "@babel/plugin-proposal-private-property-in-object";
-      version = "7.14.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz";
-        sha512 = "59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz";
+        sha512 = "X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.12.13" = {
+    "@babel/plugin-proposal-unicode-property-regex-7.14.5" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz";
-        sha512 = "XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz";
+        sha512 = "6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -463,13 +472,13 @@ let
         sha512 = "fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==";
       };
     };
-    "@babel/plugin-syntax-class-static-block-7.12.13" = {
+    "@babel/plugin-syntax-class-static-block-7.14.5" = {
       name = "_at_babel_slash_plugin-syntax-class-static-block";
       packageName = "@babel/plugin-syntax-class-static-block";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz";
-        sha512 = "ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz";
+        sha512 = "b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==";
       };
     };
     "@babel/plugin-syntax-dynamic-import-7.8.3" = {
@@ -553,319 +562,319 @@ let
         sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
       };
     };
-    "@babel/plugin-syntax-private-property-in-object-7.14.0" = {
+    "@babel/plugin-syntax-private-property-in-object-7.14.5" = {
       name = "_at_babel_slash_plugin-syntax-private-property-in-object";
       packageName = "@babel/plugin-syntax-private-property-in-object";
-      version = "7.14.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz";
-        sha512 = "bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz";
+        sha512 = "0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==";
       };
     };
-    "@babel/plugin-syntax-top-level-await-7.12.13" = {
+    "@babel/plugin-syntax-top-level-await-7.14.5" = {
       name = "_at_babel_slash_plugin-syntax-top-level-await";
       packageName = "@babel/plugin-syntax-top-level-await";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz";
-        sha512 = "A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz";
+        sha512 = "hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.13.0" = {
+    "@babel/plugin-transform-arrow-functions-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.13.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz";
-        sha512 = "96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz";
+        sha512 = "KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.13.0" = {
+    "@babel/plugin-transform-async-to-generator-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.13.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz";
-        sha512 = "3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz";
+        sha512 = "szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.12.13" = {
+    "@babel/plugin-transform-block-scoped-functions-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz";
-        sha512 = "zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz";
+        sha512 = "dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.14.1" = {
+    "@babel/plugin-transform-block-scoping-7.15.3" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.14.1";
+      version = "7.15.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz";
-        sha512 = "2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz";
+        sha512 = "nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==";
       };
     };
-    "@babel/plugin-transform-classes-7.13.0" = {
+    "@babel/plugin-transform-classes-7.15.4" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.13.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz";
-        sha512 = "9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz";
+        sha512 = "Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.13.0" = {
+    "@babel/plugin-transform-computed-properties-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.13.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz";
-        sha512 = "RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz";
+        sha512 = "pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.13.17" = {
+    "@babel/plugin-transform-destructuring-7.14.7" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.13.17";
+      version = "7.14.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz";
-        sha512 = "UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz";
+        sha512 = "0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.12.13" = {
+    "@babel/plugin-transform-dotall-regex-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz";
-        sha512 = "foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz";
+        sha512 = "loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.12.13" = {
+    "@babel/plugin-transform-duplicate-keys-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz";
-        sha512 = "NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz";
+        sha512 = "iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.12.13" = {
+    "@babel/plugin-transform-exponentiation-operator-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz";
-        sha512 = "fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz";
+        sha512 = "jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==";
       };
     };
-    "@babel/plugin-transform-for-of-7.13.0" = {
+    "@babel/plugin-transform-for-of-7.15.4" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.13.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz";
-        sha512 = "IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz";
+        sha512 = "DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==";
       };
     };
-    "@babel/plugin-transform-function-name-7.12.13" = {
+    "@babel/plugin-transform-function-name-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz";
-        sha512 = "6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz";
+        sha512 = "vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==";
       };
     };
-    "@babel/plugin-transform-literals-7.12.13" = {
+    "@babel/plugin-transform-literals-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz";
-        sha512 = "FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz";
+        sha512 = "ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.12.13" = {
+    "@babel/plugin-transform-member-expression-literals-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz";
-        sha512 = "kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz";
+        sha512 = "WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.14.0" = {
+    "@babel/plugin-transform-modules-amd-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.14.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz";
-        sha512 = "CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz";
+        sha512 = "3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.14.0" = {
+    "@babel/plugin-transform-modules-commonjs-7.15.4" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.14.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz";
-        sha512 = "EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz";
+        sha512 = "qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.13.8" = {
+    "@babel/plugin-transform-modules-systemjs-7.15.4" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.13.8";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz";
-        sha512 = "hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz";
+        sha512 = "fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.14.0" = {
+    "@babel/plugin-transform-modules-umd-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.14.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz";
-        sha512 = "nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz";
+        sha512 = "RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.12.13" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.14.9" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.12.13";
+      version = "7.14.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz";
-        sha512 = "Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz";
+        sha512 = "l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==";
       };
     };
-    "@babel/plugin-transform-new-target-7.12.13" = {
+    "@babel/plugin-transform-new-target-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz";
-        sha512 = "/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz";
+        sha512 = "Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==";
       };
     };
-    "@babel/plugin-transform-object-super-7.12.13" = {
+    "@babel/plugin-transform-object-super-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz";
-        sha512 = "JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz";
+        sha512 = "MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==";
       };
     };
-    "@babel/plugin-transform-parameters-7.13.0" = {
+    "@babel/plugin-transform-parameters-7.15.4" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.13.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz";
-        sha512 = "Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz";
+        sha512 = "9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.12.13" = {
+    "@babel/plugin-transform-property-literals-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz";
-        sha512 = "nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz";
+        sha512 = "r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.13.15" = {
+    "@babel/plugin-transform-regenerator-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.13.15";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz";
-        sha512 = "Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz";
+        sha512 = "NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.12.13" = {
+    "@babel/plugin-transform-reserved-words-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz";
-        sha512 = "xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz";
+        sha512 = "cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.12.13" = {
+    "@babel/plugin-transform-shorthand-properties-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz";
-        sha512 = "xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz";
+        sha512 = "xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==";
       };
     };
-    "@babel/plugin-transform-spread-7.13.0" = {
+    "@babel/plugin-transform-spread-7.14.6" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.13.0";
+      version = "7.14.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz";
-        sha512 = "V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz";
+        sha512 = "Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.12.13" = {
+    "@babel/plugin-transform-sticky-regex-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz";
-        sha512 = "Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz";
+        sha512 = "Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.13.0" = {
+    "@babel/plugin-transform-template-literals-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.13.0";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz";
-        sha512 = "d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz";
+        sha512 = "22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.12.13" = {
+    "@babel/plugin-transform-typeof-symbol-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz";
-        sha512 = "eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz";
+        sha512 = "lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==";
       };
     };
-    "@babel/plugin-transform-unicode-escapes-7.12.13" = {
+    "@babel/plugin-transform-unicode-escapes-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-unicode-escapes";
       packageName = "@babel/plugin-transform-unicode-escapes";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz";
-        sha512 = "0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz";
+        sha512 = "crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.12.13" = {
+    "@babel/plugin-transform-unicode-regex-7.14.5" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.12.13";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz";
-        sha512 = "mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz";
+        sha512 = "UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==";
       };
     };
-    "@babel/preset-env-7.14.1" = {
+    "@babel/preset-env-7.15.4" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.14.1";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.1.tgz";
-        sha512 = "0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.15.4.tgz";
+        sha512 = "4f2nLw+q6ht8gl3sHCmNhmA5W6b1ItLzbH3UrKuJxACHr2eCpk96jwjrAfCAaXaaVwTQGnyUYHY2EWXJGt7TUQ==";
       };
     };
     "@babel/preset-modules-0.1.4" = {
@@ -877,40 +886,40 @@ let
         sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
       };
     };
-    "@babel/runtime-7.14.0" = {
+    "@babel/runtime-7.15.4" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.14.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz";
-        sha512 = "JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz";
+        sha512 = "99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==";
       };
     };
-    "@babel/template-7.12.13" = {
+    "@babel/template-7.15.4" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.12.13";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz";
-        sha512 = "/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz";
+        sha512 = "UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==";
       };
     };
-    "@babel/traverse-7.14.0" = {
+    "@babel/traverse-7.15.4" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.14.0";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz";
-        sha512 = "dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz";
+        sha512 = "W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==";
       };
     };
-    "@babel/types-7.14.1" = {
+    "@babel/types-7.15.4" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.14.1";
+      version = "7.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz";
-        sha512 = "S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz";
+        sha512 = "0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==";
       };
     };
     "@csstools/convert-colors-1.4.0" = {
@@ -922,76 +931,58 @@ let
         sha512 = "5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==";
       };
     };
-    "@discoveryjs/json-ext-0.5.2" = {
+    "@discoveryjs/json-ext-0.5.3" = {
       name = "_at_discoveryjs_slash_json-ext";
       packageName = "@discoveryjs/json-ext";
-      version = "0.5.2";
+      version = "0.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz";
-        sha512 = "HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==";
+        url = "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz";
+        sha512 = "Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==";
       };
     };
-    "@eslint/eslintrc-0.4.0" = {
+    "@eslint/eslintrc-0.4.3" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
-      version = "0.4.0";
+      version = "0.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz";
-        sha512 = "2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==";
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz";
+        sha512 = "J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==";
       };
     };
-    "@hapi/address-2.1.4" = {
-      name = "_at_hapi_slash_address";
-      packageName = "@hapi/address";
-      version = "2.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz";
-        sha512 = "QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==";
-      };
-    };
-    "@hapi/bourne-1.3.2" = {
-      name = "_at_hapi_slash_bourne";
-      packageName = "@hapi/bourne";
-      version = "1.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz";
-        sha512 = "1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==";
-      };
-    };
-    "@hapi/hoek-8.5.1" = {
-      name = "_at_hapi_slash_hoek";
-      packageName = "@hapi/hoek";
-      version = "8.5.1";
+    "@gar/promisify-1.1.2" = {
+      name = "_at_gar_slash_promisify";
+      packageName = "@gar/promisify";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz";
-        sha512 = "yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==";
+        url = "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz";
+        sha512 = "82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==";
       };
     };
-    "@hapi/joi-15.1.1" = {
-      name = "_at_hapi_slash_joi";
-      packageName = "@hapi/joi";
-      version = "15.1.1";
+    "@humanwhocodes/config-array-0.5.0" = {
+      name = "_at_humanwhocodes_slash_config-array";
+      packageName = "@humanwhocodes/config-array";
+      version = "0.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz";
-        sha512 = "entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==";
+        url = "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz";
+        sha512 = "FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==";
       };
     };
-    "@hapi/topo-3.1.6" = {
-      name = "_at_hapi_slash_topo";
-      packageName = "@hapi/topo";
-      version = "3.1.6";
+    "@humanwhocodes/object-schema-1.2.0" = {
+      name = "_at_humanwhocodes_slash_object-schema";
+      packageName = "@humanwhocodes/object-schema";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz";
-        sha512 = "tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==";
+        url = "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz";
+        sha512 = "wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==";
       };
     };
-    "@mdn/browser-compat-data-2.0.7" = {
+    "@mdn/browser-compat-data-3.3.14" = {
       name = "_at_mdn_slash_browser-compat-data";
       packageName = "@mdn/browser-compat-data";
-      version = "2.0.7";
+      version = "3.3.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-2.0.7.tgz";
-        sha512 = "GeeM827DlzFFidn1eKkMBiqXFD2oLsnZbaiGhByPl0vcapsRzUL+t9hDoov1swc9rB2jw64R+ihtzC8qOE9wXw==";
+        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz";
+        sha512 = "n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==";
       };
     };
     "@mrmlnc/readdir-enhanced-2.2.1" = {
@@ -1003,13 +994,13 @@ let
         sha512 = "bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==";
       };
     };
-    "@nodelib/fs.scandir-2.1.4" = {
+    "@nodelib/fs.scandir-2.1.5" = {
       name = "_at_nodelib_slash_fs.scandir";
       packageName = "@nodelib/fs.scandir";
-      version = "2.1.4";
+      version = "2.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
-        sha512 = "33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==";
+        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz";
+        sha512 = "vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==";
       };
     };
     "@nodelib/fs.stat-1.1.3" = {
@@ -1021,22 +1012,31 @@ let
         sha512 = "shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==";
       };
     };
-    "@nodelib/fs.stat-2.0.4" = {
+    "@nodelib/fs.stat-2.0.5" = {
       name = "_at_nodelib_slash_fs.stat";
       packageName = "@nodelib/fs.stat";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
-        sha512 = "IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==";
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz";
+        sha512 = "RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==";
       };
     };
-    "@nodelib/fs.walk-1.2.6" = {
+    "@nodelib/fs.walk-1.2.8" = {
       name = "_at_nodelib_slash_fs.walk";
       packageName = "@nodelib/fs.walk";
-      version = "1.2.6";
+      version = "1.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz";
+        sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==";
+      };
+    };
+    "@npmcli/fs-1.0.0" = {
+      name = "_at_npmcli_slash_fs";
+      packageName = "@npmcli/fs";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
-        sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==";
+        url = "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz";
+        sha512 = "8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==";
       };
     };
     "@npmcli/move-file-1.1.2" = {
@@ -1048,13 +1048,22 @@ let
         sha512 = "1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==";
       };
     };
-    "@rollup/plugin-node-resolve-7.1.3" = {
+    "@rollup/plugin-babel-5.3.0" = {
+      name = "_at_rollup_slash_plugin-babel";
+      packageName = "@rollup/plugin-babel";
+      version = "5.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz";
+        sha512 = "9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==";
+      };
+    };
+    "@rollup/plugin-node-resolve-11.2.1" = {
       name = "_at_rollup_slash_plugin-node-resolve";
       packageName = "@rollup/plugin-node-resolve";
-      version = "7.1.3";
+      version = "11.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz";
-        sha512 = "RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==";
+        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz";
+        sha512 = "yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==";
       };
     };
     "@rollup/plugin-replace-2.4.2" = {
@@ -1102,31 +1111,22 @@ let
         sha512 = "yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==";
       };
     };
-    "@types/anymatch-1.3.1" = {
-      name = "_at_types_slash_anymatch";
-      packageName = "@types/anymatch";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz";
-        sha512 = "/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==";
-      };
-    };
-    "@types/eslint-7.2.10" = {
+    "@types/eslint-7.28.0" = {
       name = "_at_types_slash_eslint";
       packageName = "@types/eslint";
-      version = "7.2.10";
+      version = "7.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz";
-        sha512 = "kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==";
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz";
+        sha512 = "07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==";
       };
     };
-    "@types/eslint-scope-3.7.0" = {
+    "@types/eslint-scope-3.7.1" = {
       name = "_at_types_slash_eslint-scope";
       packageName = "@types/eslint-scope";
-      version = "3.7.0";
+      version = "3.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz";
-        sha512 = "O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==";
+        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz";
+        sha512 = "SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==";
       };
     };
     "@types/estree-0.0.39" = {
@@ -1138,40 +1138,40 @@ let
         sha512 = "EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==";
       };
     };
-    "@types/estree-0.0.47" = {
+    "@types/estree-0.0.50" = {
       name = "_at_types_slash_estree";
       packageName = "@types/estree";
-      version = "0.0.47";
+      version = "0.0.50";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz";
-        sha512 = "c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==";
+        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz";
+        sha512 = "C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==";
       };
     };
-    "@types/glob-7.1.3" = {
+    "@types/glob-7.1.4" = {
       name = "_at_types_slash_glob";
       packageName = "@types/glob";
-      version = "7.1.3";
+      version = "7.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
-        sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz";
+        sha512 = "w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==";
       };
     };
-    "@types/html-minifier-terser-5.1.1" = {
+    "@types/html-minifier-terser-5.1.2" = {
       name = "_at_types_slash_html-minifier-terser";
       packageName = "@types/html-minifier-terser";
-      version = "5.1.1";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
-        sha512 = "giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==";
+        url = "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz";
+        sha512 = "h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==";
       };
     };
-    "@types/json-schema-7.0.7" = {
+    "@types/json-schema-7.0.9" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
-      version = "7.0.7";
+      version = "7.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz";
-        sha512 = "cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==";
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz";
+        sha512 = "qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==";
       };
     };
     "@types/json5-0.0.29" = {
@@ -1192,49 +1192,49 @@ let
         sha1 = "5e31c32dd8791ec4b9ff3ef47c9cb55b2d0d9438";
       };
     };
-    "@types/mdast-3.0.3" = {
+    "@types/mdast-3.0.10" = {
       name = "_at_types_slash_mdast";
       packageName = "@types/mdast";
-      version = "3.0.3";
+      version = "3.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz";
-        sha512 = "SXPBMnFVQg1s00dlMCc/jCdvPqdE4mXaMMCeRlxLDmTAEoegHT53xKtkDnzDTOcmMHUfcjyf36/YYZ6SxRdnsw==";
+        url = "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz";
+        sha512 = "W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==";
       };
     };
-    "@types/minimatch-3.0.4" = {
+    "@types/minimatch-3.0.5" = {
       name = "_at_types_slash_minimatch";
       packageName = "@types/minimatch";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==";
+        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz";
+        sha512 = "Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==";
       };
     };
-    "@types/minimist-1.2.1" = {
+    "@types/minimist-1.2.2" = {
       name = "_at_types_slash_minimist";
       packageName = "@types/minimist";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz";
-        sha512 = "fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==";
+        url = "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz";
+        sha512 = "jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==";
       };
     };
-    "@types/node-15.0.2" = {
+    "@types/node-16.7.10" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "15.0.2";
+      version = "16.7.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-15.0.2.tgz";
-        sha512 = "p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz";
+        sha512 = "S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==";
       };
     };
-    "@types/normalize-package-data-2.4.0" = {
+    "@types/normalize-package-data-2.4.1" = {
       name = "_at_types_slash_normalize-package-data";
       packageName = "@types/normalize-package-data";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
-        sha512 = "f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==";
+        url = "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz";
+        sha512 = "Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==";
       };
     };
     "@types/parse-json-4.0.0" = {
@@ -1246,22 +1246,22 @@ let
         sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==";
       };
     };
-    "@types/q-1.5.4" = {
+    "@types/q-1.5.5" = {
       name = "_at_types_slash_q";
       packageName = "@types/q";
-      version = "1.5.4";
+      version = "1.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz";
-        sha512 = "1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==";
+        url = "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz";
+        sha512 = "L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==";
       };
     };
-    "@types/resolve-0.0.8" = {
+    "@types/resolve-1.17.1" = {
       name = "_at_types_slash_resolve";
       packageName = "@types/resolve";
-      version = "0.0.8";
+      version = "1.17.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz";
-        sha512 = "auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==";
+        url = "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz";
+        sha512 = "yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==";
       };
     };
     "@types/source-list-map-0.1.2" = {
@@ -1273,31 +1273,40 @@ let
         sha512 = "K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==";
       };
     };
-    "@types/tapable-1.0.7" = {
+    "@types/tapable-1.0.8" = {
       name = "_at_types_slash_tapable";
       packageName = "@types/tapable";
-      version = "1.0.7";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.8.tgz";
+        sha512 = "ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==";
+      };
+    };
+    "@types/trusted-types-2.0.2" = {
+      name = "_at_types_slash_trusted-types";
+      packageName = "@types/trusted-types";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz";
-        sha512 = "0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==";
+        url = "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz";
+        sha512 = "F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==";
       };
     };
-    "@types/uglify-js-3.13.0" = {
+    "@types/uglify-js-3.13.1" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
-      version = "3.13.0";
+      version = "3.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz";
-        sha512 = "EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==";
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.1.tgz";
+        sha512 = "O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==";
       };
     };
-    "@types/unist-2.0.3" = {
+    "@types/unist-2.0.6" = {
       name = "_at_types_slash_unist";
       packageName = "@types/unist";
-      version = "2.0.3";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz";
-        sha512 = "FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==";
+        url = "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz";
+        sha512 = "PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==";
       };
     };
     "@types/vfile-3.0.2" = {
@@ -1318,22 +1327,22 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/webpack-4.41.28" = {
+    "@types/webpack-4.41.30" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.28";
+      version = "4.41.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.28.tgz";
-        sha512 = "Nn84RAiJjKRfPFFCVR8LC4ueTtTdfWAMZ03THIzZWRJB+rX24BD3LqPSFnbMscWauEsT4segAsylPDIaZyZyLQ==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.30.tgz";
+        sha512 = "GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA==";
       };
     };
-    "@types/webpack-sources-2.1.0" = {
+    "@types/webpack-sources-3.2.0" = {
       name = "_at_types_slash_webpack-sources";
       packageName = "@types/webpack-sources";
-      version = "2.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz";
-        sha512 = "LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==";
+        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz";
+        sha512 = "Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==";
       };
     };
     "@uupaa/dynamic-import-polyfill-1.0.2" = {
@@ -1345,166 +1354,166 @@ let
         sha512 = "V3vzdXunOKKob1F+2ldv/4iGQoQA/iyqtW8PVlr1v16xCCKL831pGUubT+vs5/9wxTE/zBKEhjIjmmpK6nqw2A==";
       };
     };
-    "@webassemblyjs/ast-1.11.0" = {
+    "@webassemblyjs/ast-1.11.1" = {
       name = "_at_webassemblyjs_slash_ast";
       packageName = "@webassemblyjs/ast";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz";
-        sha512 = "kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==";
+        url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz";
+        sha512 = "ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==";
       };
     };
-    "@webassemblyjs/floating-point-hex-parser-1.11.0" = {
+    "@webassemblyjs/floating-point-hex-parser-1.11.1" = {
       name = "_at_webassemblyjs_slash_floating-point-hex-parser";
       packageName = "@webassemblyjs/floating-point-hex-parser";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz";
-        sha512 = "Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==";
+        url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz";
+        sha512 = "iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==";
       };
     };
-    "@webassemblyjs/helper-api-error-1.11.0" = {
+    "@webassemblyjs/helper-api-error-1.11.1" = {
       name = "_at_webassemblyjs_slash_helper-api-error";
       packageName = "@webassemblyjs/helper-api-error";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz";
-        sha512 = "baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==";
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz";
+        sha512 = "RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==";
       };
     };
-    "@webassemblyjs/helper-buffer-1.11.0" = {
+    "@webassemblyjs/helper-buffer-1.11.1" = {
       name = "_at_webassemblyjs_slash_helper-buffer";
       packageName = "@webassemblyjs/helper-buffer";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz";
-        sha512 = "u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==";
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz";
+        sha512 = "gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==";
       };
     };
-    "@webassemblyjs/helper-numbers-1.11.0" = {
+    "@webassemblyjs/helper-numbers-1.11.1" = {
       name = "_at_webassemblyjs_slash_helper-numbers";
       packageName = "@webassemblyjs/helper-numbers";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz";
-        sha512 = "DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==";
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz";
+        sha512 = "vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==";
       };
     };
-    "@webassemblyjs/helper-wasm-bytecode-1.11.0" = {
+    "@webassemblyjs/helper-wasm-bytecode-1.11.1" = {
       name = "_at_webassemblyjs_slash_helper-wasm-bytecode";
       packageName = "@webassemblyjs/helper-wasm-bytecode";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz";
-        sha512 = "MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==";
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz";
+        sha512 = "PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==";
       };
     };
-    "@webassemblyjs/helper-wasm-section-1.11.0" = {
+    "@webassemblyjs/helper-wasm-section-1.11.1" = {
       name = "_at_webassemblyjs_slash_helper-wasm-section";
       packageName = "@webassemblyjs/helper-wasm-section";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz";
-        sha512 = "3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==";
+        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz";
+        sha512 = "10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==";
       };
     };
-    "@webassemblyjs/ieee754-1.11.0" = {
+    "@webassemblyjs/ieee754-1.11.1" = {
       name = "_at_webassemblyjs_slash_ieee754";
       packageName = "@webassemblyjs/ieee754";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz";
-        sha512 = "KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==";
+        url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz";
+        sha512 = "hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==";
       };
     };
-    "@webassemblyjs/leb128-1.11.0" = {
+    "@webassemblyjs/leb128-1.11.1" = {
       name = "_at_webassemblyjs_slash_leb128";
       packageName = "@webassemblyjs/leb128";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz";
-        sha512 = "aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==";
+        url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz";
+        sha512 = "BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==";
       };
     };
-    "@webassemblyjs/utf8-1.11.0" = {
+    "@webassemblyjs/utf8-1.11.1" = {
       name = "_at_webassemblyjs_slash_utf8";
       packageName = "@webassemblyjs/utf8";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz";
-        sha512 = "A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==";
+        url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz";
+        sha512 = "9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==";
       };
     };
-    "@webassemblyjs/wasm-edit-1.11.0" = {
+    "@webassemblyjs/wasm-edit-1.11.1" = {
       name = "_at_webassemblyjs_slash_wasm-edit";
       packageName = "@webassemblyjs/wasm-edit";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz";
-        sha512 = "JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz";
+        sha512 = "g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==";
       };
     };
-    "@webassemblyjs/wasm-gen-1.11.0" = {
+    "@webassemblyjs/wasm-gen-1.11.1" = {
       name = "_at_webassemblyjs_slash_wasm-gen";
       packageName = "@webassemblyjs/wasm-gen";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz";
-        sha512 = "BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz";
+        sha512 = "F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==";
       };
     };
-    "@webassemblyjs/wasm-opt-1.11.0" = {
+    "@webassemblyjs/wasm-opt-1.11.1" = {
       name = "_at_webassemblyjs_slash_wasm-opt";
       packageName = "@webassemblyjs/wasm-opt";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz";
-        sha512 = "tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz";
+        sha512 = "VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==";
       };
     };
-    "@webassemblyjs/wasm-parser-1.11.0" = {
+    "@webassemblyjs/wasm-parser-1.11.1" = {
       name = "_at_webassemblyjs_slash_wasm-parser";
       packageName = "@webassemblyjs/wasm-parser";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz";
-        sha512 = "6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz";
+        sha512 = "rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==";
       };
     };
-    "@webassemblyjs/wast-printer-1.11.0" = {
+    "@webassemblyjs/wast-printer-1.11.1" = {
       name = "_at_webassemblyjs_slash_wast-printer";
       packageName = "@webassemblyjs/wast-printer";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz";
-        sha512 = "Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==";
+        url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz";
+        sha512 = "IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==";
       };
     };
-    "@webpack-cli/configtest-1.0.2" = {
+    "@webpack-cli/configtest-1.0.4" = {
       name = "_at_webpack-cli_slash_configtest";
       packageName = "@webpack-cli/configtest";
-      version = "1.0.2";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz";
-        sha512 = "3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==";
+        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz";
+        sha512 = "cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==";
       };
     };
-    "@webpack-cli/info-1.2.3" = {
+    "@webpack-cli/info-1.3.0" = {
       name = "_at_webpack-cli_slash_info";
       packageName = "@webpack-cli/info";
-      version = "1.2.3";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz";
-        sha512 = "lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==";
+        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz";
+        sha512 = "ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==";
       };
     };
-    "@webpack-cli/serve-1.3.1" = {
+    "@webpack-cli/serve-1.5.2" = {
       name = "_at_webpack-cli_slash_serve";
       packageName = "@webpack-cli/serve";
-      version = "1.3.1";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz";
-        sha512 = "0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==";
+        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.2.tgz";
+        sha512 = "vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==";
       };
     };
     "@xtuc/ieee754-1.2.0" = {
@@ -1552,22 +1561,31 @@ let
         sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
       };
     };
-    "acorn-8.2.4" = {
+    "acorn-8.4.1" = {
       name = "acorn";
       packageName = "acorn";
-      version = "8.2.4";
+      version = "8.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz";
-        sha512 = "Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz";
+        sha512 = "asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==";
       };
     };
-    "acorn-jsx-5.3.1" = {
+    "acorn-import-assertions-1.7.6" = {
+      name = "acorn-import-assertions";
+      packageName = "acorn-import-assertions";
+      version = "1.7.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz";
+        sha512 = "FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==";
+      };
+    };
+    "acorn-jsx-5.3.2" = {
       name = "acorn-jsx";
       packageName = "acorn-jsx";
-      version = "5.3.1";
+      version = "5.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
-        sha512 = "K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==";
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz";
+        sha512 = "rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==";
       };
     };
     "aggregate-error-3.1.0" = {
@@ -1588,13 +1606,13 @@ let
         sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
       };
     };
-    "ajv-8.2.0" = {
+    "ajv-8.6.2" = {
       name = "ajv";
       packageName = "ajv";
-      version = "8.2.0";
+      version = "8.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz";
-        sha512 = "WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz";
+        sha512 = "9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==";
       };
     };
     "ajv-errors-1.0.1" = {
@@ -1858,13 +1876,13 @@ let
         sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
       };
     };
-    "ast-metadata-inferer-0.4.0" = {
+    "ast-metadata-inferer-0.7.0" = {
       name = "ast-metadata-inferer";
       packageName = "ast-metadata-inferer";
-      version = "0.4.0";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.4.0.tgz";
-        sha512 = "tKHdBe8N/Vq2nLAm4YPBVREVZjMux6KrqyPfNQgIbDl0t7HaNSmy8w4OyVHYg/cvyn5BW7o7pVwpjPte89Zhcg==";
+        url = "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz";
+        sha512 = "OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==";
       };
     };
     "astral-regex-1.0.0" = {
@@ -1912,6 +1930,15 @@ let
         sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
       };
     };
+    "at-least-node-1.0.0" = {
+      name = "at-least-node";
+      packageName = "at-least-node";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz";
+        sha512 = "+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==";
+      };
+    };
     "atob-2.1.2" = {
       name = "atob";
       packageName = "atob";
@@ -1930,15 +1957,6 @@ let
         sha512 = "XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==";
       };
     };
-    "babel-extract-comments-1.0.0" = {
-      name = "babel-extract-comments";
-      packageName = "babel-extract-comments";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz";
-        sha512 = "qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==";
-      };
-    };
     "babel-loader-8.2.2" = {
       name = "babel-loader";
       packageName = "babel-loader";
@@ -1966,67 +1984,31 @@ let
         sha512 = "fqdut9hGeaAgdX3sbAY25TkqA7LPmZB+Hf1XI67AppvhUw1cBST58BPwl5kPwDZYIvmqRwnsVKM0lppsQAsxhg==";
       };
     };
-    "babel-plugin-polyfill-corejs2-0.2.0" = {
+    "babel-plugin-polyfill-corejs2-0.2.2" = {
       name = "babel-plugin-polyfill-corejs2";
       packageName = "babel-plugin-polyfill-corejs2";
-      version = "0.2.0";
+      version = "0.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz";
-        sha512 = "9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz";
+        sha512 = "kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==";
       };
     };
-    "babel-plugin-polyfill-corejs3-0.2.0" = {
+    "babel-plugin-polyfill-corejs3-0.2.4" = {
       name = "babel-plugin-polyfill-corejs3";
       packageName = "babel-plugin-polyfill-corejs3";
-      version = "0.2.0";
+      version = "0.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz";
-        sha512 = "zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz";
+        sha512 = "z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==";
       };
     };
-    "babel-plugin-polyfill-regenerator-0.2.0" = {
+    "babel-plugin-polyfill-regenerator-0.2.2" = {
       name = "babel-plugin-polyfill-regenerator";
       packageName = "babel-plugin-polyfill-regenerator";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz";
-        sha512 = "J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==";
-      };
-    };
-    "babel-plugin-syntax-object-rest-spread-6.13.0" = {
-      name = "babel-plugin-syntax-object-rest-spread";
-      packageName = "babel-plugin-syntax-object-rest-spread";
-      version = "6.13.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz";
-        sha1 = "fd6536f2bce13836ffa3a5458c4903a597bb3bf5";
-      };
-    };
-    "babel-plugin-transform-object-rest-spread-6.26.0" = {
-      name = "babel-plugin-transform-object-rest-spread";
-      packageName = "babel-plugin-transform-object-rest-spread";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz";
-        sha1 = "0f36692d50fef6b7e2d4b3ac1478137a963b7b06";
-      };
-    };
-    "babel-runtime-6.26.0" = {
-      name = "babel-runtime";
-      packageName = "babel-runtime";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz";
-        sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
-      };
-    };
-    "babylon-6.18.0" = {
-      name = "babylon";
-      packageName = "babylon";
-      version = "6.18.0";
+      version = "0.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz";
-        sha512 = "q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz";
+        sha512 = "Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==";
       };
     };
     "bail-1.0.5" = {
@@ -2110,13 +2092,13 @@ let
         sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
       };
     };
-    "blurhash-1.1.3" = {
+    "blurhash-1.1.4" = {
       name = "blurhash";
       packageName = "blurhash";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.3.tgz";
-        sha512 = "yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw==";
+        url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.4.tgz";
+        sha512 = "MXIPz6zwYUKayju+Uidf83KhH0vodZfeRl6Ich8Gu+KGl0JgKiFq9LsfqV7cVU5fKD/AotmduZqvOfrGKOfTaA==";
       };
     };
     "body-parser-1.19.0" = {
@@ -2182,22 +2164,22 @@ let
         sha1 = "0bd76704258be829b2398bb50e4b62d1a166b0b9";
       };
     };
-    "browserslist-4.16.6" = {
+    "browserslist-4.17.0" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.16.6";
+      version = "4.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz";
-        sha512 = "Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz";
+        sha512 = "g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==";
       };
     };
-    "buffer-from-1.1.1" = {
+    "buffer-from-1.1.2" = {
       name = "buffer-from";
       packageName = "buffer-from";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
+        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz";
+        sha512 = "E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==";
       };
     };
     "buffer-indexof-1.1.1" = {
@@ -2236,13 +2218,13 @@ let
         sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
-    "cacache-15.0.6" = {
+    "cacache-15.3.0" = {
       name = "cacache";
       packageName = "cacache";
-      version = "15.0.6";
+      version = "15.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz";
-        sha512 = "g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==";
+        url = "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz";
+        sha512 = "VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==";
       };
     };
     "cache-base-1.0.1" = {
@@ -2335,15 +2317,6 @@ let
         sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
-    "camelcase-6.2.0" = {
-      name = "camelcase";
-      packageName = "camelcase";
-      version = "6.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz";
-        sha512 = "c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==";
-      };
-    };
     "camelcase-keys-4.2.0" = {
       name = "camelcase-keys";
       packageName = "camelcase-keys";
@@ -2371,22 +2344,22 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-db-1.0.30001222" = {
+    "caniuse-db-1.0.30001255" = {
       name = "caniuse-db";
       packageName = "caniuse-db";
-      version = "1.0.30001222";
+      version = "1.0.30001255";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001222.tgz";
-        sha512 = "ZLsTZ9Rqz407NLdjwqDnTq9SahH+eCu+qCXh91M+fK+7CgbNrz510I7RYCiG11SIklDxvvmD9BqvdPOA//y9Rg==";
+        url = "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001255.tgz";
+        sha512 = "+FV7TQX0PoThDIwNvRpoUbhmKJzAB8ZGc8xDNTRltvpbL7d7Si+HTOn1NDdZh4yw2JUqnV6LOYsAcG20lH7gGg==";
       };
     };
-    "caniuse-lite-1.0.30001222" = {
+    "caniuse-lite-1.0.30001255" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001222";
+      version = "1.0.30001255";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001222.tgz";
-        sha512 = "rPmwUK0YMjfMlZVmH6nVB5U3YJ5Wnx3vmT5lnRO3nIKO8bJ+TRWMbGuuiSugDJqESy/lz+1hSrlQEagCtoOAWQ==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz";
+        sha512 = "F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==";
       };
     };
     "ccount-1.1.0" = {
@@ -2416,13 +2389,13 @@ let
         sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
       };
     };
-    "chalk-4.1.1" = {
+    "chalk-4.1.2" = {
       name = "chalk";
       packageName = "chalk";
-      version = "4.1.1";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz";
-        sha512 = "diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==";
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz";
+        sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==";
       };
     };
     "character-entities-1.2.4" = {
@@ -2470,13 +2443,13 @@ let
         sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
       };
     };
-    "chokidar-3.5.1" = {
+    "chokidar-3.5.2" = {
       name = "chokidar";
       packageName = "chokidar";
-      version = "3.5.1";
+      version = "3.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz";
-        sha512 = "9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==";
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz";
+        sha512 = "ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==";
       };
     };
     "chownr-2.0.0" = {
@@ -2606,13 +2579,13 @@ let
         sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
       };
     };
-    "color-3.1.3" = {
+    "color-3.2.1" = {
       name = "color";
       packageName = "color";
-      version = "3.1.3";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color/-/color-3.1.3.tgz";
-        sha512 = "xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==";
+        url = "https://registry.npmjs.org/color/-/color-3.2.1.tgz";
+        sha512 = "aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==";
       };
     };
     "color-convert-1.9.3" = {
@@ -2651,22 +2624,22 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.5.5" = {
+    "color-string-1.6.0" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.5.5";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz";
-        sha512 = "jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz";
+        sha512 = "c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==";
       };
     };
-    "colorette-1.2.2" = {
+    "colorette-1.3.0" = {
       name = "colorette";
       packageName = "colorette";
-      version = "1.2.2";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz";
-        sha512 = "MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==";
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz";
+        sha512 = "ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==";
       };
     };
     "commander-2.20.3" = {
@@ -2768,15 +2741,6 @@ let
         sha512 = "e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==";
       };
     };
-    "contains-path-0.1.0" = {
-      name = "contains-path";
-      packageName = "contains-path";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz";
-        sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
-      };
-    };
     "content-disposition-0.5.3" = {
       name = "content-disposition";
       packageName = "content-disposition";
@@ -2795,13 +2759,13 @@ let
         sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
       };
     };
-    "convert-source-map-1.7.0" = {
+    "convert-source-map-1.8.0" = {
       name = "convert-source-map";
       packageName = "convert-source-map";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
-        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz";
+        sha512 = "+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==";
       };
     };
     "cookie-0.4.0" = {
@@ -2840,40 +2804,31 @@ let
         sha512 = "MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==";
       };
     };
-    "core-js-2.6.12" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "2.6.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz";
-        sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
-      };
-    };
-    "core-js-3.11.2" = {
+    "core-js-3.17.2" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.11.2";
+      version = "3.17.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.11.2.tgz";
-        sha512 = "3tfrrO1JpJSYGKnd9LKTBPqgUES/UYiCzMKeqwR1+jF16q4kD1BY2NvqkfuzXwQ6+CIWm55V9cjD7PQd+hijdw==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.17.2.tgz";
+        sha512 = "XkbXqhcXeMHPRk2ItS+zQYliAMilea2euoMsnpRRdDad6b2VY6CQQcwz1K8AnWesfw4p165RzY0bTnr3UrbYiA==";
       };
     };
-    "core-js-compat-3.11.2" = {
+    "core-js-compat-3.17.2" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.11.2";
+      version = "3.17.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.2.tgz";
-        sha512 = "gYhNwu7AJjecNtRrIfyoBabQ3ZG+llfPmg9BifIX8yxIpDyfNLRM73zIjINSm6z3dMdI1nwNC9C7uiy4pIC6cw==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.17.2.tgz";
+        sha512 = "lHnt7A1Oqplebl5i0MrQyFv/yyEzr9p29OjlkcsFRDDgHwwQyVckfRGJ790qzXhkwM8ba4SFHHa2sO+T5f1zGg==";
       };
     };
-    "core-util-is-1.0.2" = {
+    "core-util-is-1.0.3" = {
       name = "core-util-is";
       packageName = "core-util-is";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz";
+        sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
       };
     };
     "cosmiconfig-5.2.1" = {
@@ -2885,13 +2840,13 @@ let
         sha512 = "H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==";
       };
     };
-    "cosmiconfig-7.0.0" = {
+    "cosmiconfig-7.0.1" = {
       name = "cosmiconfig";
       packageName = "cosmiconfig";
-      version = "7.0.0";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
-        sha512 = "pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==";
+        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz";
+        sha512 = "a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==";
       };
     };
     "cross-spawn-6.0.5" = {
@@ -2912,13 +2867,13 @@ let
         sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
       };
     };
-    "crypto-random-string-1.0.0" = {
+    "crypto-random-string-2.0.0" = {
       name = "crypto-random-string";
       packageName = "crypto-random-string";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz";
-        sha1 = "a230f64f568310e1498009940790ec99545bca7e";
+        url = "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz";
+        sha512 = "v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==";
       };
     };
     "css-blank-pseudo-0.1.4" = {
@@ -2957,13 +2912,13 @@ let
         sha512 = "Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==";
       };
     };
-    "css-loader-5.2.4" = {
+    "css-loader-5.2.7" = {
       name = "css-loader";
       packageName = "css-loader";
-      version = "5.2.4";
+      version = "5.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz";
-        sha512 = "OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==";
+        url = "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz";
+        sha512 = "Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==";
       };
     };
     "css-prefers-color-scheme-3.1.1" = {
@@ -2984,6 +2939,15 @@ let
         sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
       };
     };
+    "css-select-4.1.3" = {
+      name = "css-select";
+      packageName = "css-select";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz";
+        sha512 = "gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==";
+      };
+    };
     "css-select-base-adapter-0.1.1" = {
       name = "css-select-base-adapter";
       packageName = "css-select-base-adapter";
@@ -3020,6 +2984,15 @@ let
         sha512 = "ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==";
       };
     };
+    "css-what-5.0.1" = {
+      name = "css-what";
+      packageName = "css-what";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz";
+        sha512 = "FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==";
+      };
+    };
     "cssdb-4.4.0" = {
       name = "cssdb";
       packageName = "cssdb";
@@ -3128,13 +3101,13 @@ let
         sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
       };
     };
-    "date-fns-2.21.1" = {
+    "date-fns-2.23.0" = {
       name = "date-fns";
       packageName = "date-fns";
-      version = "2.21.1";
+      version = "2.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/date-fns/-/date-fns-2.21.1.tgz";
-        sha512 = "m1WR0xGiC6j6jNFAyW4Nvh4WxAi4JF4w9jRJwSI8nBmNcyZXPcP9VUQG+6gHQXAmqaGEKDKhOqAtENDC941UkA==";
+        url = "https://registry.npmjs.org/date-fns/-/date-fns-2.23.0.tgz";
+        sha512 = "5ycpauovVyAk0kXNZz6ZoB9AYMZB4DObse7P3BPWmyEjXNORTI8EJ6X0uaSAq4sCHzM1uajzrkr6HnsLQpxGXA==";
       };
     };
     "debug-2.6.9" = {
@@ -3200,13 +3173,22 @@ let
         sha512 = "yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==";
       };
     };
-    "deep-is-0.1.3" = {
+    "deep-is-0.1.4" = {
       name = "deep-is";
       packageName = "deep-is";
-      version = "0.1.3";
+      version = "0.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
-        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz";
+        sha512 = "oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==";
+      };
+    };
+    "deepmerge-4.2.2" = {
+      name = "deepmerge";
+      packageName = "deepmerge";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz";
+        sha512 = "FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==";
       };
     };
     "default-gateway-4.2.0" = {
@@ -3281,13 +3263,13 @@ let
         sha1 = "978857442c44749e4206613e37946205826abd80";
       };
     };
-    "detect-node-2.0.5" = {
+    "detect-node-2.1.0" = {
       name = "detect-node";
       packageName = "detect-node";
-      version = "2.0.5";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz";
-        sha512 = "qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==";
+        url = "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz";
+        sha512 = "T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==";
       };
     };
     "dir-glob-2.2.2" = {
@@ -3317,13 +3299,13 @@ let
         sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
       };
     };
-    "dns-packet-1.3.1" = {
+    "dns-packet-1.3.4" = {
       name = "dns-packet";
       packageName = "dns-packet";
-      version = "1.3.1";
+      version = "1.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz";
-        sha512 = "0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==";
+        url = "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz";
+        sha512 = "BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==";
       };
     };
     "dns-txt-2.0.2" = {
@@ -3335,13 +3317,13 @@ let
         sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
       };
     };
-    "doctrine-1.5.0" = {
+    "doctrine-2.1.0" = {
       name = "doctrine";
       packageName = "doctrine";
-      version = "1.5.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz";
-        sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz";
+        sha512 = "35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==";
       };
     };
     "doctrine-3.0.0" = {
@@ -3371,13 +3353,13 @@ let
         sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
       };
     };
-    "dom-serializer-1.3.1" = {
+    "dom-serializer-1.3.2" = {
       name = "dom-serializer";
       packageName = "dom-serializer";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.1.tgz";
-        sha512 = "Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q==";
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz";
+        sha512 = "5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==";
       };
     };
     "dom7-3.0.0" = {
@@ -3425,13 +3407,13 @@ let
         sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
       };
     };
-    "domhandler-4.2.0" = {
+    "domhandler-4.2.2" = {
       name = "domhandler";
       packageName = "domhandler";
-      version = "4.2.0";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz";
-        sha512 = "zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==";
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz";
+        sha512 = "PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==";
       };
     };
     "domutils-1.7.0" = {
@@ -3443,13 +3425,13 @@ let
         sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
       };
     };
-    "domutils-2.6.0" = {
+    "domutils-2.8.0" = {
       name = "domutils";
       packageName = "domutils";
-      version = "2.6.0";
+      version = "2.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-2.6.0.tgz";
-        sha512 = "y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA==";
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz";
+        sha512 = "w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==";
       };
     };
     "dot-case-3.0.4" = {
@@ -3488,13 +3470,13 @@ let
         sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
       };
     };
-    "electron-to-chromium-1.3.726" = {
+    "electron-to-chromium-1.3.830" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.726";
+      version = "1.3.830";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.726.tgz";
-        sha512 = "dw7WmrSu/JwtACiBzth8cuKf62NKL1xVJuNvyOg0jvruN/n4NLtGYoTzciQquCPNaS2eR+BT5GrxHbslfc/w1w==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz";
+        sha512 = "gBN7wNAxV5vl1430dG+XRcQhD4pIeYeak6p6rjdCtlz5wWNwDad8jwvphe5oi1chL5MV6RNRikfffBBiFuj+rQ==";
       };
     };
     "emoji-regex-7.0.3" = {
@@ -3542,13 +3524,13 @@ let
         sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
       };
     };
-    "enhanced-resolve-5.8.0" = {
+    "enhanced-resolve-5.8.2" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "5.8.0";
+      version = "5.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz";
-        sha512 = "Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz";
+        sha512 = "F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==";
       };
     };
     "enquirer-2.3.6" = {
@@ -3614,22 +3596,22 @@ let
         sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
       };
     };
-    "es-abstract-1.18.0" = {
+    "es-abstract-1.18.5" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.18.0";
+      version = "1.18.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz";
-        sha512 = "LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz";
+        sha512 = "DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==";
       };
     };
-    "es-module-lexer-0.4.1" = {
+    "es-module-lexer-0.7.1" = {
       name = "es-module-lexer";
       packageName = "es-module-lexer";
-      version = "0.4.1";
+      version = "0.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz";
-        sha512 = "ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==";
+        url = "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz";
+        sha512 = "MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -3704,40 +3686,49 @@ let
         sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
       };
     };
-    "eslint-7.25.0" = {
+    "escape-string-regexp-4.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+      };
+    };
+    "eslint-7.32.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.25.0";
+      version = "7.32.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz";
-        sha512 = "TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz";
+        sha512 = "VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==";
       };
     };
-    "eslint-import-resolver-node-0.3.4" = {
+    "eslint-import-resolver-node-0.3.6" = {
       name = "eslint-import-resolver-node";
       packageName = "eslint-import-resolver-node";
-      version = "0.3.4";
+      version = "0.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
-        sha512 = "ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==";
+        url = "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz";
+        sha512 = "0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==";
       };
     };
-    "eslint-module-utils-2.6.0" = {
+    "eslint-module-utils-2.6.2" = {
       name = "eslint-module-utils";
       packageName = "eslint-module-utils";
-      version = "2.6.0";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
-        sha512 = "6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==";
+        url = "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz";
+        sha512 = "QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==";
       };
     };
-    "eslint-plugin-compat-3.9.0" = {
+    "eslint-plugin-compat-3.13.0" = {
       name = "eslint-plugin-compat";
       packageName = "eslint-plugin-compat";
-      version = "3.9.0";
+      version = "3.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.9.0.tgz";
-        sha512 = "lt3l5PHFHVEYSZ5zijcoYvtQJPsBifRiH5N0Et57KwVu7l/yxmHhSG6VJiLMa/lXrg93Qu8049RNQOMn0+yJBg==";
+        url = "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-3.13.0.tgz";
+        sha512 = "cv8IYMuTXm7PIjMVDN2y4k/KVnKZmoNGHNq27/9dLstOLydKblieIv+oe2BN2WthuXnFNhaNvv3N1Bvl4dbIGA==";
       };
     };
     "eslint-plugin-eslint-comments-3.2.0" = {
@@ -3749,13 +3740,13 @@ let
         sha512 = "0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==";
       };
     };
-    "eslint-plugin-import-2.22.1" = {
+    "eslint-plugin-import-2.24.2" = {
       name = "eslint-plugin-import";
       packageName = "eslint-plugin-import";
-      version = "2.22.1";
+      version = "2.24.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz";
-        sha512 = "8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==";
+        url = "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz";
+        sha512 = "hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==";
       };
     };
     "eslint-plugin-promise-4.3.1" = {
@@ -3866,15 +3857,6 @@ let
         sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
       };
     };
-    "estree-walker-0.6.1" = {
-      name = "estree-walker";
-      packageName = "estree-walker";
-      version = "0.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz";
-        sha512 = "SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==";
-      };
-    };
     "estree-walker-1.0.1" = {
       name = "estree-walker";
       packageName = "estree-walker";
@@ -3947,13 +3929,13 @@ let
         sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
       };
     };
-    "execa-5.0.0" = {
+    "execa-5.1.1" = {
       name = "execa";
       packageName = "execa";
-      version = "5.0.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz";
-        sha512 = "ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==";
+        url = "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz";
+        sha512 = "8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==";
       };
     };
     "execall-1.0.0" = {
@@ -4001,13 +3983,13 @@ let
         sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
       };
     };
-    "ext-1.4.0" = {
+    "ext-1.5.0" = {
       name = "ext";
       packageName = "ext";
-      version = "1.4.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
-        sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==";
+        url = "https://registry.npmjs.org/ext/-/ext-1.5.0.tgz";
+        sha512 = "+ONcYoWj/SoQwUofMr94aGu05Ou4FepKi7N7b+O8T4jVfyIsZQV1/xeS8jpaBzF0csAk0KLXoHCxU7cKYZjo1Q==";
       };
     };
     "extend-3.0.2" = {
@@ -4064,13 +4046,13 @@ let
         sha512 = "g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==";
       };
     };
-    "fast-glob-3.2.5" = {
+    "fast-glob-3.2.7" = {
       name = "fast-glob";
       packageName = "fast-glob";
-      version = "3.2.5";
+      version = "3.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz";
-        sha512 = "2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==";
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz";
+        sha512 = "rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -4109,22 +4091,22 @@ let
         sha512 = "On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==";
       };
     };
-    "fastq-1.11.0" = {
+    "fastq-1.12.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.11.0";
+      version = "1.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz";
-        sha512 = "7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz";
+        sha512 = "VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==";
       };
     };
-    "faye-websocket-0.11.3" = {
+    "faye-websocket-0.11.4" = {
       name = "faye-websocket";
       packageName = "faye-websocket";
-      version = "0.11.3";
+      version = "0.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz";
-        sha512 = "D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==";
+        url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz";
+        sha512 = "CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==";
       };
     };
     "file-entry-cache-4.0.0" = {
@@ -4190,13 +4172,13 @@ let
         sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
-    "find-cache-dir-3.3.1" = {
+    "find-cache-dir-3.3.2" = {
       name = "find-cache-dir";
       packageName = "find-cache-dir";
-      version = "3.3.1";
+      version = "3.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
-        sha512 = "t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==";
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz";
+        sha512 = "wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==";
       };
     };
     "find-up-2.1.0" = {
@@ -4226,6 +4208,15 @@ let
         sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
       };
     };
+    "find-up-5.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz";
+        sha512 = "78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==";
+      };
+    };
     "flat-cache-2.0.1" = {
       name = "flat-cache";
       packageName = "flat-cache";
@@ -4253,13 +4244,13 @@ let
         sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==";
       };
     };
-    "flatted-3.1.1" = {
+    "flatted-3.2.2" = {
       name = "flatted";
       packageName = "flatted";
-      version = "3.1.1";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz";
-        sha512 = "zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==";
+        url = "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz";
+        sha512 = "JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==";
       };
     };
     "flatten-1.0.3" = {
@@ -4271,22 +4262,22 @@ let
         sha512 = "dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==";
       };
     };
-    "flv.js-1.5.0" = {
+    "flv.js-1.6.1" = {
       name = "flv.js";
       packageName = "flv.js";
-      version = "1.5.0";
+      version = "1.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flv.js/-/flv.js-1.5.0.tgz";
-        sha512 = "7tFwccqkFXpA7RIED0KvuNny2qVnpuGc5nTGsRpzrCT+qtwIaZyciK5UgyvgtlAMYaPFzYS0wdI92JiSBKOyXw==";
+        url = "https://registry.npmjs.org/flv.js/-/flv.js-1.6.1.tgz";
+        sha512 = "6/ffUPbFaYf7QsdcZC43PQmEsi9Fwlp89Oq0bz8gNlj0eSMUhyHFxESxuLNSFgIEle+ChxqoF7kL2pL7xdam2A==";
       };
     };
-    "follow-redirects-1.14.0" = {
+    "follow-redirects-1.14.3" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.14.0";
+      version = "1.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz";
-        sha512 = "0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.3.tgz";
+        sha512 = "3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==";
       };
     };
     "fontsource-noto-sans-3.1.5" = {
@@ -4343,13 +4334,13 @@ let
         sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
       };
     };
-    "forwarded-0.1.2" = {
+    "forwarded-0.2.0" = {
       name = "forwarded";
       packageName = "forwarded";
-      version = "0.1.2";
+      version = "0.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
-        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz";
+        sha512 = "buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==";
       };
     };
     "fragment-cache-0.2.1" = {
@@ -4370,13 +4361,13 @@ let
         sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
       };
     };
-    "fs-extra-8.1.0" = {
+    "fs-extra-9.1.0" = {
       name = "fs-extra";
       packageName = "fs-extra";
-      version = "8.1.0";
+      version = "9.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
-        sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz";
+        sha512 = "hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==";
       };
     };
     "fs-minipass-2.1.0" = {
@@ -4523,13 +4514,13 @@ let
         sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
       };
     };
-    "glob-7.1.6" = {
+    "glob-7.1.7" = {
       name = "glob";
       packageName = "glob";
-      version = "7.1.6";
+      version = "7.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz";
+        sha512 = "OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==";
       };
     };
     "glob-parent-3.1.0" = {
@@ -4595,31 +4586,22 @@ let
         sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
       };
     };
-    "globals-12.4.0" = {
-      name = "globals";
-      packageName = "globals";
-      version = "12.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz";
-        sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
-      };
-    };
-    "globals-13.8.0" = {
+    "globals-13.11.0" = {
       name = "globals";
       packageName = "globals";
-      version = "13.8.0";
+      version = "13.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz";
-        sha512 = "rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==";
+        url = "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz";
+        sha512 = "08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==";
       };
     };
-    "globby-11.0.3" = {
+    "globby-11.0.4" = {
       name = "globby";
       packageName = "globby";
-      version = "11.0.3";
+      version = "11.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz";
-        sha512 = "ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==";
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz";
+        sha512 = "9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==";
       };
     };
     "globby-6.1.0" = {
@@ -4658,13 +4640,13 @@ let
         sha512 = "otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==";
       };
     };
-    "graceful-fs-4.2.6" = {
+    "graceful-fs-4.2.8" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.6";
+      version = "4.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
-        sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz";
+        sha512 = "qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==";
       };
     };
     "handle-thing-2.0.1" = {
@@ -4748,6 +4730,15 @@ let
         sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
       };
     };
+    "has-tostringtag-1.0.0" = {
+      name = "has-tostringtag";
+      packageName = "has-tostringtag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz";
+        sha512 = "kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==";
+      };
+    };
     "has-value-0.3.1" = {
       name = "has-value";
       packageName = "has-value";
@@ -4937,6 +4928,15 @@ let
         sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==";
       };
     };
+    "htmlparser2-6.1.0" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz";
+        sha512 = "gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==";
+      };
+    };
     "http-deceiver-1.2.7" = {
       name = "http-deceiver";
       packageName = "http-deceiver";
@@ -5009,13 +5009,13 @@ let
         sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
       };
     };
-    "iconv-lite-0.6.2" = {
+    "iconv-lite-0.6.3" = {
       name = "iconv-lite";
       packageName = "iconv-lite";
-      version = "0.6.2";
+      version = "0.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz";
-        sha512 = "2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==";
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz";
+        sha512 = "4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==";
       };
     };
     "icss-utils-5.1.0" = {
@@ -5027,6 +5027,15 @@ let
         sha512 = "soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==";
       };
     };
+    "idb-6.1.3" = {
+      name = "idb";
+      packageName = "idb";
+      version = "6.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/idb/-/idb-6.1.3.tgz";
+        sha512 = "oIRDpVcs5KXpI1hRnTJUwkY63RB/7iqu9nSNuzXN8TLHjs7oO20IoPFbBTsqxIL5IjzIUDi+FXlVcK4zm26J8A==";
+      };
+    };
     "ignore-4.0.6" = {
       name = "ignore";
       packageName = "ignore";
@@ -5216,6 +5225,15 @@ let
         sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==";
       };
     };
+    "internal-slot-1.0.3" = {
+      name = "internal-slot";
+      packageName = "internal-slot";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz";
+        sha512 = "O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==";
+      };
+    };
     "interpret-2.2.0" = {
       name = "interpret";
       packageName = "interpret";
@@ -5333,13 +5351,13 @@ let
         sha512 = "UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==";
       };
     };
-    "is-arguments-1.1.0" = {
+    "is-arguments-1.1.1" = {
       name = "is-arguments";
       packageName = "is-arguments";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz";
-        sha512 = "1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==";
+        url = "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz";
+        sha512 = "8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==";
       };
     };
     "is-arrayish-0.2.1" = {
@@ -5360,13 +5378,13 @@ let
         sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
       };
     };
-    "is-bigint-1.0.2" = {
+    "is-bigint-1.0.4" = {
       name = "is-bigint";
       packageName = "is-bigint";
-      version = "1.0.2";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz";
-        sha512 = "0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==";
+        url = "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz";
+        sha512 = "zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==";
       };
     };
     "is-binary-path-1.0.1" = {
@@ -5387,13 +5405,13 @@ let
         sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
-    "is-boolean-object-1.1.0" = {
+    "is-boolean-object-1.1.2" = {
       name = "is-boolean-object";
       packageName = "is-boolean-object";
-      version = "1.1.0";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz";
-        sha512 = "a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==";
+        url = "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz";
+        sha512 = "gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==";
       };
     };
     "is-buffer-1.1.6" = {
@@ -5414,13 +5432,13 @@ let
         sha512 = "i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==";
       };
     };
-    "is-callable-1.2.3" = {
+    "is-callable-1.2.4" = {
       name = "is-callable";
       packageName = "is-callable";
-      version = "1.2.3";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz";
-        sha512 = "J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==";
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz";
+        sha512 = "nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==";
       };
     };
     "is-color-stop-1.1.0" = {
@@ -5432,13 +5450,13 @@ let
         sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
       };
     };
-    "is-core-module-2.3.0" = {
+    "is-core-module-2.6.0" = {
       name = "is-core-module";
       packageName = "is-core-module";
-      version = "2.3.0";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz";
-        sha512 = "xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==";
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz";
+        sha512 = "wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==";
       };
     };
     "is-data-descriptor-0.1.4" = {
@@ -5459,13 +5477,13 @@ let
         sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
       };
     };
-    "is-date-object-1.0.2" = {
+    "is-date-object-1.0.5" = {
       name = "is-date-object";
       packageName = "is-date-object";
-      version = "1.0.2";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz";
+        sha512 = "9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==";
       };
     };
     "is-decimal-1.0.4" = {
@@ -5612,13 +5630,13 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
-    "is-number-object-1.0.4" = {
+    "is-number-object-1.0.6" = {
       name = "is-number-object";
       packageName = "is-number-object";
-      version = "1.0.4";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz";
-        sha512 = "zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==";
+        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz";
+        sha512 = "bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==";
       };
     };
     "is-obj-1.0.1" = {
@@ -5693,13 +5711,13 @@ let
         sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
       };
     };
-    "is-regex-1.1.2" = {
+    "is-regex-1.1.4" = {
       name = "is-regex";
       packageName = "is-regex";
-      version = "1.1.2";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz";
-        sha512 = "axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==";
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz";
+        sha512 = "kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==";
       };
     };
     "is-regexp-1.0.0" = {
@@ -5738,22 +5756,22 @@ let
         sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
       };
     };
-    "is-stream-2.0.0" = {
+    "is-stream-2.0.1" = {
       name = "is-stream";
       packageName = "is-stream";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
-        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz";
+        sha512 = "hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==";
       };
     };
-    "is-string-1.0.5" = {
+    "is-string-1.0.7" = {
       name = "is-string";
       packageName = "is-string";
-      version = "1.0.5";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz";
-        sha512 = "buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==";
+        url = "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz";
+        sha512 = "tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==";
       };
     };
     "is-supported-regexp-flag-1.0.1" = {
@@ -5765,13 +5783,13 @@ let
         sha512 = "3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==";
       };
     };
-    "is-symbol-1.0.3" = {
+    "is-symbol-1.0.4" = {
       name = "is-symbol";
       packageName = "is-symbol";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
-        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz";
+        sha512 = "C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -5882,22 +5900,22 @@ let
         sha512 = "fwAF1G89amm3uO2Yw0E26fW5X6JoyRUnOdBEeuSN04/NpdKKVHD4u53dgqF0jHzXNuKdn5eh0AuV37cMKzBanA==";
       };
     };
-    "jest-worker-24.9.0" = {
+    "jest-worker-26.6.2" = {
       name = "jest-worker";
       packageName = "jest-worker";
-      version = "24.9.0";
+      version = "26.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz";
-        sha512 = "51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==";
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz";
+        sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
       };
     };
-    "jest-worker-26.6.2" = {
+    "jest-worker-27.1.0" = {
       name = "jest-worker";
       packageName = "jest-worker";
-      version = "26.6.2";
+      version = "27.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz";
-        sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.0.tgz";
+        sha512 = "mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg==";
       };
     };
     "jquery-3.6.0" = {
@@ -5972,6 +5990,15 @@ let
         sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
       };
     };
+    "json-schema-0.3.0" = {
+      name = "json-schema";
+      packageName = "json-schema";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.3.0.tgz";
+        sha512 = "TYfxx36xfl52Rf1LU9HyWSLGPdYLL+SQ8/E/0yVyKG8wCCDaSrhPap0vEdlsZWRaS6tnKKLPGiEJGiREVC8kxQ==";
+      };
+    };
     "json-schema-traverse-0.4.1" = {
       name = "json-schema-traverse";
       packageName = "json-schema-traverse";
@@ -6026,31 +6053,40 @@ let
         sha512 = "f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==";
       };
     };
-    "jsonfile-4.0.0" = {
+    "jsonfile-6.1.0" = {
       name = "jsonfile";
       packageName = "jsonfile";
-      version = "4.0.0";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz";
+        sha512 = "5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==";
+      };
+    };
+    "jsonpointer-4.1.0" = {
+      name = "jsonpointer";
+      packageName = "jsonpointer";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
-        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz";
+        sha512 = "CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==";
       };
     };
-    "jstree-3.3.11" = {
+    "jstree-3.3.12" = {
       name = "jstree";
       packageName = "jstree";
-      version = "3.3.11";
+      version = "3.3.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jstree/-/jstree-3.3.11.tgz";
-        sha512 = "9ZJKroPjCyjb6JLPuAbBrLJKT6pS1f4m5gkwoEagG5oQWtvzm0IiDsntXTxeFtz7AmqrKfij+gLfF9MgWriNxg==";
+        url = "https://registry.npmjs.org/jstree/-/jstree-3.3.12.tgz";
+        sha512 = "vHNLWkUr02ZYH7RcIckvhtLUtneWCVEtIKpIp2G9WtRh01ITv18EoNtNQcFG3ozM+oK6wp1Z300gSLXNQWCqGA==";
       };
     };
-    "jszip-3.6.0" = {
+    "jszip-3.7.1" = {
       name = "jszip";
       packageName = "jszip";
-      version = "3.6.0";
+      version = "3.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz";
-        sha512 = "jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==";
+        url = "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz";
+        sha512 = "ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==";
       };
     };
     "killable-1.0.1" = {
@@ -6134,6 +6170,15 @@ let
         sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
       };
     };
+    "leven-3.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz";
+        sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==";
+      };
+    };
     "levn-0.4.1" = {
       name = "levn";
       packageName = "levn";
@@ -6189,15 +6234,6 @@ let
         sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
       };
     };
-    "load-json-file-2.0.0" = {
-      name = "load-json-file";
-      packageName = "load-json-file";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz";
-        sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
-      };
-    };
     "load-json-file-4.0.0" = {
       name = "load-json-file";
       packageName = "load-json-file";
@@ -6234,13 +6270,13 @@ let
         sha512 = "rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==";
       };
     };
-    "localforage-1.9.0" = {
+    "localforage-1.10.0" = {
       name = "localforage";
       packageName = "localforage";
-      version = "1.9.0";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz";
-        sha512 = "rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==";
+        url = "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz";
+        sha512 = "14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==";
       };
     };
     "locate-path-2.0.0" = {
@@ -6270,6 +6306,15 @@ let
         sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
       };
     };
+    "locate-path-6.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz";
+        sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==";
+      };
+    };
     "lodash-4.17.21" = {
       name = "lodash";
       packageName = "lodash";
@@ -6279,15 +6324,6 @@ let
         sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
       };
     };
-    "lodash._reinterpolate-3.0.0" = {
-      name = "lodash._reinterpolate";
-      packageName = "lodash._reinterpolate";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz";
-        sha1 = "0ccf2d89166af03b3663c796538b75ac6e114d9d";
-      };
-    };
     "lodash.clonedeep-4.5.0" = {
       name = "lodash.clonedeep";
       packageName = "lodash.clonedeep";
@@ -6306,15 +6342,6 @@ let
         sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
       };
     };
-    "lodash.flatten-4.4.0" = {
-      name = "lodash.flatten";
-      packageName = "lodash.flatten";
-      version = "4.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
-        sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
-      };
-    };
     "lodash.memoize-4.1.2" = {
       name = "lodash.memoize";
       packageName = "lodash.memoize";
@@ -6324,22 +6351,22 @@ let
         sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
       };
     };
-    "lodash.template-4.5.0" = {
-      name = "lodash.template";
-      packageName = "lodash.template";
-      version = "4.5.0";
+    "lodash.merge-4.6.2" = {
+      name = "lodash.merge";
+      packageName = "lodash.merge";
+      version = "4.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz";
-        sha512 = "84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==";
+        url = "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz";
+        sha512 = "0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==";
       };
     };
-    "lodash.templatesettings-4.2.0" = {
-      name = "lodash.templatesettings";
-      packageName = "lodash.templatesettings";
-      version = "4.2.0";
+    "lodash.sortby-4.7.0" = {
+      name = "lodash.sortby";
+      packageName = "lodash.sortby";
+      version = "4.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz";
-        sha512 = "stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==";
+        url = "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
+        sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
       };
     };
     "lodash.truncate-4.4.2" = {
@@ -6711,22 +6738,22 @@ let
         sha512 = "tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==";
       };
     };
-    "mime-db-1.47.0" = {
+    "mime-db-1.49.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.47.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz";
-        sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz";
+        sha512 = "CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==";
       };
     };
-    "mime-types-2.1.30" = {
+    "mime-types-2.1.32" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.30";
+      version = "2.1.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz";
-        sha512 = "crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz";
+        sha512 = "hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==";
       };
     };
     "mimic-fn-2.1.0" = {
@@ -6909,22 +6936,22 @@ let
         sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
       };
     };
-    "nan-2.14.2" = {
+    "nan-2.15.0" = {
       name = "nan";
       packageName = "nan";
-      version = "2.14.2";
+      version = "2.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz";
-        sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
+        url = "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz";
+        sha512 = "8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==";
       };
     };
-    "nanoid-3.1.22" = {
+    "nanoid-3.1.25" = {
       name = "nanoid";
       packageName = "nanoid";
-      version = "3.1.22";
+      version = "3.1.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz";
-        sha512 = "/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==";
+        url = "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz";
+        sha512 = "rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==";
       };
     };
     "nanomatch-1.2.13" = {
@@ -7008,13 +7035,13 @@ let
         sha512 = "PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==";
       };
     };
-    "node-releases-1.1.71" = {
+    "node-releases-1.1.75" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.71";
+      version = "1.1.75";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz";
-        sha512 = "zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz";
+        sha512 = "Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==";
       };
     };
     "normalize-package-data-2.5.0" = {
@@ -7026,13 +7053,13 @@ let
         sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
       };
     };
-    "normalize-package-data-3.0.2" = {
+    "normalize-package-data-3.0.3" = {
       name = "normalize-package-data";
       packageName = "normalize-package-data";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.2.tgz";
-        sha512 = "6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg==";
+        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz";
+        sha512 = "p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==";
       };
     };
     "normalize-path-2.1.1" = {
@@ -7107,6 +7134,15 @@ let
         sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
       };
     };
+    "nth-check-2.0.0" = {
+      name = "nth-check";
+      packageName = "nth-check";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz";
+        sha512 = "i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==";
+      };
+    };
     "num2fraction-1.2.2" = {
       name = "num2fraction";
       packageName = "num2fraction";
@@ -7134,13 +7170,13 @@ let
         sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
       };
     };
-    "object-inspect-1.10.2" = {
+    "object-inspect-1.11.0" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.10.2";
+      version = "1.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz";
-        sha512 = "gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz";
+        sha512 = "jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==";
       };
     };
     "object-is-1.1.5" = {
@@ -7197,13 +7233,13 @@ let
         sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
       };
     };
-    "object.values-1.1.3" = {
+    "object.values-1.1.4" = {
       name = "object.values";
       packageName = "object.values";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz";
-        sha512 = "nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==";
+        url = "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz";
+        sha512 = "TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==";
       };
     };
     "obuf-1.1.2" = {
@@ -7341,6 +7377,15 @@ let
         sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
       };
     };
+    "p-locate-5.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz";
+        sha512 = "LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==";
+      };
+    };
     "p-map-2.1.0" = {
       name = "p-map";
       packageName = "p-map";
@@ -7440,15 +7485,6 @@ let
         sha512 = "kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==";
       };
     };
-    "parse-json-2.2.0" = {
-      name = "parse-json";
-      packageName = "parse-json";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz";
-        sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
-      };
-    };
     "parse-json-4.0.0" = {
       name = "parse-json";
       packageName = "parse-json";
@@ -7557,13 +7593,13 @@ let
         sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
       };
     };
-    "path-parse-1.0.6" = {
+    "path-parse-1.0.7" = {
       name = "path-parse";
       packageName = "path-parse";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz";
+        sha512 = "LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -7584,15 +7620,6 @@ let
         sha1 = "b33705c140234d873c8721c7b9fd8b541ed3aff9";
       };
     };
-    "path-type-2.0.0" = {
-      name = "path-type";
-      packageName = "path-type";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz";
-        sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
-      };
-    };
     "path-type-3.0.0" = {
       name = "path-type";
       packageName = "path-type";
@@ -7629,13 +7656,13 @@ let
         sha512 = "xGDUhnCYPfHy+unMXCLCJtlpZaaZ17Ew3WIL0tnSgKFUZXHAPD49GO9xScyszSsQMoutNDgRb+rfBXIaX/lJbw==";
       };
     };
-    "picomatch-2.2.3" = {
+    "picomatch-2.3.0" = {
       name = "picomatch";
       packageName = "picomatch";
-      version = "2.2.3";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz";
-        sha512 = "KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==";
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz";
+        sha512 = "lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==";
       };
     };
     "pify-2.3.0" = {
@@ -7710,6 +7737,15 @@ let
         sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
       };
     };
+    "pkg-up-2.0.0" = {
+      name = "pkg-up";
+      packageName = "pkg-up";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz";
+        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
+      };
+    };
     "plur-2.1.2" = {
       name = "plur";
       packageName = "plur";
@@ -7746,22 +7782,22 @@ let
         sha512 = "zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==";
       };
     };
-    "postcss-7.0.35" = {
+    "postcss-7.0.36" = {
       name = "postcss";
       packageName = "postcss";
-      version = "7.0.35";
+      version = "7.0.36";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz";
-        sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz";
+        sha512 = "BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==";
       };
     };
-    "postcss-8.2.13" = {
+    "postcss-8.3.6" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.2.13";
+      version = "8.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz";
-        sha512 = "FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz";
+        sha512 = "wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==";
       };
     };
     "postcss-attribute-case-insensitive-4.0.2" = {
@@ -8448,13 +8484,13 @@ let
         sha512 = "w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==";
       };
     };
-    "postcss-selector-parser-6.0.5" = {
+    "postcss-selector-parser-6.0.6" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.5";
+      version = "6.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz";
-        sha512 = "aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz";
+        sha512 = "9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==";
       };
     };
     "postcss-sorting-4.1.0" = {
@@ -8583,13 +8619,13 @@ let
         sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
       };
     };
-    "proxy-addr-2.0.6" = {
+    "proxy-addr-2.0.7" = {
       name = "proxy-addr";
       packageName = "proxy-addr";
-      version = "2.0.6";
+      version = "2.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
+        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz";
+        sha512 = "llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==";
       };
     };
     "prr-1.0.1" = {
@@ -8727,15 +8763,6 @@ let
         sha1 = "25eccff3a153b6809afacb23ee15387db9e0ee61";
       };
     };
-    "read-pkg-2.0.0" = {
-      name = "read-pkg";
-      packageName = "read-pkg";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz";
-        sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
-      };
-    };
     "read-pkg-3.0.0" = {
       name = "read-pkg";
       packageName = "read-pkg";
@@ -8754,15 +8781,6 @@ let
         sha512 = "Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==";
       };
     };
-    "read-pkg-up-2.0.0" = {
-      name = "read-pkg-up";
-      packageName = "read-pkg-up";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
-        sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
-      };
-    };
     "read-pkg-up-3.0.0" = {
       name = "read-pkg-up";
       packageName = "read-pkg-up";
@@ -8808,22 +8826,22 @@ let
         sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
       };
     };
-    "readdirp-3.5.0" = {
+    "readdirp-3.6.0" = {
       name = "readdirp";
       packageName = "readdirp";
-      version = "3.5.0";
+      version = "3.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz";
-        sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==";
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz";
+        sha512 = "hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==";
       };
     };
-    "rechoir-0.7.0" = {
+    "rechoir-0.7.1" = {
       name = "rechoir";
       packageName = "rechoir";
-      version = "0.7.0";
+      version = "0.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz";
-        sha512 = "ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==";
+        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz";
+        sha512 = "/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==";
       };
     };
     "redent-2.0.0" = {
@@ -8862,22 +8880,13 @@ let
         sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
       };
     };
-    "regenerator-runtime-0.11.1" = {
-      name = "regenerator-runtime";
-      packageName = "regenerator-runtime";
-      version = "0.11.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
-        sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
-      };
-    };
-    "regenerator-runtime-0.13.8" = {
+    "regenerator-runtime-0.13.9" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.13.8";
+      version = "0.13.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.8.tgz";
-        sha512 = "o/ASGwgZ6UiVjspr4YnzHKF1NbBdX+mCPkSeymofk/d7I+csCYn3ZgZMMVtXeecpT8DBiI2nAlYkHd+xNCqu4A==";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz";
+        sha512 = "p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==";
       };
     };
     "regenerator-transform-0.14.5" = {
@@ -8907,13 +8916,13 @@ let
         sha512 = "JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==";
       };
     };
-    "regexpp-3.1.0" = {
+    "regexpp-3.2.0" = {
       name = "regexpp";
       packageName = "regexpp";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz";
-        sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz";
+        sha512 = "pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==";
       };
     };
     "regexpu-core-4.7.1" = {
@@ -9015,13 +9024,13 @@ let
         sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
       };
     };
-    "renderkid-2.0.5" = {
+    "renderkid-2.0.7" = {
       name = "renderkid";
       packageName = "renderkid";
-      version = "2.0.5";
+      version = "2.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz";
-        sha512 = "ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==";
+        url = "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz";
+        sha512 = "oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==";
       };
     };
     "repeat-element-1.1.4" = {
@@ -9231,40 +9240,22 @@ let
         sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
       };
     };
-    "rollup-1.32.1" = {
+    "rollup-2.56.3" = {
       name = "rollup";
       packageName = "rollup";
-      version = "1.32.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz";
-        sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
-      };
-    };
-    "rollup-plugin-babel-4.4.0" = {
-      name = "rollup-plugin-babel";
-      packageName = "rollup-plugin-babel";
-      version = "4.4.0";
+      version = "2.56.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz";
-        sha512 = "Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.56.3.tgz";
+        sha512 = "Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg==";
       };
     };
-    "rollup-plugin-terser-5.3.1" = {
+    "rollup-plugin-terser-7.0.2" = {
       name = "rollup-plugin-terser";
       packageName = "rollup-plugin-terser";
-      version = "5.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz";
-        sha512 = "1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==";
-      };
-    };
-    "rollup-pluginutils-2.8.2" = {
-      name = "rollup-pluginutils";
-      packageName = "rollup-pluginutils";
-      version = "2.8.2";
+      version = "7.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz";
-        sha512 = "EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==";
+        url = "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz";
+        sha512 = "w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==";
       };
     };
     "run-parallel-1.2.0" = {
@@ -9303,22 +9294,22 @@ let
         sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
-    "sass-1.32.12" = {
+    "sass-1.39.0" = {
       name = "sass";
       packageName = "sass";
-      version = "1.32.12";
+      version = "1.39.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.32.12.tgz";
-        sha512 = "zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.39.0.tgz";
+        sha512 = "F4o+RhJkNOIG0b6QudYU8c78ZADKZjKDk5cyrf8XTKWfrgbtyVVXImFstJrc+1pkQDCggyidIOytq6gS4gCCZg==";
       };
     };
-    "sass-loader-10.1.1" = {
+    "sass-loader-10.2.0" = {
       name = "sass-loader";
       packageName = "sass-loader";
-      version = "10.1.1";
+      version = "10.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass-loader/-/sass-loader-10.1.1.tgz";
-        sha512 = "W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw==";
+        url = "https://registry.npmjs.org/sass-loader/-/sass-loader-10.2.0.tgz";
+        sha512 = "kUceLzC1gIHz0zNJPpqRsJyisWatGYNFRmv2CKZK2/ngMJgLqxTbXwe/hJ85luyvZkgqU3VlJ33UVF2T/0g6mw==";
       };
     };
     "sax-1.2.4" = {
@@ -9348,13 +9339,13 @@ let
         sha512 = "SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==";
       };
     };
-    "schema-utils-3.0.0" = {
+    "schema-utils-3.1.1" = {
       name = "schema-utils";
       packageName = "schema-utils";
-      version = "3.0.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz";
-        sha512 = "6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==";
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz";
+        sha512 = "Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==";
       };
     };
     "screenfull-5.1.0" = {
@@ -9411,15 +9402,6 @@ let
         sha512 = "+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==";
       };
     };
-    "semver-7.3.2" = {
-      name = "semver";
-      packageName = "semver";
-      version = "7.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz";
-        sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==";
-      };
-    };
     "semver-7.3.5" = {
       name = "semver";
       packageName = "semver";
@@ -9456,6 +9438,15 @@ let
         sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==";
       };
     };
+    "serialize-javascript-6.0.0" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz";
+        sha512 = "Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==";
+      };
+    };
     "serve-index-1.9.1" = {
       name = "serve-index";
       packageName = "serve-index";
@@ -9564,6 +9555,15 @@ let
         sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
       };
     };
+    "side-channel-1.0.4" = {
+      name = "side-channel";
+      packageName = "side-channel";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz";
+        sha512 = "q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==";
+      };
+    };
     "signal-exit-3.0.3" = {
       name = "signal-exit";
       packageName = "signal-exit";
@@ -9654,22 +9654,22 @@ let
         sha512 = "DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==";
       };
     };
-    "sockjs-client-1.5.1" = {
+    "sockjs-client-1.5.2" = {
       name = "sockjs-client";
       packageName = "sockjs-client";
-      version = "1.5.1";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz";
-        sha512 = "VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==";
+        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz";
+        sha512 = "ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==";
       };
     };
-    "sortablejs-1.13.0" = {
+    "sortablejs-1.14.0" = {
       name = "sortablejs";
       packageName = "sortablejs";
-      version = "1.13.0";
+      version = "1.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sortablejs/-/sortablejs-1.13.0.tgz";
-        sha512 = "RBJirPY0spWCrU5yCmWM1eFs/XgX2J5c6b275/YyxFRgnzPhKl/TDeU2hNR8Dt7ITq66NRPM4UlOt+e5O4CFHg==";
+        url = "https://registry.npmjs.org/sortablejs/-/sortablejs-1.14.0.tgz";
+        sha512 = "pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==";
       };
     };
     "source-list-map-2.0.1" = {
@@ -9708,6 +9708,24 @@ let
         sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
       };
     };
+    "source-map-0.8.0-beta.0" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.8.0-beta.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz";
+        sha512 = "2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==";
+      };
+    };
+    "source-map-js-0.6.2" = {
+      name = "source-map-js";
+      packageName = "source-map-js";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz";
+        sha512 = "/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==";
+      };
+    };
     "source-map-loader-1.1.3" = {
       name = "source-map-loader";
       packageName = "source-map-loader";
@@ -9780,13 +9798,13 @@ let
         sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
       };
     };
-    "spdx-license-ids-3.0.7" = {
+    "spdx-license-ids-3.0.10" = {
       name = "spdx-license-ids";
       packageName = "spdx-license-ids";
-      version = "3.0.7";
+      version = "3.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz";
-        sha512 = "U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==";
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz";
+        sha512 = "oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==";
       };
     };
     "spdy-4.0.2" = {
@@ -9987,13 +10005,13 @@ let
         sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
       };
     };
-    "strip-comments-1.0.2" = {
+    "strip-comments-2.0.1" = {
       name = "strip-comments";
       packageName = "strip-comments";
-      version = "1.0.2";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz";
-        sha512 = "kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==";
+        url = "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz";
+        sha512 = "ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==";
       };
     };
     "strip-eof-1.0.0" = {
@@ -10131,13 +10149,13 @@ let
         sha512 = "sVTikaDvMqg2aJjh4r48jsdfmqLT+nqB1MOsaBnvM3OwLx4S+WXcsxsgk5w18h/OZoxZCxuyXMh61iBHcj9Qiw==";
       };
     };
-    "stylelint-scss-3.19.0" = {
+    "stylelint-scss-3.20.1" = {
       name = "stylelint-scss";
       packageName = "stylelint-scss";
-      version = "3.19.0";
+      version = "3.20.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.19.0.tgz";
-        sha512 = "Ic5bsmpS4wVucOw44doC1Yi9f5qbeVL4wPFiEOaUElgsOuLEN6Ofn/krKI8BeNL2gAn53Zu+IcVV4E345r6rBw==";
+        url = "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-3.20.1.tgz";
+        sha512 = "OTd55O1TTAC5nGKkVmUDLpz53LlK39R3MImv1CfuvsK7/qugktqiZAeQLuuC4UBhzxCnsc7fp9u/gfRZwFAIkA==";
       };
     };
     "sugarss-2.0.0" = {
@@ -10194,6 +10212,15 @@ let
         sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
       };
     };
+    "supports-color-8.1.1" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "8.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz";
+        sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==";
+      };
+    };
     "svg-tags-1.0.0" = {
       name = "svg-tags";
       packageName = "svg-tags";
@@ -10212,13 +10239,13 @@ let
         sha512 = "yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==";
       };
     };
-    "swiper-6.5.9" = {
+    "swiper-6.8.4" = {
       name = "swiper";
       packageName = "swiper";
-      version = "6.5.9";
+      version = "6.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swiper/-/swiper-6.5.9.tgz";
-        sha512 = "zO3UCLVEiOXZontAQWBNpWFZGV3WaXwHSgvng0qIGLVMyxYGD6w78S7YkGAu/XBam1SBQNZzxqfFc/LDjNdq/A==";
+        url = "https://registry.npmjs.org/swiper/-/swiper-6.8.4.tgz";
+        sha512 = "O+buF9Q+sMA0H7luMS8R59hCaJKlpo8PXhQ6ZYu6Rn2v9OsFd4d1jmrv14QvxtQpKAvL/ZiovEeANI/uDGet7g==";
       };
     };
     "table-5.4.6" = {
@@ -10230,13 +10257,13 @@ let
         sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
       };
     };
-    "table-6.6.0" = {
+    "table-6.7.1" = {
       name = "table";
       packageName = "table";
-      version = "6.6.0";
+      version = "6.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.6.0.tgz";
-        sha512 = "iZMtp5tUvcnAdtHpZTWLPF0M7AgiQsURR2DwmxnJwSy8I3+cY+ozzVvYha3BOLG2TB+L0CqjIz+91htuj6yCXg==";
+        url = "https://registry.npmjs.org/table/-/table-6.7.1.tgz";
+        sha512 = "ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==";
       };
     };
     "tapable-1.1.3" = {
@@ -10257,31 +10284,31 @@ let
         sha512 = "FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==";
       };
     };
-    "tar-6.1.0" = {
+    "tar-6.1.11" = {
       name = "tar";
       packageName = "tar";
-      version = "6.1.0";
+      version = "6.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz";
-        sha512 = "DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==";
+        url = "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz";
+        sha512 = "an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==";
       };
     };
-    "temp-dir-1.0.0" = {
+    "temp-dir-2.0.0" = {
       name = "temp-dir";
       packageName = "temp-dir";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz";
-        sha1 = "0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d";
+        url = "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz";
+        sha512 = "aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==";
       };
     };
-    "tempy-0.3.0" = {
+    "tempy-0.6.0" = {
       name = "tempy";
       packageName = "tempy";
-      version = "0.3.0";
+      version = "0.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz";
-        sha512 = "WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==";
+        url = "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz";
+        sha512 = "G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==";
       };
     };
     "terser-4.8.0" = {
@@ -10293,22 +10320,22 @@ let
         sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-5.7.0" = {
+    "terser-5.7.2" = {
       name = "terser";
       packageName = "terser";
-      version = "5.7.0";
+      version = "5.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz";
-        sha512 = "HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==";
+        url = "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz";
+        sha512 = "0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==";
       };
     };
-    "terser-webpack-plugin-5.1.1" = {
+    "terser-webpack-plugin-5.2.3" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "5.1.1";
+      version = "5.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz";
-        sha512 = "5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.3.tgz";
+        sha512 = "eDbuaDlXhVaaoKuLD3DTNTozKqln6xOG6Us0SzlKG5tNlazG+/cdl8pm9qiF1Di89iWScTI0HcO+CDcf2dkXiw==";
       };
     };
     "text-table-0.2.0" = {
@@ -10392,6 +10419,15 @@ let
         sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
       };
     };
+    "tr46-1.0.1" = {
+      name = "tr46";
+      packageName = "tr46";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz";
+        sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
+      };
+    };
     "trim-0.0.1" = {
       name = "trim";
       packageName = "trim";
@@ -10410,13 +10446,13 @@ let
         sha1 = "b403d0b91be50c331dfc4b82eeceb22c3de16d20";
       };
     };
-    "trim-newlines-3.0.0" = {
+    "trim-newlines-3.0.1" = {
       name = "trim-newlines";
       packageName = "trim-newlines";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz";
-        sha512 = "C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==";
+        url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz";
+        sha512 = "c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==";
       };
     };
     "trim-trailing-lines-1.1.4" = {
@@ -10437,22 +10473,22 @@ let
         sha512 = "rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==";
       };
     };
-    "tsconfig-paths-3.9.0" = {
+    "tsconfig-paths-3.11.0" = {
       name = "tsconfig-paths";
       packageName = "tsconfig-paths";
-      version = "3.9.0";
+      version = "3.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
-        sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==";
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz";
+        sha512 = "7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==";
       };
     };
-    "tslib-2.2.0" = {
+    "tslib-2.3.1" = {
       name = "tslib";
       packageName = "tslib";
-      version = "2.2.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz";
-        sha512 = "gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz";
+        sha512 = "77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==";
       };
     };
     "type-1.2.0" = {
@@ -10482,6 +10518,15 @@ let
         sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
       };
     };
+    "type-fest-0.16.0" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz";
+        sha512 = "eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==";
+      };
+    };
     "type-fest-0.18.1" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -10500,15 +10545,6 @@ let
         sha512 = "Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==";
       };
     };
-    "type-fest-0.3.1" = {
-      name = "type-fest";
-      packageName = "type-fest";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz";
-        sha512 = "cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==";
-      };
-    };
     "type-fest-0.6.0" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -10608,13 +10644,13 @@ let
         sha512 = "lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==";
       };
     };
-    "unified-9.2.1" = {
+    "unified-9.2.2" = {
       name = "unified";
       packageName = "unified";
-      version = "9.2.1";
+      version = "9.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz";
-        sha512 = "juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==";
+        url = "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz";
+        sha512 = "Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==";
       };
     };
     "union-value-1.0.1" = {
@@ -10662,13 +10698,13 @@ let
         sha512 = "zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==";
       };
     };
-    "unique-string-1.0.0" = {
+    "unique-string-2.0.0" = {
       name = "unique-string";
       packageName = "unique-string";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz";
-        sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+        url = "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz";
+        sha512 = "uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==";
       };
     };
     "unist-util-find-all-after-1.0.5" = {
@@ -10752,13 +10788,13 @@ let
         sha512 = "DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==";
       };
     };
-    "universalify-0.1.2" = {
+    "universalify-2.0.0" = {
       name = "universalify";
       packageName = "universalify";
-      version = "0.1.2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
-        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
+        url = "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz";
+        sha512 = "hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==";
       };
     };
     "unpipe-1.0.0" = {
@@ -10824,22 +10860,22 @@ let
         sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
       };
     };
-    "url-parse-1.5.1" = {
+    "url-parse-1.5.3" = {
       name = "url-parse";
       packageName = "url-parse";
-      version = "1.5.1";
+      version = "1.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz";
-        sha512 = "HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==";
+        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz";
+        sha512 = "IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==";
       };
     };
-    "url-toolkit-2.2.2" = {
+    "url-toolkit-2.2.3" = {
       name = "url-toolkit";
       packageName = "url-toolkit";
-      version = "2.2.2";
+      version = "2.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.2.tgz";
-        sha512 = "l25w6Sy+Iy3/IbogunxhWwljPaDnqpiKvrQRoLBm6DfISco7NyRIS7Zf6+Oxhy1T8kHxWdwLND7ZZba6NjXMug==";
+        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.3.tgz";
+        sha512 = "Da75SQoxsZ+2wXS56CZBrj2nukQ4nlGUZUP/dqUBG5E1su5GKThgT94Q00x81eVII7AyS1Pn+CtTTZ4Z0pLUtQ==";
       };
     };
     "use-3.1.1" = {
@@ -10986,13 +11022,13 @@ let
         sha512 = "DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==";
       };
     };
-    "watchpack-2.1.1" = {
+    "watchpack-2.2.0" = {
       name = "watchpack";
       packageName = "watchpack";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz";
-        sha512 = "Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==";
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz";
+        sha512 = "up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==";
       };
     };
     "wbuf-1.7.3" = {
@@ -11013,22 +11049,31 @@ let
         sha1 = "2116fbfa1468ec416a7befdaa333e1d118f69c04";
       };
     };
-    "webpack-5.36.2" = {
+    "webidl-conversions-4.0.2" = {
+      name = "webidl-conversions";
+      packageName = "webidl-conversions";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
+        sha512 = "YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==";
+      };
+    };
+    "webpack-5.52.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "5.36.2";
+      version = "5.52.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.36.2.tgz";
-        sha512 = "XJumVnnGoH2dV+Pk1VwgY4YT6AiMKpVoudUFCNOXMIVrEKPUgEwdIfWPjIuGLESAiS8EdIHX5+TiJz/5JccmRg==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.52.0.tgz";
+        sha512 = "yRZOat8jWGwBwHpco3uKQhVU7HYaNunZiJ4AkAVQkPCUGoZk/tiIXiwG+8HIy/F+qsiZvSOa+GLQOj3q5RKRYg==";
       };
     };
-    "webpack-cli-4.6.0" = {
+    "webpack-cli-4.8.0" = {
       name = "webpack-cli";
       packageName = "webpack-cli";
-      version = "4.6.0";
+      version = "4.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz";
-        sha512 = "9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==";
+        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.8.0.tgz";
+        sha512 = "+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw==";
       };
     };
     "webpack-dev-middleware-3.7.3" = {
@@ -11067,13 +11112,13 @@ let
         sha512 = "TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==";
       };
     };
-    "webpack-merge-5.7.3" = {
+    "webpack-merge-5.8.0" = {
       name = "webpack-merge";
       packageName = "webpack-merge";
-      version = "5.7.3";
+      version = "5.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz";
-        sha512 = "6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==";
+        url = "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz";
+        sha512 = "/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==";
       };
     };
     "webpack-sources-1.4.3" = {
@@ -11085,13 +11130,13 @@ let
         sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
       };
     };
-    "webpack-sources-2.2.0" = {
+    "webpack-sources-3.2.0" = {
       name = "webpack-sources";
       packageName = "webpack-sources";
-      version = "2.2.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz";
-        sha512 = "bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==";
+        url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.0.tgz";
+        sha512 = "fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw==";
       };
     };
     "websocket-driver-0.7.4" = {
@@ -11112,13 +11157,13 @@ let
         sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
       };
     };
-    "webworkify-1.5.0" = {
-      name = "webworkify";
-      packageName = "webworkify";
-      version = "1.5.0";
+    "webworkify-webpack-2.1.5" = {
+      name = "webworkify-webpack";
+      packageName = "webworkify-webpack";
+      version = "2.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webworkify/-/webworkify-1.5.0.tgz";
-        sha512 = "AMcUeyXAhbACL8S2hqqdqOLqvJ8ylmIbNwUIqQujRSouf4+eUFaXbG6F1Rbu+srlJMmxQWsiU7mOJi0nMBfM1g==";
+        url = "https://registry.npmjs.org/webworkify-webpack/-/webworkify-webpack-2.1.5.tgz";
+        sha512 = "2akF8FIyUvbiBBdD+RoHpoTbHMQF2HwjcxfDvgztAX5YwbZNyrtfUMgvfgFVsgDhDPVTlkbb5vyasqDHfIDPQw==";
       };
     };
     "whatwg-fetch-3.6.2" = {
@@ -11139,6 +11184,15 @@ let
         sha512 = "M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==";
       };
     };
+    "whatwg-url-7.1.0" = {
+      name = "whatwg-url";
+      packageName = "whatwg-url";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz";
+        sha512 = "WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==";
+      };
+    };
     "which-1.3.1" = {
       name = "which";
       packageName = "which";
@@ -11193,40 +11247,40 @@ let
         sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
       };
     };
-    "workbox-background-sync-5.1.4" = {
+    "workbox-background-sync-6.2.4" = {
       name = "workbox-background-sync";
       packageName = "workbox-background-sync";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz";
-        sha512 = "AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA==";
+        url = "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.2.4.tgz";
+        sha512 = "uoGgm1PZU6THRzXKlMEntrdA4Xkp6SCfxI7re4heN+yGrtAZq6zMKYhZmsdeW+YGnXS3y5xj7WV03b5TDgLh6A==";
       };
     };
-    "workbox-broadcast-update-5.1.4" = {
+    "workbox-broadcast-update-6.2.4" = {
       name = "workbox-broadcast-update";
       packageName = "workbox-broadcast-update";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz";
-        sha512 = "HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA==";
+        url = "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.2.4.tgz";
+        sha512 = "0EpML2lbxNkiZUoap4BJDA0Hfz36MhtUd/rRhFvF6YWoRbTQ8tc6tMaRgM1EBIUmIN2OX9qQlkqe5SGGt4lfXQ==";
       };
     };
-    "workbox-build-5.1.4" = {
+    "workbox-build-6.2.4" = {
       name = "workbox-build";
       packageName = "workbox-build";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-build/-/workbox-build-5.1.4.tgz";
-        sha512 = "xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow==";
+        url = "https://registry.npmjs.org/workbox-build/-/workbox-build-6.2.4.tgz";
+        sha512 = "01ZbY1BHi+yYvu4yDGZBw9xm1bWyZW0QGWPxiksvSPAsNH/z/NwgtWW14YEroFyG98mmXb7pufWlwl40zE1KTw==";
       };
     };
-    "workbox-cacheable-response-5.1.4" = {
+    "workbox-cacheable-response-6.2.4" = {
       name = "workbox-cacheable-response";
       packageName = "workbox-cacheable-response";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz";
-        sha512 = "0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA==";
+        url = "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.2.4.tgz";
+        sha512 = "KZSzAOmgWsrk15Wu+geCUSGLIyyzHaORKjH5JnR6qcVZAsm0JXUu2m2OZGqjQ+/eyQwrGdXXqAMW+4wQvTXccg==";
       };
     };
     "workbox-core-5.1.4" = {
@@ -11238,31 +11292,40 @@ let
         sha512 = "+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg==";
       };
     };
-    "workbox-expiration-5.1.4" = {
+    "workbox-core-6.2.4" = {
+      name = "workbox-core";
+      packageName = "workbox-core";
+      version = "6.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-core/-/workbox-core-6.2.4.tgz";
+        sha512 = "Nu8X4R4Is3g8uzEJ6qwbW2CGVpzntW/cSf8OfsQGIKQR0nt84FAKzP2cLDaNLp3L/iV9TuhZgCTZzkMiap5/OQ==";
+      };
+    };
+    "workbox-expiration-6.2.4" = {
       name = "workbox-expiration";
       packageName = "workbox-expiration";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-5.1.4.tgz";
-        sha512 = "oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ==";
+        url = "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.2.4.tgz";
+        sha512 = "EdOBLunrE3+Ff50y7AYDbiwtiLDvB+oEIkL1Wd9G5d176YVqFfgPfMRzJQ7fN+Yy2NfmsFME0Bw+dQruYekWsQ==";
       };
     };
-    "workbox-google-analytics-5.1.4" = {
+    "workbox-google-analytics-6.2.4" = {
       name = "workbox-google-analytics";
       packageName = "workbox-google-analytics";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz";
-        sha512 = "0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA==";
+        url = "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.2.4.tgz";
+        sha512 = "+PWmTouoGGcDupaxM193F2NmgrF597Pyt9eHIDxfed+x+JSSeUkETlbAKwB8rnBHkAjs8JQcvStEP/IpueNKpQ==";
       };
     };
-    "workbox-navigation-preload-5.1.4" = {
+    "workbox-navigation-preload-6.2.4" = {
       name = "workbox-navigation-preload";
       packageName = "workbox-navigation-preload";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz";
-        sha512 = "Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ==";
+        url = "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.2.4.tgz";
+        sha512 = "y2dOSsaSdEimqhCmBIFR6kBp+GZbtNtWCBaMFwfKxTAul2uyllKcTKBHnZ9IzxULue6o6voV+I2U8Y8tO8n+eA==";
       };
     };
     "workbox-precaching-5.1.4" = {
@@ -11274,76 +11337,94 @@ let
         sha512 = "gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA==";
       };
     };
-    "workbox-range-requests-5.1.4" = {
+    "workbox-precaching-6.2.4" = {
+      name = "workbox-precaching";
+      packageName = "workbox-precaching";
+      version = "6.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.2.4.tgz";
+        sha512 = "7POznbVc8EG/mkbXzeb94x3B1VJruPgXvXFgS0NJ3GRugkO4ULs/DpIIb+ycs7uJIKY9EzLS7VXvElr3rMSozQ==";
+      };
+    };
+    "workbox-range-requests-6.2.4" = {
       name = "workbox-range-requests";
       packageName = "workbox-range-requests";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz";
-        sha512 = "1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw==";
+        url = "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.2.4.tgz";
+        sha512 = "q4jjTXD1QOKbrHnzV3nxdZtIpOiVoIP5QyVmjuJrybVnAZurtyKcqirTQcAcT/zlTvgwm07zcTTk9o/zIB6DmA==";
       };
     };
-    "workbox-routing-5.1.4" = {
+    "workbox-recipes-6.2.4" = {
+      name = "workbox-recipes";
+      packageName = "workbox-recipes";
+      version = "6.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.2.4.tgz";
+        sha512 = "z7oECGrt940dw1Bv0xIDJEXY1xARiaxsIedeJOutZFkbgaC/yWG61VTr/hmkeJ8Nx6jnY6W7Rc0iOUvg4sePag==";
+      };
+    };
+    "workbox-routing-6.2.4" = {
       name = "workbox-routing";
       packageName = "workbox-routing";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-routing/-/workbox-routing-5.1.4.tgz";
-        sha512 = "8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw==";
+        url = "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.2.4.tgz";
+        sha512 = "jHnOmpeH4MOWR4eXv6l608npD2y6IFv7yFJ1bT9/RbB8wq2vXHXJQ0ExTZRTWGbVltSG22wEU+MQ8VebDDwDeg==";
       };
     };
-    "workbox-strategies-5.1.4" = {
+    "workbox-strategies-6.2.4" = {
       name = "workbox-strategies";
       packageName = "workbox-strategies";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-5.1.4.tgz";
-        sha512 = "VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA==";
+        url = "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.2.4.tgz";
+        sha512 = "DKgGC3ruceDuu2o+Ae5qmJy0p0q21mFP+RrkdqKrjyf2u8cJvvtvt1eIt4nevKc5BESiKxmhC2h+TZpOSzUDvA==";
       };
     };
-    "workbox-streams-5.1.4" = {
+    "workbox-streams-6.2.4" = {
       name = "workbox-streams";
       packageName = "workbox-streams";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz";
-        sha512 = "xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw==";
+        url = "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.2.4.tgz";
+        sha512 = "yG6zV7S2NmYT6koyb7/DoPsyUAat9kD+rOmjP2SbBCtJdLu6ZIi1lgN4/rOkxEby/+Xb4OE4RmCSIZdMyjEmhQ==";
       };
     };
-    "workbox-sw-5.1.4" = {
+    "workbox-sw-6.2.4" = {
       name = "workbox-sw";
       packageName = "workbox-sw";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-sw/-/workbox-sw-5.1.4.tgz";
-        sha512 = "9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA==";
+        url = "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.2.4.tgz";
+        sha512 = "OlWLHNNM+j44sN2OaVXnVcf2wwhJUzcHlXrTrbWDu1JWnrQJ/rLicdc/sbxkZoyE0EbQm7Xr1BXcOjsB7PNlXQ==";
       };
     };
-    "workbox-webpack-plugin-5.1.4" = {
+    "workbox-webpack-plugin-6.2.4" = {
       name = "workbox-webpack-plugin";
       packageName = "workbox-webpack-plugin";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz";
-        sha512 = "PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ==";
+        url = "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.2.4.tgz";
+        sha512 = "G6yeOZDYEbtqgNasqwxHFnma0Vp237kMxpsf8JV/YIhvhUuMwnh1WKv4VnFeqmYaWW/ITx0qj92IEMWB/O1mAA==";
       };
     };
-    "workbox-window-5.1.4" = {
+    "workbox-window-6.2.4" = {
       name = "workbox-window";
       packageName = "workbox-window";
-      version = "5.1.4";
+      version = "6.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/workbox-window/-/workbox-window-5.1.4.tgz";
-        sha512 = "vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw==";
+        url = "https://registry.npmjs.org/workbox-window/-/workbox-window-6.2.4.tgz";
+        sha512 = "9jD6THkwGEASj1YP56ZBHYJ147733FoGpJlMamYk38k/EBFE75oc6K3Vs2tGOBx5ZGq54+mHSStnlrtFG3IiOg==";
       };
     };
-    "worker-plugin-5.0.0" = {
+    "worker-plugin-5.0.1" = {
       name = "worker-plugin";
       packageName = "worker-plugin";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz";
-        sha512 = "AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==";
+        url = "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.1.tgz";
+        sha512 = "Pn7+19jIiANcGuTSGdy+vrzyF+SGH03A5wV8iu4jRTMAOfAC9bNeiHo4+l5tPS7F0uvICMBv+h8UCvL7lunxcA==";
       };
     };
     "wrap-ansi-5.1.0" = {
@@ -11391,13 +11472,13 @@ let
         sha1 = "c252d7c7c5b1b402897630e3453c7bfe690d9ca1";
       };
     };
-    "ws-6.2.1" = {
+    "ws-6.2.2" = {
       name = "ws";
       packageName = "ws";
-      version = "6.2.1";
+      version = "6.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz";
-        sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
+        url = "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz";
+        sha512 = "zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==";
       };
     };
     "x-is-string-0.1.0" = {
@@ -11481,13 +11562,13 @@ let
         sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
       };
     };
-    "yargs-parser-20.2.7" = {
+    "yargs-parser-20.2.9" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
-      version = "20.2.7";
+      version = "20.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz";
-        sha512 = "FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==";
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz";
+        sha512 = "y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==";
       };
     };
     "yocto-queue-0.1.0" = {
@@ -11513,59 +11594,64 @@ let
     name = "jellyfin-web";
     packageName = "jellyfin-web";
     version = "0.0.0";
-    src = ../../../../../../../nix/store/ply469lh4lhgpa5j6ak4yss0sgprqzqy-source;
+    src = ../../../../../../../nix/store/4n28kmji75gd671zm8v6xg8ywghv3s2s-source;
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
-      sources."@babel/compat-data-7.14.0"
-      sources."@babel/core-7.14.0"
-      sources."@babel/eslint-parser-7.13.14"
-      sources."@babel/eslint-plugin-7.13.16"
-      sources."@babel/generator-7.14.1"
-      sources."@babel/helper-annotate-as-pure-7.12.13"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      sources."@babel/helper-compilation-targets-7.13.16"
-      sources."@babel/helper-create-class-features-plugin-7.14.1"
-      sources."@babel/helper-create-regexp-features-plugin-7.12.17"
-      sources."@babel/helper-define-polyfill-provider-0.2.0"
-      sources."@babel/helper-explode-assignable-expression-7.13.0"
-      sources."@babel/helper-function-name-7.12.13"
-      sources."@babel/helper-get-function-arity-7.12.13"
-      sources."@babel/helper-hoist-variables-7.13.16"
-      sources."@babel/helper-member-expression-to-functions-7.13.12"
-      sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.14.0"
-      sources."@babel/helper-optimise-call-expression-7.12.13"
-      sources."@babel/helper-plugin-utils-7.13.0"
-      sources."@babel/helper-remap-async-to-generator-7.13.0"
-      sources."@babel/helper-replace-supers-7.13.12"
-      sources."@babel/helper-simple-access-7.13.12"
-      sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
-      sources."@babel/helper-split-export-declaration-7.12.13"
-      sources."@babel/helper-validator-identifier-7.14.0"
-      sources."@babel/helper-validator-option-7.12.17"
-      sources."@babel/helper-wrap-function-7.13.0"
-      sources."@babel/helpers-7.14.0"
-      sources."@babel/highlight-7.14.0"
-      sources."@babel/parser-7.14.1"
-      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
-      sources."@babel/plugin-proposal-async-generator-functions-7.13.15"
-      sources."@babel/plugin-proposal-class-properties-7.13.0"
-      sources."@babel/plugin-proposal-class-static-block-7.13.11"
-      sources."@babel/plugin-proposal-dynamic-import-7.13.8"
-      sources."@babel/plugin-proposal-export-namespace-from-7.12.13"
-      sources."@babel/plugin-proposal-json-strings-7.13.8"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.13.8"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.13.8"
-      sources."@babel/plugin-proposal-numeric-separator-7.12.13"
-      sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.13.8"
-      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
-      sources."@babel/plugin-proposal-private-methods-7.13.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.14.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.12.13"
+      (sources."@apideck/better-ajv-errors-0.2.5" // {
+        dependencies = [
+          sources."leven-3.1.0"
+        ];
+      })
+      sources."@babel/code-frame-7.14.5"
+      sources."@babel/compat-data-7.15.0"
+      sources."@babel/core-7.15.5"
+      sources."@babel/eslint-parser-7.15.4"
+      sources."@babel/eslint-plugin-7.14.5"
+      sources."@babel/generator-7.15.4"
+      sources."@babel/helper-annotate-as-pure-7.15.4"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.15.4"
+      sources."@babel/helper-compilation-targets-7.15.4"
+      sources."@babel/helper-create-class-features-plugin-7.15.4"
+      sources."@babel/helper-create-regexp-features-plugin-7.14.5"
+      sources."@babel/helper-define-polyfill-provider-0.2.3"
+      sources."@babel/helper-explode-assignable-expression-7.15.4"
+      sources."@babel/helper-function-name-7.15.4"
+      sources."@babel/helper-get-function-arity-7.15.4"
+      sources."@babel/helper-hoist-variables-7.15.4"
+      sources."@babel/helper-member-expression-to-functions-7.15.4"
+      sources."@babel/helper-module-imports-7.15.4"
+      sources."@babel/helper-module-transforms-7.15.4"
+      sources."@babel/helper-optimise-call-expression-7.15.4"
+      sources."@babel/helper-plugin-utils-7.14.5"
+      sources."@babel/helper-remap-async-to-generator-7.15.4"
+      sources."@babel/helper-replace-supers-7.15.4"
+      sources."@babel/helper-simple-access-7.15.4"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.15.4"
+      sources."@babel/helper-split-export-declaration-7.15.4"
+      sources."@babel/helper-validator-identifier-7.14.9"
+      sources."@babel/helper-validator-option-7.14.5"
+      sources."@babel/helper-wrap-function-7.15.4"
+      sources."@babel/helpers-7.15.4"
+      sources."@babel/highlight-7.14.5"
+      sources."@babel/parser-7.15.5"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4"
+      sources."@babel/plugin-proposal-async-generator-functions-7.15.4"
+      sources."@babel/plugin-proposal-class-properties-7.14.5"
+      sources."@babel/plugin-proposal-class-static-block-7.15.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.14.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.14.5"
+      sources."@babel/plugin-proposal-json-strings-7.14.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.14.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.14.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.14.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.14.7"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.14.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.14.5"
+      sources."@babel/plugin-proposal-private-methods-7.14.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.15.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.14.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
-      sources."@babel/plugin-syntax-class-static-block-7.12.13"
+      sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
@@ -11575,72 +11661,76 @@ let
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
-      sources."@babel/plugin-syntax-private-property-in-object-7.14.0"
-      sources."@babel/plugin-syntax-top-level-await-7.12.13"
-      sources."@babel/plugin-transform-arrow-functions-7.13.0"
-      sources."@babel/plugin-transform-async-to-generator-7.13.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.12.13"
-      sources."@babel/plugin-transform-block-scoping-7.14.1"
-      sources."@babel/plugin-transform-classes-7.13.0"
-      sources."@babel/plugin-transform-computed-properties-7.13.0"
-      sources."@babel/plugin-transform-destructuring-7.13.17"
-      sources."@babel/plugin-transform-dotall-regex-7.12.13"
-      sources."@babel/plugin-transform-duplicate-keys-7.12.13"
-      sources."@babel/plugin-transform-exponentiation-operator-7.12.13"
-      sources."@babel/plugin-transform-for-of-7.13.0"
-      sources."@babel/plugin-transform-function-name-7.12.13"
-      sources."@babel/plugin-transform-literals-7.12.13"
-      sources."@babel/plugin-transform-member-expression-literals-7.12.13"
-      sources."@babel/plugin-transform-modules-amd-7.14.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.14.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.13.8"
-      sources."@babel/plugin-transform-modules-umd-7.14.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.13"
-      sources."@babel/plugin-transform-new-target-7.12.13"
-      sources."@babel/plugin-transform-object-super-7.12.13"
-      sources."@babel/plugin-transform-parameters-7.13.0"
-      sources."@babel/plugin-transform-property-literals-7.12.13"
-      sources."@babel/plugin-transform-regenerator-7.13.15"
-      sources."@babel/plugin-transform-reserved-words-7.12.13"
-      sources."@babel/plugin-transform-shorthand-properties-7.12.13"
-      sources."@babel/plugin-transform-spread-7.13.0"
-      sources."@babel/plugin-transform-sticky-regex-7.12.13"
-      sources."@babel/plugin-transform-template-literals-7.13.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.12.13"
-      sources."@babel/plugin-transform-unicode-escapes-7.12.13"
-      sources."@babel/plugin-transform-unicode-regex-7.12.13"
-      sources."@babel/preset-env-7.14.1"
+      sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
+      sources."@babel/plugin-syntax-top-level-await-7.14.5"
+      sources."@babel/plugin-transform-arrow-functions-7.14.5"
+      sources."@babel/plugin-transform-async-to-generator-7.14.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.14.5"
+      sources."@babel/plugin-transform-block-scoping-7.15.3"
+      sources."@babel/plugin-transform-classes-7.15.4"
+      sources."@babel/plugin-transform-computed-properties-7.14.5"
+      sources."@babel/plugin-transform-destructuring-7.14.7"
+      sources."@babel/plugin-transform-dotall-regex-7.14.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.14.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.14.5"
+      sources."@babel/plugin-transform-for-of-7.15.4"
+      sources."@babel/plugin-transform-function-name-7.14.5"
+      sources."@babel/plugin-transform-literals-7.14.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.14.5"
+      sources."@babel/plugin-transform-modules-amd-7.14.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.15.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.15.4"
+      sources."@babel/plugin-transform-modules-umd-7.14.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.14.9"
+      sources."@babel/plugin-transform-new-target-7.14.5"
+      sources."@babel/plugin-transform-object-super-7.14.5"
+      sources."@babel/plugin-transform-parameters-7.15.4"
+      sources."@babel/plugin-transform-property-literals-7.14.5"
+      sources."@babel/plugin-transform-regenerator-7.14.5"
+      sources."@babel/plugin-transform-reserved-words-7.14.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.14.5"
+      sources."@babel/plugin-transform-spread-7.14.6"
+      sources."@babel/plugin-transform-sticky-regex-7.14.5"
+      sources."@babel/plugin-transform-template-literals-7.14.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.14.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.14.5"
+      sources."@babel/plugin-transform-unicode-regex-7.14.5"
+      sources."@babel/preset-env-7.15.4"
       sources."@babel/preset-modules-0.1.4"
-      sources."@babel/runtime-7.14.0"
-      sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.14.0"
-      sources."@babel/types-7.14.1"
+      sources."@babel/runtime-7.15.4"
+      sources."@babel/template-7.15.4"
+      sources."@babel/traverse-7.15.4"
+      sources."@babel/types-7.15.4"
       sources."@csstools/convert-colors-1.4.0"
-      sources."@discoveryjs/json-ext-0.5.2"
-      (sources."@eslint/eslintrc-0.4.0" // {
+      sources."@discoveryjs/json-ext-0.5.3"
+      (sources."@eslint/eslintrc-0.4.3" // {
         dependencies = [
-          sources."globals-12.4.0"
+          sources."globals-13.11.0"
           sources."ignore-4.0.6"
           sources."import-fresh-3.3.0"
           sources."resolve-from-4.0.0"
         ];
       })
-      sources."@hapi/address-2.1.4"
-      sources."@hapi/bourne-1.3.2"
-      sources."@hapi/hoek-8.5.1"
-      sources."@hapi/joi-15.1.1"
-      sources."@hapi/topo-3.1.6"
-      sources."@mdn/browser-compat-data-2.0.7"
+      sources."@gar/promisify-1.1.2"
+      sources."@humanwhocodes/config-array-0.5.0"
+      sources."@humanwhocodes/object-schema-1.2.0"
+      sources."@mdn/browser-compat-data-3.3.14"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.scandir-2.1.4"
-      sources."@nodelib/fs.stat-2.0.4"
-      sources."@nodelib/fs.walk-1.2.6"
+      sources."@nodelib/fs.scandir-2.1.5"
+      sources."@nodelib/fs.stat-2.0.5"
+      sources."@nodelib/fs.walk-1.2.8"
+      (sources."@npmcli/fs-1.0.0" // {
+        dependencies = [
+          sources."semver-7.3.5"
+        ];
+      })
       (sources."@npmcli/move-file-1.1.2" // {
         dependencies = [
           sources."rimraf-3.0.2"
         ];
       })
-      sources."@rollup/plugin-node-resolve-7.1.3"
+      sources."@rollup/plugin-babel-5.3.0"
+      sources."@rollup/plugin-node-resolve-11.2.1"
       sources."@rollup/plugin-replace-2.4.2"
       (sources."@rollup/pluginutils-3.1.0" // {
         dependencies = [
@@ -11650,68 +11740,69 @@ let
       sources."@stylelint/postcss-css-in-js-0.37.2"
       sources."@stylelint/postcss-markdown-0.36.2"
       sources."@surma/rollup-plugin-off-main-thread-1.4.2"
-      sources."@types/anymatch-1.3.1"
-      sources."@types/eslint-7.2.10"
-      sources."@types/eslint-scope-3.7.0"
-      sources."@types/estree-0.0.47"
-      sources."@types/glob-7.1.3"
-      sources."@types/html-minifier-terser-5.1.1"
-      sources."@types/json-schema-7.0.7"
+      sources."@types/eslint-7.28.0"
+      sources."@types/eslint-scope-3.7.1"
+      sources."@types/estree-0.0.50"
+      sources."@types/glob-7.1.4"
+      sources."@types/html-minifier-terser-5.1.2"
+      sources."@types/json-schema-7.0.9"
       sources."@types/json5-0.0.29"
       sources."@types/localforage-0.0.34"
-      sources."@types/mdast-3.0.3"
-      sources."@types/minimatch-3.0.4"
-      sources."@types/minimist-1.2.1"
-      sources."@types/node-15.0.2"
-      sources."@types/normalize-package-data-2.4.0"
+      sources."@types/mdast-3.0.10"
+      sources."@types/minimatch-3.0.5"
+      sources."@types/minimist-1.2.2"
+      sources."@types/node-16.7.10"
+      sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
-      sources."@types/q-1.5.4"
-      sources."@types/resolve-0.0.8"
+      sources."@types/q-1.5.5"
+      sources."@types/resolve-1.17.1"
       sources."@types/source-list-map-0.1.2"
-      sources."@types/tapable-1.0.7"
-      (sources."@types/uglify-js-3.13.0" // {
+      sources."@types/tapable-1.0.8"
+      sources."@types/trusted-types-2.0.2"
+      (sources."@types/uglify-js-3.13.1" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@types/unist-2.0.3"
+      sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
-      (sources."@types/webpack-4.41.28" // {
+      (sources."@types/webpack-4.41.30" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-sources-2.1.0" // {
+      (sources."@types/webpack-sources-3.2.0" // {
         dependencies = [
           sources."source-map-0.7.3"
         ];
       })
       sources."@uupaa/dynamic-import-polyfill-1.0.2"
-      sources."@webassemblyjs/ast-1.11.0"
-      sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
-      sources."@webassemblyjs/helper-api-error-1.11.0"
-      sources."@webassemblyjs/helper-buffer-1.11.0"
-      sources."@webassemblyjs/helper-numbers-1.11.0"
-      sources."@webassemblyjs/helper-wasm-bytecode-1.11.0"
-      sources."@webassemblyjs/helper-wasm-section-1.11.0"
-      sources."@webassemblyjs/ieee754-1.11.0"
-      sources."@webassemblyjs/leb128-1.11.0"
-      sources."@webassemblyjs/utf8-1.11.0"
-      sources."@webassemblyjs/wasm-edit-1.11.0"
-      sources."@webassemblyjs/wasm-gen-1.11.0"
-      sources."@webassemblyjs/wasm-opt-1.11.0"
-      sources."@webassemblyjs/wasm-parser-1.11.0"
-      sources."@webassemblyjs/wast-printer-1.11.0"
-      sources."@webpack-cli/configtest-1.0.2"
-      sources."@webpack-cli/info-1.2.3"
-      sources."@webpack-cli/serve-1.3.1"
+      sources."@webassemblyjs/ast-1.11.1"
+      sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
+      sources."@webassemblyjs/helper-api-error-1.11.1"
+      sources."@webassemblyjs/helper-buffer-1.11.1"
+      sources."@webassemblyjs/helper-numbers-1.11.1"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.11.1"
+      sources."@webassemblyjs/helper-wasm-section-1.11.1"
+      sources."@webassemblyjs/ieee754-1.11.1"
+      sources."@webassemblyjs/leb128-1.11.1"
+      sources."@webassemblyjs/utf8-1.11.1"
+      sources."@webassemblyjs/wasm-edit-1.11.1"
+      sources."@webassemblyjs/wasm-gen-1.11.1"
+      sources."@webassemblyjs/wasm-opt-1.11.1"
+      sources."@webassemblyjs/wasm-parser-1.11.1"
+      sources."@webassemblyjs/wast-printer-1.11.1"
+      sources."@webpack-cli/configtest-1.0.4"
+      sources."@webpack-cli/info-1.3.0"
+      sources."@webpack-cli/serve-1.5.2"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."abab-2.0.5"
       sources."accepts-1.3.7"
       sources."acorn-7.4.1"
-      sources."acorn-jsx-5.3.1"
+      sources."acorn-import-assertions-1.7.6"
+      sources."acorn-jsx-5.3.2"
       sources."aggregate-error-3.1.0"
       sources."ajv-6.12.6"
       sources."ajv-errors-1.0.1"
@@ -11735,29 +11826,20 @@ let
       sources."array.prototype.flat-1.2.4"
       sources."arrify-1.0.1"
       sources."assign-symbols-1.0.0"
-      sources."ast-metadata-inferer-0.4.0"
+      sources."ast-metadata-inferer-0.7.0"
       sources."astral-regex-2.0.0"
       sources."async-2.6.3"
       sources."async-each-1.0.3"
       sources."async-limiter-1.0.1"
+      sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."autoprefixer-9.8.6"
-      sources."babel-extract-comments-1.0.0"
       sources."babel-loader-8.2.2"
       sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."babel-plugin-dynamic-import-polyfill-1.0.0"
-      sources."babel-plugin-polyfill-corejs2-0.2.0"
-      sources."babel-plugin-polyfill-corejs3-0.2.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.0"
-      sources."babel-plugin-syntax-object-rest-spread-6.13.0"
-      sources."babel-plugin-transform-object-rest-spread-6.26.0"
-      (sources."babel-runtime-6.26.0" // {
-        dependencies = [
-          sources."core-js-2.6.12"
-          sources."regenerator-runtime-0.11.1"
-        ];
-      })
-      sources."babylon-6.18.0"
+      sources."babel-plugin-polyfill-corejs2-0.2.2"
+      sources."babel-plugin-polyfill-corejs3-0.2.4"
+      sources."babel-plugin-polyfill-regenerator-0.2.2"
       sources."bail-1.0.5"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -11769,7 +11851,7 @@ let
       sources."big.js-5.2.2"
       sources."binary-extensions-2.2.0"
       sources."bindings-1.5.0"
-      sources."blurhash-1.1.3"
+      sources."blurhash-1.1.4"
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."bytes-3.1.0"
@@ -11782,12 +11864,12 @@ let
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.16.6"
-      sources."buffer-from-1.1.1"
+      sources."browserslist-4.17.0"
+      sources."buffer-from-1.1.2"
       sources."buffer-indexof-1.1.1"
       sources."builtin-modules-3.2.0"
       sources."bytes-3.0.0"
-      (sources."cacache-15.0.6" // {
+      (sources."cacache-15.3.0" // {
         dependencies = [
           sources."p-map-4.0.0"
           sources."rimraf-3.0.2"
@@ -11800,22 +11882,18 @@ let
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."camel-case-4.1.2"
-      sources."camelcase-6.2.0"
-      (sources."camelcase-keys-6.2.2" // {
-        dependencies = [
-          sources."camelcase-5.3.1"
-        ];
-      })
+      sources."camelcase-5.3.1"
+      sources."camelcase-keys-6.2.2"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-db-1.0.30001222"
-      sources."caniuse-lite-1.0.30001222"
+      sources."caniuse-db-1.0.30001255"
+      sources."caniuse-lite-1.0.30001255"
       sources."ccount-1.1.0"
       sources."chalk-2.4.2"
       sources."character-entities-1.2.4"
       sources."character-entities-html4-1.1.4"
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
-      sources."chokidar-3.5.1"
+      sources."chokidar-3.5.2"
       sources."chownr-2.0.0"
       sources."chrome-trace-event-1.0.3"
       (sources."class-utils-0.3.6" // {
@@ -11858,11 +11936,11 @@ let
       sources."coa-2.0.2"
       sources."collapse-white-space-1.0.6"
       sources."collection-visit-1.0.0"
-      sources."color-3.1.3"
+      sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.5"
-      sources."colorette-1.2.2"
+      sources."color-string-1.6.0"
+      sources."colorette-1.3.0"
       sources."commander-4.1.1"
       sources."common-tags-1.8.0"
       sources."commondir-1.0.1"
@@ -11877,32 +11955,31 @@ let
       sources."concat-map-0.0.1"
       sources."confusing-browser-globals-1.0.10"
       sources."connect-history-api-fallback-1.6.0"
-      sources."contains-path-0.1.0"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
-      sources."convert-source-map-1.7.0"
+      sources."convert-source-map-1.8.0"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
       (sources."copy-webpack-plugin-6.4.1" // {
         dependencies = [
           sources."array-union-2.1.0"
-          sources."globby-11.0.3"
+          sources."globby-11.0.4"
           sources."loader-utils-2.0.0"
           sources."p-limit-3.1.0"
-          sources."schema-utils-3.0.0"
+          sources."schema-utils-3.1.1"
         ];
       })
-      sources."core-js-3.11.2"
-      (sources."core-js-compat-3.11.2" // {
+      sources."core-js-3.17.2"
+      (sources."core-js-compat-3.17.2" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
       })
-      sources."core-util-is-1.0.2"
+      sources."core-util-is-1.0.3"
       sources."cosmiconfig-5.2.1"
       sources."cross-spawn-7.0.3"
-      sources."crypto-random-string-1.0.0"
+      sources."crypto-random-string-2.0.0"
       sources."css-blank-pseudo-0.1.4"
       sources."css-color-names-0.0.4"
       sources."css-declaration-sorter-4.0.1"
@@ -11912,13 +11989,12 @@ let
           sources."postcss-selector-parser-5.0.0"
         ];
       })
-      (sources."css-loader-5.2.4" // {
+      (sources."css-loader-5.2.7" // {
         dependencies = [
           sources."loader-utils-2.0.0"
-          sources."postcss-8.2.13"
-          sources."schema-utils-3.0.0"
+          sources."postcss-8.3.6"
+          sources."schema-utils-3.1.1"
           sources."semver-7.3.5"
-          sources."source-map-0.6.1"
         ];
       })
       sources."css-prefers-color-scheme-3.1.1"
@@ -11951,7 +12027,7 @@ let
           sources."type-1.2.0"
         ];
       })
-      sources."date-fns-2.21.1"
+      sources."date-fns-2.23.0"
       sources."debug-4.3.2"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
@@ -11961,7 +12037,8 @@ let
       })
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-1.1.1"
-      sources."deep-is-0.1.3"
+      sources."deep-is-0.1.4"
+      sources."deepmerge-4.2.2"
       (sources."default-gateway-4.2.0" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
@@ -11981,10 +12058,10 @@ let
       sources."del-4.1.1"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."detect-node-2.0.5"
+      sources."detect-node-2.1.0"
       sources."dir-glob-3.0.1"
       sources."dns-equal-1.0.0"
-      sources."dns-packet-1.3.1"
+      sources."dns-packet-1.3.4"
       sources."dns-txt-2.0.2"
       sources."doctrine-3.0.0"
       sources."dom-converter-0.2.0"
@@ -12005,12 +12082,12 @@ let
       sources."dot-prop-5.3.0"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.726"
+      sources."electron-to-chromium-1.3.830"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-5.8.0" // {
+      (sources."enhanced-resolve-5.8.2" // {
         dependencies = [
           sources."tapable-2.2.0"
         ];
@@ -12021,8 +12098,8 @@ let
       sources."epubjs-0.3.88"
       sources."errno-0.1.8"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.18.0"
-      sources."es-module-lexer-0.4.1"
+      sources."es-abstract-1.18.5"
+      sources."es-module-lexer-0.7.1"
       sources."es-to-primitive-1.2.1"
       sources."es5-ext-0.10.53"
       sources."es6-iterator-2.0.3"
@@ -12031,36 +12108,33 @@ let
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.25.0" // {
+      (sources."eslint-7.32.0" // {
         dependencies = [
           sources."@babel/code-frame-7.12.11"
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.1"
+          sources."chalk-4.1.2"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."eslint-visitor-keys-2.1.0"
-          sources."globals-13.8.0"
+          sources."escape-string-regexp-4.0.0"
+          sources."globals-13.11.0"
           sources."has-flag-4.0.0"
           sources."ignore-4.0.6"
           sources."import-fresh-3.3.0"
           sources."resolve-from-4.0.0"
           sources."semver-7.3.5"
           sources."supports-color-7.2.0"
-          sources."type-fest-0.20.2"
         ];
       })
-      (sources."eslint-import-resolver-node-0.3.4" // {
+      (sources."eslint-import-resolver-node-0.3.6" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
+          sources."debug-3.2.7"
         ];
       })
-      (sources."eslint-module-utils-2.6.0" // {
+      (sources."eslint-module-utils-2.6.2" // {
         dependencies = [
-          sources."debug-2.6.9"
+          sources."debug-3.2.7"
           sources."find-up-2.1.0"
           sources."locate-path-2.0.0"
-          sources."ms-2.0.0"
           sources."p-limit-1.3.0"
           sources."p-locate-2.0.0"
           sources."p-try-1.0.0"
@@ -12068,25 +12142,43 @@ let
           sources."pkg-dir-2.0.0"
         ];
       })
-      (sources."eslint-plugin-compat-3.9.0" // {
+      (sources."eslint-plugin-compat-3.13.0" // {
         dependencies = [
-          sources."semver-7.3.2"
+          sources."find-up-5.0.0"
+          sources."locate-path-6.0.0"
+          sources."p-limit-3.1.0"
+          sources."p-locate-5.0.0"
+          sources."semver-7.3.5"
         ];
       })
       sources."eslint-plugin-eslint-comments-3.2.0"
-      (sources."eslint-plugin-import-2.22.1" // {
+      (sources."eslint-plugin-import-2.24.2" // {
         dependencies = [
           sources."debug-2.6.9"
-          sources."doctrine-1.5.0"
+          sources."doctrine-2.1.0"
+          sources."find-up-2.1.0"
+          sources."locate-path-2.0.0"
           sources."ms-2.0.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
+          sources."path-exists-3.0.0"
         ];
       })
       sources."eslint-plugin-promise-4.3.1"
       sources."eslint-rule-composer-0.3.0"
       sources."eslint-scope-5.1.1"
-      sources."eslint-utils-2.1.0"
-      sources."eslint-visitor-keys-1.3.0"
-      sources."espree-7.3.1"
+      (sources."eslint-utils-2.1.0" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+        ];
+      })
+      sources."eslint-visitor-keys-2.1.0"
+      (sources."espree-7.3.1" // {
+        dependencies = [
+          sources."eslint-visitor-keys-1.3.0"
+        ];
+      })
       sources."esprima-4.0.1"
       (sources."esquery-1.4.0" // {
         dependencies = [
@@ -12106,7 +12198,7 @@ let
       sources."eventemitter3-4.0.7"
       sources."events-3.3.0"
       sources."eventsource-1.1.0"
-      sources."execa-5.0.0"
+      sources."execa-5.1.1"
       sources."execall-2.0.0"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -12132,7 +12224,7 @@ let
       (sources."expose-loader-1.0.3" // {
         dependencies = [
           sources."loader-utils-2.0.0"
-          sources."schema-utils-3.0.0"
+          sources."schema-utils-3.1.1"
         ];
       })
       (sources."express-4.17.1" // {
@@ -12143,7 +12235,7 @@ let
           sources."path-to-regexp-0.1.7"
         ];
       })
-      sources."ext-1.4.0"
+      sources."ext-1.5.0"
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
@@ -12157,18 +12249,18 @@ let
         ];
       })
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.2.5"
+      sources."fast-glob-3.2.7"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fast-text-encoding-1.0.3"
       sources."fastest-levenshtein-1.0.12"
-      sources."fastq-1.11.0"
-      sources."faye-websocket-0.11.3"
+      sources."fastq-1.12.0"
+      sources."faye-websocket-0.11.4"
       sources."file-entry-cache-6.0.1"
       (sources."file-loader-6.2.0" // {
         dependencies = [
           sources."loader-utils-2.0.0"
-          sources."schema-utils-3.0.0"
+          sources."schema-utils-3.1.1"
         ];
       })
       sources."file-uri-to-path-1.0.0"
@@ -12179,27 +12271,27 @@ let
           sources."ms-2.0.0"
         ];
       })
-      sources."find-cache-dir-3.3.1"
+      sources."find-cache-dir-3.3.2"
       sources."find-up-4.1.0"
       (sources."flat-cache-3.0.4" // {
         dependencies = [
           sources."rimraf-3.0.2"
         ];
       })
-      sources."flatted-3.1.1"
+      sources."flatted-3.2.2"
       sources."flatten-1.0.3"
-      sources."flv.js-1.5.0"
-      sources."follow-redirects-1.14.0"
+      sources."flv.js-1.6.1"
+      sources."follow-redirects-1.14.3"
       sources."fontsource-noto-sans-3.1.5"
       sources."fontsource-noto-sans-hk-3.1.5"
       sources."fontsource-noto-sans-jp-3.1.5"
       sources."fontsource-noto-sans-kr-3.1.5"
       sources."fontsource-noto-sans-sc-3.1.5"
       sources."for-in-1.0.2"
-      sources."forwarded-0.1.2"
+      sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
-      sources."fs-extra-8.1.0"
+      sources."fs-extra-9.1.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
@@ -12213,7 +12305,7 @@ let
       sources."get-stdin-8.0.0"
       sources."get-stream-6.0.1"
       sources."get-value-2.0.6"
-      sources."glob-7.1.6"
+      sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.3.0"
       sources."global-modules-2.0.0"
@@ -12230,7 +12322,7 @@ let
       })
       sources."globjoin-0.1.4"
       sources."gonzales-pe-4.3.0"
-      sources."graceful-fs-4.2.6"
+      sources."graceful-fs-4.2.8"
       sources."handle-thing-2.0.1"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
@@ -12242,6 +12334,7 @@ let
       sources."has-bigints-1.0.1"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.2"
+      sources."has-tostringtag-1.0.0"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -12266,7 +12359,7 @@ let
       (sources."html-loader-1.3.2" // {
         dependencies = [
           sources."loader-utils-2.0.0"
-          sources."schema-utils-3.0.0"
+          sources."schema-utils-3.1.1"
         ];
       })
       sources."html-minifier-terser-5.1.1"
@@ -12278,15 +12371,15 @@ let
       })
       (sources."htmlparser2-4.1.0" // {
         dependencies = [
-          (sources."dom-serializer-1.3.1" // {
+          (sources."dom-serializer-1.3.2" // {
             dependencies = [
-              sources."domhandler-4.2.0"
+              sources."domhandler-4.2.2"
             ];
           })
           sources."domelementtype-2.2.0"
-          (sources."domutils-2.6.0" // {
+          (sources."domutils-2.8.0" // {
             dependencies = [
-              sources."domhandler-4.2.0"
+              sources."domhandler-4.2.2"
             ];
           })
         ];
@@ -12312,8 +12405,9 @@ let
         ];
       })
       sources."human-signals-2.1.0"
-      sources."iconv-lite-0.6.2"
+      sources."iconv-lite-0.6.3"
       sources."icss-utils-5.1.0"
+      sources."idb-6.1.3"
       sources."ignore-5.1.8"
       sources."immediate-3.0.6"
       sources."import-cwd-2.1.0"
@@ -12329,6 +12423,7 @@ let
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."internal-ip-4.3.0"
+      sources."internal-slot-1.0.3"
       sources."interpret-2.2.0"
       sources."intersection-observer-0.12.0"
       sources."ip-1.1.5"
@@ -12340,17 +12435,17 @@ let
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumeric-1.0.0"
       sources."is-alphanumerical-1.0.4"
-      sources."is-arguments-1.1.0"
+      sources."is-arguments-1.1.1"
       sources."is-arrayish-0.2.1"
-      sources."is-bigint-1.0.2"
+      sources."is-bigint-1.0.4"
       sources."is-binary-path-2.1.0"
-      sources."is-boolean-object-1.1.0"
+      sources."is-boolean-object-1.1.2"
       sources."is-buffer-2.0.5"
-      sources."is-callable-1.2.3"
+      sources."is-callable-1.2.4"
       sources."is-color-stop-1.1.0"
-      sources."is-core-module-2.3.0"
+      sources."is-core-module-2.6.0"
       sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
+      sources."is-date-object-1.0.5"
       sources."is-decimal-1.0.4"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
@@ -12362,20 +12457,20 @@ let
       sources."is-module-1.0.0"
       sources."is-negative-zero-2.0.1"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.4"
+      sources."is-number-object-1.0.6"
       sources."is-obj-2.0.0"
       sources."is-path-cwd-2.2.0"
       sources."is-path-in-cwd-2.1.0"
       sources."is-path-inside-2.1.0"
       sources."is-plain-obj-2.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.2"
+      sources."is-regex-1.1.4"
       sources."is-regexp-2.1.0"
       sources."is-resolvable-1.1.0"
-      sources."is-stream-2.0.0"
-      sources."is-string-1.0.5"
+      sources."is-stream-2.0.1"
+      sources."is-string-1.0.7"
       sources."is-supported-regexp-flag-1.0.1"
-      sources."is-symbol-1.0.3"
+      sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."is-whitespace-character-1.0.4"
@@ -12386,10 +12481,10 @@ let
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."jellyfin-apiclient-1.8.0"
-      (sources."jest-worker-26.6.2" // {
+      (sources."jest-worker-27.1.0" // {
         dependencies = [
           sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
+          sources."supports-color-8.1.1"
         ];
       })
       sources."jquery-3.6.0"
@@ -12399,13 +12494,15 @@ let
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
+      sources."json-schema-0.3.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json3-3.3.3"
       sources."json5-2.2.0"
-      sources."jsonfile-4.0.0"
-      sources."jstree-3.3.11"
-      sources."jszip-3.6.0"
+      sources."jsonfile-6.1.0"
+      sources."jsonpointer-4.1.0"
+      sources."jstree-3.3.12"
+      sources."jszip-3.7.1"
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
       sources."klona-2.0.4"
@@ -12416,10 +12513,9 @@ let
       sources."libass-wasm-https://github.com/jellyfin/JavascriptSubtitlesOctopus/archive/refs/tags/4.0.0-jf-smarttv.tar.gz"
       sources."lie-3.3.0"
       sources."lines-and-columns-1.1.6"
-      (sources."load-json-file-2.0.0" // {
+      (sources."load-json-file-4.0.0" // {
         dependencies = [
-          sources."parse-json-2.2.0"
-          sources."pify-2.3.0"
+          sources."pify-3.0.0"
         ];
       })
       sources."loader-runner-4.2.0"
@@ -12428,26 +12524,24 @@ let
           sources."json5-1.0.1"
         ];
       })
-      (sources."localforage-1.9.0" // {
+      (sources."localforage-1.10.0" // {
         dependencies = [
           sources."lie-3.1.1"
         ];
       })
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
-      sources."lodash._reinterpolate-3.0.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lodash.debounce-4.0.8"
-      sources."lodash.flatten-4.4.0"
       sources."lodash.memoize-4.1.2"
-      sources."lodash.template-4.5.0"
-      sources."lodash.templatesettings-4.2.0"
+      sources."lodash.merge-4.6.2"
+      sources."lodash.sortby-4.7.0"
       sources."lodash.truncate-4.4.2"
       sources."lodash.uniq-4.5.0"
       (sources."log-symbols-4.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."chalk-4.1.1"
+          sources."chalk-4.1.2"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
@@ -12479,7 +12573,7 @@ let
       (sources."meow-9.0.0" // {
         dependencies = [
           sources."hosted-git-info-4.0.2"
-          sources."normalize-package-data-3.0.2"
+          sources."normalize-package-data-3.0.3"
           sources."parse-json-5.2.0"
           (sources."read-pkg-5.2.0" // {
             dependencies = [
@@ -12505,8 +12599,8 @@ let
       sources."micromark-2.11.4"
       sources."micromatch-4.0.4"
       sources."mime-1.6.0"
-      sources."mime-db-1.47.0"
-      sources."mime-types-2.1.30"
+      sources."mime-db-1.49.0"
+      sources."mime-types-2.1.32"
       sources."mimic-fn-2.1.0"
       sources."min-indent-1.0.1"
       sources."minimalistic-assert-1.0.1"
@@ -12531,8 +12625,8 @@ let
       sources."ms-2.1.2"
       sources."multicast-dns-6.2.3"
       sources."multicast-dns-service-types-1.1.0"
-      sources."nan-2.14.2"
-      sources."nanoid-3.1.22"
+      sources."nan-2.15.0"
+      sources."nanoid-3.1.25"
       sources."nanomatch-1.2.13"
       sources."native-promise-only-0.8.1"
       sources."natural-compare-1.4.0"
@@ -12542,7 +12636,7 @@ let
       sources."nice-try-1.0.5"
       sources."no-case-3.0.4"
       sources."node-forge-0.10.0"
-      sources."node-releases-1.1.71"
+      sources."node-releases-1.1.75"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -12570,14 +12664,14 @@ let
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.10.2"
+      sources."object-inspect-1.11.0"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
       sources."object.getownpropertydescriptors-2.1.2"
       sources."object.pick-1.3.0"
-      sources."object.values-1.1.3"
+      sources."object.values-1.1.4"
       sources."obuf-1.1.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
@@ -12610,7 +12704,7 @@ let
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       (sources."path-to-regexp-1.2.1" // {
         dependencies = [
           sources."isarray-0.0.1"
@@ -12619,11 +12713,21 @@ let
       sources."path-type-4.0.0"
       sources."path-webpack-0.0.3"
       sources."pdfjs-dist-2.5.207"
-      sources."picomatch-2.2.3"
+      sources."picomatch-2.3.0"
       sources."pify-4.0.1"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."pkg-dir-4.2.0"
+      (sources."pkg-up-2.0.0" // {
+        dependencies = [
+          sources."find-up-2.1.0"
+          sources."locate-path-2.0.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
+          sources."path-exists-3.0.0"
+        ];
+      })
       sources."plur-2.1.2"
       (sources."portfinder-1.0.28" // {
         dependencies = [
@@ -12632,7 +12736,7 @@ let
         ];
       })
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.35" // {
+      (sources."postcss-7.0.36" // {
         dependencies = [
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
@@ -12825,7 +12929,7 @@ let
       sources."postcss-scss-2.1.1"
       sources."postcss-selector-matches-4.0.0"
       sources."postcss-selector-not-4.0.1"
-      sources."postcss-selector-parser-6.0.5"
+      sources."postcss-selector-parser-6.0.6"
       sources."postcss-sorting-4.1.0"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
@@ -12842,7 +12946,7 @@ let
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-inflight-1.0.1"
-      sources."proxy-addr-2.0.6"
+      sources."proxy-addr-2.0.7"
       sources."prr-1.0.1"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
@@ -12861,13 +12965,13 @@ let
         ];
       })
       sources."read-file-stdin-0.2.1"
-      (sources."read-pkg-2.0.0" // {
+      (sources."read-pkg-3.0.0" // {
         dependencies = [
-          sources."path-type-2.0.0"
-          sources."pify-2.3.0"
+          sources."path-type-3.0.0"
+          sources."pify-3.0.0"
         ];
       })
-      (sources."read-pkg-up-2.0.0" // {
+      (sources."read-pkg-up-3.0.0" // {
         dependencies = [
           sources."find-up-2.1.0"
           sources."locate-path-2.0.0"
@@ -12878,16 +12982,16 @@ let
         ];
       })
       sources."readable-stream-2.3.7"
-      sources."readdirp-3.5.0"
-      sources."rechoir-0.7.0"
+      sources."readdirp-3.6.0"
+      sources."rechoir-0.7.1"
       sources."redent-3.0.0"
       sources."regenerate-1.4.2"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.8"
+      sources."regenerator-runtime-0.13.9"
       sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
       sources."regexp.prototype.flags-1.3.1"
-      sources."regexpp-3.1.0"
+      sources."regexpp-3.2.0"
       sources."regexpu-core-4.7.1"
       sources."regjsgen-0.5.2"
       (sources."regjsparser-0.6.9" // {
@@ -12900,13 +13004,17 @@ let
       sources."remark-parse-9.0.0"
       sources."remark-stringify-9.0.1"
       sources."remove-trailing-separator-1.1.0"
-      (sources."renderkid-2.0.5" // {
+      (sources."renderkid-2.0.7" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
-          sources."domhandler-2.4.2"
-          sources."entities-1.1.2"
-          sources."htmlparser2-3.10.1"
-          sources."readable-stream-3.6.0"
+          sources."css-select-4.1.3"
+          sources."css-what-5.0.1"
+          sources."dom-serializer-1.3.2"
+          sources."domelementtype-2.2.0"
+          sources."domhandler-4.2.2"
+          sources."domutils-2.8.0"
+          sources."htmlparser2-6.1.0"
+          sources."nth-check-2.0.0"
           sources."strip-ansi-3.0.1"
         ];
       })
@@ -12932,29 +13040,27 @@ let
       sources."rgb-regex-1.0.1"
       sources."rgba-regex-1.0.0"
       sources."rimraf-2.7.1"
-      sources."rollup-1.32.1"
-      sources."rollup-plugin-babel-4.4.0"
-      (sources."rollup-plugin-terser-5.3.1" // {
+      sources."rollup-2.56.3"
+      (sources."rollup-plugin-terser-7.0.2" // {
         dependencies = [
-          sources."jest-worker-24.9.0"
+          sources."commander-2.20.3"
+          sources."has-flag-4.0.0"
+          sources."jest-worker-26.6.2"
           sources."serialize-javascript-4.0.0"
-          sources."supports-color-6.1.0"
-        ];
-      })
-      (sources."rollup-pluginutils-2.8.2" // {
-        dependencies = [
-          sources."estree-walker-0.6.1"
+          sources."source-map-0.7.3"
+          sources."supports-color-7.2.0"
+          sources."terser-5.7.2"
         ];
       })
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-1.32.12"
-      (sources."sass-loader-10.1.1" // {
+      sources."sass-1.39.0"
+      (sources."sass-loader-10.2.0" // {
         dependencies = [
           sources."loader-utils-2.0.0"
-          sources."schema-utils-3.0.0"
+          sources."schema-utils-3.1.1"
           sources."semver-7.3.5"
         ];
       })
@@ -12996,6 +13102,7 @@ let
       sources."shallow-clone-3.0.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
+      sources."side-channel-1.0.4"
       sources."signal-exit-3.0.3"
       (sources."simple-swizzle-0.2.2" // {
         dependencies = [
@@ -13043,18 +13150,19 @@ let
         ];
       })
       sources."sockjs-0.3.21"
-      (sources."sockjs-client-1.5.1" // {
+      (sources."sockjs-client-1.5.2" // {
         dependencies = [
           sources."debug-3.2.7"
         ];
       })
-      sources."sortablejs-1.13.0"
+      sources."sortablejs-1.14.0"
       sources."source-list-map-2.0.1"
       sources."source-map-0.5.7"
+      sources."source-map-js-0.6.2"
       (sources."source-map-loader-1.1.3" // {
         dependencies = [
           sources."loader-utils-2.0.0"
-          sources."schema-utils-3.0.0"
+          sources."schema-utils-3.1.1"
           sources."source-map-0.6.1"
         ];
       })
@@ -13069,7 +13177,7 @@ let
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.7"
+      sources."spdx-license-ids-3.0.10"
       sources."spdy-4.0.2"
       (sources."spdy-transport-3.0.0" // {
         dependencies = [
@@ -13115,7 +13223,7 @@ let
       })
       sources."strip-ansi-6.0.0"
       sources."strip-bom-3.0.0"
-      sources."strip-comments-1.0.2"
+      sources."strip-comments-2.0.1"
       sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
@@ -13123,7 +13231,7 @@ let
       (sources."style-loader-2.0.0" // {
         dependencies = [
           sources."loader-utils-2.0.0"
-          sources."schema-utils-3.0.0"
+          sources."schema-utils-3.1.1"
         ];
       })
       sources."style-search-0.1.0"
@@ -13137,11 +13245,11 @@ let
           sources."ansi-styles-4.3.0"
           sources."array-union-2.1.0"
           sources."balanced-match-2.0.0"
-          sources."chalk-4.1.1"
+          sources."chalk-4.1.2"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."cosmiconfig-7.0.0"
-          sources."globby-11.0.3"
+          sources."cosmiconfig-7.0.1"
+          sources."globby-11.0.4"
           sources."has-flag-4.0.0"
           (sources."import-fresh-3.3.0" // {
             dependencies = [
@@ -13176,7 +13284,6 @@ let
               sources."extend-shallow-2.0.1"
             ];
           })
-          sources."find-up-2.1.0"
           sources."flat-cache-2.0.1"
           sources."flatted-2.0.2"
           sources."get-stdin-6.0.0"
@@ -13194,25 +13301,17 @@ let
           sources."is-regexp-1.0.0"
           sources."kind-of-3.2.2"
           sources."known-css-properties-0.11.0"
-          sources."load-json-file-4.0.0"
-          sources."locate-path-2.0.0"
           sources."log-symbols-2.2.0"
           sources."map-obj-2.0.0"
           sources."meow-5.0.0"
           sources."micromatch-3.1.10"
           sources."minimist-options-3.0.2"
-          sources."p-limit-1.3.0"
-          sources."p-locate-2.0.0"
-          sources."p-try-1.0.0"
-          sources."path-exists-3.0.0"
           sources."path-type-3.0.0"
           sources."pify-3.0.0"
           sources."postcss-sass-0.3.5"
           sources."postcss-selector-parser-3.1.2"
           sources."postcss-value-parser-3.3.1"
           sources."quick-lru-1.1.0"
-          sources."read-pkg-3.0.0"
-          sources."read-pkg-up-3.0.0"
           sources."redent-2.0.0"
           sources."resolve-from-4.0.0"
           sources."rimraf-2.6.3"
@@ -13248,7 +13347,6 @@ let
           sources."fast-glob-2.2.7"
           sources."file-entry-cache-4.0.0"
           sources."fill-range-4.0.0"
-          sources."find-up-2.1.0"
           sources."flat-cache-2.0.1"
           sources."flatted-2.0.2"
           sources."get-stdin-6.0.0"
@@ -13267,17 +13365,11 @@ let
           sources."is-regexp-1.0.0"
           sources."kind-of-3.2.2"
           sources."known-css-properties-0.11.0"
-          sources."load-json-file-4.0.0"
-          sources."locate-path-2.0.0"
           sources."log-symbols-1.0.2"
           sources."map-obj-2.0.0"
           sources."meow-5.0.0"
           sources."micromatch-3.1.10"
           sources."minimist-options-3.0.2"
-          sources."p-limit-1.3.0"
-          sources."p-locate-2.0.0"
-          sources."p-try-1.0.0"
-          sources."path-exists-3.0.0"
           sources."path-type-3.0.0"
           sources."pify-3.0.0"
           (sources."postcss-5.2.18" // {
@@ -13295,15 +13387,13 @@ let
                 ];
               })
               sources."has-flag-3.0.0"
-              sources."postcss-7.0.35"
+              sources."postcss-7.0.36"
               sources."supports-color-6.1.0"
             ];
           })
           sources."postcss-selector-parser-2.2.3"
           sources."postcss-value-parser-3.3.1"
           sources."quick-lru-1.1.0"
-          sources."read-pkg-3.0.0"
-          sources."read-pkg-up-3.0.0"
           sources."redent-2.0.0"
           sources."resolve-from-4.0.0"
           sources."rimraf-2.6.3"
@@ -13329,7 +13419,7 @@ let
               sources."chalk-2.4.2"
               sources."has-flag-3.0.0"
               sources."log-symbols-2.2.0"
-              (sources."postcss-7.0.35" // {
+              (sources."postcss-7.0.36" // {
                 dependencies = [
                   sources."supports-color-6.1.0"
                 ];
@@ -13351,7 +13441,7 @@ let
           sources."postcss-sorting-5.0.1"
         ];
       })
-      sources."stylelint-scss-3.19.0"
+      sources."stylelint-scss-3.20.1"
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
@@ -13360,19 +13450,19 @@ let
           sources."mkdirp-0.5.5"
         ];
       })
-      sources."swiper-6.5.9"
-      (sources."table-6.6.0" // {
+      sources."swiper-6.8.4"
+      (sources."table-6.7.1" // {
         dependencies = [
-          sources."ajv-8.2.0"
+          sources."ajv-8.6.2"
           sources."json-schema-traverse-1.0.0"
         ];
       })
       sources."tapable-1.1.3"
-      sources."tar-6.1.0"
-      sources."temp-dir-1.0.0"
-      (sources."tempy-0.3.0" // {
+      sources."tar-6.1.11"
+      sources."temp-dir-2.0.0"
+      (sources."tempy-0.6.0" // {
         dependencies = [
-          sources."type-fest-0.3.1"
+          sources."type-fest-0.16.0"
         ];
       })
       (sources."terser-4.8.0" // {
@@ -13381,13 +13471,14 @@ let
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-5.1.1" // {
+      (sources."terser-webpack-plugin-5.2.3" // {
         dependencies = [
           sources."commander-2.20.3"
           sources."p-limit-3.1.0"
-          sources."schema-utils-3.0.0"
+          sources."schema-utils-3.1.1"
+          sources."serialize-javascript-6.0.0"
           sources."source-map-0.6.1"
-          (sources."terser-5.7.0" // {
+          (sources."terser-5.7.2" // {
             dependencies = [
               sources."source-map-0.7.3"
             ];
@@ -13407,19 +13498,20 @@ let
       sources."to-regex-3.0.2"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
+      sources."tr46-1.0.1"
       sources."trim-0.0.1"
-      sources."trim-newlines-3.0.0"
+      sources."trim-newlines-3.0.1"
       sources."trim-trailing-lines-1.1.4"
       sources."trough-1.0.5"
-      (sources."tsconfig-paths-3.9.0" // {
+      (sources."tsconfig-paths-3.11.0" // {
         dependencies = [
           sources."json5-1.0.1"
         ];
       })
-      sources."tslib-2.2.0"
+      sources."tslib-2.3.1"
       sources."type-2.5.0"
       sources."type-check-0.4.0"
-      sources."type-fest-0.8.1"
+      sources."type-fest-0.20.2"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
       sources."unbox-primitive-1.0.1"
@@ -13428,13 +13520,13 @@ let
       sources."unicode-match-property-ecmascript-1.0.4"
       sources."unicode-match-property-value-ecmascript-1.2.0"
       sources."unicode-property-aliases-ecmascript-1.1.0"
-      sources."unified-9.2.1"
+      sources."unified-9.2.2"
       sources."union-value-1.0.1"
       sources."uniq-1.0.1"
       sources."uniqs-2.0.0"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
-      sources."unique-string-1.0.0"
+      sources."unique-string-2.0.0"
       sources."unist-util-find-all-after-3.0.2"
       sources."unist-util-is-4.1.0"
       sources."unist-util-remove-position-1.1.4"
@@ -13445,7 +13537,7 @@ let
           sources."unist-util-is-3.0.0"
         ];
       })
-      sources."universalify-0.1.2"
+      sources."universalify-2.0.0"
       sources."unpipe-1.0.0"
       sources."unquote-1.1.1"
       (sources."unset-value-1.0.0" // {
@@ -13466,8 +13558,8 @@ let
           sources."punycode-1.3.2"
         ];
       })
-      sources."url-parse-1.5.1"
-      sources."url-toolkit-2.2.2"
+      sources."url-parse-1.5.3"
+      sources."url-toolkit-2.2.3"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."util.promisify-1.0.1"
@@ -13481,27 +13573,27 @@ let
       sources."vfile-4.2.1"
       sources."vfile-location-2.0.6"
       sources."vfile-message-2.0.4"
-      (sources."watchpack-2.1.1" // {
+      (sources."watchpack-2.2.0" // {
         dependencies = [
           sources."glob-to-regexp-0.4.1"
         ];
       })
       sources."wbuf-1.7.3"
       sources."webcomponents.js-0.7.24"
-      (sources."webpack-5.36.2" // {
+      sources."webidl-conversions-4.0.2"
+      (sources."webpack-5.52.0" // {
         dependencies = [
-          sources."acorn-8.2.4"
+          sources."acorn-8.4.1"
           sources."glob-to-regexp-0.4.1"
-          sources."schema-utils-3.0.0"
-          sources."source-map-0.6.1"
+          sources."schema-utils-3.1.1"
           sources."tapable-2.2.0"
-          sources."webpack-sources-2.2.0"
+          sources."webpack-sources-3.2.0"
         ];
       })
-      (sources."webpack-cli-4.6.0" // {
+      (sources."webpack-cli-4.8.0" // {
         dependencies = [
           sources."commander-7.2.0"
-          sources."webpack-merge-5.7.3"
+          sources."webpack-merge-5.8.0"
         ];
       })
       (sources."webpack-dev-middleware-3.7.3" // {
@@ -13556,35 +13648,90 @@ let
       })
       sources."websocket-driver-0.7.4"
       sources."websocket-extensions-0.1.4"
-      sources."webworkify-1.5.0"
+      sources."webworkify-webpack-2.1.5"
       sources."whatwg-fetch-3.6.2"
       sources."whatwg-mimetype-2.3.0"
+      sources."whatwg-url-7.1.0"
       sources."which-2.0.2"
       sources."which-boxed-primitive-1.0.2"
       sources."which-module-2.0.0"
       sources."wildcard-2.0.0"
       sources."word-wrap-1.2.3"
-      sources."workbox-background-sync-5.1.4"
-      sources."workbox-broadcast-update-5.1.4"
-      (sources."workbox-build-5.1.4" // {
+      (sources."workbox-background-sync-6.2.4" // {
         dependencies = [
-          sources."source-map-0.7.3"
+          sources."workbox-core-6.2.4"
+        ];
+      })
+      (sources."workbox-broadcast-update-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+        ];
+      })
+      (sources."workbox-build-6.2.4" // {
+        dependencies = [
+          sources."ajv-8.6.2"
+          sources."json-schema-traverse-1.0.0"
+          sources."source-map-0.8.0-beta.0"
+          sources."workbox-core-6.2.4"
+          sources."workbox-precaching-6.2.4"
+        ];
+      })
+      (sources."workbox-cacheable-response-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
         ];
       })
-      sources."workbox-cacheable-response-5.1.4"
       sources."workbox-core-5.1.4"
-      sources."workbox-expiration-5.1.4"
-      sources."workbox-google-analytics-5.1.4"
-      sources."workbox-navigation-preload-5.1.4"
+      (sources."workbox-expiration-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+        ];
+      })
+      (sources."workbox-google-analytics-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+        ];
+      })
+      (sources."workbox-navigation-preload-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+        ];
+      })
       sources."workbox-precaching-5.1.4"
-      sources."workbox-range-requests-5.1.4"
-      sources."workbox-routing-5.1.4"
-      sources."workbox-strategies-5.1.4"
-      sources."workbox-streams-5.1.4"
-      sources."workbox-sw-5.1.4"
-      sources."workbox-webpack-plugin-5.1.4"
-      sources."workbox-window-5.1.4"
-      sources."worker-plugin-5.0.0"
+      (sources."workbox-range-requests-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+        ];
+      })
+      (sources."workbox-recipes-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+          sources."workbox-precaching-6.2.4"
+        ];
+      })
+      (sources."workbox-routing-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+        ];
+      })
+      (sources."workbox-strategies-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+        ];
+      })
+      (sources."workbox-streams-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+        ];
+      })
+      sources."workbox-sw-6.2.4"
+      sources."workbox-webpack-plugin-6.2.4"
+      (sources."workbox-window-6.2.4" // {
+        dependencies = [
+          sources."workbox-core-6.2.4"
+        ];
+      })
+      sources."worker-plugin-5.0.1"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -13602,7 +13749,7 @@ let
       })
       sources."write-file-atomic-3.0.3"
       sources."write-file-stdout-0.0.2"
-      sources."ws-6.2.1"
+      sources."ws-6.2.2"
       sources."x-is-string-0.1.0"
       sources."xmldom-0.3.0"
       sources."xtend-4.0.2"
@@ -13612,7 +13759,6 @@ let
       (sources."yargs-13.3.2" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
-          sources."camelcase-5.3.1"
           sources."emoji-regex-7.0.3"
           sources."find-up-3.0.0"
           sources."is-fullwidth-code-point-2.0.0"
@@ -13624,7 +13770,7 @@ let
           sources."yargs-parser-13.1.2"
         ];
       })
-      sources."yargs-parser-20.2.7"
+      sources."yargs-parser-20.2.9"
       sources."yocto-queue-0.1.0"
       sources."zwitch-1.0.5"
     ];
diff --git a/pkgs/servers/jellyfin/web.nix b/pkgs/servers/jellyfin/web.nix
index fe7f577bf47c..2b3ce5a1f3df 100644
--- a/pkgs/servers/jellyfin/web.nix
+++ b/pkgs/servers/jellyfin/web.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "jellyfin-web";
-  version = "10.7.6";
+  version = "10.7.7";
   # TODO: on the next major release remove src.postFetch
   # and use the lock file in web-update.sh:
   # https://github.com/jellyfin/jellyfin-web/commit/6efef9680d55a93f4333ef8bfb65a8a650c99a49
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "jellyfin";
     repo = "jellyfin-web";
     rev = "v${version}";
-    sha256 = "T5a17mAvx7fLla2jQp1dNswijeUbBQB1RA1ZkVpLWqM=";
+    sha256 = "RDp51IWQ0Woz26cVgWsiLc8DyZztI2ysPbhmOR3jguE=";
     postFetch = ''
       mkdir -p $out
       cd $out
diff --git a/pkgs/servers/klipper/default.nix b/pkgs/servers/klipper/default.nix
index aa933b0fb660..f8d49770370f 100644
--- a/pkgs/servers/klipper/default.nix
+++ b/pkgs/servers/klipper/default.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "klipper";
-  version = "unstable-2021-07-15";
+  version = "unstable-2021-09-03";
 
   src = fetchFromGitHub {
     owner = "KevinOConnor";
     repo = "klipper";
-    rev = "dafb74e3aba707db364ed773bb2135084ac0fffa";
-    sha256 = "sha256-wF5I8Mo89ohhysBRDMtkCDbCW9SKWrdYdbifmxCPJBc=";
+    rev = "c84956befe88daeeb9512acaa9fa82395665df16";
+    sha256 = "sha256-dHFIeA2RCoqC0ROYUUbSoLZ4frRWBJaNJWohpK8xN7I=";
   };
 
   # We have no LTO on i686 since commit 22284b0
diff --git a/pkgs/servers/matrix-synapse/plugins/ldap3.nix b/pkgs/servers/matrix-synapse/plugins/ldap3.nix
index 9f1aec20033b..394c0f5e58bb 100644
--- a/pkgs/servers/matrix-synapse/plugins/ldap3.nix
+++ b/pkgs/servers/matrix-synapse/plugins/ldap3.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "matrix-synapse-ldap3";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01bms89sl16nyh9f141idsz4mnhxvjrc3gj721wxh1fhikps0djx";
+    sha256 = "9fdf8df7c8ec756642aa0fea53b31c0b2f1924f70d7f049a2090b523125456fe";
   };
 
   propagatedBuildInputs = [ service-identity ldap3 twisted ];
diff --git a/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix b/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
index fbd5c68baa16..b4247561da59 100644
--- a/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
+++ b/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "matrix-synapse-mjolnir-antispam";
-  version = "0.1.17";
+  version = "0.1.19";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "mjolnir";
     rev = "v${version}";
-    sha256 = "sha256-uBI5AllXWgl3eL60WZ/j11Tt7QpY7CKcmFQOU74/Qjs=";
+    sha256 = "09g2h5qj725745ljxff4vh05zy7lzcmvdz0bkxxhpjhs48jdlq3k";
   };
 
   sourceRoot = "./source/synapse_antispam";
diff --git a/pkgs/servers/moonraker/default.nix b/pkgs/servers/moonraker/default.nix
index 2ca35beeff11..06a68557d75e 100644
--- a/pkgs/servers/moonraker/default.nix
+++ b/pkgs/servers/moonraker/default.nix
@@ -14,13 +14,13 @@ let
   ]);
 in stdenvNoCC.mkDerivation rec {
   pname = "moonraker";
-  version = "unstable-2021-07-18";
+  version = "unstable-2021-09-04";
 
   src = fetchFromGitHub {
     owner = "Arksine";
     repo = "moonraker";
-    rev = "42f61ceafa90fcfea8bffbe968e26a6fd8b61af6";
-    sha256 = "1w6l9pgs4n4nnk3h40y346bf6j3v4j4h1qnhj5dwlbwdxiqpd9gs";
+    rev = "db3f69e0dddcc8ac07e895a9a65906a8e08707e7";
+    sha256 = "uam3Vp/NA8HWxqqy6l8UkeaR5OSqHMwb5uXUL4E0jBQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/nextcloud/news-updater.nix b/pkgs/servers/nextcloud/news-updater.nix
index 88a30e358ab9..bb66a9463a05 100644
--- a/pkgs/servers/nextcloud/news-updater.nix
+++ b/pkgs/servers/nextcloud/news-updater.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "nextcloud-news-updater";
-  version = "10.0.1";
+  version = "11.0.0";
 
   src = fetchurl {
     url = "mirror://pypi/n/nextcloud_news_updater/nextcloud_news_updater-${version}.tar.gz";
-    sha256 = "14jj3w417wfsm1ki34d980b0s6vfn8i29g4c66qb2fizdq1d0z6q";
+    sha256 = "bc2055c16f0dbf610b7e17650508a18fa5a1de652ecdf69c5d4073c97376e9cf";
   };
 
   doCheck = false;
diff --git a/pkgs/servers/sql/postgresql/ext/age.nix b/pkgs/servers/sql/postgresql/ext/age.nix
index 1017611aeaa9..38d23e51682d 100644
--- a/pkgs/servers/sql/postgresql/ext/age.nix
+++ b/pkgs/servers/sql/postgresql/ext/age.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
     description = "A graph database extension for PostgreSQL";
     homepage = "https://github.com/bitnine-oss/AgensGraph-Extension";
     changelog = "https://github.com/bitnine-oss/AgensGraph-Extension/releases/tag/v${version}";
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
     platforms = postgresql.meta.platforms;
     license = licenses.asl20;
     broken = versionOlder postgresql.version "11.0";
diff --git a/pkgs/servers/unpackerr/default.nix b/pkgs/servers/unpackerr/default.nix
index 0d1505a91ca2..3eaf95a45182 100644
--- a/pkgs/servers/unpackerr/default.nix
+++ b/pkgs/servers/unpackerr/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "unpackerr";
-  version = "0.9.7";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = "davidnewhall";
     repo = "unpackerr";
     rev = "v${version}";
-    sha256 = "sha256-OJDFPSXbJffiKW1SmMptPxj69YU7cuOU1LgIiInurCM=";
+    sha256 = "08xcxs4qh25qsjaf6wivhpszl61zdp59hlkd57igf9fv4lywb41q";
   };
 
-  vendorSha256 = "sha256-n8gRefr+MyiSaATG1mZrS3lx4oDEfbQ1LQxQ6vp5l0Y=";
+  vendorSha256 = "0ilpg7xfll0c5lsv8zf4h3i72yabddkddih4d292hczyz9wi3j4z";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Cocoa WebKit ];
 
diff --git a/pkgs/servers/web-apps/wiki-js/default.nix b/pkgs/servers/web-apps/wiki-js/default.nix
index fcab309118b9..c16f3a88b378 100644
--- a/pkgs/servers/web-apps/wiki-js/default.nix
+++ b/pkgs/servers/web-apps/wiki-js/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wiki-js";
-  version = "2.5.201";
+  version = "2.5.214";
 
   src = fetchurl {
     url = "https://github.com/Requarks/wiki/releases/download/${version}/${pname}.tar.gz";
-    sha256 = "sha256-k2G+jUne/lq0dRJsIQpWlRFg1Nq92bM28YkawKOKlsI=";
+    sha256 = "sha256-EXysHhEJ41LMLRueEoFr+SE9SdJEXMZLhJQSvZgToTg=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/servers/xmpp/prosody/default.nix b/pkgs/servers/xmpp/prosody/default.nix
index 43e77d918e1c..773632328a05 100644
--- a/pkgs/servers/xmpp/prosody/default.nix
+++ b/pkgs/servers/xmpp/prosody/default.nix
@@ -1,19 +1,24 @@
 { stdenv, fetchurl, lib, libidn, openssl, makeWrapper, fetchhg
-, lua5, luasocket, luasec, luaexpat, luafilesystem, luabitop
+, lua
 , nixosTests
-, withLibevent ? true, luaevent ? null
-, withDBI ? true, luadbi ? null
+, withLibevent ? true
+, withDBI ? true
 # use withExtraLibs to add additional dependencies of community modules
 , withExtraLibs ? [ ]
 , withOnlyInstalledCommunityModules ? [ ]
 , withCommunityModules ? [ ] }:
 
-assert withLibevent -> luaevent != null;
-assert withDBI -> luadbi != null;
-
 with lib;
 
 
+let
+  luaEnv = lua.withPackages(p: with p; [
+      luasocket luasec luaexpat luafilesystem luabitop luadbi-sqlite3
+    ]
+    ++ lib.optional withLibevent p.luaevent
+    ++ lib.optional withDBI p.luadbi
+  );
+in
 stdenv.mkDerivation rec {
   version = "0.11.10"; # also update communityModules
   pname = "prosody";
@@ -41,28 +46,24 @@ stdenv.mkDerivation rec {
     sha256 = "02gj1b8sdmdvymsdmjpq47zrl7sg578jcdxbbq18s44f3njmc9q1";
   };
 
+  nativeBuildInputs = [ makeWrapper ];
   buildInputs = [
-    lua5 makeWrapper libidn openssl
-  ]
-  # Lua libraries
-  ++ [
-    luasocket luasec luaexpat luafilesystem luabitop
+    luaEnv libidn openssl
   ]
-  ++ optional withLibevent luaevent
-  ++ optional withDBI luadbi
   ++ withExtraLibs;
 
 
   configureFlags = [
     "--ostype=linux"
-    "--with-lua-include=${lua5}/include"
-    "--with-lua=${lua5}"
+    "--with-lua-include=${luaEnv}/include"
+    "--with-lua=${luaEnv}"
   ];
 
   postBuild = ''
     make -C tools/migration
   '';
 
+  # the wrapping should go away once lua hook is fixed
   postInstall = ''
       ${concatMapStringsSep "\n" (module: ''
         cp -r $communityModules/mod_${module} $out/lib/prosody/modules/
diff --git a/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch b/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch
new file mode 100644
index 000000000000..54b6ce26138a
--- /dev/null
+++ b/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch
@@ -0,0 +1,11 @@
+diff --git a/modules/Src/aloxaf/fzftab.c b/modules/Src/aloxaf/fzftab.c
+index 60b6330..91975d8 100644
+--- a/modules/Src/aloxaf/fzftab.c
++++ b/modules/Src/aloxaf/fzftab.c
+@@ -1,6 +1,5 @@
+ #include "fzftab.mdh"
+ #include "fzftab.pro"
+-#include <malloc.h>
+ #include <stdarg.h>
+ #include <stdlib.h>
+ #include <sys/stat.h>
diff --git a/pkgs/shells/zsh/zsh-fzf-tab/default.nix b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
index ccf60e6d76af..ad1b7d3d740c 100644
--- a/pkgs/shells/zsh/zsh-fzf-tab/default.nix
+++ b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
@@ -15,6 +15,8 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses ];
 
+  patches = lib.optionals stdenv.isDarwin [ ./darwin.patch ];
+
   postConfigure = ''
     pushd modules
     ./configure --disable-gdbm --without-tcsetpgrp
@@ -40,6 +42,6 @@ in stdenv.mkDerivation rec {
     description = "Replace zsh's default completion selection menu with fzf!";
     license = licenses.mit;
     maintainers = with maintainers; [ vonfry ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/backup/android-backup-extractor/default.nix b/pkgs/tools/backup/android-backup-extractor/default.nix
new file mode 100644
index 000000000000..8572efe6107f
--- /dev/null
+++ b/pkgs/tools/backup/android-backup-extractor/default.nix
@@ -0,0 +1,38 @@
+{ stdenv
+, lib
+, fetchurl
+, makeWrapper
+, jre
+}:
+
+stdenv.mkDerivation rec {
+  pname = "android-backup-extractor";
+  version = "20210909062443-4c55371";
+
+  src = fetchurl {
+    url = "https://github.com/nelenkov/android-backup-extractor/releases/download/${version}/abe.jar";
+    sha256 = "0ms241kb4h9y9apr637sb4kw5mml40c1ac0q4jcxhnwr3dr05w1q";
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ jre ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D $src $out/lib/android-backup-extractor/abe.jar
+    makeWrapper ${jre}/bin/java $out/bin/abe --add-flags "-cp $out/lib/android-backup-extractor/abe.jar org.nick.abe.Main"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Utility to extract and repack Android backups created with adb backup";
+    homepage = "https://github.com/nelenkov/android-backup-extractor";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/tools/backup/discordchatexporter-cli/default.nix b/pkgs/tools/backup/discordchatexporter-cli/default.nix
index 9cf489c4db5d..fe7b041b1533 100644
--- a/pkgs/tools/backup/discordchatexporter-cli/default.nix
+++ b/pkgs/tools/backup/discordchatexporter-cli/default.nix
@@ -7,13 +7,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "discordchatexporter-cli";
-  version = "2.30";
+  version = "2.30.1";
 
   src = fetchFromGitHub {
     owner = "tyrrrz";
     repo = "discordchatexporter";
     rev = version;
-    sha256 = "uTOeRsEab4vaAwtfysUTM3xFP5UMxpUQnuuU8hv3nk8=";
+    sha256 = "JSYIhd+DNVOKseHtWNNChECR5hKr+ntu1Yyqtnlg8rM=";
   };
 
   nativeBuildInputs = [ dotnet-sdk_5 dotnetPackages.Nuget cacert makeWrapper autoPatchelfHook ];
diff --git a/pkgs/tools/backup/zfs-autobackup/default.nix b/pkgs/tools/backup/zfs-autobackup/default.nix
new file mode 100644
index 000000000000..f6a684084661
--- /dev/null
+++ b/pkgs/tools/backup/zfs-autobackup/default.nix
@@ -0,0 +1,33 @@
+{ lib, python3Packages }:
+
+let
+  pythonPackages = python3Packages;
+
+in
+pythonPackages.buildPythonApplication rec {
+  pname = "zfs_autobackup";
+  version = "3.1";
+
+  src = pythonPackages.fetchPypi {
+    inherit pname version;
+    sha256 = "42c22001717b3d7cfdae6297fedc11b2dd1eb2a4bd25b6bb1c9232dd3b70ad67";
+  };
+
+  # argparse is part of the standardlib
+  prePatch = ''
+    substituteInPlace setup.py --replace "argparse" ""
+  '';
+
+  propagatedBuildInputs = with pythonPackages; [ colorama ];
+
+  # tests need zfs filesystem
+  doCheck = false;
+  pythonImportsCheck = [ "colorama" "argparse" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/psy0rz/zfs_autobackup";
+    description = "ZFS backup, replicationand snapshot tool";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ mschneider ];
+  };
+}
diff --git a/pkgs/tools/cd-dvd/ventoy-bin/default.nix b/pkgs/tools/cd-dvd/ventoy-bin/default.nix
new file mode 100644
index 000000000000..334b3abdfc95
--- /dev/null
+++ b/pkgs/tools/cd-dvd/ventoy-bin/default.nix
@@ -0,0 +1,95 @@
+{ lib, stdenv, fetchurl, fetchpatch
+, autoPatchelfHook, makeWrapper
+, hexdump, exfat, dosfstools, e2fsprogs, xz, util-linux, bash, parted
+}:
+
+let arch = {
+  x86_64-linux = "x86_64";
+  i686-linux = "i386";
+  aarch64-linux = "aarch64";
+  mipsel-linux = "mips64el";
+}.${stdenv.hostPlatform.system} or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
+in stdenv.mkDerivation rec {
+  pname = "ventoy-bin";
+  version = "1.0.51";
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  buildInputs = [ hexdump exfat dosfstools e2fsprogs xz util-linux bash parted ];
+
+  src = fetchurl {
+    url = "https://github.com/ventoy/Ventoy/releases/download/v${version}/ventoy-${version}-linux.tar.gz";
+    sha256 = "81ae02a06b132b5965dd09c9b64e000a6dafa1d57e03d8564feefda14ef1ee02";
+  };
+  patches = [
+    (fetchpatch {
+      name = "sanitize.patch";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/sanitize.patch?h=ventoy-bin&id=ce4c26c67a1de4b761f9448bf92e94ffae1c8148";
+      sha256 = "c00f9f9cd5b4f81c566267b7b2480fa94d28dda43a71b1e47d6fa86f764e7038";
+    })
+    ./fix-for-read-only-file-system.patch
+  ];
+  patchFlags = [ "-p0" ];
+  postPatch = ''
+    # Fix permissions.
+    find -type f -name \*.sh -exec chmod a+x '{}' \;
+
+    # Fix path to log.
+    sed -i 's:[lL]og\.txt:/var/log/ventoy\.log:g' WebUI/static/js/languages.js
+  '';
+  installPhase = ''
+    # Setup variables.
+    local VENTOY_PATH="$out"/share/ventoy
+    local ARCH='${arch}'
+
+    # Prepare.
+    cd tool/"$ARCH"
+    rm ash* hexdump* mkexfatfs* mount.exfat-fuse* xzcat*
+    for archive in *.xz; do
+        xzcat "$archive" > "''${archive%.xz}"
+        rm "$archive"
+    done
+    chmod a+x *
+    cd -
+
+    # Cleanup.
+    case "$ARCH" in
+        x86_64) rm -r tool/{i386,aarch64,mips64el};;
+        i386) rm -r tool/{x86_64,aarch64,mips64el};;
+        aarch64) rm -r tool/{x86_64,i386,mips64el};;
+        mips64el) rm -r tool/{x86_64,i386,aarch64};;
+    esac
+    rm README
+
+    # Copy from "$src" to "$out".
+    mkdir -p "$out"/bin "$VENTOY_PATH"
+    cp -r . "$VENTOY_PATH"
+
+    # Fill bin dir.
+    for f in Ventoy2Disk.sh_ventoy VentoyWeb.sh_ventoy-web \
+             CreatePersistentImg.sh_ventoy-persistent \
+             ExtendPersistentImg.sh_ventoy-extend-persistent; do
+        makeWrapper "$VENTOY_PATH/''${f%_*}" "$out/bin/''${f#*_}" \
+                    --prefix PATH : "${lib.makeBinPath buildInputs}" \
+                    --run "cd '$VENTOY_PATH' || exit 1"
+    done
+  '';
+
+  meta = with lib; {
+    description = "An open source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files";
+    longDescription = ''
+      An open source tool to create bootable USB drive for
+      ISO/WIM/IMG/VHD(x)/EFI files.  With ventoy, you don't need to format the
+      disk over and over, you just need to copy the ISO/WIM/IMG/VHD(x)/EFI
+      files to the USB drive and boot them directly.  You can copy many files
+      at a time and ventoy will give you a boot menu to select them
+      (screenshot).  x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI and
+      MIPS64EL UEFI are supported in the same way.  Most type of OS supported
+      (Windows/WinPE/Linux/Unix/VMware/Xen...).
+    '';
+    homepage = "https://www.ventoy.net";
+    changelog = "https://www.ventoy.net/doc_news.html";
+    license = licenses.gpl3Plus;
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "mipsel-linux" ];
+    maintainers = with maintainers; [ k4leg ];
+  };
+}
diff --git a/pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch b/pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch
new file mode 100644
index 000000000000..fa3eb7c38b34
--- /dev/null
+++ b/pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch
@@ -0,0 +1,118 @@
+diff -Naurp0 old/CreatePersistentImg.sh new/CreatePersistentImg.sh
+--- CreatePersistentImg.sh	2021-07-17 13:13:51.000000000 +0300
++++ CreatePersistentImg.sh	2021-07-20 17:37:53.605911754 +0300
+@@ -94,7 +94,3 @@ if [ -n "$config" ]; then
+-    if [ -d ./persist_tmp_mnt ]; then
+-        rm -rf ./persist_tmp_mnt
+-    fi
+-    
+-    mkdir ./persist_tmp_mnt
+-    if mount $freeloop ./persist_tmp_mnt; then
+-        echo '/ union' > ./persist_tmp_mnt/$config
++    path_to_persist_mnt="$(mktemp -d)"
++    if mount $freeloop "$path_to_persist_mnt"; then
++        echo '/ union' > "$path_to_persist_mnt"/$config
+@@ -102 +98 @@ if [ -n "$config" ]; then
+-        umount ./persist_tmp_mnt
++        umount "$path_to_persist_mnt"
+@@ -104 +100 @@ if [ -n "$config" ]; then
+-    rm -rf ./persist_tmp_mnt
++    rm -rf "$path_to_persist_mnt"
+diff -Naurp0 old/tool/VentoyWorker.sh new/tool/VentoyWorker.sh
+--- tool/VentoyWorker.sh	2021-07-17 13:13:51.000000000 +0300
++++ tool/VentoyWorker.sh	2021-07-20 17:27:10.885452119 +0300
+@@ -153,12 +152,0 @@ fi
+-#check tmp_mnt directory
+-if [ -d ./tmp_mnt ]; then
+-    vtdebug "There is a tmp_mnt directory, now delete it."
+-    umount ./tmp_mnt >/dev/null 2>&1
+-    rm -rf ./tmp_mnt
+-    if [ -d ./tmp_mnt ]; then
+-        vterr "tmp_mnt directory exits, please delete it first."
+-        exit 1
+-    fi
+-fi
+-
+-
+@@ -322 +310 @@ if [ "$MODE" = "install" ]; then
+-        mkdir ./tmp_mnt
++        path_to_mnt="$(mktemp -d)"
+@@ -326 +314 @@ if [ "$MODE" = "install" ]; then
+-            if mount ${PART2} ./tmp_mnt > /dev/null 2>&1; then
++            if mount ${PART2} "$path_to_mnt" > /dev/null 2>&1; then
+@@ -335,9 +323,9 @@ if [ "$MODE" = "install" ]; then
+-        rm -f ./tmp_mnt/EFI/BOOT/BOOTX64.EFI
+-        rm -f ./tmp_mnt/EFI/BOOT/grubx64.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/BOOTIA32.EFI
+-        rm -f ./tmp_mnt/EFI/BOOT/grubia32.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/MokManager.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/mmia32.efi
+-        rm -f ./tmp_mnt/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
+-        mv ./tmp_mnt/EFI/BOOT/grubx64_real.efi  ./tmp_mnt/EFI/BOOT/BOOTX64.EFI
+-        mv ./tmp_mnt/EFI/BOOT/grubia32_real.efi  ./tmp_mnt/EFI/BOOT/BOOTIA32.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/BOOTX64.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/grubx64.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/BOOTIA32.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/grubia32.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/MokManager.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/mmia32.efi
++        rm -f "$path_to_mnt"/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
++        mv "$path_to_mnt"/EFI/BOOT/grubx64_real.efi  "$path_to_mnt"/EFI/BOOT/BOOTX64.EFI
++        mv "$path_to_mnt"/EFI/BOOT/grubia32_real.efi  "$path_to_mnt"/EFI/BOOT/BOOTIA32.EFI
+@@ -348 +336 @@ if [ "$MODE" = "install" ]; then
+-            if umount ./tmp_mnt; then
++            if umount "$path_to_mnt"; then
+@@ -350 +338 @@ if [ "$MODE" = "install" ]; then
+-                rm -rf ./tmp_mnt
++                rm -rf "$path_to_mnt"
+@@ -407,2 +395,2 @@ else
+-    rm -f ./diskuuid.bin
+-    dd status=none conv=fsync if=${DISK} skip=384 bs=1 count=16 of=./diskuuid.bin
++    path_to_diskuuid="$(mktemp)"
++    dd status=none conv=fsync if=${DISK} skip=384 bs=1 count=16 of="$path_to_diskuuid"
+@@ -411,2 +399,2 @@ else
+-    dd status=none conv=fsync if=./diskuuid.bin of=$DISK bs=1 count=16 seek=384
+-    rm -f ./diskuuid.bin
++    dd status=none conv=fsync if="$path_to_diskuuid" of=$DISK bs=1 count=16 seek=384
++    rm -f "$path_to_diskuuid"
+@@ -415,2 +403,2 @@ else
+-    rm -f ./rsvdata.bin
+-    dd status=none conv=fsync if=${DISK} skip=2040 bs=512 count=8 of=./rsvdata.bin
++    path_to_rsvdata="$(mktemp)"
++    dd status=none conv=fsync if=${DISK} skip=2040 bs=512 count=8 of="$path_to_rsvdata"
+@@ -438,2 +426,2 @@ else
+-    dd status=none conv=fsync if=./rsvdata.bin seek=2040 bs=512 count=8 of=${DISK}
+-    rm -f ./rsvdata.bin
++    dd status=none conv=fsync if="$path_to_rsvdata" seek=2040 bs=512 count=8 of=${DISK}
++    rm -f "$path_to_rsvdata"
+@@ -448 +436 @@ else
+-        mkdir ./tmp_mnt
++        path_to_mnt="$(mktemp -d)"
+@@ -454 +442 @@ else
+-            if mount ${PART2} ./tmp_mnt > /dev/null 2>&1; then
++            if mount ${PART2} "$path_to_mnt" > /dev/null 2>&1; then
+@@ -463,9 +451,9 @@ else
+-        rm -f ./tmp_mnt/EFI/BOOT/BOOTX64.EFI
+-        rm -f ./tmp_mnt/EFI/BOOT/grubx64.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/BOOTIA32.EFI
+-        rm -f ./tmp_mnt/EFI/BOOT/grubia32.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/MokManager.efi
+-        rm -f ./tmp_mnt/EFI/BOOT/mmia32.efi
+-        rm -f ./tmp_mnt/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
+-        mv ./tmp_mnt/EFI/BOOT/grubx64_real.efi  ./tmp_mnt/EFI/BOOT/BOOTX64.EFI
+-        mv ./tmp_mnt/EFI/BOOT/grubia32_real.efi  ./tmp_mnt/EFI/BOOT/BOOTIA32.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/BOOTX64.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/grubx64.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/BOOTIA32.EFI
++        rm -f "$path_to_mnt"/EFI/BOOT/grubia32.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/MokManager.efi
++        rm -f "$path_to_mnt"/EFI/BOOT/mmia32.efi
++        rm -f "$path_to_mnt"/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
++        mv "$path_to_mnt"/EFI/BOOT/grubx64_real.efi  "$path_to_mnt"/EFI/BOOT/BOOTX64.EFI
++        mv "$path_to_mnt"/EFI/BOOT/grubia32_real.efi  "$path_to_mnt"/EFI/BOOT/BOOTIA32.EFI
+@@ -476 +464 @@ else
+-            if umount ./tmp_mnt > /dev/null 2>&1; then
++            if umount "$path_to_mnt" > /dev/null 2>&1; then
+@@ -478 +466 @@ else
+-                rm -rf ./tmp_mnt
++                rm -rf "$path_to_mnt"
diff --git a/pkgs/tools/graphics/gnuplot/default.nix b/pkgs/tools/graphics/gnuplot/default.nix
index b46fd88ab99d..741468dfd994 100644
--- a/pkgs/tools/graphics/gnuplot/default.nix
+++ b/pkgs/tools/graphics/gnuplot/default.nix
@@ -2,6 +2,7 @@
 , cairo, gd, libcerf, pango, readline, zlib
 , withTeXLive ? false, texlive
 , withLua ? false, lua
+, withCaca ? false, libcaca
 , libX11 ? null
 , libXt ? null
 , libXpm ? null
@@ -33,6 +34,7 @@ in
     [ cairo gd libcerf pango readline zlib ]
     ++ lib.optional withTeXLive (texlive.combine { inherit (texlive) scheme-small; })
     ++ lib.optional withLua lua
+    ++ lib.optional withCaca libcaca
     ++ lib.optionals withX [ libX11 libXpm libXt libXaw ]
     ++ lib.optionals withQt [ qtbase qtsvg ]
     ++ lib.optional withWxGTK wxGTK;
@@ -46,7 +48,7 @@ in
     (if withX then "--with-x" else "--without-x")
     (if withQt then "--with-qt=qt5" else "--without-qt")
     (if aquaterm then "--with-aquaterm" else "--without-aquaterm")
-  ];
+  ] ++ lib.optional withCaca "--with-caca";
 
   CXXFLAGS = lib.optionalString (stdenv.isDarwin && withQt) "-std=c++11";
 
diff --git a/pkgs/tools/graphics/textplots/default.nix b/pkgs/tools/graphics/textplots/default.nix
new file mode 100644
index 000000000000..a0c5e72ac23c
--- /dev/null
+++ b/pkgs/tools/graphics/textplots/default.nix
@@ -0,0 +1,20 @@
+{ fetchCrate, lib, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "textplots";
+  version = "0.8.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "07lxnvg8g24r1j6h07w91j5lp0azngmb76lagk55y28br0y70qr4";
+  };
+
+  cargoSha256 = "19xb1ann3bqx26nhjjvcwqdsvzg7lflg9fdrnlx05ndd2ip44flz";
+
+  meta = with lib; {
+    description = "Terminal plotting written in Rust";
+    homepage = "https://github.com/loony-bean/textplots-rs";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/tools/misc/bandwidth/default.nix b/pkgs/tools/misc/bandwidth/default.nix
index 677a9ddef514..710382fe8267 100644
--- a/pkgs/tools/misc/bandwidth/default.nix
+++ b/pkgs/tools/misc/bandwidth/default.nix
@@ -6,21 +6,35 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "bandwidth";
-  version = "1.9.4";
+  version = "1.10.1";
 
   src = fetchurl {
     url = "https://zsmith.co/archives/${pname}-${version}.tar.gz";
-    sha256 = "0x798xj3vhiwq2hal0vmf92sq4h7yalp3i6ylqwhnnpv99m2zws4";
+    sha256 = "sha256-trya+/cBNIittQAc5tcykZbImeISqIolO/Y8uOI0jGk=";
   };
 
   postPatch = ''
-    sed -i 's,^CC=gcc .*,,' OOC/Makefile Makefile*
     sed -i 's,ar ,$(AR) ,g' OOC/Makefile
+    # Remove unnecessary -m32 for 32-bit targets
+    sed -i 's,-m32,,g' OOC/Makefile
+    # Fix wrong comment character
+    sed -i 's,# 32,; 32,g' routines-x86-32bit.asm
+    # Fix missing symbol exports for macOS clang
+    echo global _VectorToVector128 >> routines-x86-64bit.asm
+    echo global _VectorToVector256 >> routines-x86-64bit.asm
   '';
 
   nativeBuildInputs = [ nasm ];
 
-  buildFlags = [ arch ];
+  buildFlags = [
+    "AR=${stdenv.cc.targetPrefix}ar"
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "ARM_AS=${stdenv.cc.targetPrefix}as"
+    "ARM_CC=$(CC)"
+    "UNAMEPROC=${stdenv.hostPlatform.parsed.cpu.name}"
+    "UNAMEMACHINE=${stdenv.hostPlatform.parsed.cpu.name}"
+    arch
+  ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -31,7 +45,7 @@ stdenv.mkDerivation rec {
     homepage = "https://zsmith.co/bandwidth.html";
     description = "Artificial benchmark for identifying weaknesses in the memory subsystem";
     license = licenses.gpl2Plus;
-    platforms = platforms.x86;
+    platforms = platforms.x86 ++ platforms.arm ++ platforms.aarch64;
     maintainers = with maintainers; [ r-burns ];
   };
 }
diff --git a/pkgs/tools/misc/clpeak/default.nix b/pkgs/tools/misc/clpeak/default.nix
index e8b2ab68f316..c87729d81ae0 100644
--- a/pkgs/tools/misc/clpeak/default.nix
+++ b/pkgs/tools/misc/clpeak/default.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     description = "A tool which profiles OpenCL devices to find their peak capacities";
     homepage = "https://github.com/krrishnarraj/clpeak/";
     license = licenses.unlicense;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/misc/fclones/default.nix b/pkgs/tools/misc/fclones/default.nix
new file mode 100644
index 000000000000..1072bbcc5da3
--- /dev/null
+++ b/pkgs/tools/misc/fclones/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, udev }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fclones";
+  version = "0.14.0";
+
+  src = fetchFromGitHub {
+    owner = "pkolaczk";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ni5amy903cy822yhw070bcrrixrw2m1vr66q1h32bc98pyv4w05";
+  };
+
+  cargoSha256 = "1gcb46k7bwdfsf6hyvmi6dna1nf6myzy63bhjfp0wy7c8g4m2mg8";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ udev ];
+
+  # tests in dedupe.rs fail due to
+  # "creation time is not available for the filesystem"
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Efficient Duplicate File Finder and Remover";
+    homepage = "https://github.com/pkolaczk/fclones";
+    license = licenses.mit;
+    maintainers = with maintainers; [ cyounkins ];
+  };
+}
diff --git a/pkgs/tools/misc/nncp/default.nix b/pkgs/tools/misc/nncp/default.nix
index c7598d09c6f4..1a20c412edba 100644
--- a/pkgs/tools/misc/nncp/default.nix
+++ b/pkgs/tools/misc/nncp/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nncp";
-  version = "7.6.0";
+  version = "7.7.0";
 
   src = fetchurl {
     url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
-    sha256 = "1im43d9z2pwylsgd6lyxxi03jvkfcfpdsmamg8cm8la1f202x180";
+    sha256 = "ppKi/JY8sKRb/Vt/SXom0L1zhjBPn6PNUm3Gn8o5Ke4=";
   };
 
   nativeBuildInputs = [ go redo-apenwarr ];
diff --git a/pkgs/tools/misc/quich/default.nix b/pkgs/tools/misc/quich/default.nix
index ea4fbc7eead4..1b54eb01112c 100644
--- a/pkgs/tools/misc/quich/default.nix
+++ b/pkgs/tools/misc/quich/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "quich";
-  version = "3.1.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "Usbac";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1n9c01q2v6g9wnmxp248yclhp8cxclnj0yyn1qrvjsn6srcpr22c";
+    sha256 = "sha256-4gsSjLZ7Z4ErNqe86Fy5IrzLMfvDyY18sE0yBnj9bvM=";
   };
 
   doCheck = true;
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index 157b0fe63764..37462910dcfe 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -4,23 +4,24 @@
 let
 
   inherit (python3Packages)
-    python pytest nose cryptography pyyaml requests mock python-dateutil setuptools;
+    python pytest nose cryptography pyyaml requests mock requests-mock
+    python-dateutil setuptools;
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
-  version = "4.2";
+  version = "4.3";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "1bsinf2r07g8c03mcw4gprl92wmysyaa81s8wyck0c6wdq3hcsnp";
+    sha256 = "04gmiqg6mq96fw4v1v6947i216fsf0vcnjp3ya8bbii5na91y1aa";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
-  buildInputs = [ python perl mock python-dateutil setuptools ] ++ pythonPaths;
+  buildInputs = [ python perl python-dateutil setuptools ] ++ pythonPaths;
   nativeBuildInputs = [ gitMinimal zip makeWrapper ];
-  checkInputs = [ nose pytest ];
+  checkInputs = [ nose pytest mock requests-mock ];
 
   postPatch = ''
     substituteInPlace scripts/run-tests.sh \
diff --git a/pkgs/tools/networking/flannel/plugin.nix b/pkgs/tools/networking/flannel/plugin.nix
new file mode 100644
index 000000000000..657be79b61bf
--- /dev/null
+++ b/pkgs/tools/networking/flannel/plugin.nix
@@ -0,0 +1,29 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule {
+  pname = "cni-plugin-flannel";
+  version = "unstable-2021-09-10";
+
+  src = fetchFromGitHub {
+    owner = "flannel-io";
+    repo = "cni-plugin";
+    rev = "8ce83510da59681da905dccb8364af9472cac341";
+    sha256 = "sha256-x6F8n+IJ1pZdbDwniWWmoGKgQm235ax3mbOcbYqWLCs=";
+  };
+
+  vendorSha256 = "sha256-TLAwE3pTnJYOi1AsOQfsG6t3xLKOah/7DvYjsqyltKs=";
+
+  postInstall = ''
+    mv $out/bin/cni-plugin $out/bin/flannel
+  '';
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "flannel CNI plugin";
+    homepage = "https://github.com/flannel-io/cni-plugin/";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbe ];
+  };
+}
diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix
index 181a9d9b85ef..437089cc3967 100644
--- a/pkgs/tools/networking/kapp/default.nix
+++ b/pkgs/tools/networking/kapp/default.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "kapp";
-  version = "0.37.0";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-kapp";
     rev = "v${version}";
-    sha256 = "sha256-SxS6KBiKc68PcRycdVDWWfXBKOJvo7GuG/0dUQGcHsg=";
+    sha256 = "sha256-sUP+C4ynqeODAKkjUWhL1yqlzXkXydd1ENgHQw4enA4=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/networking/linux-router/default.nix b/pkgs/tools/networking/linux-router/default.nix
new file mode 100644
index 000000000000..a378a729c7b5
--- /dev/null
+++ b/pkgs/tools/networking/linux-router/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper
+
+# --- Runtime Dependencies ---
+, bash, procps, iproute2, dnsmasq, iptables
+, coreutils, flock, gawk, getopt, gnugrep, gnused, which
+# `nmcli` is not required for create_ap.
+# Use NetworkManager by default because it is very likely already present
+, useNetworkManager ? true
+, networkmanager
+
+# --- WiFi Hotspot Dependencies ---
+, useWifiDependencies ? true
+, hostapd, iw
+# You only need this if 'iw' can not recognize your adapter.
+, useWirelessTools ? true
+, wirelesstools # for iwconfig
+# To fall back to haveged if entropy is low.
+# Defaulting to false because not having it does not break things.
+# If it is really needed, warnings will be logged to journal.
+, useHaveged ? false
+, haveged
+# You only need this if you wish to show WiFi QR codes in terminal
+, useQrencode ? true
+, qrencode
+}:
+
+stdenv.mkDerivation rec {
+  pname = "linux-router";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "garywill";
+    repo = "linux-router";
+    rev = "${version}";
+    sha256 = "193bnlwmjxsk0cri6xdylf218qayldn02pdnppvbd39ls361776z";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontBuild = true;
+
+  installPhase = with lib; let
+      binPath = makeBinPath ([ procps iproute2 getopt bash dnsmasq
+        iptables coreutils which flock gnugrep gnused gawk ]
+        ++ optional useNetworkManager                          networkmanager
+        ++ optional useWifiDependencies                        hostapd
+        ++ optional useWifiDependencies                        iw
+        ++ optional (useWifiDependencies && useWirelessTools)  wirelesstools
+        ++ optional (useWifiDependencies && useHaveged)        haveged
+        ++ optional (useWifiDependencies && useQrencode)       qrencode);
+    in
+    ''
+      mkdir -p $out/bin/ $out/.bin-wrapped
+      mv lnxrouter $out/.bin-wrapped/lnxrouter
+      makeWrapper $out/.bin-wrapped/lnxrouter $out/bin/lnxrouter --prefix PATH : ${binPath}
+    '';
+
+  meta = with lib; {
+    homepage = "https://github.com/garywill/linux-router";
+    description = "Set Linux as router / Wifi hotspot / proxy in one command";
+    longDescription = ''
+      Features:
+
+      - Create a NATed sub-network
+      - Provide Internet
+      - DHCP server and RA
+      - DNS server
+      - IPv6 (behind NATed LAN, like IPv4)
+      - Creating Wifi hotspot:
+        - Channel selecting
+        - Choose encryptions: WPA2/WPA, WPA2, WPA, No encryption
+        - Create AP on the same interface you are getting Internet (require same channel)
+      - Transparent proxy (redsocks)
+      - DNS proxy
+      - Compatible with NetworkManager (automatically set interface as unmanaged)
+    '';
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ x3ro ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/networkmanager/libnma/default.nix b/pkgs/tools/networking/networkmanager/libnma/default.nix
index 50fc66a8d68b..14a7e11aade1 100644
--- a/pkgs/tools/networking/networkmanager/libnma/default.nix
+++ b/pkgs/tools/networking/networkmanager/libnma/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnma";
-  version = "1.8.30";
+  version = "1.8.32";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1d5gzn7ss5vi0bhc8s4i5gsrck1ajslajam5jxfqazg094mffcys";
+    sha256 = "Cle5Oi+tQ6zHY/Mg3Tp6k8QpsOMRjfpUnWeCTN3E6QU=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/oha/default.nix b/pkgs/tools/networking/oha/default.nix
new file mode 100644
index 000000000000..185176440c1b
--- /dev/null
+++ b/pkgs/tools/networking/oha/default.nix
@@ -0,0 +1,30 @@
+{ fetchFromGitHub, lib, pkg-config, rustPlatform, stdenv, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "oha";
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "hatoo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vx8ki0wi9xil2iksvxzh8mhx4c5ikkhdcnc8mcwqn14cvjkggja";
+  };
+
+  cargoSha256 = "1nx2lvbjflsjma5q9ck6vq499hf75w91i4h8wlzr83wqk37i7rhc";
+
+  nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
+
+  buildInputs = lib.optional stdenv.isLinux openssl
+    ++ lib.optional stdenv.isDarwin Security;
+
+  # tests don't work inside the sandbox
+  doCheck = false;
+
+  meta = with lib; {
+    description = "HTTP load generator inspired by rakyll/hey with tui animation";
+    homepage = "https://github.com/hatoo/oha";
+    license = licenses.mit;
+    maintainers = with maintainers; [ figsoda ];
+  };
+}
diff --git a/pkgs/tools/networking/stuntman/default.nix b/pkgs/tools/networking/stuntman/default.nix
new file mode 100644
index 000000000000..1825a3971a74
--- /dev/null
+++ b/pkgs/tools/networking/stuntman/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchFromGitHub, openssl, boost }:
+
+stdenv.mkDerivation {
+  pname = "stuntman";
+  version = "1.2.16";
+
+  src = fetchFromGitHub {
+    owner = "jselbie";
+    repo = "stunserver";
+    rev = "cfadf9c3836d5ae63a682913de24ba085df924f3";
+    sha256 = "1gcx4zj44f0viddnn5klkmq0dgd29av5p06iyf9f1va4a3lk0cbg";
+  };
+
+  buildInputs = [
+    boost
+    openssl
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mv stunserver $out/bin/
+    mv stunclient $out/bin/
+
+    runHook postInstall
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+
+    ./stuntestcode
+
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "STUNTMAN - an open source STUN server and client";
+    homepage = "http://www.stunprotocol.org/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mattchrist ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index 33fbd5bc92f5..719e1d9b44f3 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -3,22 +3,22 @@
 }:
 
 let
-  version = "4.41.1";
+  version = "4.42.1";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "14zqvmf7xa4knmc57ck1ns0i0va0223qdp64qmm3q2w82dh9mnb8";
+    sha256 = "19xkbkzv9bgj68kmvrxsdqzx40vlyvzl8nn2n19hwwmkrazqgf04";
   };
 
-  vendorSha256 = "sha256-K8gFF9TbhVgNOySz7nhPFIdSNWNYKUyFD0LIk6acnkc=";
+  vendorSha256 = "sha256-N1DYV0zSzCepkRMbcQUHqjITvmGahYKNn1uhL+csMSc=";
 
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202107290023";
-      geoipSha256 = "14xgy0bsamj2k4knfs1r453yp27wq8qmjqifq63zbp4lb9v8xnjy";
+      geoipRev = "202109102251";
+      geoipSha256 = "0qh8yf0m6sna3z5i2plbgw61q08qcfcx0l1z5bmwxijagf1yb7fa";
     in fetchurl {
       url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat";
       sha256 = geoipSha256;
@@ -26,8 +26,8 @@ let
 
     # MIT licensed
     "geosite.dat" = let
-      geositeRev = "20210727125446";
-      geositeSha256 = "14z1419dkbippm12z6gvwh3q1wd6x1p4sk6zp2i4qa408i1gc81c";
+      geositeRev = "20210910080130";
+      geositeSha256 = "0d6bzrs5mhca59j1w73kqw10jqkwic9ywm3jvszpd077qwh64dwn";
     in fetchurl {
       url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
       sha256 = geositeSha256;
diff --git a/pkgs/tools/networking/wicd/default.nix b/pkgs/tools/networking/wicd/default.nix
deleted file mode 100644
index e4eb0a2cdc8c..000000000000
--- a/pkgs/tools/networking/wicd/default.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-{ lib, stdenv, fetchurl, python2Packages
-, wpa_supplicant, dhcp, dhcpcd, wirelesstools
-, nettools, openresolv, iproute2, iputils }:
-
-let
-  inherit (python2Packages) python pygobject2 dbus-python pyGtkGlade pycairo;
-in stdenv.mkDerivation rec {
-  pname = "wicd";
-  version = "1.7.2.4";
-
-  src = fetchurl {
-    url = "https://launchpad.net/wicd/1.7/${version}/+download/${pname}-${version}.tar.gz";
-    sha256 = "15ywgh60xzmp5z8l1kzics7yi95isrjg1paz42dvp7dlpdfzpzfw";
-  };
-
-  buildInputs = with python2Packages; [
-    python Babel urwid notify
-  ];
-
-  patches = [
-    ./no-var-install.patch
-    ./pygtk.patch
-    ./no-optimization.patch
-    ./dhclient.patch
-    ./fix-app-icon.patch
-    ./fix-gtk-issues.patch
-    ./urwid-api-update.patch
-    ./fix-curses.patch
-    ];
-
-  # Should I be using pygtk's propagated build inputs?
-  # !!! Should use makeWrapper.
-  postPatch = ''
-    # We don't have "python2".
-    substituteInPlace wicd/wicd-daemon.py --replace 'misc.find_path("python2")' "'${python.interpreter}'"
-
-    substituteInPlace in/scripts=wicd.in --subst-var-by TEMPLATE-DEFAULT $out/share/other/dhclient.conf.template.default
-
-    sed -i "2iexport PATH=${lib.makeBinPath [ python wpa_supplicant dhcpcd dhcp wirelesstools nettools nettools iputils openresolv iproute2 ]}\$\{PATH:+:\}\$PATH" in/scripts=wicd.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pygobject2}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-client.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pygobject2})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-client.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-gtk.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pygobject2})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python}):$(toPythonPath ${python2Packages.notify})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-gtk.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-cli.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-cli.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-curses.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python}):$(toPythonPath ${python2Packages.urwid})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-curses.in
-    rm po/ast.po
-  '';
-
-  configurePhase = ''
-    python setup.py configure \
-    --lib=$out/lib/ \
-    --share=$out/share/ \
-    --etc=/var/lib/wicd/ \
-    --scripts=$out/etc/scripts/ \
-    --pixmaps=$out/share/pixmaps/ \
-    --images=$out/share/pixmaps/wicd/ \
-    --encryption=$out/etc/encryption/templates/ \
-    --bin=$out/bin/ \
-    --sbin=$out/sbin/ \
-    --backends=$out/share/backends/ \
-    --daemon=$out/share/daemon/ \
-    --curses=$out/share/curses/ \
-    --gtk=$out/share/gtk/ \
-    --cli=$out/share/cli/ \
-    --networks=/var/lib/wicd/configurations/ \
-    --resume=$out/etc/acpi/resume.d/ \
-    --suspend=$out/etc/acpi/suspend.d/ \
-    --pmutils=$out/lib/pm-utils/sleep.d/ \
-    --dbus=$out/etc/dbus-1/system.d/ \
-    --dbus-service=$out/etc/dbus-1/system-services/ \
-    --systemd=$out/lib/systemd/ \
-    --logrotate=$out/etc/logrotate.d/ \
-    --desktop=$out/share/applications/ \
-    --icons=$out/share/icons/hicolor/ \
-    --translations=$out/share/locale/ \
-    --autostart=$out/etc/xdg/autostart/ \
-    --varlib=$out/var/lib/ \
-    --docdir=$out/share/doc/ \
-    --mandir=$out/share/man/ \
-    --kdedir=$out/share/autostart/ \
-    --python=${python}/bin/python \
-    --distro=nix \
-    --wicdgroup=users \
-    --no-install-init \
-    --no-install-kde \
-    --no-install-acpi \
-    --no-install-pmutils \
-  '';
-
-  installPhase = ''
-    python setup.py install --prefix=$out --install-lib=$out/${python.sitePackages}
-    mkdir -p $out/share/other
-    cp other/dhclient.conf.template.default $out/share/other/dhclient.conf.template.default
-
-    # Add a template for "WPA2 Enterprise" encryption as used, e.g., by the
-    # Eduroam network.  Taken and adapted from
-    # <http://wicd.net/punbb/viewtopic.php?id=87>.
-    cp -v "${./wpa2-ttls}" "$out/etc/encryption/templates/wpa2-ttls"
-    echo "wpa2-ttls" >> "$out/etc/encryption/templates/active"
-  '';
-
-  meta = with lib; {
-    homepage = "http://wicd.net/";
-    description = "A wiredless and wired network manager";
-    longDescription=''
-      A complete network connection manager
-      Wicd supports wired and wireless networks, and capable of
-      creating and tracking profiles for both.  It has a
-      template-based wireless encryption system, which allows the user
-      to easily add encryption methods used.  It ships with some common
-      encryption types, such as WPA and WEP. Wicd will automatically
-      connect at startup to any preferred network within range.
-    '';
-    maintainers = [ maintainers.roconnor ];
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/networking/wicd/dhclient.patch b/pkgs/tools/networking/wicd/dhclient.patch
deleted file mode 100644
index fbda1caacb7a..000000000000
--- a/pkgs/tools/networking/wicd/dhclient.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-diff -ruN wicd-1.7.2.4.orig/wicd/wicd-daemon.py wicd-1.7.2.4/wicd/wicd-daemon.py
---- wicd-1.7.2.4.orig/wicd/wicd-daemon.py	2013-06-22 18:55:02.641242947 +0000
-+++ wicd-1.7.2.4/wicd/wicd-daemon.py	2013-06-22 18:58:33.990244153 +0000
-@@ -69,6 +69,7 @@
- wireless_conf = os.path.join(wpath.etc, "wireless-settings.conf")
- wired_conf = os.path.join(wpath.etc, "wired-settings.conf")
- dhclient_conf = os.path.join(wpath.etc, "dhclient.conf.template")
-+dhclient_conf_default = os.path.join(wpath.share, "other", "dhclient.conf.template.default")
- 
- class WicdDaemon(dbus.service.Object):
-     """ The main wicd daemon class.
-@@ -910,7 +911,7 @@
- 
-         if not os.path.isfile(dhclient_conf):
-             print "dhclient.conf.template not found, copying..."
--            shutil.copy(dhclient_conf + ".default", dhclient_conf)            
-+            shutil.copy(dhclient_conf_default, dhclient_conf)
-         # Hide the files, so the keys aren't exposed.
-         print "chmoding configuration files 0600..."
-         os.chmod(app_conf.get_config(), 0600)diff -ruN wicd-1.7.2.4.orig/wicd/wnettools.py wicd-1.7.2.4/wicd/wnettools.py
---- wicd-1.7.2.4.orig/wicd/wnettools.py	2013-03-30 21:47:19.804907552 +0000
-+++ wicd-1.7.2.4/wicd/wnettools.py	2013-03-31 08:44:37.572792110 +0000
-@@ -37,6 +37,7 @@
- import time
- from string import maketrans, translate
- 
-+import tempfile
- import wpath
- import misc
- from misc import find_path 
-@@ -216,6 +217,7 @@
-         self.flush_tool = None
-         self.link_detect = None       
-         self.dhcp_object = None
-+        self.dhclient_conf_path = None;
-     
-     def SetDebugMode(self, value):
-         """ If True, verbose output is enabled. """
-@@ -277,12 +279,6 @@
-                 cmd = ""
-             return (client, cmd)
- 
--                # probably /var/lib/wicd/dhclient.conf with defaults
--        dhclient_conf_path = os.path.join(
--                    wpath.varlib,
--                    'dhclient.conf'
--                )
--        
-         client_dict = {
-             "dhclient" : 
-                 {'connect' : r"%(cmd)s -cf %(dhclientconf)s %(iface)s",
-@@ -307,41 +303,44 @@
-         }
-         (client_name, cmd) = get_client_name(self.DHCP_CLIENT)
- 
--        # cause dhclient doesn't have a handy dandy argument
--        # for specifing the hostname to be sent
--        if client_name == "dhclient" and flavor:
--            if hostname == None:
--                # <hostname> will use the system hostname
--                # we'll use that if there is hostname passed
--                # that shouldn't happen, though
--                hostname = '<hostname>'
--            print 'attempting to set hostname with dhclient'
--            print 'using dhcpcd or another supported client may work better'
--            dhclient_template = \
--                open(os.path.join(wpath.etc, 'dhclient.conf.template'), 'r')
--
--            output_conf = open(dhclient_conf_path, 'w')
--
--            for line in dhclient_template.readlines():
--                line = line.replace('$_HOSTNAME', hostname)
--                output_conf.write(line)
--
--            output_conf.close()
--            dhclient_template.close()
--            os.chmod(dhclient_conf_path, 0644)
--
-         if not client_name or not cmd:
-             print "WARNING: Failed to find a valid dhcp client!"
-             return ""
-             
-         if flavor == "connect":
-+            # cause dhclient doesn't have a handy dandy argument
-+            # for specifing the hostname to be sent
-+            if client_name == "dhclient" and flavor:
-+                if hostname == None:
-+                    # <hostname> will use the system hostname
-+                    # we'll use that if there is hostname passed
-+                    # that shouldn't happen, though
-+                    hostname = '<hostname>'
-+                print 'attempting to set hostname with dhclient'
-+                print 'using dhcpcd or another supported client may work better'
-+                if not self.dhclient_conf_path:
-+                    _,self.dhclient_conf_path = tempfile.mkstemp()
-+                    print 'New dhclient conf path: %s ' % self.dhclient_conf_path
-+                dhclient_template = \
-+                    open(os.path.join(wpath.etc, 'dhclient.conf.template'), 'r')
-+
-+                output_conf = open(self.dhclient_conf_path, 'w')
-+
-+                for line in dhclient_template.readlines():
-+                    line = line.replace('$_HOSTNAME', hostname)
-+                    output_conf.write(line)
-+
-+                output_conf.close()
-+                dhclient_template.close()
-+                os.chmod(self.dhclient_conf_path, 0644)
-+
-             if not hostname:
-                 hostname = os.uname()[1]
-             return client_dict[client_name]['connect'] % \
-                     { "cmd" : cmd,
-                       "iface" : self.iface,
-                       "hostname" : hostname,
--                      'dhclientconf' : dhclient_conf_path }
-+                      'dhclientconf' : self.dhclient_conf_path }
-         elif flavor == "release":
-             return client_dict[client_name]['release'] % {"cmd":cmd, "iface":self.iface}
-         else:
diff --git a/pkgs/tools/networking/wicd/fix-app-icon.patch b/pkgs/tools/networking/wicd/fix-app-icon.patch
deleted file mode 100644
index 31b47bb45881..000000000000
--- a/pkgs/tools/networking/wicd/fix-app-icon.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Someone forgot to pack wicd.png icon. We will replace it with existing one.
-
-diff -ruN wicd-1.7.2.4.orig/gtk/gui.py wicd-1.7.2.4/gtk/gui.py
---- wicd-1.7.2.4.orig/gtk/gui.py	2013-03-30 21:47:19.802907553 +0000
-+++ wicd-1.7.2.4/gtk/gui.py	2013-03-31 08:13:32.876871673 +0000
-@@ -205,8 +205,10 @@
- 
-         self.status_area.hide_all()
- 
--        if os.path.exists(os.path.join(wpath.images, "wicd.png")):
--            self.window.set_icon_from_file(os.path.join(wpath.images, "wicd.png"))
-+        if os.path.exists(os.path.join(wpath.images, "../../icons/hicolour/128x128/apps/wicd-gtk.png")):
-+            self.window.set_icon_from_file(os.path.join(wpath.images, "../../icons/hicolor/128x128/apps/wicd-gtk.png"))
-+        else:
-+            print 'icon doesn\'t exist %s' % os.path.join(wpath.images, "../../icons/hicolor/128x128/apps/wicd-gtk.png")
-         self.statusID = None
-         self.first_dialog_load = True
-         self.is_visible = True
-
diff --git a/pkgs/tools/networking/wicd/fix-curses.patch b/pkgs/tools/networking/wicd/fix-curses.patch
deleted file mode 100644
index 138dfbabfd5c..000000000000
--- a/pkgs/tools/networking/wicd/fix-curses.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/curses/wicd-curses.py	2015-01-27 22:35:25.414781192 -0300
-+++ b/curses/wicd-curses.py	2015-01-28 01:13:48.078904587 -0300
-@@ -1153,9 +1153,10 @@
-         if not ui._started:
-             return False
- 
--        input_data = ui.get_input_nonblocking()
-+        ui.set_input_timeouts(max_wait=0)
-+        input_data = ui.get_input()
-         # Resolve any "alarms" in the waiting
--        self.handle_keys(input_data[1])
-+        self.handle_keys(input_data)
- 
-         # Update the screen
-         canvas = self.frame.render((self.size), True)
diff --git a/pkgs/tools/networking/wicd/fix-gtk-issues.patch b/pkgs/tools/networking/wicd/fix-gtk-issues.patch
deleted file mode 100644
index 31e553b46b50..000000000000
--- a/pkgs/tools/networking/wicd/fix-gtk-issues.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -ruN wicd-1.7.2.4.orig/gtk/gui.py wicd-1.7.2.4/gtk/gui.py
---- wicd-1.7.2.4.orig/gtk/gui.py	2013-03-31 17:01:29.367001288 +0000
-+++ wicd-1.7.2.4/gtk/gui.py	2013-03-31 17:55:20.826028396 +0000
-@@ -35,7 +35,7 @@
- from wicd import misc
- from wicd import wpath
- from wicd import dbusmanager
--from wicd.misc import noneToString
-+from wicd.misc import noneToString, _status_dict
- from wicd.translations import _, language
- import prefs
- from prefs import PreferencesDialog
-@@ -250,7 +250,7 @@
-         
-     def handle_connection_results(self, results):
-         if results not in ['success', 'aborted'] and self.is_visible:
--            error(self.window, language[results], block=False)
-+            error(self.window, misc._status_dict[results], block=False)
- 
-     def create_adhoc_network(self, widget=None):
-         """ Shows a dialog that creates a new adhoc network. """
-diff -ruN wicd-1.7.2.4.orig/po/ru.po wicd-1.7.2.4/po/ru.po
---- wicd-1.7.2.4.orig/po/ru.po	2013-03-31 17:01:29.362001288 +0000
-+++ wicd-1.7.2.4/po/ru.po	2013-03-31 17:43:37.909022515 +0000
-@@ -173,7 +173,7 @@
- 
- #: wicd/misc.py:79
- msgid "Connection Failed: Bad password"
--msgstr "Ошибка соединения: Неверный пароль:"
-+msgstr "Ошибка соединения: Неверный пароль"
- 
- #: wicd/misc.py:89
- msgid "Connection Failed: No DHCP offers received."
-diff -ruN wicd-1.7.2.4.orig/wicd/misc.py wicd-1.7.2.4/wicd/misc.py
---- wicd-1.7.2.4.orig/wicd/misc.py	2013-03-31 17:01:29.369001288 +0000
-+++ wicd-1.7.2.4/wicd/misc.py	2013-03-31 17:23:56.822012593 +0000
-@@ -430,7 +430,9 @@
-     """ Sanitize property names to be used in config-files. """
-     allowed = string.ascii_letters + '_' + string.digits
-     table = string.maketrans(allowed, ' ' * len(allowed))
--    return s.translate(None, table)
-+    #return s.translate(None, table)
-+    #return s.translate(table)
-+    return s
- 
- def sanitize_escaped(s):
-     """ Sanitize double-escaped unicode strings. """
diff --git a/pkgs/tools/networking/wicd/no-optimization.patch b/pkgs/tools/networking/wicd/no-optimization.patch
deleted file mode 100644
index 785cae7b6ed5..000000000000
--- a/pkgs/tools/networking/wicd/no-optimization.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-With optimizations on, python will overwrite the nix store.
-
---- wicd-1.7.0/in/scripts=wicd.in  2011-04-05 14:31:09.733096865 -0400
-+++ wicd-1.7.0/in/scripts=wicd.in  2011-04-05 14:31:16.397096864 -0400
-@@ -1,3 +1,3 @@
- #!/bin/bash
- 
--exec %PYTHON% -O %SHARE%daemon/wicd-daemon.py $@
-+exec %PYTHON% -B %SHARE%daemon/wicd-daemon.py $@
-
---- wicd-1.7.2.4/wicd/wicd-daemon.py  2012-04-30 21:19:45.000000000 +0200
-+++ wicd-1.7.2.4/wicd/wicd-daemon.pynew       2013-03-14 21:35:23.250306592 +0100
-@@ -1812,7 +1812,7 @@
-     daemon = WicdDaemon(wicd_bus, auto_connect=auto_connect)
-     child_pid = None
-     if not no_poll:
--        child_pid = Popen([wpath.python, "-O", 
-+        child_pid = Popen([wpath.python, "-B", 
-                           os.path.join(wpath.daemon, "monitor.py")],
-                           shell=False, close_fds=True).pid
-     atexit.register(on_exit, child_pid)
diff --git a/pkgs/tools/networking/wicd/no-var-install.patch b/pkgs/tools/networking/wicd/no-var-install.patch
deleted file mode 100644
index b01f0e5a438a..000000000000
--- a/pkgs/tools/networking/wicd/no-var-install.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-The install tries to create files in /var.  This patch removes those steps.
-
---- wicd-1.7.2.4/setup.py     2013-03-14 21:28:21.360580941 +0100
-+++ wicd-1.7.2.4/setup.py  2013-03-14 21:22:50.125721943 +0100
-@@ -505,11 +505,8 @@
-         (wpath.dbus_service, ['other/org.wicd.daemon.service']),
-         (wpath.systemd, ['other/wicd.service']),
-         (wpath.logrotate, ['other/wicd.logrotate']),
--        (wpath.log, [empty_file]), 
--        (wpath.etc, ['other/dhclient.conf.template.default']),
-         (wpath.encryption, [('encryption/templates/' + b) for b in 
-                             os.listdir('encryption/templates') if not b.startswith('.')]),
--        (wpath.networks, [empty_file]),
-         (wpath.sbin,  ['scripts/wicd']),  
-         (wpath.daemon, ['wicd/monitor.py', 'wicd/wicd-daemon.py',
-                     'wicd/suspend.py', 'wicd/autoconnect.py']), 
-
diff --git a/pkgs/tools/networking/wicd/pygtk.patch b/pkgs/tools/networking/wicd/pygtk.patch
deleted file mode 100644
index f015e50d684a..000000000000
--- a/pkgs/tools/networking/wicd/pygtk.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-For some reason nix's pygtk doesn't have a pygtk module so we remove the version check.
-If this ever changes we could remove this patch.
-
---- wicd-1.7.0/gtk/wicd-client.py	2009-09-01 11:05:31.000000000 -0400
-+++ wicd-1.7.0/gtk/wicd-client.py	2009-12-28 00:22:57.000000000 -0500
-@@ -43,9 +43,6 @@
- import atexit
- from dbus import DBusException
- 
--import pygtk
--pygtk.require('2.0')
--
- HAS_NOTIFY = True
- try:
-     import pynotify
diff --git a/pkgs/tools/networking/wicd/urwid-api-update.patch b/pkgs/tools/networking/wicd/urwid-api-update.patch
deleted file mode 100644
index a794f6caaeee..000000000000
--- a/pkgs/tools/networking/wicd/urwid-api-update.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/curses/curses_misc.py
-+++ a/curses/curses_misc.py
-@@ -358,6 +358,19 @@ class ComboBox(urwid.WidgetWrap):
-         self.parent = None
-         self.ui = None
-         self.row = None
-+
-+    @property
-+    def focus(self):
-+        return self._focus
-+
-+    @focus.setter
-+    def focus(self, index):
-+        self._focus = index
-+
-+    @focus.deleter
-+    def focus(self):
-+        del self._focus
-+
-     def set_list(self,list):
-         self.list = list
diff --git a/pkgs/tools/networking/wicd/wpa2-ttls b/pkgs/tools/networking/wicd/wpa2-ttls
deleted file mode 100644
index 650375cbbaae..000000000000
--- a/pkgs/tools/networking/wicd/wpa2-ttls
+++ /dev/null
@@ -1,20 +0,0 @@
-name = WPA2-TTLS
-author = various contributors
-version = 1
-require identity *Identity anonymous_identity *Anonymous_identity password *Password ca_cert *Path_to_CA_Cert
-protected password *Password
------
-ctrl_interface=/run/wpa_supplicant
-network={
-        ssid="$_ESSID"
-        scan_ssid=$_SCAN
-        proto=WPA2
-        key_mgmt=WPA-EAP
-        group=CCMP TKIP
-        eap=TTLS
-        identity="$_IDENTITY"
-        password="$_PASSWORD"
-        anonymous_identity="$_ANONYMOUS_IDENTITY"
-        ca_cert="$_CA_CERT"
-        phase2="auth=PAP"
-}
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
index cae010c5a19f..d02ac5503afd 100644
--- a/pkgs/tools/security/nuclei/default.nix
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6mZ8XstophadNk/3zJe2n3WL4u34jjnWh9m2qrt06hw=";
+    sha256 = "sha256-SdN8M3Mr3bywpBUwIVOIctYdkueq/0no4wlI7Ft8Uws=";
   };
 
-  vendorSha256 = "sha256-tJ9cdZloTSXoytmMJ+6S5XAKHYs16SZmbUwZdmVnDzc=";
+  vendorSha256 = "sha256-Tz96AXGMyHNHG/3JrmZvisOEty/tDhoK1ZUngDSXOcc=";
 
   modRoot = "./v2";
   subPackages = [
diff --git a/pkgs/tools/security/quill/default.nix b/pkgs/tools/security/quill/default.nix
index 9440823f4292..9f5465901b17 100644
--- a/pkgs/tools/security/quill/default.nix
+++ b/pkgs/tools/security/quill/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "quill";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchFromGitHub {
     owner = "dfinity";
     repo = "quill";
     rev = "v${version}";
-    sha256 = "sha256-rR5VgdlJy6TQBmCHuKc7nPjznbeLjCmQdUJKjY0GsNI=";
+    sha256 = "sha256-lvINDtOG2mmz0ESxL11DQVZh3IcEiZYYMu5oN5Q9WKA=";
   };
 
   ic = fetchFromGitHub {
@@ -30,7 +30,7 @@ rustPlatform.buildRustPackage rec {
     export OPENSSL_LIB_DIR=${openssl.out}/lib
   '';
 
-  cargoSha256 = "sha256-nLNuOqShOq01gVWoRCbsvfAd7B9VClUA8Hu8/UQNILg=";
+  cargoSha256 = "sha256-F2RMfHVFqCq9cb+9bjPWaRcQWKYIwwffWCssoQ6sSdU=";
 
   nativeBuildInputs = [ pkg-config protobuf ];
   buildInputs = [ openssl ]
diff --git a/pkgs/tools/system/cm-rgb/default.nix b/pkgs/tools/system/cm-rgb/default.nix
index 3a6c7c6e57c5..adc291d4f85d 100644
--- a/pkgs/tools/system/cm-rgb/default.nix
+++ b/pkgs/tools/system/cm-rgb/default.nix
@@ -54,6 +54,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/gfduszynski/cm-rgb";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ danieldk ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/system/consul-template/default.nix b/pkgs/tools/system/consul-template/default.nix
index 5326f8722d81..020e56a1526b 100644
--- a/pkgs/tools/system/consul-template/default.nix
+++ b/pkgs/tools/system/consul-template/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "consul-template";
-  version = "0.26.0";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "consul-template";
     rev = "v${version}";
-    sha256 = "sha256-upVCztpfT+SuuB343GEnT4KSnWul10/cItKJvUqJYo4=";
+    sha256 = "sha256-XzsewkHaFIq1kvFDHIsnhfhtLPLFRin7YrhiZuF1+co=";
   };
 
-  vendorSha256 = "sha256-IAWuqg8zZ9/ny3ZijxGgHAJDICV09NTGxPvLLP4oLzw=";
+  vendorSha256 = "sha256-/4ZY4YRGsUSL2e6uYPJ9tWEvXDjU5/L56yf49pUkJ2E=";
 
   # consul-template tests depend on vault and consul services running to
   # execute tests so we skip them here
diff --git a/pkgs/tools/virtualization/shipyard/default.nix b/pkgs/tools/virtualization/shipyard/default.nix
index 9c67b5462bbf..7fe09aa6b426 100644
--- a/pkgs/tools/virtualization/shipyard/default.nix
+++ b/pkgs/tools/virtualization/shipyard/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "shipyard";
-  version = "0.3.2";
+  version = "0.3.27";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shipyard-run";
     repo = pname;
-    sha256 = "sha256-9eGaOSmHrJlcLOvZuLaNu8D/D/rWiyFb4ztxybUP0uM=";
+    sha256 = "sha256-VbcOoIMhY4FpfQbC2ESFaPoV9AS5DpGvid8jcQxLuEE=";
   };
-  vendorSha256 = "sha256-tTkPFftPDNXafIjAjNg6V6e/+2S/v5Do/YyAXPaGIqA=";
+  vendorSha256 = "sha256-YClNdtnakJJOEytTbopTXeZy218N4vHP3tQLavLgPbg=";
 
   ldflags = [
     "-s" "-w" "-X main.version=${version}"
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index c2e524b894f7..fd4302a50c62 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -913,7 +913,8 @@ mapAliases ({
   truecrypt = veracrypt; # added 2018-10-24
   tshark = wireshark-cli; # added 2018-04-25
   tuijam = throw "tuijam has been removed because Google Play Music was discontinued"; # added 2021-03-07
-  turbo-geth = throw "turbo-geth has been renamed to erigon"; # added 20201-08-08
+  turbo-geth = throw "turbo-geth has been renamed to erigon"; # added 2021-08-08
+  typora = throw "Newer versions of typora use anti-user encryption and refuse to start. As such it has been removed."; # added 2021-09-11
   uberwriter = apostrophe; # added 2020-04-23
   ubootBeagleboneBlack = ubootAmx335xEVM; # added 2020-01-21
   ucsFonts = ucs-fonts; # added 2016-07-15
@@ -947,6 +948,7 @@ mapAliases ({
   webkitgtk24x-gtk3 = throw "webkitgtk24x-gtk3 has been removed because it's insecure. Please use webkitgtk."; # added 2019-12-05
   webkitgtk24x-gtk2 = throw "webkitgtk24x-gtk2 has been removed because it's insecure. Please use webkitgtk."; # added 2019-12-05
   weechat-matrix-bridge = weechatScripts.weechat-matrix-bridge; # added 2018-09-06
+  wicd = throw "wicd has been removed as it is abandoned."; # added 2021-09-11
   wineStaging = wine-staging; # added 2018-01-08
   winusb = woeusb; # added 2017-12-22
   winstone = throw "winstone is not supported anymore. Alternatives are Jetty or Tomcat."; # added 2019-05-14
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6fdb591b61cb..748f70eefeef 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -661,6 +661,8 @@ with pkgs;
 
   srcOnly = callPackage ../build-support/src-only { };
 
+  substitute = callPackage ../build-support/substitute/substitute.nix { };
+
   substituteAll = callPackage ../build-support/substitute/substitute-all.nix { };
 
   substituteAllFiles = callPackage ../build-support/substitute-files/substitute-all-files.nix { };
@@ -897,6 +899,10 @@ with pkgs;
 
   gofu = callPackage ../applications/misc/gofu { };
 
+  linux-router = callPackage ../tools/networking/linux-router { };
+
+  linux-router-without-wifi = linux-router.override { useWifiDependencies = false; };
+
   metapixel = callPackage ../tools/graphics/metapixel { };
 
   pferd = callPackage ../tools/misc/pferd {};
@@ -915,6 +921,8 @@ with pkgs;
 
   veikk-linux-driver-gui = libsForQt5.callPackage ../tools/misc/veikk-linux-driver-gui { };
 
+  ventoy-bin = callPackage ../tools/cd-dvd/ventoy-bin { };
+
   xcd = callPackage ../tools/misc/xcd { };
 
   xtrt = callPackage ../tools/archivers/xtrt { };
@@ -1101,6 +1109,8 @@ with pkgs;
 
   analog = callPackage ../tools/admin/analog {};
 
+  android-backup-extractor = callPackage ../tools/backup/android-backup-extractor {};
+
   android-tools = lowPrio (callPackage ../tools/misc/android-tools {
     stdenv = if stdenv.targetPlatform.isAarch64 then gcc10Stdenv else stdenv;
   });
@@ -4877,6 +4887,7 @@ with pkgs;
   fgallery = callPackage ../tools/graphics/fgallery { };
 
   flannel = callPackage ../tools/networking/flannel { };
+  cni-plugin-flannel = callPackage ../tools/networking/flannel/plugin.nix {};
 
   flare = callPackage ../games/flare {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
@@ -6322,6 +6333,10 @@ with pkgs;
 
   jo = callPackage ../development/tools/jo { };
 
+  joshuto = callPackage ../applications/misc/joshuto {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
+
   jrnl = python3Packages.callPackage ../applications/misc/jrnl { };
 
   jsawk = callPackage ../tools/text/jsawk { };
@@ -7721,6 +7736,10 @@ with pkgs;
 
   ocserv = callPackage ../tools/networking/ocserv { };
 
+  oha = callPackage ../tools/networking/oha {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   opencorsairlink = callPackage ../tools/misc/opencorsairlink { };
 
   openfpgaloader = callPackage ../development/embedded/fpga/openfpgaloader { };
@@ -9307,6 +9326,8 @@ with pkgs;
 
   stunnel = callPackage ../tools/networking/stunnel { };
 
+  stuntman = callPackage ../tools/networking/stuntman { };
+
   stutter = haskell.lib.justStaticExecutables haskellPackages.stutter;
 
   strongswan    = callPackage ../tools/networking/strongswan { };
@@ -10344,8 +10365,6 @@ with pkgs;
 
   chase = callPackage ../tools/system/chase { };
 
-  wicd = callPackage ../tools/networking/wicd { };
-
   wimlib = callPackage ../tools/archivers/wimlib { };
 
   wipe = callPackage ../tools/security/wipe { };
@@ -10551,6 +10570,8 @@ with pkgs;
 
   zerofree = callPackage ../tools/filesystems/zerofree { };
 
+  zfs-autobackup = callPackage ../tools/backup/zfs-autobackup { };
+
   zfsbackup = callPackage ../tools/backup/zfsbackup { };
 
   zfstools = callPackage ../tools/filesystems/zfstools { };
@@ -16219,6 +16240,8 @@ with pkgs;
 
   http-parser = callPackage ../development/libraries/http-parser { };
 
+  hubble = callPackage ../applications/networking/cluster/hubble { };
+
   hunspell = callPackage ../development/libraries/hunspell { };
 
   hunspellDicts = recurseIntoAttrs (callPackages ../development/libraries/hunspell/dictionaries.nix {});
@@ -19927,9 +19950,8 @@ with pkgs;
 
   prosody = callPackage ../servers/xmpp/prosody {
     # _compat can probably be removed on next minor version after 0.10.0
-    lua5 = lua5_2_compat;
-    withExtraLibs = [ luaPackages.luadbi-sqlite3 ];
-    inherit (lua52Packages) luasocket luasec luaexpat luafilesystem luabitop luaevent luadbi;
+    lua = lua5_2_compat;
+    withExtraLibs = [];
   };
 
   biboumi = callPackage ../servers/xmpp/biboumi { };
@@ -24709,6 +24731,8 @@ with pkgs;
 
   fbida = callPackage ../applications/graphics/fbida { };
 
+  fclones = callPackage ../tools/misc/fclones { };
+
   fcp = callPackage ../tools/misc/fcp { };
 
   fdupes = callPackage ../tools/misc/fdupes { };
@@ -26622,8 +26646,6 @@ with pkgs;
     mlt-qt5 = libsForQt514.mlt;
   };
 
-  typora = callPackage ../applications/editors/typora { };
-
   taxi = callPackage ../applications/networking/ftp/taxi { };
 
   librep = callPackage ../development/libraries/librep { };
@@ -27911,6 +27933,8 @@ with pkgs;
 
   terminal-notifier = callPackage ../applications/misc/terminal-notifier {};
 
+  textplots = callPackage ../tools/graphics/textplots { };
+
   texture-synthesis = callPackage ../tools/graphics/texture-synthesis { };
 
   tty-solitaire = callPackage ../applications/misc/tty-solitaire { };
@@ -28252,9 +28276,7 @@ with pkgs;
 
   neovim-remote = callPackage ../applications/editors/neovim/neovim-remote.nix { };
 
-  vis = callPackage ../applications/editors/vis {
-    inherit (lua52Packages) lpeg;
-  };
+  vis = callPackage ../applications/editors/vis { };
 
   viw = callPackage ../applications/editors/viw { };
 
@@ -29271,6 +29293,8 @@ with pkgs;
 
   adom = callPackage ../games/adom { };
 
+  airshipper = callPackage ../games/airshipper { };
+
   airstrike = callPackage ../games/airstrike { };
 
   alephone = callPackage ../games/alephone { };
@@ -29473,7 +29497,9 @@ with pkgs;
 
   ecwolf = callPackage ../games/ecwolf { };
 
-  eduke32 = callPackage ../games/eduke32 { };
+  eduke32 = callPackage ../games/eduke32 {
+    inherit (darwin.apple_sdk.frameworks) AGL Cocoa GLUT OpenGL;
+  };
 
   egoboo = callPackage ../games/egoboo { };
 
@@ -29898,7 +29924,9 @@ with pkgs;
 
   quake3hires = callPackage ../games/quake3/content/hires.nix { };
 
-  quakespasm = callPackage ../games/quakespasm { };
+  quakespasm = callPackage ../games/quakespasm {
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreAudio CoreFoundation IOKit OpenGL;
+  };
   vkquake = callPackage ../games/quakespasm/vulkan.nix { };
 
   ioquake3 = callPackage ../games/quake3/ioquake { };
@@ -31189,7 +31217,9 @@ with pkgs;
 
   ngspice = callPackage ../applications/science/electronics/ngspice { };
 
-  openems = callPackage ../applications/science/electronics/openems { };
+  openems = callPackage ../applications/science/electronics/openems {
+    qcsxcad = libsForQt5.qcsxcad;
+  };
 
   openroad = libsForQt5.callPackage ../applications/science/electronics/openroad { };
 
@@ -32333,7 +32363,7 @@ with pkgs;
 
   satysfi = callPackage ../tools/typesetting/satysfi { };
 
-  sc-controller = pythonPackages.callPackage ../misc/drivers/sc-controller {
+  sc-controller = python3Packages.callPackage ../misc/drivers/sc-controller {
     inherit libusb1; # Shadow python.pkgs.libusb1.
   };
 
@@ -32587,6 +32617,8 @@ with pkgs;
 
   websocketd = callPackage ../applications/networking/websocketd { };
 
+  wike = callPackage ../applications/misc/wike { };
+
   wikicurses = callPackage ../applications/misc/wikicurses {
     pythonPackages = python3Packages;
   };
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index 246d62b903b3..80f71dc1942e 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -18,85 +18,60 @@ let
   packages = ( self:
 
 let
-  luaAtLeast = lib.versionAtLeast lua.luaversion;
-  luaOlder = lib.versionOlder lua.luaversion;
-  isLua51 = (lib.versions.majorMinor lua.version) == "5.1";
-  isLua52 = (lib.versions.majorMinor lua.version) == "5.2";
-  isLua53 = lua.luaversion == "5.3";
-  isLuaJIT = lib.getName lua == "luajit";
 
-  lua-setup-hook = callPackage ../development/interpreters/lua-5/setup-hook.nix { };
-
-  # Check whether a derivation provides a lua module.
-  hasLuaModule = drv: drv ? luaModule ;
+  # a function of lua_path / lua_cpath
+  lua-setup-hook = callPackage ../development/interpreters/lua-5/setup-hook.nix {
+    inherit lib;
+  };
 
   callPackage = pkgs.newScope self;
 
-  requiredLuaModules = drvs: with lib; let
-    modules =  filter hasLuaModule drvs;
-  in unique ([lua] ++ modules ++ concatLists (catAttrs "requiredLuaModules" modules));
-
-  # Convert derivation to a lua module.
-  toLuaModule = drv:
-    drv.overrideAttrs( oldAttrs: {
-      # Use passthru in order to prevent rebuilds when possible.
-      passthru = (oldAttrs.passthru or {})// {
-        luaModule = lua;
-        requiredLuaModules = requiredLuaModules drv.propagatedBuildInputs;
-      };
-    });
-
-
-  platformString =
-    if stdenv.isDarwin then "macosx"
-    else if stdenv.isFreeBSD then "freebsd"
-    else if stdenv.isLinux then "linux"
-    else if stdenv.isSunOS then "solaris"
-    else throw "unsupported platform";
-
   buildLuaApplication = args: buildLuarocksPackage ({namePrefix="";} // args );
 
-  buildLuarocksPackage = with pkgs.lib; makeOverridable(callPackage ../development/interpreters/lua-5/build-lua-package.nix {
-    inherit toLuaModule;
+  buildLuarocksPackage = lib.makeOverridable(callPackage ../development/interpreters/lua-5/build-lua-package.nix {
     inherit lua;
+    inherit (pkgs) lib;
+    inherit (luaLib) toLuaModule;
   });
-in
-with self; {
 
-  getLuaPathList = majorVersion: [
-    "share/lua/${majorVersion}/?.lua"
-    "share/lua/${majorVersion}/?/init.lua"
-  ];
-  getLuaCPathList = majorVersion: [
-    "lib/lua/${majorVersion}/?.so"
-  ];
-
-  # helper functions for dealing with LUA_PATH and LUA_CPATH
-  getPath = drv: pathListForVersion:
-    lib.concatMapStringsSep ";" (path: "${drv}/${path}") (pathListForVersion lua.luaversion);
-  getLuaPath = drv: getPath drv getLuaPathList;
-  getLuaCPath = drv: getPath drv getLuaCPathList;
+  luaLib = import ../development/lua-modules/lib.nix {
+    inherit (pkgs) lib;
+    inherit pkgs lua;
+  };
 
   #define build lua package function
   buildLuaPackage = callPackage ../development/lua-modules/generic {
-    inherit lua writeText;
+    inherit writeText;
   };
 
+  getPath = drv: pathListForVersion:
+    lib.concatMapStringsSep ";" (path: "${drv}/${path}") pathListForVersion;
 
-  inherit toLuaModule hasLuaModule lua-setup-hook;
-  inherit buildLuarocksPackage buildLuaApplication;
-  inherit requiredLuaModules luaOlder luaAtLeast
-    isLua51 isLua52 isLua53 isLuaJIT lua callPackage;
+in
+{
+  # helper functions for dealing with LUA_PATH and LUA_CPATH
+  lib = luaLib;
+
+  getLuaPath = drv: luaLib.getPath drv (luaLib.luaPathList lua.luaversion) ;
+  getLuaCPath = drv: luaLib.getPath drv (luaLib.luaCPathList lua.luaversion) ;
+
+
+  inherit lua lua-setup-hook callPackage;
+  inherit buildLuaPackage buildLuarocksPackage buildLuaApplication;
+  inherit (luaLib) luaOlder luaAtLeast isLua51 isLua52 isLua53 isLuaJIT
+    requiredLuaModules toLuaModule hasLuaModule;
 
   # wraps programs in $out/bin with valid LUA_PATH/LUA_CPATH
   wrapLua = callPackage ../development/interpreters/lua-5/wrap-lua.nix {
-    inherit lua; inherit (pkgs) makeSetupHook makeWrapper;
+    inherit lua lib;
+    inherit (pkgs) makeSetupHook makeWrapper;
   };
 
   luarocks = callPackage ../development/tools/misc/luarocks {
-    inherit lua;
+    inherit lua lib;
   };
 
+  # a fork of luarocks used to generate nix lua derivations from rockspecs
   luarocks-nix = callPackage ../development/tools/misc/luarocks/luarocks-nix.nix { };
 
   luxio = buildLuaPackage {
@@ -132,7 +107,7 @@ with self; {
     };
   };
 
-  vicious = toLuaModule(stdenv.mkDerivation rec {
+  vicious = luaLib.toLuaModule( stdenv.mkDerivation rec {
     pname = "vicious";
     version = "2.5.0";
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index cce7d2dab0f9..d0dd5eb8a1de 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2724,6 +2724,8 @@ in {
 
   flux-led = callPackage ../development/python-modules/flux-led { };
 
+  flynt = callPackage ../development/python-modules/flynt { };
+
   fn = callPackage ../development/python-modules/fn { };
 
   fnvhash = callPackage ../development/python-modules/fnvhash { };
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index 47c47e04e1cc..66c6bb373484 100644
--- a/pkgs/top-level/release-small.nix
+++ b/pkgs/top-level/release-small.nix
@@ -166,7 +166,6 @@ with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
   webkitgtk = linux;
   wget = all;
   which = all;
-  wicd = linux;
   wireshark = linux;
   wirelesstools = linux;
   wpa_supplicant = linux;